---
-sudo: required
-dist: trusty
+os: linux
+dist: xenial
language: python
python:
- "3.6"
addons:
postgresql: "9.6"
+ apt:
+ packages:
+ postgresql-server-dev-9.6
+ postgresql-client-9.6
git:
depth: 3
env:
- TEST_SUITE=tests
- TEST_SUITE=monaco
+before_install:
+ - phpenv global 7.1
install:
- vagrant/install-on-travis-ci.sh
before_script:
- cd $TRAVIS_BUILD_DIR/
- if [[ $TEST_SUITE == "tests" ]]; then phpcs --report-width=120 . ; fi
- cd $TRAVIS_BUILD_DIR/test/php
- - if [[ $TEST_SUITE == "tests" ]]; then phpunit ./ ; fi
+ - if [[ $TEST_SUITE == "tests" ]]; then /usr/bin/phpunit ./ ; fi
- cd $TRAVIS_BUILD_DIR/test/bdd
- # behave --format=progress3 api
- - if [[ $TEST_SUITE == "tests" ]]; then behave --format=progress3 db ; fi
+ - if [[ $TEST_SUITE == "tests" ]]; then behave -DREMOVE_TEMPLATE=1 --format=progress3 db ; fi
- if [[ $TEST_SUITE == "tests" ]]; then behave --format=progress3 osm2pgsql ; fi
- cd $TRAVIS_BUILD_DIR/build
- if [[ $TEST_SUITE == "monaco" ]]; then wget --no-verbose --output-document=../data/monaco.osm.pbf http://download.geofabrik.de/europe/monaco-latest.osm.pbf; fi
- if [[ $TEST_SUITE == "monaco" ]]; then /usr/bin/env php ./utils/setup.php --osm-file ../data/monaco.osm.pbf --osm2pgsql-cache 1000 --all 2>&1 | grep -v 'ETA (seconds)'; fi
- if [[ $TEST_SUITE == "monaco" ]]; then /usr/bin/env php ./utils/specialphrases.php --wiki-import | psql -d test_api_nominatim >/dev/null; fi
+ - if [[ $TEST_SUITE == "monaco" ]]; then /usr/bin/env php ./utils/check_import_finished.php; fi
notifications:
email: false
project(nominatim)
set(NOMINATIM_VERSION_MAJOR 3)
-set(NOMINATIM_VERSION_MINOR 2)
+set(NOMINATIM_VERSION_MINOR 4)
set(NOMINATIM_VERSION_PATCH 0)
set(NOMINATIM_VERSION "${NOMINATIM_VERSION_MAJOR}.${NOMINATIM_VERSION_MINOR}.${NOMINATIM_VERSION_PATCH}")
#-----------------------------------------------------------------------------
-#
-# Find external dependencies
-#
+# Configuration
#-----------------------------------------------------------------------------
-set(BUILD_TESTS off CACHE BOOL "Build test suite" FORCE)
-set(WITH_LUA off CACHE BOOL "Build with lua support" FORCE)
+set(BUILD_IMPORTER on CACHE BOOL "Build everything for importing/updating the database")
+set(BUILD_API on CACHE BOOL "Build everything for the API server")
+set(BUILD_MODULE on CACHE BOOL "Build PostgreSQL module")
+set(BUILD_TESTS on CACHE BOOL "Build test suite")
+set(BUILD_DOCS on CACHE BOOL "Build documentation")
+set(BUILD_OSM2PGSQL on CACHE BOOL "Build osm2pgsql (expert only)")
-if (NOT EXISTS "${CMAKE_SOURCE_DIR}/osm2pgsql/CMakeLists.txt")
- message(FATAL_ERROR "The osm2pgsql directory is empty.\
- Did you forget to check out Nominatim recursively?\
- \nTry updating submodules with: git submodule update --init")
-endif()
-add_subdirectory(osm2pgsql)
-
-find_package(Threads REQUIRED)
-
-unset(PostgreSQL_TYPE_INCLUDE_DIR CACHE)
-set(PostgreSQL_TYPE_INCLUDE_DIR "/usr/include/")
-find_package(PostgreSQL REQUIRED)
-include_directories(${PostgreSQL_INCLUDE_DIRS})
-link_directories(${PostgreSQL_LIBRARY_DIRS})
-
-find_program(PYOSMIUM pyosmium-get-changes)
-if (NOT EXISTS "${PYOSMIUM}")
- set(PYOSMIUM_PATH "")
- message(WARNING "pyosmium-get-changes not found (required for updates)")
-else()
- set(PYOSMIUM_PATH "${PYOSMIUM}")
- message(STATUS "Using pyosmium-get-changes at ${PYOSMIUM_PATH}")
+#-----------------------------------------------------------------------------
+# osm2pgsql (imports/updates only)
+#-----------------------------------------------------------------------------
+
+if (BUILD_IMPORTER AND BUILD_OSM2PGSQL)
+ if (NOT EXISTS "${CMAKE_SOURCE_DIR}/osm2pgsql/CMakeLists.txt")
+ message(FATAL_ERROR "The osm2pgsql directory is empty.\
+ Did you forget to check out Nominatim recursively?\
+ \nTry updating submodules with: git submodule update --init")
+ endif()
+ set(BUILD_TESTS_SAVED "${BUILD_TESTS}")
+ set(BUILD_TESTS off)
+ set(WITH_LUA off CACHE BOOL "")
+ add_subdirectory(osm2pgsql)
+ set(BUILD_TESTS ${BUILD_TESTS_SAVED})
endif()
-find_program(PG_CONFIG pg_config)
-execute_process(COMMAND ${PG_CONFIG} --pgxs
- OUTPUT_VARIABLE PGXS
- OUTPUT_STRIP_TRAILING_WHITESPACE)
+#-----------------------------------------------------------------------------
+# python and pyosmium (imports/updates only)
+#-----------------------------------------------------------------------------
-if (NOT EXISTS "${PGXS}")
- message(FATAL_ERROR "Postgresql server package not found.")
+if (BUILD_IMPORTER)
+ find_package(PythonInterp 3)
+
+ find_program(PYOSMIUM pyosmium-get-changes)
+ if (NOT EXISTS "${PYOSMIUM}")
+ set(PYOSMIUM_PATH "")
+ message(WARNING "pyosmium-get-changes not found (required for updates)")
+ else()
+ set(PYOSMIUM_PATH "${PYOSMIUM}")
+ message(STATUS "Using pyosmium-get-changes at ${PYOSMIUM_PATH}")
+ endif()
endif()
-find_package(ZLIB REQUIRED)
-
-find_package(BZip2 REQUIRED)
-
-find_package(LibXml2 REQUIRED)
-include_directories(${LIBXML2_INCLUDE_DIR})
+#-----------------------------------------------------------------------------
+# PHP
+#-----------------------------------------------------------------------------
# Setting PHP binary variable as to command line (prevailing) or auto detect
+
if (NOT PHP_BIN)
find_program (PHP_BIN php)
endif()
message (STATUS "Using PHP binary " ${PHP_BIN})
#-----------------------------------------------------------------------------
-#
-# Setup settings and paths
-#
+# import scripts and utilities (importer only)
+#-----------------------------------------------------------------------------
+
+if (BUILD_IMPORTER)
+ set(CUSTOMSCRIPTS
+ utils/check_import_finished.php
+ utils/country_languages.php
+ utils/importWikipedia.php
+ utils/export.php
+ utils/query.php
+ utils/setup.php
+ utils/specialphrases.php
+ utils/update.php
+ utils/warm.php
+ )
+
+ foreach (script_source ${CUSTOMSCRIPTS})
+ configure_file(${PROJECT_SOURCE_DIR}/cmake/script.tmpl
+ ${PROJECT_BINARY_DIR}/${script_source})
+ endforeach()
+endif()
+
+#-----------------------------------------------------------------------------
+# webserver scripts (API only)
#-----------------------------------------------------------------------------
-set(CUSTOMFILES
- settings/phrase_settings.php
- website/deletable.php
- website/details.php
- website/hierarchy.php
- website/lookup.php
- website/polygons.php
- website/reverse.php
- website/search.php
- website/status.php
- utils/blocks.php
- utils/country_languages.php
- utils/imports.php
- utils/importWikipedia.php
- utils/export.php
- utils/query.php
- utils/server_compare.php
- utils/setup.php
- utils/specialphrases.php
- utils/update.php
- utils/warm.php
+if (BUILD_API)
+ set(WEBSITESCRIPTS
+ website/deletable.php
+ website/details.php
+ website/hierarchy.php
+ website/lookup.php
+ website/polygons.php
+ website/reverse.php
+ website/search.php
+ website/status.php
)
-foreach (cfile ${CUSTOMFILES})
- configure_file(${PROJECT_SOURCE_DIR}/${cfile} ${PROJECT_BINARY_DIR}/${cfile})
-endforeach()
+ foreach (script_source ${WEBSITESCRIPTS})
+ configure_file(${PROJECT_SOURCE_DIR}/cmake/website.tmpl
+ ${PROJECT_BINARY_DIR}/${script_source})
+ endforeach()
-configure_file(${PROJECT_SOURCE_DIR}/settings/defaults.php ${PROJECT_BINARY_DIR}/settings/settings.php)
+ set(WEBPATHS css images js)
-set(WEBPATHS css images js)
+ foreach (wp ${WEBPATHS})
+ execute_process(
+ COMMAND ln -sf ${PROJECT_SOURCE_DIR}/website/${wp} ${PROJECT_BINARY_DIR}/website/
+ )
+ endforeach()
+endif()
-foreach (wp ${WEBPATHS})
- execute_process(
- COMMAND ln -sf ${PROJECT_SOURCE_DIR}/website/${wp} ${PROJECT_BINARY_DIR}/website/
- )
-endforeach()
+#-----------------------------------------------------------------------------
+# default settings
+#-----------------------------------------------------------------------------
+configure_file(${PROJECT_SOURCE_DIR}/settings/defaults.php
+ ${PROJECT_BINARY_DIR}/settings/settings.php)
#-----------------------------------------------------------------------------
-#
# Tests
-#
#-----------------------------------------------------------------------------
-include(CTest)
+if (BUILD_TESTS)
+ include(CTest)
+
+ set(TEST_BDD db osm2pgsql api)
-set(TEST_BDD db osm2pgsql api)
+ foreach (test ${TEST_BDD})
+ add_test(NAME bdd_${test}
+ COMMAND behave ${test}
+ WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/test/bdd)
+ set_tests_properties(bdd_${test}
+ PROPERTIES ENVIRONMENT "NOMINATIM_DIR=${PROJECT_BINARY_DIR}")
+ endforeach()
-foreach (test ${TEST_BDD})
- add_test(NAME bdd_${test}
- COMMAND lettuce features/${test}
- WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/tests)
- set_tests_properties(bdd_${test}
- PROPERTIES ENVIRONMENT "NOMINATIM_DIR=${PROJECT_BINARY_DIR}")
-endforeach()
+ add_test(NAME php
+ COMMAND phpunit ./
+ WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/test/php)
-add_test(NAME php
- COMMAND phpunit ./
- WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/tests-php)
+ add_test(NAME phpcs
+ COMMAND phpcs --report-width=120 --colors lib website utils
+ WORKING_DIRECTORY ${PROJECT_SOURCE_DIR})
+endif()
+#-----------------------------------------------------------------------------
+# Postgres module
#-----------------------------------------------------------------------------
-add_subdirectory(module)
-add_subdirectory(nominatim)
-add_subdirectory(docs)
+if (BUILD_MODULE)
+ add_subdirectory(module)
+endif()
#-----------------------------------------------------------------------------
+# Documentation
+#-----------------------------------------------------------------------------
+
+if (BUILD_DOCS)
+ add_subdirectory(docs)
+endif()
* the result you are getting
* the expected result, preferably a link to the OSM object you want to find,
otherwise an address that is as precise as possible
-
- To get the link to the OSM object, you can try the following:
-
+
+To get the link to the OSM object, you can try the following:
+
* go to https://openstreetmap.org
* zoom to the area of the map where you expect the result and
zoom in as much as possible
* find the object of interest in the list that appears on the left side
* click on the object and report the URL back that the browser shows
-### When Reporting Problems with your Installation...
+### When Reporting Bugs...
Please add the following information to your issue:
if you run from the git repo, the output of `git rev-parse HEAD`)
* (if applicable) exact command line of the command that was causing the issue
+Bug reports that do not include extensive information about your system,
+about the problem and about what you have been trying to debug the problem
+will be closed.
## Workflow for Pull Requests
+3.4.0
+
+ * increase required version for PostgreSQL(9.3), PostGIS(2.2) and PHP(7.0)
+ * better error reporting for out-of-memory errors
+ * exclude postcode ranges separated by colon from centre point calculation
+ * update osm2pgsql, better handling of imports without flatnode file
+ * switch to more efficient algorithm for word set computation
+ * use only boundries for country and state parts of addresses
+ * improve updates of addresses with housenumbers and interpolations
+ * remove country from place_addressline table and use country_code instead
+ * optimise indexes on search_name partition tables
+ * improve searching of attached streets for large objects like airports
+ * drop support for python 2
+ * new scripts for importing Wikidata for importance
+ * create and drop indexes concurrently to not clash with auto vacuum
+ * various documentation improvements
+
+
+3.3.0
+
+ * zoom 17 in reverse now zooms in on minor streets
+ * fix use of postcode relations in address
+ * support for housenumber 0 on interpolations
+ * replace database abstraction DB with PDO and switch to using exceptions
+ * exclude line features at rank 30 from reverse geocoding
+ * remove self-reference and country from place_addressline
+ * make json output more readable (less escaping)
+ * update conversion scripts for postcodes
+ * scripts in utils/ are no longer executable (always use scripts in build dir)
+ * remove Natural Earth country fallback (OSM is complete enough)
+ * make rank assignments configurable
+ * allow accept languages with underscore
+ * new reverse-only import mode (without search index table)
+ * rely on boundaries only for states and countries
+ * update osm2pgsql, now using a configurable style
+ * provide multiple import styles
+ * improve search when house number and postcodes are dropped
+ * overhaul of setup code
+ * add support for PHPUnit 6
+ * update test database
+ * various documentation improvements
+
3.2.0
* complete rewrite of reverse search algorithm
-[![Build Status](https://travis-ci.org/openstreetmap/Nominatim.svg?branch=master)](https://travis-ci.org/openstreetmap/Nominatim)
+[![Build Status](https://travis-ci.org/osm-search/Nominatim.svg?branch=master)](https://travis-ci.org/osm-search/Nominatim)
Nominatim
=========
Installation
============
+**Nominatim is a complex piece of software and runs in a complex environment.
+Installing and running Nominatim is something for experienced system
+administrators only who can do some trouble-shooting themselves. We are sorry,
+but we can not provide installation support. We are all doing this in our free
+time and there is just so much of that time to go around. Do not open issues in
+our bug tracker if you need help. You can ask questions on the mailing list
+(see below) or on [help.openstreetmap.org](https://help.openstreetmap.org/).**
+
The latest stable release can be downloaded from https://nominatim.org.
-There you can also find [installation instructions for the release](https://nominatim.org/release-docs/latest/admin/Installation).
+There you can also find [installation instructions for the release](https://nominatim.org/release-docs/latest/admin/Installation), as well as an extensive [Troubleshooting/FAQ section](https://nominatim.org/release-docs/latest/admin/Faq/).
Detailed installation instructions for the development version can be
found at [nominatim.org](https://nominatim.org/release-docs/develop/admin/Installation)
The source code is available under a GPLv2 license.
-Contact and Bug reports
-======================
-For questions you can join the geocoding mailinglist, see
-https://lists.openstreetmap.org/listinfo/geocoding
+Contributing
+============
+
+Contributions are welcome. For details see [contribution guide](CONTRIBUTING.md).
+
+Both bug reports and pull requests are welcome.
-Bugs may be reported on the github project site:
-https://github.com/openstreetmap/Nominatim
+
+Mailing list
+============
+
+For questions you can join the geocoding mailing list, see
+https://lists.openstreetmap.org/listinfo/geocoding
bug fixes) get added since those usually only get applied to new/changed data.
Also this document skips the optional Wikipedia data import which affects ranking
-of search results. See [Nominatim installation](http://nominatim.org/release-docs/latest/Installation) for details.
+of search results. See [Nominatim installation](https://nominatim.org/release-docs/latest/admin/Installation) for details.
##### Why Ubuntu? Can I test CentOS/Fedora/CoreOS/FreeBSD?
inside the virtual machine. It will map the port to `localhost:9999` and then
you edit `settings/local.php` with
- @define('CONST_Database_DSN', 'pgsql://postgres@localhost:9999/nominatim_it');
+ @define('CONST_Database_DSN', 'pgsql:host=localhost;port=9999;user=postgres;dbname=nominatim_it');
To access postgres directly remember to specify the hostname, e.g. `psql --host localhost --port 9999 nominatim_it`
end
config.vm.define "ubuntu", primary: true do |sub|
+ sub.vm.box = "bento/ubuntu-20.04"
+ sub.vm.provision :shell do |s|
+ s.path = "vagrant/Install-on-Ubuntu-20.sh"
+ s.privileged = false
+ s.args = [checkout]
+ end
+ end
+
+ config.vm.define "ubuntu18", primary: true do |sub|
sub.vm.box = "bento/ubuntu-18.04"
sub.vm.provision :shell do |s|
s.path = "vagrant/Install-on-Ubuntu-18.sh"
end
end
+ config.vm.define "ubuntu18nginx" do |sub|
+ sub.vm.box = "bento/ubuntu-18.04"
+ sub.vm.provision :shell do |s|
+ s.path = "vagrant/Install-on-Ubuntu-18-nginx.sh"
+ s.privileged = false
+ s.args = [checkout]
+ end
+ end
+
config.vm.define "ubuntu16" do |sub|
sub.vm.box = "bento/ubuntu-16.04"
sub.vm.provision :shell do |s|
sub.vm.synced_folder ".", "/vagrant", disabled: true
end
+ config.vm.define "centos8" do |sub|
+ sub.vm.box = "generic/centos8"
+ sub.vm.provision :shell do |s|
+ s.path = "vagrant/Install-on-Centos-8.sh"
+ s.privileged = false
+ s.args = "yes"
+ end
+ sub.vm.synced_folder ".", "/home/vagrant/Nominatim", disabled: true
+ sub.vm.synced_folder ".", "/vagrant", disabled: true
+ end
+
+
config.vm.provider "virtualbox" do |vb|
vb.gui = false
vb.memory = 2048
--- /dev/null
+#!@PHP_BIN@ -Cq
+<?php
+require_once(dirname(dirname(__FILE__)).'/settings/settings.php');
+require_once(CONST_BasePath.'/@script_source@');
--- /dev/null
+<?php
+require_once(dirname(dirname(__FILE__)).'/settings/settings.php');
+require_once(CONST_BasePath.'/@script_source@');
--- /dev/null
+# Fallback Country Boundaries
+
+Each place is assigned a `country_code` and partition. Partitions derive from `country_code`.
+
+Nominatim imports two pre-generated files
+
+ * `data/country_name.sql` (country code, name, default language, partition)
+ * `data/country_osm_grid.sql` (country code, geometry)
+
+before creating places in the database. This helps with fast lookups and missing data (e.g. if the data the user wants to import doesn't contain any country places).
+
+The number of countries in the world can change (South Sudan created 2011, Germany reunification), so can their boundaries. This document explain how the pre-generated files can be updated.
+
+
+
+## Country code
+
+Each place is assigned a two letter country_code based on its location, e.g. `gb` for Great Britain. Or `NULL` if no suitable country is found (usually it's in open water then).
+
+In `sql/functions.sql: get_country_code(geometry)` the place's center is checked against
+
+ 1. country places already imported from the user's data file. Places are imported by rank low-to-high. Lowest rank 2 is countries so most places should be matched. Still the data file might be incomplete.
+ 2. if unmatched: OSM grid boundaries
+ 3. if still unmatched: OSM grid boundaries, but allow a small distance
+
+
+
+## Partitions
+
+Each place is assigned partition, which is a number 0..250. 0 is fallback/other.
+
+During place indexing (`sql/functions.sql: placex_insert()`) a place is assigned the partition based on its country code (`sql/functions.sql: get_partition(country_code)`). It checks in the `country_name` table.
+
+Most countries have their own partition, some share a partition. Thus partition counts vary greatly.
+
+Several database tables are split by partition to allow queries to run against less indices and improve caching.
+
+ * `location_area_large_<partition>`
+ * `search_name_<partition>`
+ * `location_road_<partition>`
+
+
+
+
+
+## Data files
+
+### data/country_name.sql
+
+Export from existing database table plus manual changes. `country_default_language_code` most taken from [https://wiki.openstreetmap.org/wiki/Nominatim/Country_Codes](), see `utils/country_languages.php`.
+
+
+
+### data/country_osm_grid.sql
+
+`country_grid.sql` merges territories by country. Then uses `function.sql: quad_split_geometry` to split each country into multiple [Quadtree](https://en.wikipedia.org/wiki/Quadtree) polygons for faster point-in-polygon lookups.
+
+To visualize one country as geojson feature collection, e.g. for loading into [geojson.io](http://geojson.io/):
+
+```
+-- http://www.postgresonline.com/journal/archives/267-Creating-GeoJSON-Feature-Collections-with-JSON-and-PostGIS-functions.html
+
+SELECT row_to_json(fc)
+FROM (
+ SELECT 'FeatureCollection' As type, array_to_json(array_agg(f)) As features
+ FROM (
+ SELECT 'Feature' As type,
+ ST_AsGeoJSON(lg.geometry)::json As geometry,
+ row_to_json((country_code, area)) As properties
+ FROM country_osm_grid As lg where country_code='mx'
+ ) As f
+) As fc;
+```
+
+`cat /tmp/query.sql | psql -At nominatim > /tmp/mexico.quad.geojson`
+
+![mexico](mexico.quad.png)
--- /dev/null
+# GB Postcodes
+
+
+The server [importing instructions](https://www.nominatim.org/release-docs/latest/admin/Import-and-Update/) allow optionally download [`gb_postcode_data.sql.gz`](https://www.nominatim.org/data/gb_postcode_data.sql.gz). This document explains how the file got created.
+
+## GB vs UK
+
+GB (Great Britain) is more correct as the Ordnance Survey dataset doesn't contain postcodes from Northern Ireland.
+
+## Importing separately after the initial import
+
+If you forgot to download the file, or have a new version, you can import it separately:
+
+1. Import the downloaded `gb_postcode_data.sql.gz` file.
+
+2. Run the SQL query `SELECT count(getorcreate_postcode_id(postcode)) FROM gb_postcode;`. This will update the search index.
+
+3. Run `utils/setup.php --calculate-postcodes` from the build directory. This will copy data form the `gb_postcode` table to the `location_postcodes` table.
+
+
+
+## Converting Code-Point Open data
+
+1. Download from [Code-Point® Open](https://www.ordnancesurvey.co.uk/business-and-government/products/code-point-open.html). It requires an email address where a download link will be send to.
+
+2. `unzip codepo_gb.zip`
+
+ Unpacked you'll see a directory of CSV files.
+
+ $ more codepo_gb/Data/CSV/n.csv
+ "N1 0AA",10,530626,183961,"E92000001","E19000003","E18000007","","E09000019","E05000368"
+ "N1 0AB",10,530559,183978,"E92000001","E19000003","E18000007","","E09000019","E05000368"
+
+ The coordinates are "Northings" and "Eastings" in [OSGB 1936](http://epsg.io/1314) projection. They can be projected to WGS84 like this
+
+ SELECT ST_AsText(ST_Transform(ST_SetSRID('POINT(530626 183961)'::geometry,27700), 4326));
+ POINT(-0.117872733220225 51.5394424719303)
+
+ [-0.117872733220225 51.5394424719303 on OSM map](https://www.openstreetmap.org/?mlon=-0.117872733220225&mlat=51.5394424719303&zoom=16)
+
+
+
+3. Create database, import CSV files, add geometry column, dump into file
+
+ DBNAME=create_gb_postcode_file
+ createdb $DBNAME
+ echo 'CREATE EXTENSION postgis' | psql $DBNAME
+
+ cat data/gb_postcode_table.sql | psql $DBNAME
+ cat codepo_gb/Data/CSV/*.csv | ./data-sources/gb-postcodes/convert_codepoint.php | psql $DBNAME
+ cat codepo_gb/Doc/licence.txt | iconv -f iso-8859-1 -t utf-8 | dos2unix | sed 's/^/-- /g' > gb_postcode_data.sql
+ pg_dump -a -t gb_postcode $DBNAME | grep -v '^--' >> gb_postcode_data.sql
+
+ gzip -9 -f gb_postcode_data.sql
+ ls -lah gb_postcode_data.*
+ # dropdb $DBNAME
--- /dev/null
+#!/usr/bin/env php
+<?php
+
+echo <<< EOT
+
+ALTER TABLE gb_postcode ADD COLUMN easting bigint;
+ALTER TABLE gb_postcode ADD COLUMN northing bigint;
+
+TRUNCATE gb_postcode;
+
+COPY gb_postcode (id, postcode, easting, northing) FROM stdin;
+
+EOT;
+
+$iCounter = 0;
+while ($sLine = fgets(STDIN)) {
+ $aColumns = str_getcsv($sLine);
+
+ // insert space before the third last position
+ // https://stackoverflow.com/a/9144834
+ $postcode = $aColumns[0];
+ $postcode = preg_replace('/\s*(...)$/', ' $1', $postcode);
+
+ echo join("\t", array($iCounter, $postcode, $aColumns[2], $aColumns[3]))."\n";
+
+ $iCounter = $iCounter + 1;
+}
+
+echo <<< EOT
+\.
+
+UPDATE gb_postcode SET geometry=ST_Transform(ST_SetSRID(CONCAT('POINT(', easting, ' ', northing, ')')::geometry, 27700), 4326);
+
+ALTER TABLE gb_postcode DROP COLUMN easting;
+ALTER TABLE gb_postcode DROP COLUMN northing;
+
+EOT;
--- /dev/null
+# US TIGER address data
+
+Convert [TIGER](https://www.census.gov/geographies/mapping-files/time-series/geo/tiger-line-file.html)/Line dataset of the US Census Bureau to SQL files which can be imported by Nominatim. The created tables in the Nominatim database are separate from OpenStreetMap tables and get queried at search time separately.
+
+The dataset gets updated once per year. Downloading is prone to be slow (can take a full day) and converting them can take hours as well.
+
+Replace '2019' with the current year throughout.
+
+ 1. Install the GDAL library and python bindings and the unzip tool
+
+ # Ubuntu:
+ sudo apt-get install python3-gdal unzip
+
+ 2. Get the TIGER 2019 data. You will need the EDGES files
+ (3,233 zip files, 11GB total).
+
+ wget -r ftp://ftp2.census.gov/geo/tiger/TIGER2019/EDGES/
+
+ 3. Convert the data into SQL statements. Adjust the file paths in the scripts as needed
+
+ cd data-sources/us-tiger
+ ./convert.sh <input-path> <output-path>
+
+ 4. Maybe: package the created files
+
+ tar -czf tiger2019-nominatim-preprocessed.tar.gz tiger
--- /dev/null
+#!/bin/bash
+
+INPATH=$1
+OUTPATH=$2
+
+if [[ ! -d "$INPATH" ]]; then
+ echo "input path does not exist"
+ exit 1
+fi
+
+if [[ ! -d "$OUTPATH" ]]; then
+ echo "output path does not exist"
+ exit 1
+fi
+
+INREGEX='_([0-9]{5})_edges.zip'
+WORKPATH="$OUTPATH/tmp-workdir/"
+mkdir -p "$WORKPATH"
+
+
+
+INFILES=($INPATH/*.zip)
+echo "Found ${#INFILES[*]} files."
+
+for F in ${INFILES[*]}; do
+ # echo $F
+
+ if [[ "$F" =~ $INREGEX ]]; then
+ COUNTYID=${BASH_REMATCH[1]}
+ SHAPEFILE="$WORKPATH/$(basename $F '.zip').shp"
+ SQLFILE="$OUTPATH/$COUNTYID.sql"
+
+ unzip -o -q -d "$WORKPATH" "$F"
+ if [[ ! -e "$SHAPEFILE" ]]; then
+ echo "Unzip failed. $SHAPEFILE not found."
+ exit 1
+ fi
+
+ ./tiger_address_convert.py "$SHAPEFILE" "$SQLFILE"
+
+ rm $WORKPATH/*
+ fi
+done
+
+OUTFILES=($OUTPATH/*.sql)
+echo "Wrote ${#OUTFILES[*]} files."
+
+rmdir $WORKPATH
-#!/usr/bin/python
+#!/usr/bin/python3
# Tiger road data to OSM conversion script
# Creates Karlsruhe-style address ways beside the main way
# based on the Massachusetts GIS script by christopher schmidt
if (statefp != None) and (countyfp != None):
county_name = county_fips_data.get(statefp + '' + countyfp)
if county_name:
- tags["tiger:county"] = county_name.encode("utf-8")
+ tags["tiger:county"] = county_name
# tlid = poFeature.GetField("TLID")
# if tlid != None:
--- /dev/null
+## Add Wikipedia and Wikidata to Nominatim
+
+OSM contributors frequently tag items with links to Wikipedia and Wikidata. Nominatim can use the page ranking of Wikipedia pages to help indicate the relative importance of osm features. This is done by calculating an importance score between 0 and 1 based on the number of inlinks to an article for a location. If two places have the same name and one is more important than the other, the wikipedia score often points to the correct place.
+
+These scripts extract and prepare both Wikipedia page rank and Wikidata links for use in Nominatim.
+
+#### Create a new postgres DB for Processing
+
+Due to the size of initial and intermediate tables, processing can be done in an external database:
+```
+CREATE DATABASE wikiprocessingdb;
+```
+---
+Wikipedia
+---
+
+Processing these data requires a large amount of disk space (~1TB) and considerable time (>24 hours).
+
+#### Import & Process Wikipedia tables
+
+This step downloads and converts [Wikipedia](https://dumps.wikimedia.org/) page data SQL dumps to postgreSQL files which can be imported and processed with pagelink information from Wikipedia language sites to calculate importance scores.
+
+- The script will processes data from whatever set of Wikipedia languages are specified in the initial languages array
+
+- Note that processing the top 40 Wikipedia languages can take over a day, and will add nearly 1TB to the processing database. The final output tables will be approximately 11GB and 2GB in size
+
+To download, convert, and import the data, then process summary statistics and compute importance scores, run:
+```
+./wikipedia_import.sh
+```
+---
+Wikidata
+---
+
+This script downloads and processes Wikidata to enrich the previously created Wikipedia tables for use in Nominatim.
+
+#### Import & Process Wikidata
+
+This step downloads and converts [Wikidata](https://dumps.wikimedia.org/wikidatawiki/) page data SQL dumps to postgreSQL files which can be processed and imported into Nominatim database. Also utilizes Wikidata Query Service API to discover and include place types.
+
+- Script presumes that the user has already processed Wikipedia tables as specified above
+
+- Script requires wikidata_place_types.txt and wikidata_place_type_levles.csv
+
+- script requires the [jq json parser](https://stedolan.github.io/jq/)
+
+- Script processes data from whatever set of Wikipedia languages are specified in the initial languages array
+
+- Script queries Wikidata Query Service API and imports all instances of place types listed in wikidata_place_types.txt
+
+- Script updates wikipedia_articles table with extracted wikidata
+
+By including Wikidata in the wikipedia_articles table, new connections can be made on the fly from the Nominatim placex table to wikipedia_article importance scores.
+
+To download, convert, and import the data, then process required items, run:
+```
+./wikidata_import.sh
+```
--- /dev/null
+#!/bin/bash
+
+psqlcmd() {
+ psql --quiet wikiprocessingdb
+}
+
+mysql2pgsqlcmd() {
+ ./mysql2pgsql.perl /dev/stdin /dev/stdout
+}
+
+download() {
+ echo "Downloading $1"
+ wget --quiet --no-clobber --tries 3 "$1"
+}
+
+# languages to process (refer to List of Wikipedias here: https://en.wikipedia.org/wiki/List_of_Wikipedias)
+# requires Bash 4.0
+readarray -t LANGUAGES < languages.txt
+
+
+
+echo "====================================================================="
+echo "Download wikidata dump tables"
+echo "====================================================================="
+
+# 114M wikidatawiki-latest-geo_tags.sql.gz
+# 1.7G wikidatawiki-latest-page.sql.gz
+# 1.2G wikidatawiki-latest-wb_items_per_site.sql.gz
+download https://dumps.wikimedia.org/wikidatawiki/latest/wikidatawiki-latest-geo_tags.sql.gz
+download https://dumps.wikimedia.org/wikidatawiki/latest/wikidatawiki-latest-page.sql.gz
+download https://dumps.wikimedia.org/wikidatawiki/latest/wikidatawiki-latest-wb_items_per_site.sql.gz
+
+
+
+
+echo "====================================================================="
+echo "Import wikidata dump tables"
+echo "====================================================================="
+
+echo "Importing wikidatawiki-latest-geo_tags"
+gzip -dc wikidatawiki-latest-geo_tags.sql.gz | mysql2pgsqlcmd | psqlcmd
+
+echo "Importing wikidatawiki-latest-page"
+gzip -dc wikidatawiki-latest-page.sql.gz | mysql2pgsqlcmd | psqlcmd
+
+echo "Importing wikidatawiki-latest-wb_items_per_site"
+gzip -dc wikidatawiki-latest-wb_items_per_site.sql.gz | mysql2pgsqlcmd | psqlcmd
+
+
+
+
+
+
+echo "====================================================================="
+echo "Get wikidata places from wikidata query API"
+echo "====================================================================="
+
+echo "Number of place types:"
+wc -l wikidata_place_types.txt
+
+while read F ; do
+ echo "Querying for place type $F..."
+ wget --quiet "https://query.wikidata.org/bigdata/namespace/wdq/sparql?format=json&query=SELECT ?item WHERE{?item wdt:P31*/wdt:P279*wd:$F;}" -O $F.json
+ jq -r '.results | .[] | .[] | [.item.value] | @csv' $F.json >> $F.txt
+ awk -v qid=$F '{print $0 ","qid}' $F.txt | sed -e 's!"http://www.wikidata.org/entity/!!' | sed 's/"//g' >> $F.csv
+ cat $F.csv >> wikidata_place_dump.csv
+ rm $F.json $F.txt $F.csv
+done < wikidata_place_types.txt
+
+
+
+
+echo "====================================================================="
+echo "Import wikidata places"
+echo "====================================================================="
+
+echo "CREATE TABLE wikidata_place_dump (
+ item text,
+ instance_of text
+ );" | psqlcmd
+
+echo "COPY wikidata_place_dump (item, instance_of)
+ FROM '/srv/nominatim/Nominatim/data-sources/wikipedia-wikidata/wikidata_place_dump.csv'
+ DELIMITER ','
+ CSV
+ ;" | psqlcmd
+
+echo "CREATE TABLE wikidata_place_type_levels (
+ place_type text,
+ level integer
+ );" | psqlcmd
+
+echo "COPY wikidata_place_type_levels (place_type, level)
+ FROM '/srv/nominatim/Nominatim/data-sources/wikipedia-wikidata/wikidata_place_type_levels.csv'
+ DELIMITER ','
+ CSV
+ HEADER
+ ;" | psqlcmd
+
+
+
+
+echo "====================================================================="
+echo "Create derived tables"
+echo "====================================================================="
+
+echo "CREATE TABLE geo_earth_primary AS
+ SELECT gt_page_id,
+ gt_lat,
+ gt_lon
+ FROM geo_tags
+ WHERE gt_globe = 'earth'
+ AND gt_primary = 1
+ AND NOT( gt_lat < -90
+ OR gt_lat > 90
+ OR gt_lon < -180
+ OR gt_lon > 180
+ OR gt_lat=0
+ OR gt_lon=0)
+ ;" | psqlcmd
+
+echo "CREATE TABLE geo_earth_wikidata AS
+ SELECT DISTINCT geo_earth_primary.gt_page_id,
+ geo_earth_primary.gt_lat,
+ geo_earth_primary.gt_lon,
+ page.page_title,
+ page.page_namespace
+ FROM geo_earth_primary
+ LEFT OUTER JOIN page
+ ON (geo_earth_primary.gt_page_id = page.page_id)
+ ORDER BY geo_earth_primary.gt_page_id
+ ;" | psqlcmd
+
+echo "ALTER TABLE wikidata_place_dump
+ ADD COLUMN ont_level integer,
+ ADD COLUMN lat numeric(11,8),
+ ADD COLUMN lon numeric(11,8)
+ ;" | psqlcmd
+
+echo "UPDATE wikidata_place_dump
+ SET ont_level = wikidata_place_type_levels.level
+ FROM wikidata_place_type_levels
+ WHERE wikidata_place_dump.instance_of = wikidata_place_type_levels.place_type
+ ;" | psqlcmd
+
+echo "CREATE TABLE wikidata_places
+ AS
+ SELECT DISTINCT ON (item) item,
+ instance_of,
+ MAX(ont_level) AS ont_level,
+ lat,
+ lon
+ FROM wikidata_place_dump
+ GROUP BY item,
+ instance_of,
+ ont_level,
+ lat,
+ lon
+ ORDER BY item
+ ;" | psqlcmd
+
+echo "UPDATE wikidata_places
+ SET lat = geo_earth_wikidata.gt_lat,
+ lon = geo_earth_wikidata.gt_lon
+ FROM geo_earth_wikidata
+ WHERE wikidata_places.item = geo_earth_wikidata.page_title
+ ;" | psqlcmd
+
+
+
+
+echo "====================================================================="
+echo "Process language pages"
+echo "====================================================================="
+
+
+echo "CREATE TABLE wikidata_pages (
+ item text,
+ instance_of text,
+ lat numeric(11,8),
+ lon numeric(11,8),
+ ips_site_page text,
+ language text
+ );" | psqlcmd
+
+for i in "${LANGUAGES[@]}"
+do
+ echo "CREATE TABLE wikidata_${i}_pages AS
+ SELECT wikidata_places.item,
+ wikidata_places.instance_of,
+ wikidata_places.lat,
+ wikidata_places.lon,
+ wb_items_per_site.ips_site_page
+ FROM wikidata_places
+ LEFT JOIN wb_items_per_site
+ ON (CAST (( LTRIM(wikidata_places.item, 'Q')) AS INTEGER) = wb_items_per_site.ips_item_id)
+ WHERE ips_site_id = '${i}wiki'
+ AND LEFT(wikidata_places.item,1) = 'Q'
+ ORDER BY wikidata_places.item
+ ;" | psqlcmd
+
+ echo "ALTER TABLE wikidata_${i}_pages
+ ADD COLUMN language text
+ ;" | psqlcmd
+
+ echo "UPDATE wikidata_${i}_pages
+ SET language = '${i}'
+ ;" | psqlcmd
+
+ echo "INSERT INTO wikidata_pages
+ SELECT item,
+ instance_of,
+ lat,
+ lon,
+ ips_site_page,
+ language
+ FROM wikidata_${i}_pages
+ ;" | psqlcmd
+done
+
+echo "ALTER TABLE wikidata_pages
+ ADD COLUMN wp_page_title text
+ ;" | psqlcmd
+echo "UPDATE wikidata_pages
+ SET wp_page_title = REPLACE(ips_site_page, ' ', '_')
+ ;" | psqlcmd
+echo "ALTER TABLE wikidata_pages
+ DROP COLUMN ips_site_page
+ ;" | psqlcmd
+
+
+
+
+echo "====================================================================="
+echo "Add wikidata to wikipedia_article table"
+echo "====================================================================="
+
+echo "UPDATE wikipedia_article
+ SET lat = wikidata_pages.lat,
+ lon = wikidata_pages.lon,
+ wd_page_title = wikidata_pages.item,
+ instance_of = wikidata_pages.instance_of
+ FROM wikidata_pages
+ WHERE wikipedia_article.language = wikidata_pages.language
+ AND wikipedia_article.title = wikidata_pages.wp_page_title
+ ;" | psqlcmd
+
+echo "CREATE TABLE wikipedia_article_slim
+ AS
+ SELECT * FROM wikipedia_article
+ WHERE wikidata_id IS NOT NULL
+ ;" | psqlcmd
+
+echo "ALTER TABLE wikipedia_article
+ RENAME TO wikipedia_article_full
+ ;" | psqlcmd
+
+echo "ALTER TABLE wikipedia_article_slim
+ RENAME TO wikipedia_article
+ ;" | psqlcmd
+
+
+
+
+echo "====================================================================="
+echo "Dropping intermediate tables"
+echo "====================================================================="
+
+echo "DROP TABLE wikidata_place_dump;" | psqlcmd
+echo "DROP TABLE geo_earth_primary;" | psqlcmd
+for i in "${LANGUAGES[@]}"
+do
+ echo "DROP TABLE wikidata_${i}_pages;" | psqlcmd
+done
--- /dev/null
+#!/bin/bash
+
+psqlcmd() {
+ psql --quiet wikiprocessingdb |& \
+ grep -v 'does not exist, skipping' |& \
+ grep -v 'violates check constraint' |& \
+ grep -vi 'Failing row contains'
+}
+
+mysql2pgsqlcmd() {
+ ./mysql2pgsql.perl --nodrop /dev/stdin /dev/stdout
+}
+
+download() {
+ echo "Downloading $1"
+ wget --quiet --no-clobber --tries=3 "$1"
+}
+
+
+# languages to process (refer to List of Wikipedias here: https://en.wikipedia.org/wiki/List_of_Wikipedias)
+# requires Bash 4.0
+readarray -t LANGUAGES < languages.txt
+
+
+
+echo "====================================================================="
+echo "Create wikipedia calculation tables"
+echo "====================================================================="
+
+echo "CREATE TABLE linkcounts (
+ language text,
+ title text,
+ count integer,
+ sumcount integer,
+ lat double precision,
+ lon double precision
+ );" | psqlcmd
+
+echo "CREATE TABLE wikipedia_article (
+ language text NOT NULL,
+ title text NOT NULL,
+ langcount integer,
+ othercount integer,
+ totalcount integer,
+ lat double precision,
+ lon double precision,
+ importance double precision,
+ title_en text,
+ osm_type character(1),
+ osm_id bigint
+ );" | psqlcmd
+
+echo "CREATE TABLE wikipedia_redirect (
+ language text,
+ from_title text,
+ to_title text
+ );" | psqlcmd
+
+
+
+
+
+echo "====================================================================="
+echo "Download individual wikipedia language tables"
+echo "====================================================================="
+
+
+for i in "${LANGUAGES[@]}"
+do
+ echo "Language: $i"
+
+ # english is the largest
+ # 1.7G enwiki-latest-page.sql.gz
+ # 6.2G enwiki-latest-pagelinks.sql.gz
+ # 355M enwiki-latest-langlinks.sql.gz
+ # 128M enwiki-latest-redirect.sql.gz
+
+ # example of smaller languge turkish
+ # 53M trwiki-latest-page.sql.gz
+ # 176M trwiki-latest-pagelinks.sql.gz
+ # 106M trwiki-latest-langlinks.sql.gz
+ # 3.2M trwiki-latest-redirect.sql.gz
+
+ download https://dumps.wikimedia.org/${i}wiki/latest/${i}wiki-latest-page.sql.gz
+ download https://dumps.wikimedia.org/${i}wiki/latest/${i}wiki-latest-pagelinks.sql.gz
+ download https://dumps.wikimedia.org/${i}wiki/latest/${i}wiki-latest-langlinks.sql.gz
+ download https://dumps.wikimedia.org/${i}wiki/latest/${i}wiki-latest-redirect.sql.gz
+done
+
+
+
+
+
+echo "====================================================================="
+echo "Import individual wikipedia language tables"
+echo "====================================================================="
+
+for i in "${LANGUAGES[@]}"
+do
+ echo "Language: $i"
+
+ # We pre-create the table schema. This allows us to
+ # 1. Skip index creation. Most queries we do are full table scans
+ # 2. Add constrain to only import namespace=0 (wikipedia articles)
+ # Both cuts down data size considerably (50%+)
+
+ echo "Importing ${i}wiki-latest-pagelinks"
+
+ echo "DROP TABLE IF EXISTS ${i}pagelinks;" | psqlcmd
+ echo "CREATE TABLE ${i}pagelinks (
+ pl_from int NOT NULL DEFAULT '0',
+ pl_namespace int NOT NULL DEFAULT '0',
+ pl_title text NOT NULL DEFAULT '',
+ pl_from_namespace int NOT NULL DEFAULT '0'
+ );" | psqlcmd
+
+ time \
+ gzip -dc ${i}wiki-latest-pagelinks.sql.gz | \
+ sed "s/\`pagelinks\`/\`${i}pagelinks\`/g" | \
+ mysql2pgsqlcmd | \
+ grep -v '^CREATE INDEX ' | \
+ psqlcmd
+
+
+
+
+ echo "Importing ${i}wiki-latest-page"
+
+ # autoincrement serial8 4byte
+ echo "DROP TABLE IF EXISTS ${i}page;" | psqlcmd
+ echo "CREATE TABLE ${i}page (
+ page_id int NOT NULL,
+ page_namespace int NOT NULL DEFAULT '0',
+ page_title text NOT NULL DEFAULT '',
+ page_restrictions text NOT NULL,
+ page_is_redirect smallint NOT NULL DEFAULT '0',
+ page_is_new smallint NOT NULL DEFAULT '0',
+ page_random double precision NOT NULL DEFAULT '0',
+ page_touched text NOT NULL DEFAULT '',
+ page_links_updated text DEFAULT NULL,
+ page_latest int NOT NULL DEFAULT '0',
+ page_len int NOT NULL DEFAULT '0',
+ page_content_model text DEFAULT NULL,
+ page_lang text DEFAULT NULL
+ );" | psqlcmd
+
+ time \
+ gzip -dc ${i}wiki-latest-page.sql.gz | \
+ sed "s/\`page\`/\`${i}page\`/g" | \
+ mysql2pgsqlcmd | \
+ grep -v '^CREATE INDEX ' | \
+ psqlcmd
+
+
+
+
+ echo "Importing ${i}wiki-latest-langlinks"
+
+ echo "DROP TABLE IF EXISTS ${i}langlinks;" | psqlcmd
+ echo "CREATE TABLE ${i}langlinks (
+ ll_from int NOT NULL DEFAULT '0',
+ ll_lang text NOT NULL DEFAULT '',
+ ll_title text NOT NULL DEFAULT ''
+ );" | psqlcmd
+
+ time \
+ gzip -dc ${i}wiki-latest-langlinks.sql.gz | \
+ sed "s/\`langlinks\`/\`${i}langlinks\`/g" | \
+ mysql2pgsqlcmd | \
+ grep -v '^CREATE INDEX ' | \
+ psqlcmd
+
+
+
+
+
+ echo "Importing ${i}wiki-latest-redirect"
+
+ echo "DROP TABLE IF EXISTS ${i}redirect;" | psqlcmd
+ echo "CREATE TABLE ${i}redirect (
+ rd_from int NOT NULL DEFAULT '0',
+ rd_namespace int NOT NULL DEFAULT '0',
+ rd_title text NOT NULL DEFAULT '',
+ rd_interwiki text DEFAULT NULL,
+ rd_fragment text DEFAULT NULL
+ );" | psqlcmd
+
+ time \
+ gzip -dc ${i}wiki-latest-redirect.sql.gz | \
+ sed "s/\`redirect\`/\`${i}redirect\`/g" | \
+ mysql2pgsqlcmd | \
+ grep -v '^CREATE INDEX ' | \
+ psqlcmd
+done
+
+
+
+
+
+echo "====================================================================="
+echo "Process language tables and associated pagelink counts"
+echo "====================================================================="
+
+
+for i in "${LANGUAGES[@]}"
+do
+ echo "Language: $i"
+
+ echo "CREATE TABLE ${i}pagelinkcount
+ AS
+ SELECT pl_title AS title,
+ COUNT(*) AS count,
+ 0::bigint as othercount
+ FROM ${i}pagelinks
+ WHERE pl_namespace = 0
+ GROUP BY pl_title
+ ;" | psqlcmd
+
+ echo "INSERT INTO linkcounts
+ SELECT '${i}',
+ pl_title,
+ COUNT(*)
+ FROM ${i}pagelinks
+ WHERE pl_namespace = 0
+ GROUP BY pl_title
+ ;" | psqlcmd
+
+ echo "INSERT INTO wikipedia_redirect
+ SELECT '${i}',
+ page_title,
+ rd_title
+ FROM ${i}redirect
+ JOIN ${i}page ON (rd_from = page_id)
+ WHERE page_namespace = 0
+ AND rd_namespace = 0
+ ;" | psqlcmd
+
+done
+
+
+for i in "${LANGUAGES[@]}"
+do
+ for j in "${LANGUAGES[@]}"
+ do
+ echo "UPDATE ${i}pagelinkcount
+ SET othercount = ${i}pagelinkcount.othercount + x.count
+ FROM (
+ SELECT page_title AS title,
+ count
+ FROM ${i}langlinks
+ JOIN ${i}page ON (ll_from = page_id)
+ JOIN ${j}pagelinkcount ON (ll_lang = '${j}' AND ll_title = title)
+ ) AS x
+ WHERE x.title = ${i}pagelinkcount.title
+ ;" | psqlcmd
+ done
+
+ echo "INSERT INTO wikipedia_article
+ SELECT '${i}',
+ title,
+ count,
+ othercount,
+ count + othercount
+ FROM ${i}pagelinkcount
+ ;" | psqlcmd
+done
+
+
+
+
+
+echo "====================================================================="
+echo "Calculate importance score for each wikipedia page"
+echo "====================================================================="
+
+echo "UPDATE wikipedia_article
+ SET importance = LOG(totalcount)/LOG((SELECT MAX(totalcount) FROM wikipedia_article))
+ ;" | psqlcmd
+
+
+
+
+
+echo "====================================================================="
+echo "Clean up intermediate tables to conserve space"
+echo "====================================================================="
+
+for i in "${LANGUAGES[@]}"
+do
+ echo "DROP TABLE ${i}pagelinks;" | psqlcmd
+ echo "DROP TABLE ${i}page;" | psqlcmd
+ echo "DROP TABLE ${i}langlinks;" | psqlcmd
+ echo "DROP TABLE ${i}redirect;" | psqlcmd
+ echo "DROP TABLE ${i}pagelinkcount;" | psqlcmd
+done
+
+echo "all done."
--- /dev/null
+ar
+bg
+ca
+cs
+da
+de
+en
+es
+eo
+eu
+fa
+fr
+ko
+hi
+hr
+id
+it
+he
+lt
+hu
+ms
+nl
+ja
+no
+pl
+pt
+kk
+ro
+ru
+sk
+sl
+sr
+fi
+sv
+tr
+uk
+vi
+war
+zh
\ No newline at end of file
# in the foreign-key case it will only remove the foreign-key constraint, not the other table entirely.)
# (source: 8.1.3 docs, section "drop table")
warn "table $table will be dropped CASCADE\n";
- $pre_create_sql .= "DROP TABLE $table CASCADE\\g\n"; # custom dumps may be missing the 'dump' commands
+ $pre_create_sql .= "DROP TABLE $table CASCADE;\n"; # custom dumps may be missing the 'dump' commands
}
s/(create\s+table\s+)([-_\w]+)\s/$1 $table /i;
s/INSERT METHOD[=\s+][^;\s]+//i;
s/PASSWORD=[^;\s]+//i;
s/ROW_FORMAT=(?:DEFAULT|DYNAMIC|FIXED|COMPRESSED|REDUNDANT|COMPACT)+//i;
+ s/KEY_BLOCK_SIZE=8//i;
s/DELAY KEY WRITE=[^;\s]+//i;
s/INDEX DIRECTORY[=\s+][^;\s]+//i;
s/DATA DIRECTORY=[^;\s]+//i;
s/DEFAULT CHARSET=[^;\s]+//i; # my mysql version is 4.1.11
s/ENGINE\s*=\s*[^;\s]+//i; # my mysql version is 4.1.11
s/ROW_FORMAT=[^;\s]+//i; # my mysql version is 5.0.22
+ s/KEY_BLOCK_SIZE=8//i;
s/MIN_ROWS=[^;\s]+//i;
s/MAX_ROWS=[^;\s]+//i;
s/AVG_ROW_LENGTH=[^;\s]+//i;
--- /dev/null
+place_type,level\r
+Q9842,4\r
+Q9430,3\r
+Q928830,4\r
+Q9259,1\r
+Q91028,5\r
+Q8514,2\r
+Q8502,2\r
+Q83405,3\r
+Q82794,2\r
+Q820477,1\r
+Q811979,1\r
+Q8072,2\r
+Q79007,2\r
+Q786014,3\r
+Q75848,2\r
+Q75520,2\r
+Q728937,4\r
+Q7275,2\r
+Q719456,3\r
+Q7075,3\r
+Q697295,4\r
+Q6852233,2\r
+Q682943,3\r
+Q665487,5\r
+Q655686,3\r
+Q643589,5\r
+Q641226,2\r
+Q631305,2\r
+Q6256,2\r
+Q6023295,2\r
+Q5773747,5\r
+Q56061,1\r
+Q55659167,4\r
+Q55488,4\r
+Q55465477,3\r
+Q54050,2\r
+Q532,3\r
+Q53060,2\r
+Q52177058,4\r
+Q515716,5\r
+Q5153984,4\r
+Q515,3\r
+Q5144960,5\r
+Q5119,4\r
+Q5119,4\r
+Q5107,2\r
+Q5084,4\r
+Q5031071,4\r
+Q5003624,2\r
+Q4989906,1\r
+Q4976993,3\r
+Q486972,1\r
+Q486972,2\r
+Q483110,3\r
+Q4830453,4\r
+Q47521,3\r
+Q473972,1\r
+Q46831,2\r
+Q46614560,5\r
+Q44782,3\r
+Q44613,4\r
+Q44539,4\r
+Q44494,2\r
+Q44377,2\r
+Q4421,2\r
+Q43501,2\r
+Q4286337,3\r
+Q42523,3\r
+Q41176,2\r
+Q40357,3\r
+Q4022,4\r
+Q40080,2\r
+Q39816,2\r
+Q39715,3\r
+Q39614,1\r
+Q3957,3\r
+Q3947,4\r
+Q3914,3\r
+Q38723,2\r
+Q38720,3\r
+Q3623867,5\r
+Q35666,2\r
+Q355304,3\r
+Q35509,2\r
+Q35112127,3\r
+Q34985575,4\r
+Q34876,5\r
+Q34763,2\r
+Q34627,4\r
+Q3455524,3\r
+Q34442,4\r
+Q33837,2\r
+Q33506,3\r
+Q32815,4\r
+Q3257686,2\r
+Q3240715,2\r
+Q3191695,5\r
+Q3153117,2\r
+Q30198,2\r
+Q30139652,3\r
+Q294422,3\r
+Q2870166,3\r
+Q27686,3\r
+Q274153,3\r
+Q271669,1\r
+Q2659904,2\r
+Q24529780,2\r
+Q24354,3\r
+Q2354973,4\r
+Q23442,2\r
+Q23413,3\r
+Q23397,3\r
+Q2327515,4\r
+Q2311958,5\r
+Q22927291,6\r
+Q22698,1\r
+Q2175765,4\r
+Q205495,4\r
+Q204832,3\r
+Q2042028,2\r
+Q202216,6\r
+Q1970725,3\r
+Q194203,5\r
+Q194195,2\r
+Q190429,2\r
+Q185187,3\r
+Q185113,2\r
+Q183366,2\r
+Q1799794,1\r
+Q1788454,4\r
+Q1785071,3\r
+Q1777138,3\r
+Q177634,2\r
+Q177380,2\r
+Q174814,4\r
+Q174782,2\r
+Q17350442,2\r
+Q17343829,3\r
+Q17334923,0\r
+Q17018380,3\r
+Q16970,4\r
+Q16917,3\r
+Q16831714,4\r
+Q165,3\r
+Q160742,4\r
+Q159719,3\r
+Q159334,4\r
+Q15640612,5\r
+Q15324,2\r
+Q15284,5\r
+Q15243209,6\r
+Q152081,1\r
+Q15195406,4\r
+Q1500350,5\r
+Q149621,5\r
+Q14757767,4\r
+Q14350,3\r
+Q1410668,3\r
+Q1394476,3\r
+Q1377575,2\r
+Q1353183,3\r
+Q134447,4\r
+Q133215,3\r
+Q133056,2\r
+Q13221722,3\r
+Q13220204,2\r
+Q1311958,4\r
+Q1303167,3\r
+Q130003,3\r
+Q12518,2\r
+Q12516,3\r
+Q1248784,3\r
+Q123705,3\r
+Q12323,3\r
+Q12284,4\r
+Q12280,4\r
+Q121359,2\r
+Q1210950,2\r
+Q11755880,3\r
+Q11707,3\r
+Q11315,3\r
+Q11303,3\r
+Q1115575,4\r
+Q1107656,1\r
+Q10864048,1\r
+Q1076486,2\r
+Q105731,3\r
+Q105190,3\r
+Q1048525,3\r
+Q102496,5\r
+Q28872924,1\r
+Q15617994,1\r
+Q159313,2\r
+Q24398318,3\r
+Q327333,2\r
+Q43229,1\r
+Q860861,1\r
+Q4989906,1\r
--- /dev/null
+Q9842
+Q9430
+Q928830
+Q9259
+Q91028
+Q8514
+Q8502
+Q83405
+Q82794
+Q820477
+Q811979
+Q8072
+Q79007
+Q786014
+Q75848
+Q75520
+Q728937
+Q7275
+Q719456
+Q7075
+Q697295
+Q6852233
+Q682943
+Q665487
+Q655686
+Q643589
+Q641226
+Q631305
+Q6256
+Q6023295
+Q5773747
+Q56061
+Q55659167
+Q55488
+Q55465477
+Q54050
+Q532
+Q53060
+Q52177058
+Q515716
+Q5153984
+Q515
+Q5144960
+Q5119
+Q5107
+Q5084
+Q5031071
+Q5003624
+Q4989906
+Q4976993
+Q486972
+Q483110
+Q4830453
+Q47521
+Q473972
+Q46831
+Q46614560
+Q44782
+Q44613
+Q44539
+Q44494
+Q44377
+Q4421
+Q43501
+Q4286337
+Q42523
+Q41176
+Q40357
+Q4022
+Q40080
+Q39816
+Q39715
+Q39614
+Q3957
+Q3947
+Q3914
+Q38723
+Q38720
+Q3623867
+Q35666
+Q355304
+Q35509
+Q35112127
+Q34985575
+Q34876
+Q34763
+Q34627
+Q3455524
+Q34442
+Q33837
+Q33506
+Q32815
+Q3257686
+Q3240715
+Q3191695
+Q3153117
+Q30198
+Q30139652
+Q294422
+Q2870166
+Q27686
+Q274153
+Q271669
+Q2659904
+Q24529780
+Q24354
+Q2354973
+Q23442
+Q23413
+Q23397
+Q2327515
+Q2311958
+Q22927291
+Q22698
+Q2175765
+Q205495
+Q204832
+Q2042028
+Q202216
+Q1970725
+Q194203
+Q194195
+Q190429
+Q185187
+Q185113
+Q183366
+Q1799794
+Q1788454
+Q1785071
+Q1777138
+Q177634
+Q177380
+Q174814
+Q174782
+Q17350442
+Q17343829
+Q17334923
+Q17018380
+Q16970
+Q16917
+Q16831714
+Q165
+Q160742
+Q159719
+Q159334
+Q15640612
+Q15324
+Q15284
+Q15243209
+Q152081
+Q15195406
+Q1500350
+Q149621
+Q14757767
+Q14350
+Q1410668
+Q1394476
+Q1377575
+Q1353183
+Q134447
+Q133215
+Q133056
+Q13221722
+Q13220204
+Q1311958
+Q1303167
+Q130003
+Q12518
+Q12516
+Q1248784
+Q123705
+Q12323
+Q12284
+Q12280
+Q121359
+Q1210950
+Q11755880
+Q11707
+Q11315
+Q11303
+Q1115575
+Q1107656
+Q10864048
+Q1076486
+Q105731
+Q105190
+Q1048525
+Q102496
+Q28872924
+Q15617994
+Q159313
+Q24398318
+Q327333
+Q43229
+Q860861
--- /dev/null
+
+## Wikidata place types and related OSM Tags
+
+Wikidata does not have any official ontologies, however the [DBpedia project](https://wiki.dbpedia.org/) has created an [ontology](https://wiki.dbpedia.org/services-resources/ontology) that covered [place types](http://mappings.dbpedia.org/server/ontology/classes/#Place). The table below used the DBpedia place ontology as a starting point, and is provided as a cross-reference to the relevant OSM tags.
+
+The Wikidata place types listed in the table below can be used in conjunction with the [Wikidata Query Service](https://query.wikidata.org/) to retrieve instances of those place types from the Wikidata knowledgebase.
+
+```
+SELECT ?item ?lat ?lon
+WHERE {
+ ?item wdt:P31*/wdt:P279*wd:Q9430; wdt:P625 ?pt.
+ ?item p:P625?loc.
+ ?loc psv:P625?cnode.
+ ?cnode wikibase:geoLatitude?lat.
+ ?cnode wikibase:geoLongitude?lon.
+}
+```
+
+An example json return for all instances of the Wikidata item "Q9430" (Ocean) can be seen at [json](https://query.wikidata.org/bigdata/namespace/wdq/sparql?format=json&query=SELECT?item?lat?lon%20WHERE{?item%20wdt:P31*/wdt:P279*wd:Q9430;wdt:P625?pt.?item%20p:P625?loc.?loc%20psv:P625?cnode.?cnode%20wikibase:geoLatitude?lat.?cnode%20wikibase:geoLongitude?lon.})
+
+**NOTE** the OSM tags listed are those listed in the wikidata entries, and not all the possible matches for tags within OSM.
+
+
+ title | concept | OSM Tag |
+-----------|---------------------------------------|------------------|
+[Q17334923](https://www.wikidata.org/entity/Q17334923) | Location | |
+[Q811979](https://www.wikidata.org/entity/Q811979) | Architectural Structure | |
+[Q194195](https://www.wikidata.org/entity/Q194195) | Amusement park |
+[Q204832](https://www.wikidata.org/entity/Q204832) | Roller coaster | [attraction=roller_coaster](https://wiki.openstreetmap.org/wiki/Tag:attraction=roller_coaster) |
+[Q2870166](https://www.wikidata.org/entity/Q2870166) | Water ride | |
+[Q641226](https://www.wikidata.org/entity/Q641226) | Arena | [amenity=events_centre](https://wiki.openstreetmap.org/wiki/Tag:amenity=events_centre) |
+[Q41176](https://www.wikidata.org/entity/Q41176) | Building | [building=yes](https://wiki.openstreetmap.org/wiki/Key:building) |
+[Q1303167](https://www.wikidata.org/entity/Q1303167) | Barn | [building=barn](https://wiki.openstreetmap.org/wiki/Tag:building=barn) |
+[Q655686](https://www.wikidata.org/entity/Q655686) | Commercial building | [building=commercial](https://wiki.openstreetmap.org/wiki/Tag:building=commercial) |
+[Q4830453](https://www.wikidata.org/entity/Q4830453) | Business | |
+[Q7075](https://www.wikidata.org/entity/Q7075) | Library | [amenity=library](https://wiki.openstreetmap.org/wiki/Tag:amenity=library) |
+[Q133215](https://www.wikidata.org/entity/Q133215) | Casino | [amenity=casino](https://wiki.openstreetmap.org/wiki/Tag:amenity=casino) |
+[Q23413](https://www.wikidata.org/entity/Q23413) | Castle | [historic=castle](https://wiki.openstreetmap.org/wiki/Tag:historic=castle) |
+[Q83405](https://www.wikidata.org/entity/Q83405) | Factory | |
+[Q53060](https://www.wikidata.org/entity/Q53060) | Gate | [barrier=gate](https://wiki.openstreetmap.org/wiki/Tag:barrier=gate) |cnode%20wikibase:geoLatitude?lat.?cnode%20wikibase:geoLongitude?lon.})
+[Q11755880](https://www.wikidata.org/entity/Q11755880) | Residential Building | [building=residential](https://wiki.openstreetmap.org/wiki/Tag:building=residential) |
+[Q3947](https://www.wikidata.org/entity/Q3947) | House | [building=house](https://wiki.openstreetmap.org/wiki/Tag:building=house) |
+[Q35112127](https://www.wikidata.org/entity/Q35112127) | Historic Building | |
+[Q5773747](https://www.wikidata.org/entity/Q5773747) | Historic house | |
+[Q38723](https://www.wikidata.org/entity/Q38723) | Higher Education Institution |
+[Q3914](https://www.wikidata.org/entity/Q3914) | School | [amenity=school](https://wiki.openstreetmap.org/wiki/Tag:amenity=school) |
+[Q9842](https://www.wikidata.org/entity/Q9842) | Primary school | |
+[Q159334](https://www.wikidata.org/entity/Q159334) | Secondary school | |
+[Q16917](https://www.wikidata.org/entity/Q16917) | Hospital | [amenity=hospital](https://wiki.openstreetmap.org/wiki/Tag:amenity=hospital), [healthcare=hospital](https://wiki.openstreetmap.org/wiki/Tag:healthcare=hospital), [building=hospital](https://wiki.openstreetmap.org/wiki/Tag:building=hospital) |
+[Q27686](https://www.wikidata.org/entity/Q27686) | Hotel | [tourism=hotel](https://wiki.openstreetmap.org/wiki/Tag:tourism=hotel), [building=hotel](https://wiki.openstreetmap.org/wiki/Tag:building=hotel) |
+[Q33506](https://www.wikidata.org/entity/Q33506) | Museum | [tourism=museum](https://wiki.openstreetmap.org/wiki/Tag:tourism=museum) |
+[Q40357](https://www.wikidata.org/entity/Q40357) | Prison | [amenity=prison](https://wiki.openstreetmap.org/wiki/Tag:amenity=prison) |
+[Q24398318](https://www.wikidata.org/entity/Q24398318) | Religious Building | |
+[Q160742](https://www.wikidata.org/entity/Q160742) | Abbey | |
+[Q16970](https://www.wikidata.org/entity/Q16970) | Church (building) | [building=church](https://wiki.openstreetmap.org/wiki/Tag:building=church) |
+[Q44613](https://www.wikidata.org/entity/Q44613) | Monastery | [amenity=monastery](https://wiki.openstreetmap.org/wiki/Tag:amenity=monastery) |
+[Q32815](https://www.wikidata.org/entity/Q32815) | Mosque | [building=mosque](https://wiki.openstreetmap.org/wiki/Tag:building=mosque) |
+[Q697295](https://www.wikidata.org/entity/Q697295) | Shrine | [building=shrine](https://wiki.openstreetmap.org/wiki/Tag:building=shrine) |
+[Q34627](https://www.wikidata.org/entity/Q34627) | Synagogue | [building=synagogue](https://wiki.openstreetmap.org/wiki/Tag:building=synagogue) |
+[Q44539](https://www.wikidata.org/entity/Q44539) | Temple | [building=temple](https://wiki.openstreetmap.org/wiki/Tag:building=temple) |
+[Q11707](https://www.wikidata.org/entity/Q11707) | Restaurant | [amenity=restaurant](https://wiki.openstreetmap.org/wiki/Tag:amenity=restaurant) |
+[Q11315](https://www.wikidata.org/entity/Q11315) | Shopping mall | [shop=mall](https://wiki.openstreetmap.org/wiki/Tag:shop=mall), [shop=shopping_centre](https://wiki.openstreetmap.org/wiki/Tag:shop=shopping_centre) |
+[Q11303](https://www.wikidata.org/entity/Q11303) | Skyscraper | |
+[Q17350442](https://www.wikidata.org/entity/Q17350442) | Venue | |
+[Q41253](https://www.wikidata.org/entity/Q41253) | Movie Theater | [amenity=cinema](https://wiki.openstreetmap.org/wiki/Tag:amenity=cinema) |
+[Q483110](https://www.wikidata.org/entity/Q483110) | Stadium | [leisure=stadium](https://wiki.openstreetmap.org/wiki/Tag:leisure=stadium), [building=stadium](https://wiki.openstreetmap.org/wiki/Tag:building=stadium) |
+[Q24354](https://www.wikidata.org/entity/Q24354) | Theater (structure) | [amenity=theatre](https://wiki.openstreetmap.org/wiki/Tag:amenity=theatre) |
+[Q121359](https://www.wikidata.org/entity/Q121359) | Infrastructure | |
+[Q1248784](https://www.wikidata.org/entity/Q1248784) | Airport | |
+[Q12323](https://www.wikidata.org/entity/Q12323) | Dam | [waterway=dam](https://wiki.openstreetmap.org/wiki/Tag:waterway=dam) |
+[Q1353183](https://www.wikidata.org/entity/Q1353183) | Launch pad | |
+[Q105190](https://www.wikidata.org/entity/Q105190) | Levee | [man_made=dyke](https://wiki.openstreetmap.org/wiki/Tag:man_made=dyke) |
+[Q105731](https://www.wikidata.org/entity/Q105731) | Lock (water navigation) | [lock=yes](https://wiki.openstreetmap.org/wiki/Key:lock) |
+[Q44782](https://www.wikidata.org/entity/Q44782) | Port | |
+[Q159719](https://www.wikidata.org/entity/Q159719) | Power station | [power=plant](https://wiki.openstreetmap.org/wiki/Tag:power=plant) |
+[Q174814](https://www.wikidata.org/entity/Q174814) | Electrical substation | |
+[Q134447](https://www.wikidata.org/entity/Q134447) | Nuclear power plant | [plant:source=nuclear](https://wiki.openstreetmap.org/wiki/Tag:plant:source=nuclear) |
+[Q786014](https://www.wikidata.org/entity/Q786014) | Rest area | [highway=rest_area](https://wiki.openstreetmap.org/wiki/Tag:highway=rest_area), [highway=services](https://wiki.openstreetmap.org/wiki/Tag:highway=services) |
+[Q12280](https://www.wikidata.org/entity/Q12280) | Bridge | [bridge=* ](https://wiki.openstreetmap.org/wiki/Key:bridge), [man_made=bridge](https://wiki.openstreetmap.org/wiki/Tag:man_made=bridge) |
+[Q728937](https://www.wikidata.org/entity/Q728937) | Railroad Line | [railway=rail](https://wiki.openstreetmap.org/wiki/Tag:railway=rail) |
+[Q1311958](https://www.wikidata.org/entity/Q1311958) | Railway Tunnel | |
+[Q34442](https://www.wikidata.org/entity/Q34442) | Road | [highway=* ](https://wiki.openstreetmap.org/wiki/Key:highway), [route=road](https://wiki.openstreetmap.org/wiki/Tag:route=road) |
+[Q1788454](https://www.wikidata.org/entity/Q1788454) | Road junction | |
+[Q44377](https://www.wikidata.org/entity/Q44377) | Tunnel | [tunnel=* ](https://wiki.openstreetmap.org/wiki/Key:tunnel) |
+[Q5031071](https://www.wikidata.org/entity/Q5031071) | Canal tunnel | |
+[Q719456](https://www.wikidata.org/entity/Q719456) | Station | [public_transport=station](https://wiki.openstreetmap.org/wiki/Tag:public_transport=station) |
+[Q205495](https://www.wikidata.org/entity/Q205495) | Filling station | [amenity=fuel](https://wiki.openstreetmap.org/wiki/Tag:amenity=fuel) |
+[Q928830](https://www.wikidata.org/entity/Q928830) | Metro station | [station=subway](https://wiki.openstreetmap.org/wiki/Tag:station=subway) |
+[Q55488](https://www.wikidata.org/entity/Q55488) | Train station | [railway=station](https://wiki.openstreetmap.org/wiki/Tag:railway=station) |
+[Q2175765](https://www.wikidata.org/entity/Q2175765) | Tram stop | [railway=tram_stop](https://wiki.openstreetmap.org/wiki/Tag:railway=tram_stop), [public_transport=stop_position](https://wiki.openstreetmap.org/wiki/Tag:public_transport=stop_position) |
+[Q6852233](https://www.wikidata.org/entity/Q6852233) | Military building | |
+[Q44494](https://www.wikidata.org/entity/Q44494) | Mill (grinding) | |
+[Q185187](https://www.wikidata.org/entity/Q185187) | Watermill | [man_made=watermill](https://wiki.openstreetmap.org/wiki/Tag:man_made=watermill) |
+[Q38720](https://www.wikidata.org/entity/Q38720) | Windmill | [man_made=windmill](https://wiki.openstreetmap.org/wiki/Tag:man_made=windmill) |
+[Q4989906](https://www.wikidata.org/entity/Q4989906) | Monument | [historic=monument](https://wiki.openstreetmap.org/wiki/Tag:historic=monument) |
+[Q5003624](https://www.wikidata.org/entity/Q5003624) | Memorial | [historic=memorial](https://wiki.openstreetmap.org/wiki/Tag:historic=memorial) |
+[Q271669](https://www.wikidata.org/entity/Q271669) | Landform | |
+[Q190429](https://www.wikidata.org/entity/Q190429) | Depression (geology) | |
+[Q17018380](https://www.wikidata.org/entity/Q17018380) | Bight (geography) | |
+[Q54050](https://www.wikidata.org/entity/Q54050) | Hill | |
+[Q1210950](https://www.wikidata.org/entity/Q1210950) | Channel (geography) | |
+[Q23442](https://www.wikidata.org/entity/Q23442) | Island | [place=island](https://wiki.openstreetmap.org/wiki/Tag:place=island) |
+[Q42523](https://www.wikidata.org/entity/Q42523) | Atoll | |
+[Q34763](https://www.wikidata.org/entity/Q34763) | Peninsula | |
+[Q355304](https://www.wikidata.org/entity/Q355304) | Watercourse | |
+[Q30198](https://www.wikidata.org/entity/Q30198) | Marsh | [wetland=marsh](https://wiki.openstreetmap.org/wiki/Tag:wetland=marsh) |
+[Q75520](https://www.wikidata.org/entity/Q75520) | Plateau | |
+[Q2042028](https://www.wikidata.org/entity/Q2042028) | Ravine | |
+[Q631305](https://www.wikidata.org/entity/Q631305) | Rock formation | |
+[Q12516](https://www.wikidata.org/entity/Q12516) | Pyramid | |
+[Q1076486](https://www.wikidata.org/entity/Q1076486) | Sports venue | |
+[Q682943](https://www.wikidata.org/entity/Q682943) | Cricket field | [sport=cricket](https://wiki.openstreetmap.org/wiki/Tag:sport=cricket) |
+[Q1048525](https://www.wikidata.org/entity/Q1048525) | Golf course | [leisure=golf_course](https://wiki.openstreetmap.org/wiki/Tag:leisure=golf_course) |
+[Q1777138](https://www.wikidata.org/entity/Q1777138) | Race track | [highway=raceway](https://wiki.openstreetmap.org/wiki/Tag:highway=raceway) |
+[Q130003](https://www.wikidata.org/entity/Q130003) | Ski resort | |
+[Q174782](https://www.wikidata.org/entity/Q174782) | Town square | [place=square](https://wiki.openstreetmap.org/wiki/Tag:place=square) |
+[Q12518](https://www.wikidata.org/entity/Q12518) | Tower | [building=tower](https://wiki.openstreetmap.org/wiki/Tag:building=tower), [man_made=tower](https://wiki.openstreetmap.org/wiki/Tag:man_made=tower) |
+[Q39715](https://www.wikidata.org/entity/Q39715) | Lighthouse | [man_made=lighthouse](https://wiki.openstreetmap.org/wiki/Tag:man_made=lighthouse) |
+[Q274153](https://www.wikidata.org/entity/Q274153) | Water tower | [building=water_tower](https://wiki.openstreetmap.org/wiki/Tag:building=water_tower), [man_made=water_tower](https://wiki.openstreetmap.org/wiki/Tag:man_made=water_tower) |
+[Q43501](https://www.wikidata.org/entity/Q43501) | Zoo | [tourism=zoo](https://wiki.openstreetmap.org/wiki/Tag:tourism=zoo) |
+[Q39614](https://www.wikidata.org/entity/Q39614) | Cemetery | [amenity=grave_yard](https://wiki.openstreetmap.org/wiki/Tag:amenity=grave_yard), [landuse=cemetery](https://wiki.openstreetmap.org/wiki/Tag:landuse=cemetery) |
+[Q152081](https://www.wikidata.org/entity/Q152081) | Concentration camp | |
+[Q1107656](https://www.wikidata.org/entity/Q1107656) | Garden | [leisure=garden](https://wiki.openstreetmap.org/wiki/Tag:leisure=garden) |
+[Q820477](https://www.wikidata.org/entity/Q820477) | Mine | |
+[Q33837](https://www.wikidata.org/entity/Q33837) | Archipelago | [place=archipelago](https://wiki.openstreetmap.org/wiki/Tag:place=archipelago) |
+[Q40080](https://www.wikidata.org/entity/Q40080) | Beach | [natural=beach](https://wiki.openstreetmap.org/wiki/Tag:natural=beach) |
+[Q15324](https://www.wikidata.org/entity/Q15324) | Body of water | [natural=water](https://wiki.openstreetmap.org/wiki/Tag:natural=water) |
+[Q23397](https://www.wikidata.org/entity/Q23397) | Lake | [water=lake](https://wiki.openstreetmap.org/wiki/Tag:water=lake) |
+[Q9430](https://www.wikidata.org/entity/Q9430) | Ocean | |
+[Q165](https://www.wikidata.org/entity/Q165) | Sea | |
+[Q47521](https://www.wikidata.org/entity/Q47521) | Stream | |
+[Q12284](https://www.wikidata.org/entity/Q12284) | Canal | [waterway=canal](https://wiki.openstreetmap.org/wiki/Tag:waterway=canal) |
+[Q4022](https://www.wikidata.org/entity/Q4022) | River | [waterway=river](https://wiki.openstreetmap.org/wiki/Tag:waterway=river), [type=waterway](https://wiki.openstreetmap.org/wiki/Relation:waterway) |
+[Q185113](https://www.wikidata.org/entity/Q185113) | Cape | [natural=cape](https://wiki.openstreetmap.org/wiki/Tag:natural=cape) |
+[Q35509](https://www.wikidata.org/entity/Q35509) | Cave | [natural=cave_entrance](https://wiki.openstreetmap.org/wiki/Tag:natural=cave_entrance) |
+[Q8514](https://www.wikidata.org/entity/Q8514) | Desert | |
+[Q4421](https://www.wikidata.org/entity/Q4421) | Forest | [natural=wood](https://wiki.openstreetmap.org/wiki/Tag:natural=wood) |
+[Q35666](https://www.wikidata.org/entity/Q35666) | Glacier | [natural=glacier](https://wiki.openstreetmap.org/wiki/Tag:natural=glacier) |
+[Q177380](https://www.wikidata.org/entity/Q177380) | Hot spring | |
+[Q8502](https://www.wikidata.org/entity/Q8502) | Mountain | [natural=peak](https://wiki.openstreetmap.org/wiki/Tag:natural=peak) |
+[Q133056](https://www.wikidata.org/entity/Q133056) | Mountain pass | |
+[Q46831](https://www.wikidata.org/entity/Q46831) | Mountain range | |
+[Q39816](https://www.wikidata.org/entity/Q39816) | Valley | [natural=valley](https://wiki.openstreetmap.org/wiki/Tag:natural=valley) |
+[Q8072](https://www.wikidata.org/entity/Q8072) | Volcano | [natural=volcano](https://wiki.openstreetmap.org/wiki/Tag:natural=volcano) |
+[Q43229](https://www.wikidata.org/entity/Q43229) | Organization | |
+[Q327333](https://www.wikidata.org/entity/Q327333) | Government agency | [office=government](https://wiki.openstreetmap.org/wiki/Tag:office=government)|
+[Q22698](https://www.wikidata.org/entity/Q22698) | Park | [leisure=park](https://wiki.openstreetmap.org/wiki/Tag:leisure=park) |
+[Q159313](https://www.wikidata.org/entity/Q159313) | Urban agglomeration | |
+[Q177634](https://www.wikidata.org/entity/Q177634) | Community | |
+[Q5107](https://www.wikidata.org/entity/Q5107) | Continent | [place=continent](https://wiki.openstreetmap.org/wiki/Tag:place=continent) |
+[Q6256](https://www.wikidata.org/entity/Q6256) | Country | [place=country](https://wiki.openstreetmap.org/wiki/Tag:place=country) |
+[Q75848](https://www.wikidata.org/entity/Q75848) | Gated community | |
+[Q3153117](https://www.wikidata.org/entity/Q3153117) | Intercommunality | |
+[Q82794](https://www.wikidata.org/entity/Q82794) | Region | |
+[Q56061](https://www.wikidata.org/entity/Q56061) | Administrative division | [boundary=administrative](https://wiki.openstreetmap.org/wiki/Tag:boundary=administrative) |
+[Q665487](https://www.wikidata.org/entity/Q665487) | Diocese | |
+[Q4976993](https://www.wikidata.org/entity/Q4976993) | Parish | [boundary=civil_parish](https://wiki.openstreetmap.org/wiki/Tag:boundary=civil_parish) |
+[Q194203](https://www.wikidata.org/entity/Q194203) | Arrondissements of France | |
+[Q91028](https://www.wikidata.org/entity/Q91028) | Arrondissements of Belgium | |
+[Q3623867](https://www.wikidata.org/entity/Q3623867) | Arrondissements of Benin | |
+[Q2311958](https://www.wikidata.org/entity/Q2311958) | Canton (country subdivision) | [political_division=canton](https://wiki.openstreetmap.org/wiki/FR:Cantons_in_France) |
+[Q643589](https://www.wikidata.org/entity/Q643589) | Department | |
+[Q202216](https://www.wikidata.org/entity/Q202216) | Overseas department and region | |
+[Q149621](https://www.wikidata.org/entity/Q149621) | District | [place=district](https://wiki.openstreetmap.org/wiki/Tag:place=district) |
+[Q15243209](https://www.wikidata.org/wiki/Q15243209) | Historic district | |
+[Q5144960](https://www.wikidata.org/entity/Q5144960) | Microregion | |
+[Q15284](https://www.wikidata.org/entity/Q15284) | Municipality | |
+[Q515716](https://www.wikidata.org/entity/Q515716) | Prefecture | |
+[Q34876](https://www.wikidata.org/entity/Q34876) | Province | |
+[Q3191695](https://www.wikidata.org/entity/Q3191695) | Regency (Indonesia) | |
+[Q1970725](https://www.wikidata.org/entity/Q1970725) | Natural region | |
+[Q486972](https://www.wikidata.org/entity/Q486972) | Human settlement | |
+[Q515](https://www.wikidata.org/entity/Q515) | City | [place=city](https://wiki.openstreetmap.org/wiki/Tag:place=city) |
+[Q5119](https://www.wikidata.org/entity/Q5119) | Capital city | [capital=yes](https://wiki.openstreetmap.org/wiki/Key:capital) |
+[Q4286337](https://www.wikidata.org/entity/Q4286337) | City district | |
+[Q1394476](https://www.wikidata.org/entity/Q1394476) | Civil township | |
+[Q1115575](https://www.wikidata.org/entity/Q1115575) | Civil parish | [designation=civil_parish](https://wiki.openstreetmap.org/wiki/Tag:designation=civil_parish) |
+[Q5153984](https://www.wikidata.org/entity/Q5153984) | Commune-level subdivisions | |
+[Q123705](https://www.wikidata.org/entity/Q123705) | Neighbourhood | [place=neighbourhood](https://wiki.openstreetmap.org/wiki/Tag:place=neighbourhood) |
+[Q1500350](https://www.wikidata.org/entity/Q1500350) | Townships of China | |
+[Q17343829](https://www.wikidata.org/entity/Q17343829) | Unincorporated Community | |
+[Q3957](https://www.wikidata.org/entity/Q3957) | Town | [place=town](https://wiki.openstreetmap.org/wiki/Tag:place=town) |
+[Q532](https://www.wikidata.org/entity/Q532) | Village | [place=village](https://wiki.openstreetmap.org/wiki/Tag:place=village) |
+[Q5084](https://www.wikidata.org/entity/Q5084) | Hamlet | [place=hamlet](https://wiki.openstreetmap.org/wiki/Tag:place=hamlet) |
+[Q7275](https://www.wikidata.org/entity/Q7275) | State | |
+[Q79007](https://www.wikidata.org/entity/Q79007) | Street | |
+[Q473972](https://www.wikidata.org/entity/Q473972) | Protected area | [boundary=protected_area](https://wiki.openstreetmap.org/wiki/Tag:boundary=protected_area) |
+[Q1377575](https://www.wikidata.org/entity/Q1377575) | Wildlife refuge | |
+[Q1410668](https://www.wikidata.org/entity/Q1410668) | National Wildlife Refuge | [protection_title=National Wildlife Refuge](ownership=national), [ownership=national](https://wiki.openstreetmap.org/wiki/Tag:ownership=national)|
+[Q9259](https://www.wikidata.org/entity/Q9259) | World Heritage Site | |
+
+---
+
+### Future Work
+
+The Wikidata improvements to Nominatim can be further enhanced by:
+
+- continuing to add new Wikidata links to OSM objects
+- increasing the number of place types accounted for in the wikipedia_articles table
+- working to use place types in the wikipedia_article matching process
+++ /dev/null
---
--- PostgreSQL database dump
---
-
-SET statement_timeout = 0;
-SET client_encoding = 'UTF8';
-SET standard_conforming_strings = off;
-SET check_function_bodies = false;
-SET client_min_messages = warning;
-SET escape_string_warning = off;
-
-SET search_path = public, pg_catalog;
-
-SET default_tablespace = '';
-
-SET default_with_oids = false;
-
-CREATE TABLE country_naturalearthdata (
- country_code character varying(2),
- geometry geometry,
- CONSTRAINT enforce_dims_geometry CHECK ((st_ndims(geometry) = 2)),
- CONSTRAINT enforce_srid_geometry CHECK ((st_srid(geometry) = 4326))
-);
-
-COPY country_naturalearthdata (country_code, geometry) FROM stdin;
-af 0106000020E610000001000000010300000001000000450000003033F10DFC9A4E407CCCF99135D341406024E0FC851D4F406624EC1DA5A24140DC2C1A6A097E4F40963C379CB7B3414090D427DEC5984F407A55829AB7ED4140F880D288CFFD4F4028480EC0040142400ECD8E83F9225040168D5204F22742400C60EE2FC02F5040462F260B508E42401A831052B165504080FCF25711A74240C634F569B86F50402A780706A1D44240D02047A2E98D5040ACC285B767B24240AA0C99DA30A150409AC285B76FAE42406E69289DD9C450401811A11F96AD4240DC03C2B61EF550404481DE298F924240A441CC0DAD08514060ADD76FF582424024C41A29013751403E0A673213AC4240B0BDE0BB8F4C5140646993AB58934240CA16D3C7336151405459829AF3CD424048BB430576875140C46D30E24ACB424086CC541651915140FA857BE019DE42401EE1025E159851402668F6F4B6114340DEC27DF2A2B351403C21157A3E3E4340CC18D3C747D6514010766ACF232143407E82D66452CF5140E089189704FA42400219D3C7AEE25140FEF6B86AF0F34240B882D664B7DC51404817DB0C67884240B845CC8D0EF651401C3C9A657C5E4240BA19D3C75A0C524010EE7E7D6179424088D2F1CCC2285240926C3062168642407A7AFFC0A4505240A6B8AE9364BF42401CF6136FB77C5240666D30E2F5B5424012FE4D5CB8BE52400C7BA43CC2B54240884292201DCA52402299292807914240B20E5F6DDBA4524042C522EEAA824240944B69C452845240D48AB5CD076B42400869EEAFE13A5240C220B230295C424036F7B0A529F65140E6B94BCA454142403CA15B50CAD05140C85CBC878509424080A15BD0EBDF5140E09529A845D34140DA0EFCA33CE75140FE64932B9C934140887B9C775CC751405EE24410D75D414048FDEA9208CA514096F25521A92C41402A93E7756FB85140FE2489D492FE404014BB43058E7B5140889C004C93024140764769C4B5945140AC349A65E4AD404002EE7638FA6B51409CE57EFD808D404096C41A29CD505140B2E71BB43F404040088E4A3F5654514080252AF4C2E63F406E9484AC4E3B51406C80B9B6C49E3F40A02D1EC6A423514034ADB27C9BB63F40201FAA6BBBF25040AC8356ED3A953F40CEEB76B8BCEB5040D44B86839B4D3F402AE43CCB16BC5040303E12A90E4E3F40A8CBF1CC6998504020791C8028BD3E408680739B2C9650408CD1AB4250E33D40FAF987C9FF425040E4C871D5E0783D40C858B4426D1650409C1EC72A5E8F3D4044DA02DE78095040D07956ED3F573D40A4B6A2F26EC64F40F813F086E4773D40981032B561464F4058EA93F78D513D4094B7DC5FE76F4E403C5DD10149D43D40A8045B11FFE34E401CDCE5AF60BC3E408C156C2283D94E40F818535027613F40FCFB20A491784E409CCED49E4E8C3F406C95BA3D8C6E4E404E0204E96917404010247D339E444E40F6B885379A7D4040547AD2885A7B4E4020E3E1C6B0C340403CBA7996A3434E4090CB96C895D640401462870ACF664E40623A379CB93341403033F10DFC9A4E407CCCF99135D34140
-al 0106000020E6100000010000000103000000010000001600000048D9A0741A973440267730E27DED4440B03B6AA49276344040B7D76FEEC144404865C633ED9A3440BC56AB76098B4440A829BC5C210535406A26157ADE6B44402889E855FFFF344054D7F9913D4A4440C8FBC296CCAC34401EBFAE13AE374440C8DC3DAB709D34406EF81BB4140E44402007377167263440E2E26DECFFCF434040E4144FE1FA3340F434268BF5D84340E8D93DABC2F533404E1304E91EF54340985C29FDF4673340FA02F35719204440E0699DD7AD513340908C7BE0155D4440709DD00A4F6733406EBA74A66CB4444008019A3A3F8A3340C4C8E88028DC444080D0033E2C5F3340B028157A53F0444028F95FCDF24D3340965C482D0E194540301D82EFF0BC3340B0FA7E7D1858454018B71B8936CD334072F3441003404540407EAEE818123440846E59BE574B4540D052B522A448344040267843FE284540F001FD03E185344096E86DECE21B454048D9A0741A973440267730E27DED4440
-dz 0106000020E6100000010000000103000000010000003D000000B04B5934BFFF274054B5AB42BF783740309E963E52252140085BF323CF90354020FF55D9D3B51640587B4FB3E8993340400FB268D61111408CD5DE75BF273340C0DF1853DB4309407864A16BAF0E3340C0F3C69A5C2C09406C26FA5D8EB13340C0ED9D3EFD770540ACAF82E631DB33400090BCC3E87C00400899376869243440000205ADF02BFD3FB034D1015E9C3440805C395D06CDF8BFA4305D27ECCA3640A0EEDD597FB113C0C4C2E5AF7DF93840F0771BA6695E21C0389AB27C4F653B4088D00D328B5421C0E004B619E8963B4090F969C1255921C03474B9B65ED73C4060817E2DA63C1CC00C11535048943D4040731B64163E18C078077CAC50BB3D40608ADABCF0F714C06CFEA4081D003E4020A99915477013C06CCD71D54D803E40C02596F405860DC0C0CBD49E9EE53E4040FB3965132E0DC048B04FB325A33F4040095C87458D08C0ACB04FB378B93F4080881E7DCEEE04C0223C7189130C4040805FE7A427EDF4BF6AF1F257A6214040006ECF5929FEF1BFAEF58F0E65534040801D062A7335F6BFEE25260B986E404000B11AD83ABCFBBFF6A97426B9F54040802558E211B0FCBF4A0E3ED692434140804C25B7FB5B01C078A29D028E95414000DED2F66F56F3BF207EDE2980DB414000609BF06C50C0BFEE1EB2B0BFF14140005143C7C11FE03F903E371C9026424080D7F39B7F78F73FF6FAF2D7854D4240C0B6BCC3284B0940CED533FF56644240E093C61656431340845EBC87B96E424020143E8ECD471540F453E5E3B65B4240407359761A0C1940AC958CF1298E4240A0E5856F50521D402470CD18278F42400031CAB3C4F21E40E6B311DD5E7142404003FDA488D72040B25EBC8724794240E0A1D0AB866F204096FAF25772374240A06C0042B3C0204038B4AE936CBD414010E277B92E4820405A3ED4D2DB53414080FD33B711191E403C2589D4760C4140E068375458731E409A5DF6F40BAC404000E814F066DC204040855284C95F404070DAA015D2E020408C8B8CF1CD404040B0BD7EF3771C2240BA9B9D02250D4040F072630BDBF62240208F67FEBB4E3E40E086741C7C9C2340F40CB619B56C3D4010E066A851B82340800719E3C1F53C4040264823265E2340004F9794E8243C40C078004223832340206FB9B631B03B40A03D93A113422340BC09F08615243B4090D48F04BD6E2340CC0D2AF41F833A40E09D5CD189A3224078F77BAC25183A40C0EA3D4C46D2234070500B6F8E5D394080EEDA8282E52340B4AA9A31DCEF384090A65CD1919B2440F0EF7BAC1A61384030D01B2AF08A254090F7B519029038407055CD0E101F2740343D979410193840B04B5934BFFF274054B5AB42BF783740
-ao 0106000020E61000000100000001030000000100000042000000A06441E9E877274018AC9C9E484D31C0F0BFD0ABBA47274028B0D60B53AC30C0501D606E9C8E2740F0E76F0D6F962FC0207952FA453F2840E819DDADB2C12DC0800578B9EA592840988D5425F6E52CC09064077C0C0029403CE5801E6C182BC0D0FC03DF197A29401C59F8959B462AC0E0C7963E36A02A4094C098699EF728C050D80A1977442B40E429393DC91328C0E00FDB823A7A2B40A4677D81819826C04079DE1F6D5F2B40EC43F8954F7625C0206230D84FC62A40102273AA45BF24C0A003A115F23D2A40CC2D84BBA68823C00027606E30C029401CC21D55785522C0603FABECADDB2940BC9A5EFC0DEB21C0A03E0EB60D792A400CC7F4F8102021C020989D78B7DD2940288EFA02DB621EC030D74486E374294010CADB7D5FB51BC0B087C6D4667428407881D1A6832D19C07077B5C315A52840D8AD67A37E6618C0E0E4B8606878294068FD1FC2DBDC17C0609C3AAFBB0C2A40087CD1A603F017C040093E4C4EC02A40E879D1A6FB7417C00815BC5C9753304048392A99878217C0103F18ECBB92304058351988967D1AC010990A7835DC304038F8370DA2E31CC03082BFF909173140886E7517C92E1EC0404DEF8F147931404085EA21192320C0C04C52595C22324090804CBB61F31FC0182C3037D4763240A8DD78B457631FC088689DD749043340C850B6BEF6F31FC088BEF22CA72A334040C7CA6CE6F31EC0E8033771E16A3340D8603BAA289F1CC000333037A8093440B04B8D6227771CC0F01748827417344010E96069B9C51BC02043A411119A3440789A4581DCC11BC038BA1B89C683344098966EDDCB321DC080AE0A7865BA35404000727ADA291DC0D8F24EBC17BF3540B80E0FB12AAE1FC0D8DB033EFAF2354010A66F0D9F9C20C0004507DB42CD35404C9A5EFC41D121C0605618EC0BE03540C076026D230C23C0C84607DB70353640EC2E84BB22CA23C05813D4A7BF27364084BE6F0D6B2B26C09036F6C91D6736400813C56274FC25C02880D7445CD6364094681AB8050926C078E2033EF07437405815629958BC25C0902F82EF86E93740D8DBF4F888DA25C0C0EB3DAB940438409041BE287F7926C068AA969D76E7374090017AE4CE7127C008EC3DAB74143840103273AAF16128C0388FAEE850EE374044872BC9B62129C068F9B185210438402C6809A774D229C0B0CAF22C13EF3540F81C8BF5FFCB29C03012D4A749E335401C70CC348F1430C01004C396FE8F3640028FB4E900E630C03074636A0D373740303288F0EA8531C0489F969D8E60354008A862313EEE31C080D53DABC8F4324022C6E71C02CA31C0A0CB033E68433240403188F0584F31C090D6D0AB5E6B2C404E0F66CE645A31C0E0A8D7E5F31D2C407AED43AC626C31C0E01078B9BAEC2A402896EE56A1F830C0B0930042CFA02940227EA3D8FBF030C0C0A9E8F6506E28402226B14C961C31C0A06441E9E877274018AC9C9E484D31C0
-ao 0106000020E61000000100000001030000000100000009000000208E00425B5D2840E8F6828BE32817C020B8F90776D42740F09090FFE52614C0D0A3AE8920A32840F0222A99C76C12C05021C337D43D294090B9C33289C011C01028606EB4FD2940B844AF84D91F13C0D087299E62432940202DC7CF0FF713C070C0963E9EEF284050DC717A52FE14C0F0B5BF9A95DF2840D85E8628BABC16C0208E00425B5D2840E8F6828BE32817C0
-ar 0106000020E6100000010000000103000000010000000C000000EE128DE4FFEF50C0545BD09DCCEC4AC0EE128DE4FFEF50C0815496A4CCEC4AC0C8F207B9CC9C50C0843AAEEF99394BC0B805B640334350C09D606D489A594BC09732AF06006050C0B6616D4899994BC0C8F207B9CC9C50C02B54F96D00A04BC013AFC3346FBD50C076640A7FCA724BC0193F86EAFEE350C0F62600A85B6F4BC09F3212D0882851C01E838F6A4C6F4BC034A34F1A322551C04FA7EBF99F594AC007394C3D001051C04F2DD74BCD8C4AC0EE128DE4FFEF50C0545BD09DCCEC4AC0
-ar 0106000020E6100000010000000103000000010000006E000000C8822E77A5104BC0D4471416328C39C00EAE27BD6DD04AC06E5B2527F71F3AC06C6646C209D34AC0B2B717B368EC3AC080D5E615D03E4BC07A49DAA889793BC064DA83CCC5944BC004A4CC34C5E13BC04643EA323C254CC0325D4E834EDA3CC0FAD8495F04D04CC0942C7E195F373EC0B4D20FF2FDEF4CC0D04E03053D043FC0EE434D7C3B124DC041A6E44BB20540C0B8AD5099FA104DC072A8E44B318540C08E3D130FC02C4DC004572C2DB0A140C0A2F2945DAA364DC0AAC5CC0069F440C0440743A56A3F4DC0AA07740E3B3741C0EA414DFCE79C4CC08C09740EDEA441C0CC3EB0C561AE4CC0221C851F1BFD41C0D6404DFC655E4CC014804E4FE13442C0B2993F88E6644CC056174BB2667342C040D9495FE4DF4CC022E0DD11891743C06E2E027EAD9D4DC004632C2D305C43C0A89C059B649E4EC0843AD09DD67643C09A278EA3002B4FC063854E4FF26943C002056C0119104FC0DCE2DD1149B643C0CA5AC1D64E2A4FC058884E4F171644C018DC0FF2AF124FC04B2DBF8CA45644C0BC952E77765F4FC0937CDA74AE8344C0B2197D929FE24FC02CFB8B59599544C047BA378FDA2E50C0BE26851FBE6644C0FB9BB2E38D4750C0DE4C44783B8844C060C171BCA03E50C0C2D092936C0745C06F8D3E096B1350C0167C3D3EF42D45C0E4861DE6C2E04FC0E08FEB85970545C0B69ACBADA1BA4FC03427E8E8144845C01A8AA1523E1850C08A355CC3D06F45C0A39815ADA24B50C0FCE4A3A468BF45C011DD59710B5550C01E395CC32C4046C01A70B95D2D6450C05274C963B58446C0C1A78947A3A050C07696EB85128546C0744CFA84CDD250C0CD675589A4C646C039273BAC27E550C0D0F8177FA02647C0C15C0B5636A650C0C4ECA3A4578447C099735694066950C06DBD0DA8399E47C0AFF5A4AF0B7F50C0C24ED09D0F1148C0D29A15ADA2CA50C0BC0B8C59425948C030A989C73AF450C0AC9D4E4F51EF48C0DFF16AC2A32E51C02338E8E8D12149C064037CD3DD4851C0F4687EE5C25D49C05E58D128323451C03ACE4789B3E249C058D91F84990951C005BB9941CC2C4AC0BDC80E33942451C0A0D91E2D54264AC03A41862AE55F51C04C7655FD45124AC0908B67258CFA51C0745096A427014AC0EC40E9F3141552C0EBA788BC85B649C05C1B2A9BD61352C0985EA741A85649C09230D8A2723E52C01F28D7D7E75E49C05B973EC9FE5452C04F8AA0077C3049C0DE9ADB7F965A52C0DF9FEB85C2A848C03630D8E27C2952C08B0F2990767048C0843D4CBD311552C064180034431F48C052852D78A11C52C0EA873D3E88DE47C00803DF5CB4FA51C02CA85F60427147C0CA5E6E1F54E351C0C890B118C6C746C0906CE23932EA51C0394B6DD4A17C46C09EF46A0242CE51C0A6EEDD11626446C0E1B3C3741BD551C06B8777AB293446C07F9C78B6CAF251C02046D09D841A46C044BE9A18B3DD51C06EB27071D0E445C0204E5D4E96FA51C0FE17D7D74BB445C038F2CD8B870952C0CA6A2C2DA02045C02ABBFDA1CBEF51C0CC446DD4930645C0672FD8629BFA51C06286B1188A6A44C0744AC09791EB51C05BF151EC71E743C0924D5D0E77DA51C016D46937407543C05E279E7523B451C0A028BF8CC84643C032D9828D97C751C06815AE7BD5C942C0A3168DE4CCC751C01C3233673D5442C098452361589751C03856F2BFA60042C064D882CDD59851C08E4DB852B89541C09A7BF3CA4E7451C0708525F3C61841C0D04B5D4E257451C05C0F4BB20EA340C08D269EF5C28451C006205CC3AC8B40C0D21CC7913EA251C00A351B50715D3FC08E1F6408D17A51C0BC0085531A563EC049F36A02DE8051C056DA6231305E3DC05F07190AFE6951C09EB7DD458A753CC0BE51973B144051C07EB3DD456E853BC0B06F1C27EA1251C06ABE51203BE63AC0C4C80E33112651C0249792C7C4813AC03AAD263EB41851C0FA3CA03B5D2F3AC099027CD3BA1A51C006629901C08438C088239E3505D550C01EA4DD457A0638C0F88CA1120EBF50C09EB0EE5681FC36C0C5374CBDD3C650C0EEB28B8D65BC36C04E118D647E9150C0E63AB14C12D535C04476F3CAC03D50C0BC31DAA86B1336C0BDFADE1C211850C0C27581B64FCC36C0682454B650FE4FC062CE10795FFE35C0C4FF3114596C4FC0E62366CEF40836C062C5C4F3AF574FC0041E2C61C03F36C0D2D5723B5C6C4EC030252C6176E137C0DADAAC28B5034EC038B5EE56650838C064454DFC4F674DC0AE88585A7EC538C0FE202BDA7BE34CC058167E198F2939C0663FB0C51BD14CC06C3AA03B899A39C034B2ED4F204F4DC0E80D6D08AC1F3BC0AE94059B0CCE4CC04608339B59653BC058B4273D4C3E4CC02C76D36E6A8C3BC03A862E7711D94BC02083474949633BC080C8723BF7644BC09CC0EE562D9F3AC0D6AC8A8609504BC0D4A4A3D83FBD39C0C8822E77A5104BC0D4471416328C39C0
-am 0106000020E6100000010000000103000000010000001500000030021A6A97CA4540F0ECA759CB8B4440A06B80D04C7B4640A27C6ACFA09F4440E84CFBE4517B4640680FCA7B819F44409CBA9BB8F996464054C0AE13207E444050997996B9C746406060821AF967444084A6ED70F9AD4640E0D35C5BDF474440DCA0B3032AF2464092AD9D02F71B44401C7E91E114CE4640A8DC33FF32F34340C83A4D9D6B044740DA0BCAFB62D04340A4B6614BE33D474088E26D6C69BB4340D4D8836DBB404740600D6732A36243400C75BA3D621247403425B2B0DF5E4340D01E65E820DE46405804908EECA84340203A4D9DB7DE4640D4C3E800ACBC434028394D9D29A646404401F35762BC43409C20021F418046405AB3D76FB8DE43407C755774A1654640066F93AB43DB43400C152B7B333346408CEAA7D9A3004440704D981B06D4454006DA96C874204440707D2E1857E04540042D4FE7BE5E444030021A6A97CA4540F0ECA759CB8B4440
-au 0106000020E61000000100000001030000000100000011000000BEE2E2690E766240D6D4CC00756744C028912A0B40896240512A22560E7044C0AA08A202848B6240CB0A0034FE0745C00C68CEBB8D806240E6FD8B59193445C0DEE2E2E93F7D6240AE9CC229139B45C0A06E08E910726240823C9630067845C04845ACD9D95B6240BB22AE7B3AD145C0327F19FA395562408C119D6A59CA45C030D46E4F8C4162404A7BA0075EC645C0C288F05DD22D624070B30DA8CD5845C0E6585A6171296240A65CB8524D0445C08A81B670FA16624082ED177FCE9444C0E67342D6CC17624042E240DB1B5A44C0A8DAA83CBC2C62406EA8D33A726544C06EE57FE0A64B624090D5CC00A09144C09289F01D135D62408D537EE5118044C0BEE2E2690E766240D6D4CC00756744C0
-au 0106000020E610000001000000010300000001000000E000000000E1F88684895F4050EEC5C6A41B40C08427DA01AC455F4096AE1EB9475D40C02486067B2F0E5F40D46ADA74D07A40C0689AB442DA015F4008E0B4B5EEBD40C0848506FB37EA5E40CF5BC963F1F140C03AF54305E8B35E40BA39A7410DF540C072A9C553B78B5E408D0DAE7B6F0041C04812C9F025535E40C6E0B4B517E940C044A4281D23255E402266A00710F740C08006F24C32F95D401EE1B4B5EFFC40C0B6E3CF2A21D35D407E15E8E8324141C01A651E4678C05D40B96A3D3E693B41C00EB339AE5DA05D40E1F3C5C6975F41C0E241FC2399815D40C48AC229498841C056E80998E9525D40BE9BD33A428341C0B23288C901285D40178E5F60368341C01A91B4421EE45C402E3E4478763141C014F0E03BB7C15C40C33D4478271941C0CCD4F8861CC35C406F2B3367CCCF40C0B801F24CE3E25C40343C44785EBE40C08438C236BDED5C4079CEA3A439A140C01A0CC9F07AEB5C40EDD77A483F7340C0A80F66274EF35C409809AE7B3F1A40C05C16A09422EC5C40E42B44ACC89C3FC0D4897A554CCA5C400E5E1416029A3EC02C75CC8DCFBF5C4070735F94DD073EC00A7C06FB8FC25C404E9D585A0A763DC0A2B5731B16A95C40608947496BCF3CC0186758B374A75C40B2BE17B332843CC02252AAEB1B8B5C401EB6DD453A1E3CC0E269F5E920835C402E01F92DB3553BC0C4B710528F5E5C4028D839D50A8B3AC000814068B1555C4058E74AE6D51D3AC0CA9C289DD0715C4076B9B4E98C8C3AC03A062CBA385C5C40264814160C9F39C02296EE2FF67B5C40D01244AC46E939C0388C170CE78E5C4036F95BF7664C3AC0A22CEB92D58D5C40E88281B649C939C0A88B170C296E5C40640BA775BAFF38C0F05447A205685C40444EEBB918AF38C05662BB7C2F595C4028801EED7F6238C07662BB7C21605C4040EE5BF76CCE37C0C410035E3F6D5C4012A2DD456A8F37C01C443691FA755C40F0B0EE565B0F37C07EF51AA9236F5C40FCE4BEC0B87936C016B5739B95895C407C8C696B81C135C06622146F6B8E5C40EEDAE71C7A8436C0DE2214EF74A95C40CE8C696B5BD435C0E8E26C6173DD5C409ACFADAFC37E35C06AA9FFC0A1FC5C402A0BB886951135C0E8B7731B8B2D5D40D887696BA1B334C0863D5FEDA44A5D4074138F2AA49F34C060631E46425C5D4060DDBEC034BF34C05CE90918B18E5D4080D1E71CCC5F34C04257AA6B82B55D406CD48453684334C070F4E03B38BF5D40FE5B0DDC500B34C0C22E4EDC28D05D40F04D9901F4F333C082EEA6CE88F35D402AD38453FCF933C0C6D75B50CC365E4038C4107907AF33C04EC74A3F97595E409EB49C9E603D33C01E50D3C7ED695E40C26381B68FB432C06EFB7D72778F5E40B6F77D19993232C01495170C58925E4084B8734271CC31C0B8CBE77504945E4064FAB786454131C072F54305CEC05E401CD1F82DBB6730C0CC705833C3DB5E408C453638C04431C0103E2580FFF65E40F225B14CAC1131C0988FDD1E35E05E40FEA89C9EB49830C0D8445FED4AF45E403E70CC347F1C30C0C48269C487105F40B4BFE71CF45330C0902D146F4D185F40C04F73AA55222FC0A0085516463B5F404C29518873262EC0A06147A2B44A5F404C3AFFCF5C5C2DC0407358B3E26A5F404CEAE3E727052DC074095516E46B5F4038B1137E18762CC0B4FF7D7202885F403C15DDADD6B12CC0AC28DA0124895F4020FB912F25312CC04C4BFC2349A55F405CAB7647D4E72BC040ECCF2A37C45F40287009A7CCA22BC038AC281D7FF35F40C4D335A0C68D2CC0C8828D94820B6040C06B95CC03BD2DC0F826FE91891F6040144D10E181C02DC0F6973B1CE333604084E7A97A87F02DC02CED90711B2D6040A40B060A62D72CC03CBA5DBE6F3C6040D40EDDADC63C2BC00C7D53E7DC4A60409480B7EEF9B62AC00A2B9B48DF456040506DA6DD0C372AC0607619FAC453604034BA5EFCA11229C0F280F0DD26676040BC8A6536075E28C03A81F0DD85776040140A171BDB9A28C05055F7D7689260403C0F5188633A28C0A4AA4CADD4916040DCF2050ABE3427C03CAA4CED637A604074A1EA212D8C26C0BADD7F606E8B6040BC62E04ACD4126C0E847833DA0A06040CCDFF4F8B8C026C0D6B8C087A0B160402C765425B29227C016E9560494CC6040CCA44DEBB01528C0B026615BB7D56040EC4084BBE2E127C02849833D8DE96040946CE04A497F28C004D20B063FFC60406CF9A240AEEC27C05AF42DA844086140440BB451431928C0AE27615BC20F61408495D910E4B627C0003972AC731E614028188BF533B428C0C68A2A8BEC156140DC7F542542C629C01CB0E9E3C509614020A2D9101C952AC042053FB9C6FE6040D842AD1726A62AC0226F42D67B026140782E6299D4722BC09208DC2F15F96040005584BBAE722CC04283F09DB7ED6040B8BFEA214D6E2DC09801A28201F06040BCAD3CDAD7FE2DC0FC2AFE117209614044FA1D55BC192FC02C21276E172261408000BB8BD4BD2FC00A1E8A3793326140867706A20F3730C048C2FAF4B349614074322527BFCE30C0BEDDE2A9B9526140E60C66CE7ECE30C05896012F79636140F6FC54BD0B1031C094555AA1566861403616A03B215F31C0AA18504AE3866140FCF81A50F7B531C0220105CC039C61400E5747497B5E31C014A5758946A26140DAB0D60B01D530C0D8B2E963C5A861400C6E2FFE8C6330C076D8A83CBEAC6140D89954255AAE2FC060319B4878B6614000EFE3E7FF162EC02038D53507B2614018DD6F0D671F2DC0BC97012F56B46140ACFC912F718A2CC0F4787CC3A2B06140F84CE7846A652BC032724256D4B46140843FAD17AEE329C02416B353F7BA614028DE801EAC7B29C002A2D8D2FBB56140BCC6D2D6B2D028C03E8A8D54B7BD61400C88653643C127C094F72DA8CAC36140ECA1EA21F5A726C0FAC05D3E99C4614040A6248FE11526C07205A2027DD0614008516C701C5625C07446499083D96140501BFFCF905026C0DAD50B86BCDB614018654314C59127C0027342D6B5E36140C0FFDCADAECF27C0CC05A28213E56140E8DD1D55BCA628C0A0D9A83CB5F06140782D9C0631AB29C08C54BDEA1BF36140F0E3801E04CD2AC0922B615BFAF161404C4310E1FD862BC0727342D681FD6140E42E282CBC182DC082F590F109126240FC2EC562A4572CC0FC734216A31C6240B0F857C25C302DC0A6DAA8BCFD2B624068DDD2D64EF82DC034117926B4286240648F1AB83DDB2EC0DE36383F872F6240D2DACFD1214930C03A18B3936234624068A6FF67F0C830C0988553E7713C6240AAC584532CE830C04AAB124021456240E440FCCAFBC231C01A89F09D09426240CEB339D5B24732C0FE0A3F39664C62409A203D7251F532C09C45AC19136F62401A5670A5107B33C004E3E2E9AE856240C854D36EB8F433C006542034269B6240FCD48453266434C05280197AF5966240262103052BA234C0E42727EE42A96240EAC039D5B04235C03610DCEFB4B562401A660DDCAE5736C01C58BDEA79C262406EE3BEC06E1F36C074DDA83C74CF6240BAAEEE565F8E36C0E895C7C145D76240B6589901046736C04C147926C9DC6240B84F2527557637C01A18165D7EF362406618B886851338C08811DC6F5A0263409CA2400F387538C0664FE6C65D1B6340ACF45BF77A4439C02A86B6705B24634040CFFF6738123AC0129E01AF2E2563404083E47F2DA43AC0DCA43B1CF9226340DE9D2FFEA2423BC0CEEC1C173932634026C7EE562D1C3CC06086B63063306340E60B9664BDFE3CC02801CBDED92A6340D8C217B34C753DC0AA0E3F393722634002D1EE56A9593EC05EF35604DE226340C87AFCCA73EC3EC0D8EFB9CD871C634030250A3FF4A33FC078CD976B660E63405B0AAE7B664640C0C8EB1C17B1F66240D90E4BB24A8540C036BF23D101EB6240B66CDA7473E840C07A99647856E06240A07414E2B92741C07AF5F33ADAD6624060B7BBEF339641C0024EE6C680CA6240ACEBEE2200D641C0A2430F2368C26240E1AFE44BC93542C0C61379A646BE624087D3066EF58D42C066AD12C0E9BF624054BCBBEF6EB642C02EF8907190AD624092D16937E7E242C0F0238A77BF8962405C53B8528FE742C078FA2D28376C62400C844E4F0F1C43C030C0C007825D62406F0DD7D7A24D43C00C56BD6A2C4A62409A7B77AB938443C09AF2F33AAB2F62405A99FC96004C43C0A081B630101C624083BEBBEF6E3543C0CECC34E207216240E9E27A48B6F242C0BA39D5B58A0F6240EE7C14E2EB0A43C0588453E784F3614066F928909C6743C000A67589DAD76140FE8E25F3E54443C020E37FE0B4C56140DB5E8FF6A43043C0A886F01D69B361408665C9637D2743C00AD8A83C6F94614098E6177F790243C01004A2C2BF7F6140F6039D6A93B342C0EA2CFE91CF796140DAC49293615242C05652BD6A5F72614038D840DBB51142C03611165DA6626140C17714E2CADD41C08A51BD2ADD436140EEB41EB95FCE41C0E44A83FD614E6140D679B1184A9041C0CA84F05DA44661401890FC963E3141C0BEF1907103376140A22E3367D58941C0004A837D8A1A6140D6FBFF3359A141C06C6CA59F462B61407CD8DD118A5A41C0EC6F42D61F306140F62FD09DAC1041C006888DD47B3C614046F8FF33FBD140C0F44D2034EE39614045CA066E337340C0B2E31C17E61F6140556203D15AE040C0C04983FDE70B6140C4AAE44B210C41C098BD5D3EA6FF6040025EC963EF7141C018AC4CADA9E66040FCD7DD11453D41C01CAC4CADA7E76040484E558956F940C0B49A3B1CA1D36040F1F362FD839C40C03A043FB9BFC260405BFD39A18D6C40C0B8CD6ECFC3C86040EEAA8182014F40C024EF9071B49F604013BE2FCA6F0140C0F8BEFAF437896040CC0EBFC08EFB3FC0F06FDF4C716A604012105CF7EC7E3FC0BA013F39253160404640F2F325973FC09AFDA1C2B507604042458F2AD0F23FC0B4EF6C6195C65F403447B852212440C000E1F88684895F4050EEC5C6A41B40C0
-at 0106000020E6100000010000000103000000010000002500000030F93671CBFA3040CC620EC0CE0F4840A028CD6D5CE730405ED985B780DB4740D8A71B8930573040D0B3C65E40DB4740587C22C3C5883040E675BC8782BF4740B8BBC9D0C9333040BC1BCAFB1A6D47404884F966FC0230408A14908E80574740908241E930462E4080B1C65E5054474080E4A74FD3432D40B8CF4BCA45374740E04DE559EA9C2B4058AA8CF13041474070C6D0ABC2C02840D8997B603F6247409072188D614E2840D6071C34C58E47404096115364542640066748AD8578474030951153DC1826400CA452842C604740F066B5C3A9E22440AABF3AB95F72474020E403DF69DD2340D20AB96ADA754740402B8290BEF52240949A7BE0288D4740B03D93A10F4423403E2067327EAC4740B0698C673E302340226F821A35C3474000DDC971C9CA2340D86BE5E343CA47402029ABECDDCD2440A80BB9EAB7A6474050DF2C3BC9162540E4192DC57FC84740600215F052DA2640CC192DC50AC34740B01926016048284010F80AA3FED947405021C337D43D29408EBA00CC10D647402035D44881DD2940508A6ACFDBBB474070E7B8603C0D2A401E2B3E569CD147403072DE1FA9C42940D8AAEFBA02254840C0787B56997C2A4072630E4043354840102389CA1F312B402E83932B47704840102D260184AD2C40A47B593E14474840201ADB828ACD2D40EAA85284717B4840F0AF3AAFBF812E40F28630620085484050AD55F696073040983E4F67F05D4840D04F29FDD07F3040F6E55C5B9564484018F93671D5F53040820EB9EA694C4840A84AEF8F46E13040E8559A65293C484030F93671CBFA3040CC620EC0CE0F4840
-az 0106000020E610000001000000010300000001000000090000000C75BA3D621247403425B2B0DF5E4340B809B7A096BA464018BF4BCAE36F434078495EAEF1794640DC183E56FAAA43407C755774A1654640066F93AB43DB43409C20021F418046405AB3D76FB8DE434028394D9D29A646404401F35762BC4340203A4D9DB7DE4640D4C3E800ACBC4340D01E65E820DE46405804908EECA843400C75BA3D621247403425B2B0DF5E4340
-ca 0106000020E610000001000000010300000001000000080000005E2F8D64376757C055B56D46B8BE52405E96F3CA0A8A57C095FC4E01E9A552403E796E9FF4E657C0F57A00E6ADAA52400E8F1C278A3458C0BB8FAE2D5EBB52407C2B5337781258C0C952A4562ED85240C50731D573B657C0D9E503036CE95240E0174266937E57C03D7863AFF9D252405E2F8D64376757C055B56D46B8BE5240
-az 0106000020E610000001000000010300000001000000250000009CD8836DD5334740AE62829A2AEE4440F4943F29D1574740080356A1DFE94440B4A016CDC8AF4740A82AB230209C44409C9005BC67E847401E61829A61934440F4B9614B5FFE4740287630E2F1B34440A4E75A11CC4A48408051710989E74440A829021F1D8E4840463F60F821A444407472E39938CF484086A7639555494440F824C8B1DB0A4940F42FEC1D59434440E8690CF64732494072DD33FFD62044408C424D9DDBC84840F224157A8A16444004E6BDDA97B2484014C7853722B34340EC636FBF929C4840B28FB5CD4C864340D4E4BDDAA26D484008D05CDB61684340248CCB4E0E714840FCA500CCFD28434018DAE63633514840D094EFBA9B22434060E65A1160014840B6EEE146A2654340DC05E0FC812D48405E4F0E40F6A44340A0087D33B10748400E27B2B086CA4340784F5EAEB0D74740F8D4F91112C14340D4D8836DBB404740600D6732A3624340A4B6614BE33D474088E26D6C69BB4340C83A4D9D6B044740DA0BCAFB62D043401C7E91E114CE4640A8DC33FF32F34340DCA0B3032AF2464092AD9D02F71B444084A6ED70F9AD4640E0D35C5BDF47444050997996B9C746406060821AF96744409CBA9BB8F996464054C0AE13207E4440E84CFBE4517B4640680FCA7B819F4440A06B80D04C7B4640A27C6ACFA09F444040A2503A7A7C4640825A48ADC29F44403409B7A0D49B4640586FF674AAB44440B4E8947E36FB46405008900EDB8F444074AC8AA735404740D8B23AB93F884440DC3176F9A65147405420DB0C4197444050B9FE819D1247405CC54BCA84DC44409CD8836DD5334740AE62829A2AEE4440
-bd 0106000020E6100000010000000103000000010000002400000086114EDC0D2B574004753EA28E0A364006FD9F94BE2957403464CAC7F45235407466A33168135740E49E3768B979354084C96C6196175740F434D101BFAB34403A03DA014E05574058824FB333313540145592209D015740904AE2129AB33540802899DA6EF556407819AFDFD42E36403E5BCC8DB1DA5640A4527F49D8C33640702A3691BE9F56404C672D9115CE3640AC4C58B390A55640748E89208E643640C826995A78915640109D9A311CD63540107F8BE63C76564070B24879050A364094C66C61EE6C56401C29C0F06BDB35408A0AB1A5CE5A56408C521C8057F7354038F265A70B42564058B982E6420E36407C2F707E1538564068FA8CBD0FE1364028A34ABFE7215640142A868392A13740849C10D2CB2C56405C008DBDD43B38407EA9842C6705564068DF6A9B6C803840AC98739B9B135640600D6461B7DD3840EEF89F949E3B5640FC37C0F01A3D3940D879EE2F6D0D5640840A2AF49FC43940401725000924564040661C804F723A40E00D4EDCB956564070AF9A31B0033A4082F6025E477556400CB6D49E0FF73940C45292A0EC7A56404CCEBC530E45394096E6F14CD2B7564048CA1F1DF221394016FC9F942CF35640EC294C16BE2539406E7EEEAF131857406CD0598A08FA384004C96CE190FA5640C44034CB6221384008178849EFDD5640D05B1C80981238405AC132742CCA56408C63F323E7803740E4B021E336ED564030B3AB423AFC36402E99D6E4ACF756408004C72AD59F3740523D47A258095740E8CDF6C0A3A0374086114EDC0D2B574004753EA28E0A3640
-by 0106000020E6100000010000000103000000010000002C000000583BF6C9EF7B37401ACF3AB9CCF44A400043930060733840503CDB0CEEF34A40708F747B4E8939408CA3417326244B40C8489300B8C43940E8292D45696C4B40E0C30A7899963A4072CE9D0266954B40183448828C7E3A40726CD4D2BBCE4B40781B60CD3A1A3B409E39A19F43E44B40A0C033D43C2D3C404A41DB0CA6154C4030EE8F63C13A3D40CCB4B54D8CF54B40F8ADE8551F5F3D40E087BC87C5D54B40B0B3858C73E53D40BC2156210DE54B4058474882B8DF3E407A659A6586C64B408803043ECAF83E409CC02928708A4B40781A4FBCEDC13E404467371CE8674B40E08D8CC66C623F40D8026E6C1A144B40A88F8CC69ACA3F40FA8AF6F4C0FC4A4020AE11B234BB3F406057C3C1A2E54A40748D8AA7EA334040A464371C1CCF4A405098614BC958404000F05C5BFBAC4A40A8CA947EFA264040888C932BFD904A40285B5993657F3F40C885593E6E954A40309B00A1214E3F40D62C67B278894A40686C6AA43E8A3F4014F2F991FB5E4A4008F6F22C37C93F4014F496C8030D4A40583D71DE73ED3E40CE343ED66B054A401887EF8F949E3E404CFAD0B551E94940682089291C8E3E40AA0D7F7DE5A84940E08B29FD48283E406A96070644B54940289200A143413D40CAAAB54D22AF494038FEA0742AFE3C4016DB4BCA0FCD4940303371DE1B9E3C40584B8954BFB64940589B747BDA3D3C402C9AA4BC3EC9494018CBA7AE3D743B40FA8FCD98D0CB494090F2A07484563A40F2CDD76F88EA494028C544E5E953394028A57B6090F4494068092660988D384084A81817B9F14940686D8CC64C013840F0444F6708CF4940A0C0E11BEE863740EEF296C80ACA4940B045CD6D0C823740FA04A8D906034A40E8DD660712333740D20CE246553E4A40D024AB4B98CC3740F0B78CF175584A409043303710CE3740CA7E1F517C8B4A405008C3960C873740A6B98CF12CBC4A40583BF6C9EF7B37401ACF3AB9CCF44A40
-be 0106000020E6100000010000000103000000010000000F00000080295D970F850A40B036DB8C42AC4940A0DB1B6C33301040327EBC8735A24940E01478FB5DE5134066D7AE93CDBC49400072301A8B6D16405A286732C6844940E0F9E1FE6AA01840866F482DE1664940C0FE1B6C1B2C184028F333FF6310494000641F0932211740F0D011DD8F0B4940406CF6AC3AB21640C243EC1DC6C34840A0A4D72767321340260E1CB420FE484060DC7E35E32411405200A8D928F4484040DA6A0B9AB40C40EE60D4D28230494080DE18536BFC0840BCB38CF1E2634940804590CA724405408C46EC1DFF65494080D68C2DCC1B044074690E400293494080295D970F850A40B036DB8C42AC4940
-bz 0106000020E61000000100000001030000000100000014000000D7F3BC3A284956C0285867FEEDCE31402BACDB7FA84956C054E1EF8699F43140F89ACA2EE94156C0DC990E0C630032401AF01F444B3656C0F46C154619E23140373E3B2C5E1F56C0104A56EDA07C3240983A9EB5331356C0A49871D5FE7F3240003E3B2CF71256C00C0C4C16705A324065D7D405D60656C068D57BAC4259324036A4A112E70756C0B0E829F4A013324053939041431256C06480C38DE6A43140B84475D9A90C56C0049BAB424E7D3140B42253775E1356C00CD07BACB6213140617B4543540F56C0342FA8A53B093140AE740B56BF1656C0C4BF07D2E0873040015DC017512356C040CC7BACF5433040CDF65931E02E56C02069B27CCF3B30407C6ED1288F3B56C0F08A20B548C62F402227F0EDA94E56C080EA4CAE1CC62F4013615DCEA64956C01C9271D5FC033140D7F3BC3A284956C0285867FEEDCE3140
-bj 0106000020E6100000010000000103000000010000001900000080C8DEE59A88054000CC6C63070919400061946F06D8FD3F6030D3C991911840007553C838E7F93F803CD3C901541B40801F613CB3A1FA3FC0CDD199D641224080D7F39B9F68F73F10E47FE153AB224080A1C0680CCDF63FE80D3F3A9AA6234080225A02A63EF13F10BF861BE959244000EEBA3EF9B6E83F586C31C60DF1244000F2466438C9EC3FE0887C44A3FE254080D5677640E5F33F782316DE943826408021724DA427F73FE82379A76E18274080BE86FBCBF9FE3FB08742D744482740C0D0C69A5C3C01407072F7585BE1274040C1DEE5DAEB034010E9D199527728404075EC5905CA0640C0937C44A5782840C063F393B2E30C404051726D01522740409C6034E6930C4030F2E2AAE7A7264040072A647C600E40783BFE92307825404052E282F1CC0C40A8F3B94E14AA2440C00A64D1BCA40D4018BE861B5D202440C0A7ABB247C3094048C6FAF567E3224040A78256684C0740008D2A8C744622400059A1DB53CA054088D2A83D810321400064787F14FE0540C04ED3C9A17B1F4080C8DEE59A88054000CC6C6307091940
-bt 0106000020E6100000010000000103000000010000000D00000004D3430596EC56400C32AFDF90C53B408E1EC236A3065740E43A8683DE733B408ECC099824025740303886839BD63A40CCED2BBAEBCD5640E8782D9103CF3A40F8D4E0BBE397564080F7DE752FE03A40FC552F57A66F5640244C34CB2AB83A4036C2CF2A7B355640E05E45DC55193B40DE09B1A51C34564078E193F79F4C3B4006AB84AC735E564038F9413FF20A3C4048562F5703815640B0ECCD64E34B3C4078BD95BDC0AE56407CF207D2A0103C402C43810F91D0564078A04FB3650A3C4004D3430596EC56400C32AFDF90C53B40
-bo 0106000020E6100000010000000103000000010000003C000000C4FF3114596C4FC0E62366CEF40836C0682454B650FE4FC062CE10795FFE35C0BDFADE1C211850C0C27581B64FCC36C04476F3CAC03D50C0BC31DAA86B1336C04E118D647E9150C0E63AB14C12D535C0C5374CBDD3C650C0EEB28B8D65BC36C01FFB41E600F550C062F4329B77DF36C00F4A5D0E130E51C09C6CE47F8D7E35C0929C156D753051C0E4374E83665F34C01040866A4D1C51C07E74F590B26733C0A0A34F5AE03D51C044E3329B4FFB32C0445534726A4651C0AA3F5F94974232C0B60AB680C96551C0F41DDAA87B9431C0A24086AA6A3D51C07EFA54BD2D8030C0C98867E5F15851C0F07C6C70FC512FC01CE8931E434A51C074F1E3E7DFA52EC05FF9A4EFBA5551C08843393D09E82DC0EABE378FBA3C51C01CA2026D43E82CC063701C67783B51C0F45221F292342BC074F50739533851C05072E04AA9CC29C04F4086AA902A51C0604684BB621F29C08A22013FE66151C000681AB849E725C048E4F667503251C044546C70A01226C0BB802D385C1151C02802B4516F0726C04CEA3095150351C0607AC8FF926C25C0F6BC378F1FCB50C0202FE784169D24C0925234F266A950C030BBA97AD7DC23C0C2243BECA85550C048B60C44238623C076219E35785C50C054974DEBDC0525C0CE354CFD995450C0F007EEBEAFCA25C0BCD9BCFABE5950C018B5FB32EE2127C0E3CA48203F1450C0F41FC56288EC28C03CE549DF26994FC0D4C198690A4129C04699CBADCA664FC054F8CB9C55002AC0E47F802F44104FC06C898E92C6652AC07A3065474ADB4EC01CAEB0B478FA2AC0664A4D7CC48A4EC018BFC1C571F52AC09A5DFB436C404EC04484B7EE498D2BC058016C01C73A4EC074716C7040B52CC0F4D70F72D5214EC05CC9C1C5BD4A2DC0200B43A525204EC09C44393D89272EC0D27F1DE67F454EC058419C0615302EC06482BA1C46144EC0C4EBE0E21E4230C00EF9CE4AE01E4DC018AB39D5B04C30C0167B1DE6AB314DC0D44336388AE030C0A2AAB362F1234DC0F20E66CE8E4531C05AFB6B0106DE4CC0586CF5906E8D31C0C04C24A0CABF4CC0DC9E8B8D972C32C07AA2797587D64CC0809B51203BF632C0EEE3208399F94CC02CF643AC666633C07CD9495F49ED4CC09EE7329B51F833C0BE3976584C154DC03093DD453C2D34C0202C02FE7B174DC02E84696B4FDE33C0B21954B6B98E4DC04EAE62315E5B33C0C0B88A8693054EC018EF093FBE5733C0B4417658A6E44EC07E75F5903CA233C088D5D5040B224FC01CD2E71C848334C022FB945D45254FC07E711EED370D35C062C5C4F3AF574FC0041E2C61C03F36C0C4FF3114596C4FC0E62366CEF40836C0
-ba 0106000020E61000000100000001030000000100000015000000C883858C67013340CEF10A231C6E46400893F966385E33404EA3EFBA766E46405895969D1C1E3340CC7C306227364640103130378A993340D0590EC0EC044640D833CD6D38743340B647FD2EB7C84540605EC633190833409ADDF9915DB74540700EAB4BDCB432404873F6F49C99454098DA77185B8F324088E96D6C33534540A8FFD3A7C7AC314094BAD7EFA783454030CE3DAB204C31408E2FB2B021B9454078F5993A89EA3040E2D322EE77D54540E0F63671D9743040500BF35747054640D8E425605A3D3040B82A7843F22C46401070F66A03802F403A40268BCB684640509EEF3032EB2F40CA4E9A65EC9D4640C00AE5B87251304082BB3A3987804640C81CF6C9F1883040B477F6F4159B4640782C6AA48C003140CA4E9A65EC9D464078639DD79DDC31408CD385B7AB884640180037719F8D32409670BC87718A4640C883858C67013340CEF10A231C6E4640
-bw 0106000020E61000000100000001030000000100000028000000704159932FA639407E772FFE388932C038BD6D41B3D93940A6A428C4E3B632C048064FBC2F2A3A407E25DAA8074B33C0400B4FBCE74B3B401C5A70A53A6434C008C2D00A89B93B400A35B14CC27F34C000EB2C9A2BBA3B40C6CCADAF0FDA34C0D03A488278053C4056620DDC687C35C0801FC3966ECB3C406AC97342B3A335C030D744E5A36E3D409C9BDD45601736C0D84B599369043C400A35DAA8E7D336C0C08800A1911E3B4018CB39D5069337C0680CECF251C93A4018DF4AE69D3D38C010D17E525A7C3A40A05B5F94C79D38C040CBE11B10F13940201BB88645B238C070F33DAB0EC43940940F44ACC22C39C08041599327AA3940DAC5C5FA9F7C39C0B03E599371063940004CB14C3CB839C0203B59931536384024DB734293AB39C078139A3ACBBB37402C1EB886DF6339C028375993E54F3740FA720DDCC84439C0E012377103D3364032A7400F1E8039C0C09D5C305C9436408479AA12BDFA39C010658CC6201B36406C770DDCBE473AC0783693001C9B354070EDE71CFEB93AC0F069636ABDE334405E0296641BD43AC0F02EF6C99DAA34409C302C613A7A3AC02836303734C23440F2CA62313EDE39C0F05F29FD6C2A344086BC8B8DFFEA38C0989FD00A51E533406AE14AE68DC438C0781AE5B83CE53340D47B585A62D935C04833930092E13440DC1155BD77D035C00030F6C91FE93440127D696B914032C03822E5B8B0A735407605F2F3193832C060F2144F653237404259474979DE31C0785A7BB5399437401C32EBB9004832C02875C633A5373840B4E8093FACE331C0403282EF4C853840AAAE9C9E1AE331C010270E159E153940D0CFBEC06CA931C0482BAB4BA44339400E2277DF8DBC31C0704159932FA639407E772FFE388932C0
-br 0106000020E610000001000000010300000001000000CB000000FAD8495F04D04CC0942C7E195F373EC04643EA323C254CC0325D4E834EDA3CC064DA83CCC5944BC004A4CC34C5E13BC080D5E615D03E4BC07A49DAA889793BC06C6646C209D34AC0B2B717B368EC3AC00EAE27BD6DD04AC06E5B2527F71F3AC0C8822E77A5104BC0D4471416328C39C0D6AC8A8609504BC0D4A4A3D83FBD39C048279FB4E7364BC0CA5388F0842939C0D02DD9A190254BC0F8801EED1F9238C0E03EEAB27F254BC09CF2F82D610538C0A4057D1290534BC06C28C997EED637C0E2091A4992834BC036D71079530038C01A7180AF4BB34BC0DC7A81B6F9F437C07AF66B0142C24BC0B064D36E6E9237C03A1C2BDA2ACE4BC07E0444ACD6A736C0E226027E23E64BC0401455BD5F5B36C024BB61AA953C4CC07CB328C4171636C046C6384ED5704CC0D02BA03B3B4836C036FF08B8F4F74CC080B328C4151736C07E9FDC3E72EF4CC0FC87696B91BB34C0BE3976584C154DC03093DD453C2D34C07CD9495F49ED4CC09EE7329B51F833C0EEE3208399F94CC02CF643AC666633C07AA2797587D64CC0809B51203BF632C0C04C24A0CABF4CC0DC9E8B8D972C32C05AFB6B0106DE4CC0586CF5906E8D31C0A2AAB362F1234DC0F20E66CE8E4531C0167B1DE6AB314DC0D44336388AE030C00EF9CE4AE01E4DC018AB39D5B04C30C06482BA1C46144EC0C4EBE0E21E4230C0D27F1DE67F454EC058419C0615302EC0200B43A525204EC09C44393D89272EC0F4D70F72D5214EC05CC9C1C5BD4A2DC058016C01C73A4EC074716C7040B52CC09A5DFB436C404EC04484B7EE498D2BC0664A4D7CC48A4EC018BFC1C571F52AC07A3065474ADB4EC01CAEB0B478FA2AC0E47F802F44104FC06C898E92C6652AC04699CBADCA664FC054F8CB9C55002AC03CE549DF26994FC0D4C198690A4129C0E3CA48203F1450C0F41FC56288EC28C0BCD9BCFABE5950C018B5FB32EE2127C0CE354CFD995450C0F007EEBEAFCA25C076219E35785C50C054974DEBDC0525C0C2243BECA85550C048B60C44238623C0925234F266A950C030BBA97AD7DC23C0F6BC378F1FCB50C0202FE784169D24C04CEA3095150351C0607AC8FF926C25C0BB802D385C1151C02802B4516F0726C048E4F667503251C044546C70A01226C08A22013FE66151C000681AB849E725C0CC933E09008651C0D821393D793F26C0614286AA1DA351C048FB79E4AE0426C03E317559D79E51C0C8CB57C2F0FA22C01EF807B95AD351C078823CDAAB2824C08399DB3FD50B52C090D7912F711B24C0AA5597BB082452C054ADD2D6560A23C03BFA0779824E52C0F031BE28A7EC22C0E8AE8907FC4052C024F45088CF1022C0D3CA713C8C6452C08847431451D920C05C79B9DD2E7F52C050CA04DA66181EC0902A9E354C6E52C06045B6BE2E5D1DC00C3F4CFD5D6E52C0B096A84AA4AC1BC006AF8987AE4752C0C016949C0C851AC0A69ADBBF0F4E52C02088A84A545B18C028CA717CBA3D52C0B066C0950AF716C0C84BC057153952C0509F67A3261915C01D4723E1E5EF51C0C0F9CD093D6012C0DAB6602B72BB51C088525DCC3A9B11C0E0AF267EDDB251C0D0DB828B4B0111C01D1CC751317951C0A0A215EB573111C02A41862A6C5C51C000A496538DE6F8BF503A4C3DE95A51C0409DE1D13EF6F1BFE2A0B2A3EE6451C0809BA7BB8899E1BFF69D156D528151C000B2AEFF33B3C7BF9CAB8907FF8051C000CB25114453E13F6A4B5D0EF45C51C00045EF40DA98E63F5E4423E1275051C0003A8C77EA48E33FD058D128FE4D51C00062189DA98AEF3F1C6745837E7351C080F0AA53E06CF13F8C07194A497451C0C0908594D76FFB3FE319C79196F750C080D3C9D84B14FB3F15DCBC7A6BE250C020D7DF001C4C0040E660A8CCA3D050C040ED14571D85FB3FE293DBBF29C450C000F7478AF014F23F40F307B915B850C0C0327BBDC30DF43F755C0B56D99450C0000AE569B62EE73F3A2F12D0166350C000D6DA929241E93FFA576E9FB35650C0805711BA4686F13F4E16C7D11A2750C040AC55FE7A42F53F8F97156DC10C50C040C5C9D8BBE2F73FFABCD445510550C080506AAC72A9FE3FC8DE0F7234AF4FC080B0E63A719B014014D8D58420B64FC0408116D1DD4903407A3B86AA471150C0C087B307DEF90340C0C0713C2A1A50C02045C17BA803094088C7AB69951750C08052EAD7AF600E40B40F8D643A3450C0703B69C6CC39104083ACC3F43B2850C0E0A66C630B9810404C0C0938B5F14FC0E04B7AD7051510406E851DE6ED8B4FC0C0E7E63A212A0E4070F55AF0FA664FC0A04B7AD7210710409212E05BEF0A4FC0402C58B503A61040EADCAC28C37B4EC0B073FFC25725124096F05A70F34C4EC0909C21E521AC1340007646C2E55D4EC0B09AE77715CD1440606098FA591B4EC0402E47A45AFA14400A595E0D90FD4DC0D060170E660E1440B2855753350E4EC0A0B84307C44C12405E252B5A3AE24DC080A195BFAAB111401A2F027EDEC44DC0E0655EB2A0AB0F402EA779755FE84DC0A08C91E51BDA0C40E8D3723BBDFC4DC00027B06AB70A064084CC384EF9DB4DC06082503E3EFF01406840138FB1D24DC040FCEBFA1D97FC3F7842B045F3834DC0C09DE1234A15F53F5E0743251F454DC00067AEF0164AF43F7A96051BF9364DC040EC25684E6CF73F82B48A86850E4DC0409396A5781DF83F4846EAB29AD44CC040F88831DEEBFA3F509EDC3EFCAA4CC0C0859DDF352DFF3F9AEBF7A62F644CC04049CD75C2D1FD3F1CC29B970A454CC08041F6D17164FE3FF4973F0873FF4BC000C1E1232A15FD3F882A9FB4EAF34BC040582E1C0C2D0040DC53FB4363094CC020A0D52930C401407E94A2D195FC4BC040C220A83915044038CA72BBEDC84BC0408F8AAB3E5F03406499DCBE7D8C4BC0805580D4A230044088FE42252B434BC0A04AE39DAA7E02405C2DD9A1450B4BC0007AB3072ED800409C1BC890A6E34AC0006F05C07C030340A069E3F804C74AC06085503EDEAD0240064EFB4390B54AC0A08C614F576D0040B06B80AF46784AC06070DC63B5FF0040B00EF1EC38474AC080D6CEEFA2090440E0EBCE4AEA1F4AC060F0CEEFC2ED094030219FB432D449C000A76C63FB9F10403079914098A849C0B0AEA6D05FD01040DA48FB43EE8849C0C08AF4AE03340D40947057D3224149C0C0078931CE6CFE3F80BAD584AEFC48C0404707E3A2C8FB3FB89B50993AF948C0C0FEBB6431BDF03FD614C810815949C0005A1159BE8ACC3F628168E4B03149C00074E587F014B4BFF0BA72BB6E4F48C000B663818224CEBFB6FB19C9D04A48C0C0865CE60CCEF3BF3A90162C98E947C000E888369D9CE2BFB297EDCF854847C000A311BFE51CEEBF50D83114EE7346C0E09C5CE6ECD3F8BFB44EA98B743546C070C994D91C1A01C0360E027E714A46C080D9F7A2CC8705C0049BC4F39AB545C070C420FF9B1003C0CEA7D50480BC44C0501B6543D04B07C0B43AD2E744FD43C0F053D2E303FC06C004FAC7900C4043C0D02C8E9FEF9A0DC090868A86939C42C0188D90FFA54813C018F22ADAF93942C010AADB7D077014C0BCDB7C9284CC41C030AE78B4179914C064B5BD39219E41C068C1EC8E18DC15C0BA62051BB17241C0E85CD8E0E8F31AC07AE7F06C705D41C0882D6B40755F1DC096559140699041C09CC01D5528FE21C092346F1E88D141C00CAB35A06E4C23C0FA525753F48542C0ACE32E66D91426C08AB0E69580D742C0A8C4D2D6A65728C02AB2E695413643C050A3764784132AC042D8A5EE415643C09C286299841D2AC0FCC05AF0047A43C03CEEBA8B34962BC022DC4225EF7043C008B7D91088552FC04865CBAD9E9443C00064BB235A3531C0687D162C38A243C094AE9C9E24DE31C0AA400CD5B0CA43C084E3CFD1254332C046AEACA862E143C04664E47F5F9933C040099FB42A6344C0683314168EE734C0B21AB0C5ED7844C0AC569901F4EF35C05A97C47388E044C0F621C997E45E36C0388A501980FE44C0BEE3218A56F836C04C7168E48F8945C026E7BEC0BAF736C076F6B67FEB5246C0E45C99011A5A37C09AF419C912AD46C0DCFBCFD1FDCB37C0543B5E8D6D3C47C0606A70A5C61638C07E9D8A8611D347C008CAFF679CE238C0B491162C6B3F48C018B317B384E039C064BE0F720C5248C0867570A5AA9F3AC03AF14225C43C48C0AC96F590082D3BC07E32EAB2AC5448C0425A4E83A62F3CC05E5FE3F8B87148C01A4166CE92AC3CC0246BBA9C2DCB48C0864366CE76393DC08A96162C335949C0C2FC4AE605FC3EC02E1A65C7C1C949C09455A03B17C73FC09233B045C7204AC07CD67A48681F40C0B2B99B17265B4AC0903B4478299940C000FC4225D4AF4AC08EF8FF335AE240C0B0AA8A0645D34AC060081145DB9940C04EA6EDCFD39A4AC0A085C229245D40C02AA45099DBE44AC035320A0B0C0640C0C8BD9B1746494BC06665B14C987E3FC0240B1A49FECC4BC07A7AFCCA97DA3EC0DA23654793FC4BC012F2734211E23EC030488769EE7C4CC004E1FF67141C3EC0FAD8495F04D04CC0942C7E195F373EC0
-bg 0106000020E6100000010000000103000000010000001C00000078CA55F63AA836408E75F6F4111E4640E8C41B89E0F1364016B200CC71E94540409A22C31155374080590E40D1F2454028C3E11BC61938407C112DC5DADE45408044F6C9BB9139405A74F6F41ED84540F0ED033EAE103A4010344F67C4F8454090CD44E50D3E3B407AE9D0B586164640684182EF58F83B40A074F6F4FEE74540E05BCD6DDE8E3C40BE66821A8EDA4540E874B522020A3C4094BE74A686A54540207AEF8F84AC3B40A2907B60F8494540A863A41129FF3B406E035621F1004540D0EBC9D0BF223B40785C482D1C12454098F1A074F61D3A401CB19D02D8E94440282871DE2B1B3A4090D55C5B19AA4440E042F6C97B323940D6E90AA3039E4440C0A2BFF91D7E38402E4A371CBDCA444068FB4EBC2BB137403A57ABF68FA74440306C29FDCEF336400276306243AB444068577BB5A1E13640DA4060F8E8FF4440085CB5226A61364040267843FE284540E8B844E5858B3640E81804E90D3B4540D0E43DABC46F3640065AABF6474A4540287FD744D49A3640EC8DDEA902734540E0577BB56BFC364046398954079B4540B07ED7440A803640D67059BE47D24540400AFD031369364052B93A390801464078CA55F63AA836408E75F6F4111E4640
-bi 0106000020E6100000010000000103000000010000000D000000C8390E150A573D40E861D1A6FBFF11C0B8097818C1463D4080E420FFEB590AC04850599361063D4020E294D9CCB606C0783EAB4BD6A13D40407457CFC55707C0D03FAB4B38F03D40B03A9876B3C902C0785D93003E783E40104EA987944F03C0289B9DD715873E40208FDCBA077606C0F03F0E1536BE3E40D08C0517374608C06843AB4B94C03E4050A91628E8DF0AC0308352596C813E4030FF31106D8C0CC080BBBFF9C71D3E40E0F0CD094D5C10C050BD5C30E6C03D406819F02B3FCF11C0C8390E150A573D40E861D1A6FBFF11C0
-kh 0106000020E610000001000000010300000001000000110000009A16146FD3DF594050F6B94EDE432540FC1C4EDCCDC5594090DFD199AC4E264034AFAD886FA559400815CB5F895F28409082B4424796594048569BC9DAC92A4004DCA64E42BF5940884C8AB891732C40969CFFC002125A403888F7585FD52C409A00C970004E5A400898086AE28B2C40AEFA8E03D0825A40B853615C1EC32B40400CA094C49F5A40008D948F23242D40A6AD739B7ED85A4020B68D55A6672C4040A0FFC054E75A40383CB31431122B40681EB12573DF5A4070C41241A6AC2840227CDD9EDF735A40D0DF34639E22274030DC0998FA8F5A40E0DDD19972EC25400C784068CB4C5A4078AD3B9D53C725406ECC95BD65155A4028B412411CF924409A16146FD3DF594050F6B94EDE432540
-cm 0106000020E6100000010000000103000000010000003D000000F084EF30D2262A40C0DB42CA0323024070F42C3B15E729402055BA41AB920240C066A4B200B82840802E981FE18A014000FB3D4CDA80274000521D0B339D0240A0FD77B98A8D2640E0BCBDDEA116024010AB33755E4C234000D9A5935B4502406083D7E523972340A00CF111559608406094852D09CF2240E04C4DA14FE00D404034F66A6FE5214000D838F3A73B0F4080A6D0AB667D21403066281FAB681140009AF90746FA2040C068281F83FB114000150EB625002140C066EEB182161340B0F14E5DDB83214070E08E852DEB15401052DE1F617722401062CC8F28C719406084741CA00B234020B484AE5DD0194050341FC78E3C24403017773AB3271C4060CA7EF3A7FE2440205F58B5AF381C4040E7C971191E264070A6739DE4931A4060384823D67D2740001DB1A7EFEC1B40F0F403DFB9AD2740208EB44492961D40C071188DBD202840C08006FD00331F40601A260110702840808C64F9949C2040C0F22C3BE181294028CAD1997E6F214060D20A1933E9294078C9972CE6D52240C05C93A1CF552A4070CB972C004823403091C6D40A9E2A40D09C64F91A522440C00067A859252B40184D0FA4DD98254040B6AE89ACD42C4030D2C0880D25274040DC6DE2B6EF2C4068B63B9D3BCF2740906C30D883272D40C884086AB42B284060AD741CD85C2C40C0FF7FE1A1F7284040AAD7E5536D2C40A8EA3463A49A2940E06B30D8D7FD2C4090519BC902B82940D00F04DF69C92D40C8EF0B0727702840B002900499EB2D40B87C6B33741C2740104A717FDDD82D40087031C65BC82540300790048DEF2E40207942D7F4F62340509FC6D496D12D40F0D13463F8FB23406036606E20412D40E0F6F3BB82D72340F0918C67CA572C4080ED1C18F20A244090DEA74F8FE82B40409E9E6657192340F0B31153C4162D40B0F8CA5F85EE2140409252FAC1F52D40D09064F99A9721403015A115E23D2E4098900130A9C32040506DF66A47DF2E40E0B8739D70C51E40600CCA71158F2E40107A06FD0CB01D40A0264F5D978D2D4060EDF14E4DA21940C02E2601B8122D4020134EDE67E81840B064F66A37EB2C40C0AC5B529ACE1540A03C9ADB2C1E2D40005006FD541F1440E0012D3BEDF42C40203D922230EE124030284F5DE3E62D4080F6874B70D71040F0284F5D8B122E4060F120A899CF0E404077CD0E90CF2E4020E65A15B2AE0A40507BCD0EB8B92F4080D08371B91B0840403EC33794D02F40C0B20F97887504409002AB4B4A0330408023244520240240D0BC741CC0E12F4040D9660F8CA4FB3F80897B56ED4A2E4080D5B8C79A6CFF3F3089B5C3F5AC2C40009D38F3AFD20140F084EF30D2262A40C0DB42CA03230240
-ca 0106000020E61000000100000001030000000100000013000000AA3F013F0D0158C08758A4568C2654401A723472B3D457C0836618F1103A544012BCB263199357C08D8F74C08B3E5440F085E23911AF57C04507ECB7364D5440BD12A5AF3A1A57C09111C31B795054406E5C232181C856C00B22D4EC4C2E5440B65F5DCE46FA55C0992BAB9046065440A66734321E7455C0E9E9030390D55340805BC01701CC55C05342F60E84C25340B2B94F5A434256C051ABF9AB61925340226D34727AB356C0D3A75CF5C78D5340D60F08791B3857C00FF3DA26F9955340162219CADF7C57C029014F8110B0534064DA370FE37B57C09D75294247C75340294A75994B4957C0F9863AD353D85340621CDFDC55BE57C00DD2B884D6D75340E838C791DF0458C0399F85D11EED534082EE48206C2D58C0D72471E3180A5440AA3F013F0D0158C08758A4568C265440
-ca 0106000020E6100000010000000103000000010000000B000000E2B815ED3BA057C0FDB0D04FA288524072F7BC7AE11A57C0F3B0D0CF66865240CF6C3472A0A056C0F92E82B4D4765240C62653F7400057C0D7D1F2F1D63D524053322A1B904C57C0B37F3A5368315240C2DA370F389157C0714130FC920152403AACA1123BDA57C06793E8DAF5035240D16123E1280258C09B9EBF7E2D3C524092F4824D2B0158C0DD200EDAFE5B52406D945614BBDF57C01D51A4D631775240E2B815ED3BA057C0FDB0D04FA2885240
-ca 0106000020E6100000010000000103000000010000000700000016A7049CC27557C0E3AD96A247615340C63D013FEB9257C039DA8F28725F5340B31DDF9CDB0A58C0E1D6F2F186635340CBEAAB69EC1B58C01D29AB906A755340129A90810B9B57C063A75CF57A745340ED6C973B1F6E57C003AE96E29868534016A7049CC27557C0E3AD96A247615340
-ca 0106000020E6100000010000000103000000010000001400000094D90EF37CF854C0BB517BFA03475040BB67D1A867B254C0AD099A7F11315040F717B6C0166954C07BC8F2F1201D5040E2B4EC906B6354C00E4F3ED663FD4F405A9567A54F3454C0712E59D8AD0350405E6134F29E0654C06AA0F6F4ECDC4F401EF593DE6C3F54C0C613D1B5A3B44F40601C53F704A354C0221B0BA36BD34F402A16198AF6C654C0132BBC21850650403E7AE2396D0655C0D6951F51ECC84F4098AB78767F6155C056055D5BB4864F40CCB2B223797755C0FAF8E88091D14F409F0908F934CE55C05AF54B4A47C54F40F686B99D939655C05DBA7E174B0250409819198A648E55C0839CF9ABAA345040FDAB78F6907855C017FD2525486F5040B4F993DE524A55C0E7B1A7F3106A504031DEABE9723E55C04B8F85D1EB4D5040FD6C6E5FB21D55C0435C521ECB57504094D90EF37CF854C0BB517BFA03475040
-ca 0106000020E6100000010000000103000000010000006301000090B961AACEE04BC0EED7115D9BA24A40B6D4495F79D74BC06227CAFBC4124A40A08E68645F344CC08E26CAFBA5E249400ED10FF23E904CC0DCD311DDB8B54940FCEFF7A62D634DC0AE6CABF63A884940545224A03C044EC09C266732131F4940E696CB2DA1DC4EC016CAD76F4C0A494094615E8D66EE4FC0CAD4AE133F2549408143C097405750C0C89A41732A264940B655D1E8899950C0A8D4AE134F1D4940B9A14F9A1FCF50C0547ABC877AC148409F543472B62051C0EED8E880C0884840DC63A84C087D51C0A846268B58DF47407CF46A42B1C651C0C6037FFD2D6947408A563472559051C07CF60AA3377E4740AA6C7F70992951C0784489546626484029374C3D5BA350C0EC19908E08914840E0C40EB3994350C0BC16F3D7CB9D4840F437E973F10A50C01CF0337F095F4840A5465D8E634750C020A01817120948405D576E5F1B3350C0761F67B2197F47400891DB3F381E50C02273BC07871E47404630C8902E964FC06C3BEC1D98DE46406285BA9CA6C24EC02ADCBF241FF146406C8D914052424EC0040BB9EA0381474030DF49DF6B394EC07C1ACAFB2D244740068557D3C4E64DC06CD585B7CFF54640683202FE1A854EC0B2F20AA3F3A14640005687699AA04FC090EAD035C75546400938E9B3C70F50C0E01C0469FC214640EFE393DE4C5750C068A0EFBACAC545407D0319CAE58750C03274F6F430CF45406244C097598A50C0501D04E9883B4640918D3E493B1B50C0A60A56A161A5464076B160ABAA8150C0F4364FE730A14640127C9081CBC850C0B2D385B7999146404F68E239A5F250C0EA9A1817F5D9464003EA30D596F250C0B4CDAE137F884740B0802DF8000F51C0DE56371C6CAD4740BF394CBDEB3951C02A01E246AD974740DC923E892E4F51C0E2C03AB950B9474045F36AC2FF7F51C0A4C2D76FB6584740CE269E35859351C09C08B9EA1DF54640062ED8623DAA51C0E6856ACFE1BA464040C1378FA8C451C0BC55D4D2A4A4464022AD89C7EBD951C032DE5C5BA4A04640989F15ED52E051C0E4E733FF0C814640C0C3370F435652C066364FE7F18046408EE759F17CB752C06C0DF3D70F804640C606DF9C5DD452C01C58710981684640D1BC606B961653C0E8D4226E3F114640D1BC606B961653C05CAF63953E114640D1BC606B961653C05CAF63953E114640E807DF1C981653C04464E5E33C1146405EE21FC4D61653C09AB93A3967114640A53EAF86B91D53C090DB5C5B590746402EA5156D832553C0ECE8D0B547F64540F01553B7972C53C046F6449077E44540A6757F707B3453C0F8CCE8007CD0454054DCE556B44453C022C6AE9336D04540FB19F02D115153C08EC94B4A59D045404E434C7D2A6653C0F8CCE8007CD0454041B48987487853C072E196C88DD045405B704583C18D53C0CCD3226EC1D045406C3D1250559D53C0BCC2115DD2D04540C4B1EC1019AE53C0CAD322EE02D04540AAA715ED1FB653C030850706A9CA4540C8333B2C26C053C0401B04E97AC3454065D40EB3FCCA53C0B8B49D02B1BB4540BA74E27954C553C02EAAC6DE6AAA454056E51F849AC353C07A213E5687A0454056E51F849AC353C0EEFB7E7D86A04540DA8FCA6EE1BA53C0A4ED0A23857B4540B4D0713CDABA53C0A050D4523C7B454098E8BCBA8FBA53C014B000CC5D7445401AFD6A821EBC53C04C681FD18A6E4540204F23A159C253C048ED0A23AF6645400A454CFD1ECB53C0A89EEF3AD85F454075CA374F90DC53C00ED5BF2461534540945D97FBC7F053C03001B9EA04454540A86EA88C75F153C00008F3D78B444540EED1713C4A0254C0326E59BE7D3845405091CA2ED60F54C052EC0AA3DF2E45405E87F38A0A2154C0A88CDEA996294540338E2DF84F2154C0BA9DEFBA85294540DBA2DBFFAC2B54C03A60E5635626454006D3713CCA4154C006156732A21F45401C3D7599C65154C09ABF115DC11A4540C006A52F796054C0B4146732470D45406E6D0B16B27054C03C44FD2E4FFE4440C2B88947587E54C0B48BDE29C7F14440C4117C13A78D54C0A8BE115DB0E34440D0DE48201D9C54C01C06F3D769D64440D6373B6C2AAC54C01C06F3D769D644402A5A5D8E71B754C0C07D6A4F5EE044400068D168E8C154C0C421DB0C99EA444042C4602BCDC754C03CF2441091F94440EFD1D48516C954C02633EC1DE3FC4440F945AFC63DC854C08AC9E880CE084540D8C0C374AAC754C0A0DAF9913A0A45404C9B049CA9C754C0444B371C3D0A4540CEE91F44AEC754C0D070F6F43D0A4540A1FA309599B954C0300B900E0A3745402E0B4226859B54C04A24DB0C717D4540DE29C751E39954C0D60F2DC51B7F4540F43AD8A2B09A54C0C48A41F340824540D2B5EC501D9A54C04AF1A7594C894540CA6334F2829354C0BC2B15FAADA1454070F6931E328C54C090BBD7EFB4BC454097C6FD21CF8854C0224B9A6519C9454071F6935E918C54C0A8112DC545E9454066AB15ED698F54C0F68C4173FF014640C0C6FDA1FC9154C08EC074A69E184640A36A6E1FE69454C05216CAFB15324640F0117C13939754C00E6C1FD1514946405A3E75D9149A54C0A29F5284325F4640FFD70E33969C54C0A0D622EE357546402CFA30150F9F54C070142D45C08A464076A13E89FDA054C026EF6D6C209A4640833E755942A354C078EF6D6C7BAC46407AFA3095ABB054C04A89070648B94640028AF38AD4BA54C01C34B2304BC24640F0FA309575CB54C034D822EEFCD04640CA31013F69D954C0629EB54D51DD464053EA1F44F1E554C03E4960F88FE84640D8F7931E0DDE54C0408030E251FF4640EC08A5AFBADE54C068CBAE130C0347401A2BC7D192E154C008F16DEC83074740207D7FB06EE754C0CC61AB76F70E4740F8AC15ADD1EA54C0D061ABF6B50F4740DF79E2B9D8F054C06835B2B0F20D47402F73A84C02F954C0CC61AB76F70E4740C8C1C3345CFE54C0D4B3639532154740A0F15931BF0155C098FB4410471A4740A41AB6C0DC0455C0F268E5E3972147401ABB8907E50655C0DCA98CF1E92447400F47AF865E0755C0181E67327A2F47401CE4E556A30955C018C2D76FF638474005D3D445370855C072061C34E83D47407B4A4C7DE00755C0621E67325840474072D6717C180955C0203DEC9D90414740A8F8939E6D0D55C0EA09B9EA04414740A29C049C8C1555C00AFC44905234474021D037CFB62655C048F50AA3443847408847AF46C72255C0F86C829AF344474095BB89C7CC2255C0F86C829AF34447405C2CC7919F2A55C09069E5638F4547400018190ADF3155C07014908E8C5147404EBF263EEB3455C05AE896482462474090F259B1113855C0FCDA22EE35734740261F53777F4455C0007F93AB707D474044D4D4C5E45055C07AFD4490AA874740DA00CE8B525D55C07EA1B54DE5914740712DC751C06955C0E40E5621309C4740075AC0172E7655C0E8B2C6DE6AA64740260F4266938255C0EC56379CA5B04740BC3B3B2C018F55C064D5E880DFBA4740526834F26E9B55C0DC539A6519C547405E2EC791B39F55C03098DE298EC847402AC8602B03AB55C00C1A2DC56DD1474040326488FFBA55C000D6E88018DE474054288DA451CD55C04AAD8C7197EC47402CB1152DA4DF55C0085F718915FB4740061142A697EF55C0FA1A2D45C0074840D0AADB3FE7FA55C0C68B6ACFB010484054E8E55634FF55C09EBB00CC1314484088851C67470A56C00029A19FE11C4840B1D7D405331856C040D7E800C62648402AA83E092B2756C06A7EF674C22148407AA83E09863956C034B86315F11348408DC089C7054456C0404E6078040C4840CBA83E09E14B56C00E03E2C60E064840FCF3BC7A775156C0CCCFAE13890248408E20B6C0265D56C0B89541737CFF474090491210E55F56C08C9C7BE0C1FF4740F8C7C374666656C00A14F3574701484015BFECD01EB556C0B8FCA7598F224840332D8DE4F5E856C0281B2DC5EB114840F9AFDB3F0A2757C0BED0AE139A3948407E174226606857C034B96315FC4D4840986D97BB109557C0DAA4B54DDA554840E9332ADBF5A857C0FC9ADEA9856B48403AB9156D53B457C05021CA7BCCB148400AF71F84FDC957C0A0D9E8002FB14840FAE50E332ECA57C04CC43A390080484040E80E33A34E58C010BA631517804840F4146B42502859C0303F4FE76A8048406689A80CF4055AC0DCE9F991BF80484077E8606B15035DC04CC43A3900804840C9F3378FFF415DC04CC43A3900804840C33742A059BE5EC0D21256A1A3804840FC84C091413A5FC0A65C379C05FE48401E784C77F9675FC0DEA17BE0513549400A693BE6E0DB5FC090D211DD506A49400A336B3C89FF5FC0DCC69D82A0DB494045FC9AD26BF65FC046D9AE13312A4A40CCA7A938272460C030A04173B0604A405C1F2170C42960C00EEDBF24E2C74A40C2DBDCAB7A5060C058D3D7EFCE244B40115A8ED0275160C07637A19FC0664B4088ECED1C5C3F60C0829B6ACF7AA44B40379798A73F4060C03855895439F54B40451D8479A67660C0D426F357AB464C40F005399B5F9760C038A40786B0D84C40B5A60CA860AB60C0FED83A3984344D405C6665DAACC860C03AE411DD386E4D406274D9543DDE60C09CF9BF24A1A24D40BE85EA053AEF60C0EAF385B7D5E44D4074E279E8590F61C032564FE75FBB4D409A194AF27A2E61C090EEE880D6734D4076464378E84A61C0D6F622EEF2C74D403139CF7D3F6161C0B4ACA43C00004E408469657A6A8061C04C106E6C6F234E4015A4D2BAED9F61C0C0D99D0238274E403329BE8CC29F61C08DF6EB7700805040C2EBB3358D9F61C03F31BC61916D51402C28BE4CDB6361C019B6A7F3245E5140074643B87B3161C03389AE2D5C3F51405CFAC4461D1061C007789D1C7939514043C3F41C06F460C069CA55FB2A5451405F5554A944CD60C009ACD0CF27685140726C9F61BC9D60C0E5ABD08F57605140C9C72EA4CD6D60C0BB9E5CF5727C5140A5BC57406E3960C007D9C995658C514093D73F75722360C04F948551DF715140017BB0F2910B60C04516D4ACD2805140C2F5C4E06B0460C01BCFF231F79E5140F61DBDB49DDC5FC071A9331924985140B7528D9E67705FC03FD8C995C15E5140D64DF067301B5FC09DACD04F238A5140623208F389125FC09F4F418D94595140CEC367DFE8C35EC0EBD42CDF13645140E5118347BEAB5EC0450F9AFFC076514004EBC3AE395E5EC0CFA833D90E735140F6BCCA2858FC5DC021D8C9D52E5851403A5E3B6C92665DC073F64E01B9405140E35501FF7D0E5DC0EB03C3DBDA355140F8B09001CDCF5CC0ADE8DAA6FA39514013ACF30A78795CC00163EF94871951402BD3B26383D35CC00B5F529EC4F950408EFDAB69D35F5CC023B4A7F30AEC504000FE48A012B35BC0C3658C0B97F35040CF553B2C8E7C5BC03170636FC9FE5040FFE3FD2155385BC08FA9D08F69D85040B2FA4860B6F25AC037F54E01CAF850407CA6F30A08345BC05B3D30FCF1135140DA533BACB30A5BC0DBC21B4EDA2951408E29DFDCCCBC5AC0FD7063AFCC2C5140BA9CB99D99895AC0E53D30FC32335140E8ACCAAEF0555AC0431137F6EA23514052971C67A0155AC0E1E0A03927015140DA8B458327CE59C0792FBCA1410651406001BDFA135D59C04F84117766E95040088F7FB0B9F958C0D713D46C8FF3504058DF378F5D9C58C02906609206F250402E61862AC0A358C0CF2FBC21DA1951400867C0D7D86A58C0471137B608255140FA7234B2AC0758C009335958520F5140A0E3717C0E0858C0F1BD7ED7C6D250402E8A7FF052DF57C057AAD00FCE055140566023E1D6AB57C00B668CCB15045140810ACE8BE68E57C023CA55BB6A445140157234F275D357C0BD1C0EDAE26B5140B2C889072A1E58C091E63DF0BE855140F5BA156D081958C0B339F60E78CC5140B290B91D5DCD57C057DE66CCE9FA5140C47A0B56F57857C0DBC27E97A6F05140B250AF06343857C033C9B88465D45140E196900142E156C055F4B1CA3D8C51405A4975D90A1A57C0A1972288CC6C51408B514CBD03A356C03564EFD4D95F514004C9C3B44BA356C08DDA664C661E5140BFFAF6E7C44D56C0293459D88E505140D8FC931E420156C0B7779D9C5D27514062CDFDE1511456C0995BB567E5F750404458232169D655C01F9FF92BB8CC50407E831CA7969355C0D3547B3AF9FA5040B8BC8987E76455C033F64E41363251400F23F02D686155C04972632F74785140D8137C93730655C0F3CA55BB8B7351400B19B640D8A754C0A7A833D9206A51408ADD48A0F25154C03DCA55BB5E4A5140D66C0BD6174E54C0F50D9A7F9A2A51406D006B42B87D54C06BE43D707B085140284E86EA975054C05B6CC6F837E65040F7F830D5BC5854C099FE252517C7504017C1C3740DD654C0E17100E6569A504061B8EC10112F55C0E9A43399779050408BF359713E7155C093FA886EBBA3504024389EB5538455C063894BA49983504014B4B2E302C255C02DA7D04FA14D50406DEE1F04B0D455C04169C6F8A3315040FE6DD1E8E81E56C075F4EBB75506504002ADDBFF857A56C08FEDB14A1802504066992D380EAD56C0024467321ACE4F401C0A6B4248B156C02EDC004CE87A4F407EF31F44BDFB56C0668DE5E3E36A4F404495F3CA0B4A57C0F47D710929034F4020419E35758F57C0C0BFB54D07734E40BDD79A9846A857C07A352D451B0E4E40BCC68987D0AB57C0CEAD417372794D4002DDD405C34D57C0E487829A1C644D40C583E279EF3057C0162D908E40EC4C403EE6AB69021357C0BCE3AE93258B4C40844EAF8673B956C08873710970A44C4034086B82874256C0A2E64B4A056D4C404B9D67E58B0256C0C84815FA5D3C4C400A25F0ADBFD455C0DA2FCAFBE2FF4B40A2E9828D8E8455C01099CD98A6DC4B4008AB7876C14055C0D47CE563BBA64B4007137C1313D754C0FEFA96C8589F4B409807A56F769154C058BD8CF1FB924B40C9A4DBBFEA9B54C044C2C65E21244B4030FDCD8B008854C0FCAEB5CD75A34A40504E86AAA55954C0A8CED76F34144A40D30BDFDC6CFA53C0C262D4D2AC9A4940BC00083927C953C0EC3D15FA57C44940FF40AFC685A653C09A43B2B0F1474A40BB9D3E09F3C753C09E6C71091B124B40BC0BDF9C17F553C048BC8CF177554B405599A192A38E53C0666BD45277914B408E0F194A1E4653C07458268B30EB4B40F20E19CAA52253C07EA8417361444C402ECE717CE22753C0B0C8C6DEEF994C40E694041C585353C0C49A30E2AA064D40DC690B9614A153C0FEFB5C5BFC664D4056FB6A428D5553C03216A8D922ED4D4045D6AB29747153C032B5DEA902614E4028C2FD21D78653C05AD76395EA284F40ED49866A485A53C0E0749A6578464F4048525D8E8EEC52C03C9DF674A2234F4050ADECD0C3AA52C0D269C3C12E174F40E1C09A98C07552C0D06D60F8CD384F400EF3CD8B253A52C0D0C55204730D4F40A2E0BC7A55EB51C0FA015D5B3EC34E40D2CB0EB3EAD751C08EA130E28E914E40B60AB680C96551C08E9AF674DC874E407E63A84CB36751C0C06F9A65511C4E406CE159B16C5251C0C63967B28A7A4D40A1B0C3B4F81751C0A409D13589664D400F1D64C895E950C0889ECD98241B4D4018EF6AC2E98C50C09E7DAB7637624D40B2FBDE1CB14F50C0E6C0528473EF4D40720F8D64582550C08C9559BEF42A4E40A694914002E74FC0B27B0E40A6B84D4082B0162C4D404FC03C6B9A6563154D4060C9FE60C2B24EC0DCACDEA9D47B4C407E379F343AE64EC04C15E246732B4C40B6F3F7A6F83B4EC0F6C8631543E34B4034696F1EE9C84DC02C3FDB0C1F9A4B40CE4D24A0CFFC4CC09067379C05794B4018CE72BBA6AA4CC0B6A7DEA930504B40E81454B6EB774CC09C9B0706E2E34A40A88ACB2D3D144CC05C72AB76E0D24A4090B961AACEE04BC0EED7115D9BA24A40
-ca 0106000020E61000000100000001030000000100000009000000A639C711483058C04B863A1303B1534093429E35CBE357C05BC344AAC59A53405EF4828D23F557C01D1FD4ECA48353409C2C5377D45358C00D7B632F70765340BE372A5BF48758C0CB2C48874D8553407E19A52F62A358C055B23399519D534087A5CA6E72A858C07D3482B4CDB753405FE80E33955558C0DFD4553B3FB55340A639C711483058C04B863A1303B15340
-ca 0106000020E6100000010000000103000000010000000F00000005F6E5160E1C59C071E93D702D2D5240D93EC751C65E59C02F6C8C8B65695240B0EB0EB3CF1659C0D7A996E2017652402EB7DBBF7CCA58C0094A6A698968524052BC15AD486858C051E0660CE26D524098965694FC5D58C037D2F2F1AA535240D393B91D6E8358C0CBC0E1E0643F52403CE471FC862B58C081FDEB37F01452405688E2F9973A58C0498CAEED11F351404CB6DB7F049758C041B16D8676D15140AC6FFA84A9D458C089476A29CFD6514013E137CFF20059C00B93E89A3FEF5140B9830B963A8259C0D9B50A3D0F1652407ECF89C7ACA959C06DD82C5F3830524005F6E5160E1C59C071E93D702D2D5240
-ca 0106000020E6100000010000000103000000010000001C00000082E8E5569F0956C0373DF68E1B99524026C8C334F17056C0270AC3DBFEA0524024DCD445091B57C0F9813AD39DB5524096EDE5962B3157C0E9D78FA8C1D85240CD9B2D38F43857C0B91CD46C7DF8524000E8AB69347957C037BA0A7D6E1453401C8E1CE798FD57C0E5DFC9953F1C5340B5473BACC44758C069D98FA8113053400366C017B02F58C065621831544A5340444F1210C8AB57C0792171A34346534002776E1FBB6457C0376CEFD4AE31534011E20EB3B8E656C0B9BA0A3DD33153405F881C677AAF56C0D3318234C61C53401A9DCAEE0EBE56C03D38BCA1BC045340A705CE8B9F7456C0AF1CD4EC41F65240E056862AF94B56C0D9BCA7F30CE75240D82FC751A6F555C097EC3D703CE452401C0CA5AF449855C0592DE5FDDFDE5240E4922D38893255C0DB7129C2BFEC52401F08A56F38B054C04F01EC3732F25240F23C75D9394854C03764B5E7B1ED524054FE6A42AE0354C03B0489EE8ED552406EF0F6275FF553C029CDB88414BB52407A80B91D4C1D54C0D158DE4311AA5240A26D0BD6B97C54C051149A3F519C5240C0F05931A6CE54C0FB9C220819A452405F6BD1A83C8655C0BF8B11F73D9A524082E8E5569F0956C0373DF68E1B995240
-ca 0106000020E61000000100000001030000000100000012000000059A6E5F8F5A5FC0AE44EC9D99F948409B96D1628F5A5FC0AE44EC9D99F94840BEDDB2DDED3A5FC0BC8E6ACFD5BC4840E920F7610AFB5EC04668AB76FF87484031DCB2DDA3E05EC03C6071094841484021A6E233D3005FC0966DE5E3772F48405D48B6BAEB695FC058640EC09969484018AF1CA11E7D5FC0C672821A0A9748409261017966B65FC0B232DB0CD7C34840CF38A569EBC15FC00EEF96C851E84840FFD63F15E60160C0FC771FD15AFF4840680A73083A0E60C0866BAB7602454940D481EA1F780B60C02A8ECD98A462494032E7ECCABFD35FC0D2AFEFBABA4649402CF460E57AAC5FC08EC000CC503349404615830752705FC014B62928C32549409B96D1628F5A5FC0AE44EC9D99F94840059A6E5F8F5A5FC0AE44EC9D99F94840
-ca 0106000020E61000000100000001030000000100000007000000BACEB2A3ECD05BC0EDA02208CA8953406000E656AF765BC0CF14FDC8C37F5340FEA7F3CAF68B5BC02F964BE49B6C5340D13C53B746035CC07BCC1BCE305A5340020149A031625CC08177C678DC6E53402C7423A15F2E5CC0C966B56744835340BACEB2A3ECD05BC0EDA02208CA895340
-ca 0106000020E6100000010000000103000000010000000B000000CE6886AA815F5AC0B92AAB504DD35340318C45C3DFE159C0C9FA141495CA53403FC3B263CF3459C05F5DDEC33AB3534019A7CA2EDA0359C003B96DC6C8945340676286AAF0EA58C0891B3736157A5340A4A190C1735359C00BE5660C37815340026686AAC9BC59C0F7A75C75F7955340F3196BC2454B5AC083F6775D579853408EC315AD770D5AC09F260EDA5AAB5340900CF767DA5A5AC073E90303C6BA5340CE6886AA815F5AC0B92AAB504DD35340
-ca 0106000020E6100000010000000103000000010000000700000005A2B99DACBD5BC079A85CF57BB35340680ABDFA706A5BC06904ECB786A65340516BE97367B85BC04DECA0F90A9A5340EAFF48A0B1225CC0AFB5D00F1B9A534005853432A8215CC06B15FD483CA3534077E3602B00E05BC0E9718C4B66B6534005A2B99DACBD5BC079A85CF57BB35340
-ca 0106000020E6100000010000000103000000010000000C000000D0975694EDA458C083BA0ABDAB25534072F3E5561C8658C017809DDC670E5340FFEF48601D8458C0E5AB96E290ED5240D65DE9B3F4A758C049308234FBC25240BEF8824DC2F358C071E8A0B96FB9524023CAECD08D3859C0C74430BCABC35240206723E1393759C08390AE2D02E9524032AD672522A059C0712DE57D15E45240CC35F06D31A459C0256F8C8B8A155340E27834F2575F59C0EBD88F288B135340FC6C5D4EF1FE58C0358E11775D295340D0975694EDA458C083BA0ABDAB255340
-ca 0106000020E6100000010000000103000000010000002C0000009A14311572A15AC01357DE43DD445240D3ED71BCC1595AC095E203C30B2B5240DEA82DF896315AC0BFEBDA66B2EC5140C115CE8BBE1D5AC033587BFA8CBF514056B4A19243B259C0F3D52C5FDB9F514034F34820C53E59C0DF1237368E81514052F34820B74559C0B5CA553B68655140D2D9606BCBAE59C0756EC6F841605140D7F7E596F88559C06160529EA747514040CF8947899B59C0BD557BFA2D30514038C415ED09345AC0A9E1A079AB2E51406ED9C334865E5AC0911871231840514010E2FDE1D7C75AC08D5918B1A1475140FEB0CA6EB1435BC075A733596D245140E5E6FD2101E15BC03FB844AA5C14514000BC049C2C375CC0EB103736F30F514033A5B99DB7765CC03789AEED794051404007E696E8065DC013D18FE8C34A5140736F4CFDAE6F5DC0D91C0EDA55725140B7AB56D42E2B5DC08BE63DF0418451404F28087964C85CC0B10F9ABF2F8F5140B215F7672B6E5CC0D10860924F8C5140016DE973A11A5CC0A1DC664C729751400A246B4266965CC02584748066A65140D4637559281F5DC0F538F60E4FA15140265B9E75E8795DC0A3466A6998A25140A6AD5614AC9B5DC0F798228830BA5140ECB190413D075DC099CC55BBC9D351406446F0ADF6695DC0710DFD48E4D2514068936E19BAD95DC0179DBFBEBFE35140B6FF0EF302A45DC00923AB90B3135240EE61D86273775DC0FD0EFD482E2D5240F6246B021ACC5CC04D803A5322545240BB3BB6C0B28A5CC0A542307CC54752404E762321A5AA5CC06923AB10C7295240861ECE8B391C5CC007052625253D5240325001BF39C35BC071CAB884D31C52407200E6D6E67A5BC0B54C0720833D5240BC7D973B6B405BC0D9FDEBB78828524076509EF50D0C5BC0898F4BE4A7E95140FDFDE516E7EB5AC0E744CDB23004524092CBB2A35E195BC051C47E17BB455240F65975990DE15AC0BB6B8C8B1A4F52409A14311572A15AC01357DE43DD445240
-ca 0106000020E6100000010000000103000000010000001600000067422A9B71F45AC0673B59181DF652407E523B6C73BB5AC0EB90AE2DD200534042A3F34A62785AC0E7CA1B8E0AFE52401E17CE8B1E6D5AC0BBF61494B0DE5240CA17CE0B10945AC0AD6D8C4B56C05240389D1CA7CC6C5BC08D44307C66B65240380DBDBA460E5CC001331F6BAF9A5240322AA56F9A6F5CC0FFCF55BB3B99524083236B02C4775CC045220E5A19AE5240F6DC263ED4F25BC09529484766CA5240AD3A190AFB135DC0EF3DF68EC7C252405F98A84C776D5DC099B56D0639CE524002B9CA2E25165DC0C301ECB7BC0C53404E0D2044E9D95CC045351F6BA51E5340BE92A8CCCB255CC09F53A4D60B095340E6785D0E1CB45BC0B7AB96E225E352407F62AF864B445BC00912FD4849DE52401164AF06D39F5BC06F0589EE811B5340FBB467E530655BC0612B48C7D33253400BAA90C1993C5BC087F4775DC0245340723CF0AD05275BC0173FF68E3F06534067422A9B71F45AC0673B59181DF65240
-ca 0106000020E6100000010000000103000000010000002F0000000845D8A291E556C0292A0EDA3B795440FB1FB640AA3B56C001C4A77385875440C20CA56F18BE55C013DCF271E5915440DEBB89874B3355C0EBA8BF3E1494544068F4F6A7CCDC54C0439FE81A66B6544070EC5931A0D353C03373EF145BC85440336AA88C00EE52C0CB1D9AFF18C45440706A4503383552C08BE08F68EDCE54404FC2713CF37450C0BBE32CDFCAC154402AAF162C6AF24EC0BB9EE81A2597544018614543601550C06F34E57D607B54405E9A15ED37B050C099FD14D46A6E5440D7AFC33415EA50C031A185111760544049513472BD5E50C0DF4B30BC6B605440916D7FB00F5E51C0278F74407A27544043973EC9894F52C0A98AD70996E85340705A973B183A53C0639BE81AADD45340D170E2F9DEE152C07DA5BF3EA6CC5340CA414CFD1B0E53C003C4442A38C15340CD92045C2ED952C089D455BBA6A15340B4F1931EDD7853C09F66B5E79779534070C2FD21369753C00F4493858C60534026BDC3F49BF053C0095F7BFA6A4D5340F148E973A8E753C0EF1DD46CEF3E53402F2C01BF3A9353C0C146307CE3365340046DA84CD69153C09591AEAD44275340CAB3EC90EB2354C01D2EE53D660B5340BBC7FD6129CB54C0D9CEB8040F1D534022C4C374288755C0ADCEB80423135340E0013155675F56C0EFDFC9953B1E5340C6F759316E6756C0F1F4779DEF3C5340BEF559B11CF155C0B97D00E6694B5340FC25F02D910B56C0C7621831A7605340C0952D38BAD855C0DFAAF9AB95785340347BE2397C3E55C09358418D7A62534062962DF88FFD55C04DC344AACB97534096E0AB29BAC955C013B6D0CF8DB05340FE6D6E5F3C5855C077D8F2F1CCBF5340B6A7DBBF134655C01F1D37B61BD65340FCC7606B78A055C0713582341EEF5340FEED1F84A2BB55C0477AC6781710544060B44F5AB30C55C015BB6DC6550D54402ADE4860497654C019772902B91D5440F8F8F66755E655C03B2571A30A215440F76ED1E8765756C01D748C8BC336544061413BEC8AD756C025B9D04F656354400845D8A291E556C0292A0EDA3B795440
-ca 0106000020E6100000010000000103000000010000000C0000002B101062B89660C02E9C07061F054B40768EC163B89660C02E9C07061F054B4055F427EAFF7760C0D6B0B54D5C0F4B405A35CF57958160C0B8DAAE13087E4A40D8FA61B7BA6560C07EFE6D6C18174A40E16465947D7260C080FE6DEC57174A400C09D611C68560C080FF6DECE1514A40BFBABA89999160C062DE4B4ACD8C4A400958F15FBFA160C096CA9D02ABB44A407273D954ABA760C08A2E6732F0EC4A409909D697C2A560C03458C3C1C1154B402B101062B89660C02E9C07061F054B40
-ca 0106000020E61000000100000001030000000100000012000000FF9F45836C625EC06DFC4E81BB9C5240959CA8866C625EC06DFC4E81BB9C52401BE6267806075EC03DD3F271728F5240F05364888F635DC0F702896EE38B5240D0DE894767255DC009CCB8045979524016B8CAEEB0E05CC08557DEC3695E52403BAFF3CA25315DC06950A456444E5240B0D078767FD05DC00394E81A8E2752408405AC63302F5EC07D4B07A052F651403443B6FAA83D5EC0E3FF88EE8CD85140EE0EE690E6C55EC05D9CBF7EB4B95140C53108B3F1EE5EC0FBCFF2F1B0D151408BC3CAE8737B5FC0F9C27E9798F7514059047236B2785FC0117F3AD3720C524079663B266E465FC0C3AFD0CF71415240EC1D5AABB5135FC0FB6B8C8B7D5D524042C90456BC3A5FC0AF9C2208BC925240FF9F45836C625EC06DFC4E81BB9C5240
-ca 0106000020E610000001000000010300000001000000490000000C1F8D2452B153C01FFA4E018A165240F4A9B2A3C67453C0F9FDEBB7F92F5240D65FD128C6E652C0C78CAE6D980F52401B8E67A5A18E52C0AB8F4BE418F15140CA94A152588652C0AD40307C2CD551409AD348A0800F52C097EBDAA6A4E3514048D9820DCDCC51C03940307CE1BA5140309978B64E3251C0D9B30AFD99A15140D8CE48E08EFA50C067B30AFDCD87514012128DA404BE50C03D90E8DAE84B5140EEB7FD21873351C0C1C955BB172E5140EA142A9BCA9C50C0CF5BB5674C0451400554D128303750C03D0660123EF65040D093914064B64FC0C18DE81A6CBB5040EEEFBDB90DED4EC0C33B30FC2CB75040AA6498FAE2144FC02B34F68E418A50403CEAE6958FF54FC0EB6C632FEA3F50409A9815ED864950C0515C521E445B5040C23AE97328AE50C01FB644AAD59850404DC1D405F60051C0510B9A7FD0905040B8A24FDA0A0951C0CBF24E81256C50401F6445C3BCC550C0ED84AEEDF0465040ECE0F667DA6E50C039517B7A7F295040FECB48A07D5450C0854DDEC37E1850401AD2828DD72A50C026176E6C4BB24F403EC8AB29E24050C0F24167B24B564F4059E830559A9150C0560F34FFF8784F4058F507B91F3251C00663EC1D72DF4F40D12D75D9A8D750C0CA0B97C825714F403F8CA1D2029550C0C6257F7DD9234F409DB160AB988A50C05A170BA327F74E4040C2D4C5263851C052638954422A4F4021B026FE7FC151C0A6D8631592744F40AAE45971100F52C006F54B4AECB24F40C6953EC9B8F851C0428FE5E309D74F408CB9602B365852C057874BE4690C504058EE931E67B552C035DDA0F9752B5040F4C19A5862B452C0C357B5E7E61850408CC8374F706D53C0410260D2B00E5040304B86AA94A353C075099A7FAA245040A6E0820D6D7953C02DBF1BCEC95350403CECF6672B0153C03F33F60EED5450400D983E496D7D52C04BE877DD1A5D50409ECB71FCCE9252C0D7A7D00FF4735040985A3472797C52C095DB0383E093504099F907B9AC2952C03B3C307C36D2504065ABEC90443B52C02FB4A7F385EE504080F3CD8BF15352C0DDCF8FA871045140622801BFF8B552C00DDE03037F235140443875599F3753C0D1A7335943395140F200A52FA20E53C0594F410D754951407257FA44645253C085012625407151407E0642E6CA8A53C003A2F92BE574514044BCC37443BD53C047BA442AAE8A5140AEC3FD6184DF53C07D42CDB2CB775140EE6C0BD68C5354C0B1345958906F51409CB8EC10763C55C0B964EF54DD7D51406ACF9A18D7C355C07905C3DBA3905140B2827F30A12B56C045D9C995499A51406F8AB9DDDB6056C0E5E3A039C5B05140B6298D24EF1D56C0D38474C0F6CD514080982D78D77856C085698C4B3ECE5140E0D29A58218D56C03FA15C750B0F524074726EDFF05B56C029914B24494852406E5923A1201A56C0B13F93C56C625240126BD1A8DF7455C021FFEBB7717352400E6597BBFAA355C0B77C9D9C134A52404275A84C8F7155C02364521E2F22524055BF263E683655C00565521EC7555240BC5223A1329454C0D5F414940F705240276C0BD6672654C011200EDADB2D52407E65D1A8EE2F54C02D264847F60352400C1F8D2452B153C01FFA4E018A165240
-ca 0106000020E6100000010000000103000000010000000C00000090263115B7B65EC031ED3D707507534026239418B7B65EC031ED3D7075075340B224310F154A5EC079C87E17543753401830A5EFA6C65DC01B1B3736C8605340CBF7D4057D645DC009A75C75E45F534034488DA4B50C5DC0EBC5E1604C695340874153F77D155DC03B2171232038534071536488C9465DC04DFBB10AEC215340C035DF1C96825DC0DFCEB884CB1E534013195A6B8EF95DC0AFAF33D967035340D51A5AEBFF5F5EC06D64B5E799F9524090263115B7B65EC031ED3D7075075340
-ca 0106000020E6100000010000000103000000010000000A0000006C39C7D1022358C001C07E97754A5140DDFABC3AF0E157C0D73D30BCD92F514096D2602BBC0958C08B88AEAD681951408CE80E33006058C0E53D30FC3233514024CE263E1F9458C0E5AAD08FCD2551402762862A4EDC58C08D9622080B2E5140B308945E33B358C073CA557B665651404E348D64748658C0239BBFBE2472514060BFB2A3755358C0A9678C0B386251406C39C7D1022358C001C07E97754A5140
-ca 0106000020E61000000100000001030000000100000021000000CEB5C4F3D3CC4BC046444FE795A849401CD9E61528114CC06CCBD7EFEF57494070B8C473DF654CC032AEEFBAF9E748400454FB4351124CC00E34DB0C371349400804E0DB59BC4BC088BF00CCC8F7484014E65A7044E94BC0807ABC0727CB4840248191C0B2774BC04E7D59BE10A84840D89E16ACA43C4BC074B429A841C748400E037D92FFBC4AC0CEED96C8E39F48402AA450199CE44AC07ACD11DD2542484010E05A70068B4AC03E9741F30958484088384DFCB47A4AC02E7EF6F41D144840766E1DE6F4524AC01AFBA7D98CC44740DE83CB2DDA884AC0B4813062E753474042EB3114BFC24AC06C4EFD2E244F47403001E05BE7164BC0C8DA22EE4D6747402ADB20831EFB4AC03CEA96C806D047407C5D6F1EC81E4BC00639B2B04AE04740A6963F884CB34BC0B433157A47714740AEB6C473ADFF4BC080529A65B97547408AB861AA46A54BC01E50FD2EDDB14740C2A2162C1A204CC08291A43CF7D04740287CBA1CA1A94CC07C7959BE51C9474034131AC90CA24DC0B6D5E8803ACD4740BC464DFCB1B54DC028A3B54D21F34740546EA98BF6654DC0D01ECAFB3120484082DC49DFA59D4DC0102D3ED6F74248405CBF61AA26324DC060910706139048402A6BA98BE9AD4CC0F6424F67F05B494072DAE6158C5E4CC02E0AE2C6CAA44940ECA1162C7CEF4BC0EE6DAB76E8D04940DCC972BB17B44BC0B0AE52844CCB4940CEB5C4F3D3CC4BC046444FE795A84940
-td 0106000020E6100000010000000103000000010000003A000000E06B30D8D7FD2C4090519BC902B8294020D3963E0A312D40A8448AB82DA92A4070BC852DB1E82B4028FDA83DF7B42A408030606ED4E92B40E813BA4E4EFE2B4040CD3375AE142B40602191F2F8BB2C40A030606EC4F12B404071D536655E2F40E09E299ED67E2E40E0A41F1D97A03040206CF66AD3992E40D07A89208EED314010CF2264195F2F40C4BDF6C009F533406060E55976CE2F40806367FE3A633440A0AE9D786BF92E40400C7572FCBA344060C6E8F630F12E4080B1E5AF670C3540C0A700429B312E400C194C16FB4E354080F7B860E0B32D40D00E3B05EADC3640D03DC337C4B82F4054962657E4683740689FD00A69D93340D042A8A5BE7E3540E069EF8FF6FA3740285CCAC7237F3340F8B70A780BE3374058C9C7C2BE382F4048FF88294A063740E8B8B6B1875C2F40E0335993659136400886BDEB78E32D4090399300B44D3640D8ED5DBF55A72C40A86DC63315833640C0B1F01EB42F2C40A80C9A3AEB2E364050F33463AC922B40500660CDEA4B36409841ED819FBE2A40C83B3037A0093640708C086A32E9294028A533D4D0EF3540C01191F2242D294078399300BC4936406034B314C74A294088BF7E52647F3640B015CB5F3D852840884BA4113982364020368AB8D55B2740B8ACD00A4FE036400882A5A0EAC4264028FBEBF239DD36401816A203E8482640B84D41482B3B3640C8AA9E669BF12540F8FC25604CB9354088C2861B552225405882AEE838003540908C8D55B4F322407088858C470F344088999E6681062240F079AEE81018334008898D5552262240100871DEDFCF3240102CFE9240F721402816E5B838E93240D069A5A004432140380671DEB963324020CD0B0707902040806000A105F73140B0AEFFC24B901F4060FBD3A7BBB43040001CDA0387081E40F0074882C8743040E037258268F01E40F0C2033E624A30408042FC2569041F40481E9300321B304070B5739D04FD1D40600CCA71158F2E40107A06FD0CB01D40506DF66A47DF2E40E0B8739D70C51E403015A115E23D2E4098900130A9C32040409252FAC1F52D40D09064F99A972140F0B31153C4162D40B0F8CA5F85EE214090DEA74F8FE82B40409E9E6657192340F0918C67CA572C4080ED1C18F20A24406036606E20412D40E0F6F3BB82D72340509FC6D496D12D40F0D13463F8FB2340300790048DEF2E40207942D7F4F62340104A717FDDD82D40087031C65BC82540B002900499EB2D40B87C6B33741C2740D00F04DF69C92D40C8EF0B0727702840E06B30D8D7FD2C4090519BC902B82940
-cl 0106000020E6100000010000000103000000010000005E000000A61253F7F96C52C00848BF8CE36A4AC0A61253F7F96C52C034418593E36A4AC0ECC8D4C597BC52C04895DAE8A1214AC029E11F44A4D052C0BA374BB28ED049C0EE8E672581BE52C0221B63FD8D8549C0D481F34AB4DE52C09031AE7B6E3049C0CC882DB8E9E652C01E4996303E5648C0CF9CDB7FB2CB52C0CA762C2D20DB47C01A761CE7198852C09289DA74397847C0B0C9D4C53DE952C04041F9F9E55247C03828013F4CAC52C04E3FF9F9C9E146C067EAF667829652C0D434BF8C300D46C091B226FE614F52C034CF58263C3A46C0199ADB7FF02D52C01AA599CD113145C0A0CA71BCE35852C068BCE44B0B0F45C01D8ACAAEE26C52C09E365CC3D1AE45C0C8505D8E3E9552C0FAE0066ECB9C45C0E42A9E35268152C0D5DD066EBCE544C0B3C09A98556B52C0C2D9066E9AF843C03C973E09ED4D52C0BCECB4B51CA143C05A640B165B6052C02DE7177F352443C0B20B19CAA26552C0F0EEEE22019442C07CB2267EAB4A52C0286DA007D88F42C077BF9A98662352C0D97377AB21C141C014EB939E26F751C002B858265DF440C0DE91A1920FDC51C047DA177F9E3540C0101EC751CCEA51C0F073C25DAFEB3EC08C87CA6EAFD751C05EE49C9E7E183EC0A113F06D5ADF51C098EC107987DC3CC0E864A88CEDB951C0788E1EEDEFA33BC0418A67A565AE51C0483E3D72B7B439C0C8047C93DA9951C0D47C1EED05A137C0C8F607F9D68551C03C7DF590B06435C0F2A44FDA858A51C05ECB4AE6A7C133C0266BE239D89751C06495B4E9145932C0CC3A4CBDF07651C0227292C7BA1732C0B60AB680C96551C0F41DDAA87B9431C0445534726A4651C0AA3F5F94974232C0A0A34F5AE03D51C044E3329B4FFB32C01040866A4D1C51C07E74F590B26733C0929C156D753051C0E4374E83665F34C00F4A5D0E130E51C09C6CE47F8D7E35C01FFB41E600F550C062F4329B77DF36C0C5374CBDD3C650C0EEB28B8D65BC36C0F88CA1120EBF50C09EB0EE5681FC36C088239E3505D550C01EA4DD457A0638C099027CD3BA1A51C006629901C08438C03AAD263EB41851C0FA3CA03B5D2F3AC0C4C80E33112651C0249792C7C4813AC0B06F1C27EA1251C06ABE51203BE63AC0BE51973B144051C07EB3DD456E853BC05F07190AFE6951C09EB7DD458A753CC049F36A02DE8051C056DA6231305E3DC08E1F6408D17A51C0BC0085531A563EC0D21CC7913EA251C00A351B50715D3FC08D269EF5C28451C006205CC3AC8B40C0D04B5D4E257451C05C0F4BB20EA340C09A7BF3CA4E7451C0708525F3C61841C064D882CDD59851C08E4DB852B89541C098452361589751C03856F2BFA60042C0A3168DE4CCC751C01C3233673D5442C032D9828D97C751C06815AE7BD5C942C05E279E7523B451C0A028BF8CC84643C0924D5D0E77DA51C016D46937407543C0744AC09791EB51C05BF151EC71E743C0672FD8629BFA51C06286B1188A6A44C02ABBFDA1CBEF51C0CC446DD4930645C038F2CD8B870952C0CA6A2C2DA02045C0204E5D4E96FA51C0FE17D7D74BB445C044BE9A18B3DD51C06EB27071D0E445C07F9C78B6CAF251C02046D09D841A46C0E1B3C3741BD551C06B8777AB293446C09EF46A0242CE51C0A6EEDD11626446C0906CE23932EA51C0394B6DD4A17C46C0CA5E6E1F54E351C0C890B118C6C746C00803DF5CB4FA51C02CA85F60427147C052852D78A11C52C0EA873D3E88DE47C0843D4CBD311552C064180034431F48C03630D8E27C2952C08B0F2990767048C0DE9ADB7F965A52C0DF9FEB85C2A848C05B973EC9FE5452C04F8AA0077C3049C09230D8A2723E52C01F28D7D7E75E49C05C1B2A9BD61352C0985EA741A85649C0EC40E9F3141552C0EBA788BC85B649C0908B67258CFA51C0745096A427014AC03A41862AE55F51C04C7655FD45124AC0BDC80E33942451C0A0D91E2D54264AC07485CAAE855D51C0145196A45E254AC00C97DB7F567C51C0E295DAE8DA444AC0638A672516B651C02C48BF0019734AC02A2401BF67C051C03A4ABF00A8EA4AC0CA8090C181DB51C02FFF404FA0ED4AC04F630B56B52352C067ED2F3E05C44AC0A61253F7F96C52C00848BF8CE36A4AC0
-cl 0106000020E61000000100000001030000000100000016000000193F86EAFEE350C0CA2D3AA15B6F4BC0193F86EAFEE350C0F62600A85B6F4BC013AFC3346FBD50C076640A7FCA724BC0B4F30739A0D250C0DE505C3790A64BC05B765614830951C07C404B2651CE4BC0608B049CF52851C0EC8E660E3ECA4BC0BC0D53B7DA4E51C07EE7589AE0BF4BC0E000DF1C517D51C0E994A07B66994BC0D4CEAB295DC051C072D54789E4864BC074DA82CDE31052C0184F5C37603F4BC0200142E6405252C0F8C1367890FA4AC0F21D2A1B67AA52C0990AB529336B4AC08431D862A37552C02E90A07B11864AC0E81EC791C91B52C01332748291DB4AC0D6E6F6E7E4C651C028B1256783094BC059943EC9DFA551C0183C4B26D4CE4AC0E2AB89871E9151C01C269DDE32774AC0A8DA1F441F5651C0601E637157424AC0D2654583952851C0B7CCAA5271514AC034A34F1A322551C04FA7EBF99F594AC09F3212D0882851C01E838F6A4C6F4BC0193F86EAFEE350C0CA2D3AA15B6F4BC0
-cn 0106000020E610000001000000010300000001000000E600000004D3430596EC56400C32AFDF90C53B402C43810F91D0564078A04FB3650A3C4078BD95BDC0AE56407CF207D2A0103C4048562F5703815640B0ECCD64E34B3C4006AB84AC735E564038F9413FF20A3C40DE09B1A51C34564078E193F79F4C3B40FED91AA9BD2E5640BCB160C43C163C4090E3F14CB507564014F5A40865E03B4062CAA6CE16BD55407C586E3869F93B409C401E46B1745540D4AEC38D1D343C40388E39AEBE40554040C571D58CA43C402420995A030F5540289D154603D73C40B8ABBE1989F9544054B02657FA513D4032F63C4B93D5544058DD1F1DB7763D40DC879CF7F5945440B4910435821D3E40FE23D3C7A6615440A0F2302E376C3E402C9410D21E47544064F86A9BF82E3E4080D3B7DF2AEE5340402B0198F9E13E403265170C4AAF5340449BA16B12843F40206FEE2F579D5340DC9C9D02204F40400458A3B145CB53405ACC337FEC3D4040A454067B5ECD5340B43AD452487F4040F6492FD7E8B353403268CD18CBC040407276289D62BA5340CED3D0353529414026F03CCB9875534046EE1BB43BBF4140AC4392A0570C53400C6A30E2FEF24140964D69C466F952400E244FE759554240884292201DCA5240229929280791424012FE4D5CB8BE52400C7BA43CC2B54240EE37BB7C1EB552405019DB8CB8FE42406C12FC2359B75240F44971097E3043405471281D7B90524022925204A24D43402CA45B50727B52408E02908EBE4043407E3DF569396B524000082DC532B74340D81499DA707D5240B29E29287BD443404811FCA39F74524046B03AB96DF24340E671281DB8B152401C7E0706E72E44402487D6E4F0DD5240E80DCAFBF14744403ADA8E03B0215340DCB4D7EFC63644409A03EB12E33953400A49379C828844406094AD08FB8B53406CCE226EB8974440AC492F57CBA2534030E76DEC86CA4440E8994ABFA40754403EC64B4ADD0F4540008939AEA310544088F6E1C6CC2C454050EF9F94870B5440E4DF96C8C47545409C155FED6F3754409465821A16974540C870EEAFD4FD5340E41A673271754640E2C4A6CE9C7C544056DE5C5B94A846402C81620A5F9D5440E88CA43C13C54640146A170C8DCB54407864AB763EAA47403ECFE0BB834A554066711F511F804740A06240681C6E5540C63B4FE7FAB94740CEE72BBA2A7155401E607109563A4840BE22995A52A6554012B963954B464840FA89FFC009D755400A097F7D849B4840C419C2B614F05540B6BA63950AA64840AC5092A0E2005640FE226732BB4C484094B45BD0AC365640668193ABD7084840E271170CF991564052D98537C6D84740BCBD95BD21BE564066182DC5AE7147401AED2B3A7DA5564004AC29A81FDC4640640577B883BC56405C29DB0C9EA44640D8C5CFAA9108574024856ACFBA8E4640185A2F57C45E574032142D45DC7C46407E6C406817AC5740DEE9D035192D46403644E4D8A3D3574024D522EEE31E46402048810FCCF0574098E7D0B5E3A84540D01F25805C165840CC34EC9DE15C454084D20998E95C5840D834EC9DDB5F4540BEFD652703E15840EC9318172943454050E71AA9223659407C3B268BF754454060AEAD88507559402CD85C5BE74145405605035EFCD35940CCFFB8EA27F44440DC3936116D215A4062FC1BB444F44440A4B8E775C23D5A401CFFB8EA77CC4440DE450DB546885A4006BC74A631114540FE39995AAAEF5A405A7F6A4FA23D45402A27EB12974F5B40F0CD85377D424540AC958BE65F9A5B4094AC6395846F45407A33C2B64CC85B409CEE0A2313B445404CA89CF717F55B4038CDE8801EDF4540F64B0D35BCEA5B401053D4D25D09464036E5A6CE4BD65B40F08D41738D3A4640D4BC4A3FE4F75B4024BFD7EF108D4640A6F07D72E81B5C409C69829A7D814640FA24B1A5B05D5C4078846ACF89674640E62CEB12769D5C408C3AEC1D7FAB464086BA10D20BFF5C401E5A710916DD46401077CC8DF12D5D40DA3CEC9DB031474070116627FD5A5D405E55371C1C564740D4DF32F4F4B75D40CC7759BE17674740A8098F0373EA5D40708FA4BCA9584740B6F87DF275F15D4012D14BCA26864740D2DF32F475B75D409698DEA99FDF47404C6EF5E91A845D40A628A19F8A08484056E80998E9525D405876BC874ED94740D6E36CE1C5135D40E646268B3CED47407C27B1A58AEF5C407C240469FFDC47409C2A4EDC0EDF5C404ADA8537541148406A65BB7C460C5D402EC19D823A914840BC955179712B5D4006599A65BBF1484020A8628A45785D404E404FE767C148404643FC2376D25D40FA22CAFB491249400C739220E1D15D40ACDF85B79C4A4940386D58B3A60B5E40AC8C306260D249400EDBF8863E2F5E405419562168FB4940D8A7C553732E5E40B6131CB413424A40BC58AA6B550B5E407A1EF3577F604A4090AB628A32405E40A23004E92DA04A409E917A55BA8F5E4038C700CC42B74A40D04E369193E45E40307C821ABABA4A409038EB925D445F40BE4BEC1D9D944A40088806FB907C5F40D8FF6D6C7A654A40D8AA281D1FA45F409626CA7B62E44940B04BFC231BBC5F405C444F674CAD49409CD484AC65D25F40626F48ADB15E494098D1E7F512EA5F40184B268B50E14840DA3472ECBA2C604008BB639565B8484012959E25A25260407A569A65665D4840E8CB6ECF975F6040F816900E23E547404AF22DA8369060405E7DF6F4FCE447403630387FF4AB604032A752047B174840DC892A8BD7E06040C4F90AA3363D48408C4FBDAA06D06040AA721F510ACA47403090647898C36040E00E5621329B4740403772ECA0B86040CC61AB76F70E4740B8DAE2A91BA3604090142DC5709246408C8BC741457C6040D055D4D21BA946408E9F7589CE6060401A66E5E3E57B46409C54F7D73B69604066FAE146460E4640922B9B48A1646040D4314FE709774540E4C434A2485460400C13CAFB95734540EAFEA1027B546040EC7493AB8F324540FE9E7509D13F604002A62928217E4540BE6408E9173360401E97B5CD65364540482D38BFAB016040CACC85B744FF4440285DCE7BAB066040E072932BBFBB444088B2628A00D65F40AAF4E14667C04440546A810F9FB75F406C06F35785E84440A47A92A0A68B5F40682AB230BD8D4440AC8369C41D455F40EC0DCAFBEF484440685670FEFF105F40B2A2C6DED8F6434058691E4686B75E40827C0706A3D14340B8FE1AA968885E40ECB8115DD195434018C010D27D435E40CA2F8954E07243409A12C9F080655E40BA82417330AE4340EA3788C91C585E4066ED449008E043405C98B442CA8A5E406877CD9812364440C05D47A2FB685E40DE93B54D23794440143EC23631315E4088D0BF24F44B444042DD953DEFE85D40A8DC337FF3F24340AC27146F80C15D407E8241734CA04340F6B5D664BC825D4096B574A6259A4340CC1B3DCB17625D40C2E7A7D96A5E434048D1BE19D2835D408CC7226EDE0743404ABA739B33B85D403801908EDBF2424090C44A3F58BA5D40881B784367B94240E83CC2B6FAEC5D40602F268B0494424026DBF886B3345E401453482D6AEF4240DC97B442856D5E40987E417395BD42408EFB7D72E8965E40EC4771892CBA424014EE099847A15E401A9CC65E1E774240F48CDD9EAA465E4092490EC05E53424092AEFFC0C4285E40C8AE74A6430E424054B4392E88EA5D402625EC9D0DCE41402EB7D664ADC95D40F415784376744140567E69C48F0E5E403CC65C5B1F2E414086749220B4275E409275417338B04040D6E5CF2AA84E5E40EC9F3AB9EB3A4040E064810F1F7A5E40C4BA265732B13F4034570D3515795E4040AD4FB308F33E40B4EC0998E9505E409C6E45DC1FAD3E4008FE1AA939605E40B06FE21296243E403687A331E5855E401C9E780F20D53D4042570D350F7C5E4060DB1F1D9D043D401C792FD7CD6B5E402CB99A31BB393C4064907AD50A485E4040CD4879BB223C403029146F4F195E4064E093F79E0D3B40D84DD3C778E55D40D84734CBA3BD394038B3392E0AAA5D40D0129ECE218C384044742FD705525D4010C7BC53DF9F374034EAA6CE01F95C40380464616AC83640CE8C178CE2B05C4008BC82E606AB36409CA0C553C3895C4020912657483936407C47D347A2735C40006D67FE5F8C364080B710D26D4F5C40A471A16B260D36407667F569FDF55B402C2B5D27ED8C3540C040361145B25B40903B6E38AB6535408C39FC236B9C5B400482ECE94D5734407C5EBB7CF3785B402C8589204F4834406A2E25802B685B4000F9C62A1B0235400C5B1EC653775B400079780F22653540767169C475215B40E42B5D2718B735402207662736035B40FC9460C4688D3540DCA9D664C7C25A4094D36A9BD8CF35405A460D354EA45A4008801546DC3736405413DA016DAE5A406C60F32355CB3640CA895179EB735A40E8A8D49E15FA3640F46D69C411555A40C4DD07D2205A37404C4EE4D8841E5A406CDB07D2B3D13640249F9CF749E0594014D4CD6429B43640901C4E5C3FAD59405007019873B53640EE44AA6BE88A5940B47D780FFA76364034E81AA9BA695940ACB3487975513640D2C25B5066735940DC1BE94CA32C3540D2BEBE19485159408CDEDE759F3335406E400D35854B594028DC413FC36F3540542FFC239A4959405033979498D935402265CC8DA81A59405CEAB519108F35409853BB7CF1FE584028EBB51931BE35402CB921E36ACF5840C478DBD8491E3640DEE51A290CE258402C720435F4F2364052A4731B85B95840A8460B6F8924374030C695BD41AA5840FC2B868333103840D2F42BBAB36658400CF85250BCE53740383970FE5F6E584034EC413F69153940A8A0D664FFAA5840502D4C1630EB39408EE17DF292AD58406C45FA5D58BE3A40786DA331B1AB5840243B868341823B40D8AD4A3FC28F584060D282E649BF3B40A209DA015E7A5840906E1C8000563C40D20F146FEF545840A0374C16F7423C40E2B521E3EC0F584020DCBC5339693C40465358B38A255840E869E212BBD43C404E78170C88075840D0C871D5EA733D404033D347E8D95740E85297941E083D40D680EE2F39A4574094ED302E06473D402A198849745A57407C6C7F4900A43C402EB5BE1933205740A0CFE5AF99E53B4004D3430596EC56400C32AFDF90C53B40
-cn 0106000020E6100000010000000103000000010000000A00000094837AD5695E5B4064E2EF869C3232402A345FEDEE295B407C027572F781324074EC7DF213285B4084AD82E62D5E33408EAF739B9E475B40642A97942FD2334062847AD58A8D5B40D45ECAC7EB1934403C55E4D856B25B400817E94CD9133440D0AA39AEA4C05B40ECD7DE7528B23340068F517985A45B406C13E94C8141334040A3FF40B5955B40E410E94CABAD324094837AD5695E5B4064E2EF869C323240
-cr 0106000020E610000001000000010300000001000000240000009CAFB263CFBD54C0180A16DE36732040C0D5713C8AE054C02057948FD3E42040D41619CA88ED54C0706D42D74C502140F4BD26FE29E654C0303FACDA2FA921404DD90E337DE854C050D7A83D4F1A224079B7EC903BFA54C018E71C18E4942240C695CAEE6A1355C0C8AEAF7786F92240451BB600732955C0F8238AB8273B2340EE17198AA72D55C0C8CD972CECD0234019932D38713E55C0289C64F9662C2440F91E53F7533A55C0386D6B338C972340A6F9935E194755C0D8ECB94E341D2340CEAE152DBA5555C010BC861B49AB23408E157C534A6A55C0C0268AB8DFDD2340DE710B56097355C088288AB80F4524402E2A2A5BAB7255C0B8DC6ED0F0E024407A673432326A55C020EDE2AA3782254052F0BC3A457C55C0A03227EF61CA25409A7845439A6D55C0D81F79A7482D26405BCAFD61F56355C098BA12412A6F2640685C5DCECA3955C020F9B94E94E7254042441290132B55C000B6750A522A2640042CC791C71655C0805C837E9AFF2540E63CD8E22B0C55C01824B3143F962540909FA19248F954C048B6124124742540D28AF38AF5E954C0308FB6B1A5E025408E272A9BBFD954C0281D16DE76CA2440F8CA9AD800C154C0202EC42568FC2340FC5223E1F4A254C0A06E086ADC2123401ED5717CB4BB54C0885220B520F422406E8D908156BB54C048CDD1990E262240A4CA9A1807AE54C0484A837EF6D921408A86561498B754C09001A203529D2140A2A878F61AB554C088FC04CDA94021400B61977B71BA54C0D0D1A83DD7D820409CAFB263CFBD54C0180A16DE36732040
-hr 0106000020E6100000010000000103000000010000002A000000886ED74470D43240946B821A56F44640205B29FDA01233401A977BE0C0C2464028303037F6633340BEDABF24469E4640C883858C67013340CEF10A231C6E4640180037719F8D32409670BC87718A464078639DD79DDC31408CD385B7AB884640782C6AA48C003140CA4E9A65EC9D4640C81CF6C9F1883040B477F6F4159B4640C00AE5B87251304082BB3A3987804640509EEF3032EB2F40CA4E9A65EC9D46401070F66A03802F403A40268BCB684640D8E425605A3D3040B82A7843F22C4640E0F63671D9743040500BF3574705464078F5993A89EA3040E2D322EE77D5454030CE3DAB204C31408E2FB2B021B94540A8FFD3A7C7AC314094BAD7EFA783454098DA77185B8F324088E96D6C33534540E06CD7443473324018D85C5B703D4540185B636A8D8231402C1DA19FCC6C4540902F07DB14EE3040AC9FEF3AE19A4540B8C1033EF0033040A2BBD76FECC04540D0D4F90752592E408264E5E3201F464070B4D7E5A3C02E40A28D4173B1284640805E1FC732D72D40A6D9BFA4865E4640309FC6D49ECD2D40960DF357BC894640505582907A842C40CA4E9A65EC9D46406048ABEC8DE72B403A17CAFBAB66464090D80A195F502B40AC99181787914640C01278B9DA5B2B408A82CD98F8BD4640B0AC11531C6E2B40CA52379C0AC046409045717FEDD22C40066E1F51ABBB46404092EF30B2302D40387559BE45D1464090766A45D8DE2D4006D1E88060BC464020C5E8F6C4A72E40FAD0E880E5B94640304AD448DDA52E40562ADB0CABDD4640502478B9D2572F407442268BC5EA4640602F4F5D97892F40EE3F89547A1E4740C834414897903040CC2104E97A404740D0094882ECE13040A843268BB830474070C566074CA1314024E3F991D3F94640C0104882C07432406E6448AD36E14640886ED74470D43240946B821A56F44640
-hr 0106000020E61000000100000001030000000100000012000000E04DE559EA9C2B4058AA8CF13041474080E4A74FD3432D40B8CF4BCA45374740908241E930462E4080B1C65E505447404884F966FC0230408A14908E80574740B8BBC9D0C9333040BC1BCAFB1A6D47401056636AD95E3040BE55379CB06B4740C834414897903040CC2104E97A404740602F4F5D97892F40EE3F89547A1E4740502478B9D2572F407442268BC5EA4640304AD448DDA52E40562ADB0CABDD464020C5E8F6C4A72E40FAD0E880E5B9464090766A45D8DE2D4006D1E88060BC46404092EF30B2302D40387559BE45D146409045717FEDD22C40066E1F51ABBB4640B0AC11531C6E2B40CA52379C0AC04640903A371211E02B40CA1F0469A6CB464010D2D0AB6E652B40B2E696C825024740E04DE559EA9C2B4058AA8CF130414740
-cu 0106000020E6100000010000000103000000010000002A000000D7AEB263299154C09C3C34CB48303740AEDD48A0E25954C09C571C80051E37404BF1F6E7992754C0C4278683211B3740D2B2EC507DEB53C0AC8CECE9EAC336402E7FB9DD03D253C0A04DE21232663640287EB95D3C9653C02CC2BC531D8336407662D128927F53C05C2E5D27F6463640C1CE71FC5E4953C070F829F468A83540D4C39A58862153C03C898920F23435406EECF6A7740C53C0F496FDFA76383540B13DAF4649E652C0604E1C8041043540CC771CA7F2EA52C02C24C0F02EBC3440CA43E9F3C4BB52C0389160C4A3B13440DDF76AC2648B52C00429FA5DDD4834405E246448FC9252C0D4CB6A9BE50C3440D5E01FC48ABD52C0B8A5AB4266EC3340E83675999EE852C01CDC7BACAFDF3340992664C8B61453C0400C12A9F0F33340706CA8CC597053C0F42D34CB00DB33409149866A724553C0908CC38DD1693440CE791CA7875F53C0FC6E3EA250AC344068926765C98853C0BC497F496DBD344092C2FDA1E69E53C0BC690435530735406485F34A12AE53C064C893F71D9935405C787F703DD253C090BA1F1D268F35403680B91DEB0D54C05CF2EF86CBD33540439F3E491F2154C0F83AD1017E0936407E6D0B568A7454C074A5D49E2A313640D6966725E18A54C0E4050198196336400ACD374FE17254C0848F892010A336402C421250A8B154C0A4A7D49E2AB036405CA97836A5DF54C0546B67FE232B3640FEA23EC929FA54C0E0040198912736409A7D7F70560355C0741175721BE93540CC8BF38A022355C0FCADAB421DCD3540ACF259F1643E55C0D8EBB51962E53540AA5186AA9C1C55C018050198773436407AC5602BBE0E55C0FC21E94CD59036403295CAAECEF154C030908920C2C93640B3A5DB7F1FD154C028793EA2A8FB3640A7D471FCAAA054C048FB8CBD28143740D7AEB263299154C09C3C34CB48303740
-cy 0106000020E6100000010000000103000000010000001E0000009C4C46639CFB4040A008046944874140E82DC1779FFC404040DC0A237D87414070A538EF9F004140DA6E6A4F327D4140D41376F96A7D404044895204334941409C531D07C23E4040743ED4D2CF594140202AC177DA204040A2BD85B7368D4140481376F9AA5D40402A98C65EEC914140DCEDB6A05C64404056056732D28E41403884B3034A6F404096204FE7708B4140E00C3C8CB4754040C853821A3E8B4140DCB0ACC9327E4040768A5284E68E4140707ADC5FEB89404048807BE0B5924140A8A338EF71984040847941F328964140603DD288C99F4040B883181716944140FC7ADC5FABA94040BEBD85B7A9934140645C577421B14040305E59BED394414078BF20A44DB640404CBAE8000A924140C08F8AA75BBA40405C794173FB8C41400C7105BC5EBB4040E4D133FFA1804140BC7E7996E7BC404094B64B4A0B804140E88F8AA749C34040EA5D59BEF38441405C37981BA5CE404096DFA759E9824140A059BA3D73D640404227895449824140BC59BA3DE6DC4040F097C6DEC6844140143B3552E3E04040C83B379C1585414000DFA58F69E540401C571F512B864140C426870A7EEA404068FE2CC59888414018CE947EE7EE4040B40804E9FA8B4140B8F353D79EF340407CD5D035F08A41409C4C46639CFB4040A008046944874140
-cz 0106000020E6100000010000000103000000010000002300000018F93671D5F53040820EB9EA694C4840D04F29FDD07F3040F6E55C5B9564484050AD55F696073040983E4F67F05D4840F0AF3AAFBF812E40F286306200854840201ADB828ACD2D40EAA85284717B4840102D260184AD2C40A47B593E14474840102389CA1F312B402E83932B477048401047E5590A102A4090C19D024EA74840F0973AAFC30A29402E0D1CB411C64840709AD7E593D4284042CD74260CFC4840005830D8EF7A284038E95C5B17224940A0F42C3B05EF294074DF8537F63D4940405E93A11FAD2A40822EA19FDA5D4940700804DFC91C2C40C098A43CA5764940703A9ADB309D2C40761756A1028F4940E0C1852D35242D40A2B729A84C804940E0AD3AAFB3082E404EF5337FA78D49404082A4B260FB2E40227DBC077264494020296AA4163D304050A9B54D4F594940880D82EF1E2D3040CEF333FF17364940281A59932FB83040BCBC63959D1B494018FCD3A767DE3040B086932BAB3C494060A6E11BF88D314078C000CC5A2E494080C5660742A631404671E5E3460649405828930096643240088930628BFE4840D804D4A767DA32402081F67484BF484070F2C296128E32406E9CDEA95CBF4840F887BFF96566324068C8D7EF51A84840F823F6C9A52B324046F133FFC0A24840F83EDE7EDF1A3240D2640E40A185484088A444E5DBE93140F2D1AE138D7F4840C8D03DABF0E23140BED1AE13A5734840C81D5993858B3140A890070667664840909DA7AE1B1A314050C7D76F9268484018F93671D5F53040820EB9EA694C4840
-dk 0106000020E61000000100000001030000000100000012000000A018ABEC6D0D2140C660FD2E3B7B4B40808C2264993D2040D8A2A4BC44C24B4020CDC971112E2040F682821A1F454C4030A2D0AB5E83204020E3AE13AD674C4020D1C9713D162140AEFBF991148E4C40D001260154D92240EA46784306964C4050A5F907168D2340483DA11F56B94C4010F4DA82F6282540DC66FD2E71DD4C40E03E59349B172540E02456219D9B4C401009260100802440E042DB0CEC714C4000853AAF6FBD24407EAF7BE0134E4C40D026717F09D32540C882821AB43A4C4020738C67EA5525409E2C2DC56A0A4C4000853AAF6FBD24400CC3292852184C400071C6D4CA4C23400CBE8CF128BC4B40E087741C04D8234098F35C5BD67D4B40A04BA4B2689022404CCA00CC596A4B40A018ABEC6D0D2140C660FD2E3B7B4B40
-dk 0106000020E61000000100000001030000000100000006000000100EB226E7BD2840EA99CD98420E4C403066077C486129403262FD2E14CE4B4030CEA74F132E284082AB7BE066664B40F0C4A74F4B1626406EF45CDBB3AE4B40006BB5C3CDCE25408C28908ED5E34B40100EB226E7BD2840EA99CD98420E4C40
-dj 0106000020E6100000010000000103000000010000000F00000048344D9D658A454000F40B07376629402C614663AFA8454060D9C088C1C7284044BDD525A8A44540001A05CD29F327409C556FBFA15B454030F97FE1A578274028F008599992454028C0AF7790EC2640E07791E16F63454038B1D8D38FDA2540A0E431B5084745406886DF0DD135264028F542C63528454090B5750A841126401850D288B6E0444050B2D8D30F1A264038AC614BABDE4440C81EDC70D2B526407CE96B22B5D44440C0A964F92C43274018C849000000454090927C4431332840D0546FBFFF2C454070F945749F152940EC4E3552CB63454078C512412CE9284048344D9D658A454000F40B0737662940
-do 0106000020E6100000010000000103000000010000001A000000467A565497ED51C0EC299794E6B63340348B676596E551C064491C8089E233402C91A112A1B351C0ACC7CD645AE13340DAE5F627B88D51C0C0963768759F334090E5F627DA7C51C094B5BC53E3A5334026158D643B7151C0A487C38D134B334037BF374F374E51C0C8FB9DCE2E50334098B1C334475051C0F8AB82E6E30333404FE4F667CD3351C05497D49EA4FA32403284CA2E591451C0788BFDFAB89C3240B909B6C01D2C51C0505D043584343240C4F507798E4A51C0F4A5E5AF326C324050CDAB69EF6751C04891376876613240FAE893DEFC7C51C068E3EF86A56D32407FA1B2E3868851C0C43E7F49F43E32401B38AFC618A151C0E4A4E5AF2D2F32406E943EC9D5AA51C044C1CD64486D32402487CA2EFFBF51C014FED73B884832404A09190A9DD951C08C0F86833B99314011BBFD2117EA51C0A03C7F49F0C13140DB76B9DD54ED51C0204856ED840B324042178DE403EC51C0A0643EA210513240B71053B77CFC51C07CEEC62AED9D324046178D24E2EC51C0F00D4C1611C93240AC2B3BECFDE751C040461C807A2B3340467A565497ED51C0EC299794E6B63340
-eg 0106000020E6100000010000000103000000010000002A000000F8F553D7177641404CAAECE956803D4014B10F9324524140BCDB1F1D73193D40F83FD28899364140A0A889200F583C401024EAD3C713414094B060C4C4D23B40709EFE81EFF5404010576E3811A63B40CCE87C3347CB4040087E2D91ABF83B40A0EEB6A0819140400CF407D2EA6A3C405094C4142C364040343BAFDFDFD93D407423870A04294040643712A9ABC23D40CC6191E10E5E40401CC2D49E89B43C40F42F5EAEA3AC40402C6FB9B62BB33B40B47CDC5F620D4140E8641C806C243A4090F1B6A0A83C414084C5E5AF3B9939405803C8B1C4654140C47EA16BA30839400CC1836DA1D84140049CC38D3CED3740C0E2A58F32BF4140887C3EA29BC0374010ED7C3353C34140F8F7EF86391A37404060BA3D69584240B8D807D270343640B407C8B145634240E04BE21200003640207ADC5F90774040A8B5E5AFFEFE354088949DD71F053D40E04BE21200003640B089D74400003940E04BE21200003640B089D7440000394020D0BC53B9AE3940303BBC5C1B003940D82A3B05913C3D40F0843A0E38B33840A09BDBD84F0B3E407078C63327F5384088D10E0C5EA93E40B066B52288CD38405C5F34CBDB163F40B06B5259302A3940DC2A6461B4913F40A85907DBCC7E3A40949BA16BEE953F40F845BC5C27753B4054EC598A3E523F40C8EA8F6353733C40941019E397063F40587518ECDBE93C40786F45DCBBDE3E40E03771DEF5AE3D40380008D2D52F3F4080063EAB54183E408C1219E330793F400818B28519FA3E40BC1953504C8E3F40800D3EAB1EB03F4028DFE5AFFA6D3F40D0F6F22CDDF53F405809DF7501EF3E4014D80859A3184040FC3D12A9A5423F4058282441397F404080FF07D229063F40CC8216CDFDE24040C44D23BAABF73E409CA29BB8F9214140C803A50828383F40F8F553D7177641404CAAECE956803D40
-sv 0106000020E6100000010000000103000000010000001400000002003155C2F255C0A093A5A0DAC42A405F0A08F9DCF955C0784627EF4B4C2A400CE2AB69EE1E56C0805E726DF1532A40FA6A3472F73556C0502505CDFB842A40DC0B08796E5056C040F76ED0C4EA2A4000959041FE7356C060BA64F98E0A2B4046BEEC901D8656C078EF972C7E782B401C9CCAAE238456C01846ED8191C32B407657862A346E56C0B8E8C088B9442C40FE1242A6306256C0A0D8AF77587D2C4006D9D405976556C080E0E9E4A4B92C40AF2A8DE49C5656C0B05127EF27D92C40A06ED1A8BE4356C058B78D5518AE2C4056FAF6E7F43556C02878837EF0472C40EC4BAF86A32256C0489C42D7D6F52B40821FB680412056C030E6C088E3B02B4026A4A1922E0456C0F8054674E3ED2B408C77A84C02F755C020D2124160C92B4092706EDF4DEE55C008AFF01EF2912B4002003155C2F255C0A093A5A0DAC42A40
-er 0106000020E6100000010000000103000000010000001C000000D0546FBFFF2C454070F945749F152940C038870A40014540186649114EBB2940342A13309ECC4440B8E2C08879E72A406C5C4663DD9344403056FE92F08B2B40D084A2F2C37244400826CB5FBF3C2C40E4E56B225B0344401078E647060A2D40203D5EAE99AB43409818BA4E26102D40E8F47C33B98C434020FFD199367B2D4064E9A58FA741434008262E29CD022D40F0FFF00DF9F34240904FED8139EB2D404062BA3D00CC4240206B0FA4196D2C40F8DD6B22FB364240188F31C61FD82C40A82F24415E29424008F9972C1CA52D4074D4947E7E604240C095AB42B84A3040F018D9C2206D4240944D2D91DFF4304068AC38EF6F9542406C0012A95C43314034443552B5F34240047C2657736D31406C2DEAD37D344340443AE21291FF3140347D05BCCC7E43406068154633D730406040FBE40FA243405873D5366FD82F40A8EF42C63AE84340302E2E290DDF2E40F80D2B7BF2964440E85F9BC96EFB2C40CC45FBE412DE4440A850C42592D72B40B02B13306F234540C0448AB81FB02A403C6DBA3D774B4540A059D53637002A4048344D9D658A454000F40B0737662940EC4E3552CB63454078C512412CE92840D0546FBFFF2C454070F945749F152940
-ee 0106000020E61000000100000001030000000100000011000000909E22C31750384084524FE78EE54C4050463037CE6D38406650B2B013314D40608C11B2AA0F38407CDF74A6F1204D4020AFD00A336D37401E211CB46E4E4D4058AB33D4FC563740F81E7F7DF7974D404040F6C9AD9A38404AA1CD18A1BB4D401861DE7E3BDD39406C0BD13538CE4D40F076EF8FFAF23A4008D1631510B94D403837AB4B2AFB3B4008C05284D9BC4D40D0C3D00AB7213C405EDED76F81A64D4078F06607906B3B4056E7AE13BF5C4D40E03CE5B878B73B4042AB41F35CE54C402897747BC6493B40DC28F357BDBC4C40B08C3A0EAA763A4038B8B54DFABC4C40D0034FBC519A39405C71D4D27BEC4C40F01260CD222A39401C86821A2EFC4C40909E22C31750384084524FE78EE54C40
-et 0106000020E6100000010000000103000000010000003D000000B86CBA3DB32D454068BFD8D30D152940D0546FBFFF2C454070F945749F15294018C849000000454090927C44313328407CE96B22B5D44440C0A964F92C43274038AC614BABDE4440C81EDC70D2B526401850D288B6E0444050B2D8D30F1A264028F542C63528454090B5750A84112640A0E431B5084745406886DF0DD1352640E07791E16F63454038B1D8D38FDA25408899B30386474540884EACDA29252540680E8E44CC764540A0D5D1993C0B24406CDFF74703A6454008DF4574B9142340D005B7A0E1D64540783B726DFD5D22403440EAD362794740A087A333CDFC1F40248D68850BE5474018CEA83D89012040302E76F9567B4640A0D4F14EA50114407C8705BC97D44540504B69C688D41340E4B1FE8184624540E004FC25A5021140B0E331B576104540004206FDC0EF1040D0A8C41447DF4440E036C8B5D5DB0F40E422D9C290B04440202AF111D5480F4090762E18FE4F4440308110D4E85511408C29B0665DE04340E08380D45ABF0E405C0DC8B1ADAC434060D10F9788670B40C4B3D525027C4340A09CA2F68C990C40D4E26B22C1514340409505C0FCB10B408CB5725CA51C434040494DA1F70D0D4080B1D5258DF7424040B4503E6E500D40C818D9C23264424080CDF14EE962124068D9CEEB1EF44140403E2F599C6A1240B8B30F93EEEB4140501D70003E771340A42A870AB8CB4140D0C2A6D023651540B09D614B539141403014C2B8B80B16401C2C24417F5A414030DC43077C601A4050FB8D440B2041403032FC25E54D1B407049A92C9D094140E0BA4A415DE71C4000908AA7BEC84040B05947A472DA1E407C95C414237A404030025518D1231F4064F253D7BBA5404028973B9D8BB52040187CDC5FAAE94040E8828D5520C2204070191330CDFC404000ECF3BB7E5E21403C204D9D16FB4040C86E086ACA2A23403876A2F2F4204140883AFE929C422540C028870A965D4140481E79A700D22540686691E1716A414020C9861B4DA3264004123C8C58A14140A89C53E86B2A2840A491ED708BEE41402860ACDA13282940E084799696224240507D5A226D202B40F8DD6B22FB364240188F31C61FD82C404062BA3D00CC4240206B0FA4196D2C40F0FFF00DF9F34240904FED8139EB2D4064E9A58FA741434008262E29CD022D40E8F47C33B98C434020FFD199367B2D40203D5EAE99AB43409818BA4E26102D40E4E56B225B0344401078E647060A2D40D084A2F2C37244400826CB5FBF3C2C406C5C4663DD9344403056FE92F08B2B40342A13309ECC4440B8E2C08879E72A40C038870A40014540186649114EBB2940D0546FBFFF2C454070F945749F152940B86CBA3DB32D454068BFD8D30D152940
-fk 0106000020E61000000200000001030000000100000008000000A2A7162CDE3B4DC032DE5826DDA249C000889140CE064DC0ACD71EB973B449C0C036D921B82D4DC0508A03454EF749C08E9BA2D1D8974DC037CF47893F1C4AC0F29468E439A44DC02C61A7B5BFEC49C0DEBCC4F316684DC03EBC36046AAD49C0A2A7162CDE3B4DC032DE5826DDA249C0A2A7162CDE3B4DC032DE5826DDA249C001030000000100000007000000283BD921332E4EC063B5FC96A7AB49C0283BD921332E4EC063B5FC96A7AB49C00CCE384E45354EC0BE45BF00B6E549C048C1C4F391684EC080F169AB0B254AC0F8E4834CACFC4DC07483C9D78BF549C0BEF1F7A65FC94DC03EECCC00BBB949C0283BD921332E4EC063B5FC96A7AB49C0
-fj 0106000020E6100000010000000103000000010000000900000064D8FA74D15066400684400F3C8131C088D8FA74C1586640A675CC34055731C0C2AF9E65C763664014D35BF7E0A031C00005F4BA7C5E66407483A3D88B2632C06E975327A54A664068762FFEB84932C0FCD7FA74013966402A9117B3102A32C0AA93B6F0EB356640123388F082B931C0D082A51F44426640CA9E28C4936131C064D8FA74D15066400684400F3C8131C0
-fj 0106000020E610000001000000010300000001000000080000001A358A3701716640D8C5218A0A2C30C0F431ED000080664072D6329B2F1130C0F431ED0000806640AAE943AC228E30C05805F4BA54726640FCD2F82DDFD430C0FA2D50CA5E5F6640BE8FB4E9AA1031C03883A51F145A66408208C9978E9530C0DA864256DD6666408266F5901A3A30C01A358A3701716640D8C5218A0A2C30C0
-fj 0106000020E6100000010000000103000000010000000500000096B298CA627966C02EC5218A580530C00A7CC8005B7D66C06A4C0DDC748030C0A63EBEE9FF7F66C0AAE943AC228E30C0A63EBEE9FF7F66C072D6329B2F1130C096B298CA627966C02EC5218A580530C0
-fi 0106000020E6100000010000000103000000010000002600000050A011B288973C404FC31B4E25445140584ABC5C29723C40BF9285D15517514020C5969D38FA3D404D7300E6B0EC5040900FB285F90D3D400F6F632F6FBC5040D0999DD7B5373E409B3A303C9573504020154FBC5F8B3D407506FD08B73C5040006B07DBD6713E40534DDEC3150D5040804A82EF2E093E4046AACD98C2C64F40E0CB969D1E843F405AA53062106F4F40B007A174D6233F4022BC7BE0C82D4F4040AE4B1F0B363E4008B441F3D7E34E40B048BC5CEB113C40B4C5EF3A73404E40281BFD0353413A40582FF35744364E4028CFB8BF227F384056FBBF2456074E4028C17E52A4DE3640E297F6F455EC4D406051DE7E6F4A36406851157A2A324E40A0FEC2967E523540FC92BC872E5C4E40C05B52597C8B354074B0A43C48DA4E4058DBA074280F3540AA1F4510BF4D4F40D0099A3A39893540BAB3A43C49984F4008B5A7AE577136407AE19D02AEE84F40081160CD02BB3840D3099AFFBF39504050A322C3E7653940DD739D9C2147504018ADF966464B394041C655BB3262504098DDC9D043E73740090B9A7F718050400057DE7EDD903740DD7100E658995040808DAEE81A8A3740391EAB90E7FB504030AC6D4181FA35404F7400667A275140702B599345A534408DF64EC1CC4651400857B522B43E35402D4CA456B557514030A0F966325B3640A5BF7E17DF355140D0200E157CA937406941CD320A395140B8BB0A7855BC3840634BA4569229514048EC033E70B0394085591831E5455140E8657BB5FB2D3A406F42CDB2D17451405069DE7E77BB3B40D9197123828A51407820C396FC033D40435A18310E71514050A011B288973C404FC31B4E25445140
-fr 0106000020E6100000010000000103000000010000003000000000F744C8CABE1840FC6FE5E35DBB4840E0C13AF106A21A407E1D2DC5D99948406000FDA4D432204072ACEFBA46824840802ECAB3EC5F1E402EB5C65EA02A484080C2C616F6DD1D4060A9EF3A6FCF4740A0E622A6D0C41C40FC0BB9EA91B94740404F60B03FF21A406A7959BE59C5474040F033B729131B40F026A19FD3A4474080DCF94949261840CA701F51E65C4740C0B63AF12617184002408954F122474040F26D241A001A4058A35284FF3647406043ECD5D65F1B405A68E5E3DDFE4640E09E7B989C351B40627559BEB2DA464060E8BFDCF8621C406618CAFBA2AA4640E0189046F4FF1A409E2F157AA6834640803FB268BE071C40701967329C204640E0784865C9321E4006F744105F104640A0F15C13A1BD1D409E1B04E9CFD84540E0775976F21D1A40823C268B7F9045400074DE61543A1240A02878C327B3454080693E12A4CD08406A76932BA0894540405B676E53E307407A3EC3C18B3C454000B04C8E8B3AFD3F926ABC07F42B45400032D6266E73E63F0E1DA19FDA6545400032DF808FA2D53F9EF344902E4A4540008C6C90590BF8BFF0AC63955A8445408004FC52EF6BFEBF7C927B601EB645408080CF59C925F6BF204C9AE5E40246400095F17BCB19F3BF5657D4D2E8014740401BF28348CE01C00E5D71093D884740C0CE8B1DCAB407C0FE64AB7600C9474040547E2D5AF711C086AD8CF13BFA4740608277F3905E12C026E9F99192574840007425B7D35D0AC004B329A86A73484000A2E06A3ADDF9BF4A569A657C52484080884A6E97EFFEBF2885932B5FE34840004BEDCEBAA9EFBF748E6ACF76AC484080DF04AD906BF53F90F6D03547104940807D8D355939FA3F5A5B9A652A79494080D68C2DCC1B044074690E4002934940804590CA724405408C46EC1DFF65494080DE18536BFC0840BCB38CF1E263494040DA6A0B9AB40C40EE60D4D28230494060DC7E35E32411405200A8D928F44840A0A4D72767321340260E1CB420FE4840406CF6AC3AB21640C243EC1DC6C34840802815324E971740C4761F51A9B8484000F744C8CABE1840FC6FE5E35DBB4840
-fr 0106000020E61000000100000001030000000100000007000000604A41E9F47D214076AF004C665045408064EF30AEC722407C46FD2E4781454040AA3375BA1E234060D75CDB8413454060E1A015A2752240FCF04410A4B0444040F5EB932B8D21402AAD00CCB3CA4440B06A630BA31621407C527189D5204540604A41E9F47D214076AF004C66504540
-gf 0106000020E6100000010000000103000000010000001300000040269F34A1FA4AC0F055CC8FB4061740A8812E7729CF4AC0604658B50B961640AEF06B01EA704AC070869CF9AFA315400CD3834C63E949C09003C2B85843124030219FB432D449C000A76C63FB9F1040E0EBCE4AEA1F4AC060F0CEEFC2ED0940B00EF1EC38474AC080D6CEEFA2090440B06B80AF46784AC06070DC63B5FF0040064EFB4390B54AC0A08C614F576D0040A069E3F804C74AC06085503EDEAD02409C1BC890A6E34AC0006F05C07C0303405C2DD9A1450B4BC0007AB3072ED8004088FE42252B434BC0A04AE39DAA7E024014E6F7A6B7224BC000FAB6A4F4E805405C5D6F9E96174BC0C062A930AA8D09406A9A79F578014BC0A02D65EC05FB0C401C3FEA3224334BC0A0DE3CCDB6D91040A23176D8433D4BC0D06F281F4796134040269F34A1FA4AC0F055CC8FB4061740
-ga 0106000020E6100000010000000103000000010000001F0000004040BCFD02302640306D5E09A3D40FC0204F077CDC212440F019C80C80C107C0C08611537CCF224050D708B48D2701C060AA6DE29298214080EE99F0E3C7F1BF804EDE1F01A9214080EB3DB82BEEE8BFC0A53375CA18224000430ED00366DDBFF07ED7E52B95224000FA2F3AD331D13FB080D7E55BFC22408017A4197329F03F3035BCFD1AA92340806622CB1716F13F10F003DFF591264080D65FD52EECF03FA0FD77B98A8D2640E0BCBDDEA116024000FB3D4CDA80274000521D0B339D0240C066A4B200B82840802E981FE18A014070F42C3B15E729402055BA41AB920240F084EF30D2262A40C0DB42CA0323024000A3741C98012A4080BE44ED594BFD3FD0343712B5902A4080526372E506F53FA0E24486A70D2C40001EF6D1B154F63F001878B9728D2C4080F170E69F26F33F70E4E1BCC7AF2B4000D854750AD8A33F70C6BF9A01A22C40800CE5C51FAFE1BF20837B56D5D92C40E0E2B13BA255F5BF000EA11532992C4020ECF2E2EFF8FFBFD0F6F2CD1CFC2B40B05D1D6235C403C060E17EF31F382A40A0FCF0680F6E03C060983AAF8B262940608C63201A2DFFBFC0A84BC0CCFD2840A0DC6B7D2D2203C0406C7B5655A4274020149FB0001D04C0C02B717FC1F4264090DF94D9FC1F06C050FFDA82D2B5274080DBAC243B6A0BC04040BCFD02302640306D5E09A3D40FC0
-ge 0106000020E61000000100000001030000000100000018000000BC9A503AECC644407276306290C4444054DF947E01DA44409CE4D0B541FB4440CC7BCB4E0BBA444034314F6793524540988BDC5F0F70444092F44490BE814540A86B5774232944400AC5AE13779045401CAF9BB83DFA43408ACCE800AEB74540A8F3DFFCD90944409E36EC1DCCC6454010B8D5250A7644407EDDF991EAB04540488168857B324540D024DB0C339C4540848E3F29C5E045404472F674D35E45404CF5A58F31F74540B078306209474540E83AEAD3D044464020C4AE93225B45407051981B32BC46404E34EC1D5B40454004071A6A61E34640CAFC1B34D50B45409CD8836DD5334740AE62829A2AEE444050B9FE819D1247405CC54BCA84DC4440DC3176F9A65147405420DB0C4197444074AC8AA735404740D8B23AB93F884440B4E8947E36FB46405008900EDB8F44403409B7A0D49B4640586FF674AAB4444040A2503A7A7C4640825A48ADC29F444030021A6A97CA4540F0ECA759CB8B44406C8FDC5F4D4F4540DE2E4F67A5CA4440BC9A503AECC644407276306290C44440
-de 0106000020E6100000010000000103000000010000003E000000E087741C04D8234098F35C5BD67D4B40C0CF559710E12340404178C35E4C4B402061DE1F75E625405A7748AD8A2E4B4020AC5CD101E125408ED911DD1C014B40D036ABEC99E9274024D3D76F26194B4040ED8F0471092940687E821A353C4B40C0F3F2CD804B2B406221F357AA094B4070E34486473D2C4078508954E6E04A405089B5C3E5B42C404CDBAE13C49F4A40C06493A127262C40A4C99D029A7D4A40003F37120DE02C4024AA1817FB4F4A40B02C89CABB5E2D40DE5D9A65830B4A4000C9BF9AD5362D40F063D45262DF4940E0AD3AAFB3082E404EF5337FA78D4940E0C1852D35242D40A2B729A84C804940703A9ADB309D2C40761756A1028F4940700804DFC91C2C40C098A43CA5764940405E93A11FAD2A40822EA19FDA5D4940A0F42C3B05EF294074DF8537F63D4940005830D8EF7A284038E95C5B17224940709AD7E593D4284042CD74260CFC4840F0973AAFC30A29402E0D1CB411C648401047E5590A102A4090C19D024EA74840102389CA1F312B402E83932B47704840C0787B56997C2A4072630E40433548403072DE1FA9C42940D8AAEFBA0225484070E7B8603C0D2A401E2B3E569CD147402035D44881DD2940508A6ACFDBBB47405021C337D43D29408EBA00CC10D64740B01926016048284010F80AA3FED94740600215F052DA2640CC192DC50AC3474050DF2C3BC9162540E4192DC57FC847402029ABECDDCD2440A80BB9EAB7A6474000DDC971C9CA2340D86BE5E343CA4740B0698C673E302340226F821A35C3474070F688CA930B21401017908E58EA4740604D7B5675A2204036EA96C889CE474080C2C616F6DD1D4060A9EF3A6FCF4740802ECAB3EC5F1E402EB5C65EA02A48406000FDA4D432204072ACEFBA46824840E0C13AF106A21A407E1D2DC5D999484000F744C8CABE1840FC6FE5E35DBB4840608707BE93F81840CA1456217CF34840C0FE1B6C1B2C184028F333FF63104940E0F9E1FE6AA01840FA498954E0664940E0F9E1FE6AA01840FA498954E0664940E0F9E1FE6AA01840FA498954E0664940E0F9E1FE6AA01840866F482DE1664940E0F9E1FE6AA01840866F482DE166494080F344C862F41740E48259BE01ED494020FE44C88A5B1A40A4DB4B4A0FED49400069AB2E195F1B404E80BC873D1D4A40C00D7F35435E1C4000CA9D0270924A40C02567EADC9E1B406C127F7DB7BD4A40E036DBC4D5661C405E272DC5D2D84A4020423E8EB5BE1F40ACBD2928C8DF4A40A03A6A45503E2040F0151CB48EC34A4030DA03DFF99921406C7D821AA9024B409004FDA4EC2421404A55268BA4324B40A018ABEC6D0D2140C660FD2E3B7B4B40A04BA4B2689022404CCA00CC596A4B40E087741C04D8234098F35C5BD67D4B40
-gh 0106000020E6100000010000000103000000010000001900000000E44F2B42F6F03F6022FC2521B7174000782AD9913EE0BF303A1E48B75F1540808854459B04F1BF50B9099A8F0014408016702D706FFFBFC0B06C6383D71240802AB81658D906C070FD4DDE57FA134040B87A0C517C06C090FD1371638E1540C03B554D78F409C050CF099A7B001940804AA0CB61DE07C0503F995CD1841D40407270355D7F04C0086DDF0D73702040400ED061B69E06C0B872A5A0F0482340C020443C0FB607C070C4235269CA24404001BF50F58507C040D05DBFE5EC2540801E7A04F440F3BF20E50B070705264000C48668D45EE8BFE8E7A83DB5DF2540009CADA4AF13DCBF70D15DBF593226400020D95FB05F983F401F79A79009264000C0E7D6617DA9BF30645A22F1692540002631396E86D73FF81779A7E661244000E0ECF4E96AD73F2037380015EE2240000A61CF2A84DD3FE84EBDEBBC5A2140006BA690F1C8E63F8852F758FB9F204000F4DBE3D86BDF3FD02E884BA0A51D4000A224429640E23F607BDDA04DA81B4000A265E923C8EA3F20C295BFB21E194000E44F2B42F6F03F6022FC2521B71740
-gr 0106000020E6100000010000000103000000010000002B000000A829BC5C210535406A26157ADE6B44406033F6C995AC354008C7E80034774440180C9A3A2D0E36405094B5CD2E934440086EC633E99836404694B5CDB3904440C034599301C3364078FEB86A03A74440306C29FDCEF336400276306243AB444068FB4EBC2BB137403A57ABF68FA74440C0A2BFF91D7E38402E4A371CBDCA4440E042F6C97B323940D6E90AA3039E4440282871DE2B1B3A4090D55C5B19AA444098F1A074F61D3A401CB19D02D8E944407075EF8FAC9A3A404AA6C65EF3C74440C0BBD00A6B4B3A408E150469D777444038A622C3930E3A40C68C7BE07C694440C0D655F69A7239402CE2D035206D444080ABF96604ED384016641F5139794440A01D71DEFDB637400CECA7D9F3574440A0AC969D7268384088092DC5FF0F44404825AB4B64E63740CCDC33FF22FB4340F00A60CDCE5737407A2415FA01FB4340B053DE7E61D03640C481A4BCED3C4440E88C4B1F55A0364072DD33FFD6204440084DA41189D93640EEA8004C64D4434058D48F639B593740CABF4B4A5298434020ADD00A1DF936409403908E467C434048311F26AF87374020C585B74741434090E1660768063840B294EFBA281C4340C00389293E0A38400A905284D7D3424058AA33D4701D37403EC722EEC2F54240205D18ECF368374076B8AE937AB442409864EF8F64C6364020D0F9910AA7424030F2144F7B273740CA6793AB143642401082747B727D36402C6B30E27A344240684407DB86AB3540428E5284286C424020D2C9D0854B3540EAA79D028FD24240505DEF8FBA1E35400C5448ADB8274340D0C88F63E3BA344042887BE08E624340F08FBFF9BB37344072786ACF8CAB43402007377167263440E2E26DECFFCF4340C8DC3DAB709D34406EF81BB4140E4440C8FBC296CCAC34401EBFAE13AE3744402889E855FFFF344054D7F9913D4A4440A829BC5C210535406A26157ADE6B4440
-gr 0106000020E6100000010000000103000000010000000B000000208500A13D4A3A40EE9B631566A64140085F41483D2A3A40FC1CB2B0A3804140084BCD6D98B9384044942928C2754140481B377129BC3840A43160F8E08A4140E87800A1D5833740C41678C3D6A3414000BE44E531B33740D29C63953DDA414020193771253F384074C85C5B1BAF4140207C636A67063940FA2EC34166B64140981560CDEAC43940204AAB7650AD414020869DD7B9BE3940F27CDE290A974140208500A13D4A3A40EE9B631566A64140
-gl 0106000020E6100000010000000103000000010000007F0000004AF47C92C36147C0C5F7DA6630A85440AE7FDC3E06B445C07B6CB5E768CE5440FEB1495FE2F243C0D3D21B4E88CB54402C12130FA24F43C057BBD0CF23E354402663059B3F8B41C0B362DEC349E95440D8EAEBB0B7193BC04147F60E42E15440A4EAD3656BD834C0C9AC5CF581AE544074D7EBB01AB136C025DCF271DD9554409403D4657C843AC0E30B89EE0C935440E88B117065E63FC093D855BBCC8C5440CC0EFDC17D653FC0BD67183161815440C0EA4E7A4EDB3BC0E73EBC216F885440CC5B005F2FD838C0631C9ABF5D725440387C5CEE3CE736C0F3893AD3F5855440E86AE8135E1236C0B1AB5CF5016F5440782BA4CF6B2B37C0AD7E632FC6495440943B8C84A59F34C0730E26A59361544098A8A7CB4E892FC09BCAE1E0657A54408035B53F578A29C0093B1F6B016E5440F8D08846C76A28C02D71EF54A8525440A4E7E4760B4930C0E321D46C1F255440D46B339299D930C0A7BE0A7D661654406C65854AD60B34C0896C521E550B5440C4E30DD3F8BA31C02D516A6943085440EC8544A366E632C075FEB1CA99D95340445611707AB433C0E5BC0ABD14B053408859AEA66DAC33C09D4730BCDE6853400C217B730C7932C0FD91AEAD143F5340DC166A62F70834C029621831703C53401CBBA032F0AD35C09157410D30285340088A44A384D533C00391AE2D47065340D8C9EBB0569933C03DEC3D70E5CF5240B0F00DD30CAB34C0D5D0557BF9C95240D0F147406F5F33C04DD3F271EB925240D4051FE41D9835C021887400538E5240BC9D55B43D6F34C02FD68F284C745240646FBFB72AC334C0B58A11F7B75D52403CE6FCC1152C36C0B9200E5ACF535240C4526328E09037C01BEA3DF09F535240E4BDA032295036C0A767EFD445285240BC722281AE4C36C06771C638C80B5240481F93BE404738C0CB60B5E74326524078734BDDFECA38C0FD119ABF2115524024A41B47677137C02BECDA2621055240B890A76CFF2136C0114B07A003DE5140344E005FEAC035C07BC8B8047AAA5140BC3A18AA3A8937C0BFDC66CC249E514004B92C58984E38C04DFF88EED0B65140A45429BB1D8B39C0AF587B7A94DB51407CE2EBB08B3339C08F2B823425B05140D8F1C254DD5C3AC0A7D52C5F7E8E5140D0A8B87D37BA37C005D9C9D5C68B5140C8795CEE5A5936C0738AAE2D498851403893D0C87F0739C07BEC771D90505140781D82AD53BF3BC071F2B1CA1B1E5140E8EC77D677AC3EC0977A3AD3FF075140E0766328D3C63FC0890660D2BA0751406C3F802FD06740C065E7DAA611EF5040A49E0FF2D91941C061A5331981AB504016C294DD292D42C0B78CE89AA67E504006C731949A8542C06D8211F7027C5040DC7EB362013043C0658CE89A4B6C5040B666CBADF6E743C0A9773AD3575D504084BA834CA15544C0ED026012C23550400232FB43665744C0650C3776E508504050C9F726279844C08E4AA11FC1BD4F409414D921E16845C02A759A6556574F4058214DFC543545C026F5E88051F34E403ED7CE4ADF6E45C0E852157A7A894E407C5DBA9C6FB045C06A5E8954820C4E400ED83194CC6446C0263C6732B4044E405EEC42A5BE2147C0B433908E386D4E40BCB6D504A82148C08063260BE16D4E40909DEDCFD59D48C09C19A8D911B44E403E6F57D33FF348C09285AB7612314F40CCCB495F0ED149C0464E3ED63ED04F406C1B6547F0114AC0AF2E5958D1115040ACA78A8667234AC061B1A7F34E4B5040C8BB9B17B1D44AC0510460925F865040BC138EA39BA64AC0977CD70989B550403EEC31940BFC4AC0CBE6DA2618CC5040DEB6FEE07D7D4AC065A0F9ABE2165140C6836864D8BC49C0B7557BFAB02E51401AB69B174B8A49C0E57400E675495140D44B987A846F49C0CDE9DAA6767B514044E831945E144AC0EB2348C7BE80514090943F88403A4BC0D5799DDC45A251409A0D543604CF4AC0D33F303CB0A35140AECEE615F0B149C04FB7A73377A4514092BA9B97FF8D4AC0C5ADD04F1CCD51403E3EEA328A004BC0CF587B7A05E35140C690059BD6EA4BC043AED04FE2E951404EF1CE4AED5B4BC001CE55FB842552408A0A1A49C5A94BC0EB1C71A3593D5240CA5A35315D0F4CC059C81BCE9569524042646F9E6CA94CC035AE331975AD524010676F1E644C4DC0D5E166CC4FC652407E41B045E64A4DC0D70726A51AE15240027E80AF61A24EC065BDA7738D065340A2ABDCBE21B24FC0B964B567360B534043A789C71C8450C0BBD88F28A1085340001E6488472051C0D76E8C0BEE035340C4D048208D6A51C0A9E603834D185340AA351290C3D951C0BDB033998C4053403B0D5377B53151C0A5732942AE545340E68567A5E4B050C06558418D0F5853403EFBA42FBFC251C0F539BC21B3685340C6717FF0015352C013E566CCD3825340DADE1F44334A52C01D1C3776B19B5340CCC2D4C5E65751C06F4CCD327DBA53409428D8E27B6D50C0DD014F813DD953405B5B0B96BA5450C04165183185F053407F57D168780151C0E36FEFD47F0754405D5D0BD6AEC950C04FD3B80403215440CCFAF7A639D84FC08B4B307CB14D544088E6E615021E4FC0E75507A08C5454401658242059534FC0AB9A4B644E7154404EF3F7A628244EC0E72671E326825440A6D4AC288D9A4CC0B797AE2D358C54402E4C5E8D34114BC0BFD11BCEC68C544098B361AA8A854AC0494C307CDA7854403A25D9A1FF3149C089BD6D06169C5440BE15027E7E0048C0592A0EDA2584544014C1495FF86047C0E99DE89AC46754403E6A9140F14246C0F93A1FEB486A54406224130F4A7347C063425958C98C54404AF47C92C36147C0C5F7DA6630A85440
-gt 0106000020E6100000010000000103000000010000002300000046BEEC901D8656C078EF972C7E782B40EB6C34B2F3A656C03087948FCDD12B406BD737CFDFCE56C0D09B42D70CDB2B40ECD737CF24EC56C0C80AE3AA9F402C40DCCAC374930E57C05089F758E1132D40F0B278B6010D57C0280AA93D03A92D408B6E34F2940557C0380CA93D11212E40B60B6B02AC0E57C0D8D33B9DBD802E404E905694DEEF56C0E4B6CD640A11304055CC60EBB99D56C0BCBD07D2CE113040EE9F6765169C56C05CE129F4FC68304023DAD44574A656C0C8A082E684783040BA514C7D8EAD56C084D118E3FEAF3040A00331153AC556C0F0387F4921EB30407207CE0B0DDD56C0CCA0E5AF8E4031401629F02D25C056C0C4C9413F31413140A8881CE718C056C0B4A682E64DD131408DD9D405598456C0F44D905ABFD13140D7F3BC3A284956C0285867FEEDCE314013615DCEA64956C01C9271D5FC0331402227F0EDA94E56C080EA4CAE1CC62F407C6ED1288F3B56C0F08A20B548C62F40351C198AB12656C0784879A7AA692F4080E548E02C2156C04898948FF5B52F4086D7D4C5660E56C0D8DE750A98742F40C2939041902B56C0904F504B47B12E40F23E3B6CE84956C080B3B6B101222E405C9490016A4E56C0C03DDC70A2BF2D404F6B3472504956C018EA2352255B2D40AF2A8DE49C5656C0B05127EF27D92C4006D9D405976556C080E0E9E4A4B92C40FE1242A6306256C0A0D8AF77587D2C407657862A346E56C0B8E8C088B9442C401C9CCAAE238456C01846ED8191C32B4046BEEC901D8656C078EF972C7E782B40
-gn 0106000020E61000000100000001030000000100000046000000105796BAEBE020C0F04E700082BE1E40D000A42EBA7121C0C041FC25C1D81E40F891662425DA21C0002D884B743C1D40F8E2810CE66A22C0A0EF7D7474411D40487E1BA683CE22C0C0BCAD0A8D1B1E40606233F1AFAC22C0F00E2CBCD1B61F4050AA7735BC8223C0F891013005152140D0DFAA687B0824C0E00B16DE64DB204050187BD2CE7524C098C0972CFACF204038CC5FEACD0225C010862A8CA2B22040805B22E016FD24C01056F7585B6E2140189055133E4F25C090EEF3BB50F42140F0770A95AA3E25C0801DED812B892240C8053054A5AD25C0E00505CD61602340009B8F80263C26C0B01679A77C1724402050D761A5D527C0B850E6470E182440E80D931DF94C28C0E05520B596B7234050735C4D13DA28C06811DC70F2AB2340B0523A2B853129C098BD2352893D234038DCC2B3856C29C0908453E877AF22401003E5D53B7E2AC060C834635CCE214098B18F80CC5E2BC04078DF0D4FFD224088A0E138E9252CC080E5E2AAB7C5234078EAC2B3FFA82CC09072086A0C08244008B6F249CE282DC0281879A7CE6D244040875C4DEF622DC0101C79A706502540A0D3DAFED9AD2DC05073CEFCCDC02540C098D027B8422EC0688242D7B0142640B0384165125F2DC00068BDEB3E0E27407039DE9BAEC32CC0C82D504BBF04274018FD70FB283E2CC0D82BB314AF5A27406805489F35CD2BC0708BDF0D815B274028C3A0917F7C2BC0382679A75E9F2740C83EB53F13A82BC0202979A708492840905C3A2BFF6F2BC050D1861B8F7E28406896A7CBA4662BC058E5972C202C294040A3B8DC856F2AC0C8D0E9E4D826294038B8A09183FF28C0709BB6B107AA2840A8456387A48E28C018132E2979B52840E8961BA6396828C08017CB5F69EE2840E0247BD20C5127C098E3972CEEC52840B86EF983230727C098957C44CFE22840D0A4C9ED8EE926C018EB6ED056272840A8ADA0915B9826C058BBD8D3EB272840A8295276B71226C058C31241286C2840E846D761DDBD25C010604911145B2840F01E1809BB2F25C07031504B13D9274008F9F5E6965424C090378AB82BB0274088AB773530C823C0D08EDF0DF71E284098FA2F54C52223C058BCD8D37363284080F82F54BDA722C05079948F27AB2840D0A47735444122C0A0011D18BA9D2840884D22E07ECF21C078927C443D2D28409097A0917B9221C0907BCEFC07A02740700B1809ABC020C070D7FAF58BC9264040AA4ED9A02921C09875CEFCC145264070882CB79A3D21C04024B3142D9F2540B00B18098BD020C0C095F01E8AD12540E0EB921D919020C0E8C72352CF95254060C3368EB6AB20C0F86FCEFC57FD244018C4D3C4540F20C0C8FC90F2BE6924406014EFAC6B7520C018FC90F20E42244010DB810C869E20C080C2C0883D942340C8317498812820C0F06C086AA0C02240204ED71F12541FC0984A20B5C226214078694402316820C0D0F02D2931E92040A0E8F5E61C9920C050ABE9E404A22040C8C5D3C48E7120C078EA90F2243F2040E85F6D5EB88F20C060EF4307ACBF1E40105796BAEBE020C0F04E700082BE1E40
-gw 0106000020E61000000100000001030000000100000013000000C098D027B8422EC0688242D7B0142640605252760F542FC060CA861BBDEA2640E8080799D01530C0A0126896970C27402C4E4BDD955030C0D033ED81EF9C27401003CD2B174F30C0A0AC64F9DAEA2740BC592281249D30C098F9E2AA81572840CC89B87D6DAD30C010957C440BC52840F49B66C5D02530C070856B3374182940A87CAE0516A22FC09088086AF8072940703907F8D1182FC0103BED819F4129406896A7CBA4662BC058E5972C202C2940905C3A2BFF6F2BC050D1861B8F7E2840C83EB53F13A82BC0202979A70849284028C3A0917F7C2BC0382679A75E9F27406805489F35CD2BC0708BDF0D815B274018FD70FB283E2CC0D82BB314AF5A27407039DE9BAEC32CC0C82D504BBF042740B0384165125F2DC00068BDEB3E0E2740C098D027B8422EC0688242D7B0142640
-gy 0106000020E61000000100000001030000000100000028000000605F987A0FE14DC0405DCEFCEBBB20400A464DFC038D4DC040213DCD2EFF1F4032309FB4D13D4DC0307CA33309641D40E8C2FE60393A4DC050430D37C6541B4096101A49FF094DC090508111833C1B408A313C6B67C54CC070BFF888FA4819402845EA32DF924CC07067406A81E41740A4670CD553A74CC0A091AD0A554B14405C323C6B07F54CC0C00EFC2521401340123976581BEE4CC030075FEFA44E1240AC6CA98BB8054DC060DFD903533E10405E16543600CD4CC0603BB06A5FAD0A4076E2200306A44CC0C0A116D1FDAA0A407860D26736934CC040E36B26C32606401CC29B970A454CC08041F6D17164FE3F9AEBF7A62F644CC04049CD75C2D1FD3F509EDC3EFCAA4CC0C0859DDF352DFF3F4846EAB29AD44CC040F88831DEEBFA3F82B48A86850E4DC0409396A5781DF83F7A96051BF9364DC040EC25684E6CF73F5E0743251F454DC00067AEF0164AF43F7842B045F3834DC0C09DE1234A15F53F6840138FB1D24DC040FCEBFA1D97FC3F84CC384EF9DB4DC06082503E3EFF0140E8D3723BBDFC4DC00027B06AB70A06402EA779755FE84DC0A08C91E51BDA0C401A2F027EDEC44DC0E0655EB2A0AB0F405E252B5A3AE24DC080A195BFAAB11140B2855753350E4EC0A0B84307C44C12400A595E0D90FD4DC0D060170E660E1440606098FA591B4EC0402E47A45AFA1440007646C2E55D4EC0B09AE77715CD14403CD038CE84B44EC0B0EFC8F215D6174062282B5AD8914EC0504DBB7EEBEF1840EA3CD92165944EC0A0252582C8C81A40B05DFBC3A1454EC0A0E77D74246D1B4022C0C473D8254EC09095281FF72C1C4020CB9B17A9514EC0E0052CBCF5A81D401AC461AA79464EC070F4E03D501E1F40605F987A0FE14DC0405DCEFCEBBB2040
-ht 0106000020E6100000010000000103000000010000001500000019AF8987254C52C0B0A5AB426AEA3340B58F045C192552C0E40B12A91ADF3340467A565497ED51C0EC299794E6B63340AC2B3BECFDE751C040461C807A2B334046178D24E2EC51C0F00D4C1611C93240B71053B77CFC51C07CEEC62AED9D324042178DE403EC51C0A0643EA210513240DB76B9DD54ED51C0204856ED840B32401E0042A6D61752C0D0D47BAC0737324092EF30D50A3652C0008660C446253240BCA1156D175D52C07845B9B6C8373240C58D6725097B52C07C4BF323EF073240C92E3B6C509D52C04450905AB15732409F1D2ADBAC9752C01CF2636137AA3240B467A84CC55C52C0EC913768AB863240AC3375D9792C52C0AC79ECE91F723240E0CC0EB36E1552C0D0D67BAC1DAB32405E30D862AA3252C08CDFB519041A33408CC6D4C52E3252C0F839A8A5CC7B33407E6EE2B98F5A52C004CA6A9BB9A3334019AF8987254C52C0B0A5AB426AEA3340
-hn 0106000020E6100000010000000103000000010000003900000038BBEC1044D455C0D011F4BB28F82940EA09087952DF55C0B870837E56982A4002003155C2F255C0A093A5A0DAC42A4092706EDF4DEE55C008AFF01EF2912B408C77A84C02F755C020D2124160C92B4026A4A1922E0456C0F8054674E3ED2B40821FB680412056C030E6C088E3B02B40EC4BAF86A32256C0489C42D7D6F52B4056FAF6E7F43556C02878837EF0472C40A06ED1A8BE4356C058B78D5518AE2C40AF2A8DE49C5656C0B05127EF27D92C404F6B3472504956C018EA2352255B2D405C9490016A4E56C0C03DDC70A2BF2D40F23E3B6CE84956C080B3B6B101222E40C2939041902B56C0904F504B47B12E4086D7D4C5660E56C0D8DE750A98742F409C0A08F9C00756C048D49E6697602F408A03CE4BB7F955C0E883E6479ABA2F4056EB824D67E755C0A01D80E1F1C12F40F7A63E8977E155C0F82D91F234982F40EEC8606B89D755C030C1F01EA2B12F40E23FD8E2CDB955C0901C80E16F832F407150E973389C55C0803B05CDCF902F4050BD8987A18755C098C1F01E72C92F400661FA04208055C0B464154662013040EE070879BB6B55C010B1DF0D45E82F400ED1378F6A5C55C0E8EDE9E480C52F4050F6F627AD4B55C03873D5367DD12F406374A84CF53E55C0D07A0FA4E9FD2F40ACA33E09BA2155C0903FA203E6B62F40E9A6DB7F911755C0F83B05CD99AB2F40F66F0B16090455C0F84779A7E64B2F4097FB30D588F154C0785A27EF1FD92E40D808A5AF43DA54C0909631C6B38A2E4028A23E096CC954C0E8EC2352DDFD2D409279E2F95BDF54C0B8FA972C54082E40E2D571BC3AE854C098A7DF0D99C22D4000922D3872FE54C0B0764911B67F2D40280D42269D0E55C0D035A2035E7F2D40B8C560EBC11C55C018383F3A443E2D40461BB6C0922955C0004DED8167552D402463977B7B3455C0184416DEA0A32D40D85FFA042B3B55C0A8AD197BBB942D4095F993DE604355C0402D6896631A2D40D9552321854955C0E0B5F01ED21E2D401EFD3055954A55C0105127EF6FB52C4076268D24EC6055C058333F3A74282C404E97CAEEB66C55C010C59E668FEB2B4019DFAB69487355C0F8C39E660FAC2B40CC0BA52F298655C00844504B8D132C403C3FD822FA9355C000C00130EF8A2B40CF31644853A155C090AB53E8958E2B40FAE6E55653B055C090DE861B7B822B40800CA5EFF6AE55C098694911B4862A406B02CE0B5BB855C05099DF0D27822A402162FA845EC055C02875BDEB340D2A4038BBEC1044D455C0D011F4BB28F82940
-is 0106000020E61000000100000001030000000100000014000000788C96BA73042DC0F948A4562D9D5040E82E6AC1B17A2DC05B932288C273504010367BD22E382BC027B8E1601B485040009096BAD5D12DC0275B521E4D175040845B854A60CB31C002850E40E1D64F40583629BBFFA732C03A58157A89BF4F40A8277B7306F933C0023356A162D24F40CCAE8F2152C336C0EA03C024E7FA4F40481493BE4AC735C08B4DDE43BC19504014EEFCC17DF437C02F36934508395040585AD702352F36C0F15B521E70455040ECC03D69383A36C06DB8E1E03A58504058603ACC805338C03BDEA0B91D675040B4B28F2188A637C021759D1CCD905040649E1B478A2236C0675D521E459A504064D8C254879334C08F11D4ECDA6E5040240FCD2B8D0E33C09DEC14D4B3915040A4E0709C72CC31C0B7EFB14A9B7F5040A8D2362FF62A30C0138311F7B6A15040788C96BA73042DC0F948A4562D9D5040
-in 0106000020E6100000010000000103000000010000008800000026F03CCB9875534046EE1BB43BBF41407276289D62BA5340CED3D03535294140F6492FD7E8B353403268CD18CBC04040A454067B5ECD5340B43AD452487F40400458A3B145CB53405ACC337FEC3D4040206FEE2F579D5340DC9C9D02204F40403265170C4AAF5340449BA16B12843F4080D3B7DF2AEE5340402B0198F9E13E402C9410D21E47544064F86A9BF82E3E40F4A7BE99821E5440D8337572D8BA3D40E0994ABFA8055440E0EECD6462CB3C404E2A0D35A9435440705A6E38856A3C40BAF43CCBFF7F544010880435ECEC3B407AAE5BD078D354403CF6413F505D3B40DE2A707E332B55408099B27C223C3B40D81DFC231D505540B871F323E8B93A40E8EE65A78F8155406082043588A13A402E7C8BE68ECE55406458A8A5DC653A40A00514EFDA035640D821D83B246A3A40B62E70FE2F0B5640446BB9B676CF3A40AA79EEAFC20256405015C72A21723B4090E3F14CB507564014F5A40865E03B40FED91AA9BD2E5640BCB160C43C163C40DE09B1A51C34564078E193F79F4C3B4036C2CF2A7B355640E05E45DC55193B40FC552F57A66F5640244C34CB2AB83A40F8D4E0BBE397564080F7DE752FE03A40CCED2BBAEBCD5640E8782D9103CF3A408ECC099824025740303886839BD63A408E1EC236A3065740E43A8683DE733B4004D3430596EC56400C32AFDF90C53B402EB5BE1933205740A0CFE5AF99E53B402A198849745A57407C6C7F4900A43C40D680EE2F39A4574094ED302E06473D404033D347E8D95740E85297941E083D404E78170C88075840D0C871D5EA733D40465358B38A255840E869E212BBD43C40E2B521E3EC0F584020DCBC5339693C40D20F146FEF545840A0374C16F7423C4008323691C3595840C00219E3EDE13B401035D3C753435840300CF086F5B23B40B6F7C87093485840F0E3302E72153B4012B621E3D61A5840E0A38920BC433B408E69A331FCC75740BCB8D49ED5923A4008A7AD08EEC9574010F77BAC55003A40064047A29BA65740682DE94C99293940C8A94ABF5EA35740307DA16BDCAC38401A134EDCD486574048355D27CAD9374076E2B7DFCF545740348815461C1438405297392E5352574060A29A312D0B3740F4114EDCDB435740C07E780FFFB33640A4717AD5A14A5740F48D89204947364086114EDC0D2B574004753EA28E0A3640523D47A258095740E8CDF6C0A3A037402E99D6E4ACF756408004C72AD59F3740E4B021E336ED564030B3AB423AFC36405AC132742CCA56408C63F323E780374008178849EFDD5640D05B1C809812384004C96CE190FA5640C44034CB622138406E7EEEAF131857406CD0598A08FA384016FC9F942CF35640EC294C16BE25394096E6F14CD2B7564048CA1F1DF2213940C45292A0EC7A56404CCEBC530E45394082F6025E477556400CB6D49E0FF73940E00D4EDCB956564070AF9A31B0033A40401725000924564040661C804F723A40D879EE2F6D0D5640840A2AF49FC43940EEF89F949E3B5640FC37C0F01A3D3940AC98739B9B135640600D6461B7DD38407EA9842C6705564068DF6A9B6C803840849C10D2CB2C56405C008DBDD43B384028A34ABFE7215640142A868392A137407C2F707E1538564068FA8CBD0FE1364038F265A70B42564058B982E6420E36403E88628AE1385640D89F3768CAB035402ECF4305580D5640587A780F03B435408AECC8F071BE5540808A8920DD7E35408004146F1FC25540E46BA16B49BE3440D8F2025EF59F55400C5FCAC7D1263440B091D664DB435540D851F323847A334034E9C87039FC5440A4128683504D3240783347221CCC544054EAC62AD5AB31408C2B0DB5568C5440F098AB424204314026C5A64E3D8C544064AB598A818E3040E8DF8E83556C544018DAEF866A4F30408478281DB0325440E88EBDEB68E72F40AEBF0918CB14544018FFFAF561CC2F4098C9E0BB9A015440C8FB972CD8452E4058B532F4ED0E5440E84FC425EAAB2B40483047A252125440E0EFD19934032A4026859CF733F75340F8C11241C81C28400A9DE775E9F65340209BC7C2ECB6244026E4C8F0CAD55340E030C425229E24409C0C2580A9B85340F8595A229F172340CEEA025E24CC5340F0D16ED0DE6E22406C20D3C7C991534058E7B94EB8DD21406C4CCC0D3C7C5340203AACDA838120401C6EEEAF8D6253403046FC25B5DC1F40F4E7025EF3255340102127EF6DCC214068105FED5208534028C0861B69992440145BDD1EC6EF5240C0E70B07D39D26404AF476B859D952400871F758FF8F27406C12FC2359B75240F0533800DF7B29409AEC3C4B78A7524030CCD8D333FC2B40D052A331689C5240587C837E043C2D40D88B105230625240B0CCC7C236FB2F40C2B70998AC4752400C8560C4B6ED31406A1AD3C7893452401C2B34CB4E35334024395833C4345240D05C2D91646B34404AC81AA95A285240CC3E0B6F235B3540027F39AE37CB514000E07BACE7C13440401B70FE1B9E514098F18CBD98E03440A083731B814A5140D40ED83BDC163640561A707E4669514024CC93F765733640D0E63CCB5F56514054A8D49EDAD7364048DB65274E0B514010ACD49E24B13740E8F3B025ED355140F4D7302EF05B384022C37D72C4C2514084375D27455B38409E44CC8D0FB65140A86756ED10373940A4B409981A925140C0AAFDFAE3B839401E4EA3B1CF8A51404033E94CEB7D3A40509F5BD0EB60514074A28920E3F03A404A9684AC74A7514080E493F73BFD3B402A311E46C5F1514094E7302EC6E93B407C2BE458B83452404837AFDF2AF63C40CA62B442D75C52408431D83BF6F93D40FE85D6E4F79A52407084F323D5FA3E4086AB95BDFA995240740208D250B13F4002D254968DD0524044956395B3224040462DE458E69C5240B488EF3AE86140404C934ABFAC865240A801673282B840406AE16527FF6F524024C65C5BAA2841402E4F067B5F8F5240DE59BC87DB5F4140286CEEAF73F05240B485B54DA1404140FA068849CA37534074268954A753414026F03CCB9875534046EE1BB43BBF4140
-id 0106000020E6100000010000000103000000010000000900000094BDD6E4FE3D5F402C3795CC1BC921C0B45A0D357B445F408CA9D2D6122E22C06CDC5B50AA455F40909E5EFC4DC922C068C0739BE61B5F408CA8FB32AE4724C0785CAA6B1EE55E40C48B764750B824C0FCCCE77570DD5E40D40F6299E07A24C0604B995A33E35E40ACB0D2D6CECC23C0A8B59C77B8FE5E407CA498697E9422C094BDD6E4FE3D5F402C3795CC1BC921C0
-id 0106000020E61000000100000001030000000100000007000000644FBD6AB9C66040D0E4C332B9941BC0602661DB9BC36040E0F2ABE7E29118C0A61F276E4AC9604078DB9AD6D92117C0C21F27EEFCCF604090497517B9C715C08ECAD19843D7604098C989C548F316C0FA6AA51F30D7604080836EDD8BDB18C0644FBD6AB9C66040D0E4C332B9941BC0
-ph 0106000020E6100000010000000103000000010000000C0000005684067B82A55E40C823ED814BF62340C6E095BD92B55E40E033615CB68524400803B85FA2BC5E40A0B7124184C325401C186627EDDF5E40A0CCC08899E12540FCEE09189ED55E40F0962A8CE6882440B4A48BE6FC045F40781305CD277726405C9AB442E0FE5E40584F4911BC8E244088F9E03BE2E75E40E04FE64772E623404CE195BDD5D35E40C087F01EF4A22240DC95178CBCBF5E4020E8B94E5C0B22408EC110D252985E4088430FA43D6D23405684067B82A55E40C823ED814BF62340
-id 0106000020E6100000010000000103000000010000002600000024F0F3BA8BA0614068763470A36F17C07C45495015A1614064436C705C3C22C0B02961DB96846140E45AF15B269820C00ADEE2A9166461401CBCBA8B2C3120C0325C940E355C6140CC54B7EE09C320C0EA5E31C5A93361403477D910C8D220C0A073DF4C40416140989197393B641EC0B8CCD15865556140E0E826FCE8471DC01C555AA10D4D61406046640670EE18C0941016DDB03D6140009ECA6CCE9215C0B008DCEFA7FF604078BBC332A92F12C062C7346244E56040E8D10EB10ADA11C07CB5235136B5604080538765924F0CC00CD4A83CC4AB6040F0BF370D6A1910C0104149907C9F6040502B3BAAB07310C0AE993BDC3898604010655E0963F80DC082A075091F986040D0C9384A8A7E0AC02077197AAC7F6040E0E431107D9006C088E11C9723A2604030018E9FEFAE03C0B2747C03F6B8604060B372B7BAD603C04E82F05D47B660404017138B61B701C04AB1869A6F876040F00C3CE740B301C0B2848D54C27A6040A0264838E5DFF9BFD2BA5DBE2B5E6040408A85429CEBF6BF368E6438A0506040002460DACD01EEBF5AF5CADEC27B6040009F96AA3741E6BF54DAE2E9298C6040000F261B82A6D7BF5C9A3B9C89BF604000EFDAEE7BF7E8BF3490647896C46040007A22790C6EF2BF74DBE22986CD6040B0B6384A4A2706C0589401AFA4EE604010ADB35E28F10AC026878DD462096140902B249CD27402C0DED20B861A2E6140604BCD239741FBBF04E17F208D4A6140801B3727343EFBBF60F9CADEEA65614010D408B40D6900C0369A9E65A77D614000D394D9BC4503C008083FB901A0614010CC20FF1BCD04C024F0F3BA8BA0614068763470A36F17C0
-id 0106000020E61000000100000001030000000100000027000000921D146F22755B40800C82F70069F53F5CF5B75FE6A05B40008CF9177EBDE83F1CCD5B502FCA5B4080B90A294F3FEF3F54B9AD080BF35B4080A8D0BB2EF1EC3F308A170C56185C4000B255FEDA8FF63FC89B281D07375C4000336AACF2F6F73FA6A3620A93735C40803A5261147BF33F7C308849C4A75C4000986D4919E4F63F8845361194C85C40C003F111659206402C16A09438E15C4060D920A8995A0940685747A264F75C40C01D47A4EA391140E8621E46F9405D4000FFC1B870391140A693B44273785D40C054B444DA8C1040DC3625000C545D40807F91E51BE00940008D7AD517835D40A027C17B304D0240DA631E460A785D400062B52A043EFD3F04540DB5CABF5D40806729AEFADEEC3F3267BB7CF5735D4080D13D5C8218E93FA4D0BE199D5E5D4000DC06CAC73BBA3FCCB8739B62615D4080D0B8CC19B8E9BF5E8B7AD5D7235D40E020E56E75CDF7BFA2092CBA29225D4080EDDF573EDE03C0E4500D357A095D4008A1B221080D10C04676CC0D0E005D40F0FE94D99C410DC01A2314EF58B75C4098F46A408D6D10C0ECC92163FE9D5C401063987633F70BC0C6395FED5C705C4060DF495B6B830BC0E6E3099872505C4070299FB040F308C0FAAB392E5C045C40301E5432BFD30BC01C34C2B602ED5B4010FC42219EF407C0D60D035E16C35B40F0B2C46F396508C0F646707E538E5B404078F405E67807C0344A0D358A845B4020698C7C697CF9BF0A133DCB9A645B4040741168DB09F5BFFC89B442E1455B4000E77E0D8E68DDBF1C6B2F57F83C5B40002093038395DA3F6C012CBA6C445B4040F8D3AF8F78F53F1A3C99DA726A5B4000FF3B903E0D0040921D146F22755B40800C82F70069F53F
-id 0106000020E610000001000000010300000001000000090000007AA5AF36DF2B6040A0102BD6CF6A06C0AAA21240154F6040C0953F8407C008C07E7619FAB65A604000A3CBA926DE0EC04E57948EB23F6040B08D913C06920BC0B0FA04CCF724604000094321AEE60AC0B64F5AE1E6126040D01FF168EF6D0BC07031146F87F95F402044B0C1C1250BC05A67A51F5904604040D183C8CBBF06C07AA5AF36DF2B6040A0102BD6CF6A06C0
-id 0106000020E610000001000000010300000001000000060000001CFDE0BBFEB75F4050221AC5EE530EC03C77F569C38B5F4010B21628E8DB0CC0A0ADC5534C7F5F40F005E0570E6B09C048D484AC0AC05F40709ADCBAD70809C0084CFC23F3CF5F4000CF384A2AAC0BC01CFDE0BBFEB75F4050221AC5EE530EC0
-id 0106000020E6100000010000000103000000010000000D000000B83BEB12ACFB5F4080C731B9926501400EFA040C220060408080AEF0760EFA3FB64F5AA106136040409CD01229A7F83FD2C334220616604080FAE4C0401EF23F2E8D64B85914604000464B22088BD03F401C276ED803604000503A1177CFD63FF46E1E46F4FD5F40005BC6EE0822D0BFB8D445F3280C604080D78F70CAF5E8BFA4828D54330360408096D751C5CCECBFECB2620A93EC5F4000FCFCBEF20FD1BFE8CD4A3F91D95F40401407E30230F03FA856D3C76EE65F40408DAEF096F8FC3FB83BEB12ACFB5F4080C731B992650140
-id 0106000020E6100000010000000103000000010000002D00000016B1FF405DBB5E4080EF4E6D9301EC3F54789220F6045F4000224833E658ED3F0CEACF2A39445F40C0B4E123CA4AFA3F58354E5C644F5F4000643A16A6B7F63FE0D42163F81B5F40006F11B56762DB3FE0DA5B50DFEB5E400026A4B8EA27CE3FB45470FE46AE5E4000E04EBFBE97DB3F0EE96C61A1435E4000BEA077DD65D83F265C47A2B70B5E40002407821A5ECE3F92BB739B9D025E4000A51B9609A1E0BFD200B8DFE53B5E40A0D303F4E08AF6BFFC60E4D8735E5E408023C3A33D97EEBF80DA5BD0CBD55E40008D5C3D97B3E3BF38A7289D89D05E40006074312B38F1BFCA1A035EA7B45E4080D444F258CAEDBF38CF84ACDD985E40609A5CE60C45F8BF547CCC8D87605E40A0182616C378FEBFEE3FC2B6179D5E4020E4BD350C7D09C042C84ABF66915E40E0D4D5806A3C0CC0287ECC0DF1CA5E4088CB370D1ABC12C0DCFF1AA963CA5E40B8AA3E47C75C15C034EE099839A85E40B0DFD443D28916C0AA055516218F5E4070C8C332B92115C0865BAA6B0DAE5E40D823C7CF4FDB11C0402777383F6F5E40B0643470C36713C05219035E535F5E40A8A0DB7D574C12C0983B2580A0675E4088A74F5800C110C0B6EFA6CE7B395E4090F9F7A21CD10CC0CE8CDD9E3B3E5E4080A761A6690505C0CAAA628A8C135E40F0E1F7A2EC7307C0C8C2AD88F6185E4088DC1FC2EB6310C00C304EDC901B5E40306D9739EB1C16C0A84A3691FAF25D402039C7CF8FB116C034E76C617BD75D40E022B6BEFE8415C06C9CEEAFD4E95D40103FAF8471D611C0FC57AAEBECDF5D40B00D43218EF40BC04CEA099803C55D40E0E783C86BE50BC07C72922023B15D4020FC7C8E7E6A06C01632EB1295CB5D40104846BE442D01C0DC68BB7CB2D45D402099338A7DA6F5BF4AE4CF2ADDF45D400010EF369CBEC33FE610C9F048025E4080DF36229520E23F80BC739BB0385E404033DE8693F2F43FAC759220AD6A5E40C0B4DAE91C39F03F16B1FF405DBB5E4080EF4E6D9301EC3F
-id 0106000020E610000001000000010300000001000000070000005A0A8F83E1125E40C4A2C1C56D8424C0DA31EB92F0BD5D4090625425AE1D23C07ACC84AC9EF95D4050D8CB9C01B922C0901BA0943F1B5E40687B9FA3F35423C0CABF10D2A1315E408858E04A79F023C022C3AD88CC2D5E40D4AC9869AA7A24C05A0A8F83E1125E40C4A2C1C56D8424C0
-id 0106000020E61000000100000001030000000100000009000000B0A18BE6DD555E40C4EF5088CF1221C096FE1AA978805E40309D9869D6EB20C0DC7DCC8DD3B95E4008ABA97A3F3020C05A8B406872B05E40A031F895B34C21C05E34EB9249505E40D8527D8109DE21C04025773829FB5D405CEB161BEF9E21C0A051707EF0FA5D402CBFBA8BC4E320C0AC4B3611C42D5E406C6B026D537920C0B0A18BE6DD555E40C4EF5088CF1221C0
-id 0106000020E6100000010000000103000000010000000A000000F20EC9F0AD905D409C1A4A4E8AB920C0929BEEAF38B85D40A80F73AAB58F20C0D89BEEAF18C85D40D01610E1616921C08C60810F1B7E5D4058AB6F0D33D021C044742F57C6515D4074FE272CF01422C0B2AD9C775E2F5D40E44C4314DD1022C0DCDD32F45B455D402400629910EA20C09A00551673685D4054A76F0D0BE620C0E89D8BE699795D408085EA21FD3020C0F20EC9F0AD905D409C1A4A4E8AB920C0
-id 0106000020E61000000100000001030000000100000017000000F25CBB7C281F5B40801631D31CB019C07A26EB12E7275B4010381988561C1BC09C6258B382A25B4020F2370D6A821BC0D8C521E39CB05B4078E79AD659DC19C0C442361159275C40A8AB5692BDC81BC0563CFC23A43E5C4080F4606979601EC0B8F9B7DFA69E5C40F801380D2A1B1FC0C042995A27ED5C408C5BF15BDABD20C018DB32F420A45C407C5B5425EE8021C0BA7DA331BE5D5C406C09393DA9B220C068C484ACD1235C4068622BC99AC020C0C0D7327469E15B40C8FE6199B09A20C00A8F517983A55B403CD4050AC63E20C098948BE65E5B5B40206B3BAA70F61EC0EE52E4D8642C5B4008DA78B4FF901EC0E6F2B7DFC6115B4028CB67A30E111FC00813DA01109D5A4080865DCC6A6B1DC0AEB64ABFF5915A40E8E126FC18B31BC0C063922064575A40D8EAFD9FD9671BC026D5CF2A4E835A4030FC1FC26B9517C036928BE6F5D05A40A83A2A99E7D117C0F036FC239D045B40D0BFDB7D0F6219C0F25CBB7C281F5B40801631D31CB019C0
-id 0106000020E61000000100000001030000000100000023000000ACFFC8F0AD175A4080F3D35D845BF1BFEC10DA0187225A40A05E41FE9784FCBFEEE4E03BD3385A4070113CE730B902C0C8BC84ACD0675A40A05FBA98456E03C0A275A331F3865A40406846BE847E08C08EA8D664E0765A40C8DC828BDB3811C094B9E77554745A40F8BD15EBCF6817C0F01714EF762D5A40C0247C513E7E17C0FCDCA6CE90F75940380F42E4352614C018C7F88664A5594048DB828B8BE110C008CA95BDFE895940F0851D62C5E90CC08A1EEB128B595940D02B138BF16506C086A6739BC239594020F62AD6EF6600C06427C23616095940007A11BFA5CFE4BFD48C281DE1D05840004CE8FC2E71C73F40E51AA914BE5840403F6372A5AFF03FEE92628A7CA65840C072C63B152DFD3F9A3C0D35C66C5840E09327E21EA003400AD94305534B58400037133467780A4048E95416231B584080A305C06CF30E401E4B1E4660D85740B00AC2B814E21340B0F5C8F0C0D25740B0EA652956EB15405048818FF5FB57409083FFC20FC21540F6D5A64E085F5840C07C628C3BFC144080999C77A097584040EDB0A7CF121140C29D39AE1FC9584060E1E63A09B90C40D8B2E7756AEC5840A0249F59066509407AB04A3F0D295940409F726088CB00409EEBB7DF1C6A59408031D28C69AB004058B984ACE39F5940003D7BBD1361F63F76CE32F4EAC45940804F742CACF6E13F863CD347A8F5594000547E413FC3BA3FB0D56C6102DC594000537BC242C8E6BF6484B4C2B0005A404028A4C787F2F0BFACFFC8F0AD175A4080F3D35D845BF1BF
-ir 0106000020E6100000010000000103000000010000004C0000000801CFEBF6F54A40489929287699424000DA725C70664B40B2FCF2D73AB24240344CB0667BC14B407E23B23068FB4240989F688516174C401294EF3AB2F74240707E4663474F4C4066E6A7D9890F434044C48AA74BAA4C403EBD4BCABD034340C03A65E8D3374D4012487109DBC24240E0685EAE0C9E4D40E2BB4BCADCB442408CC7ED7056304E40F0B94B4A81434240841E43C6C08F4E40BA9729A8EC3E42403033F10DFC9A4E407CCCF99135D341401462870ACF664E40623A379CB93341403CBA7996A3434E4090CB96C895D64040547AD2885A7B4E4020E3E1C6B0C3404010247D339E444E40F6B885379A7D40406C95BA3D8C6E4E404E0204E969174040FCFB20A491784E409CCED49E4E8C3F408C156C2283D94E40F818535027613F40A8045B11FFE34E401CDCE5AF60BC3E4094B7DC5FE76F4E403C5DD10149D43D40CCDAFE8145AF4E4008438683A34D3D40C0EC0F93CCE24E40CCE0598A07B33C406C4E3C8C295D4F409C374C1678423C4054F2ACC9B1604F4060A4892001613B408CEC725CF09D4F40F0E7CD6490373B40288D466387A84F406CD11F1DACC13A40C8B9DC5FE5EF4E403C7D67FE6E3D3A405CBC7996A9BF4E40AC9D26570714394084362B7BDDCE4D409C38C0F051613940C8DED5254C434D40B8217572269C3940180C6C22D9B24C40A84E6E386ABD3940E029F10D427C4C40600C8DBD52F73A405C4EB066FE3E4C403CBBD49EAF243B40D06ED288A2DC4B400C546E38F2F63A40E824F10D885B4B40B4E4CD640C7B3A402CAE16CD1DBF4A4060B63768F7CF3A40B067D288E63D4A40AC0BF086B2943B4094020959A8C24940D4C171D59DDD3B40F841B0662D6D4940648FA16B84D03C408C73E399B80E49404095A16BD4253E4060AC503AD6C9484028CB71D557FC3D402C414D9D7D7848409CCC71D52C513E4004EBF747B348484000B3265741ED3D404C9BDC5FDD0148402C930435D4733E407094A2F299004840B0F193F731FC3E40D87B5774B7D74740A8B726571FFC3E4044F031B5B2EC474040BEC38D8CB53F40D0361330D6AA4740E8C896480D3C404018FAA58FFF0D4740182D6078368240408821021F56B546406A9C00CCE0FB4040A4BB9BB800D34640021915FAC25F4140D0CDACC96D13474098204FE7EF8B414060896885C509474060D3337FB4D64140A06C80D0D6B54640A8A73A3920FD414054017D33885F46400C7E41F3959D4240C8ECCEEB3E5B46404677070609A14240F4F5A58FE51C464080867BE05CFC4240BC856885F03546408679070601244340387E2E18FB0D4640666E932BCDB643407C755774A1654640066F93AB43DB434078495EAEF1794640DC183E56FAAA4340B809B7A096BA464018BF4BCAE36F43400C75BA3D621247403425B2B0DF5E4340D4D8836DBB404740600D6732A3624340784F5EAEB0D74740F8D4F91112C14340A0087D33B10748400E27B2B086CA4340DC05E0FC812D48405E4F0E40F6A4434060E65A1160014840B6EEE146A265434018DAE63633514840D094EFBA9B224340248CCB4E0E714840FCA500CCFD2843403856FBE48C9948409811A19F9BCA4240C86CA92CEA124940E8A300CCF1AF4240D01F8E44D26B494016847B60B86F4240A007A68FCB214A4058F4B86AA7594240C8292B7BB3E94A4056F85521867B42400801CFEBF6F54A404899292876994240
-iq 0106000020E61000000100000001030000000100000020000000C8ECCEEB3E5B46404677070609A1424054017D33885F46400C7E41F3959D4240A06C80D0D6B54640A8A73A3920FD414060896885C509474060D3337FB4D64140D0CDACC96D13474098204FE7EF8B4140A4BB9BB800D34640021915FAC25F41408821021F56B546406A9C00CCE0FB404018FAA58FFF0D4740182D607836824040D0361330D6AA4740E8C896480D3C404044F031B5B2EC474040BEC38D8CB53F40D87B5774B7D74740A8B726571FFC3E407094A2F299004840B0F193F731FC3E404C9BDC5FDD0148402C930435D4733E4004EBF747B348484000B3265741ED3D40E045870ABDFC47405C727F49CFF93D40E0583552BCA64740749104351F0F3E40BC6BE399CB4847405475B9B659193D40B4DBBDDAD05A46402C279ECECB2D3D402446FBE4EAF14440A0C93768A4303F40C894B30333334440307E1C80D6E33F40A043981B05994340AEA2D7EF9B144040A8F7196A6B6543401E9B00CC78B04040EC6280D0C980444080E87EFDAD3541401CF342C625B14440264E48AD6CD04140ACE86B2215A544401CDF0AA3ED2D424074E6CEEB24EB44405627EC9D8C4D4240442FB066BF2C4540424EAB766C9D424000604663BA634540405C1F5150B142404CBB38EF9BF84540EAE74410CCA042405C3AEAD38F2546405010A19F31804240FC9A16CDE7624640CAF85521D1954240C8ECCEEB3E5B46404677070609A14240
-ie 0106000020E6100000010000000103000000010000000D000000D0347456A2CA18C05AC1C65E0CEF4A4040FBA3ECC62118C0FE8F30E29A934A4010BA8804CA271BC09650268B4B214A40D09F77358C1F21C036A1DEA9ABD5494040720A9544F423C08AA1DEA904E9494088D170FB225522C0BCBB2928AC6E4A40088BF249866023C04E137F7DD0F04A40F0F906F8EDA720C07E8CF6F40E554B40D08D1B64E6491EC028FE33FFD8904B40C0AFDABCD0761DC04CB55284444C4B40D08D1B64E6491EC042D674A6AC074B4030C75FA89ED01BC01CDDAE136F094B40D0347456A2CA18C05AC1C65E0CEF4A40
-il 0106000020E61000000100000001030000000100000017000000C4CEF74726DC4140F8511FD1C65A4040A8AF725CD8C541407C2189546E32404088591D078B97414078696A4F2944404010591D07C17C414088BB2657D8DD3F406889B303EA9C4140987D1C801CC13F4098E1A58F397C414018C89A31E59D3F40A83D3552B5764140AC1F8DBD7A5A3F40D8FD8D44E3B2414044208DBD347D3F4014948AA7E0B5414054B1ECE99D193F40F8F553D7177641404CAAECE956803D409CA29BB8F9214140C803A50828383F40B41A133037474140545023BA7F8C3F40449C614B7A3E4140702E0198049B3F4088E442C654604140E6A574A655094040503A981B4B7A4140AE2C6078E7694040F82C24419A8C41407A37371C4F8A4040E0D0947E22904140B607A19FA28B404008726885F8BA41405A78DEA9658B40408C2A870AC2C641403A2AC3C1D3A14040BC27EAD319E9414082D1D0B582A3404064FBF00D0FEB4140DC77DEA91E6F404030466FBFB3D941404C0A3E56A65B4040C4CEF74726DC4140F8511FD1C65A4040
-it 0106000020E6100000010000000103000000010000000A000000D079D7E5836B2140F429B2B03273444090AAD0AB866B22408ADF33FFE09A444040163712B59E2340ACC24B4A0040444050F6B126CB56234072072D45B496434060C95597FC6D22408A3089D4C79E434010A7D0AB269D2140541BDB0C0C74434050A033754ADB204072A46315FF954340A04ADE1FC9C620409AF57E7D6C30444090ABA74FEB512040681C3ED699794440D079D7E5836B2140F429B2B032734440
-lr 0106000020E6100000010000000103000000010000001B00000000AFA04F40D91EC0E04069C65075114070F4475D7CE51FC0702581114B6C11407025C650740222C010D58E8565541340C0E5E4D5ABD323C020F00260CE5F164030164165E08725C0707B517B1690184008D1C2B3A7E026C050D56C63C7241B4070BA146C4C6626C090113DCD626C1C4060207BD21C4B26C0404D0D373A961D40687F4402256425C01061E4DA02C21F4050187BD2CE7524C098C0972CFACF2040D0DFAA687B0824C0E00B16DE64DB204050AA7735BC8223C0F891013005152140606233F1AFAC22C0F00E2CBCD1B61F40487E1BA683CE22C0C0BCAD0A8D1B1E40F8E2810CE66A22C0A0EF7D7474411D40F891662425DA21C0002D884B743C1D40D000A42EBA7121C0C041FC25C1D81E40105796BAEBE020C0F04E700082BE1E40E020C6508CF820C0903F995CB1941D4098B95FEA59C520C060528111AFA51B4048882CB7AC3421C0E02BFC25C9DE194090299DF4689F20C0607C517BAAC51840D057118D8AF91FC060114EDE37811840B0083012D6471EC0404E922254D4164050D89915AB281EC0601E3693DD4015402088E1F69D8A1EC0604F69C6ACC0144000AFA04F40D91EC0E04069C650751140
-it 0106000020E61000000100000001030000000100000042000000F066B5C3A9E22440AABF3AB95F72474030951153DC1826400CA452842C6047404096115364542640066748AD857847409072188D614E2840D6071C34C58E474070C6D0ABC2C02840D8997B603F624740E04DE559EA9C2B4058AA8CF13041474010D2D0AB6E652B40B2E696C825024740903A371211E02B40CA1F0469A6CB4640C02CFDA480482A403808B9EA4BDE4640F01789CA3BA828406C6A821ADEB04640E08F00428BC42840C6A68CF15371464060EE2C3BDD8528409880CD98DC4C46405065077CB02D2940F6937BE0B10B4640B08F299EC60D2B403ABF74A63ACB45407075A4B2440F2C4042FE1BB46861454030E26DE2FE482E408099520442FA444050560EB635DA2F402AA7C65E0CFB444090E425607E2B30407E10CAFBC1DE4440D0BF115358C72F404243FD2E42C5444028FF70DEF5C8304098641F51FD96444058C8033EE8843140A682A43C46704440A8F1C2966E603240942FEC1D852D444030A00A78F17A3240DE1304699D154440683C41481B4B3240D26BF674C7E74340286D747B06BD31401EB13AB98A234440185F9DD79DDE304032D0BF249B384440088D33D4E07230408627B2B0CFE54340F0AEB8BFE62B3140AEEC44905CB64340D0B155F6860D31400ED7964891734340F8121F2695A23040523DFD2EFA6B43403847EF8FD819304062C722EE31FE42402043FDA4405E2F400E6B932B55F442402043FDA43C602F406EEDE1C6771B4340E096B5C3B1C82F40527030E21E6043408051C633FD1B304016EFE146767B434050BE115308702F408C86DE29A4C54340B0069004C5D32E40F205908E3006444010A0C6D43AFF2D404040FD2E23164440A05C1FC712682D40B82C4FE7614D444090F0B860101F2C40761FDB0CA7644440D09A004287412B404CAC00CC19984440F0CAD0ABB2C629407A83A43C65A04440E0CA0A199F362840D41367322EDA4440206A188D4162264056C3AE937E2D4540D0ABF9071E062540FE8DDE293A774540A06BEF306A66244016E296C8C2F54540D08CAE89AC67234058E296C8A404464040BC7EF323C721403068821AE42E4640307E11536CDB2040607C30E2981D4640C0DD745E2F671F40AC334FE731E24540A0F15C13A1BD1D409E1B04E9CFD84540E0784865C9321E4006F744105F104640803FB268BE071C40701967329C204640E0189046F4FF1A409E2F157AA683464060E8BFDCF8621C406618CAFBA2AA4640E09E7B989C351B40627559BEB2DA46406043ECD5D65F1B405A68E5E3DDFE4640C0A3DE616C181D40028A070673E34640A01245C822061F40FC67E5E388E94640900CD4481DA22040468EA43CF2144740406A630BDBFA2040ACE696C8A8004740D03793A1BFEE2140244DFD2EBA04474060AAD0ABA25D2240687AF6F458384740A0A6F9077ED82340CC24A19F4E2847403055A4B20CBA2440CE95DEA9E53D4740F066B5C3A9E22440AABF3AB95F724740
-it 0106000020E6100000010000000103000000010000000B00000000D83375C2852D400E8041736A124340F02278B96E0A2F40E2F07E7D961D4340002A4F5D0B522E400C07CA7BD6B84240802415F0AA9E2E404858821A2E914240300E67A831332E40646159BE5B4F424080DE0A19A3AB2C40FC57829A917F42407040717F49A72B401AD39648618D4240D0A4AE89ACDC2840FAC9BF2475CE4240000978B952242940EC34C3412D10434070359ADB787B2B409C4C0EC07904434000D83375C2852D400E8041736A124340
-jp 0106000020E6100000010000000103000000010000000C0000008AAA4CADE08B6040BED80AA358BB40406033D575949D6040B0AD11DDB7074140AC969E65C6AF6040000D3E56E9F840408A07DC6FEEBC60408EE14410B62E41400219ED006ED46040828118171A134140DAAB4C2D86D86040F01615FA35E74040DAC6346282C6604020016732C09940400ACAD1D85FB9604040050469D0C2404084BFFAF4F7A8604078C0BFA410A54040881B8AB779A060401A1178432F5A4040E4390FA39E8B6040A2C6F911A47E40408AAA4CADE08B6040BED80AA358BB4040
-jp 0106000020E61000000100000001030000000100000025000000580F79A64EBC614040D4F991269743409E3E0F23B49E61408883DEA94516434082B923913E9F61407CEE7E7D2F92424040454950319361404AAF74A6072C4240CC1F8A37C5986140243A9A65E3EB4140DC1116DD1A886140B6BD85B7AD914140B6D30B86375F6140E0EFB8EA735541407E2BFE91F626614080E5E1C69A4D41407683F01D60F960405872A4BC7EBB4040AAE21C17DFE3604038AD115DAEEC4040E0ECF3BA8AE26040629A63955B4C41402AF6CADEE3AA6040765C59BE1E304140DCE75644048560403CC55CDBD4F34040E62E387F8E5F604092F155A160F1404040FC044C00806040127541F3329340409C1A8A37A66A6040306B0B6F4A733F40DAB32351F6556040687A1C8092073F4018023F397A4660400CCED49E116B3F40780C165D534E6040BC24268BE42840408E4920F4113A6040A806A19F1E4E40402A505A21122D6040B2902928E5A540409605DC6F534B6040D46B6ACF54CD4040365B31451C5C604084885284CA1D41402625619B4B7C60405C0BA19FF65F4140787719FAC3936040AAD96D6C79B7414024D8453377D36040F2AD74A6A5DD4140C4AFE963AEF560402EF5552179C3414006F8CA9E2917614094AA3AB909A74240B6B0E9E37F2C6140F2ACD7EFE7694240E87A197A715B61406C905204EBE942404C29611BA56D614068B374A6A41B434060E51CD7C08161403201F3D72AB843402226C4A4447C61402618A19F1A484440989364F8C889614070CE22EEF5984440BC565AA1CEAB61405EBA74A674B044404027C4A441BD614058F1E146EDFE4340580F79A64EBC614040D4F99126974340
-jp 0106000020E610000001000000010300000001000000100000007C81B630A113624002E9D035FEFA454008DE4533442A624074D522EE3E31464008595A6161316240DE4D371C8CA1454022AA12C0E8016240E0830786827E454034CFD118E2E561407814673263FF444020FE675591B36140964C379CE2564540DA37D53527A26140F03F60F8D3CA444090EFF33A907E6140BEE3D035E7C84440DEB82351297A614092560E4029484540F285F09DFC896140185F48ADA8AA4540F8C3FA742DAC61408CB49D02C5B14540F4CA34A280B561407CCFE800D562464022686BF2F6BE61404EB99D0297C64640EC27C46492E46140A0ED6D6C53414640CC02050C20FD614090344FE7481646407C81B630A113624002E9D035FEFA4540
-jo 0106000020E61000000100000001030000000100000013000000A8AF725CD8C541407C2189546E324040C4CEF74726DC4140F8511FD1C65A40407C153C8CC26A42406A093E560E284040A8F7196A6B6543401E9B00CC78B04040A043981B05994340AEA2D7EF9B14404000732E18A080434000B04BCA4E014040784C0CF6468042402C8A905A27823F40C8D3F747DAFF4240DCD00E0C2D823E40B87DA2F284D54240A4BB60C4B2563E402C84DC5F75C0424078D54879F7003E4058264D9DC95E42409890043583DD3D4098B8ACC9274042408040E94C58813D40E8FBF00DD3084240745AD1018F323D406CBF836D5F7A4140B81DC72A475B3D40F8F553D7177641404CAAECE956803D4014948AA7E0B5414054B1ECE99D193F40D8FD8D44E3B2414044208DBD347D3F40E85680D0CAC541407439D83B52C83F40A8AF725CD8C541407C2189546E324040
-kz 0106000020E61000000100000001030000000100000070000000F614369196BD51406A07F3571122454010D0F1CCE498514026C64B4A680A45400A6FC5537B445140A4FEB8EA2EB14440EE9ABE997A285140B0338954975544400E234722A2105140301FDB0CC7544440C85CB44218FF5040BAD1BF24689144405EBE7DF2B2AD50406808908E8F95444078769C77AEA05040481BA11F6BFE4440688A4A3F7F81504070DAF99150FF4440E0537AD545865040B250D452B37F4540F07E731BA7395040067159BE31DD45408CD427DEC7974F4078A729A835D345405461EAD3B3014F40AE2FB2B092C0454070921D0777874E4096836ACFF13346409C56B066B71E4E40866C1F515B644640C415A68F51584D403A90417300C04640DC63C17766404D40AC374F671CCB4640E442D9C2E6F64B4090CC4B4A787F4640E831C8B1EDFB4B40EED8F99181A744405890F4AA45BA4B40B8F0441043A14440B4A63F29AF604B4022D75CDBA00545406CD8725C2A0A4B40B600B96A7C294540C479E399DE784A40F2E4D035DA0E4540CC78E39950404A40CA43FDAE43E4444050E920A421394A40385C48AD79034540BC016C2297584A4052F34490D1384540EC9A05BC2E404A40589B52046A65454018B78AA7D4AB4940E4681F51059145404CE9BDDA157249405C1C04E9F8034640D0A37996682B49405420A19F5A244640448FCB4E1F274940829818170F4E464080DC4900A6A34940C27259BEE6414640ECCED52590A8494064AEC6DE7C9F4640E07E1D076D154A408C7B932B46B446406CB7ED703B854A407CBFD76F28A14640E4653552459C4A40AC987BE0081E4740C846B06678854A40DCA0B54D2F6D47402CDE490061054A406411F357FE664740F886F4AA91984940BE7BF6F43B864740341754D75C0449409A813062F34D474034892E18F38C48407C73BC871D334740B85B3552EF4B4840E24A60F8CF47474040771D07ED5848406E4FFD2EAE8947407CE65A11540748409AD24B4A33DF4740ACEB947E59A84740246CE5E3A0DB4740D0E9947EB43B4740BAB86395733248409C731D079785474038C19D02769348407487CB4E346047400E8BCD9891AD4840449ADC5F55C64740D41C908E333A4940DCF131B5F6494840A02CA11FF8EF484014E120A4E7594840DC01A8D9744D4940E863D28821624940A2CDD76FACD84940A0484D9D132A4A4074C300CCFCDB49406CD9725C35444B405C62D4D25B834940900132B5C4DB4B40DA2A0469944F494038BC503A94634C40AAA6181793854940FCA0CB4E802E4D4002C200CC25884940CCA3CB4E36D24D40EC34DB0CD145494028C3503A66F74D400CAD5204CD6B494024DE9BB830AB4E4090E322EE47664940443EC8B143CB4E407625CA7BE6A24940F4E1D525D8FB4D402420900EEFFA494074AD05BCB0764E40863C784349394A40CCA22E18B85E4E402CB15284285C4A40C4E5D52599D94E40DA990786707D4A405006F847317D4E400AE3E8801ED54A4078C6503AE2B74E402A10E246CD004B4006AF09186D4B5040E4393E56572D4B4090AF0918AE6A50401C821F51F64C4B407671628AD20A51409ACA00CC357C4B405C27E4D85C445140CCAC7BE04FB14B4036A4F88660B75140945389D4B9954B406648694487CB5140DA137F7D0F114B40DA645179580E52407288593E36304B401EA7F8868B6052403EAD18178F044B40B88B10523E5B5240407C821AB2BE4A4076D4F14CA19852406C53268BFFC54A40000788C907395340DAE4E880C93E4B40A67A628A9C215340EA3CDB0CA8164B409E3E58334273534056C0C6DEC3B34A40948F739B4602544056B72928B06E494064FD136F6124544024C69D02B5B1494066B0F8068B7C54404C657109F6674940B033472283D854400225CAFBDA884940E030AAEBD8FB5440A0C100CCD271494084195FEDA51A5540B4B28CF1DB274940AE80C55365475540B8EF96C8030F494098BECF2AA4625540B0A31897AFD848403890392E14B555402C3A157AD0E94840FA89FFC009D755400A097F7D849B4840BE22995A52A6554012B963954B464840CEE72BBA2A7155401E607109563A4840A06240681C6E5540C63B4FE7FAB947403ECFE0BB834A554066711F511F804740146A170C8DCB54407864AB763EAA47402C81620A5F9D5440E88CA43C13C54640E2C4A6CE9C7C544056DE5C5B94A84640C870EEAFD4FD5340E41A6732717546409C155FED6F3754409465821A1697454050EF9F94870B5440E4DF96C8C4754540008939AEA310544088F6E1C6CC2C45403A3DBB7C31E953404697B54D933F4540D2FB136F19C9534034BAD76F946D4540C0BC0918236A5340566F59BEF77A454020EE3CCB05005340C69B5284777E45409291AD08C4E85240A28307065F704540F6B809989F8D5240EC13CAFB2FA645404CE165A74C6952407AB000CCAE8B4540A869EE2F585F5240647F6A4F1D404540B845CC8D0EF65140DC01B9EA356C454076BC4305ECCB5140340F2D45265A4540F614369196BD51406A07F35711224540
-ke 0106000020E6100000010000000103000000010000002400000068D9CEEB1EF44140403E2F599C6A1240C818D9C23264424080CDF14EE962124080B1D5258DF7424040B4503E6E500D408CB5725CA51C434040494DA1F70D0D40D4E26B22C1514340409505C0FCB10B40C4B3D525027C4340A09CA2F68C990C405C0DC8B1ADAC434060D10F9788670B408C29B0665DE04340E08380D45ABF0E4090762E18FE4F4440308110D4E8551140E422D9C290B04440202AF111D5480F40D0A8C41447DF4440E036C8B5D5DB0F40E45B46639C74444020883F2DDD2D07408469BA3DAA73444000F93DB82BE8EBBFE8E5CEEBE5CA444020B76DF79DEEFABF6858A92C40714440A04C802B15A900C04C7391E189584440302C4DF8B1EB04C088E66B229028444050540C51C48105C0A40B2B7B830F4440002F9FB0B0380AC0F844981B69E6434020C9C46F09730DC0045946636DCD4340581E2A99DF6211C04CEE42C6DA9843409088F3C8C50713C0DCC820A480D84240607C0C51649F0EC0F491503AF2C74240103D4DF8F1C308C090E242C6BBED404000B08599A602EEBF089427DED8EC404000E0CC147A67C03F0C5ABA3D41EF4040007422C6F896D83F689C614BE946414040C0B18DAD84F03F4052E399FA7C414080B744ED79BEFB3FD8F8F00D3957414060793F2D9DD403404CB00F9301244140204E244598D40B409C0465E822E94040D0FF5EEF00A41040D050E3992329414050F3B0A707741240B09D614B539141403014C2B8B80B1640A42A870AB8CB4140D0C2A6D023651540B8B30F93EEEB4140501D70003E77134068D9CEEB1EF44140403E2F599C6A1240
-kw 0106000020E61000000100000001030000000100000009000000E045870ABDFC47405C727F49CFF93D4038C19BB8721748403003DF75D3883D40D42A9F55060C4840F8943EA2694E3D4060CF0F9342354840F8495D27508D3C40783E4D9DBBDA474024C80E0CAC863C4024ABED70DBBA474050DB1F1DA5003D40BC6BE399CB4847405475B9B659193D40E0583552BCA64740749104351F0F3E40E045870ABDFC47405C727F49CFF93D40
-kg 0106000020E61000000100000001030000000100000023000000F614369196BD51406A07F3571122454076BC4305ECCB5140340F2D45265A4540B845CC8D0EF65140DC01B9EA356C4540A869EE2F585F5240647F6A4F1D4045404CE165A74C6952407AB000CCAE8B4540F6B809989F8D5240EC13CAFB2FA645409291AD08C4E85240A28307065F70454020EE3CCB05005340C69B5284777E4540C0BC0918236A5340566F59BEF77A4540D2FB136F19C9534034BAD76F946D45403A3DBB7C31E953404697B54D933F4540008939AEA310544088F6E1C6CC2C4540E8994ABFA40754403EC64B4ADD0F4540AC492F57CBA2534030E76DEC86CA44406094AD08FB8B53406CCE226EB89744409A03EB12E33953400A49379C828844403ADA8E03B0215340DCB4D7EFC63644402487D6E4F0DD5240E80DCAFBF1474440E671281DB8B152401C7E0706E72E44404811FCA39F74524046B03AB96DF24340D81499DA707D5240B29E29287BD443407E3DF569396B524000082DC532B743408423AA6B38F251408C824173C5A34340E87A9C7725A35140C4D15C5B56CD43408E1D0DB5C05D51409AD15C5B6AC34340B2F4B0A5D0635140A465BC07360D4440CA0DFC2379A9514054D996C8C6F74340DE55DD9EE8C0514064A3C65E471F4440A445CC8D97F15140BC65BC07AB12444072AD32F48B4352408E71932BDA6E44404094E7F5AFF75140CC20DB8C4AB24440C411995A1ACA514076F0441061924440A4F5B0A5E19A51402295B54D8FC244406ED48E8397D05140643A268B77154540F614369196BD51406A07F35711224540
-la 0106000020E610000001000000010300000001000000250000009A00C970004E5A400898086AE28B2C40F600C970D6625A40386C726DA7722D40E0DEA6CEB2655A4048E4AF7700242F4044BF2163E0315A403463780F1E7130405EB8E775E22D5A40C8714FB3C96D3140CA5EF5E936FD5940D4ECC62AAF3D32407EE67DF2CFCC5940349B0E0C444F3240D00B3DCBEABF5940DC92D49E31F6314040B984AC6E9A59404855CAC7CAEE314088EF541645875940F80A4C16EE1B3240045F92A0CF43594048F73A05338331402A5858B34C42594054E3EF86AF683240AAC5F8860C52594000BF93F76B763340B4F48E83CD265940803D45DC228233404C0203DE20235940B4023B05F71B344064612F576C075940D4969A31F86A3440143C70FE0F155940BC7915463FC934406E400D35854B594028DC413FC36F3540D2BEBE19485159408CDEDE759F333540D2C25B5066735940DC1BE94CA32C354034E81AA9BA695940ACB3487975513640EE44AA6BE88A5940B47D780FFA7636406012773850B05940F43534CBD5AC35404E50810F0CCD5940FC6BA16B3DC434407281170CD71B5A40AC8A26573CC23440E081170CA5345A40A8F029F4FAE23340746292A0BC0B5A4030D4413FEA9F3340963CD3C760F9594010AD82E6E2433340D48F8BE60D465A409469DBD8BEAA3240548DEEAF3F7B5A40F8603EA23D7C31402A4D47A295A35A409C48905AB29A3040D6F1B75F03D45A40C05E27EF2BD12F4006A7392E21E45A40700DA93D83672E40A6AD739B7ED85A4020B68D55A6672C40400CA094C49F5A40008D948F23242D40AEFA8E03D0825A40B853615C1EC32B409A00C970004E5A400898086AE28B2C40
-lv 0106000020E61000000100000001030000000100000016000000002382EF480E3540269D6A4FFA034C403834930026173540F0C08CF155644C409069C633F59435400E7E482DB8B44C40280E9A3A3B86364018FDF9916EE04C402860B522865137400AF85C5BCC804C40B063B522E81E3840BA689AE549834C40909E22C31750384084524FE78EE54C40F01260CD222A39401C86821A2EFC4C40D0034FBC519A39405C71D4D27BEC4C40B08C3A0EAA763A4038B8B54DFABC4C402897747BC6493B40DC28F357BDBC4C40C0AD22C31FC53B407410A8D9439F4C4020AE22C3F3DA3B408C6B379C31614C40A0C033D43C2D3C404A41DB0CA6154C40781B60CD3A1A3B409E39A19F43E44B40183448828C7E3A40726CD4D2BBCE4B4080034FBC75883940D288BC87D60C4C4008199A3A3D003940FA25F3570F154C40D0E1C9D055DC38401AD19D02AF2F4C40C8BE44E5D5E0374056ABDEA907234C405009FD037F3336404EB218173D2B4C40002382EF480E3540269D6A4FFA034C40
-lb 0106000020E6100000010000000103000000010000000D0000004CB0725C0DEB4140846E07864CA34040BC27EAD319E9414082D1D0B582A340408C2A870AC2C641403A2AC3C1D3A1404008726885F8BA41405A78DEA9658B4040E0D0947E22904140B607A19FA28B4040E878A2F2B8BD41402CB44BCAE5F3404054CFF74763FD4140524FE563164E414058958AA7CBFF4140DA29268B8C524140B4C2836D5E3942402ACAF911064C41407829EAD34D4E42408AD3D035D41941406CE742C681084240088BEFBA96E94040B0DC6B2293EB4140E4C35CDB72A540404CB0725C0DEB4140846E07864CA34040
-ls 0106000020E6100000010000000103000000010000000C000000888D636A6FFA3C401CD5C5FAA1F43CC028DAE11B3E533D4092F8E71CE4413DC0C06407DBB6043D409EAF696B67BE3DC0D841E5B830D93C40AAE739D5EE113EC0380CB285834A3C4076D0EE56E9393EC040AF22C3711B3C40062E7E19B58B3EC03099747BD8BF3B406C57DAA825A53EC0388800A1CFFF3A40B2614E833EE03DC0C85A6AA452883B407E5BB14C223E3DC060909DD707133C4084B2A3D8F9D93CC0A86207DBAC8A3C40DA1E44ACC2A53CC0888D636A6FFA3C401CD5C5FAA1F43CC0
-ly 0106000020E6100000010000000103000000010000003800000080F7B860E0B32D40D00E3B05EADC36406002CA71A9492C40ACBE1F1DC57D3640106E077CB0292B40FCD86A9B5E0A3740B04B5934BFFF274054B5AB42BF7837407055CD0E101F2740343D97941019384030D01B2AF08A254090F7B5190290384090A65CD1919B2440F0EF7BAC1A61384080EEDA8282E52340B4AA9A31DCEF3840C0EA3D4C46D2234070500B6F8E5D3940E09D5CD189A3224078F77BAC25183A4090D48F04BD6E2340CC0D2AF41F833A40A03D93A113422340BC09F08615243B40C078004223832340206FB9B631B03B4040264823265E2340004F9794E8243C4010E066A851B82340800719E3C1F53C40E086741C7C9C2340F40CB619B56C3D40F072630BDBF62240208F67FEBB4E3E40E0E7A015A6F0234058C39A31118A3E40003EF66AF71C2440645B97943AF63E40C084D7E583E623408815B61946603F40A0CB7EF31746254034DD4879ECC23F40A0869D78BBE32540F8194FE7780A40409098115350DD26409EB78537382F40408039E55942FA264012AFAE138991404050F5C971A15329409EC996C879654040C07A188DA12A2A403430FD2E7D704040609D00425BD62B4078030469215B4040808341E9C07D2E40E2686A4FEE214040307393A18B6D2F4030232AF451603F4020BA2C9A939C304050E8BC53A32E3F40A81582EF66053240609B3EA279C33E40783CA4111F1633404447868332443E400008D4A7F3923340785997949B863E40A0F52560AA0D3440ECFB6A9B5AFC3E40C016488200D23340587345DC74C03F40302959934D223440BEBA22EE7C1E4040081171DEC1DA34401EAEAE13785A4040083DCD6D028B3540D214157AEE6B40408805C39652E53640C67A7BE0BC514040D870C6339F3C3740D0B3E800831840407061B522F09B374026A67426F8174040E0D68F6371ED3740AE5AF6742202404078483037D0EB384004AEB27C3BE63F40B06B5259302A3940DC2A6461B4913F40B066B52288CD38405C5F34CBDB163F407078C63327F5384088D10E0C5EA93E40F0843A0E38B33840A09BDBD84F0B3E40303BBC5C1B003940D82A3B05913C3D40B089D7440000394020D0BC53B9AE3940B089D74400003940E04BE21200003640B089D74400003940A068A16BC7003440E069EF8FF6FA3740F0BDF6C0F5FE3340E069EF8FF6FA3740285CCAC7237F3340689FD00A69D93340D042A8A5BE7E3540D03DC337C4B82F4054962657E468374080F7B860E0B32D40D00E3B05EADC3640
-lt 0106000020E61000000100000001030000000100000013000000E84F414829BB364020B8EFBAEC294B406890E855ABA636401C59C341974A4B40580860CDFCC136404AB9EF3AA46D4B40A8AD6D41D3503640CEB2B54DF5814B401046A411B944354098191CB461984B40002382EF480E3540269D6A4FFA034C405009FD037F3336404EB218173D2B4C40C8BE44E5D5E0374056ABDEA907234C40D0E1C9D055DC38401AD19D02AF2F4C4008199A3A3D003940FA25F3570F154C4080034FBC75883940D288BC87D60C4C40183448828C7E3A40726CD4D2BBCE4B40E0C30A7899963A4072CE9D0266954B40C8489300B8C43940E8292D45696C4B40708F747B4E8939408CA3417326244B400043930060733840503CDB0CEEF34A40583BF6C9EF7B37401ACF3AB9CCF44A40D8FCEBF2753E3740B084BC873B1C4B40E84F414829BB364020B8EFBAEC294B40
-mk 0106000020E6100000010000000103000000010000001000000048D9A0741A973440267730E27DED4440D876D744A2B73440A662821A6EEC444010B144E51DC33440E2921817A3064540B88AE855495A35409622DB8C781A4540F81F4882C6EA3540B4D75CDBDD264540085CB5226A61364040267843FE28454068577BB5A1E13640DA4060F8E8FF4440306C29FDCEF336400276306243AB4440C034599301C3364078FEB86A03A74440086EC633E99836404694B5CDB3904440180C9A3A2D0E36405094B5CD2E9344406033F6C995AC354008C7E80034774440A829BC5C210535406A26157ADE6B44404865C633ED9A3440BC56AB76098B4440B03B6AA49276344040B7D76FEEC1444048D9A0741A973440267730E27DED4440
-mg 0106000020E610000001000000010300000001000000310000001C791D0792C54840C478B7EE8DF028C024545EAE8CE748402C8A2BC962CA29C0C0656FBF3B0749408CEF57C28C1C2BC0C0D6ACC9D41B4940542D8BF57F842DC04C9D3F29FF3C49407C082F66F9732EC0803D1330453049403C95B7EE81692FC0BC73E399A21949409CB07342110030C0805E355228EE484074C24DEB18D42EC08C3876F917D64840247395CC9F6B2FC074EA5A1182EE4840E2302527777330C0E8F7CEEB24E348405ACCBEC002E030C0E8906885D2BF4840C4332527251B31C0FCFD0859C2B7484024459901FCF331C0D47E5774598548401851D36E681E33C0E09F7996364648403091400F347F34C0B8D1ACC922F74740488F696B396436C018A116CD1BC647400806A7752EC837C0D02165E8418C4740206E70A50EF138C024A5503A28244740A82055BDAF2D39C0885B6FBF6AB446406200339BF79939C014273C8CB26A4640F04614169A5839C088F5A58F1505464014C7623104FD38C0888E3F29C3E14540B45088F0EE7538C034F842C650D9454058724749F99237C07431B0663EAC454022EDF82DE3C636C00CFE7C3389A0454002C19C9EB20E36C0F0AF614B76B74540A627A03B235635C074FF7C3364F245405E3B4E83CE2935C050402441BCF2454096812FFE98D434C09C4BFBE4E92F4640DA17C997861234C07C93DC5F713B4640626A1EED796F33C000CD4900C01D4640105E474945F632C06C70BA3D800546406443FCCAD55432C0F4F1085946FB4540E464BB23F26831C0C02C76F9FE27464092211416BAD930C028152B7B27394640A45FBB235A3730C074495EAEF378464062143D72EB2D30C01C88688559C04640F4894314E1F22FC0A8442441BEEF464050B19FA33F962FC0F89A7996F727474020A08E925E8F2FC098C8725CEB70474060429C069D6B2EC0BC1FC8B141DA474090736C7048302DC0608391E1AA004840BC08060AB62E2CC02494A2F23CEF4740848D8E92E6532BC048C8D5259C254840F4BA875871912BC014C638EF2A6C4840A0E41D55A82D2AC0707E5774876E484038F768D3C9F928C0402D9F55EA984840B8933CDAC31428C01C791D0792C54840C478B7EE8DF028C0
-mw 0106000020E6100000010000000103000000010000001B00000040A39BB8AD4741408C92D910400A27C0F45ABA3DD7234140D8CFA97A5F8F28C040A39BB8AD474140DC3AD673F5282BC00841D2881D74414074595B5F7F212BC0784F46634CA2414084C9FB3292C62BC0F4123C8CEAD74140AC9CC8FFDA382DC0C4E642C6CDE241404489431431CB2FC010F0196A66AB41403A70CC34811B30C01037FBE453844140A69FC5FA21CD30C01C4AA92CCE304140869928C4FD2E30C04C3C35525527414034BC137E10F52EC0B86591E1424241403C3DFFCF04072EC0C8FB8D44D53A4140E032C562DC392DC0D8E97C334C08414070605B5F4BB82CC05434FBE414E540400891F15B56E72CC054773F29659B40404CA19FA397F12BC06C8016CD15584040DCDF46B1FB6C2BC06CD66B22F27E404048D4A97A579129C068F253D738A74040743E4A4E1EDF28C0FC541D07A18E404020FDDCADE23627C07C662E185CA8404084E12E66D59725C09485B3032BBE404060E9050A160D25C0BC06021F9E9D404088B50C447B5A23C030B7E63633614040A04E4314117622C0F88CED70AFDE4040000CFFCF94D522C0F45ABA3DD723414034BDA97AEB5124C040A39BB8AD4741408C92D910400A27C0
-ml 0106000020E6100000010000000103000000010000004C00000090850A956C5728C088AFB6B1D13B2D40402DB53F1DAB27C0E009A93D23992D4020BB7735085527C0100FA93DC3C62E40507E0A95BCB226C0C85DC42590D22E4050376387344D25C040AD7C44F7432E40309C6624772C24C08871726D35A92E40E0E3E4D5876623C0684BB31439872E40C0B24ED9B81923C000BEF01E16F92E40E0AAC271A62616C0E8B3197BDD002F4090405C0BD84215C02C9CE5AFAC333040D0768F3E3FF415C0ECCF18E33953304070047B906FE217C0480F12A90DA43440C0EA586EADD019C0B8998920E3F43840A0EEDD597FB113C0C4C2E5AF7DF93840805C395D06CDF8BFA4305D27ECCA3640000205ADF02BFD3FB034D1015E9C34400090BCC3E87C00400899376869243440C0ED9D3EFD770540ACAF82E631DB3340C0F3C69A5C2C09406C26FA5D8EB13340C0DF1853DB4309407864A16BAF0E3340400FB268D61111408CD5DE75BF273340A0C7D0EDB1141140541D97942BDA30400053454C91C90D40A4246E382D2F304000B30E7C271B0D406806D299E0222F4000DF8C2DFCFF0540400FA93DADD12E4000D2F39B1F2BF63F783705CDA9A52E40801E5A02A640F03FE8306896B5EF2D40000272E03BFED73FD874ACDA99DB2D40003040045C0AD1BF90070C073FD92D40006F5335E181E0BF40090C07793B2E400007062AD30FF1BFA81580E197F22D404076BBB31E0200C040B98D55361E2D408046EB49DB8801C03838DC702A7E2C40C0166D98D6BD07C0D01F2E29A7982B40C0F5AD3F64D408C0B079BDEB20152B4080F39C2EB32E0CC0F888CEFCE1AC2A40A09D364C8B0610C030C43B9DE9F12A40A0D5697F221F11C0F8B02A8CF6742A40C060F2076BB511C0705C0FA4D5152940E067B89A3EE214C0A069BDEB7E6D2740B0718F3E97CA14C0A0C9861B13C0264000FF17C7DBE115C0A08142D70CE7254000BD70B90B9E15C08042D536D1BD2440A08DA04F884417C0A8B84CAEF2712440F0279DB2A93318C0E06F6B3356312440F06EE1F625D218C0888BB6B1510C25400074E1F6D1F919C0F053E64796D2244070A3DABC74AA1AC00843D53693DC2440F04DE830EB661BC040706B332A472440B0F1E493B47D1EC0E0952A8C624B2440700E30122E991FC0E8B5AF774298244018C4D3C4540F20C0C8FC90F2BE69244060C3368EB6AB20C0F86FCEFC57FD2440E0EB921D919020C0E8C72352CF952540B00B18098BD020C0C095F01E8AD1254070882CB79A3D21C04024B3142D9F254040AA4ED9A02921C09875CEFCC1452640700B1809ABC020C070D7FAF58BC926409097A0917B9221C0907BCEFC07A02740884D22E07ECF21C078927C443D2D2840D0A47735444122C0A0011D18BA9D284080F82F54BDA722C05079948F27AB284098FA2F54C52223C058BCD8D37363284088AB773530C823C0D08EDF0DF71E284008F9F5E6965424C090378AB82BB02740F01E1809BB2F25C07031504B13D92740E846D761DDBD25C010604911145B2840A8295276B71226C058C31241286C2840A8ADA0915B9826C058BBD8D3EB272840D0A4C9ED8EE926C018EB6ED056272840B86EF983230727C098957C44CFE22840A8FDBB7990EF26C0F808BA4E5082294018469DF4561B27C0081A2E294D482A40A0537498FDDA27C0902D3F3A1AD82A40D02FB53FF13F28C0B07DBDEB4CFD2B4090850A956C5728C088AFB6B1D13B2D40
-mr 0106000020E6100000010000000103000000010000002700000090850A956C5728C088AFB6B1D13B2D40D002820C4CA929C0C01146747D9B2E408097440219DF2AC09420D101150A3040D014BC79F4322CC0B4ADF6C0E64D30400853291A9A272DC0D8EF9DCE2799304000CC035B7F452EC02045F32358963040506D3A2B513F2FC0E8FFAEDF8C5E304034C85F8BE51E30C01C07E94CA6743040900A07998D7630C0880C23BA91223040CC4BAEA6B98C30C05C869A3184AC3040301EB5E0424530C09C36E212BE2A314000104106772530C0B8007572C51B3240C4F1BB1AC34130C0CC23FA5DC218334088FC92BEAD6030C0A0963768049833408CD6D365204730C03C390B6FAF173440645922814C8930C060AFE5AF5F913440B45B22813C1031C058C2F6C0EFFF344074DC709C5ED830C0C0B2E5AF54553540E036B53FB3DB29C024B682E6BA533540B05AD761CD3C2AC014B9E5AF6EC53640F02107F899BF29C09C9C60C4EA48374068388CE3DBDF27C040A73768E55F37404835EFAC57F027C04C7F0435F0EE3940E02C9DF4E45F21C02CCA82E68CE13940F0771BA6695E21C0389AB27C4F653B40A0EEDD597FB113C0C4C2E5AF7DF93840C0EA586EADD019C0B8998920E3F4384070047B906FE217C0480F12A90DA43440D0768F3E3FF415C0ECCF18E33953304090405C0BD84215C02C9CE5AFAC333040E0AAC271A62616C0E8B3197BDD002F40C0B24ED9B81923C000BEF01E16F92E40E0E3E4D5876623C0684BB31439872E40309C6624772C24C08871726D35A92E4050376387344D25C040AD7C44F7432E40507E0A95BCB226C0C85DC42590D22E4020BB7735085527C0100FA93DC3C62E40402DB53F1DAB27C0E009A93D23992D4090850A956C5728C088AFB6B1D13B2D40
-mx 0106000020E610000001000000010300000001000000AA0000004DA767E5F54858C02C3E5D27B8DE39406C8C7FF0CB6158C0503A5D27FDFD384088DE370FFD6C58C010891546B845384060D460ABAA7158C0A897C38DBDEE364077372ADBD47758C0684A45DCB7713640C14BD822BD6C58C07822868310E63540A4B878B6E45858C0C0C0598A38693540A625190A1E4C58C0C0C0F6C0ABA23440C2C88907A32158C02CA20E0C14E433406FB77836B21258C0AC3C45DC03523340314D7519A8F957C008C3CD64F9D33240E4295337B3B557C084CF413F0E9032406C8C1C273F9B57C08471B27CF5243240A8BE4F1A1D6357C040249794806C324034877FB04F3257C088C807D25B863240F4E5ABE9630257C08C36A8A55EB4324017ECE5161BDA56C0D85C67FE46E0324004BFEC5066B156C090B01F1DBC48334014770B5626A256C020B31F1D0FDE3340556997FBE49C56C078275D2720B534408ACFFDE1D49156C0B8EEEF86F6FF34406905CE0B7C6656C0D0DEDE7500433540CEC6C3B4CE2256C0B0208683617E35407A36017F23EA55C0B8B682E67675354094C8602B52C355C00843A8A5258B3540EA61FA84F7B355C0342A5D27DE543540572B2A5B23B655C0442123BA90D93440B85BC0D787D855C05466043562413440322C2A5BBFE755C058481C8084A53340CE952DB8F3DB55C084360B6FEF783340C1C5C3348AE555C024BD93F7450A33405D1B198A94F555C00C0FE94C834232400B827F70CD0556C0E8CBA40843843240983A9EB5331356C0A49871D5FE7F3240373E3B2C5E1F56C0104A56EDA07C32401AF01F444B3656C0F46C154619E23140F89ACA2EE94156C0DC990E0C630032402BACDB7FA84956C054E1EF8699F43140D7F3BC3A284956C0285867FEEDCE31408DD9D405598456C0F44D905ABFD13140A8881CE718C056C0B4A682E64DD131401629F02D25C056C0C4C9413F314131407207CE0B0DDD56C0CCA0E5AF8E403140A00331153AC556C0F0387F4921EB3040BA514C7D8EAD56C084D118E3FEAF304023DAD44574A656C0C8A082E684783040EE9F6765169C56C05CE129F4FC68304055CC60EBB99D56C0BCBD07D2CE1130404E905694DEEF56C0E4B6CD640A113040B60B6B02AC0E57C0D8D33B9DBD802E408B6E34F2940557C0380CA93D11212E40F0B278B6010D57C0280AA93D03A92D40DCCAC374930E57C05089F758E1132D401ACCC374015757C0A0366896193B2F40A2F51FC4027857C08073D5365DE12F40DC4B751944AC57C000A31F1D73333040659E2DB803D057C03CC8DE75D9203040921DDF9C6A0358C01819E3AA11812F4050B4DBFFAC2358C018F6C088994E2F404AE80EB3DE5058C068F8C08889D52F40A671977BD58058C0404DCAC7781B304076A22DB8A6BC58C050266E38E8903040547AD128A2EC58C014E6C62AC7B430402C156B82163559C078DA5250CB2B314014793432A16A59C00CF1009826A63140D2F0AB29C97A59C0ECD618E384EA31404A3253B7999E59C0B02534CBCAF931405CBF783610E059C080C707D2D34A3240BA74FAC4B8FA59C0B0C2CD64A2BF3240F9860B167D3F5AC058215D27EE5033403B095AF18D5F5AC01C8726575FF233407E095A31CF6E5AC09C18E94C216F3440D927DF1C75595AC0A84FB9B61E883440602B7CD30A605AC008D6A40820D1344000A6900154515AC0249D3768871335404A24422603515AC0D497FDFA0E6C35404D957F309A665AC0D870A16B03DF3540A73C8DE4606C5AC008137572E244364091624C7DD6815AC03C783EA214C636409E11941E3DBA5AC03C5045DC8CC4374037C478B696FA5AC05061B9B6858C38404CEA37CFB8195BC0ECA460C41C2C3940D4E79A18A7505BC090E707D2A2943940D8519EF56B5C5BC0041501982BD3394002A7F34AAA525BC044A0892064713A40361831154B735BC0D08CDBD819AD3A40A8E5FD2112995BC04447FA5D80293B400E6BE97306A95BC0CCC171D520DC3B40E612F76773CB5BC01077F323F5F03B406E2B42669DF05BC0FC128DBDCB773C40E4B767659B0E5CC050AB892054F43C408EEE378F65115CC044A9ECE94F443D4088B86765D0335CC02CA94FB367053E408C8C6EDF7B4A5CC0A8313B0571C93E405B93A8CC83495CC0C099A16BC42B3F40C02D42E6CC775CC04091CAC74E913F405C3819CA2A8D5CC0B40108D227863F4060024960B1B15CC00888F323AECC3F40C3D2B2E3F2BB5CC084CA3768BB643F402832DFDC5BB15CC004FF07D2E2E93E40E672862A21AB5CC02CD64879A5293E40D82AA5AF2E955CC038B226571CC03D401F752321B0655CC004B660C4C50F3D40D829A5AF235B5CC088DA1F1D80D33C40D78534F267515CC0585F0B6F39C13C400E15F767F6485CC00CCBAB424A693C40191FCE4B963D5CC0549B1546D96C3C40A077C0D7BD305CC0B4687F49BCC73B404E14F7674E1D5CC0A03E23BA9B863B4042AAF34AAD0F5CC008667F49F62B3B40C7795D8E74E75BC080E5CD64AEA93A4044BA041C38D25BC0384BD1018BBB39401DB3CA6E38BF5BC034FE52506B4B3940EE37B6C070AD5BC070173B0575D33840FDBCA152ECA95BC000904FB3704C384083307C13108B5BC07C6356EDFA433840F00D5AF165715BC0381D12A9A9CF3740B60620C42E5A5BC05C03C72A5B5D3740ACF50EB3BC5B5BC0B0EA7BAC822F37406AD78987AB765BC03CE2413F7AD136405B307C5302825BC0A0710435B5D23640830E5A71E2925BC024B5AB42546E3740387223A1C4BC5BC098A69A313F0038406D76C097EAEA5BC014385D27037C38401F99E279A60B5CC0A8B0D49E08BD3840FE4D640889095CC0FC9B89205A7839402CEB9AD83E135CC0C067B9B612033A40D40DBD3ABF315CC0C03CC0F06B523A409271862ABD5D5CC0941C9ECEA7C43A4039C0A1D230665CC004B9D49EB3A33A40020FBDFA54765CC0884997946AE63A40B3ACF3CACE9D5CC0D8F1A40860243B40DAFB0E7387C35CC0C8BDD49E04B93B40339CE239DDBE5CC0C091DBD856CC3B400A1A94DE80A45CC0A0B3FDFAD1BD3B40910883CDC18C5CC080229ECE701D3C40D5236B825E8A5CC0FC72B9B6EC903C405F09834DA3BB5CC0F8192AF48B473D40300349A031E15CC05877B9B66D8E3D40107BC097CAF85CC0AC761C80482E3E40FD6612D088105DC0FC19F08622D63E4046FA717C2D2E5DC0AC16B619C0A23F4011EDFD212D485DC01066CD988544404012930B1672FF5CC064C25C5B624E4040A6579EF542AE5CC0E8A3D76FCC5B40403A6C4CFD28B45CC06458593E3C434040323E53F784535CC0CACED0350205404038C4DBBF82C15BC004C060C4B0553F4035BBA1523D425BC01897043589573F406A68E9F37B0F5BC020D171D59B573F4026C1DB3FAB0E5BC0408B905A28C13F400E8CA88C7CA05AC0408B905A28C13F400EF20E3325895AC0E01F8DBD62663F40FF3F2ADB6B685AC0A87A1C8076153F40FF4C9E7564425AC0005A9794DEA43E40E690E2F92A2D5AC010E7598A291F3E40F9826E1F3F1D5AC0C8A3B27C6C923D408D41C71129FC59C0AC721C801E453D40DA1031550AC759C0C0D782E652F83C40F9793432B89E59C0CC3AAFDF8EC23D407C7CD1A8646A59C09C5934CB7FC73D4080AB6765493D59C018620B6F76613D40961BA5AF2C1D59C038812D9135B23C40240A945E0A0759C0788567FE291C3C406CF8828D47E158C0EC48FA5D3D8A3B40069CF34A33D358C05C9415460BD73A401A6523A147C158C0788BDBD8B75E3A40DB9AF30A5C8F58C0606B56ED5C0F3A406C8C7FB0EB6158C0ACAE9A310AD739404DA767E5F54858C02C3E5D27B8DE3940
-mn 0106000020E6100000010000000103000000010000004B000000C419C2B614F05540B6BA63950AA64840066640688E335640229207063ABC48403EED2BBAACAD56409E906ACF782A494080EB8E83050F57402C7DBC87AD664940AABCF886AB465740BC8693AB653F494004F12BBA718957408EC73A39823D494056EE8E8338B45740E455FD2EB8014940C2A7AD0819F45740DA2CA19F1DFD4840E4CE6C619F5058403A1B908EEFDC4840C29C392ED58E58406EC73A39113649402840AAEBD8745840CAD94B4A6881494022E51AA922B75840DEA8181710064A40005758B3D4FE58406248EC1D27D14940C0B04A3FED3859408A4B895428C24940CEA7739B2C845940ECD6AE1345A1494036DBA6CE60905940DA34DB0C5A41494030E043854CEB594048C39D02840B49401EF98E83C7275A407AF333FF3D234940E860F5E9BD785A40CECAD76FF833494010D6CF2AE2B85A409C1556211C2349409277A33190F75A408E14562198E548406237FC23691E5B40B89107862AA44840CA012CBAC1595B400CADEFBA7FA54840A0DD6C615EAA5B409A617109A8904840BEC621E332E55B40C635784361B048401243369174395C40B832DB8C93C548406863BB7C32975C409A893062C81F4940964F0D3593BD5C40362DA19FF3114940FC5647A215DF5C404C33DB0C10E74840BC955179712B5D4006599A65BBF148406A65BB7C460C5D402EC19D823A9148409C2A4EDC0EDF5C404ADA8537541148407C27B1A58AEF5C407C240469FFDC4740D6E36CE1C5135D40E646268B3CED474056E80998E9525D405876BC874ED947404C6EF5E91A845D40A628A19F8A084840D2DF32F475B75D409698DEA99FDF4740B6F87DF275F15D4012D14BCA26864740A8098F0373EA5D40708FA4BCA9584740D4DF32F4F4B75D40CC7759BE1767474070116627FD5A5D405E55371C1C5647401077CC8DF12D5D40DA3CEC9DB031474086BA10D20BFF5C401E5A710916DD4640E62CEB12769D5C408C3AEC1D7FAB4640FA24B1A5B05D5C4078846ACF89674640A6F07D72E81B5C409C69829A7D814640D4BC4A3FE4F75B4024BFD7EF108D464036E5A6CE4BD65B40F08D41738D3A4640F64B0D35BCEA5B401053D4D25D0946404CA89CF717F55B4038CDE8801EDF45407A33C2B64CC85B409CEE0A2313B44540AC958BE65F9A5B4094AC6395846F45402A27EB12974F5B40F0CD85377D424540FE39995AAAEF5A405A7F6A4FA23D4540DE450DB546885A4006BC74A631114540A4B8E775C23D5A401CFFB8EA77CC4440DC3936116D215A4062FC1BB444F444405605035EFCD35940CCFFB8EA27F4444060AEAD88507559402CD85C5BE741454050E71AA9223659407C3B268BF7544540BEFD652703E15840EC9318172943454084D20998E95C5840D834EC9DDB5F4540D01F25805C165840CC34EC9DE15C45402048810FCCF0574098E7D0B5E3A845403644E4D8A3D3574024D522EEE31E46407E6C406817AC5740DEE9D035192D4640185A2F57C45E574032142D45DC7C4640D8C5CFAA9108574024856ACFBA8E4640640577B883BC56405C29DB0C9EA446401AED2B3A7DA5564004AC29A81FDC4640BCBD95BD21BE564066182DC5AE714740E271170CF991564052D98537C6D8474094B45BD0AC365640668193ABD7084840AC5092A0E2005640FE226732BB4C4840C419C2B614F05540B6BA63950AA64840
-ma 0106000020E6100000010000000103000000010000003E000000801D062A7335F6BFEE25260B986E4040006ECF5929FEF1BFAEF58F0E65534040805FE7A427EDF4BF6AF1F257A621404080881E7DCEEE04C0223C7189130C404040095C87458D08C0ACB04FB378B93F4040FB3965132E0DC048B04FB325A33F40C02596F405860DC0C0CBD49E9EE53E4020A99915477013C06CCD71D54D803E40608ADABCF0F714C06CFEA4081D003E4040731B64163E18C078077CAC50BB3D4060817E2DA63C1CC00C11535048943D4090F969C1255921C03474B9B65ED73C40E05FD027C85421C0000CF0860BA83B4010054165BAA221C0000CF0860BA83B40180F1809FB9621C078102AF4E51E3B40587E1BA679D322C0F046FA5DA6163B40A895C9ED7E7823C00C2EAFDF66DC3A4028AE7735FC6024C00C2EAFDF66DC3A40685FBF163F1A25C0B8792D91A5FD3A40B0449DF4FCC826C05861E21228E23A4048A08F80BA6F27C0CCD8F6C0A51A3A40F8F4479FBF0F28C0F889DBD8E6073A401022A42E7E0029C0509C265726C538405005489F3FC82BC098D193F7E5B03740B81CF6E63C712CC09C79DBD8664F3640E8B98F80FC422DC0F092C38D66DC3540C824931D7D802DC0B8BDBC53278035400CF5BB1AC20031C0E00BD83BB56B354038403ACC3A0531C094F0EF861C6C3540949F66C526F930C0A42C5D27C0E2354064EC81ADD19630C024AC0E0C82283640FC24EF4D0D4330C0C8A09A31E9AD3640384E4BDD8F5330C0C0B648798C043740A86900BE18F72FC098123B052EB93740906B3A2B1DDA2EC0F4D7302EF05B38405824F6E6BC2D2EC0B0129ECE2F853840D0518CE337A62DC028CA1F1D811A394038C2C9ED129A2DC0D8BEAB42E2A23940206D11CF3FE12CC078762D9121413A40D08CD027308C2BC0A43A23BA6F9E3A40F06BE872A6472AC0203F23BAE0A33B40A882D027D83C29C0AC0DF086C6093C405858AE05BA6027C02C0EF0860D263C40D8544B3C4ACD25C0209D154607D53C4058A2035B97CC24C0C07856ED3C193D402894C9ED2E2123C094D8E5AFFEEE3D40D0D3D3C422A123C03C74E212802D3F40B877E1389DDE22C0EAF0F257E0044040C0A9146CF49922C02403046947484040302900BEA05021C0C6C35C5BC09E404040B877F3E09D1EC0D8D56D6C39D94040607BE1F671A61BC06C811817240E4140E0DC81CA34FA18C0BABD85B7AB9241406011EF6A50B817C040B84B4A47E1414020C0AA2684C614C08E706ACFA9E04140E07EDABC305D12C0FCFE2CC554AA4140002496F4D51E0DC0047A41732EB34140C08481469ED504C0D05ABC87EC964140804C25B7FB5B01C078A29D028E954140802558E211B0FCBF4A0E3ED69243414000B11AD83ABCFBBFF6A97426B9F54040801D062A7335F6BFEE25260B986E4040
-ph 0106000020E610000001000000010300000001000000090000009EFE1AA974825E4000CA861BE9D42640A294170C8C785E40609EF01E94C8274060435FEDF69E5E4038C1AF77142A2740487792A0B1C75E40E031ED81D52A27404077922074C65E40588A7C44F55426408409F24CD0A85E40F03E9BC98C7B2540488069C42A805E40D8FE90F2CCE124406C792F57E97D5E40F89FC7C2B6CF25409EFE1AA974825E4000CA861BE9D42640
-ph 0106000020E6100000010000000103000000010000000E000000C4F4A6CE29605F40286A20B54C532840C43C884924725F40B829504B9D172640A45A0DB5C2405F40F0A664F9769F2640849BB4C218425F4030D7972C9EF3254040132CBAC1515F409875086AAAB724403427DA0151335F400877A5A0F44424408CF00998A6305F40488EB6B10DAD25405475F5E9611D5F40F0C1E9E4A4C72540C40E8F835C135F40408D7C44A1FD2640D84C995A06395F4020ECA83DC7D42640145770FE30385F40B05C4911A09627406C90DD9E12115F40C88F42D7921D2940BC38EB12894E5F405822A2034A122940C4F4A6CE29605F40286A20B54C532840
-ph 0106000020E61000000100000001030000000100000006000000967BCC8D5E355E40203F8AB8B36829400EB5392EB3145E4048E65DBFCDEE2A40A2267738874B5E40B03E504B01DC2A409EC010D2C0615E40F0DB2352A1232A40D40E2CBAC7505E4038B201303F692840967BCC8D5E355E40203F8AB8B3682940
-mz 0106000020E6100000010000000103000000010000004D00000040A39BB8AD4741408C92D910400A27C0D8938AA7FCA74140944D95CCD7E026C0DCC2836DCD414240D87F2BC91E7127C0F4AED525386342408C856536673027C0C42E870A53BC42400807B451332327C030038E44F0E9424030D1801E9C8926C00453A92CBA36434010F0050A069226C05844981BB1C243400C536C7030CB25C0F82376F98528444084AD98695AA224C08C9116CD3B3D444080883CDAE78725C0281365E8F7374440C04221F2FE8527C0986FF4AAC8474440AC7D5425424729C0C4BA725CC04C4440C47DE04A69672CC0C4F142C642634440885C21F22E622DC07C1D3C8C163D4440E41069D305D02EC0E4C349006D0B44401EC28453CC1930C08899ED70EDB94340D8C484538CB830C05C3B5EAEE8444340A24B70A5DC1931C000BE4900A0B44240F24636381C9631C0E04A0CF600244240BC5C4749E1A832C01021B066C0F24140080F2C619ED732C0B07B3F2965994140D2BCD60B858D33C0A4BBE636A8644140FC7C2FFEB4C833C0DC214D9DD7594140C05336383E7F34C06C0E9F558B964140AEF0CFD11D4135C034012B7BCCAF4140BC077E1941D735C0D4ABD525A6AD4140240A7E19276336C0700865E8E1C741405ED2ADAF7F1F36C0741976F957C44140004E25271F1237C0349E614B96AF41402E7247490D8937C06C837996C1CD41405C131B50E1B437C07C4CA92CB8BA41400A56C25D631F38C0988516CD368541409EF4F82D757A38C0E408021FA01B4140E8C2C5FAF9D038C0349227DEB08140406E841EED895B39C01C0C3C8C8D494040A81FB88631BA39C024B0ACC98654404038A306A209263AC05484B3033E7540408E7AAA1243373AC01C4A4663416A404012B0DD4500BE3AC098079F552C094040CAA506A2DBBB3AC0900467075CFC3F401A4B1416B24A3AC050CD969D78D63F403C31C997E4D739C090A09DD79DC03F40B2066D08FA7B39C0F874A4113BEE3F40A6421416925E38C0F095C6339FAB3F403AC16231B2A837C0A0C35C3000313F40FC4688F0624036C004DF42C65B1F40400CB66231D21D35C0E0C0BDDA1C414040C02D77DF316534C0042BC17772544040A20EF2F3E54D34C04C652E18E86240408ABDD60B31B733C0AC20EAD3554E404042F643AC5C6B33C03C98614BD3534040962914160EAC32C0D057BA3DC86C4040265DE47FA3FA31C0CCBA836D7F6C4040BEB37342A1B630C0906E05BC032A4040A4CD5BF75E6430C0E0B8E8551FDA3F40DEF21A50C55130C058BB858CF1A23F4004FCF1F36D1230C0487F18EC4D2C3F407C11CC9CCDB82FC0A0184FBCC5563E4064CD8758FDC22FC0A09600A135463E40047F09A7FC032FC0E0A3747BF22D3E4034534A4E9A972DC054773F29659B40404CA19FA397F12BC05434FBE414E540400891F15B56E72CC0D8E97C334C08414070605B5F4BB82CC0C8FB8D44D53A4140E032C562DC392DC0B86591E1424241403C3DFFCF04072EC04C3C35525527414034BC137E10F52EC01C4AA92CCE304140869928C4FD2E30C01037FBE453844140A69FC5FA21CD30C010F0196A66AB41403A70CC34811B30C0C4E642C6CDE241404489431431CB2FC0F4123C8CEAD74140AC9CC8FFDA382DC0784F46634CA2414084C9FB3292C62BC00841D2881D74414074595B5F7F212BC040A39BB8AD474140DC3AD673F5282BC0F45ABA3DD7234140D8CFA97A5F8F28C040A39BB8AD4741408C92D910400A27C0
-mm 0106000020E610000001000000010300000001000000460000009A04A094C5E258407C4045DCC42F3440E88FC5536BBD584040862657C3C033401EF28E033D905840502D34CB4CB5334060E7B7DF0E7358404C81265788A03240EC83EEAF0E5858405C5E04350872324056FF02DEFB765840D075ECE964913140A636D3C7999F584048BACD647CD63040FAB1E775D0B9584044CF18E3852D30401600035E64A258408030CB5FF39D2E40E0F8C8F04A8C5840D85727EF553F2E40BE92628A929B5840189B086A7A3E2D40C074DD9E41C658401894086AAEA72B408EBCBE9991CD5840703616DEE0892A40E64B810F91CC58404884CEFC079C2940DED4091896E55840B07F6B3318C92740D633369170C25840B81E79A7CCEB254034E8B75F6DA35840F859BDEBACDD2340925F2F57429D584038B9AF77BC5925407ABF5B50EEB0584018A864F9F0E126407E888BE6699B5840F0570FA4E3102840F2174EDC9CA05840C86BE647A83E2A40E2E07D72A186584030B18D55EA472B4040FF025EC67158402022F4BBB0AC2D40E63FAA6B36665840DCBD07D2BE193040D4A510D2874A584008AD598AC1ED304032F08E835E205840505C3EA25F6D304032969C77A3D7574068265785C46D2F4084848BE6BCB35740A064615C5E9B2F404CFB025E158C574058B3302EB6093040F23F47A224A2574070296E38F946314046023DCBC99457409867DBD8A8363240945DCC8D9F62574078D6DE75D25D3340206169C4726A574028235D271ABA3340361C258002455740BC5DCAC7EADA334084C96C6196175740F434D101BFAB34407466A33168135740E49E3768B979354006FD9F94BE2957403464CAC7F452354086114EDC0D2B574004753EA28E0A3640A4717AD5A14A5740F48D892049473640F4114EDCDB435740C07E780FFFB336405297392E5352574060A29A312D0B374076E2B7DFCF545740348815461C1438401A134EDCD486574048355D27CAD93740C8A94ABF5EA35740307DA16BDCAC3840064047A29BA65740682DE94C9929394008A7AD08EEC9574010F77BAC55003A408E69A331FCC75740BCB8D49ED5923A4012B621E3D61A5840E0A38920BC433B40B6F7C87093485840F0E3302E72153B401035D3C753435840300CF086F5B23B4008323691C3595840C00219E3EDE13B40D20F146FEF545840A0374C16F7423C40A209DA015E7A5840906E1C8000563C40D8AD4A3FC28F584060D282E649BF3B40786DA331B1AB5840243B868341823B408EE17DF292AD58406C45FA5D58BE3A40A8A0D664FFAA5840502D4C1630EB3940383970FE5F6E584034EC413F69153940D2F42BBAB36658400CF85250BCE5374030C695BD41AA5840FC2B86833310384052A4731B85B95840A8460B6F89243740DEE51A290CE258402C720435F4F236402CB921E36ACF5840C478DBD8491E36409853BB7CF1FE584028EBB51931BE35402265CC8DA81A59405CEAB519108F3540542FFC239A4959405033979498D935406E400D35854B594028DC413FC36F3540143C70FE0F155940BC7915463FC9344064612F576C075940D4969A31F86A34409A04A094C5E258407C4045DCC42F3440
-na 0106000020E6100000010000000103000000010000002C000000C085F96650583040CE6288F0A2933CC01050717F21342F409AE473423DD23BC060A5630BC36B2E406A1BE1E248173BC080284F5DBBFA2D40564A14160C1E3AC090598290867C2D4044CCFF67966439C0F0716A45F8D02C4004B151205FDA37C0B037FDA47CC52C403CC0FF671AA836C0D0DD0A19F3832C409079BB23781C36C090D3D0ABBEBC2B40E6361416F4B235C0308E299E7AB42A40D692400F72DF34C000646A4558A729401816C99754AC33C020390EB69537294086A9C5FA9B0B33C0D00FEC93FF962740E8ECA675B21132C0A06441E9E877274018AC9C9E484D31C0C0A9E8F6506E28402226B14C961C31C0B0930042CFA02940227EA3D8FBF030C0E01078B9BAEC2A402896EE56A1F830C0E0A8D7E5F31D2C407AED43AC626C31C090D6D0AB5E6B2C404E0F66CE645A31C0A0CB033E68433240403188F0584F31C080D53DABC8F4324022C6E71C02CA31C0489F969D8E60354008A862313EEE31C03074636A0D373740303288F0EA8531C080331F26AB0838403A082C61BC4B31C0D84ACD6DAEAE38406E945120795A31C0F815FD03B3133940A89F28C42D9431C010270E159E153940D0CFBEC06CA931C0403282EF4C853840AAAE9C9E1AE331C02875C633A5373840B4E8093FACE331C0785A7BB5399437401C32EBB9004832C060F2144F653237404259474979DE31C03822E5B8B0A735407605F2F3193832C00030F6C91FE93440127D696B914032C04833930092E13440DC1155BD77D035C0781AE5B83CE53340D47B585A62D935C0989FD00A51E533406AE14AE68DC438C0E0E3144F0DE53340B8025CF70A763CC0A861636A8B0033400A166D08F2F83CC0B06200A1037732401E0C9664A30B3DC0C0663A0E0ED63140466E5F943BDB3CC028F4FC0333633140C23A2C6194C83CC0803E7BB50B38314064247E191F5B3CC040EE5FCDF2D230403AFA218A08153CC0C085F96650583040CE6288F0A2933CC0
-np 0106000020E6100000010000000103000000010000001700000090E3F14CB507564014F5A40865E03B40AA79EEAFC20256405015C72A21723B40B62E70FE2F0B5640446BB9B676CF3A40A00514EFDA035640D821D83B246A3A402E7C8BE68ECE55406458A8A5DC653A40E8EE65A78F8155406082043588A13A40D81DFC231D505540B871F323E8B93A40DE2A707E332B55408099B27C223C3B407AAE5BD078D354403CF6413F505D3B40BAF43CCBFF7F544010880435ECEC3B404E2A0D35A9435440705A6E38856A3C40E0994ABFA8055440E0EECD6462CB3C40F4A7BE99821E5440D8337572D8BA3D402C9410D21E47544064F86A9BF82E3E40FE23D3C7A6615440A0F2302E376C3E40DC879CF7F5945440B4910435821D3E4032F63C4B93D5544058DD1F1DB7763D40B8ABBE1989F9544054B02657FA513D402420995A030F5540289D154603D73C40388E39AEBE40554040C571D58CA43C409C401E46B1745540D4AEC38D1D343C4062CAA6CE16BD55407C586E3869F93B4090E3F14CB507564014F5A40865E03B40
-nc 0106000020E6100000010000000103000000010000000D000000E8BC4CADF5B864401886CC347B1435C09C645A2133D36440745CD36E34B335C0F2D83422D7E36440FE492527F52836C06C20165DAED76440EEC539D5646636C0E4B2754912C664407A80F590342136C03E0B68152EAF6440A0A017B3FAAD35C01ADBD1D88D9A6440981CC9975A2635C0A82C8A37608564409C9EB4E9DA7134C098C9C087F280644036E8329B0B1B34C02682DF0CB88E64402C007E19B91E34C0D84B0F23A4A06440BEAFC5FAC17534C040A89E65B8AE644082F5093FCECC34C0E8BC4CADF5B864401886CC347B1435C0
-nz 0106000020E6100000010000000103000000010000001E00000000E8A8BC5E3565406229E8E814C745C0FA36C424CC5065407CCFF55C0E8445C0CEE8A8BC006465401727E8E8A14145C0CEDED1183B7265404E668FF63AE244C0A4B2D8D25B7E6540CA3C3367D8C144C04875CE7B1C836540300F3AA1617A44C05ABDAFF68D9965407EC658263A3F44C09E7C08E9A6A0654030BD8182A37544C0AE6BF757E9A76540ECC4BBEF7EAA44C0AEA2C741ABBE65400427851F9E7644C06A02F43AECC76540F227851FB1AC44C05654ACD9F3C76540FA103AA18FE244C02254ACD90BBC65408B37F9F9D81D45C01AA901AF20A7654001DD69372A7C45C05ECEC087C2966540652C851FA7AF45C0A0429B4890A265404BD1F55C3AED45C05664BDEADF896540A0ECDD11CFEE45C00223165D7E6E65400AEA40DB0A1F46C0741F79A6EC656540BC924E4FD47246C07874CEFBBB5365406D0CC6C657F446C07814A2029B3A65407681A0078A2D47C056D3FA74A22A6540AAE1CC00145247C07CE06ECF290D65402A078C595A4F47C0B8DCD19870F86440E1439630252547C06083DF0CA9D56440CA54A741261C47C00A7908E94AD06440C2E6066E25ED46C0AE6B944E7CE164406B63B852338E46C05832276EB8096540AC018C59DE0F46C0BA6C948E611E65406FFA51ECC8F745C000E8A8BC5E3565406229E8E814C745C0
-nz 0106000020E61000000100000001030000000100000024000000DA66BDAA581C664090628FF6710844C0CEC24CAD41106640F0F98B596A4D44C0447E08E9650066404C3C336712A544C0DEB77589AAE765403D4E44781AD844C0C21A3F392CE26540B6C11EB983B644C0467331C5D4D465402FF1B4B512A444C0384738BF48E76540B2A7D33AC83A44C06C106815CEDC654094F151EC57F443C0F0F71C975EBA65401CF4EE2222C143C03202F4BA45BB65400CAFAADEC39243C0585BE6C664D265401818AE7B1A6643C098B77589CAD76540EC0100348F0343C0584AD5F54DD66540863A6DD4C8B042C08213054C58C96540E4DCDD11055B42C0345BE64635CA6540254D1B1C754442C09A059171E9BA654098DBDD119D0F42C0667231C5BBA16540811A851F5A9E41C05A082E285A94654030235CC3B94341C01891B6B039A0654056DB7A48AF3941C024EAA83CA4B16540E431D09DCA8041C0A698F05D8ACA6540CE245CC3FBA141C02A28B39395D36540D5376DD4041442C03E70948EC5EA654070B81EB9C39A42C03A36276E71EB65408A50B8525A4342C0FE217966E2F96540C08788BC436642C0E0EE45F3ABFE6540A159F2BF16C742C0AAE1D1186C186640E81CE8E8CCF042C098A4C7C10A2E6640903196300AFB42C0FAB5D8D254406640D4184BB237CA42C090D1C0078C506640C6FD62FD01D942C07EE2D198CA4866408A69669A994A43C0F018A2020E3F6640BEBC1EB94A9543C04CAB01AF9F2666408EFDC5C6A89243C05641FE51141E664035618FF690B943C09CAE9EE50D21664028628FF6A1F043C0DA66BDAA581C664090628FF6710844C0
-ni 0106000020E610000001000000010300000001000000340000009A7845439A6D55C0D81F79A7482D264024D5D445BE8355C04830ED818FCE2640B649AF86A7A155C0706ABDEB1E9D2740C0167C53BEAF55C0A814CB5FB549284060730B96B8CA55C0084E9BC9A0EA284016D09A98C8EA55C0F0408AB8DFD12940F3326488ADE355C08075BDEB0C212A40F12B2ADB1CD955C0A8886B33FAD3294038BBEC1044D455C0D011F4BB28F829402162FA845EC055C02875BDEB340D2A406B02CE0B5BB855C05099DF0D27822A40800CA5EFF6AE55C098694911B4862A40FAE6E55653B055C090DE861B7B822B40CF31644853A155C090AB53E8958E2B403C3FD822FA9355C000C00130EF8A2B40CC0BA52F298655C00844504B8D132C4019DFAB69487355C0F8C39E660FAC2B404E97CAEEB66C55C010C59E668FEB2B4076268D24EC6055C058333F3A74282C401EFD3055954A55C0105127EF6FB52C40D9552321854955C0E0B5F01ED21E2D4095F993DE604355C0402D6896631A2D40D85FFA042B3B55C0A8AD197BBB942D402463977B7B3455C0184416DEA0A32D40461BB6C0922955C0004DED8167552D40B8C560EBC11C55C018383F3A443E2D40280D42269D0E55C0D035A2035E7F2D4000922D3872FE54C0B0764911B67F2D40E2D571BC3AE854C098A7DF0D99C22D409279E2F95BDF54C0B8FA972C54082E4028A23E096CC954C0E8EC2352DDFD2D40AC421250EDCE54C0C80AA93DBBCC2D40F84CE9B32FD254C0003CDC706E5A2D40F7349EF5A7CB54C038D9AF77149F2C40420C426666DA54C060CF750AAEF02B40CEAC15ED44E154C0E0A2197BA9222B40D40FDF5C57E354C0989B7C440D412A40C8AC15ADE7DF54C0280380E113BD2940C0AC15ED4ADE54C0B8EAD19992D62840A4CB9A1812E854C02068837E46A4284070B0B2230EEE54C048B63B9D47C92740850C42A6A7E954C01062837E10422740C646AF06C0F654C0602279A722BF2640F2B34F9AC5F354C07097F01EC2342640D28AF38AF5E954C0308FB6B1A5E02540909FA19248F954C048B6124124742540E63CD8E22B0C55C01824B3143F962540042CC791C71655C0805C837E9AFF254042441290132B55C000B6750A522A2640685C5DCECA3955C020F9B94E94E725405BCAFD61F56355C098BA12412A6F26409A7845439A6D55C0D81F79A7482D2640
-ne 0106000020E6100000010000000103000000010000003A000000C0D0C69A5C3C01407072F7585BE12740C07F0E7CB76A014040A88D5502402940805F0110BA62F03FD06C837E22B4294000F56FC007C7EF3F281FCB5FE7AB2A400044A513EF83DB3F5062D5363BFA2B40001C08DDDEEBD23F18BFC7C272E32C40000272E03BFED73FD874ACDA99DB2D40801E5A02A640F03FE8306896B5EF2D4000D2F39B1F2BF63F783705CDA9A52E4000DF8C2DFCFF0540400FA93DADD12E4000B30E7C271B0D406806D299E0222F400053454C91C90D40A4246E382D2F3040A0C7D0EDB1141140541D97942BDA3040400FB268D61111408CD5DE75BF27334020FF55D9D3B51640587B4FB3E8993340309E963E52252140085BF323CF903540B04B5934BFFF274054B5AB42BF783740106E077CB0292B40FCD86A9B5E0A37406002CA71A9492C40ACBE1F1DC57D364080F7B860E0B32D40D00E3B05EADC3640C0A700429B312E400C194C16FB4E354060C6E8F630F12E4080B1E5AF670C3540A0AE9D786BF92E40400C7572FCBA34406060E55976CE2F40806367FE3A63344010CF2264195F2F40C4BDF6C009F53340206CF66AD3992E40D07A89208EED3140E09E299ED67E2E40E0A41F1D97A03040A030606EC4F12B404071D536655E2F4040CD3375AE142B40602191F2F8BB2C408030606ED4E92B40E813BA4E4EFE2B4070BC852DB1E82B4028FDA83DF7B42A4020D3963E0A312D40A8448AB82DA92A40E06B30D8D7FD2C4090519BC902B8294040AAD7E5536D2C40A8EA3463A49A294060AD741CD85C2C40C0FF7FE1A1F7284020D86DE29EFD2B40F865E64752EC2840C0319ADB2CA32A40D816F4BBDA1C2B4000E8B860002B2A40A88E6B333A312B40302C3712A99A2840982DDC700A132A40C017C3373C0E2740306A491170A82A40C0CE7EF3ABFA2540301C2E294FC62A4080E766A8ED6625409828A2036C7E2A404097E8F6C83A244000E8FAF5F38D2A4070F84E5DC30C234090FFE2AAC3B3294090537B56A5072240C80280E13FA72940E0A207BEFB371F4068B5C7C2E2AF2A40E0522643AF521D40B8C7750A32322A4080F4D0ED21481B4010FBA83DED3A2A40602BDBC41DC81940E84CC4254CFC2A40A0CE5C13B1C5154008F434635ABB2B40401B890C2F79114050AB53E8B57E2B40403C4865896E10400043ED81FB0F2B40C032E9BCFEBC0F402037B31487E92940003D9704F0710D40A044C425161B2940C063F393B2E30C404051726D015227404075EC5905CA0640C0937C44A578284040C1DEE5DAEB034010E9D19952772840C0D0C69A5C3C01407072F7585BE12740
-ng 0106000020E6100000010000000103000000010000003A00000000150EB625002140C066EEB182161340208F93E332D91D40A03058B5FFA51140009D412B94541C4050ED1371D7DB1140400A1C6CD3CA1A4070975B525EF6104080EEA791BA971740B03BCC8FC00C1140A06D301A83731540B0803930488D1340E0CAF9496122144000502F597C7216400069A4F46B4D1140302F36932515194000F552C0EB970C409054F5EB7F08194080C8DEE59A88054000CC6C63070919400064787F14FE0540C04ED3C9A17B1F400059A1DB53CA054088D2A83D8103214040A78256684C0740008D2A8C74462240C0A7ABB247C3094048C6FAF567E32240C00A64D1BCA40D4018BE861B5D2024404052E282F1CC0C40A8F3B94E14AA244040072A647C600E40783BFE9230782540409C6034E6930C4030F2E2AAE7A72640C063F393B2E30C404051726D01522740003D9704F0710D40A044C425161B2940C032E9BCFEBC0F402037B31487E92940403C4865896E10400043ED81FB0F2B40401B890C2F79114050AB53E8B57E2B40A0CE5C13B1C5154008F434635ABB2B40602BDBC41DC81940E84CC4254CFC2A4080F4D0ED21481B4010FBA83DED3A2A40E0522643AF521D40B8C7750A32322A40E0A207BEFB371F4068B5C7C2E2AF2A4090537B56A5072240C80280E13FA7294070F84E5DC30C234090FFE2AAC3B329404097E8F6C83A244000E8FAF5F38D2A4080E766A8ED6625409828A2036C7E2A40C0CE7EF3ABFA2540301C2E294FC62A40C017C3373C0E2740306A491170A82A40302C3712A99A2840982DDC700A132A4000E8B860002B2A40A88E6B333A312B40C0319ADB2CA32A40D816F4BBDA1C2B4020D86DE29EFD2B40F865E64752EC284060AD741CD85C2C40C0FF7FE1A1F72840906C30D883272D40C884086AB42B284040DC6DE2B6EF2C4068B63B9D3BCF274040B6AE89ACD42C4030D2C0880D252740C00067A859252B40184D0FA4DD9825403091C6D40A9E2A40D09C64F91A522440C05C93A1CF552A4070CB972C0048234060D20A1933E9294078C9972CE6D52240C0F22C3BE181294028CAD1997E6F2140601A260110702840808C64F9949C2040C071188DBD202840C08006FD00331F40F0F403DFB9AD2740208EB44492961D4060384823D67D2740001DB1A7EFEC1B4040E7C971191E264070A6739DE4931A4060CA7EF3A7FE2440205F58B5AF381C4050341FC78E3C24403017773AB3271C406084741CA00B234020B484AE5DD019401052DE1F617722401062CC8F28C71940B0F14E5DDB83214070E08E852DEB154000150EB625002140C066EEB182161340
-no 0106000020E61000000100000001030000000100000032000000F0830042030E264042BBB54D966D4D40D073299E8EB62440F0110BA322BC4D406051188D95C3204098423ED619284D40608B301AEB311C40B8B27BE0180A4D40604D71C1D0A91640A48048AD484B4D40405882D2A13B1540B60497C8E4D44D40806ACD50E3F71340DEB7DEA949FC4E40A0BB745ECFA61740784FDB0CA74E4F404045A4B2581B21409ACF8CF11CBA4F40D089D7E52F0E25406B7D74401B1F504040EF2C3B79B72840C785AE6D4D785040407F41E9B4852D40DF4D418DE1F35040B00E82EF986F3040CF36F68E0B2451408073747B1C2F334055F74E0151745140C8B344E5DF603540DBCEF2B154905140489CBFF913063740999BBFBEEE8C5140B087D744EA8B38401FD38FA8F3C15140A0445993BB5E3A4021476AE91EBF51404008154F612A3C40BFADD0CFDECB514090D80A781D4B3F40AF05C3DB0A9D514068BE5C3064013E404DBA44AAEB8B5140F044AB4BE0193F4055D8C995B763514048A7AEE84A663D401D456AE90A4A514050A011B288973C404FC31B4E254451407820C396FC033D40435A18310E7151405069DE7E77BB3B40D9197123828A5140E8657BB5FB2D3A406F42CDB2D174514048EC033E70B0394085591831E5455140B8BB0A7855BC3840634BA45692295140D0200E157CA937406941CD320A39514030A0F966325B3640A5BF7E17DF3551400857B522B43E35402D4CA456B5575140702B599345A534408DF64EC1CC465140F8CF66077806344023CA553B2B44514060434148E9E03340416DC6780F1A514028E988296EFE31401718712350245140E0FFD3A7ABBA31405F2FBCE1AC005140D8F4993AD5C43040AF4AA456E40051404047EF8FD41B304065FB886E5BD35040204F0EB681372E404F1CAB50688C5040F01B4F5D831C2B404F406AA95E32504060C65CD1FDD62B40B13593C5811C50404089EF30D2242B40DF6B63AF240350401032D448ED282940D7F788EE3C0450400011EC9373DC27402A13D1B56C904F40D05530D8EFFB27404E21E24672E64E4080F866A825432940DE67C3C193A54E40E073188DC9992840F40F6E6C180F4E4020697B56C1EF264048B2DEA958B74D40F0830042030E264042BBB54D966D4D40
-om 0106000020E610000001000000010300000001000000290000000C66FBE4CB324C4080EB413FBBEC3840B411A68F2D6C4C4024597F49DE3D38404C3F9F55A4B34C40086C2D91EBE03740B0D3FE8187114D407808646178BF3740B0B916CD565D4D4048DB6A9BCF903740C0685EAE1A974D40FCA8D49E0DFE364044BB16CD9CB94D40D025868307A9364094A768856EE74D40BC3934CB9A88364020CD27DE2FE74D40E894C38D7E4F3640F8D99BB899B84D40788B8920ECB6354008DD38EF25A44D40705AF323136F3540409B91E1396E4D40A82CFA5D311D354078713552763E4D401C043B05D26D34401C443C8C64044D40CC7BB27C3F7B344014E40F93C6E94C4078993768353E3440A435C8B137D54C40DCCD07D26ABC3340F40C6C22F4E44C4060427F494C11334068B716CDE1D84C400C75B27CD8F132405CDF725CFC9D4C40E8B5598AAFF23240DC58870A094E4C404CEEC62A03933240A01E1A6A8F414C40706A780F4D163240201E1A6A4A244C402C77ECE945E031404C42D9C2ABD44B4054FCD73B56E2314040ABDC5F8DA24B409827D101DFA1314038D438EF2FA34B40A42C0B6F753A3140300DA68F3F654B407402AFDF60F33040742054D79F1E4B407462DBD8830B314028181A6A06C94A4080E9636129B53040D4FB31B5E58D4A40C0377F49ABA63040A0494D9D1E644A40A841B9B6885931403463355200004A4004316E3800003340144BB066FF7F4B409CCB6A9BFFFF3340A4972E1855D54B40E04BE21200003640DC03CFEBAA9A4B40A0BF1F1D55B5364024716FBF039E4B40E80F3B056A1C37400042D9C24EC34B40BCAE71D55D8637400C197D33AAC34B40F8ED7BAC00EF3740741D1A6A98FD4B4038B8AB426B21384038DC725CEDE64B402871CAC704453840B4F75A1170F14B4064A0C38DBBEB38400C66FBE4CB324C4080EB413FBBEC3840
-om 0106000020E610000001000000010300000001000000060000007CC18AA710094C40F0CA82E6320E3A4010B17996562E4C40480D2AF45B653A40B0A305BC2A3E4C404C73905A224F3A403C992E181A324C402C56A8A55FE53940788480D069214C402C227572F0B639407CC18AA710094C40F0CA82E6320E3A40
-pk 0106000020E61000000100000001030000000100000042000000884292201DCA52402299292807914240964D69C466F952400E244FE759554240AC4392A0570C53400C6A30E2FEF2414026F03CCB9875534046EE1BB43BBF4140FA068849CA37534074268954A7534140286CEEAF73F05240B485B54DA14041402E4F067B5F8F5240DE59BC87DB5F41406AE16527FF6F524024C65C5BAA2841404C934ABFAC865240A801673282B84040462DE458E69C5240B488EF3AE861404002D254968DD0524044956395B322404086AB95BDFA995240740208D250B13F40FE85D6E4F79A52407084F323D5FA3E40CA62B442D75C52408431D83BF6F93D407C2BE458B83452404837AFDF2AF63C402A311E46C5F1514094E7302EC6E93B404A9684AC74A7514080E493F73BFD3B40509F5BD0EB60514074A28920E3F03A401E4EA3B1CF8A51404033E94CEB7D3A40A4B409981A925140C0AAFDFAE3B839409E44CC8D0FB65140A86756ED1037394022C37D72C4C2514084375D27455B3840E8F3B025ED355140F4D7302EF05B384048DB65274E0B514010ACD49E24B137408E88AD0865DC5040A0871546E1F137406A1EAAEB4EC95040207DA16BE2A938405A4D4068DC9750404CEAA408D66C394006305833F221504000722D91AE3C394010F64900EE734F40A0F37BACE93739405CBC7996A9BF4E40AC9D265707143940C8B9DC5FE5EF4E403C7D67FE6E3D3A40288D466387A84F406CD11F1DACC13A408CEC725CF09D4F40F0E7CD6490373B4054F2ACC9B1604F4060A4892001613B406C4E3C8C295D4F409C374C1678423C40C0EC0F93CCE24E40CCE0598A07B33C40CCDAFE8145AF4E4008438683A34D3D4094B7DC5FE76F4E403C5DD10149D43D40981032B561464F4058EA93F78D513D40A4B6A2F26EC64F40F813F086E4773D4044DA02DE78095040D07956ED3F573D40C858B4426D1650409C1EC72A5E8F3D40FAF987C9FF425040E4C871D5E0783D408680739B2C9650408CD1AB4250E33D40A8CBF1CC6998504020791C8028BD3E402AE43CCB16BC5040303E12A90E4E3F40CEEB76B8BCEB5040D44B86839B4D3F40201FAA6BBBF25040AC8356ED3A953F40A02D1EC6A423514034ADB27C9BB63F406E9484AC4E3B51406C80B9B6C49E3F40088E4A3F5654514080252AF4C2E63F4096C41A29CD505140B2E71BB43F40404002EE7638FA6B51409CE57EFD808D4040764769C4B5945140AC349A65E4AD404014BB43058E7B5140889C004C930241402A93E7756FB85140FE2489D492FE404048FDEA9208CA514096F25521A92C4140887B9C775CC751405EE24410D75D4140DA0EFCA33CE75140FE64932B9C93414080A15BD0EBDF5140E09529A845D341403CA15B50CAD05140C85CBC878509424036F7B0A529F65140E6B94BCA454142400869EEAFE13A5240C220B230295C4240944B69C452845240D48AB5CD076B4240B20E5F6DDBA4524042C522EEAA824240884292201DCA52402299292807914240
-pa 0106000020E61000000100000001030000000100000034000000724A86AA6B7853C0802B884B24E51C405B704583C18D53C0D074CC8F8C0C1E404CF2935E779B53C0D04C5A22A51A20406ABBC374A78B53C020DB7FE16BA3204000D7ABA9DE9B53C0C0B2235281C62040C499A1D2D0A753C0C000A203AE6F2140F40ADF1CB3C753C0605F31C6FFFD2140D6714543B4E353C080A6124160DD2140DB3E1250ADF053C05858948F452B21400C9804DC860A54C058C33463A8AA204050D2717C7D1854C0D82C3800C9982040720CDF9CC31E54C0A0279BC93C2E20406ABDC3743C0054C0100F6629AA301E40FC0108F9B41154C0B0EA4307D4AD1D40A016B640F41A54C000D732F616161D40C687F3CABA3854C0C080DDA0D5E11C401270A88CCF4354C0C00255188D451F4044E4824D244C54C04077CC8F74971E4075EBBCBA3F6154C08048369391D31E406AA778F6296E54C090BAFAF5C9372040FC2C6488698854C0100DB314CD592040DB29C711059954C020E55685B09520409FA878367CB454C048DE1C18EC942040CACA9A1876B654C060DC1C18CC2520409CAFB263CFBD54C0180A16DE367320400B61977B71BA54C0D0D1A83DD7D82040A2A878F61AB554C088FC04CDA94021408A86561498B754C09001A203529D2140A4CA9A1807AE54C0484A837EF6D921406E8D908156BB54C048CDD1990E2622401ED5717CB4BB54C0885220B520F42240FC5223E1F4A254C0A06E086ADC21234094B5ECD0F98B54C0285020B5366A224014CA9A18498D54C0A0A3750ABCFD21400ECD378FBF7354C070D6A83DB7E6214031D70EB3B46D54C0C8AAAF775C1022402BB889471D5C54C068757C448D92214096E0E596A03C54C0285E31C68DB72140F68356D4662154C0080BDC70DE382240DEE282CD88FA53C0F091C7C222A0224088B926FEB0E453C090F790F22439234056BCC3345BC153C020A5D8D3191B2340867B1CA7BDC353C0A0339BC9BCE822402685F38A0EA053C0E8CC346346D722401625C751948353C088ED5685D67E224036397559B06E53C0282F9BC9C8E421409CA278769D5653C050C634634C572140179504DC615E53C0B0D2A83D6F0C21406F2E9E35864F53C0804C3693B9BD1F40A8CBD445975B53C0D06CF5EB5F8D1E40928ECAEE377053C030F3E03DE0D61E40724A86AA6B7853C0802B884B24E51C40
-pg 0106000020E6100000010000000103000000010000002200000024F0F3BA8BA0614068763470A36F17C008083FB901A0614010CC20FF1BCD04C0A6B3E92387D76140F01AF1682F500AC0AAB4E9E3AF1262404028B7FB2EE40EC0FE400FE3BD28624098771C25B57E11C0DEA03B9C8D3A6240C0383BAA888113C0A68553E76B3F624020433BAAC8DC15C060F05604BD74624020705DCCAA5518C07E5320F4837C62408050013DC0741AC03EFA2DA8115F6240B06DE9F1F9E21AC0248D8DD423666240B0BD2D36568D1DC0BC754256B582624074888758951620C0581D50CA7D976240B4E33F77963522C0845EF797D1A962405C6F6536932422C0D650833D88A862407843CF39600723C0A47D7C433DC162407C3021F25E5E23C00CDDA83CA4B76240D0DCCB9CF1BE23C0C69C01EFA6D962403028AD175E9624C0D284B63019D66240C89E8758592A25C0F6D2D198E8C06240649F8758114E25C0389C01AF08B962407C2C4A4E5AC924C04E5EF7578A9D6240DC574314D58F24C0666B6B72377D62406497EA21C94224C0A078DF8C556462409C98248F21FC22C0CC8C8D142C5262402023E78496E221C0BCF92D288D41624008B5801E842220C0160A3F39D017624010E44F5840851EC024F590F1B4FC6140F029F7654CA91FC08E4D83FD29E961401C059C06B17D20C0364AE6C63EED61402C08FFCF54F721C01C9F3B1C1CD461409C0E9C0655A722C0DEAF4C2D2FC261400825E784B65122C07C45495015A1614064436C705C3C22C024F0F3BA8BA0614068763470A36F17C0
-pg 0106000020E6100000010000000103000000010000000E0000001EF356047B1463402084802BA5470DC0A6AB75C9A3206340A05FEA2E12D70FC02C86B6307B246340E861D1A6FBFF11C0C8B54C2D791A634068D0D443D21013C0040BA20270146340D8CC0EB15AB410C056E5E229FE0C6340707EA98764510EC02459BDEA80FE6240B00509B44DB20BC06EF256044CEC6240C0CDAC248B4808C0EE09A2822FD562405015654390EE05C0106D6B3214DE6240701AD91D010004C0B2C2C0075CEF6240309FEDCB683D06C06A4B49903DFA6240102CD91DF1FF07C086C65DFEAD07634010BD61A689EB09C01EF356047B1463402084802BA5470DC0
-pg 0106000020E61000000100000001030000000100000016000000F65183FDA4E96240C8BD15EBE75C17C0B228276E24D86240A02142E4C55518C0ACCF34E2B7C76240A0DAC332614519C082F15604B8B66240B0880B141C4419C05A6F08697B9C624090E6D443AA1A18C028F4F3BA348A6240E8EBABE712FD16C0A294C7C1DB8C62402868FA0243C015C074EA1C978CA9624010C04F58C05516C0D05EF7D70EBB624040E40EB1A20516C0EE359B48E1BF6240F8D4D443BA1A14C0905B5AE178C46240E8C66069610114C07A3938BF94C76240C01E7C51FE2016C02A6631C5D6D96240D0BD4F58C8D215C07E5FF797DEE2624020706EDD6B7414C05A85B670BBF4624018117C513E0713C0DCE4E22936F1624080FCA4ADD5AB10C020D4D19860046340606945815C9810C06C6ACEFBD60A634070C8D4437A4011C05CF6F3BA320A6340E8F0592F7C7813C0824B491073FF624048CF606989E915C04222ED00B1EE6240B05C8628BA3D16C0F65183FDA4E96240C8BD15EBE75C17C0
-pg 0106000020E6100000010000000103000000010000000B0000008461F7D751586340C081E2B7245C15C0F642726C03626340E00ACE09654416C0A4460F2387716340A04C9E7378CD18C09E65948EA3806340F8E16069F9281AC05ACF972B297C634058246B40AD471BC082EA7F2033736340E0F2370D12AE1BC082F4560458656340E87E9739CB241AC096AC75895557634030EB0EB1729A17C0DC75A59F73506340F0FF30D3748E14C0ECD86E4FE15463403861FA02732B14C08461F7D751586340C081E2B7245C15C0
-py 0106000020E6100000010000000103000000010000002100000062C5C4F3AF574FC0041E2C61C03F36C022FB945D45254FC07E711EED370D35C088D5D5040B224FC01CD2E71C848334C0B4417658A6E44EC07E75F5903CA233C0C0B88A8693054EC018EF093FBE5733C0B21954B6B98E4DC04EAE62315E5B33C0202C02FE7B174DC02E84696B4FDE33C0BE3976584C154DC03093DD453C2D34C07E9FDC3E72EF4CC0FC87696B91BB34C036FF08B8F4F74CC080B328C4151736C046C6384ED5704CC0D02BA03B3B4836C024BB61AA953C4CC07CB328C4171636C0E226027E23E64BC0401455BD5F5B36C03A1C2BDA2ACE4BC07E0444ACD6A736C07AF66B0142C24BC0B064D36E6E9237C01A7180AF4BB34BC0DC7A81B6F9F437C0E2091A4992834BC036D71079530038C0A4057D1290534BC06C28C997EED637C0E03EEAB27F254BC09CF2F82D610538C0D02DD9A190254BC0F8801EED1F9238C048279FB4E7364BC0CA5388F0842939C0D6AC8A8609504BC0D4A4A3D83FBD39C080C8723BF7644BC09CC0EE562D9F3AC03A862E7711D94BC02083474949633BC058B4273D4C3E4CC02C76D36E6A8C3BC0AE94059B0CCE4CC04608339B59653BC034B2ED4F204F4DC0E80D6D08AC1F3BC0663FB0C51BD14CC06C3AA03B899A39C0FE202BDA7BE34CC058167E198F2939C064454DFC4F674DC0AE88585A7EC538C0DADAAC28B5034EC038B5EE56650838C0D2D5723B5C6C4EC030252C6176E137C062C5C4F3AF574FC0041E2C61C03F36C0
-pe 0106000020E6100000010000000103000000010000004C000000B60AB680C96551C0F41DDAA87B9431C0CC3A4CBDF07651C0227292C7BA1732C0266BE239D89751C06495B4E9145932C03932751904D851C0CE1EDAA817C631C0F2057C1392DD51C0DEFAB7860D5D31C0AC2D3B2C735C52C05671CC34FF5B30C064882D7839CF52C0D06BF89507882EC0C9AEECD0960053C048E10C446F4C2DC018F0931E1A1B53C0E8F157C278A52BC09BD4AB69971053C0A86D09A7F0112BC0A2202ADBCB4653C050953CDA077228C058F530D5E58553C0F8FF508863C124C016787F705DC253C08C39CF39ECC520C0DC309EF589DC53C0382AF7652CB91FC0DB3E1250ADF053C0C86B124E01C71CC04C3C7519662254C0E0F9ABE7AA2A1AC0857A7FF0FF4F54C060297C511E8C18C064E71F44493B54C05051124E21C316C0CAC5FDE14C5A54C050D3717A72F212C01AD371FC604654C068674581442510C0E47C1C275D1354C0907E1D62253D0BC0B60842E6C60B54C0800BCF46BD910EC065353BEC081E54C098FAA4ADB53C10C0B0ED59B14D1C54C0A8377517F1B311C0385023A1D90154C0A0FFA4AD656211C04164D1A8FFE753C0903B124E19D111C08ABCC37423CD53C0208CF3C825D613C0D60D7C13F4A853C0680D7C51EE3012C082889001D89C53C020DA9B131AFC0EC0765B973BA07553C040148E9F2F0608C0356BA84CAA2853C0C032876592DE04C0912C9E35E1E252C000789D8D5AFCF8BFE1391250F5CE52C000808CD3532AEDBF42A7B2E3E2D752C000CCA7C5C675C3BFB6FFA4EFD2C652C000488D050A4AADBFEE8ACA2E439C52C000B1F2397AFCE0BFD194A152D58752C0C04963209A0BF0BF0A505D4E356A52C08047B5D8F82AF4BF644F5D4E814452C0E0D23110BD7802C0A8FCA4AFD91452C0207BA24D477903C0F113F0AD95F151C070A872B7BA5B01C0702B3B2C79DA51C030F653320FBE02C0CAC771FC0FB451C0C0EFB6FB0E0E02C0ACE5F6A70D8351C0D0FC19C51ECD05C053721CE754AC51C060A268E066F10DC0D0DB1F04389951C0A0E072B7FA210EC01D1CC751317951C0A0A215EB573111C0E0AF267EDDB251C0D0DB828B4B0111C0DAB6602B72BB51C088525DCC3A9B11C01D4723E1E5EF51C0C0F9CD093D6012C0C84BC057153952C0509F67A3261915C028CA717CBA3D52C0B066C0950AF716C0A69ADBBF0F4E52C02088A84A545B18C006AF8987AE4752C0C016949C0C851AC00C3F4CFD5D6E52C0B096A84AA4AC1BC0902A9E354C6E52C06045B6BE2E5D1DC05C79B9DD2E7F52C050CA04DA66181EC0D3CA713C8C6452C08847431451D920C0E8AE8907FC4052C024F45088CF1022C03BFA0779824E52C0F031BE28A7EC22C0AA5597BB082452C054ADD2D6560A23C08399DB3FD50B52C090D7912F711B24C01EF807B95AD351C078823CDAAB2824C03E317559D79E51C0C8CB57C2F0FA22C0614286AA1DA351C048FB79E4AE0426C0CC933E09008651C0D821393D793F26C08A22013FE66151C000681AB849E725C04F4086AA902A51C0604684BB621F29C074F50739533851C05072E04AA9CC29C063701C67783B51C0F45221F292342BC0EABE378FBA3C51C01CA2026D43E82CC05FF9A4EFBA5551C08843393D09E82DC01CE8931E434A51C074F1E3E7DFA52EC0C98867E5F15851C0F07C6C70FC512FC0A24086AA6A3D51C07EFA54BD2D8030C0B60AB680C96551C0F41DDAA87B9431C0
-ph 0106000020E61000000100000001030000000100000021000000966F58B390955E40B478ECE99139324080BAD664278B5E4040A3E5AF6ECF3140289C517900A15E40F04356EDEF1731400E324EDC25905E40507AC38D2F433040080555166B6A5E4058C58D55AEDC2F406E64810F53605E40E091948FE73F2E40BE759220A56E5E40102191F220A82C4008F8E03B92905E4020946B33B86F2C40FC6F58B3E1AC5E4018845A224FAC2C404C6047A2D1FC5E40F063726D73902B403C37EB12BAF65E40707A5A22BD792A4024FAE03B9A0B5F40B0A453E8BBFE29403C2D146FF4045F4040D72352C71229408C25DA0113D35E40B0C3D8D3170E2A4092C5AD086FBB5E400010BA4E181B2B406E84067BF7AA5E40C84627EF255F2A40406F58B337825E40F0C63B9DA7912B400A9EEEAF16485E40E80980E1FB452B4000EC09983B285E40383879A71EB72B40E2F243057B2B5E4028BA2A8CC28A2C4060B29CF7793F5E402078E647000D2D40808CDD9E5F2C5E4000BB8D556A832D40B0E132F41A245E4038E4861BE5CA2C404CA08BE681045E40583405CD15F12D40A051707EF0FA5D4040E64CAE0CD02E4088DD95BD8FF85D40880D23BA1B5D304024D75BD055125E4064270B6FDD083040C8C2AD88F6185E406CED63615D993140DE7E69C4D02D5E409C2497945681324048D85B5090545E4064F163610A81324082FE1AA9017C5E40D09A0E0CF33732405A4D3691BE8F5E4090D2DE759C7A3240966F58B390955E40B478ECE991393240
-ph 0106000020E610000001000000010300000001000000090000000679CC0D4BA05D4018B4E9E4FCA12240B8D35B50274B5D40A0EC90F228BC2040F01B3DCB866A5D4078D7A83D3F2222402283A331C3985D40C8F4F3BB765E234084A2289D30BF5D40B064F758A9C02440EE46995ABCE05D40006A5A2245BD264008FC1AA923EC5D4030F21C18CC1B2540182BB1A5E2C15D40507942D7DE0124400679CC0D4BA05D4018B4E9E4FCA12240
-ph 0106000020E6100000010000000103000000010000001B0000003C44C2B61D985F4010C4346354D4204030E832F49F9E5F4050BD10D45C001F40741B662765A25F40007606FDECC11C4074475FED978C5F40F09F739DE0181940205870FE35755F40606358B5C32C1D40604D995A49575F4080A5D6665C251B40948E40E8B86B5F4030A64A41D9321840E4FE7D7260595F4070B2F888F2521640743E2500110E5F4010FA02603AA51840D48506FB13FC5E40A07006FD608A1B400C011B29980F5F4010274EDE43711D40502977B80DE75E4080B4393088551F40C8927AD5F2D25E4000062CBCEDAC1D4050065516D5B45E40F04A70005AD41D403AC110D278855E40504B47A402991B4086D5BE19E07A5E40A0D532F6BAC41C40589FEEAFFD935E4048832A8CE611204000C94A3F50BC5E40D0F904CDE9A12040086A1E4636DF5E4018C3972CD26221409C9D5179D5F55E40B85831C60B7B20409086067B7E265F4068D9E2AA3F072140908D4068EF305F40482F9BC9BAEB2140188469442B5E5F4098DDE2AA57F92140004AFC23605A5F4050D3D1994A852340E8E732F4408E5F40E08A8D5578922240CC17C9F09F935F4050646B33A29021403C44C2B61D985F4010C4346354D42040
-pl 0106000020E6100000010000000103000000010000002D000000E0AD3AAFB3082E404EF5337FA78D494000C9BF9AD5362D40F063D45262DF4940B02C89CABB5E2D40DE5D9A65830B4A40003F37120DE02C4024AA1817FB4F4A40C06493A127262C40A4C99D029A7D4A405089B5C3E5B42C404CDBAE13C49F4A4070E34486473D2C4078508954E6E04A40508DB5C3159B2D408654268B7D064B40A88C33D40C5D3040C85FFD2EAF414B4040A344E5719F3140AC1F5621FF6C4B40C0F2C296F09E32403237A19F5F574B4068E54EBC3DB23240ACD3D7EF27384B4038497BB51FA93340541BB9EA89364B407855B5226AE434407A811FD100284B40E84F414829BB364020B8EFBAEC294B40D8FCEBF2753E3740B084BC873B1C4B40583BF6C9EF7B37401ACF3AB9CCF44A405008C3960C873740A6B98CF12CBC4A409043303710CE3740CA7E1F517C8B4A40D024AB4B98CC3740F0B78CF175584A40E8DD660712333740D20CE246553E4A40B045CD6D0C823740FA04A8D906034A40A0C0E11BEE863740EEF296C80ACA494080331F26AD073840B03878C34A5A4940B0DDC9D039EC3740EADBE88062364940F018D4A72F6D37407845EC1D7D274940D82C1F26B98436407010B9EA06BD4840D0D18F63C3C63640D43BB2B08183484060BCE11BE28E36405468AB76F98A484068EB144F999B35406239157A2CBC4840F8A3D00A51E33440D0F4D03515AA484080D8A074746A34407CCF11DD39B74840C07911B234D333406A3578C3CA9B4840D82F30371A5233405E2F3E5629C94840E8A844E5D9E832406EBE00CCC9B74840D804D4A767DA32402081F67484BF48405828930096643240088930628BFE484080C5660742A631404671E5E34606494060A6E11BF88D314078C000CC5A2E494018FCD3A767DE3040B086932BAB3C4940281A59932FB83040BCBC63959D1B4940880D82EF1E2D3040CEF333FF1736494020296AA4163D304050A9B54D4F5949404082A4B260FB2E40227DBC0772644940E0AD3AAFB3082E404EF5337FA78D4940
-pt 0106000020E6100000010000000103000000010000002100000098DA479FD31122C0A8517189B6F04440E0B18846095821C0AEC9E8803D11454010DE1E43188720C04C489A65E6234540D0047BD2BE0620C0FA3CC3C13BE54440D0988F3EA7B01DC020FC1BB462E544402014412357011DC0F8BE115D8CF544407006A4ECA6AC1AC0404ED4D212F14440D0E21E016D8E19C040358954DFB04440E07644C08D671BC0AE6EF6F4378E444070F5F5A4C1741BC0D2AD9D025A2A4440B05E5C0B0C1B1CC02EF57E7D9E174440F0E7E49330441CC0842078431FDB4340003E007C99FE1DC0A6D896C895D04340D0DA70B963641CC092E16D6CD983434060C48804127F1DC07E6F3062C02F4340309C66E2FB1D1CC0E4E20AA3B20943406031C60E81AA1CC044A89D02E6E6424090564BFAFE251EC0AA143E56E6B6424060FC586E9DD01DC0688BB54D848C4240400A93DB256C1FC01C6C30624C6B424088E2BB7900C420C062958CF14B7D424028CF70FB36CC21C058C8BF24356F4240406E4402017E21C068BC4B4A5FD342406861D02714AE21C0561D784314224340104AE8722E9322C022B711DDE22D4340904F85A99A0D23C062BBAE13645E4340F05F96BADBE422C02CAF3A392FB2434028185276BB1822C0A25AE5E3A6E04340F01AEFAC67F421C094CFBF2464144440982D9DF4908921C07830EC9D5C614440F0892CB7EA9421C0A43BC34198974440202C00BE48FB21C08EC1AE1390C5444098DA479FD31122C0A8517189B6F04440
-qa 0106000020E610000001000000010300000001000000090000008015B7A0B1674940B8139ECE36C13840CC52C177385F4940783C5D27807B394004C4FE81B5814940A07F0435CA013A40E40843C6AAA44940BCF0413F551D3A401CCC38EF66CB49400C3723BA15CD3940FCD2725CA8CD4940B8DB302E363739406887F4AADEB14940203CFA5D9CA038402816B7A0638E494024914FB36B8E38408015B7A0B1674940B8139ECE36C13840
-ro 0106000020E6100000010000000103000000010000002C00000088D18F63E5B53640F2A9EFBAEBF04740D8D62C9A69243740323D4FE7540C484088028929CEC23740F09F181728FE474020351F26ED6638403481932BAEFD474030D455F6C6DD3840D879593E67DE474000F13DAB2E3539407AF80A230EF24740C87CC63329F23940BE6CE5E35AFE474060CCE11B8C323A40662C3ED6451C4840305A07DB8C9E3A401E4BC3C1401C4840B01A60CD96EC3A40E0105621C70F4840B8007818DF3B3B403A1056A1D3E9474040249A3A198D3B403E9B7BE0DAB34740901CC396C6203C40F436B2B0BD674740404282EFF6283C40C2C8115D8F2F474068B2BFF9EF0D3C40281D6732E8F8464030168929CA3B3C4004FA441080BE464008F6660706AE3C405418CA7BEAA64640A01D266054263D40C86348AD82BB4640004C1F26719A3D40703AEC1D8BA54640184C1F2665A03D400C33B2B08784464048023EAB40243D40F0C174A6FC684640B8939DD77DD63C40CE6C1FD1F9744640E05BCD6DDE8E3C40BE66821A8EDA4540684182EF58F83B40A074F6F4FEE7454090CD44E50D3E3B407AE9D0B586164640F0ED033EAE103A4010344F67C4F845408044F6C9BB9139405A74F6F41ED8454028C3E11BC61938407C112DC5DADE4540409A22C31155374080590E40D1F24540E8C41B89E0F1364016B200CC71E9454078CA55F63AA836408E75F6F4111E464020A4969D58793640C0DFF991613446402842CD6DAAB43640F2E633FFFB494640E881747B827536409CB06315EC5946408880747B24253640E0A58CF13C3D4640D021E5B8E08F35403CC511DD6C624640E8FB2560C87B3540AAB1639530974640A0C255F6D2DF34407CCD4BCA4BB5464010B144E51DC3344062017F7D06DE4640F0B81B895E383440DC384FE75010474098DE3DAB9E053540F2E3F99175284740104B414863A03540404FFD2E437F4740A0FE25608A193640A6057F7D12D6474088D18F63E5B53640F2A9EFBAEBF04740
-ru 0106000020E610000001000000010300000001000000780100003890392E14B555402C3A157AD0E9484098BECF2AA4625540B0A31897AFD84840AE80C55365475540B8EF96C8030F494084195FEDA51A5540B4B28CF1DB274940E030AAEBD8FB5440A0C100CCD2714940B033472283D854400225CAFBDA88494066B0F8068B7C54404C657109F667494064FD136F6124544024C69D02B5B14940948F739B4602544056B72928B06E49409E3E58334273534056C0C6DEC3B34A40A67A628A9C215340EA3CDB0CA8164B40000788C907395340DAE4E880C93E4B4076D4F14CA19852406C53268BFFC54A40B88B10523E5B5240407C821AB2BE4A401EA7F8868B6052403EAD18178F044B40DA645179580E52407288593E36304B406648694487CB5140DA137F7D0F114B4036A4F88660B75140945389D4B9954B405C27E4D85C445140CCAC7BE04FB14B407671628AD20A51409ACA00CC357C4B4090AF0918AE6A50401C821F51F64C4B4006AF09186D4B5040E4393E56572D4B4078C6503AE2B74E402A10E246CD004B405006F847317D4E400AE3E8801ED54A40C4E5D52599D94E40DA990786707D4A40CCA22E18B85E4E402CB15284285C4A4074AD05BCB0764E40863C784349394A40F4E1D525D8FB4D402420900EEFFA4940443EC8B143CB4E407625CA7BE6A2494024DE9BB830AB4E4090E322EE4766494028C3503A66F74D400CAD5204CD6B4940CCA3CB4E36D24D40EC34DB0CD1454940FCA0CB4E802E4D4002C200CC2588494038BC503A94634C40AAA6181793854940900132B5C4DB4B40DA2A0469944F49406CD9725C35444B405C62D4D25B834940A0484D9D132A4A4074C300CCFCDB4940E863D28821624940A2CDD76FACD8494014E120A4E7594840DC01A8D9744D4940DCF131B5F6494840A02CA11FF8EF4840449ADC5F55C64740D41C908E333A49407487CB4E346047400E8BCD9891AD48409C731D079785474038C19D0276934840D0E9947EB43B4740BAB8639573324840ACEB947E59A84740246CE5E3A0DB47407CE65A11540748409AD24B4A33DF474040771D07ED5848406E4FFD2EAE894740B85B3552EF4B4840E24A60F8CF47474034892E18F38C48407C73BC871D33474018A079969D52484016273ED634E74640D8188E4483D6474016B600CC1CD24640ACB3C4144D57474064132DC5FA4D464038DB836DA3CB47403C001CB480D445404C5935520BBF47402865821A487E4540A4E75A11CC4A48408051710989E74440F4B9614B5FFE4740287630E2F1B344409C9005BC67E847401E61829A61934440B4A016CDC8AF4740A82AB230209C4440F4943F29D1574740080356A1DFE944409CD8836DD5334740AE62829A2AEE444004071A6A61E34640CAFC1B34D50B45407051981B32BC46404E34EC1D5B404540E83AEAD3D044464020C4AE93225B45404CF5A58F31F74540B078306209474540848E3F29C5E045404472F674D35E4540488168857B324540D024DB0C339C454010B8D5250A7644407EDDF991EAB04540A8F3DFFCD90944409E36EC1DCCC645401CAF9BB83DFA43408ACCE800AEB745408042981B0A5743400A3F268BD62346407854466302C5424034957BE01F544640B0D731B5755642408233B2B0519F46409C91503A9BB342408A7B932BC7B3464018A1C414D11D43406EF16DECD41E4740D02BEAD33BD642408025A19F7B51474030EE42C6E69243408CE5F991B985474058BEACC9838F4340ECFD4410B6A14740143EFBE49C1C43407615908E148D47402C786885A7204340BA944173F0C5474050796885A2624340A076BC87ADE94740347191E17FDE43403AB4C65E10F34740C0A4C414A4F243403C964173BF1D48402C5946635BD64340DE9ADE295464484090A8614B570A444038CF11DD59A748405C1265E8D60844402E883062EFCC4840C8B90F93284C43409EA7B54D96F6484014B5725C5C01434016599A6534F548400C6C91E15CB24240E8893062253149408C008E4426504240089EDE29E01C4940E4BCE63695AD4140DA75829AE1494940548616CD5FB04140265460F8106349400C37FBE4D682414042B1EFBA919A49402813D9C2C61C4140D28B3062C4A049405CDC08592C124140289AA43C80C84940FC8A503A2432414048E285B76AE249406C2DC17758E04040A2CB3AB9E32A4A405024870A9E5B404070687109861E4A4020383552BE3440404487F6F4F3244A40441C4D9D671440400291CD98D7074A4008F6F22C37C93F4014F496C8030D4A40686C6AA43E8A3F4014F2F991FB5E4A40309B00A1214E3F40D62C67B278894A40285B5993657F3F40C885593E6E954A40A8CA947EFA264040888C932BFD904A405098614BC958404000F05C5BFBAC4A40748D8AA7EA334040A464371C1CCF4A4020AE11B234BB3F406057C3C1A2E54A40A88F8CC69ACA3F40FA8AF6F4C0FC4A40E08D8CC66C623F40D8026E6C1A144B40781A4FBCEDC13E404467371CE8674B408803043ECAF83E409CC02928708A4B4058474882B8DF3E407A659A6586C64B40B0B3858C73E53D40BC2156210DE54B40F8ADE8551F5F3D40E087BC87C5D54B4030EE8F63C13A3D40CCB4B54D8CF54B40A0C033D43C2D3C404A41DB0CA6154C4020AE22C3F3DA3B408C6B379C31614C40C0AD22C31FC53B407410A8D9439F4C402897747BC6493B40DC28F357BDBC4C40E03CE5B878B73B4042AB41F35CE54C4078F06607906B3B4056E7AE13BF5C4D40D0C3D00AB7213C405EDED76F81A64D403837AB4B2AFB3B4008C05284D9BC4D40C0616AA4201E3D4072F485B797034E40B048BC5CEB113C40B4C5EF3A73404E4040AE4B1F0B363E4008B441F3D7E34E40B007A174D6233F4022BC7BE0C82D4F40E0CB969D1E843F405AA53062106F4F40804A82EF2E093E4046AACD98C2C64F40006B07DBD6713E40534DDEC3150D504020154FBC5F8B3D407506FD08B73C5040D0999DD7B5373E409B3A303C95735040900FB285F90D3D400F6F632F6FBC504020C5969D38FA3D404D7300E6B0EC5040584ABC5C29723C40BF9285D15517514050A011B288973C404FC31B4E2544514048A7AEE84A663D401D456AE90A4A5140F044AB4BE0193F4055D8C995B76351400CC0BDDAFD104040DF345958FB795140A089503A43E34040C15918314A535140AC2C870ACA41424017F3B14A0F445140249116CD6B254440F5D9664CACFB504004291330A9874440BDF44E8141DD504088550CF61E9044407D08FD48A9B250405C2DEAD304314340DB11D46CF87F5040945D577497F54040113FCD329DB05040E0AD0F939C974040AD97BF3E7BA85040580A021F7570414005416AE9EA5B5040B03A981B1F904140DB874BE4AC2A504084A3FE819B1D4240E594BFBE000750401832244140B74240BBB4442AB94750409C2AB066601E44408DA6D04FEB285040F097503A34244440BD6D636FE96F50405C04B7A00C8245403D648C0BCA9A504030B99BB8204446409F01C3DB67B05040547D2E1865D9454013CF8F288ED650404491DC5FF6B945402DC6B80488245140746E80D0002047401D446AE9FF0F51404CFC42C6EFC7464043918591A4C050401C630CF665A64740A783117733C35040188B2E1815FB48402FEB771D2805514014932E18ECCB4A409D0026252B3C5140B4BD8AA7CC2C4B40410AFDC8991951404CDDD525FAEC4C4085DE0343A83E514090D8FE81CC2C4E40870AFD88992951404857B06667464E40C55DB56766765140002E1A6A83C04F40297C3A5308635140DC065FEDB2DC5040D51EAB90201F51406A1FAAEB59035140DB0026258E4A514048F8EA1213A75040CD4DA45676B6514050CA5496131151407574632FF5F65140F2E9D901E4455140AFD82CDFDA3E5240A26B8BE6A30B524041311F6BFC3452404287739B161E52409739F68EC5C55140C4EDD90124245240971871A35541514082C57D722D4D52409725E5FD6D1B514022062580204052408B09FD482DF050409AC37D720DDE51402972006676AA504034028849FA2152401BE6DAA628A450408237BBFC8F9C5240B724E57D15E85040FEE502DE18B45240DB3A9345E44851401CC67D7266705240EDABD04FF4615140741E70FEA358524025C61B4E58E951408C15995A5EA65240997563AF2F3952400AD98E837BDC524045780026490E52405887D66499E952406D7700E6CCDC5140084E69C432135340F9770066CCFC5140D6B5CFAAE7645340C3B50A3D19115240CCFFB0A5BAE95340617800A67C1452402CF43C4B0060544027DE66CCFFEF5140729A4A3FA6265440CFDBC9155F2E5240863047A2B5205440F361B5677C695240C6879CF7FF8F5440E71D71A36676524078FE7638EF295540C56F290294735240DE9DAD08A1B45540F1A996E2F57B524000D71AA99C8055405FEB3D306B9D5240544CF5E9ACCA5540757B00E673C7524016FFD901341456404F823A5336C95240023170FEA29056404F5D7B7AF5E85240C86740E8FF9956407D56418D6EE95240A2A54AFF24B2564075E2668CA6EA5240421A250028D356406597E87A51EC5240A6AD84EC1FF756408B1CD44C22EE52407E8FFF80221857407BD1553BCDEF5240943AAA2B47305740735D7B3A05F1524094DE1AA9A3395740A156414D7EF152403AC095BDFD4E57407D19373605035340563036910AF7574069833AD3F50853409C5D2FD7672B5840E53EF60E97FA52405C41AA6B0BBB58409FFE4EC1991C53406243AA6B9E3059405B57418D891B53409A95628A42425940974D6AE92837534086744068697F5940F365B5E7665253400AC9F88680165A4041A75CB5AA6C5340B25D58B343845A40857A63AFED57534014D76CE11E2D5A40A7E0C915274853409CB010D216BE5A4063954B24593E53409A95281D5CCF5A404D6F8C0BB81E5340C4F2B7DFD6095B4099A9F96B4B2E53400A3BFCA3FCF25B4021AD96624035534074CCBE19896A5C4009809DDC6D0B5340E4CE5B50DE315C407763B5E709C25240D0355FEDAD895B40CB51A496829E524054E4A6CE32A35B4095F1775D99795240680C66274B365C4035409345708052407614A094007E5C40BB0526A51266524006FEB75F6D995D40B12E82F4556652401AC54A3F99D95D4013914B643343524084D321E3D7CC5E4053E6A039283E5240AC5F47225BD85E40115B7BFA3C66524012F4CA5E19316040655A7B7A4B3F524070380F63E936604057AA33D95ACC51409C54F7D73B696040F5BA442A5EB2514032A8AF3620CA604067EBDA267BD851400E1CED80C885614091B16D86D1E3514096DB45F3029C6140732AE5FD33365240587D7C0300B06240050B6092CC0C524062DDA8BC3CCB62405B6D29C2CFE65140CCA43B1C011F6340A3F114D4E6B55140BA6DCE3B33CB63408D4A072000C05140A4A59E65EA166440873459D8E36551402E82DF8C74906440B7B944AAB06951405C9FC7C170FD64406553DEC34D6E51407CE16E4F7447654099E8DA2644355140C4C923516B516540059822085F8351406CF57FE052EE65404FBDE1E07D7451400872940E33536640E730BCA199595140F431ED00008066405FBCE160AC3D5140F431ED000080664015A096E2FA3D5040D64F72EC5C4F66400721E57DC511504026469B48736F6640BEBD7BE08B8B4F40900891F14D6766403A8CE5E3EC264F40A23AC4A45F2566409ABC7BE011494F407454AC19C6CE65403E1E4510E6FA4E40E4D4FAB4CC846540162D56A199794E40F20D6855514C65407E27B9EA76FA4D4094E7A83CD01C6540E062268B6A494E4008BD4C6D86C064406C72379C0BF14D40F0FF90F1417164404250157A31EF4D40CABA4C2DAE3D64408EC0EFBA8F144D40E4CFFA74366264407CE5AE1399F04C401466F797DA616440E614E2C661144C404AB7AF7695386440AA9F070687CF4B4000B4128003406440A860FD2E49744B401AB312C0CC0B64407E0D4510132C4B40A67FDFCCFDFC6340E26D0E40FA944A40A6BF861A1BCB63407881BC87B5604A407AAE750938C563407E64D4D2E0FF4940CE43726C2093634088C100CC5D6C4940E8807C43BD7F6340766A718958944A400E5BBD6AE06D6340229F0706C5B04B403262F75741806340EE42DB8C25754C401877A5DF4298634048D39D02AFAE4C403088B670EE9963405271D4D27FEA4C40AE0A058CC3C7634080E94BCAF4134D40843B9B48D204644098110BA34AA84D40F6C42391FE396440E49F306211314E4022857C036E75644048C0B5CD08924E408C4B0F63278F6440F8BF18177A464F40F25B20B4446864407607FA91AE3B4F407C39FE910D556440D2FEBF243DD24E40BA0B054C69046440067B710981584E404E4572ECAFEA634068AD0706BAEF4E407640D57515976340A8D5639531C64E406E31615B4A476340B26BFD2EBAF64D4092278A37355D6340DA9D30E240BA4D40CCAE124006116340565F268B897B4D4068BA861A029A62402AE274A6B7BC4D4052D36E0F120F62402A1CE2464DBB4D40986B08E9F3C161404A2CF357AA844D4082A0D8D2AB5E6140F8504FE7448B4C409E23C4640BEA6040C6B2B54DF97F4B4022434910491861404CD4D76F9E5C4B40305B948E6B216140A4050BA345F04A40AC39726C45456140D2DF4B4AA4E04A407614B3931C596140CE10E24602264B409663CE3BD97C6140CE1AB9EA46184B400ABDC08733A66140D60EE2C6A8B34A40DCDB457322AC6140FE2A6732901E4A407ACA34E298996140D44E268B9ABA4940E0C697ABCB8E614078A518171F404940E09601AFFB816140C40A1CB42D3948403A2CFE51C0516140101CCAFBF47F47408640ACD907476140BAB0C6DE6A2747406813B393981B61408ADABF245E924640F69064F87DF06040D67B306297FE4540F0E5B94DD2DB604002F2A759F8B2454008ECF33A2EB16040026F593EDE674540ECF5CADEFF9C60408ECE853735664540F0848DD4E5886040F8C111DD6BA445406A54F797F25D6040AADBF991C0464540F427FED1F5586040F6146732291C4540EAFEA1027B546040EC7493AB8F324540E4C434A2485460400C13CAFB95734540922B9B48A1646040D4314FE7097745409C54F7D73B69604066FAE146460E46408E9F7589CE6060401A66E5E3E57B46408C8BC741457C6040D055D4D21BA94640B8DAE2A91BA3604090142DC570924640403772ECA0B86040CC61AB76F70E47403090647898C36040E00E5621329B47408C4FBDAA06D06040AA721F510ACA4740DC892A8BD7E06040C4F90AA3363D48403630387FF4AB604032A752047B1748404AF22DA8369060405E7DF6F4FCE44740E8CB6ECF975F6040F816900E23E5474012959E25A25260407A569A65665D4840DA3472ECBA2C604008BB639565B8484098D1E7F512EA5F40184B268B50E148409CD484AC65D25F40626F48ADB15E4940B04BFC231BBC5F405C444F674CAD4940D8AA281D1FA45F409626CA7B62E44940088806FB907C5F40D8FF6D6C7A654A409038EB925D445F40BE4BEC1D9D944A40D04E369193E45E40307C821ABABA4A409E917A55BA8F5E4038C700CC42B74A4090AB628A32405E40A23004E92DA04A40BC58AA6B550B5E407A1EF3577F604A40D8A7C553732E5E40B6131CB413424A400EDBF8863E2F5E405419562168FB4940386D58B3A60B5E40AC8C306260D249400C739220E1D15D40ACDF85B79C4A49404643FC2376D25D40FA22CAFB4912494020A8628A45785D404E404FE767C14840BC955179712B5D4006599A65BBF14840FC5647A215DF5C404C33DB0C10E74840964F0D3593BD5C40362DA19FF31149406863BB7C32975C409A893062C81F49401243369174395C40B832DB8C93C54840BEC621E332E55B40C635784361B04840A0DD6C615EAA5B409A617109A8904840CA012CBAC1595B400CADEFBA7FA548406237FC23691E5B40B89107862AA448409277A33190F75A408E14562198E5484010D6CF2AE2B85A409C1556211C234940E860F5E9BD785A40CECAD76FF83349401EF98E83C7275A407AF333FF3D23494030E043854CEB594048C39D02840B494036DBA6CE60905940DA34DB0C5A414940CEA7739B2C845940ECD6AE1345A14940C0B04A3FED3859408A4B895428C24940005758B3D4FE58406248EC1D27D1494022E51AA922B75840DEA8181710064A402840AAEBD8745840CAD94B4A68814940C29C392ED58E58406EC73A3911364940E4CE6C619F5058403A1B908EEFDC4840C2A7AD0819F45740DA2CA19F1DFD484056EE8E8338B45740E455FD2EB801494004F12BBA718957408EC73A39823D4940AABCF886AB465740BC8693AB653F494080EB8E83050F57402C7DBC87AD6649403EED2BBAACAD56409E906ACF782A4940066640688E335640229207063ABC4840C419C2B614F05540B6BA63950AA64840FA89FFC009D755400A097F7D849B48403890392E14B555402C3A157AD0E94840
-ru 0106000020E6100000010000000103000000010000000F0000004820021F696C464039DAF271BF2554406C65A92C4A664740DFB4331967315440DCB327DEC3284840CF06EC372D325440588BCB4EEB424840314ECDB2EE20544004F331B5708C484029D01B4E413054407C5B981B17054940C1D3B804CF3A54408054C177EFC2494019D01B4EC82C54402405A68F6E914940452571A3062354407C80577497E54840CD6C525E961A544054E85A117C724840371E3776BB1554401C33D9C2A160484097E02CDF3A0B54408893A2F205CB47406543F6CEA6005440986BE3995C404740FD984BE4D20F5440A8D6E63646894740BF9CE89ACD2354404820021F696C464039DAF271BF255440
-ru 0106000020E61000000100000001030000000100000005000000F393131F3E7E66C0A744CDF2ADF551409CBB6F6E9A3266C0C106C35B4DDB5140A63EBEE9FF7F66C097E0030355B75140A63EBEE9FF7F66C0A31B7123B0F25140F393131F3E7E66C0A744CDF2ADF55140
-ru 0106000020E6100000010000000103000000010000000E000000918102AE993166C0A9DD03C3CC0C51403E3F5B600DDC65C0992EBCA1A7D35040A64E6C116F7B65C0D5D866CC6FBA50403A5BE04BC93C65C037DB03838B7E5040CA77C8C0ED8565C01BEFB1CA225C50405C8C7628258B65C001517B7A991C504000493244CFBF65C0B9E3DA2680195040ACE3CB7D67FE65C0EF628C8B224F50408CB198EACC3C66C0AF3DCDB2FF5F5040FEA7C146D36466C02F450720768750405C6E5486A27B66C0610D3776F2415040A63EBEE9FF7F66C015A096E2FA3D5040A63EBEE9FF7F66C05FBCE160AC3D5140918102AE993166C0A9DD03C3CC0C5140
-ru 0106000020E6100000010000000103000000010000001A000000A4EB20A40FC14A40CFBAA7F3FC6F52400C1343C683F34B405BB80ABD28A85240D878A92CE3D04B40C70AC3DB35C5524084D69BB82FEF4C40A789744000E7524078C2B303C4954E40110CC3DB1E1053400E416944E51F50404B46307C191C534004F1B0A5808D50407D76C678D3335340144569440D0A5140F32EE5FD233C53409A3B92A08A365140ABED3D30DE225340D60025808E0B5140114630FCF30E534032A432F4C9285040B5DB2C5F37EF524024B9DC5FB0CA4E408B6AEF54B2D05240C08C1D07113D4D4073F51494C7935240D818E0FC4E7E4C407BDCC9955055524068B216CDACB54B40A3AB33D9C217524068D8D525B9CF4B40D592E81A99E2514070E30F9391C44C408D65EF141CAE51403CCAC414F5784C40FDED77DD7EA8514068B5503AB4D64A4075A69662CFB051408C700CF6BCB44A40E7CFF2F139CD51404C8B91E10ACD49404DB8A77362DE514004FF6B2256BA4940A9AED0CFF30052401031021F383D4A40A7A4F92BAF0E524060976885DA384A40AD45CD32953152401054870ABC364B4041B70ABD29685240A4EB20A40FC14A40CFBAA7F3FC6F5240
-ru 0106000020E61000000100000001030000000100000007000000048E628ABC8857408F4ECD3283365440748B289DC2805840A19211F7152B544082612F575E0E5940331D37B611DB53403E4D1E46E7535840F14830FC22B65340A41FC2B6E34557407131E5FDFFCC5340361C258002455740A7C8E1E0CA085440048E628ABC8857408F4ECD3283365440
-ru 0106000020E6100000010000000103000000010000000600000000F4F1CC6CC4594035EDA0B9C0CE534074FEC8F0BCD05940B51C37360CBE53408474A3B1B6455A40C1A022889E7F5340CCF38E8337F2584053853AD394785340F065CC8D4A4959403794AE6DAFC0534000F4F1CC6CC4594035EDA0B9C0CE5340
-ru 0106000020E61000000100000001030000000100000005000000BE9A01AF35636240E585D70945D3524000E77FE0EEA66240919D228814C6524024E045732CA5624005D78FA8AAA45240200405CC244A6240919D228814C65240BE9A01AF35636240E585D70945D35240
-ru 0106000020E6100000010000000103000000010000000500000086A22A8B0A7C6640D7C17ED77DB55140868ADF0CE275664035F94E0175E15140F431ED0000806640A31B7123B0F25140F431ED000080664097E0030355B7514086A22A8B0A7C6640D7C17ED77DB55140
-ru 0106000020E61000000100000001030000000100000008000000724A83BD36346140EFD4F2B10BF252405418504A8A736140ABD155FBD6FA5240D880B6B0ABEE61408B67529E5FE8524002B14C2DA9046240C7C2E160BCB25240D4A47509A4936140F3AA966240B65240E28153E72564614073C2E160639F5240FE3FAC99E62761403726ABD01DCD5240724A83BD36346140EFD4F2B10BF25240
-ru 0106000020E6100000010000000103000000010000000900000038497BB51FA93340541BB9EA89364B4040E7B18573E333401E23F357DE6E4B401046A411B944354098191CB461984B40A8AD6D41D3503640CEB2B54DF5814B40580860CDFCC136404AB9EF3AA46D4B406890E855ABA636401C59C341974A4B40E84F414829BB364020B8EFBAEC294B407855B5226AE434407A811FD100284B4038497BB51FA93340541BB9EA89364B40
-ru 0106000020E61000000100000001030000000100000016000000FCBDC08744DD61409E94CD982FDA4A40821316DD58E86140BE9CA43CD15E4A40B246495087E76140AE82593EDAE049408A7D197ABCF461407EBAC65EB15F4940E44AE6C6EE14624098B6C65EFA7C4840B8BA23D190E56140A0D2AE133DA74840129F3B9CE0D16140AA9F181748EE4740C4FBCA5E12F161406C3A4FE7196B474082F1F33A2BF06140BE79F6F4A611474008E0E229EDD76140E4813062D15E47409E6B08E9F1C261403EF40AA3BEFB46406EBDC08705BD6140BA6648AD2867474058FE671597C0614064549A65DBE347405038D535F1BC6140A86EE5E3F96D4840A6083F7958C46140B29CDEA9BDCE4840E03B726CC2C56140BAEA5C5BE679494080C797AB02B36140764C8954BCF749407E53BD6AD7B5614092373ED6A6A64A40641DED006CD36140B85A60F88DE14A4056797C43B6C6614090629A65DC1C4B408605A202F4D46140765FFD2ED52E4B40FCBDC08744DD61409E94CD982FDA4A40
-rw 0106000020E6100000010000000103000000010000000D0000008004A1744A6B3E4000B62C509027F2BF68623037EED03E4040E1C986C02EFBBF48E71B8920C23E40F09EFEDC494C02C0785D93003E783E40104EA987944F03C0D03FAB4B38F03D40B03A9876B3C902C0783EAB4BD6A13D40407457CFC55707C04850599361063D4020E294D9CCB606C008097818131E3D40702EC1D2725602C0C86507DB3C413D40B0B7E6918BB801C0C8097818B94A3D4000CE55ACBFEBF9BFD8D744E557943D40600C0ECB0476F5BF40CBD00A4FD23D40405BEF45D917F7BF8004A1744A6B3E4000B62C509027F2BF
-sa 0106000020E6100000010000000103000000010000004C0000005C8C3F29C1634540588837680F593040B8FC7C3325534540B43B1C804EC630405C1765E88A2C4540EC5467FE67133140F06F5774AC224540A81CFA5D87793140F09079968FE044409410868342D53140201F3C8C569C444050EB29F4EDAB3240181B9F553C7844407014E94C8A7C334050D55A11B31F44403870DBD8B42C3440DC5CE3999DE6434028DE7BACBF5634403CFF53D7D7914340F47B1546BA4A35400439C17708834340644845DCA3FC35401C39C1777D88434040F2525064943640F0823F29133F434058C7BC533EB0374000CDBDDA0D034340ACFF8CBD241438401C4A6FBFE7BD4240A0D7302E1649384080CE5A11D1934240E8CF598AC5DB384060274D9DD09A424078308683A4153940E8E5A58F3F77424064A3C38D5B9A3940D844D288DE514240E055A8A583D33940C0D631B5E31F42404CB53768F4913A409431C177F1D14140B05CA8A563603B4058480CF6A9904140B4C271D537103C40144E4663F05041405033AFDFFC0E3C402CA738EFD5644140687D905A809B3C4088EB7C33866A41406C933EA21DF53C406CBF836D5F7A4140B81DC72A475B3D40E8FBF00DD3084240745AD1018F323D4098B8ACC9274042408040E94C58813D4058264D9DC95E42409890043583DD3D402C84DC5F75C0424078D54879F7003E40B87DA2F284D54240A4BB60C4B2563E40C8D3F747DAFF4240DCD00E0C2D823E40784C0CF6468042402C8A905A27823F4000732E18A080434000B04BCA4E014040A043981B05994340AEA2D7EF9B144040C894B30333334440307E1C80D6E33F402446FBE4EAF14440A0C93768A4303F40B4DBBDDAD05A46402C279ECECB2D3D40BC6BE399CB4847405475B9B659193D4024ABED70DBBA474050DB1F1DA5003D40783E4D9DBBDA474024C80E0CAC863C4060CF0F9342354840F8495D27508D3C40541B8E445F67484014FBDE758BB03B40F4A416CD57A6484004E9CD6412763B40D056FBE446BC4840C89FECE9281C3B4030D30F938213494098AB60C48DB03A40A051C177411B49403C21D83BEB463A4074C59BB8800E4940B40EC72AA8F139405025C8B1B31E4940CC6CF323A99B39404041B0668143494048ED413FEB533940102D021F8D544940583A5D27F9FF38408015B7A0B1674940B8139ECE36C138402816B7A0638E494024914FB36B8E38406887F4AADEB14940203CFA5D9CA03840D487F4AA2DCA4940F8C282E6D83E3840E44D870A11CF49408821AFDFA3033840847E1D0718004A40A81912A94B0037406C03CFEBDE804B4024FC29F4377F3640DC03CFEBAA9A4B40A0BF1F1D55B53640A4972E1855D54B40E04BE21200003640144BB066FF7F4B409CCB6A9BFFFF33403463355200004A4004316E38000033403C892E18EF8E4840A44A56EDDD9D32407CA216CD771748402C9771D5AA2A324090AE8AA7BCBB4740C462DBD8DE1D3140A8953F2900804740F0165D2733F330408C6F80D0FF5F47408063DBD8884831405C7CF4AAEE2E4740947EC38DBA3B31405862A92C33B3464050FD747255553140CCA2503ABB9B4640F430A8A5EE6E3140F0E731B503084640E06A15460D693140B8132B7B50E54540005667FEE951314000A927DEBDB045405C27D1017A943140CC715774D28E4540A0C5A408A41631404CB69BB8F39B45400808E94CB9AA30405C8C3F29C1634540588837680F593040
-sn 0106000020E6100000010000000103000000010000002C00000000615CEEB6B630C01092086A9E302B4068FCF587482031C0900946743DBF2C40E0423ACC02A031C0C0BA8D5586752D40088CB87D672F31C0A0528AB8C5D62D40E889B87D61B330C0B8AA42D7383E2F40900A07998D7630C0880C23BA9122304034C85F8BE51E30C01C07E94CA6743040506D3A2B513F2FC0E8FFAEDF8C5E304000CC035B7F452EC02045F323589630400853291A9A272DC0D8EF9DCE27993040D014BC79F4322CC0B4ADF6C0E64D30408097440219DF2AC09420D101150A3040D002820C4CA929C0C01146747D9B2E4090850A956C5728C088AFB6B1D13B2D40D02FB53FF13F28C0B07DBDEB4CFD2B40A0537498FDDA27C0902D3F3A1AD82A4018469DF4561B27C0081A2E294D482A40A8FDBB7990EF26C0F808BA4E50822940B86EF983230727C098957C44CFE22840E0247BD20C5127C098E3972CEEC52840E8961BA6396828C08017CB5F69EE2840A8456387A48E28C018132E2979B5284038B8A09183FF28C0709BB6B107AA284040A3B8DC856F2AC0C8D0E9E4D82629406896A7CBA4662BC058E5972C202C2940703907F8D1182FC0103BED819F412940A87CAE0516A22FC09088086AF8072940F49B66C5D02530C070856B3374182940CC89B87D6DAD30C010957C440BC52840303563286ED730C0A83FED81834D2A40784A7BD2D2DC2FC0F8F0D199B4422A4058487BD2CA612FC020448AB86B8A2A4040BEF2490C062FC090D34CAEA08E2A4040FF368E46482EC0007620B5DE042B407024931DA56C2DC098B12A8CAE982A40A0BDC9ED2E8E2CC0209642D7A88F2A40883B18099FB02BC0B0F76ED094022B40D862D7610F182CC0486E491190962B40D0D9B1A2E0C02CC0481E2E2959402B4068BA8F80C25F2DC0184EC425BE422B4068A9E138D9292EC078E6C088C3C02B409812489F2BCC2EC0D8D1124182B82B40088CBF16CB3F2FC0289942D7463F2B4000615CEEB6B630C01092086A9E302B40
-rs 0106000020E6100000010000000103000000010000002D000000F0B81B895E383440DC384FE75010474010B144E51DC3344062017F7D06DE4640A0C255F6D2DF34407CCD4BCA4BB54640E8FB2560C87B3540AAB1639530974640D021E5B8E08F35403CC511DD6C6246408880747B24253640E0A58CF13C3D4640E881747B827536409CB06315EC5946402842CD6DAAB43640F2E633FFFB49464020A4969D58793640C0DFF9916134464078CA55F63AA836408E75F6F4111E4640400AFD031369364052B93A3908014640B07ED7440A803640D67059BE47D24540E0577BB56BFC364046398954079B4540287FD744D49A3640EC8DDEA902734540D0E43DABC46F3640065AABF6474A4540E8B844E5858B3640E81804E90D3B4540085CB5226A61364040267843FE284540F81F4882C6EA3540B4D75CDBDD264540B88AE855495A35409622DB8C781A454010B144E51DC33440E2921817A3064540D876D744A2B73440A662821A6EEC444048D9A0741A973440267730E27DED4440F001FD03E185344096E86DECE21B4540D052B522A448344040267843FE284540407EAEE818123440846E59BE574B454018B71B8936CD334072F3441003404540301D82EFF0BC3340B0FA7E7D1858454028F95FCDF24D3340965C482D0E19454080D0033E2C5F3340B028157A53F0444090CF033E98293340C4DD96C83DFA4440B0235993D3E132402A26784308244540E06CD7443473324018D85C5B703D454098DA77185B8F324088E96D6C33534540700EAB4BDCB432404873F6F49C994540605EC633190833409ADDF9915DB74540D833CD6D38743340B647FD2EB7C84540103130378A993340D0590EC0EC0446405895969D1C1E3340CC7C3062273646400893F966385E33404EA3EFBA766E4640C883858C67013340CEF10A231C6E464028303037F6633340BEDABF24469E4640205B29FDA01233401A977BE0C0C24640886ED74470D43240946B821A56F44640A0F32560969833406676593EFB154740F0B81B895E383440DC384FE750104740
-sl 0106000020E6100000010000000103000000010000001600000008D1C2B3A7E026C050D56C63C7241B40C8FFBB79986A27C0707ADDA0BD701B4000BB3DC82FDB28C030F21AAB400D1D40281F6AC1E9E529C0F0B33930D0311F40D0081F43803F2AC040289BC9F05320401003E5D53B7E2AC060C834635CCE214038DCC2B3856C29C0908453E877AF2240B0523A2B853129C098BD2352893D234050735C4D13DA28C06811DC70F2AB2340E80D931DF94C28C0E05520B596B723402050D761A5D527C0B850E6470E182440009B8F80263C26C0B01679A77C172440C8053054A5AD25C0E00505CD61602340F0770A95AA3E25C0801DED812B892240189055133E4F25C090EEF3BB50F42140805B22E016FD24C01056F7585B6E214038CC5FEACD0225C010862A8CA2B2204050187BD2CE7524C098C0972CFACF2040687F4402256425C01061E4DA02C21F4060207BD21C4B26C0404D0D373A961D4070BA146C4C6626C090113DCD626C1C4008D1C2B3A7E026C050D56C63C7241B40
-sk 0106000020E61000000100000001030000000100000021000000D804D4A767DA32402081F67484BF4840E8A844E5D9E832406EBE00CCC9B74840D82F30371A5233405E2F3E5629C94840C07911B234D333406A3578C3CA9B484080D8A074746A34407CCF11DD39B74840F8A3D00A51E33440D0F4D03515AA484068EB144F999B35406239157A2CBC484060BCE11BE28E36405468AB76F98A484080AD6D41E54736408A974173A6694840683FCD6DEA153640904BC3C10C364840C0E5DAE14ADF354016A4B5CDF428484088CC2C9A21CD34401A974173DA4F48404027BC5C3B793440484F60780B48484020DB3DAB323D3440D2C23AB9ED294840D8CE6607FCC4334082EB96C8F1194840D87F4B1F4FA933401AC6D76F2022484090BEF22CA32C33406299DEA9410E484088DB7718EBC63240D8843062770A484058D43DAB4EB23240B49F1817C3F04740A096D00A6DDB31402421673214E14740584DEF8F0C7D31405010562109EF474030F93671CBFA3040CC620EC0CE0F4840A84AEF8F46E13040E8559A65293C484018F93671D5F53040820EB9EA694C4840909DA7AE1B1A314050C7D76F92684840C81D5993858B3140A890070667664840C8D03DABF0E23140BED1AE13A573484088A444E5DBE93140F2D1AE138D7F4840F83EDE7EDF1A3240D2640E40A1854840F823F6C9A52B324046F133FFC0A24840F887BFF96566324068C8D7EF51A8484070F2C296128E32406E9CDEA95CBF4840D804D4A767DA32402081F67484BF4840
-so 0106000020E61000000100000001030000000100000024000000F0D1725C22914940A0EB0B070D7F2740F4A1DC5F50854940787231C63F552640C40BE0FCCB854940A8746B33244825400CC79BB8C66A49404004CB5F398F2440783A76F9B4464940309B9E66C1652240D43C1330140949409061086AD8292040EC1554D7F2B948405080170EF6371B400CB18AA7194C484010EF9F963E5B154038862E18D2DE4740F0743930ACE010408CD5E63649484740A0752E1C9CD70640D821021F30C8464000481D0BBB5D0040F04AFBE4B8084640807D6D4949D8F03F40D8BDDA6691454000BDEBF50EB3D23F50EA6B225305454000818CD3D369EDBF44C4ACC9CDE74440A0F1EBA8C224F7BFE8E5CEEBE5CA444020B76DF79DEEFABF8469BA3DAA73444000F93DB82BE8EBBFE45B46639C74444020883F2DDD2D0740D0A8C41447DF4440E036C8B5D5DB0F40B0E331B576104540004206FDC0EF1040E4B1FE8184624540E004FC25A50211407C8705BC97D44540504B69C688D41340302E76F9567B4640A0D4F14EA5011440248D68850BE5474018CEA83D8901204020CC725C4D3E48402857F758DDAC21406011B7A01478484040410FA44BE7224090A7B3031878484030D5D1996EF22340081F2B7B2078484048AE3B9DF3F625406411B7A093784840F0EBA83DDDC926409844EAD35E794840404838003DD22640783EB06646A24840D8E80B0755DC2640D8313C8C43DD4840783F615C66282740848157741F214940A0E76ED0F05B27404CDB4900B35D4940C8A9C7C2360B284004575EAE3C8E494098D95DBF9D0C2840F0D1725C22914940A0EB0B070D7F2740
-za 0106000020E61000000100000001030000000200000052000000A887525960853F4092F8E71CE4413DC0D0C0BFF957533F4080779901E8663DC0187E18ECD9E63E40AC6888F0F2E83DC040A911B2709F3E40F4A4F5907C6C3EC04092636A430E3E403ECA17B3E8233FC0E826FD03F1EC3C40E2987071051640C0487218EC41383C40B5E88B59CF6240C03879EF8FF0763B4082B658260D9D40C0481F9A3A616B3A401C104BB2B6CE40C090A522C3DFE839404EBE929361D540C0E8BC6D41D7C739404D88C229EAF840C0D8F03DAB402C39400B99D33AFFE540C09840F6C987AD384035F2C5C65BFE40C0D8129A3A13983740BE1A2256B1E540C0B8FBEBF2F9FC3640485F669A4DF540C0509ABFF9FB9236409E39A7419AEE40C048E4DAE1F48A354076003AA1212141C0A08E22C365B03440C8C6CC00663541C048F288293E12344040380A0BC76541C04019E5B8CC9D3340B49E7071DA6841C0F87611B27A313340EC9D7071363B41C0B0A844E5F5DA3240D7C6CC00DF3841C0185F636AB56C32408DAAE44BBAFF40C0482893009E60324045AE8182791141C0983FDE7E973E3240400DAE7B12EF40C0C89B6D410540324001E351EC05A440C0C83A4148D9EC31402FEFC5C63E4E40C0F0F7FC03773F3240C8EEC5C6ED3640C0581DBC5CC5383240D0AD92C760A93FC008DDB18521913140FA8A0DDCC8B93EC0B01B59937D1031406AE39C9EEEE03DC04018BC5C1B103140B2614E833EE03DC0C085F96650583040CE6288F0A2933CC040EE5FCDF2D230403AFA218A08153CC0803E7BB50B38314064247E191F5B3CC028F4FC0333633140C23A2C6194C83CC0C0663A0E0ED63140466E5F943BDB3CC0B06200A1037732401E0C9664A30B3DC0A861636A8B0033400A166D08F2F83CC0E0E3144F0DE53340B8025CF70A763CC0989FD00A51E533406AE14AE68DC438C0F05F29FD6C2A344086BC8B8DFFEA38C02836303734C23440F2CA62313EDE39C0F02EF6C99DAA34409C302C613A7A3AC0F069636ABDE334405E0296641BD43AC0783693001C9B354070EDE71CFEB93AC010658CC6201B36406C770DDCBE473AC0C09D5C305C9436408479AA12BDFA39C0E012377103D3364032A7400F1E8039C028375993E54F3740FA720DDCC84439C078139A3ACBBB37402C1EB886DF6339C0203B59931536384024DB734293AB39C0B03E599371063940004CB14C3CB839C08041599327AA3940DAC5C5FA9F7C39C070F33DAB0EC43940940F44ACC22C39C040CBE11B10F13940201BB88645B238C010D17E525A7C3A40A05B5F94C79D38C0680CECF251C93A4018DF4AE69D3D38C0C08800A1911E3B4018CB39D5069337C0D84B599369043C400A35DAA8E7D336C030D744E5A36E3D409C9BDD45601736C0A0AC4B1FCBD63D400C650DDC2A1A36C080A4747BA8523E40B07D585A884536C0404D82EFECA83E4088A95120CD2636C0A0C35C3000313F40FC4688F0624036C0F095C6339FAB3F403AC16231B2A837C0F874A4113BEE3F40A6421416925E38C090A09DD79DC03F40B2066D08FA7B39C050CD969D78D63F403C31C997E4D739C048FEC9D049553F40E20A0A3F02A939C0C82C60CD480B3F409C0EA77540BB39C05855BC5C1DF33E40C2ED8453CC053AC0C861303736AD3E408A11A775E8653AC0A091C6339BAF3E400C7670A56CBE3AC010FEC9D063483F40620496642F493BC0D096C63339DE3F40F67770A58C2D3BC098079F552C094040CAA506A2DBBB3AC01C4A4663416A404012B0DD4500BE3AC04C05021F464A4040D8120A3F5C783BC0AC753F29273B4040BA83AA120F4D3CC0C8BC20A4081A40403E0E339B9DC03CC0A887525960853F4092F8E71CE4413DC00C000000888D636A6FFA3C401CD5C5FAA1F43CC0A86207DBAC8A3C40DA1E44ACC2A53CC060909DD707133C4084B2A3D8F9D93CC0C85A6AA452883B407E5BB14C223E3DC0388800A1CFFF3A40B2614E833EE03DC03099747BD8BF3B406C57DAA825A53EC040AF22C3711B3C40062E7E19B58B3EC0380CB285834A3C4076D0EE56E9393EC0D841E5B830D93C40AAE739D5EE113EC0C06407DBB6043D409EAF696B67BE3DC028DAE11B3E533D4092F8E71CE4413DC0888D636A6FFA3C401CD5C5FAA1F43CC0
-es 0106000020E6100000010000000103000000010000003300000098DA479FD31122C0A8517189B6F0444028DA479F07F821C08A0B900EE04B454098E4810C28C922C094BAD76F688345408057118DAAE91FC0A86DBC87C9DF4540F030007C99041BC0E240C341B1C84540305AA789C5A515C0D62FB2B080C94540403DD0E5306411C0FEB73A39A4B34540003B7EA9E7230CC0D873F6F45ABA45408004FC52EF6BFEBF7C927B601EB64540008C6C90590BF8BFF0AC63955A8445400032DF808FA2D53F9EF344902E4A45400032D6266E73E63F0E1DA19FDA65454000B04C8E8B3AFD3F926ABC07F42B4540405B676E53E307407A3EC3C18B3C4540C0F60008DD5008400AE133FF30F24440C07C0E7C17BC0040263F6078F09C444000726C23D1EFE93FF482A4BCE2814440009FD9C32415E73F9CE80A23D35644400010FAB42250BB3F1C06900EDD0F444000F498F667D6D1BF3AB9115DADA7434000B030858C7DBC3F58E40AA3875E4340004E584F5AE5DDBF1265593E6C25434000AC128E53DEE5BF26B274A638D2424000BE3CFA9C03F7BF46746A4FB6B84240C0859257EF2B01C054CB5C5B4A564240000B85E384530BC0C242D4D256544240E081142AC17911C082C4226EC35642407026AEC31AFB13C07045710990294240D0637E2D368215C0286A306232F94140D0A988043A7717C0AE5CBC07D1034240308E66E25FF218C0A42D260B102F42407063D0E5AC141AC0586C3062B178424060FC586E9DD01DC0688BB54D848C424090564BFAFE251EC0AA143E56E6B642406031C60E81AA1CC044A89D02E6E64240309C66E2FB1D1CC0E4E20AA3B209434060C48804127F1DC07E6F3062C02F4340D0DA70B963641CC092E16D6CD9834340003E007C99FE1DC0A6D896C895D04340F0E7E49330441CC0842078431FDB4340B05E5C0B0C1B1CC02EF57E7D9E17444070F5F5A4C1741BC0D2AD9D025A2A4440E07644C08D671BC0AE6EF6F4378E4440D0E21E016D8E19C040358954DFB044407006A4ECA6AC1AC0404ED4D212F144402014412357011DC0F8BE115D8CF54440D0988F3EA7B01DC020FC1BB462E54440D0047BD2BE0620C0FA3CC3C13BE5444010DE1E43188720C04C489A65E6234540E0B18846095821C0AEC9E8803D11454098DA479FD31122C0A8517189B6F04440
-lk 0106000020E6100000010000000103000000010000000A000000842EAAEB6D72544010E9A6D09B171E40D2A521E3C96854407081517B56ED1940B497AD08F44D5440D00B1471DFC91840E655067B4B16544040562F599CDF17401EAEF886D6F753408034995CC90D1B405077289D7DEC534028EB90F2D4662040101F3691750954406022ED81EDA52340D859A331AF35544038D9A83D6F892240BC869CF77953544070390FA4DF202140842EAAEB6D72544010E9A6D09B171E40
-sd 0106000020E6100000010000000103000000010000004D0000009C0465E822E94040D0FF5EEF00A4104038F98D4482A54040A0A4A2F6DC6D0E403C87503ADC57404040CDFE85AF560E4038895259A6E13F40A0A916D15D770C408097636ADD3E3F4020BF8AAB4E410E40809C9DD777D53E4080A4799AC5120C409824C39618F43D40B0D36529DEB11040A0D10A784BB73D40700E995C39671240784DBC5CB9283D4030F6EA149C8E114020CD0A7859B23C404072FFC2FFD1114008DD1B89D26D3C4000F14DDE0B261140184FF6C9DFFA3B403067281F37A2114058644148CD5F3B40C075281F8FEF1440B8AEBFF9A1363B40C01BFC252D34164050899DD745773A401015884B70C917402014C396A2363A40406769C6B82F1A40D89A4B1FF1CB3940103FD3C9D1EA1B4098B6D00AC71F3940D0D05B5216001E40584930376C1D3940B032EB14E84C1F4000F577183F913840287EF01E58752040C03CF6C949CE374008BC5DBF27552140801C71DE81753740F824C42598E8214030E2033E10653740F09464F9B6872240C85D18ECA78E37401073A5A0C85C234020EDDAE1E68D3740781A16DEB22D24403821AB4B40FA3640C0B2750ACE6D254028FBEBF239DD36401816A203E8482640B8ACD00A4FE036400882A5A0EAC42640884BA4113982364020368AB8D55B274088BF7E52647F3640B015CB5F3D85284078399300BC4936406034B314C74A294028A533D4D0EF3540C01191F2242D2940C83B3037A0093640708C086A32E92940500660CDEA4B36409841ED819FBE2A40A80C9A3AEB2E364050F33463AC922B40A86DC63315833640C0B1F01EB42F2C4090399300B44D3640D8ED5DBF55A72C40E0335993659136400886BDEB78E32D4048FF88294A063740E8B8B6B1875C2F40F8B70A780BE3374058C9C7C2BE382F40E069EF8FF6FA3740285CCAC7237F3340E069EF8FF6FA3740F0BDF6C0F5FE3340B089D74400003940A068A16BC7003440B089D74400003940E04BE2120000364088949DD71F053D40E04BE21200003640207ADC5F90774040A8B5E5AFFEFE3540B407C8B145634240E04BE21200003640D03BFBE42798424068888920D304354038534663157C42405009D83B62D63440FC2D870AAF8E42401CBDF6C0D6CE3340C0BAACC9AABD42404CF50098349D3240A42F870A6EEE4240D8C707D22C5E32406C2DEAD37D344340443AE21291FF314034443552B5F34240047C2657736D314068AC38EF6F9542406C0012A95C433140F018D9C2206D4240944D2D91DFF4304074D4947E7E604240C095AB42B84A3040A82F24415E29424008F9972C1CA52D40F8DD6B22FB364240188F31C61FD82C40E084799696224240507D5A226D202B40A491ED708BEE41402860ACDA1328294004123C8C58A14140A89C53E86B2A2840686691E1716A414020C9861B4DA32640C028870A965D4140481E79A700D225403876A2F2F4204140883AFE929C4225403C204D9D16FB4040C86E086ACA2A234070191330CDFC404000ECF3BB7E5E2140187CDC5FAAE94040E8828D5520C2204064F253D7BBA5404028973B9D8BB520407C95C414237A404030025518D1231F4000908AA7BEC84040B05947A472DA1E407049A92C9D094140E0BA4A415DE71C4050FB8D440B2041403032FC25E54D1B401C2C24417F5A414030DC43077C601A40B09D614B539141403014C2B8B80B1640D050E3992329414050F3B0A7077412409C0465E822E94040D0FF5EEF00A41040
-sr 0106000020E6100000010000000103000000010000001A0000002845EA32DF924CC07067406A81E417409653FB4383F94BC030E2F14E6D17174020E65A70BFEB4BC0C011EB1400D017400E66A98B41844BC0C0317000E619184040269F34A1FA4AC0F055CC8FB4061740A23176D8433D4BC0D06F281F479613401C3FEA3224334BC0A0DE3CCDB6D91040A6A45019E3004BC060349F59D6F50C403CD883CC42174BC0C073BA41AB840940D43EEAB285224BC020B2D529F0DB054088FE42252B434BC0A04AE39DAA7E02406499DCBE7D8C4BC0805580D4A230044038CA72BBEDC84BC0408F8AAB3E5F03407E94A2D195FC4BC040C220A839150440DC53FB4363094CC020A0D52930C40140882A9FB4EAF34BC040582E1C0C2D0040F4973F0873FF4BC000C1E1232A15FD3F1CC29B970A454CC08041F6D17164FE3F7860D26736934CC040E36B26C326064076E2200306A44CC0C0A116D1FDAA0A405E16543600CD4CC0603BB06A5FAD0A40AC6CA98BB8054DC060DFD903533E1040123976581BEE4CC030075FEFA44E12405C323C6B07F54CC0C00EFC2521401340A4670CD553A74CC0A091AD0A554B14402845EA32DF924CC07067406A81E41740
-sz 0106000020E6100000010000000103000000010000000B00000098079F552C094040CAA506A2DBBB3AC0D096C63339DE3F40F67770A58C2D3BC010FEC9D063483F40620496642F493BC0A091C6339BAF3E400C7670A56CBE3AC0C861303736AD3E408A11A775E8653AC05855BC5C1DF33E40C2ED8453CC053AC0C82C60CD480B3F409C0EA77540BB39C048FEC9D049553F40E20A0A3F02A939C050CD969D78D63F403C31C997E4D739C0900467075CFC3F401A4B1416B24A3AC098079F552C094040CAA506A2DBBB3AC0
-se 0106000020E6100000010000000103000000010000002800000048E0A074E42E3640FF4EDEC3516E504068A5D00AA936354021036012AA41504000F88829A05E3540E9DCA039781A5040D894F96664C73340E2BE7BE005CE4F40D0663A0E08D931407634F357EC5F4F4018151F269B1E3140F0901F51ABAB4E4060D77718D3D43140541B45907B514E40384CB522A8C93240D29B932B7C0A4E4060DEB18585DE3140C6D69D02157A4D40F0980A7845D43040BEEA4B4A235C4D4048D177189D7230401EF85C5B43854C40A0AE004273C22F40904478C3590D4C4000A4004257552D403882829AB6194C4040460EB691332C408A91932B32B44B4090B3852DC5E22940463504694DAE4B40C0B0852D0D402940404F4F674E274C4060A9852D6D932740B47AAB768DB84C40F0830042030E264042BBB54D966D4D4020697B56C1EF264048B2DEA958B74D40E073188DC9992840F40F6E6C180F4E4080F866A825432940DE67C3C193A54E40D05530D8EFFB27404E21E24672E64E400011EC9373DC27402A13D1B56C904F401032D448ED282940D7F788EE3C0450404089EF30D2242B40DF6B63AF2403504060C65CD1FDD62B40B13593C5811C5040F01B4F5D831C2B404F406AA95E325040204F0EB681372E404F1CAB50688C50404047EF8FD41B304065FB886E5BD35040D8F4993AD5C43040AF4AA456E4005140E0FFD3A7ABBA31405F2FBCE1AC00514028E988296EFE3140171871235024514060434148E9E03340416DC6780F1A5140F8CF66077806344023CA553B2B445140702B599345A534408DF64EC1CC46514030AC6D4181FA35404F7400667A275140808DAEE81A8A3740391EAB90E7FB50400057DE7EDD903740DD7100E65899504098DDC9D043E73740090B9A7F7180504048E0A074E42E3640FF4EDEC3516E5040
-ch 0106000020E61000000100000001030000000100000018000000B0698C673E302340226F821A35C34740B03D93A10F4423403E2067327EAC4740402B8290BEF52240949A7BE0288D474020E403DF69DD2340D20AB96ADA754740F066B5C3A9E22440AABF3AB95F7247403055A4B20CBA2440CE95DEA9E53D4740A0A6F9077ED82340CC24A19F4E28474060AAD0ABA25D2240687AF6F458384740D03793A1BFEE2140244DFD2EBA044740406A630BDBFA2040ACE696C8A8004740900CD4481DA22040468EA43CF2144740A01245C822061F40FC67E5E388E94640C0A3DE616C181D40028A070673E346406043ECD5D65F1B405A68E5E3DDFE464040F26D241A001A4058A35284FF364740C0B63AF12617184002408954F122474080DCF94949261840CA701F51E65C474040F033B729131B40F026A19FD3A44740404F60B03FF21A406A7959BE59C54740A0E622A6D0C41C40FC0BB9EA91B9474080C2C616F6DD1D4060A9EF3A6FCF4740604D7B5675A2204036EA96C889CE474070F688CA930B21401017908E58EA4740B0698C673E302340226F821A35C34740
-sy 0106000020E6100000010000000103000000010000001B000000A8F7196A6B6543401E9B00CC78B040407C153C8CC26A42406A093E560E284040C4CEF74726DC4140F8511FD1C65A404030466FBFB3D941404C0A3E56A65B404064FBF00D0FEB4140DC77DEA91E6F4040BC27EAD319E9414082D1D0B582A340406CE742C681084240088BEFBA96E940407829EAD34D4E42408AD3D035D4194140B4C2836D5E3942402ACAF911064C414058958AA7CBFF4140DA29268B8C5241407C8716CDD7F34140E01DB2307BB441400CC2836D2B1342408C14DB0C28E941404CD0F7477235424036ABD7EF32054240A029EAD3BA574240E241D4D23D21424078486FBFA75E424018A69D82A468424044F7B6A08B884240E8AF74A6BF4F424028712E1878154340EEB311DD5A7342407831870A96594340F6F01B34415B4240281165E8E3C243401CB074A6A75B4240F0BA725C2D564440A2958CF1AE8B424050526FBF259B444086847B6084894240442FB066BF2C4540424EAB766C9D424074E6CEEB24EB44405627EC9D8C4D4240ACE86B2215A544401CDF0AA3ED2D42401CF342C625B14440264E48AD6CD04140EC6280D0C980444080E87EFDAD354140A8F7196A6B6543401E9B00CC78B04040
-tw 0106000020E610000001000000010300000001000000090000000A8069C4C7715E4008C71F1DEF6438401264818F3D4B5E4018A8D49E75CA364018156627D02F5E407030FA5D77F835409A5FE4D8150E5E40E82923BA9AD03640A01E3DCBCB065E404415D83B678E3740B65C47A2752C5E407894ECE9D78938405EF0A6CEAE5F5E4048AC9A31A34B3940D8B6392EE17C5E40081F757262FF38400A8069C4C7715E4008C71F1DEF643840
-tj 0106000020E61000000100000001030000000100000029000000DE55DD9EE8C0514064A3C65E471F4440CA0DFC2379A9514054D996C8C6F74340B2F4B0A5D0635140A465BC07360D44408E1D0DB5C05D51409AD15C5B6AC34340E87A9C7725A35140C4D15C5B56CD43408423AA6B38F251408C824173C5A343407E3DF569396B524000082DC532B743402CA45B50727B52408E02908EBE4043405471281D7B90524022925204A24D43406C12FC2359B75240F44971097E304340EE37BB7C1EB552405019DB8CB8FE424012FE4D5CB8BE52400C7BA43CC2B542401CF6136FB77C5240666D30E2F5B542407A7AFFC0A4505240A6B8AE9364BF424088D2F1CCC2285240926C306216864240BA19D3C75A0C524010EE7E7D61794240B845CC8D0EF651401C3C9A657C5E4240B882D664B7DC51404817DB0C678842400219D3C7AEE25140FEF6B86AF0F342407E82D66452CF5140E089189704FA4240CC18D3C747D6514010766ACF23214340DEC27DF2A2B351403C21157A3E3E43401EE1025E159851402668F6F4B611434086CC541651915140FA857BE019DE424048BB430576875140C46D30E24ACB4240CA16D3C7336151405459829AF3CD4240B0BDE0BB8F4C5140646993AB5893424024C41A29013751403E0A673213AC4240A441CC0DAD08514060ADD76FF5824240DC03C2B61EF550404481DE298F924240082A810F1719514056274F6719144340BA1870FE430B51402C5C821A66734340406DC5534DDC50409EAE3A39F09143409E1B0D35E4EC5040E02DEC1D4DCA434092F3B0A554225140D83EFD2E48C443403EB30998BE405140CE98EF3A070B444024D9C8701655514022ECA759295D44409CDAC8F0A9AA51405E0B2D45E87A44402033BB7C529D514052D0BF248D3F4440A4C27D727DA65140AAF81BB4F81B4440DE55DD9EE8C0514064A3C65E471F4440
-tz 0106000020E6100000010000000103000000010000002F00000018784148BFDD3F4040F60DCB2470F0BF90E242C6BBED404000B08599A602EEBFF491503AF2C74240103D4DF8F1C308C0DCC820A480D84240607C0C51649F0EC04CEE42C6DA9843409088F3C8C50713C0ECC04900C95E43409058AF84C1A217C01C3524415F6643403847C7CF17E719C0D4510CF651B84340A04DC7CF275C1BC004742E1828BC4340B066751761661CC03CDD31B5EB984340A0EF26FCD0D01EC0DC2B4D9D41A043400CDA3F77020420C078843F29E09743405829BE2897F820C0FCDD31B593C4434064B746B1873922C04CE2CEEB8BF94340A41F73AA613224C0F82376F98528444084AD98695AA224C05844981BB1C243400C536C7030CB25C00453A92CBA36434010F0050A069226C030038E44F0E9424030D1801E9C8926C0C42E870A53BC42400807B451332327C0F4AED525386342408C856536673027C0DCC2836DCD414240D87F2BC91E7127C0D8938AA7FCA74140944D95CCD7E026C040A39BB8AD4741408C92D910400A27C0F45ABA3DD723414034BDA97AEB5124C0F88CED70AFDE4040000CFFCF94D522C030B7E63633614040A04E4314117622C0F4521D078F184040EC3A320358DC21C078CF33D46C8E3F407CAD0C442B8621C020865259122D3F40C856B7EE213621C02039D4A771BD3E40C40CD67315AE20C0108C29FD32333E40603D1988E6511CC09060CD6DBA9E3D40A8B804DA7E141AC018636AA4846B3D40D8B1A1108FC217C0B8969DD71D853D40002753F50EAE15C0C8390E150A573D40E861D1A6FBFF11C050BD5C30E6C03D406819F02B3FCF11C080BBBFF9C71D3E40E0F0CD094D5C10C0308352596C813E4030FF31106D8C0CC06843AB4B94C03E4050A91628E8DF0AC0F03F0E1536BE3E40D08C0517374608C0289B9DD715873E40208FDCBA077606C0785D93003E783E40104EA987944F03C048E71B8920C23E40F09EFEDC494C02C068623037EED03E4040E1C986C02EFBBF8004A1744A6B3E4000B62C509027F2BFF0BA22C313C53E40C010F67FA63BF0BF18784148BFDD3F4040F60DCB2470F0BF
-th 0106000020E6100000010000000103000000010000004000000034AFAD886FA559400815CB5F895F2840F8A3D664FA6B5940202ADC709E4A29409A02035E3C35594030977C441141294034400D359F3E5940E8CD124150D32A40F2C05B504206594078A1197B4FD02A40765AF5E932015940F8F3A83D2F9D2840624547A2A6DE5840D8A264F956B1254066714068D7C95840B0D1346316ED23407237D3C73BCE58403880B6B17F7A224072194EDCECF7584028B3E9E46C6A2240DEDFE0BBE51159405041E6471E97204046B04ABF641D5940C0C821E5E1B71D40588B8BE61B415940B0CF32F66E6D1B400AC6F886E067594010FA2BBC65F61A407C410D3509895940205ECC8FF4E21840EA70A3311D745940F056CC8F443E17409C1077B8DE495940402F0D37FAC31640F4B04A3FD544594090DF1AABC8D11840BCF72B3A9D10594040E71AAB40921A408E94620A7D055940608B281FA3DB1940DC4F1E4634EC584080BE21E591641B4034D8A6CE41E15840E00E0360B25F1D403EABAD883FBF5840C0415FEFC8A11F40B6AAAD083EA05840B015ED81BDC3204052DA4305BD95584020F87D74942D1F40D895FFC09989584018C0972C34B320408658F5E9959058400003A203A6F2214034E8B75F6DA35840F859BDEBACDD2340D633369170C25840B81E79A7CCEB2540DED4091896E55840B07F6B3318C92740E64B810F91CC58404884CEFC079C29408EBCBE9991CD5840703616DEE0892A40C074DD9E41C658401894086AAEA72B40BE92628A929B5840189B086A7A3E2D40E0F8C8F04A8C5840D85727EF553F2E401600035E64A258408030CB5FF39D2E40FAB1E775D0B9584044CF18E3852D3040A636D3C7999F584048BACD647CD6304056FF02DEFB765840D075ECE964913140EC83EEAF0E5858405C5E04350872324060E7B7DF0E7358404C81265788A032401EF28E033D905840502D34CB4CB53340E88FC5536BBD584040862657C3C033409A04A094C5E258407C4045DCC42F344064612F576C075940D4969A31F86A34404C0203DE20235940B4023B05F71B3440B4F48E83CD265940803D45DC22823340AAC5F8860C52594000BF93F76B7633402A5858B34C42594054E3EF86AF683240045F92A0CF43594048F73A053383314088EF541645875940F80A4C16EE1B324040B984AC6E9A59404855CAC7CAEE3140D00B3DCBEABF5940DC92D49E31F631407EE67DF2CFCC5940349B0E0C444F3240CA5EF5E936FD5940D4ECC62AAF3D32405EB8E775E22D5A40C8714FB3C96D314044BF2163E0315A403463780F1E713040E0DEA6CEB2655A4048E4AF7700242F40F600C970D6625A40386C726DA7722D409A00C970004E5A400898086AE28B2C40969CFFC002125A403888F7585FD52C4004DCA64E42BF5940884C8AB891732C409082B4424796594048569BC9DAC92A4034AFAD886FA559400815CB5F895F2840
-tg 0106000020E610000001000000010300000001000000130000000061946F06D8FD3F6030D3C99191184000E44F2B42F6F03F6022FC2521B7174000A265E923C8EA3F20C295BFB21E194000A224429640E23F607BDDA04DA81B4000F4DBE3D86BDF3FD02E884BA0A51D40006BA690F1C8E63F8852F758FB9F2040000A61CF2A84DD3FE84EBDEBBC5A214000E0ECF4E96AD73F2037380015EE2240002631396E86D73FF81779A7E661244000C0E7D6617DA9BF30645A22F16925400020D95FB05F983F401F79A79009264000F2466438C9EC3FE0887C44A3FE254000EEBA3EF9B6E83F586C31C60DF1244080225A02A63EF13F10BF861BE959244080A1C0680CCDF63FE80D3F3A9AA6234080D7F39B9F68F73F10E47FE153AB2240801F613CB3A1FA3FC0CDD199D6412240007553C838E7F93F803CD3C901541B400061946F06D8FD3F6030D3C991911840
-tn 0106000020E6100000010000000103000000010000001F000000F072630BDBF62240208F67FEBB4E3E40B0BD7EF3771C2240BA9B9D02250D404070DAA015D2E020408C8B8CF1CD40404000E814F066DC204040855284C95F4040E068375458731E409A5DF6F40BAC404080FD33B711191E403C2589D4760C414010E277B92E4820405A3ED4D2DB534140A06C0042B3C0204038B4AE936CBD4140E0A1D0AB866F204096FAF257723742404003FDA488D72040B25EBC872479424070E003DF1D052340F828EC9DCCAC4240C0DFC971856B2440FC0967B2709D4240706BEF307E5C24400C022D45AD5C4240D08A3AAFC70E264020477109CA8B424080398290363326403CCFF91133734240C00889CA333325402C6B30E27A34424020800042C32F2540BAC95CDB45F9414080D8559708E1254070706A4F78D94140203048239E9D254062AF115DB06A4140D03EF66A974C2440CAFC2CC5562A414090C5E1BCE7AD24403432FD2E93E4404070820042B3B6254074B0AE1366E24040D0A622648D3726404A2AC3418CA540408039E55942FA264012AFAE13899140409098115350DD26409EB78537382F4040A0869D78BBE32540F8194FE7780A4040A0CB7EF31746254034DD4879ECC23F40C084D7E583E623408815B61946603F40003EF66AF71C2440645B97943AF63E40E0E7A015A6F0234058C39A31118A3E40F072630BDBF62240208F67FEBB4E3E40
-tr 0106000020E6100000010000000103000000010000000E00000098F1A074F61D3A401CB19D02D8E94440D0EBC9D0BF223B40785C482D1C124540A863A41129FF3B406E035621F10045405823FD03931D3C402E9CEFBABACF44405820C3960AFD3C40B06B593E64A6444018E2B8BF72CE3C4034DF33FF08874440A86F18EC779E3B407EE2D035FA7F4440A8E82C9A3F313B40C26DF674645844401093747BA65B3A40DA4D718974134440105BA411190B3A40181FDB8C124F444038A622C3930E3A40C68C7BE07C694440C0BBD00A6B4B3A408E150469D77744407075EF8FAC9A3A404AA6C65EF3C7444098F1A074F61D3A401CB19D02D8E94440
-tr 0106000020E61000000100000001030000000100000035000000F013C396B82B3A400CCEBFA457BB4340A0E58F63AF473B4004AE9D02C335444010973A0EEAD13C4058B874A6E13A44402806DBE1703D3D4020A229A8289C4440287F18EC5B253F404242FD2E378B4440407C79968A2C4040342F4FE73DDE44407C292441B3C14040E8DD96486D024540303E355277954140DC9218172605454074E20859E17442403E800706EDAA44408CD4F747802C4340560B2D456B7944401C742E189DC14340A4348954278D4440C0CE20A4CC2F44408A7F0706C0814440BC9A503AECC644407276306290C444406C8FDC5F4D4F4540DE2E4F67A5CA444030021A6A97CA4540F0ECA759CB8B4440707D2E1857E04540042D4FE7BE5E4440704D981B06D4454006DA96C8742044400C152B7B333346408CEAA7D9A30044407C755774A1654640066F93AB43DB4340387E2E18FB0D4640666E932BCDB64340BC856885F03546408679070601244340F4F5A58FE51C464080867BE05CFC4240FC9A16CDE7624640CAF85521D19542405C3AEAD38F2546405010A19F318042404CBB38EF9BF84540EAE74410CCA0424000604663BA634540405C1F5150B14240442FB066BF2C4540424EAB766C9D424050526FBF259B444086847B6084894240F0BA725C2D564440A2958CF1AE8B4240281165E8E3C243401CB074A6A75B42407831870A96594340F6F01B34415B424028712E1878154340EEB311DD5A73424044F7B6A08B884240E8AF74A6BF4F424078486FBFA75E424018A69D82A4684240A029EAD3BA574240E241D4D23D2142404CD0F7477235424036ABD7EF320542400CC2836D2B1342408C14DB0C28E941402CB0725C1BE441408A15DB0C332342400C8816CD95144240422E260B47534240309BC41485C6414042C4226E60484240C0FF2A7B765B4140D6D533FFD3654240409B614B7103414006AF74A6271C4240B8642E182C414040C6AE74A6C40D4240880D3EAB18B33F40503F379C77524240F02A60CD229F3E400EEAE146C4564240380BDBE11E643E4050E2A759A9214240B0F32C9A31B33D404E89B54D7A124240280EB2859FBB3C40300C0469A2564240D81D60CD24A43B401ED2964854544240488F3A0E7C0C3B400E2D8954A1D3424028D7B8BF76513A40C042371CA41A434090BA33D400CE3A40F258E5632D7E4340F013C396B82B3A400CCEBFA457BB4340
-tm 0106000020E610000001000000010300000001000000360000003033F10DFC9A4E407CCCF99135D34140841E43C6C08F4E40BA9729A8EC3E42408CC7ED7056304E40F0B94B4A81434240E0685EAE0C9E4D40E2BB4BCADCB44240C03A65E8D3374D4012487109DBC2424044C48AA74BAA4C403EBD4BCABD034340707E4663474F4C4066E6A7D9890F4340989F688516174C401294EF3AB2F74240344CB0667BC14B407E23B23068FB424000DA725C70664B40B2FCF2D73AB242400801CFEBF6F54A40489929287699424088B5503A25DE4A40A6042D45FCF342407C268E44C2F04A40903DFD2EDE79434030282B7BEE8C4A40A493528431A5434088BB8AA7CCAD4A40D03FFD2ED6FC43401C912E18D4584A40506CF6F44D044440409FA2F226754A4088FDB8EA3170444048CAFE81D7ED4A401C82A4BCC550444040A3A2F2505E4B40BCD45CDBBA794440D4379F5510014B4092C1AE138EC644409463981B61DC4A406485A4BCC40F4540F420F10D58754A4022A08C711EEF444064CB9BB847684A409A4CD4D253914440CC78E39950404A40CA43FDAE43E44440C479E399DE784A40F2E4D035DA0E45406CD8725C2A0A4B40B600B96A7C294540B4A63F29AF604B4022D75CDBA00545405890F4AA45BA4B40B8F0441043A14440E831C8B1EDFB4B40EED8F99181A744400C423C8C568C4C40266FF67441A944402856EAD352774C4086B43A39BBE9444008BBB303ADE44C40885C48ADD41545407CF3836D83504D402850D4D2326045400856B066FBFC4D40068941F38D1C4540603E65E8AA0A4E401C2BB2306BB6444040160959A43B4E403A8ADEA9339C444070820CF609C64E407EE66D6C18A24440302043C6FCF04E40C2901897DC8A44401051D9C2E72F4F40F26859BEE506444054ACCB4E4EC24F409226B2307FAE43405CEB13EFE40A5040A27030623A72434066045FEDD24D504094A99D828B33434010399220F4A250401C20157AC2FC4240AA0C99DA30A150409AC285B76FAE4240D02047A2E98D5040ACC285B767B24240C634F569B86F50402A780706A1D442401A831052B165504080FCF25711A742400C60EE2FC02F5040462F260B508E42400ECD8E83F9225040168D5204F2274240F880D288CFFD4F4028480EC00401424090D427DEC5984F407A55829AB7ED4140DC2C1A6A097E4F40963C379CB7B341406024E0FC851D4F406624EC1DA5A241403033F10DFC9A4E407CCCF99135D34140
-ug 0106000020E6100000010000000103000000010000001B00000018784148BFDD3F4040F60DCB2470F0BFF0BA22C313C53E40C010F67FA63BF0BF8004A1744A6B3E4000B62C509027F2BF40CBD00A4FD23D40405BEF45D917F7BFD8D744E557943D40600C0ECB0476F5BF20E21B897C963D408085BF0607CCE2BFF8E955F6CAD13D40002415669A47CABF80CBD00A33E03D4000581163BC1DE33F581E89290E163E40C0A32CA23BFFF03F30DFE11BF0773E40405452614457F93F8828C39648DA3E40002DE5C02097FD3F38D1D00A952C3F40A0878AABBEA20140A89F3A0EFAC53E40C06D05C014B80240809C9DD777D53E4080A4799AC5120C408097636ADD3E3F4020BF8AAB4E410E4038895259A6E13F40A0A916D15D770C403C87503ADC57404040CDFE85AF560E4038F98D4482A54040A0A4A2F6DC6D0E409C0465E822E94040D0FF5EEF00A410404CB00F9301244140204E244598D40B40D8F8F00D3957414060793F2D9DD403404052E399FA7C414080B744ED79BEFB3F689C614BE946414040C0B18DAD84F03F0C5ABA3D41EF4040007422C6F896D83F089427DED8EC404000E0CC147A67C03F90E242C6BBED404000B08599A602EEBF18784148BFDD3F4040F60DCB2470F0BF
-ua 0106000020E6100000010000000103000000010000006200000008F6F22C37C93F4014F496C8030D4A40441C4D9D671440400291CD98D7074A4020383552BE3440404487F6F4F3244A405024870A9E5B404070687109861E4A406C2DC17758E04040A2CB3AB9E32A4A40FC8A503A2432414048E285B76AE249405CDC08592C124140289AA43C80C849402813D9C2C61C4140D28B3062C4A049400C37FBE4D682414042B1EFBA919A4940548616CD5FB04140265460F810634940E4BCE63695AD4140DA75829AE14949408C008E4426504240089EDE29E01C49400C6C91E15CB24240E88930622531494014B5725C5C01434016599A6534F54840C8B90F93284C43409EA7B54D96F648405C1265E8D60844402E883062EFCC484090A8614B570A444038CF11DD59A748402C5946635BD64340DE9ADE2954644840C0A4C414A4F243403C964173BF1D4840347191E17FDE43403AB4C65E10F3474050796885A2624340A076BC87ADE947402C786885A7204340BA944173F0C54740143EFBE49C1C43407615908E148D4740543CFBE46AB642405A26A11FD882474048DBCEEB42614240D4BB9D026F59474068D2947E6EE94140F662ABF6AE524740D488B3032E7B4140626C821AF8224740844BA92CA9824140A8DBBF245BD3464030490CF647C141407293DEA97AB44640A41B76F9D6434240F022A19F28BC4640809927DED72A4240C8F5A7D97D8E4640EC9D614BB89E41408CB400CC517846402808021FF6F0404068D522EE442E464094773F29C8A940403665E5E34D484640501F4D9D01C64040ECADC65E7384464048494663223A4040361F0469EAA94640B0E67C33BE504040E66348AD74C24640E433FBE448CB4040F21C673200ED4640345C577437A640401C2BDB0C510A4740A8C2BFF97FBE3F4028DDBF24AB2A4740B85182EFE0AC3F40788FA43C665A4740B05E9300AEBF3E40C88B0706A34A474070EC55F6AA603E4078A2520426044740004C1F26719A3D40703AEC1D8BA54640A01D266054263D40C86348AD82BB464008F6660706AE3C405418CA7BEAA6464030168929CA3B3C4004FA441080BE464090BE969D3A7C3C407290417367CC4640704482EFF4A83C40D6017F7D51F8464068D8E11B08EF3C4068E05C5B2121474090B222C3EBDC3C403247C3C10C384740F0F02C9A75123D407A2F78434342474058B7BFF9AF2B3D40AE7D93AB8B304740A812B2858DC23D403E519A65CC2C4740F0FB660750063E40F813908E43364740A04982EF94D63D4050997BE03D43474020434882AAE83D40D092417351564740482660CD468F3D4006A1B5CDDB764740883DAB4B466A3D4002B3C6DE5EAC474020D2A7AE050D3D40503FEC1D4FC14740E8491F26691F3D4098C87426AFEC4740E00DB285BFAB3C40A0067F7D1F0F4840302ED4A771423C404866AB76E9134840B820FD03C5853B40ACE8F991CA3B4840B8D27E529ADB3A40D277BC87212F4840305A07DB8C9E3A401E4BC3C1401C484060CCE11B8C323A40662C3ED6451C4840C87CC63329F23940BE6CE5E35AFE474000F13DAB2E3539407AF80A230EF2474030D455F6C6DD3840D879593E67DE474020351F26ED6638403481932BAEFD474088028929CEC23740F09F181728FE4740D8D62C9A69243740323D4FE7540C484088D18F63E5B53640F2A9EFBAEBF0474068678CC60CA43640A82FDB0C3B134840683FCD6DEA153640904BC3C10C36484080AD6D41E54736408A974173A669484060BCE11BE28E36405468AB76F98A4840D0D18F63C3C63640D43BB2B081834840D82C1F26B98436407010B9EA06BD4840F018D4A72F6D37407845EC1D7D274940B0DDC9D039EC3740EADBE8806236494080331F26AD073840B03878C34A5A4940A0C0E11BEE863740EEF296C80ACA4940686D8CC64C013840F0444F6708CF494068092660988D384084A81817B9F1494028C544E5E953394028A57B6090F4494090F2A07484563A40F2CDD76F88EA494018CBA7AE3D743B40FA8FCD98D0CB4940589B747BDA3D3C402C9AA4BC3EC94940303371DE1B9E3C40584B8954BFB6494038FEA0742AFE3C4016DB4BCA0FCD4940289200A143413D40CAAAB54D22AF4940E08B29FD48283E406A96070644B54940682089291C8E3E40AA0D7F7DE5A849401887EF8F949E3E404CFAD0B551E94940583D71DE73ED3E40CE343ED66B054A4008F6F22C37C93F4014F496C8030D4A40
-ae 0106000020E61000000100000001030000000100000016000000D487F4AA2DCA4940F8C282E6D83E3840907A80D0F3E04940A83AFA5D484B384060363C8CAEE54940D0C8BC5313053840BC0B43C6DD494A40D41E12A96C2D384010F9947EB6B34A405C8F4FB3BC2638404875A92C06014B4074FCEF862B1F384000E44900B5584B40C8F17BAC42CC384004750CF631B84B40F0E607D26B7039407CC18AA710094C40F0CA82E6320E3A40788480D069214C402C227572F0B639400C66FBE4CB324C4080EB413FBBEC3840B4F75A1170F14B4064A0C38DBBEB384038DC725CEDE64B402871CAC704453840741D1A6A98FD4B4038B8AB426B2138400C197D33AAC34B40F8ED7BAC00EF37400042D9C24EC34B40BCAE71D55D86374024716FBF039E4B40E80F3B056A1C3740DC03CFEBAA9A4B40A0BF1F1D55B536406C03CFEBDE804B4024FC29F4377F3640847E1D0718004A40A81912A94B003740E44D870A11CF49408821AFDFA3033840D487F4AA2DCA4940F8C282E6D83E3840
-gb 0106000020E61000000100000001030000000100000008000000D08D1B64E6491EC028FE33FFD8904B4040B24E9775EF1AC0BA12E24620964B40B0E392DBD5A516C0BAA0A43CFD464B40D0347456A2CA18C05AC1C65E0CEF4A4030C75FA89ED01BC01CDDAE136F094B40D08D1B64E6491EC042D674A6AC074B40C0AFDABCD0761DC04CB55284444C4B40D08D1B64E6491EC028FE33FFD8904B40
-gb 0106000020E6100000010000000103000000010000002C000000C08C880492D810C02CB7181782464D4040AE69FB3F0A08C0DA68FDAE47514D4020059DB2994B10C0CEBB5284C9C64C40C07C36C8A47008C0885C268B52D84C40807CD6933659FFBF18BC5284A7D74C404025C92789C201C0B6BDEFBA5C6F4C4080301BE0B7F308C010740E40A5FC4B400024665E19AE00C0345589D47AF44B4000E546D100D7F1BF0026908EFF4F4B4000AE5BEC108DDBBF927748AD703B4B400098E3C077ADC73F400B45109AA94A4000FA4FBE1914DE3FF2CC3A390A774A4080BAFAD58CE7FA3F8092CD98A85E4A400041BDCBB5F5F83F8C6B0EC0CC0C4A40005BC7A219CFF03FC8E522EE43E74940003D5A02A632F73F485560F80BA549400091B067559CE13F4AB0EFBA0362494000FF56D25733E9BF04323ED63263494080D973D283EB03C0C85D379C0040494040DCFFF772A607C046D2115D3359494000CE409F88F00CC0884FC3C13A1D49406025E830872B12C0BE781F51C12B494040F4DD59E7FA14C04407E246E1FA4840D0CD475D341B17C058781F5170144940A04DE1F66D3D11C0A87A1F51E19A4940409070359D510BC0429D417387B649407059E1F6FDEF13C0942967B2F6CB4940705EE1F6B51115C0AAFAD035E6FE4940C05955D1AEE310C02865D4D292264A40805C1B647E1413C0B4F59648856B4A40A0A7364CEB5112C026F796485CBF4A4080F5AD3F94BC08C0E2E585B7C4B34A4040B6409F608F07C0365B607814FE4A404049554D400A0DC0F88859BEB84E4B4040D592DB6D6013C02856268B3E654B4080D992DB815414C08A86BC87E2874B4020E4A3EC5EE012C01E2156A115C14B40C0193AE9213114C0D6090BA359E44B40C00E8CA1785816C0CA080BA3D3A74B40802E118D7A9416C0C44BB2B033234C40D0D7E493949918C0FE3467327B644C40309EB160B52517C07EA40706D0E84C40404C6D1C3D0A14C0541AE246A4504D40C08C880492D810C02CB7181782464D40
-us 0106000020E6100000010000000103000000010000000B000000F5244AEF87C363C07C7FB27C8F5135400C254A6FBDC863C0DCB3E5AFD2953540FBC1807FF0C363C028218683AA9935405FD62EC7CCBE63C0D0F1EF868CB335404939F8F68BBA63C050DC413FB178354084B7A97B11B763C09CCECD642C753540616C2B4A55B463C0DC1F8683C14E35405C8476A88FB963C0C0309794C444354049625426DBBC63C0E8D407D22E573540A954E08BABBE63C094F38CBDB0533540F5244AEF87C363C07C7FB27C8F513540
-us 0106000020E6100000010000000103000000010000000A0000008CD0F4F940F963C010E918E3B30A3640654B098840F763C0E8ECB519E4233640615C1AF988F263C0E0864FB31F393640AEFCEDFF43EB63C0FC0B3B0536383640712C84DCC0E963C0002723BA6F2736402CAED2D7FFEA63C08C18AFDF40F935404A22ADD8BDEE63C0E00DD83B4AE03540E7AA35C17BF363C09C0A3B05D6E835408CD0F4F940F963C010E918E3B30A36408CD0F4F940F963C010E918E3B30A3640
-us 0106000020E6100000010000000103000000010000000D0000009853E0AB988063C038F18CBDC4CA3440CE234A2F6F8063C0D0DF7BACFDB63440FAA835A16D8363C094F08CBD10A534407AFE8AD6148D63C0504245DCEC9A3440F19E5E9D5C8F63C06413AFDF1DCD344026C180BFB19363C0E0DCDE7563D234401E13391E549663C0003D0B6FF5F2344000C8BA0C059563C0E0C593F745063540D4A598CABB9263C0603D0B6FC908354040577D22BF8E63C0E8B0E5AF2CEA344023BA4692E18863C00C77780F87F334409853E0AB988063C038F18CBDC4CA34409853E0AB988063C038F18CBDC4CA3440
-us 0106000020E610000001000000010300000001000000060000007F3F3204CA9663C02848E212B4273540C4D52EE7839B63C000295D276C0E3540DEB30C454AA963C070BF598AD21C35407C244A6FFFA763C038049ECED13A35407F3F3204CA9663C02848E212B42735407F3F3204CA9663C02848E212B4273540
-us 0106000020E610000001000000010300000001000000130000006331BEA9337C63C008B3BC530D1233406331BEA9337C63C008B3BC530D1233408653E0EB807C63C080FF3A05EE6133404E38F8D68E8163C050346E38FDBF33406FDF05EB3F7A63C0E8D5413FA1033440B0AF6F6E917C63C00C4EB9B6DA2A34403638F816FA7B63C03844E21282423440CC6EC8A09C7A63C02822C0F09B4634403664F17C5C6663C054245D2790FE334082F3B332C16263C0D8FA009829E03340E6591A191C6263C0F841E2128ABF3340233B952DA65F63C0480B12A962BB3340873E32847B5E63C06C939A3107A53340D26A2BEABB5963C0B8FC9DCE41863340842D2113B66163C060BE93F7B5513340AF678E53E86963C0F0C4CD649A4233402F948799207163C0745ACAC7EB1B3340CB567D02057463C078673EA2C2F632406331BEA9337C63C008B3BC530D123340
-us 0106000020E6100000010000000103000000010000000C00000038BFA9BB697765C0A688AB7629E44F4030DA9170A96365C07A2FB9EACCCB4F40E64D6C31B74F65C05AA0F6F4F4D84F40B891B015D73565C036DD00CC2EB74F4007D257E30F1665C01A73FDAE14A64F40B3A55EBDB31865C0AA3FCAFB23984F40065BE02BF13065C0E6C018170C7D4F407B32843C4C4965C03A658954E3984F40C6E0CBFD7B5565C03AFF22EE1AB04F407C4E6CB1B27165C046951F51ADA84F40F9DD2EC7507965C0826CC3C1F2B34F4038BFA9BB697765C0A688AB7629E44F40
-us 0106000020E610000001000000010300000001000000880000000D6A65378D9F61C03F31BC61916D51403329BE8CC29F61C08DF6EB770080504015A4D2BAED9F61C0C0D99D0238274E408469657A6A8061C04C106E6C6F234E403139CF7D3F6161C0B4ACA43C00004E4076464378E84A61C0D6F622EEF2C74D409A194AF27A2E61C090EEE880D6734D4074E279E8590F61C032564FE75FBB4D40BE85EA053AEF60C0EAF385B7D5E44D406274D9543DDE60C09CF9BF24A1A24D405C6665DAACC860C03AE411DD386E4D40B5A60CA860AB60C0FED83A3984344D40F005399B5F9760C038A40786B0D84C40451D8479A67660C0D426F357AB464C40379798A73F4060C03855895439F54B4088ECED1C5C3F60C0829B6ACF7AA44B40115A8ED0275160C07637A19FC0664B40B3AFE305BF6260C0AA649A65E6964B4028767665F37E60C0C668371CB7BF4B4061878716008860C0867171095C2F4C40D97DB0F840B160C040FF96C8E5964C407736CF7D7FC260C09E7F48ADC00F4D4087BF570639E160C08475710907184D4063232116191461C0D07F48AD291B4D4012FBC4A6993961C03813A8D9FF3F4D405E5854E9C47B61C0D2CDC65ED5C44D409ADAA2A4689A61C0F6EC4B4A1FDD4D40BDD468D761D261C066FBBF24CF0A4E407C383227AFFE61C036FBBF24E5FF4D40B35B54299E3D62C080DD3AB9B33A4E402E638EF3A86362C06C4104693C714E40D43A32842D8762C0AAC2528424564E40580E39FE938062C0009F30E239FD4D409B37952D449262C07E72379C03F54D402D27849C4AB762C06ED89D0253DA4D408E3FCFBA76D362C03860268B21AF4D4086CF91B0ECF662C028C68CF1F1934D4030CCF47980FB62C08C120BA35BDF4D4002DD056B1CED62C02A8C821AE75C4E400DB00C251ACB62C0BCA4CD984C844E401F02C523E0D362C0547C710968A44E400636F8B6AAFC62C0B077D4D2145D4E40CF3995AD811263C0309F3062E4074E40AFE8DC0E9D4063C0CC96F6F4D5AC4D400ADE054B332963C0C46C9A65AF6E4D401FA1FB93704763C0C2CAC65EBC124D40FAE53FF8D66963C0D8C9C65E28DD4C40106FC8E0DD8963C0C66260781DB64C40F2C7BA8CCB9163C092F4BF24707D4C40D165F13CC0C363C04CD19D82573B4C40787A9FC4DDCD63C0E2066E6C40FF4B40275243754EF363C0E491932B89C84B40541F1062450964C0F00CA8D960D24B400419D634232764C0B238A19FAFAE4B40BF129CC79B4764C0E226908E18834B403B4D09E8386264C018B2B54D49584B40CD211062239964C0B4BB8CF1BB334B4040B1D2B7269E64C098A7DEA93E494B40BA5E1A99257B64C072AF18170C854B407105280DD75B64C0847948AD8CAC4B40DB0428CDBB3964C08E1EB9EA8EF24B4026CABA0C091264C004EF22EE07014C40819DC106420264C06E3E3ED682354C409F17D6F4E6D563C0EA38046922824C4027254A4FC1CE63C006E4AE13C49B4C40BF244AEF20B763C00018E2C6F5C84C40445B1AD99BB163C0CA9ECD98062A4D40D69BC16655A163C0B4D69D029E754D40DC65F13C3BC663C0A26F379CD24E4D4006C9BA0C8DD063C0A0A60706D6644D4026D0F419E0E163C022C1EFBA4B364D4081D0F4F9C5F663C050D300CC37774D4085AED2B766FF63C06CEA4B4A49494D4057E5A2615E0B64C0FEFFF9911A894D40CC9A24305C2B64C028D69D02DE554D40F204282D013F64C0A687821AF9554D405E312173C24164C01071379C2AA24D406019D634F93B64C02AF0E8801AD14D4076D591F0935064C01C4D7843AFFE4D40CA0C62DA2F7A64C08453B2B026E64D40CA95EAE2309564C062F822EE3C224E40B6BBA99B15AB64C0E65BEC9DF5404E40380AC5033AAB64C0A0719A6575894E40D1038B56E2C364C03046A19F00C04E4045AE35A180B764C06E0D347F99094F4054FC50E9699D64C01CE974A608514F4096D69110009264C05298BC87BC924F40E7CBBA4C1B7864C0725E4FE7169C4F40FAA5FBB3266264C02235F3579C874F40CDE93F78564864C01AEB74265EC54F404B018B361A3164C0E213D13558BA4F4076FDED5FB81864C07A6689D40FE24F4078B26FAEAA1E64C0695EEF54420E504024423204943064C0A5359345C71950405878028EE31864C07B39307C783250405DC0E3A88A2C64C035F5EB37BE3150409394EA627F4E64C0895418F1CD235040168776C83F5864C09D0C37B6AB155040F961B70F7C7164C00906FD48C9235040A817391EBF9E64C053099ABF9A1C5040F5C91DF69BCD64C0936C636FF22B5040346754460ADB64C07F811177B0455040D45643B5890365C067C6553BE16A5040081CD69491D664C0210B9AFFA6855040A5BE46D2308F64C0A90B9AFFE7A4504012395B60E17464C0A90B9AFFE7A45040B89887393C7964C0958211F7F084504037A5FB53B03564C043F34E816E87504046DCCBBDAB4F64C0D70B9A7F13AF5040D457E0EB077764C06B68290273C7504061B46FAECA8D64C031D6C91572E75040AE47CF3A7DAC64C0C12148C7BC02514088934D4C76D864C0114BA4D6F7165140DD038BF68CC664C07BEF149483385140AC322133C98D64C05F30BC21983A514050877648656564C049345958C0575140D2F7B332C75D64C00F3F307CEA7651401361B7AF153D64C04724484755955140340B62DAE91D64C02DB7A7F3A69C51405D3D95ED40E163C013BB44AA10B9514053B40CC5D4C363C011CC553BC8B45140FF9E5E1D969263C085AA3399E5D65140BDFD8A562B6263C0692F1F2B75C951405B9AC166034B63C08D9F5CF591AC51404FCDF4D9CC3C63C095096092F5B85140AD4AA65EB80663C0D5C17E971EB551408CEE16DCA30863C02584748066A651403D769F04AED762C0318E4B64859B5140A001C5430AB762C01B5B18B1EBA15140C37E76A8A07362C0A90F9ABFB28D514054517D65143662C067B30A3DAE8751403DA6D2BA701D62C0D9AF6D065C7F5140B9753CBEDCF261C04BF4B1CAC2895140130B390152C261C0C55DB52786765140C2EBB3358D9F61C03F31BC61916D51400D6A65378D9F61C03F31BC61916D5140
-us 0106000020E6100000010000000103000000010000000900000057335BC0512763C0F6C6292807FC4C403003C5C3121263C0D26360F861F34C402CD32E47840463C094A06ACFA7CB4C40CB9287B9332063C03E21B9EAD38E4C40F12C21B3294063C0FA7FE5E3095E4C40F885135F865063C0A6689A65127F4C407B26E7C5785563C0C07AAB7608BB4C40A6D091B0683863C062BC528485E84C4057335BC0512763C0F6C6292807FC4C40
-us 0106000020E610000001000000010300000001000000070000000CDB2E27F8CE64C06451157A2C314E40034195ED94B564C0204004E994254E4052D0578388B264C0ECAF41737AF44D4037934D2C2BC664C0A4C0528491E04D4015E2689425DB64C0BC0834FF7FF84D4038AF35A191EE64C0FC16A8D9451B4E400CDB2E27F8CE64C06451157A2C314E40
-us 0106000020E6100000010000000103000000010000003201000018533472E9C750C000DD5C5B305B46409E2E75192B0651C0EEAF63957B324640BA06190A4A4451C018F74410571446405CD148E0E78C51C066C94B4A6BC74540E5D148E028AC51C032F1A759D78345405450FA4427B451C0D6F0A7D9C16E4540B67CF3CACCB451C0E2BF11DDE02A454056DFBCFAAD9F51C07E5171090AE744405F90A1D21E8551C0CE7D6A4FD7E344408A047CD3D68B51C0D24ED4528F1245400A0BB680A37851C08C1E3ED61EF64440EA3A4CFDC27D51C086B7D7EF8ED14440706BE2B9F5A851C0BC160469CCBC4440C8D5E556B4C751C06C8741F349BF4440438190410AF751C07E61821AF6A84440CE92A112E11252C0086FF6F48EA24440C44BC057173852C0CA4CD4D23D9C44402F0FB600FD6952C0686EF674187E4440EE178D64F51252C062530E409F8E4440370A198A700F52C05E19A11F4B8F4440E551FA446F0F52C05E19A11F4B8F444036C2370F78FC51C0CABC115D0B774440AEB2267E145652C03EA4C6DEA35044403CF4CD0BDB7E52C0689D8C715E5044406DC437CF937D52C00404F3579F5C44400A6FE2796F7A52C046C0AE93E67A4440C0C437CF6D9052C0BC47379C9B3C4440F4D8E516608052C0269652840B374440B1FEA4AF6A8B52C0C02A4FE7C8DA43401B367599FCB952C0DAF51BB442784340D743E9F3BEBE52C0D6F9B86A239943406A993E49CDCC52C07A824173CD9F434066B8C33429DC52C06A12046947C1434035AEEC90FADE52C044F0E1068BC043403E11B680CBE152C020CEBFA4CEBF43402296A1D27AD452C0DC1E7843E17A4340D2F86A8214C352C03832260B77394340C695A11285BF52C022B711DDE22D434017AEEC5028D852C0EEDBD035FC014340AE747FF02CFC52C0CCADD76FC39B42403C4FC057000253C090F5B8EAD7A042402093045C08EC52C0ECD496C84BF742402E45E9F3A10C53C002AD3AB96C34434074B289075C0F53C08052AB767A944340168DCAEEE51953C0504E0E4072674340903EAF06031953C0F80E04E99BF84240D2D848205C3F53C0DC19DB0CB81E4340B8D4AB690A1753C0BA63593E0AD74240287F5614FA0953C02C254F6717964240E88F67258EF752C01C3F379C8F464240D2A078368FEE52C0E202CAFB7EC64140D759977B3E1753C04001CA7B7E674140EEF7CD4B095653C05A8CEF3A3C3641405A0D7CD3CC8C53C0FA46AB76C2F540403CBF606B7AA353C0EA57BC8740EE40401226C751A1BC53C040D1D0356194404096E9BCFA7AF453C006F2F2D71E454040A83C75D95B3754C03AA911DD42044040FAE0E516335354C06C8256EDCC4C3F40A7585D0E635F54C0E445E94CE0BA3E40B828C7110A5754C0D401423F00003E40E4242A1BB83E54C030C4D49E142E3D4006F83055EB2154C0B42AD83B146E3C4006F83055EB2154C03896780F3D0A3C40D2D8ABA9080654C00CE7CD64F8033B4094A57836610354C008984FB3431F3A404280B99DA51054C07064B9B69841394029BEC334852B54C00890B27C7A1439409C734503044B54C0942DE94C85333940D98456941E5554C04CFCB519D6A33940AE88F38A706D54C02C3E5D27B8DE3940A65223615C8F54C07490780FE1BA3A40AE040879B8AE54C09C1F9ECEC2753B402E6B6E5F86B454C0E0E0F6C0F1F03B405AFA30D599A954C0AC68E212CC8C3C400C383BEC51B854C00C206461291C3D4082912DB8EBE154C0FCA01546C2B53D40DE4DE973660655C04CB089200A173E400A3ED862664E55C0548C67FE84AB3D40810E42E61E5D55C00468A8A533F33D40AA942D78999955C07C1B8DBD66663E40B2C5C374F1E155C0F454FA5D3A463E405A0EA5AFBD1A56C0E8CC71D589623E40D678A84CEB4156C07454FA5DF5283E40E8B6B2E3B66656C09C02423F252D3E407657866A146E56C0CC3AAFDF8EC23D401480E279205A56C078539794DC283D40AC2F2A5B27B256C038A54FB3B81E3D406460C09783E856C0F0AC892015533D408FE948A0700D57C008448683AE873D4038F1828D143E57C028077CACF5A83D40D062C057877557C0A05CD10191B03D405E9A900129AC57C034AAECE9E17A3D402091B99D6AE657C0F009B61917BD3C402A1EDFDC042658C0942D7572B64E3C404DA767E5F54858C0C8A926577BD43B40FEE471FCAD5758C04CF6413F48613B4048C6ECD0515858C0CC7BCAC7A3B03A40D45F86AA1E5558C0D83823BAC2353A404DA767E5F54858C02C3E5D27B8DE39406C8C7FB0EB6158C0ACAE9A310AD73940DB9AF30A5C8F58C0606B56ED5C0F3A401A6523A147C158C0788BDBD8B75E3A40069CF34A33D358C05C9415460BD73A406CF8828D47E158C0EC48FA5D3D8A3B40240A945E0A0759C0788567FE291C3C40961BA5AF2C1D59C038812D9135B23C4080AB6765493D59C018620B6F76613D407C7CD1A8646A59C09C5934CB7FC73D40F9793432B89E59C0CC3AAFDF8EC23D40DA1031550AC759C0C0D782E652F83C408D41C71129FC59C0AC721C801E453D40F9826E1F3F1D5AC0C8A3B27C6C923D40E690E2F92A2D5AC010E7598A291F3E40FF4C9E7564425AC0005A9794DEA43E40FF3F2ADB6B685AC0A87A1C8076153F400EF20E3325895AC0E01F8DBD62663F400E8CA88C7CA05AC0408B905A28C13F4026C1DB3FAB0E5BC0408B905A28C13F406A68E9F37B0F5BC020D171D59B573F4035BBA1523D425BC01897043589573F4038C4DBBF82C15BC004C060C4B0553F40323E53F784535CC0CACED035020540403A6C4CFD28B45CC06458593E3C434040A6579EF542AE5CC0E8A3D76FCC5B404012930B1672FF5CC064C25C5B624E404011EDFD212D485DC01066CD988544404096B62DB8ED4F5DC03CF68F0EA473404000435377116B5DC0D0349A65D4B54040694E2ADB50AF5DC0768BEFBA6402414059000F3318C95DC02EFC2CC51D074140554F2AD5E7E45DC04663932B662F4140E53442E089175EC02248AB763A3941408627CE05DD275EC09CCD9648E54D41401865D81CA32F5EC0A0389A65149441409AA3E2B3BB6D5EC054EC7E7DAC144240EB0A49DA09A35EC0567BA43CA0C6424018DBB29DC4A05EC02A34C3C145E442403E865D0801BD5EC07A31268B8D0E4340124DF0678AEE5EC044BF4BCACF794340D2E689015FF75EC020D25C5B2CE24340A2542AD579195FC0DC5BE5E3162844406F2BCE45720B5FC01CFEB86A2D924440B2986E59AD0D5FC0F62815FAF3FF44406DC5679F4A225FC068FA7E7DB94745400DEEC3AED50E5FC00E7B3062F3D0454015D678B0690A5FC00ACC4B4A356146400FCF3EC3FAFE5EC0B224A19F5A2247402C39422074105FC0929A7BE0A98C47409BE04F14111B5FC05EE45C5BD00748404D4CF067E4C15EC072F80A2391F04740FD44B67A97A55EC03EE25C5B498C4740D32C6B7CC2955EC0AA86CD9814AE474041D4783000A05EC07C2504690A174840C33742A059BE5EC0D21256A1A3804840C9F3378FFF415DC04CC43A390080484077E8606B15035DC04CC43A39008048406689A80CF4055AC0DCE9F991BF80484040E80E33A34E58C010BA631517804840FAE50E332ECA57C04CC43A39008048400AF71F84FDC957C0A0D9E8002FB148403AB9156D53B457C05021CA7BCCB14840E9332ADBF5A857C0FC9ADEA9856B4840986D97BB109557C0DAA4B54DDA5548407E174226606857C034B96315FC4D4840F9AFDB3F0A2757C0BED0AE139A394840332D8DE4F5E856C0281B2DC5EB11484015BFECD01EB556C0B8FCA7598F224840F8C7C374666656C00A14F35747014840F8C7C374666656C00A14F3574701484090491210E55F56C08C9C7BE0C1FF47408E20B6C0265D56C0B89541737CFF4740FCF3BC7A775156C0CCCFAE1389024840CBA83E09E14B56C00E03E2C60E0648408DC089C7054456C0404E6078040C48407AA83E09863956C034B86315F11348402AA83E092B2756C06A7EF674C2214840B1D7D405331856C040D7E800C626484088851C67470A56C00029A19FE11C484054E8E55634FF55C09EBB00CC13144840D0AADB3FE7FA55C0C68B6ACFB0104840061142A697EF55C0FA1A2D45C00748402CB1152DA4DF55C0085F718915FB474054288DA451CD55C04AAD8C7197EC474040326488FFBA55C000D6E88018DE47402AC8602B03AB55C00C1A2DC56DD147405E2EC791B39F55C03098DE298EC84740526834F26E9B55C0DC539A6519C54740BC3B3B2C018F55C064D5E880DFBA4740260F4266938255C0EC56379CA5B04740075AC0172E7655C0E8B2C6DE6AA64740712DC751C06955C0E40E5621309C4740DA00CE8B525D55C07EA1B54DE591474044D4D4C5E45055C07AFD4490AA874740261F53777F4455C0007F93AB707D474090F259B1113855C0FCDA22EE357347404EBF263EEB3455C05AE89648246247400018190ADF3155C07014908E8C5147405C2CC7919F2A55C09069E5638F45474095BB89C7CC2255C0F86C829AF34447401E441250C42255C0F86C829AF3444740341E53776E0D55C0EA09B9EA0441474072D6717C180955C0203DEC9D904147407B4A4C7DE00755C0621E67325840474005D3D445370855C072061C34E83D47401CE4E556A30955C018C2D76FF63847400F47AF865E0755C0181E67327A2F47401ABB8907E50655C0DCA98CF1E9244740A41AB6C0DC0455C0F268E5E397214740A0F15931BF0155C098FB4410471A4740C8C1C3345CFE54C0D4B36395321547402F73A84C02F954C0CC61AB76F70E4740DF79E2B9D8F054C06835B2B0F20D4740F8AC15ADD1EA54C0D061ABF6B50F4740207D7FB06EE754C0CC61AB76F70E47401A2BC7D192E154C008F16DEC83074740EC08A5AFBADE54C068CBAE130C034740D8F7931E0DDE54C0408030E251FF464053EA1F44F1E554C03E4960F88FE84640CA31013F69D954C0629EB54D51DD4640F0FA309575CB54C034D822EEFCD04640028AF38AD4BA54C01C34B2304BC246407AFA3095ABB054C04A89070648B94640833E755942A354C078EF6D6C7BAC464076A13E89FDA054C026EF6D6C209A46402CFA30150F9F54C070142D45C08A4640FFD70E33969C54C0A0D622EE357546405A3E75D9149A54C0A29F5284325F4640F0117C13939754C00E6C1FD151494640A36A6E1FE69454C05216CAFB15324640C0C6FDA1FC9154C08EC074A69E18464066AB15ED698F54C0F68C4173FF01464071F6935E918C54C0A8112DC545E9454097C6FD21CF8854C0224B9A6519C9454070F6931E328C54C090BBD7EFB4BC4540CA6334F2829354C0BC2B15FAADA14540D2B5EC501D9A54C04AF1A7594C894540F43AD8A2B09A54C0C48A41F3408245403BB989C7E09954C0464D379C117F4540724F86EA809B54C0D6499AE5717D4540269EA1520EA754C0D6C011DD70624540A1FA309599B954C0300B900E0A37454080532361F8C054C05E07F357961F4540D8C0C374AAC754C0A0DAF9913A0A4540F945AFC63DC854C08AC9E880CE084540EFD1D48516C954C02633EC1DE3FC444042C4602BCDC754C03CF2441091F944400068D168E8C154C0C421DB0C99EA44402A5A5D8E71B754C0C07D6A4F5EE04440D6373B6C2AAC54C01C06F3D769D64440D0DE48201D9C54C01C06F3D769D64440C4117C13A78D54C0A8BE115DB0E34440C2B88947587E54C0B48BDE29C7F144406E6D0B16B27054C03C44FD2E4FFE4440C006A52F796054C0B4146732470D45401C3D7599C65154C09ABF115DC11A454006D3713CCA4154C006156732A21F4540DBA2DBFFAC2B54C03A60E56356264540338E2DF84F2154C0BA9DEFBA852945405E87F38A0A2154C0A88CDEA9962945405091CA2ED60F54C052EC0AA3DF2E4540EED1713C4A0254C0326E59BE7D384540A86EA88C75F153C00008F3D78B444540945D97FBC7F053C03001B9EA0445454075CA374F90DC53C00ED5BF24615345400A454CFD1ECB53C0A89EEF3AD85F4540204F23A159C253C048ED0A23AF6645401AFD6A821EBC53C04C681FD18A6E454098E8BCBA8FBA53C014B000CC5D744540B4D0713CDABA53C0A050D4523C7B4540DA8FCA6EE1BA53C0A4ED0A23857B454056E51F849AC353C0EEFB7E7D86A0454056E51F849AC353C07A213E5687A04540BA74E27954C553C02EAAC6DE6AAA454065D40EB3FCCA53C0B8B49D02B1BB4540C8333B2C26C053C0401B04E97AC34540AAA715ED1FB653C030850706A9CA4540C4B1EC1019AE53C0CAD322EE02D045406C3D1250559D53C0BCC2115DD2D045405B704583C18D53C0CCD3226EC1D0454041B48987487853C072E196C88DD045404E434C7D2A6653C0F8CCE8007CD04540FB19F02D115153C08EC94B4A59D0454054DCE556B44453C022C6AE9336D04540A6757F707B3453C0F8CCE8007CD04540F01553B7972C53C046F6449077E445402EA5156D832553C0ECE8D0B547F64540A53EAF86B91D53C090DB5C5B590746408ADBE5D6D01653C09E56718970114640D1BC606B961653C05CAF63953E114640C606DF9C5DD452C01C587109816846408EE759F17CB752C06C0DF3D70F804640C0C3370F435652C066364FE7F1804640989F15ED52E051C0E4E733FF0C81464022AD89C7EBD951C032DE5C5BA4A0464040C1378FA8C451C0BC55D4D2A4A44640062ED8623DAA51C0E6856ACFE1BA4640CE269E35859351C09C08B9EA1DF5464045F36AC2FF7F51C0A4C2D76FB6584740DC923E892E4F51C0E2C03AB950B94740BF394CBDEB3951C02A01E246AD974740B0802DF8000F51C0DE56371C6CAD474003EA30D596F250C0B4CDAE137F8847404F68E239A5F250C0EA9A1817F5D94640127C9081CBC850C0B2D385B79991464018533472E9C750C000DD5C5B305B4640
-uy 0106000020E61000000100000001030000000100000015000000FAD8495F04D04CC0942C7E195F373EC030488769EE7C4CC004E1FF67141C3EC0DA23654793FC4BC012F2734211E23EC0240B1A49FECC4BC07A7AFCCA97DA3EC0C8BD9B1746494BC06665B14C987E3FC02AA45099DBE44AC035320A0B0C0640C04EA6EDCFD39A4AC0A085C229245D40C0B0AA8A0645D34AC060081145DB9940C000FC4225D4AF4AC08EF8FF335AE240C012822EF738E74AC0F6336DD4CA3241C0749C7975CA774BC0144DB852F07941C0E4077D9248D64BC07019851F576041C08E1D2BDA8E1B4CC03F79B1180F6E41C02445EA32E1914CC0CC299630193741C0FED5ACA8AFE84CC0D452F2BF343B41C0A2F2945DAA364DC0AAC5CC0069F440C08E3D130FC02C4DC004572C2DB0A140C0B8AD5099FA104DC072A8E44B318540C0EE434D7C3B124DC041A6E44BB20540C0B4D20FF2FDEF4CC0D04E03053D043FC0FAD8495F04D04CC0942C7E195F373EC0
-uz 0106000020E61000000100000001030000000100000038000000AA0C99DA30A150409AC285B76FAE424010399220F4A250401C20157AC2FC424066045FEDD24D504094A99D828B3343405CEB13EFE40A5040A27030623A72434054ACCB4E4EC24F409226B2307FAE43401051D9C2E72F4F40F26859BEE5064440302043C6FCF04E40C2901897DC8A444070820CF609C64E407EE66D6C18A2444040160959A43B4E403A8ADEA9339C4440603E65E8AA0A4E401C2BB2306BB644400856B066FBFC4D40068941F38D1C45407CF3836D83504D402850D4D23260454008BBB303ADE44C40885C48ADD41545402856EAD352774C4086B43A39BBE944400C423C8C568C4C40266FF67441A94440E831C8B1EDFB4B40EED8F99181A74440E442D9C2E6F64B4090CC4B4A787F4640DC63C17766404D40AC374F671CCB4640C415A68F51584D403A90417300C046408CACA2F20E7B4D402EFDE14600B0464014584D9DFDAD4D40A4DABF24529846409C56B066B71E4E40866C1F515B64464070921D0777874E4096836ACFF13346405461EAD3B3014F40AE2FB2B092C045408CD427DEC7974F4078A729A835D34540F07E731BA7395040067159BE31DD4540E0537AD545865040B250D452B37F4540688A4A3F7F81504070DAF99150FF444078769C77AEA05040481BA11F6BFE44405EBE7DF2B2AD50406808908E8F954440C85CB44218FF5040BAD1BF24689144400E234722A2105140301FDB0CC7544440EE9ABE997A285140B0338954975544400A6FC5537B445140A4FEB8EA2EB1444010D0F1CCE498514026C64B4A680A4540F614369196BD51406A07F357112245406ED48E8397D05140643A268B77154540A4F5B0A5E19A51402295B54D8FC24440C411995A1ACA514076F04410619244404094E7F5AFF75140CC20DB8C4AB2444072AD32F48B4352408E71932BDA6E4440A445CC8D97F15140BC65BC07AB124440DE55DD9EE8C0514064A3C65E471F4440A4C27D727DA65140AAF81BB4F81B44402033BB7C529D514052D0BF248D3F44409CDAC8F0A9AA51405E0B2D45E87A444024D9C8701655514022ECA759295D44403EB30998BE405140CE98EF3A070B444092F3B0A554225140D83EFD2E48C443409E1B0D35E4EC5040E02DEC1D4DCA4340406DC5534DDC50409EAE3A39F0914340BA1870FE430B51402C5C821A66734340082A810F1719514056274F6719144340DC03C2B61EF550404481DE298F9242406E69289DD9C450401811A11F96AD4240AA0C99DA30A150409AC285B76FAE4240
-vu 0106000020E6100000010000000103000000010000000500000074B37509F0E6644004B9D910A0C82FC0E4FEF33A09FB644034D8329B617730C0D820165D7CF06440DAE943AC0C9930C0D27CA59FC2E564404C143D72F52830C074B37509F0E6644004B9D910A0C82FC0
-vu 0106000020E610000001000000010300000001000000070000007083DF8C61D96440BC9BF15B6E562FC0E8A89EA5CBD46440987A6C7010C92EC0C8C0E9E321D464407070CF39C4402DC0E4645A6172E36440189C2BC92ADE2DC0043CFE11A4E86440D0763203E47A2FC0FEC0E9E309E06440A4C7EA21AD3A2FC07083DF8C61D96440BC9BF15B6E562FC0
-ve 0106000020E6100000010000000103000000010000005C0000003E4386AA38D551C028CD861B758D2740F0ED30550AD751C000BA750A7A142740B81053779CFC51C0D0BFAF77B8D82640CC4D5D4EBCE751C03885DF0D5DF02540D4EA931E84E851C0785EBDEB9AE42440A8DD1F44BF0452C0181579A736BB2340E887CA6E85EC51C058DEE2AAFF2422402409198AEED051C0002A615C3E462240DA3175598FC251C0289A64F950B82340F8C4D4C567D651C0D899C7C2826C2440AA3512D0A3D951C0A85F20B51CF02540F241866AF08951C0106A5A223FC02640B6785654CE9251C0606720B592B12740F8E8931E5E7C51C0589D53E8195328406D293B2C656551C0989AF01E52EB2640D7BE370F833851C0382D504B03E32640E3B360EBED0E51C0A8B7124180C525403E1AC7916C0C51C0D028ED81FB1B2540ECC371BCF5D250C048B1750A7C17254030007C53958E50C088DE6ED0184C2540F2C8AB69EF6950C050BF861BCF66244036B0602BFD3850C060B74CAE88272440C10BF02D161550C0F086197B79C72440627C2D385A1450C0683027EF67482540D6C2273D278A4FC0A078086A48672540CE59C1D6C2F04EC02819DC70666E2540E08EF489745D4FC0C8E645742DD72440A47946C2BA314FC0387CDF0D7BE5234074D772BB5CCB4EC0C074A5A002BF2340F23102FE506A4EC0F89564F93EC322404EB35099EB554EC0F0C8D1990C292140E46D0C5536134EC048882A8C9C342140605F987A0FE14DC0405DCEFCEBBB20401AC461AA79464EC070F4E03D501E1F4020CB9B17A9514EC0E0052CBCF5A81D4022C0C473D8254EC09095281FF72C1C40B05DFBC3A1454EC0A0E77D74246D1B40EA3CD92165944EC0A0252582C8C81A4062282B5AD8914EC0504DBB7EEBEF18403CD038CE84B44EC0B0EFC8F215D61740007646C2E55D4EC0B09AE77715CD144096F05A70F34C4EC0909C21E521AC1340EADCAC28C37B4EC0B073FFC2572512409212E05BEF0A4FC0402C58B503A6104070F55AF0FA664FC0A04B7AD7210710406E851DE6ED8B4FC0C0E7E63A212A0E404C0C0938B5F14FC0E04B7AD70515104083ACC3F43B2850C0E0A66C630B981040B40F8D643A3450C0703B69C6CC39104088C7AB69951750C08052EAD7AF600E40C0C0713C2A1A50C02045C17BA80309407A3B86AA471150C0C087B307DEF9034014D8D58420B64FC0408116D1DD490340C8DE0F7234AF4FC080B0E63A719B0140FABCD445510550C080506AAC72A9FE3F8F97156DC10C50C040C5C9D8BBE2F73F4E16C7D11A2750C040AC55FE7A42F53FFA576E9FB35650C0805711BA4686F13F3A2F12D0166350C000D6DA929241E93F755C0B56D99450C0000AE569B62EE73F40F307B915B850C0C0327BBDC30DF43F3D017C539ACB50C0A0073C904E010240CFE2F6279DDC50C0C02B870E60CD04402135AF06D6F350C0E0EBA593B39006402F6B7F3067D350C0A0DE20A8318C0A40878667A59AD550C060C4FE85B7560C400E57D128CCE750C08079A93042B70E407350973BACF450C01039922208041240648A041CA9EF50C0507C628C6FE21440DDA889C760E150C050CDE03D3C3A164088866725DAD550C0F0F80260C261184089BD374F7CEC50C000D3A6D0BB1119401FE7939EF61051C010B95B52F29C18405A259E750F3F51C090DF1AABC4D31840483A4C3DED5851C080707AD741661840A7D4E5D6F88551C020315FEF6CD71B4025168DA426AB51C040E8E03DE4591C409651FA8473FD51C000C121E569F71B406F4E5DCEB10C52C020C721E5995C1D407AE1BC7A721C52C000F51AABF4B11D40CCC2370FB31E52C07028B1A7AF871E40A72501FF181752C07897D8D3590120400C41E9B3261C52C0D8A1124180CF2040C8F2CD8B452A52C0401B8AB825402140FA66A88C7A3252C0A8AE4CAE882B2240F8077C53845352C01853BDEBD24D2240B4DE1F44C44152C0E0C8FAF5397923409CB5C334F03952C050C8C08893E62440D6DA828D562752C068D2FAF5D9A425401BBF9A98900E52C0601205CDA7372640045597BB54FE51C0C81605CDA33727403E4386AA38D551C028CD861B758D2740
-vn 0106000020E6100000010000000103000000010000002C0000002207662736035B40FC9460C4688D3540FCBD84ACC3AD5A40E0019ECE64B23440F871067B6D785A40E4F6636186C03340DAF6F14C5E6A5A40607CECE9E30E33405CA29CF7509B5A404C3AE2120E013240DEB74A3F2AD75A40940B86838CB230406C7B40683F115B408C5067FE69143040CCFD8E8322385B4070003563AA8D2E400C57810F75555B4028F0346320DA2A405ECEF806CF4C5B40A843FE926E552740CCBF84AC6E175B4048DED19942042640DC76A3B123CE5A4048490FA49DBA2440BC08035EED995A40500B3F3ACA0F2340644170FE204A5A40987AB6B1133321401CC65B50E4325A4020FBCA5F697B22403259BB7CE0445A4048D1346344D623406ECC95BD65155A4028B412411CF924400C784068CB4C5A4078AD3B9D53C7254030DC0998FA8F5A40E0DDD19972EC2540227CDD9EDF735A40D0DF34639E222740681EB12573DF5A4070C41241A6AC284040A0FFC054E75A40383CB31431122B40A6AD739B7ED85A4020B68D55A6672C4006A7392E21E45A40700DA93D83672E40D6F1B75F03D45A40C05E27EF2BD12F402A4D47A295A35A409C48905AB29A3040548DEEAF3F7B5A40F8603EA23D7C3140D48F8BE60D465A409469DBD8BEAA3240963CD3C760F9594010AD82E6E2433340746292A0BC0B5A4030D4413FEA9F3340E081170CA5345A40A8F029F4FAE233407281170CD71B5A40AC8A26573CC234404E50810F0CCD5940FC6BA16B3DC434406012773850B05940F43534CBD5AC3540EE44AA6BE88A5940B47D780FFA763640901C4E5C3FAD59405007019873B53640249F9CF749E0594014D4CD6429B436404C4EE4D8841E5A406CDB07D2B3D13640F46D69C411555A40C4DD07D2205A3740CA895179EB735A40E8A8D49E15FA36405413DA016DAE5A406C60F32355CB36405A460D354EA45A4008801546DC373640DCA9D664C7C25A4094D36A9BD8CF35402207662736035B40FC9460C4688D3540
-ye 0106000020E6100000010000000103000000010000002C000000D4FB31B5E58D4A40C0377F49ABA63040C4E5836D4E314A40306D4FB3E5613040E4A779968A184A40F824BA4E7AE02F4048E5836D86154A40584EB314E1312F40D83B76F914964940B0BE8D55BA592E4044C49BB88BC94840800C4674E36A2D4034771D07F156484000EB5DBFA3012C400C43EAD3951E4840588ECEFC6BE52B407C2A9F552EF8474028704911B4032C409C8F05BC5EAD47404062726D372F2B4008953F29C95B4740B81FCB5FA5CC2A40FC5F0CF654F0464010EC972C0EB22A4050DA20A401D0464010D7E9E4F6942A40080D54D706B4464030AF2A8CC60D2A40104324417A92464068EFD1996AE82940186F1D07A97E4640A0C712413066294010E2F7474E3F464040CBAF777C712940607E2E186A164640A89DB6B1012C2940BC947996D1BD4540782D79A70A4629406C3B870A879C4540C88E086A20712A40187257742FA04540B018F4BB00892B4070566FBF418B4540D840B31411202C408C7B2E1835724540B09C086AC09A2D40E440C1776C4D4540287EE6473A6D2E40D0556FBF0A674540E899CEFC1F862E4050112B7BE9594540F03A05CD11702F408C3A870A6E694540E81D80E1CFD22F405C8C3F29C1634540588837680F5930404CB69BB8F39B45400808E94CB9AA3040CC715774D28E4540A0C5A408A416314000A927DEBDB045405C27D1017A943140B8132B7B50E54540005667FEE9513140F0E731B503084640E06A15460D693140CCA2503ABB9B4640F430A8A5EE6E31405862A92C33B3464050FD7472555531405C7CF4AAEE2E4740947EC38DBA3B31408C6F80D0FF5F47408063DBD888483140A8953F2900804740F0165D2733F3304090AE8AA7BCBB4740C462DBD8DE1D31407CA216CD771748402C9771D5AA2A32403C892E18EF8E4840A44A56EDDD9D32403463355200004A4004316E3800003340A0494D9D1E644A40A841B9B688593140D4FB31B5E58D4A40C0377F49ABA63040
-zm 0106000020E6100000010000000103000000010000003D00000030B7E63633614040A04E4314117622C0BC06021F9E9D404088B50C447B5A23C09485B3032BBE404060E9050A160D25C07C662E185CA8404084E12E66D59725C0FC541D07A18E404020FDDCADE23627C068F253D738A74040743E4A4E1EDF28C06CD66B22F27E404048D4A97A579129C06C8016CD15584040DCDF46B1FB6C2BC054773F29659B40404CA19FA397F12BC0E0A3747BF22D3E4034534A4E9A972DC0A09600A135463E40047F09A7FC032FC058CD6D414F843D4030A96536134A2FC020E655F68CF23C405C73696B050B30C06078B5226CD33C403A67F590C66330C0C09F11B2C8773C40AE4FAA12E97730C08898747B26993B40182077DF734A31C0904759935F0B3B40C28C7A7C22F031C068FE7718EFB43A40ACF67D1913F631C098334882C6613A401648363896D831C0482BAB4BA44339400E2277DF8DBC31C010270E159E153940D0CFBEC06CA931C0F815FD03B3133940A89F28C42D9431C0D84ACD6DAEAE38406E945120795A31C080331F26AB0838403A082C61BC4B31C03074636A0D373740303288F0EA8531C01004C396FE8F3640028FB4E900E630C03012D4A749E335401C70CC348F1430C0B0CAF22C13EF3540F81C8BF5FFCB29C068F9B185210438402C6809A774D229C0388FAEE850EE374044872BC9B62129C008EC3DAB74143840103273AAF16128C068AA969D76E7374090017AE4CE7127C0C0EB3DAB940438409041BE287F7926C0902F82EF86E93740D8DBF4F888DA25C0183182EFD4413840E045F8956BE725C08864B5228450384034E2912F918626C078E1C9D07DC83840A4EF050A367A26C0D843F6C9096B3940DC566C7070A926C0783EBC5C97C03940F44221F2E69127C0983E1F26978D3A40D017282C50D927C08885636A172A3B40583010E1AD3727C008D57E5288633B408CCEA97AF74328C08086C633B5273C4048818E92828B28C00877B52208863C4088D3A97AAF6529C0784CBC5C2DEF3C4060D8A97A777F2AC060D844E519B33D402C946536B3832AC0F89DD744B29D3D405898D910985B28C060D3A7AE6F573D40B48F026DB3B828C0E8CC0A7875A43C40B42CD67371F127C0D0B3BFF94B5F3C40C061A6DD589627C0A05BCD6DFE7E3C404C859FA36B9425C0F8BBF96676AC3C40703D95CC3B3623C088E0B8BF2A733C4088FF272C705422C04059303720BC3C4024CA912F990D21C0B06407DBBE003D4090DD3F7766D020C0680E781899583E40C8C057C2FC7920C02039D4A771BD3E40C40CD67315AE20C020865259122D3F40C856B7EE213621C078CF33D46C8E3F407CAD0C442B8621C0F4521D078F184040EC3A320358DC21C030B7E63633614040A04E4314117622C0
-zw 0106000020E61000000100000001030000000100000025000000A0C35C3000313F40FC4688F0624036C0404D82EFECA83E4088A95120CD2636C080A4747BA8523E40B07D585A884536C0A0AC4B1FCBD63D400C650DDC2A1A36C030D744E5A36E3D409C9BDD45601736C0801FC3966ECB3C406AC97342B3A335C0D03A488278053C4056620DDC687C35C000EB2C9A2BBA3B40C6CCADAF0FDA34C008C2D00A89B93B400A35B14CC27F34C0400B4FBCE74B3B401C5A70A53A6434C048064FBC2F2A3A407E25DAA8074B33C038BD6D41B3D93940A6A428C4E3B632C0704159932FA639407E772FFE388932C0482BAB4BA44339400E2277DF8DBC31C098334882C6613A401648363896D831C068FE7718EFB43A40ACF67D1913F631C0904759935F0B3B40C28C7A7C22F031C08898747B26993B40182077DF734A31C0C09F11B2C8773C40AE4FAA12E97730C06078B5226CD33C403A67F590C66330C020E655F68CF23C405C73696B050B30C058CD6D414F843D4030A96536134A2FC0A09600A135463E40047F09A7FC032FC0A0184FBCC5563E4064CD8758FDC22FC0487F18EC4D2C3F407C11CC9CCDB82FC058BB858CF1A23F4004FCF1F36D1230C0E0B8E8551FDA3F40DEF21A50C55130C0906E05BC032A4040A4CD5BF75E6430C0CCBA836D7F6C4040BEB37342A1B630C0D057BA3DC86C4040265DE47FA3FA31C03C98614BD3534040962914160EAC32C0AC20EAD3554E404042F643AC5C6B33C04C652E18E86240408ABDD60B31B733C0042BC17772544040A20EF2F3E54D34C0E0C0BDDA1C414040C02D77DF316534C004DF42C65B1F40400CB66231D21D35C0A0C35C3000313F40FC4688F0624036C0
-\.
-
-CREATE INDEX idx_country_naturalearthdata_country_code ON country_naturalearthdata USING btree (country_code);
-CREATE INDEX idx_country_naturalearthdata_geometry ON country_naturalearthdata USING gist (geometry);
+++ /dev/null
---
--- PostgreSQL database dump
---
--- Data has been created from Tiger 2017 data as follows:
---
--- CREATE TABLE new_us_postcodes AS
--- SELECT ST_Centroid(ST_Collect(ST_Points(linegeo))) as geom, (ST_MinimumBoundingRadius(ST_Collect(linegeo))).radius as radius, postcode
--- FROM location_property_tiger GROUP BY postcode;
---
--- CREATE TABLE us_postcode AS
--- SELECT postcode, ST_X(geom) as x, ST_Y(geom) as y
--- FROM new_us_postcodes where radius < 0.9;
-
-SET statement_timeout = 0;
-SET client_encoding = 'UTF8';
-SET check_function_bodies = false;
-SET client_min_messages = warning;
-
-SET search_path = public, pg_catalog;
-
-SET default_tablespace = '';
-
-SET default_with_oids = false;
-
-CREATE TABLE us_postcode (
- postcode text,
- x double precision,
- y double precision
-);
-
-COPY us_postcode (postcode, x, y) FROM stdin;
-47900 -87.0574364000000003 40.0031060000000025
-37762 -84.1327196353633298 36.5774925883135893
-16876 -78.2902258689024677 40.961514704268275
-51346 -95.463210481821875 43.1815832690770094
-67147 -97.3334656325141339 37.8503285216887235
-80211 -105.019753467293313 39.7669231646255383
-25871 -81.2111198993789003 37.7700426298136378
-46148 -85.5148920915316069 39.8081699443027404
-47390 -84.8389534224163242 40.2125372823871317
-49503 -85.6582920494782201 42.9630650858001673
-05678 -72.4720168518518477 44.1561759074074303
-67567 -98.9837682972292043 38.3835100982368971
-28206 -80.823373540515405 35.2530339728336628
-41255 -82.8412133925454128 37.9068336121557934
-45338 -84.5403772155605537 39.8495612063580538
-36513 -88.0177280949008036 31.1697053016997074
-95335 -120.097326261128984 38.1195299491763464
-47110 -86.2079178838322662 38.0959534143712801
-50484 -93.9121297561118382 43.2369924214202825
-21504 -78.8244373333333357 39.6479223333333337
-87313 -108.093270347264848 35.7023454615857432
-34275 -82.4449278835101893 27.1419816463470056
-78227 -98.6360545311825092 29.404214563063622
-34215 -82.6866033519458909 27.4719319289339943
-32248 -83.6002802000000003 30.1000235999999965
-54525 -90.2240988380566051 46.4310144655870261
-65658 -93.6472659880752332 36.5519865821975998
-77027 -95.4475429565216729 29.7394529653948112
-49323 -85.7730116341571147 42.7214473474744025
-24360 -80.9107726651384525 36.9278784555680915
-72932 -94.3680727657476268 35.6032699593796593
-55412 -93.3015832205743294 45.02665996497322
-23323 -76.3367823804027239 36.7482941874446993
-15485 -79.3303977558139763 39.8168044883720995
-37143 -87.0325456176044696 36.1251417438335238
-95113 -121.889539360856105 37.3345608761467389
-41824 -82.8731792634547872 37.1900554202972415
-24860 -81.599025933962352 37.6635187943396303
-32401 -85.6526866106815703 30.1614107326308591
-37845 -84.4440963702579666 36.0824901259483681
-49007 -85.5874444122159161 42.2976090681617265
-88393 -105.210650000000001 34.6036039999999971
-37880 -84.678285866282863 35.6947585192690013
-73657 -98.7054194999999908 35.9283493749999963
-65590 -92.9559065765153179 37.6177673558080841
-31553 -81.9718285523444337 31.1770923708346679
-14080 -78.528827178026134 42.6405269489757117
-72751 -94.1220583960142108 36.4604871402471673
-57314 -97.9788928896672928 44.0286057136601841
-81521 -108.722292468840166 39.1645936498771619
-13664 -75.6531097250755806 44.582032187311178
-95358 -121.045901669969439 37.6236496905961673
-40845 -83.5207506003997651 36.7852705184815107
-71358 -91.8894258606639482 30.7137396131790759
-55010 -93.1536202499999888 44.544628000000003
-92834 -117.882390263157916 33.8816304736842113
-97456 -123.331185029630916 44.3311276156087715
-80735 -102.232858721459394 39.7087178101779443
-73645 -99.8716725459705117 35.2213950987514437
-70520 -92.0424497929430458 30.3284169196158579
-48125 -83.2616648237682995 42.2775826846007377
-61358 -89.0279727737306672 40.9931789260486212
-71331 -92.1035612261106138 31.2260836941453448
-04851 -68.8920160585106487 43.8611577446808383
-32178 -81.6864091808510722 29.6575411063829861
-42024 -89.0309915024495524 37.0618178541001626
-51354 -95.5362623428725328 43.4114978248194845
-70609 -93.2184188387096953 30.2009571290322612
-10516 -73.915437641147733 41.4530824288687256
-92591 -117.124664676927523 33.5282683135682475
-84128 -112.044125606109461 40.6935055783585895
-72863 -93.5231344241254448 35.357645572979628
-93602 -119.443227425329226 37.0754436380538408
-72946 -94.1542152859036605 35.6381651179199395
-30708 -84.7039648279220785 34.9488009751082558
-60035 -87.8067167723051654 42.1796036200267395
-64473 -95.0950780907674869 39.9898776910790801
-00951 -66.224516025974026 18.4343683246753258
-48812 -84.9766322142857291 43.4037957142857138
-16236 -79.5100185999999951 40.7821544235294269
-56644 -95.5079556120828954 47.7449374085850806
-16835 -77.8793974846153816 40.900380430769232
-59424 -110.083167588505773 47.3627265379310884
-74104 -95.9500142857141043 36.145010654673726
-14240 -79.2486387499999978 42.1995299166666626
-77003 -95.3470141593694507 29.748780558887848
-87104 -106.672813747695656 35.1048921867093995
-66214 -94.7131643105071106 38.9602947639002224
-71103 -93.7724485918911768 32.4933335688274028
-92821 -117.893172447796559 33.9249508894065883
-08837 -74.3374715767124599 40.5320157424656955
-18655 -76.2021500525620468 41.185180346978683
-30234 -84.0323873244473276 33.3184956957087692
-28773 -82.3374100203983659 35.238132146460174
-38548 -85.7925605151889386 36.1752328021899814
-50565 -94.9912303145337091 42.8571769918655718
-77479 -95.6428808156885424 29.5733165015682431
-37010 -87.1126987454282755 36.5619422915369796
-33406 -80.0906804829608632 26.6560016836266023
-55446 -93.4811102750636707 45.0439745754757794
-05758 -72.7938073705494162 43.4531805625636238
-98498 -122.555912645580335 47.1659706325871895
-68773 -98.1171538058252679 42.3604935776698852
-44660 -81.7840106875000004 40.6251438124999993
-34987 -80.4555881486369628 27.2897079275285002
-62824 -88.3550661827802912 38.6839757229437708
-66716 -95.0516676399999483 37.9273937113043189
-18219 -76.0583887737929842 40.9903569600000068
-26372 -80.3731146770980303 38.9600089061166273
-92415 -117.274673303921588 34.0905126666666689
-62811 -87.9096216127167764 38.3847231271676179
-25894 -81.2994116874999975 37.7362993125000017
-72145 -91.8218200000000024 35.397653499999997
-59433 -111.702934969170826 47.8894695163233024
-57337 -97.7889078579235047 44.0023782367941791
-56139 -96.1737091134563542 44.1002966675462247
-02047 -70.6885934065933839 42.1351232912087568
-79245 -100.541405062544769 34.7249122149533775
-26422 -80.4368691428571481 39.2887982857142859
-13459 -74.5980262529972009 42.7733216048447034
-73717 -98.7169844265488621 36.8207499774313121
-33860 -81.9992676508584992 27.9072265225219986
-49239 -84.3634160000000151 42.0998826666666659
-58230 -97.8360307492795584 47.5082048126801055
-60561 -87.9819211715723526 41.7458627172013976
-43437 -83.6051380410958842 41.2543592785388213
-42217 -87.4859032727951842 37.0456560780833968
-94953 -122.964845285714276 38.2500227142857057
-92060 -116.849062103076164 33.3579242670605467
-84070 -111.885514136562804 40.5786196980963609
-68729 -97.9089469848484697 42.4679320800000255
-41306 -83.6323979130434481 37.7743220434782572
-20110 -77.4790726030739023 38.7506185045802383
-02673 -70.2410178691729499 41.6555155204876328
-84401 -112.011581697201436 41.2155948576030724
-38646 -90.2802202194109213 34.2627837805887481
-57319 -97.4720634027073913 43.5556001764942593
-96035 -122.169541884403444 40.0426665729358007
-30068 -84.4339902795299224 33.9688992457368428
-30576 -83.4744069905274557 34.8337368762477695
-79032 -101.935984187050323 34.2822708489208594
-43738 -82.1400416534653743 39.8557205841584121
-87547 -106.204480218181757 35.8180824540540144
-78947 -97.0474684984851592 30.4161369821761731
-84346 -112.050146111111118 41.3554346666666675
-72372 -90.9321884939705569 34.9731267179545142
-75902 -94.7301045000000101 31.3440691250000008
-54624 -91.1666805194401775 43.4137301264904281
-62858 -88.4934128270328983 38.8162333467114991
-34473 -82.1892338359836856 29.0039168661797149
-59831 -114.332306379213421 47.3103905547752959
-19075 -75.1870295385591874 40.1131620999682497
-39086 -90.7626503795372486 31.9600322592168453
-35473 -87.5850988586362718 33.2627687278097497
-31066 -83.9962893120258371 32.7968004972914997
-05253 -73.0093204696969451 43.2513271852814185
-33991 -82.00934161780728 26.6306412379471951
-24853 -81.5105323727678694 37.4323754084821232
-13666 -74.9572351235059244 44.2186015816732834
-85303 -112.220497942476911 33.5274910548856937
-15239 -79.7365768278059903 40.4810353076290923
-47322 -85.2442111111111132 39.7453378333333376
-53963 -88.7395936348610945 43.6330144490178142
-33813 -81.9381368986433216 27.9625779932470415
-88886 -89.969341 32.8844700000000003
-67518 -100.194848616822441 38.4153357663551347
-28354 -79.6462243599999908 34.9280415599999898
-96070 -122.31119443636355 40.803419236363645
-54126 -88.0393015051412959 44.2942477432519368
-18974 -75.0818162473527764 40.2129672362970325
-15620 -79.3391625664819458 40.322605059556814
-42631 -84.4605952220183696 36.7643093853211624
-69040 -101.150966213333334 40.3601957733332952
-10521 -73.909539444444448 41.2388341111111174
-84706 -109.870627999999982 40.4661422666666724
-15004 -80.3835459135802353 40.3423725802469164
-62531 -89.3748112172050924 39.6709480755158026
-82844 -107.17545116417908 44.8202417089552156
-13123 -75.7645249221557151 43.2253901257484827
-58005 -96.9369099767062607 47.052816915815427
-52568 -92.2562270822784853 41.1972540759493668
-33161 -80.182437710737986 25.8932975598561583
-67420 -98.0636748611442641 39.4416082300777049
-17772 -76.7213825921495953 41.1165159908004227
-40471 -82.1961303333333149 32.4628997777777784
-37373 -85.0956805530883287 35.3900254813135646
-67572 -99.9219529269521303 38.659962465995001
-95401 -122.7612690680713 38.4450410766459072
-39469 -88.9670370000000048 31.7869552941176394
-15424 -79.3453436205257105 39.8188183379813765
-12844 -73.6291346071428592 43.492897035714293
-81801 -106.921525799999998 34.0516228000000041
-70339 -91.2034233632446103 29.9380918188561225
-68352 -97.2062186708324134 40.1628733914461051
-32957 -80.493828333333326 27.8296326666666687
-42036 -88.2349987442990766 36.7244524102378378
-08015 -74.5629328345846147 39.9578511776233753
-81647 -107.559443291455295 39.5803269248056608
-88040 -108.261836634615435 31.7488784153846204
-43517 -84.7331622231386774 41.4403435322564917
-87029 -107.041184485030016 36.3670941317364935
-18083 -75.2629224793814444 40.7556294948453512
-37011 -86.6603446703296783 36.0524179999999888
-06042 -72.5170136036121278 41.7966384330527347
-92509 -117.447451582181301 33.9975188101138812
-43029 -83.4575124090462026 40.0909017590954235
-12960 -73.5095391275684875 44.0348683321917562
-98174 -122.191341333333341 47.6767406666666602
-18013 -75.1818044851495273 40.8553718484221378
-54629 -91.7037276503496486 44.135276528671362
-13619 -75.608195450279382 43.9783605139736622
-78686 -98.4146097999999938 30.1161770000000004
-76762 -99.6684530833333184 31.4382563333333387
-25311 -81.5807572596798423 38.3548947007575833
-99603 -151.443575779633477 59.6841221757596188
-77464 -95.9648133937500063 29.6059909374999783
-45846 -84.7517166596271494 40.400357105155841
-64840 -94.339006942163806 37.0104787983218344
-77023 -95.320771725158977 29.7247805073116709
-49238 -83.7819378662659346 41.8940924192336581
-79314 -103.018134597014907 33.6180217313432905
-64089 -94.5741110874929944 39.3850861357459578
-62909 -88.9695640666666634 37.4284140666666616
-50666 -92.517725994807023 42.8543195623145436
-20451 -77.0467790000000008 38.8958790000000008
-01571 -71.9280772155407391 42.0528234190047314
-38737 -90.5319374997941537 33.8294374088102217
-21550 -79.3874144836700992 39.4124522456096997
-90211 -118.384904119666857 34.0663494911550018
-70533 -92.0306950232303649 29.9436031690265168
-78390 -97.3701691511253244 27.9872654540428414
-56560 -96.7526377539559093 46.8616852935552615
-36375 -85.5444854523052527 31.083293472544927
-70581 -92.7346746223674501 30.2540398380537709
-01518 -72.1172629293420329 42.1221840973571418
-90303 -118.330502137886228 33.936408651152604
-61015 -89.2078741504157904 41.9868621836733524
-99346 -119.483831374598026 46.0498794035369627
-40322 -83.6169239739782881 37.9307685496044726
-64014 -94.2589134117027214 39.016911350252478
-69382 -99.6247579999999999 40.5354765000000015
-50428 -93.3848751958730645 43.1357324225385597
-51649 -95.5359487890961816 40.8551762324247321
-27264 -79.9476389999999952 35.9248410000000007
-78569 -97.7590083766755527 26.3840487949062457
-78269 -98.6200489999999945 29.5461836666666677
-82422 -108.391894423076948 44.4986857692307822
-70002 -90.1631845301899801 30.0104478649932069
-87072 -106.352216439739379 35.6074827687296249
-00791 -65.8255300942481085 18.1259332755832823
-60061 -87.9673910330703137 42.2330450027126432
-56321 -94.3943598888888857 45.5802630000000022
-45822 -84.5754646017289673 40.5500131866570825
-05715 -72.7902662500000019 43.6588637500000019
-01233 -73.0382353333333327 42.2346168333333338
-26437 -80.5156698295129019 39.5202306647564399
-78339 -97.7942467953215413 27.8035846374268765
-29648 -82.1741330000000119 34.1942330689655094
-91942 -117.022283529829622 32.7771144793695584
-70747 -91.6842081833333538 30.8987873833333389
-95940 -121.231933655172426 39.5930305689655029
-24964 -78.5950596363636294 36.8070890000000048
-90081 -118.218829499999998 33.8202424999999991
-15071 -80.1858733621585316 40.4113371581333354
-29038 -80.9737474920122509 33.372947141191645
-18407 -75.5171340515981058 41.588881678744265
-23461 -75.9595105909091046 36.7715857272727433
-22523 -76.6290048666666763 37.790758799999999
-64188 -94.5981626666666671 39.2459696666666673
-16823 -77.7715862962042763 40.9172958269776146
-49130 -85.8472120011606705 41.7775152919327013
-29205 -80.9978983407962545 33.9912357607684541
-02045 -70.8749336793622717 42.2845538953055922
-17555 -75.9721389508835472 40.1248191982442108
-30546 -83.7343699170288431 34.9284426466182438
-56277 -94.9907706918434656 44.7673999989268268
-72537 -92.2409253856555864 36.4378595401639203
-50510 -94.9730154809214753 42.7582248892469181
-46310 -87.2335175845098263 41.1734338097078947
-02670 -70.1652240196011689 41.6614867128611763
-91502 -118.309236217803246 34.1768264027778628
-93275 -119.345804538461536 36.2163699999999977
-45322 -84.3142766519356144 39.878670606551367
-02056 -71.3322611615560049 42.1167509499676527
-62254 -89.8285110929033266 38.6128495845069679
-46323 -87.4535765095230886 41.588179443727384
-86901 -110.035496666666674 34.3519893333333357
-62334 -91.2508105889967993 40.3930170485436761
-21904 -76.084308336466151 39.6282169061349592
-15555 -79.0838067136929652 40.0921091618257321
-87578 -105.806166484751046 36.0396107239165318
-22610 -78.2824217563072011 38.8258148186059344
-67065 -98.5344203603133195 37.4715412845953182
-74940 -94.6328693324572896 34.9447681616292911
-78722 -97.7152986395064431 30.2896790888888461
-20560 -77.0280089999999973 38.8885670000000019
-32065 -81.8024729881333599 30.150060964176447
-79221 -101.533214571428587 34.1435724285714244
-44490 -80.7653257821428383 40.8987269660714361
-49128 -86.6139472493388212 41.8205932414054118
-29621 -82.6171126528173545 34.5237317000688861
-15717 -79.2559245665322152 40.4414076684001103
-76464 -99.1178955636575694 32.5170364548611133
-41263 -82.7596926520376002 37.8513847016718827
-39232 -90.0733575342601256 32.3360301572787137
-04105 -70.2772936030990394 43.7435860815961988
-04780 -68.1669812604547758 46.1441812560528319
-08012 -75.0554813712572439 39.7747841671864322
-88084 -106.696568000000013 32.1899634999999975
-51551 -95.5985479672920349 41.0112184891775229
-79007 -101.409825184890025 35.6656668284985514
-25112 -81.7555176000000188 38.3781496000000004
-36042 -86.4382934464163384 31.863944340386805
-64156 -94.5284941042979767 39.2700745989595958
-74561 -95.3822032978277292 35.1604943482831089
-50210 -93.6975317407406152 41.1802947644879964
-57430 -97.7291907404998312 45.7847339283046466
-98297 -123.040622953488366 48.7118801395348839
-12811 -74.0386530610819875 43.6032025078534602
-18935 -75.3964480459769817 40.4351119999999895
-61344 -89.8336341946184262 41.4089499555695042
-79778 -101.942904829714251 31.2308549531428419
-91792 -117.897745400414195 34.0219205216791067
-36473 -87.2027090900474207 31.3186886777251097
-54842 -91.861200878048777 46.4978566178861499
-62865 -89.0825239352200811 37.976629771069156
-28801 -82.5562053102074742 35.5973026916894142
-96742 -156.981688743055656 21.1914194374999951
-78332 -98.0956946206373317 27.7382351856410807
-95655 -121.283800852686255 38.5480495678798505
-47177 -85.7734027846100844 38.6031775727336495
-07017 -74.2063801092277657 40.7718529001883638
-84064 -111.144954307239644 41.6795086032961208
-23954 -78.3869559782889951 37.1128429658824786
-34747 -81.5942202293228434 28.3140157558889172
-56480 -95.2041290000000089 47.2511115000000004
-35950 -86.243612027082051 34.2585420464266761
-31742 -84.3950180743243266 31.7199105540540529
-60415 -87.777229368642594 41.7003625962820692
-52055 -91.2777723333333171 42.7423266666666635
-76752 -97.3268914545454606 33.5992710909090917
-36370 -85.1634169185149972 31.134591924782999
-60477 -87.7932309286038191 41.5778413059124219
-69347 -102.703511569806366 42.6331808844355038
-89113 -115.261055480645226 36.0643726129032061
-24210 -82.0108648168953351 36.7406906626790928
-90232 -118.391980341880455 34.0189550827506295
-28747 -82.9259389647864822 35.1484411696285193
-38901 -89.8069002937356231 33.76260011009159
-53821 -91.0819748563619243 43.0447062409658656
-64421 -94.9300628104496411 39.9152394690158161
-54891 -90.9282995310688875 46.689234415784135
-65255 -92.2328210507319852 39.0970216098164229
-08052 -74.9999801930172509 39.9538650271727178
-16588 -80.1206413333333387 39.5333599999999947
-89404 -118.729821316831789 41.936700706270635
-44670 -81.1900017336956665 40.7627355489130494
-83460 -111.7839508 43.8172349999999966
-67133 -97.1225091144814598 37.576283550985373
-49224 -84.7529084095637018 42.2690361910237442
-30417 -81.9169687042554386 32.1713727141570303
-22438 -77.0213939676165467 38.0237235604489712
-12466 -73.9901111124062112 41.9051927718567825
-53705 -89.4618084664822248 43.0728337648517794
-05655 -72.5822685710209328 44.6177720370721218
-71209 -92.0755503913043469 32.5282757391304358
-76137 -97.2877761214372185 32.8686746606759499
-50531 -94.6130011321120037 43.4674624541947736
-51024 -96.2781449948762003 42.6173515488829437
-48631 -83.9914148258427673 43.6883995071500948
-14803 -77.780537892126091 42.25320620078746
-46355 -87.2709389999999985 41.3593842000000009
-08046 -74.8832718258520345 40.0283706670581836
-28038 -81.5344339642856966 35.193253250000005
-97528 -123.458304400000003 42.4571988000000005
-04912 -69.6697994492923982 44.9570983404086846
-36144 -87.6764064000000047 32.5494922000000031
-62451 -87.6116145331492788 38.9851369854972347
-55410 -93.31908688100755 44.9123191243896187
-16874 -77.936603549314512 41.0353364506855627
-91024 -118.048881005478677 34.1675857863322321
-65623 -93.9058210400000064 36.749274800000002
-70450 -90.2700080678695969 30.9351889359806798
-65476 -92.1122265454545186 37.8764170454545521
-48165 -83.6249754011238906 42.503968851739792
-55801 -91.9745104814815022 47.0500661604938344
-39177 -90.8615151652892621 32.6279903057851399
-94015 -122.479772375381572 37.6800602813391947
-44088 -82.3709665000000086 41.4192125000000004
-30622 -83.5223997682882953 33.9315676179358903
-15209 -79.9747043262610475 40.4998937163001429
-52759 -90.8120925119047655 41.4604516547619184
-95449 -123.077127362258651 38.9592069161573491
-10103 -73.9761545000000069 40.7601425000000006
-40862 -82.8809361744033737 37.0175356823607089
-12321 -89.942592333333323 45.0473141666666663
-55363 -93.9114483704405387 45.056826118886903
-69221 -100.236639399999973 42.6375976999999935
-94044 -122.484446858008269 37.6151460939568807
-26105 -81.5343501318271819 39.3276056104398393
-25389 -81.4124532765957554 37.8292534468085009
-40061 -85.2634568000000002 37.7115837999999997
-35048 -86.5836450833333373 33.7179409166666701
-97486 -123.539848076655588 43.3940124027183458
-02559 -70.6148782381401929 41.692626270238371
-61277 -89.9386545181067447 41.611125839506478
-62563 -89.5237376912329665 39.7295304263001725
-46628 -86.3145037158451913 41.7142551984743193
-56222 -95.3635437511768771 44.9783912518494233
-52155 -92.2853201835117716 43.4230757936980041
-60958 -87.592672073580232 41.0685339886418461
-97526 -123.365192599669996 42.4814750858269079
-17979 -76.2030689114583737 40.5621177031249758
-05670 -72.5035158461538458 44.1765997692307764
-70669 -93.2711974460771813 30.25346569168196
-46946 -85.735039465116273 41.0350040930232609
-97102 -123.963375568215966 45.8054895082458984
-08069 -75.4577955722426452 39.7118065431420817
-51037 -95.6384890670659189 42.810334415568839
-12762 -74.7904100920502088 41.6710253333333682
-34741 -81.4242930856091078 28.3080798686546693
-51540 -95.5000820639606189 41.0248325645756609
-05159 -72.4543109677419466 43.0851360645161208
-22644 -78.4913664729861154 38.9481324940510021
-17833 -76.9652079333333461 40.8026422333333372
-77486 -95.6568909867325061 29.1511853843355375
-68403 -96.1668135416666843 40.919917270833345
-74650 -96.7509042535352961 36.4948645616161542
-96087 -122.498819392649807 40.6023522514507533
-29056 -80.0043953354139461 33.5953451787349593
-57750 -101.971114747540994 43.6605149770491963
-44430 -80.8899628087406057 41.2429575292082191
-23150 -77.2681154175465537 37.5133820369991824
-92823 -117.828649939855751 33.9237117794707004
-39841 -84.6843599528794755 31.2911776982983945
-45133 -83.5697465000244222 39.1570481877492824
-22956 -73.5298432499999848 44.1045646874999946
-38487 -87.2297248509798351 35.7200853670279628
-89101 -115.125310811765985 36.1719367373758445
-93944 -121.916886687499996 36.6019394375000005
-51531 -95.0820958909427389 41.5819564115835192
-31905 -84.9472997787810016 32.3711836015800998
-23950 -78.0810499196902299 36.6627157845132245
-24605 -81.3362997753767729 37.2446165809727603
-81059 -104.013891404711458 37.6273926194821584
-02476 -71.1765684376720742 42.4168537879365104
-43754 -81.2381182654702627 39.7624412648057799
-21170 -77.4449290000000019 39.4249845000000008
-97324 -123.666827592522623 44.3433353667502104
-74875 -96.9539974542373244 35.8695690932203419
-35620 -86.9886581766017031 34.9274511013860973
-31004 -83.8064337857142903 32.9514472142857144
-97013 -122.676256864468215 45.2442461266097027
-38391 -88.9878577230292649 35.5483353000363422
-77590 -94.918274781572876 29.3966711883145919
-67526 -98.5691177121164372 38.3535252400646769
-15752 -79.2836168333333404 40.5405628333333325
-57359 -98.195236728056372 43.8826527115988227
-21783 -77.5683619069308605 39.6539828925086795
-29452 -80.4607166960227431 32.755566632102294
-64019 -93.8672516902745002 38.7896991433914877
-07827 -74.7557744890851836 41.3031129371555465
-62260 -90.0985587079192669 38.4640839287538157
-50166 -93.432531202561492 41.2870848088234794
-59813 -115.413770499999998 47.6671436666666679
-34714 -81.741666551746377 28.4024203787626526
-38570 -85.3304505871529102 36.3779021691555755
-40915 -83.823436477900529 36.8932576086556097
-49445 -86.2731628257080558 43.2824724670478247
-62940 -89.4661147263558263 37.7461578100042843
-55231 -92.0035595555555687 47.9164151111111067
-99004 -117.599657245655493 47.4708393914156233
-39097 -90.5891711904763071 32.9812668364389268
-99746 -156.387776677083338 65.7020305104166624
-95304 -121.405382634615123 37.7252610158083428
-88420 -104.222279125000014 35.3747024375000052
-47713 -87.5588756731205535 37.9629764256976685
-26138 -81.1668503231197462 39.0270505766016385
-17575 -76.4370215000000002 40.0641710000000018
-54626 -91.0439198956627109 43.2126934731780779
-08341 -74.9485760273348802 39.5185186719817949
-30062 -84.4659716740139146 34.00200178968052
-71024 -93.2149932259983416 32.5082314151799139
-20886 -77.1925912084234653 39.1795184382995032
-64679 -93.5770951259842576 40.2342658595800771
-14827 -77.1408225999999928 42.1805732999999989
-45672 -82.6860643699589133 39.1947854642008764
-25314 -81.6587402490229977 38.3318022075915934
-55112 -93.197551147267319 45.0712542026195706
-21638 -76.2030282837477415 38.946293847544716
-61091 -89.542329558139528 41.9053208837209468
-19492 -75.5131467463768189 40.2948128876811396
-68045 -96.4961642627914813 41.8283468197935235
-77995 -97.1287333287327357 29.2663495107180189
-45721 -81.5834179615384585 39.5674496923076831
-34212 -82.4169591573291456 27.5006185353458328
-79416 -101.946356720187453 33.59680617219216
-56244 -95.7367347605113679 45.4933412203098086
-92168 -117.181712333333337 32.9806064000000063
-00610 -67.1459091285347114 18.2893634541559429
-62420 -87.9977650886694818 39.2924072751042459
-96830 -157.891687666666684 21.322427583333333
-50518 -94.3752011656249152 42.5334585374999889
-20812 -77.1424415754189852 38.9694145307262474
-28527 -77.0343720409791501 35.233910772751365
-46772 -84.9161754219749412 40.7220405436468127
-33863 -82.0225130000000036 27.8894470000000005
-23967 -78.6253781602062105 36.9091680821884083
-73040 -98.3109454426789142 35.6291859500567796
-07732 -73.992595546728964 40.4049385498442604
-79843 -104.053934813502508 30.2612686176799279
-11096 -73.7477351040000713 40.6187296453333389
-08344 -75.0264500003142558 39.5498001329769906
-65340 -93.1811618792893483 39.090005648731065
-46532 -86.6143636736928073 41.4102373968253588
-87068 -106.698822328278013 34.8576826546603513
-02633 -69.9796704226614423 41.6868714327277416
-46402 -87.3399675318157449 41.5994103255622818
-51548 -95.6316275694838538 41.3118668372093225
-64012 -94.5405730093787895 38.8070276941230787
-78520 -97.5220165672205752 25.9404891472951
-78124 -98.155289748090226 29.5557641393234256
-92782 -117.78756239690361 33.7379661236805006
-26520 -79.821426075471777 39.4964066823899174
-37667 -90.0393218571428662 31.2198560714285733
-63674 -90.6592018465608191 38.0226096084656149
-19958 -75.1735076827807518 38.7266478620455175
-33140 -80.1311284069723939 25.8161054227523046
-14470 -78.0467851806275235 43.2147741607009692
-38053 -89.9185515187551232 35.3448169463702015
-99372 -119.871518374999994 36.8200618750000004
-34103 -81.8027429339251455 26.1933654704141681
-61081 -89.7167536352182395 41.8191066174025536
-07042 -74.2180370214989722 40.8120250220961438
-99129 -118.230896979975327 48.0186691708385354
-11561 -73.6616121686263057 40.5884502529394524
-85734 -111.280281191489365 31.993914404255321
-15212 -80.0110070475836181 40.469435801049201
-76450 -98.5825781604455784 33.0678203803985582
-56508 -95.9976149999999961 46.7320862499999947
-26852 -78.9304922740227823 39.2386186165517046
-45356 -84.2410971550285694 40.1584715312270006
-55941 -91.3550636328150034 43.7352711469375066
-45889 -83.6487630574494432 41.146708779671691
-99199 -117.083095 46.5372836666666672
-35211 -86.8605999312967043 33.4689224884426295
-51006 -95.6121166719288595 42.3175887893226559
-71639 -91.5135424394009362 33.8928532746255087
-45426 -84.3027244391321631 39.8064680667791464
-37152 -86.7668591666666771 36.3962717500000039
-50620 -92.721305067146389 43.1405318633093628
-89070 -115.599390195652191 36.4965378913043423
-71048 -92.8664583006395929 32.8353412345415663
-24606 -81.3945893139534888 37.2776010087209286
-33606 -82.4677708567187437 27.9346241541696756
-48380 -83.6625607444704542 42.5875305350772706
-36043 -86.4089123722521322 32.2051582960359752
-12076 -74.3913709584948606 42.4112838643054886
-16234 -79.3315799789473601 41.1261687789473669
-19930 -75.0656799161504296 38.5383700492723733
-23821 -77.924086882048357 36.877918373094623
-00773 -65.7185734319249235 18.3635442225351895
-06901 -73.5384954070921566 41.0543134751773096
-25061 -81.4527998523489742 38.1791464093959831
-76112 -97.2201687178271214 32.7505074369965428
-07733 -74.1691514075317428 40.3849103964779701
-23829 -77.2189444855855101 36.7243213596396956
-85706 -110.939109010716265 32.1420117600946398
-73737 -98.4888465541204852 36.2711424231626225
-58752 -102.577184230602938 48.8339505090565353
-32168 -80.9878298867624693 29.0199377180714713
-60956 -87.7200517088607654 40.9596756455696323
-69331 -103.025294407407401 41.8539018765432189
-54773 -91.3121103955902242 44.3703151725031901
-36008 -86.5714021578947381 32.5008814736842098
-43747 -81.1242246500362256 39.8605745945203296
-80014 -104.83217970415528 39.665015315943954
-47584 -87.2526025895953268 38.2585416069364186
-33433 -80.1587057949335815 26.3479416628692391
-17560 -76.2202655575254084 39.9094595803935306
-33573 -82.3603266574606465 27.7103369801324746
-35184 -87.1491819489463637 33.1225514684783988
-08043 -74.9544479697154031 39.8456342774456616
-15229 -80.0351295578707038 40.5202892313307146
-45658 -82.4080304967654484 38.7581094753147468
-98847 -120.622626138177381 47.5186711362308642
-47464 -86.6496486220472093 39.2993425590551269
-24740 -81.0948507087651365 37.382619488658257
-31063 -83.9796948837378068 32.3004389441747719
-66202 -94.6668016156455963 39.0223707604656269
-56043 -93.2380055780219692 43.6500347428572155
-97834 -117.099791019852915 44.9141973894319051
-14206 -78.8113375566153849 42.881354771077099
-77338 -95.2988737329823721 30.0111738084482376
-34079 -89.9662142499999931 32.9748870000000025
-44645 -81.722460465116427 40.9109527852713342
-94063 -122.215543421036017 37.4851357177993734
-02579 -70.7511238333333381 41.7910411666666661
-78561 -97.9127335083798727 26.4652588379888343
-12860 -73.8126039639008127 43.720780016702669
-58852 -102.928578019646153 48.3540082740739692
-97225 -122.769223239999874 45.5006386922400452
-35055 -86.7866772160312934 34.160467441906917
-12432 -73.9582889354838784 42.0219160322580549
-91335 -118.540660075872765 34.202224690743563
-95946 -121.203549734353004 39.2199957088875593
-17859 -76.3975804151304345 41.1128718034957359
-98635 -121.237540154274996 45.7355170561571782
-06076 -72.2885143013787683 41.9818661118679728
-15930 -78.7207086486486389 40.2946531711711842
-56534 -96.0119942382460181 46.461132538367842
-85941 -109.97273439099979 33.8391899129472122
-41543 -82.278803691897707 37.5553714477611678
-58545 -101.597315436801821 47.3341231564245462
-28209 -80.8544789260919146 35.1783980619260603
-46552 -86.511204686355029 41.7098278886963385
-07756 -74.0095786861538869 40.2118999497435752
-92249 -115.505345793774239 32.734361964980522
-61025 -90.5834145781978606 42.4814478040660859
-36054 -86.3716872613176889 32.501549456881925
-56581 -96.7852121799309089 47.4525481372549365
-14204 -78.8614201521964446 42.8840118070084415
-31738 -83.878633763603446 30.9997745617520657
-84521 -110.818014591564875 39.4058742319644395
-47866 -87.3278483322193892 39.290528028743438
-18848 -76.4503519859751179 41.7581766395629046
-16820 -77.4024992997285608 40.9039828441256788
-01079 -72.3304530078329151 42.1889427389034282
-96130 -120.65270041642836 40.425578196516831
-92865 -117.846713122466141 33.8308586302563583
-07480 -74.3737876733493408 41.0851200367149545
-54002 -92.3717689577791248 44.9600092712901329
-77613 -94.3424428858447186 30.0487809954337663
-77994 -97.4715205205792898 29.1745241204268666
-77850 -96.1981124029850605 31.1831317761193993
-38659 -89.3211114361920551 34.6338543252143367
-10105 -73.9784645000000012 40.7627499999999969
-19516 -76.0048941733333123 40.4889858933333215
-39561 -89.1508471415120596 30.7069123195058289
-42337 -87.0197730948701178 37.2097691869592069
-07731 -74.2108780671755 40.148857687767908
-02831 -71.5816190122625926 41.7431238340947459
-76446 -98.3484278094625068 32.0754088444694574
-56681 -94.1831315098722115 47.6287481370499748
-35448 -88.0161431666666516 32.9172391666666684
-07090 -74.3447786672726352 40.6517683907693694
-88048 -106.660984926780515 32.1247307823470365
-42350 -87.1717327914344509 37.4471628956176019
-68933 -98.0510673354166755 40.5213808499999431
-23032 -76.6819725815900455 37.6702750470710441
-24088 -80.0616363998176013 36.9005261864678289
-85148 -111.62012133333333 33.027983666666664
-80513 -105.127839166260046 40.3024186028616285
-76544 -97.783005970758353 31.1295493296027779
-71496 -93.2826653846153846 31.0915894307692362
-85629 -110.982541362696594 31.9466574708088231
-48857 -84.1643147020157585 42.8412345591585861
-62263 -89.3970381984066194 38.3301207314921086
-66772 -95.2257867531761377 37.7521538230490421
-23184 -76.5191155102040881 37.2891473877551078
-64670 -94.1321388111976205 40.0623434870917876
-97623 -121.380578763557182 42.2704000663656529
-45876 -84.3379742034632329 40.929739041125579
-25812 -81.1046662522436606 38.1392971979216355
-41642 -82.661221111267551 37.5861661492957921
-78344 -98.8379605375494066 27.4337758537549412
-68018 -96.6122889732988455 41.29953187252368
-49047 -86.1298143338713658 42.0116349990135092
-27816 -78.0813003986896774 36.0967736276661668
-20546 -77.0211673333333238 38.8874840000000006
-41030 -84.5926092803126863 38.7817896865445135
-49415 -86.1463716821934895 43.144450578419729
-34428 -82.5925793816013538 28.9495202717011146
-27262 -80.0323166937538844 35.9635324995599817
-74128 -95.8512695230432001 36.1460292841990025
-19564 -75.8729351176470459 40.5238245588235273
-20375 -77.0222983999999826 38.820070566666665
-28317 -78.9994824999999992 35.0593577500000038
-19523 -75.8372372456140056 40.2055591929824629
-94553 -122.113610717991463 37.9906711367900058
-33184 -80.406157046682381 25.7603734094698495
-65680 -93.0200532611649606 36.6597525691968613
-23298 -77.4299625862068979 37.541449689655181
-27106 -80.3192837516671005 36.1388341644124722
-54952 -88.4204574513756398 44.2157697316461835
-21153 -76.7091222618025341 39.4161545665235806
-17537 -76.2380498888888809 39.9855458888888933
-05460 -73.0999883600000118 44.9819164800000024
-36507 -87.7801898430025886 30.8760946715950269
-61251 -90.0714443087052956 41.7283669941477555
-73075 -97.2236192040766838 34.7359569978668716
-48109 -83.7221415591053812 42.2873513801916943
-07465 -74.2815198015641016 41.0577809706745143
-62238 -89.555683508272196 38.04098091727937
-49945 -88.3434647971091636 47.1580160374733097
-14880 -77.9880700822485693 42.1712388120037289
-35786 -86.4709466249999963 33.2252729999999943
-50527 -94.7939467938387708 42.9656358056872705
-95664 -121.032830029415535 38.8123642632313164
-38029 -89.8168184074073963 35.2448428888888969
-55007 -93.132383038356636 45.9644052219803712
-74801 -96.9480646516550166 35.326167185295823
-51036 -96.1897347236110392 42.9710291555555202
-45743 -81.8511404157606961 39.0739550525350836
-25186 -81.3037049113301293 38.1750907807881603
-48872 -84.2249338215504935 42.8053379478303029
-96196 -120.569444500000003 39.7190432499999986
-46921 -86.101047785714286 40.9104563571428557
-55716 -93.2766969117647164 47.3221434656862812
-58337 -106.911171499999995 47.3221050000000005
-18062 -75.5719178790181729 40.5218339176790394
-59542 -108.355514021516498 48.8772994385245738
-70437 -90.1973797317901642 30.6119479614024321
-13054 -75.6626178905835047 43.1662389038461569
-76066 -97.991425147779097 32.7102835327920332
-68457 -95.7106762295917974 40.1482704047618952
-17981 -76.3959482993359984 40.6307189259961348
-93433 -120.618170178314159 35.120689297085498
-64153 -94.7043097886286347 39.2699688976987957
-95429 -123.358127913647024 39.7054940408635204
-17959 -76.1189605384017938 40.7249956757175724
-18443 -75.0927764384397136 41.6658158712406106
-30428 -82.7021761985250379 32.1866462546794736
-34668 -82.6940926581085876 28.3013829720140357
-66033 -95.12297895953742 38.3702962919076072
-14410 -77.8557089999999903 43.1974069999999983
-01089 -72.6470754123773332 42.1196209586890475
-96162 -120.319713900000011 39.3044531999999975
-24317 -80.6662397552612163 36.6018322332206907
-70501 -92.0076463147986061 30.2348593577333808
-15773 -78.7319384934333897 40.6293032814258765
-38079 -89.4655274701762693 36.3919118767852154
-90630 -118.038256954456699 33.8167127744140501
-58121 -96.8648608000000024 46.8617275999999947
-75860 -96.2542972748758245 31.6177664728626056
-71754 -93.225977626666662 33.2617528800000031
-67439 -98.1972286040749509 38.7416550659721821
-06281 -72.006491368707259 41.9640464689626498
-89130 -115.224780630078087 36.2547996749601751
-54143 -87.6277845722858757 45.0914560267323523
-73446 -96.7925128792378189 34.0871580208089213
-53501 -89.0721965873016188 42.605594015873038
-45224 -84.5357261620537344 39.2039608721739441
-57312 -98.3579882001159689 44.2161231824244823
-96000 -122.089454250000017 39.8272719999999936
-29492 -79.8887877915682907 32.8986591755363449
-28332 -78.7263349375765245 34.6547569241126681
-37843 -83.0572036032262844 36.0097850297676487
-72036 -91.2643445199203143 35.0027003754980157
-76642 -96.4881871253644476 31.5025045689991003
-47128 -85.8389593983739729 38.5657933739837233
-64761 -93.68567896435205 38.5995001451912074
-54670 -90.4920962628712147 43.8315407130597663
-67736 -100.474008149006693 38.9096671423840945
-77661 -94.3739617942387099 29.7859359259259158
-05034 -72.6262104574469873 43.5917305531914963
-01093 -72.6666210323501645 42.4347343805899655
-78734 -97.9522374531917706 30.3771762239386867
-47901 -86.8876871760038654 40.4177097521070721
-25109 -81.8609920769230825 38.533151817307683
-93410 -120.631426111111125 35.1220918888888889
-55012 -92.8006528196337968 45.4251509239079923
-81623 -107.181640941056628 39.3398189888661065
-35771 -85.9930235754025318 34.5383058196594277
-80045 -104.836761078212263 39.74662488268158
-57429 -98.3126778161993258 45.1683234859813183
-76233 -96.9147744743288939 33.5432388401718882
-74704 -97.1205574999999897 36.1186080000000018
-74902 -94.4730188471454397 35.2523180489344199
-62097 -89.8656140654711351 38.9335134224214343
-47949 -87.1418202501186983 40.0588776065495864
-66854 -95.9741872983569806 38.2697481194921849
-32856 -81.4199799999999954 28.5489685000000009
-11095 -74.2151384999999948 41.2743579999999994
-43803 -81.6461257407407714 40.3600649259259328
-29707 -80.8536452109012629 34.9766584342957429
-91104 -118.123440625361084 34.1681869805722584
-79223 -100.412899413043462 34.2300188641303933
-35073 -86.9629267551188292 33.6414347664332993
-35019 -86.6376427549534611 34.2989523957010007
-59079 -108.359187074972169 46.0103581926053877
-20181 -77.5677777716231986 38.6961067721400269
-01007 -72.4068352348170805 42.2735691003587988
-43977 -81.0948623329351364 40.144141497078266
-98026 -122.332126012477872 47.8327306232780174
-94505 -121.608591467385679 37.9047090903306554
-66754 -94.8980215831132909 38.0088789656992105
-11704 -73.3567594813325741 40.7159538667261884
-77434 -96.3283826500994422 29.5619228021868921
-28083 -80.5979957370249451 35.4942133787498264
-73802 -99.571257833333334 36.5688935000000015
-16987 -77.6475187500000033 41.9421324999999996
-08056 -75.2505114633191141 39.7829748899574511
-44811 -82.8363922256084066 41.2582220370449591
-72474 -90.6707338823529625 36.0424088235294136
-98365 -122.68983911160511 47.9071934698747341
-74547 -95.5587618466289825 34.8549657797221073
-51247 -96.3324396723332512 43.1954086007228071
-76204 -97.118795428571417 33.1733402857142892
-27314 -79.1890211427463555 36.2898020010325837
-50830 -94.1923309765032144 41.0312246796820475
-41772 -83.0230723813664895 37.3939170074534246
-88081 -106.396821152434555 32.0302276091743394
-92345 -117.316026433510956 34.409573152749438
-76071 -97.4825720535556997 33.0044819113256835
-26679 -80.8124701866710637 38.1708229416262981
-14846 -77.9963844643816344 42.539217355510722
-48229 -83.1491380717300643 42.2506003435804089
-50446 -93.4591706615108961 43.3437341237358282
-55008 -93.2475158370033057 45.5677673868705639
-74858 -99.8866936666666589 36.275699666666668
-65444 -92.0583245838856072 37.3822344126263886
-85937 -110.035558286539072 34.5250363436652279
-40755 -84.1197098909090926 37.1744333181818334
-25982 -78.6318468749999937 33.8586027500000029
-54826 -92.1531359166666562 45.4995755610516923
-38685 -89.4913829972436332 34.6016138787210821
-03082 -71.7706122212742059 42.8958165689009192
-11375 -73.8428252303150288 40.7163350157480153
-46919 -85.8590378498736442 40.5859117936157077
-13670 -75.093222310077536 44.204169422480625
-56374 -94.3292240169397473 45.5873513499778014
-58567 -99.2585519999999946 46.7840379130434769
-08104 -75.10900178622569 39.9175682068870472
-49253 -84.274974930689865 41.9748682026225808
-05827 -72.371562039833222 44.6777740660090572
-39180 -90.8502606070738778 32.2869386727531449
-65443 -92.0924052096475378 38.1480120946196308
-63348 -90.9388100718218482 38.8110851050666525
-57038 -96.5810971506620746 42.5799894156802949
-26502 -80.0104840000000053 39.6062677500000007
-17077 -76.536618435897438 40.40368912820513
-45223 -84.5472546898137551 39.1651756163198499
-37243 -86.800992340659306 36.1679846153846185
-77866 -96.2056411437371395 30.4630593819301616
-52720 -91.1597330960238423 41.5835610562605282
-71965 -93.7358857513514465 34.6463780183784067
-72377 -90.3450434175824313 35.6768837142857222
-77925 -95.1052467500000063 31.7246567500000012
-55455 -93.2345352849162055 44.9742292541899431
-76210 -97.0927432188701971 33.1513562258033971
-57788 -103.362530258984876 44.5836836443126714
-01773 -71.3076458997603027 42.4230287290013379
-25242 -81.5207225283018744 38.6757534716981297
-73439 -96.7189917329981483 33.9344646155809428
-85255 -111.867510146574716 33.681583587020242
-95503 -124.150539518567911 40.7554781336703513
-94110 -122.414794814708287 37.7484536610518759
-25570 -82.4380829632690251 38.2295965207860462
-63079 -91.0947448869778356 38.2670265405405274
-72422 -90.5524572850416263 36.4184743619808415
-18438 -75.245487017684539 41.4327505041264743
-95986 -120.78983565412193 39.3584111093189719
-03879 -70.8809022307692373 43.2360338461538447
-12197 -74.7238106398200301 42.608064813028129
-43735 -82.1323478257372841 39.8332601957104586
-15632 -79.6158281563289449 40.4301735224635692
-68183 -95.939828250000005 41.2575330000000022
-61254 -90.1664709995880997 41.4733385039132187
-58053 -97.1820475751313779 46.0681810545688322
-39552 -88.543666999999985 30.434188666666671
-38461 -87.3237614112880181 35.5996724134984603
-80750 -103.604354637554678 40.3830053566229594
-47380 -85.0357711408189658 40.2883811275847918
-15136 -80.0966652026369701 40.4701718964569963
-21626 -76.1036673708154012 38.3388436025750678
-36376 -85.2749787611823393 31.2510241232983113
-30573 -83.389130101511924 34.7420496263498606
-77536 -95.1170419487996384 29.6883264950074732
-78701 -97.7425846626450294 30.272192250965265
-80312 -104.835430181818182 39.0636924545454534
-16685 -78.0828043353366326 40.283655375600901
-53158 -87.8707156098657407 42.5291576802783737
-60185 -88.2132414105846294 41.8978785702179337
-42276 -86.8760416221758334 36.8638686375119491
-61501 -90.3195958805651173 40.2270973315606497
-56131 -95.5777164397535444 43.8583559593847241
-84054 -111.907253014595625 40.8424860362918878
-28694 -81.4678685175057211 36.3578923264874518
-04341 -69.5429587999999939 44.264784800000001
-04733 -68.3992848083333485 45.8020026229166461
-33405 -80.0584863876362078 26.6705722761069772
-76014 -97.0894093104867295 32.6950622798482797
-70633 -93.408644221203474 30.4441899318453153
-75474 -96.1088547482969489 32.9101684257996681
-21213 -76.5790289153945309 39.3133547007919972
-26268 -79.7021669999999887 38.7843467058823492
-88065 -108.312225540540595 32.6714872178060745
-47429 -86.617433075043806 39.2590352898566479
-59439 -105.291262888888895 46.7739287777777832
-99623 -149.646860094320232 61.5614352132628753
-95457 -122.57151518636536 38.884154299493801
-92373 -117.173548110798933 34.0323193060593496
-40387 -83.4835059714128818 37.9416022139128302
-66870 -96.0079501800765627 37.9381864521072529
-02370 -70.9110512509001722 42.1277894229132173
-16675 -78.6754561000000052 40.6612678999999986
-63458 -91.9838101510416806 39.9862970260416475
-52038 -91.551797667396059 42.5822262210065006
-50423 -93.81177675939702 43.104287377580647
-72776 -93.6582575244718214 35.9148443634781742
-20747 -76.8846139505001673 38.8551453939747944
-03255 -72.0195427460595994 43.3204302206654646
-72044 -92.1602237252951113 35.6408719706858292
-30598 -83.3537965555555331 34.5953043925926025
-65337 -93.4236674996695484 38.7883222855253678
-03225 -71.2367655453117266 43.3651966018046195
-13215 -76.2156526766522404 42.9919100737092066
-03262 -71.6918807595600356 44.0122316998087797
-84516 -111.097446623229359 39.1236763597733628
-46741 -84.9563509800176604 41.2124446691155697
-42214 -85.6796930744867922 37.1299617876895525
-82009 -104.838409772113451 41.2147160831682413
-91506 -118.323955599853448 34.1708965185049109
-73573 -97.9953464063525814 34.1629412853231074
-25275 -81.6092007948598024 38.9232098341121997
-79360 -102.681668377239291 32.7087037155975509
-67738 -100.630796375262065 39.1069929580713094
-60946 -88.2301107520775929 40.9281503545706187
-52330 -91.4936021980603158 42.3480807345585148
-37844 -84.5456797857142845 36.4732384285714275
-32531 -86.6743459963914518 30.8605449322656362
-31556 -82.1118722954545461 31.3921679886363485
-19365 -75.9243791440468385 39.9654668663065138
-25092 -81.6861523333333395 37.9876600000000053
-56541 -96.1281409062500103 47.1697247812500038
-80420 -106.065599576217565 39.3002602517393811
-36006 -86.7161815750080507 32.6403809350796479
-15442 -79.835830282422279 40.0175047025723671
-34268 -81.8949777323943238 27.1544948169014013
-70031 -90.2985847112461357 29.9484354924012059
-25843 -81.1239560766422017 37.6124561811131599
-12060 -73.4928458310613166 42.411861794189889
-30292 -84.380605877630245 33.1761242447391922
-39047 -89.9926746236517943 32.3847637491149314
-92646 -117.969165113176473 33.6676642896677834
-30145 -84.9830188327209868 34.2297955152721016
-45758 -84.0845947500000079 39.1819372500000043
-86506 -109.204562747899146 35.3153007563025056
-27599 -79.0505686239316248 35.9073725641025661
-13924 -78.4843643333333318 36.827733666666667
-32027 -81.6111887777777696 30.6139242222222236
-61544 -90.2413243909089715 40.6950498609092719
-59349 -105.41651340006085 46.8546901077204225
-08802 -75.0170984198134647 40.6653352994225585
-82329 -105.97725353441453 42.1456093509910161
-68840 -98.8621177738316987 40.7637116073067602
-33567 -82.1288339054554086 27.9471678730709989
-19483 -80.2565448823529266 33.0731671764705837
-34102 -81.797967490395834 26.1419860053840587
-14040 -78.3777377931688761 42.8862948083490565
-77364 -95.2061456042920469 30.7682938872021765
-93906 -121.636600598943701 36.7100125768630932
-32147 -81.8049417315541945 29.640322796703316
-12274 -74.8250233749999865 41.6928967500000027
-14842 -76.9541452346241073 42.5935172181093193
-59253 -105.867866244549603 48.7528456170615669
-80274 -104.987299500000006 39.7443925000000036
-42344 -87.2954531942116745 37.2423110944402467
-69355 -103.505365721649497 41.773065917525777
-73666 -99.9126991172247898 35.4131255933014302
-72430 -90.1855642277551084 36.3379523281632189
-90065 -118.223698766602539 34.1106159248170329
-06755 -73.4786474442949071 41.6470481716082332
-29510 -79.5926658353603784 33.468288500206917
-67026 -97.4989393071200823 37.5323353676940599
-07008 -74.2313127017937688 40.5830549513132368
-98286 -122.962504401697728 48.5769639651474066
-22514 -77.2585123704897683 37.9788310883304092
-50027 -92.4903314458815373 41.5142339183117741
-70449 -90.7040389180674964 30.278582859621018
-44950 -88.0194034999999957 47.3850049999999996
-32564 -86.7601690172247402 30.7207657389473177
-40355 -84.8632725402636083 38.6023844172766744
-20711 -76.6539118928739356 38.804270231550646
-31097 -84.1556235283912741 32.9149109850157302
-06612 -73.2860416873328262 41.2597365021938813
-74854 -96.7618689885531467 35.1220343342491432
-24012 -79.9144111631769789 37.3093107313039383
-18626 -76.5020103178226947 41.4200033178226619
-17114 -97.3647718333333358 38.0865130000000036
-58489 -99.6247273586956226 46.0276714130434641
-33318 -80.1355585000000019 26.8092269999999999
-72029 -91.2841360796849699 34.6956168450565201
-49620 -85.6920327444868377 44.5178382941035693
-79251 -100.394475904000004 34.9308171840000057
-65791 -91.5365192880644116 36.5288211862092851
-70632 -93.0206494454902071 29.8139721623529077
-59230 -106.649858589610858 48.2139288261232863
-29368 -81.8638282290748833 35.0804388193832537
-00755 -66.9849008484848554 18.3283041969696932
-97321 -123.115772027590452 44.6427738271467902
-21040 -76.299079762090372 39.4297180656526507
-08103 -75.1146325085389464 39.9360579848197403
-61447 -90.7465277544911118 40.8660921491016822
-08734 -74.173562201135141 39.8639236002128001
-05152 -72.8932941456984338 43.2399874357543084
-69148 -102.565110135818813 41.5409698482024297
-56019 -94.9164062838318188 44.1036007949213129
-34269 -81.9834130605941596 27.0739009792807224
-43112 -82.7111163365211581 39.7961121410640501
-56661 -94.1711628653205679 47.8320850462655471
-33417 -80.1228196937090189 26.7186637280398642
-05067 -72.5432576053669891 43.6971139636937593
-68416 -97.4539027532049005 40.4121615032051054
-81021 -103.413215777602488 38.4457057634069628
-47501 -87.1666837071735614 38.6488068600971673
-17557 -76.0756741983858547 40.101584442741725
-46705 -85.063868084160589 41.5237590565386583
-14214 -78.8380242936449065 42.9415999575038398
-51047 -95.359323678545266 42.9105665698015244
-28692 -81.7807119009035119 36.2630802678951483
-67589 -98.5564440000000133 37.7590012000000002
-47231 -85.499344627580129 38.8905942863417167
-11434 -73.7738294660194072 40.6747407184465928
-63567 -92.7181446031249408 40.4196977687499697
-81231 -106.917833166666654 38.5466676666666643
-62540 -89.4174131275252506 39.583582804292881
-55325 -94.3171041695593573 45.0879816011646923
-99559 -161.793843976374802 60.7901690930232803
-87605 -105.963790166666669 35.6526708333333318
-64654 -93.7752704999999906 39.8484830499999845
-12082 -73.4442393457944149 42.7633497289719671
-47967 -87.004368349159293 40.1968683135509792
-28511 -76.3478650401459191 34.8856575912408786
-86946 -112.207779666666667 35.3604733333333385
-43016 -83.1378592902433269 40.1008349873194376
-76481 -98.7138129451038964 32.9933774020772006
-72459 -91.2807693434115635 36.2535887128393668
-58538 -100.65028459026118 46.1136131009501327
-83120 -111.039028451936773 43.0013844878048985
-43322 -83.2096093835616699 40.5318349999999725
-62337 -89.6520126666666783 38.1767256666666626
-46952 -85.6597636658981259 40.5852706498177227
-52077 -91.5522723304710411 42.8205914866557578
-14028 -78.7234404999999953 43.3209276495399322
-77062 -95.1307740810462263 29.5748606728129744
-63350 -91.3646802899884705 38.8987583072497713
-63463 -91.7559754242425356 39.8416114583935155
-97361 -123.312454014820275 44.8009732758710868
-70776 -91.0992169988738993 30.2774991576576866
-44118 -81.5550192862298502 41.5009472252609939
-44108 -81.608997942299041 41.5377951160676062
-24426 -80.0422638967681905 37.7630160778763724
-12486 -74.0669657494181308 41.8328516516679514
-08347 -75.0858066666666701 39.4964119999999994
-18314 -75.0216183500000113 41.102503200000001
-92803 -117.374173500000012 33.7009534999999971
-24916 -80.5709285915697819 37.8258891511627908
-18017 -75.3750461240391587 40.654340233915228
-56246 -94.8567593000000073 45.3379078000000035
-83840 -116.51476037583889 48.3113892013422728
-12132 -73.6279475450450605 42.4754803693693503
-58244 -97.6209957940055091 48.1215055585831664
-97601 -121.860073305470252 42.2604087543254039
-74960 -94.6564589047302007 35.8305804996669366
-67501 -97.919942271080842 38.0189704971300984
-16625 -78.4985544352180966 40.2896115693719494
-52039 -90.8468202224673291 42.5423338631648136
-49257 -84.5082324999999912 42.0468355000000003
-75683 -94.7340795242599825 32.8121835400290607
-13210 -76.126680856845411 43.0334797437556915
-99154 -118.343738248691082 47.3918938246073438
-32817 -81.2481877724050321 28.5913637406901238
-70502 -92.0184180322580545 30.2051748709677383
-45061 -84.649185166666669 39.3121098333333308
-15864 -79.221561242236902 41.1144944121434293
-23424 -76.5634804545454699 36.9944821515151503
-90057 -118.276776278118533 34.0626748640082013
-61559 -89.7770460536805217 40.916946228297455
-56467 -94.856037204700371 46.9578952826995391
-52765 -90.8686926825395602 41.7268906849206545
-03036 -71.2421849019010551 42.9701554405747004
-20188 -77.7990366428571463 38.7249032857142836
-97495 -123.332373671691826 43.285210381909522
-76459 -98.3944869875000023 33.2765031624999921
-27024 -80.8354565600487263 36.5231733392298352
-35114 -86.8750536964143123 33.2220124397078038
-37019 -86.7111805938027089 35.3934386805634063
-82586 -117.209006894736831 33.7232903157894768
-51108 -96.3682729119620376 42.5600858813398233
-33971 -81.7045863953465101 26.6324179437872353
-47869 -87.5076546214285713 39.2739216785714333
-95138 -121.769775108293345 37.267585965844269
-47854 -87.4047948015834066 39.7921245660564793
-71455 -92.9233807327259171 31.3541786317388009
-57772 -102.416338319999994 43.3811672399999964
-51244 -95.9273556734694353 43.2371574285714004
-66506 -96.5796682304687266 39.1922674960937201
-78584 -99.0023740905572964 26.4641548878238311
-39327 -89.1276418089062759 32.4457988366839203
-95704 -122.266867000000005 37.8608077499999993
-24235 -82.2913536046511496 36.9862081860465253
-56288 -94.9556515514266408 45.2428641698153839
-73556 -99.3862995625000138 34.725993625000001
-38133 -89.7992787628638922 35.2105105254872157
-29153 -80.3232976188417496 33.9522716784132896
-64475 -94.6464719174047104 40.4321243439291464
-00771 -65.8678353760632262 18.1918543122721772
-01267 -73.2192711129621756 42.6891531356809963
-78245 -98.6949159034996768 29.4159912982741005
-05038 -72.4636111894973993 43.9912137593398995
-85202 -111.875520751365187 33.3774028818390605
-71748 -92.4305326124030842 33.9075062790697643
-49640 -86.0357604726896028 44.7063278080896751
-55032 -93.021478201850698 45.5893314916038008
-57021 -96.9819507523670268 43.266872990953047
-29658 -83.2749075275923758 34.7679811140085064
-78657 -98.3771529209431179 30.5489606413786454
-34475 -82.1536764454649813 29.223842263233923
-15052 -80.434245055922176 40.666713256898575
-37888 -83.6157695443842925 36.3071730630032832
-79108 -101.832680271930599 35.2917190530982126
-34429 -82.5881606254432086 28.874305049195268
-50401 -93.1958646318836372 43.1499048062253081
-70390 -91.0349978167830898 29.9261641421911371
-12074 -74.051372715099717 43.0511160433049014
-27344 -79.4433029751046007 35.7318547941470328
-28539 -77.2053716922156923 34.6909292892008168
-51334 -94.8031170104572283 43.4085276662090465
-24974 -80.4430538480392556 37.6571035196078228
-78596 -97.987403841145337 26.1537449386992122
-92203 -116.247993413387718 33.7494835291081259
-48174 -83.3505155059615532 42.2142203516502406
-48208 -83.0906821863888041 42.3480344908583106
-59222 -105.154099706940841 48.7278997956297744
-29659 -82.6448076902356661 34.2136280572390277
-29657 -82.6890971293545505 34.7749550863374282
-98164 -122.332029500000004 47.6059614999999923
-23308 -75.6157903866268697 37.8254283076300197
-95729 -120.611512888888882 39.3092226666666633
-13472 -75.0317303858784612 43.6849426551723923
-64790 -94.2051794168443308 37.9034931705756293
-50132 -93.7033179092370574 42.3946319485944585
-48519 -83.6106280421348913 42.9897952954120655
-80307 -105.47145350000001 39.9391916250000065
-11767 -73.1439531927182713 40.8446415946603167
-61832 -87.6292778734746207 40.137752776411503
-18610 -75.5252391682161743 41.0497574821641038
-31759 -84.7800049090909056 31.0100368636363655
-08432 -74.8323038888888874 39.5004435555555631
-62982 -88.3467100320641379 37.4253813727454911
-72820 -93.7315637843136926 35.4242774901960829
-46227 -86.130035903819163 39.6720068804839627
-66755 -95.1711418415250279 37.9259054224952834
-04358 -69.5394367351949541 44.4188771722100668
-91761 -117.603515390186629 34.0337988930233522
-34138 -81.3602478415584329 25.8143149402597416
-46902 -86.125341651295912 40.446123689596071
-43767 -81.8006189077699872 40.0024900682087861
-78731 -97.7689071531418534 30.3479757183788053
-80107 -104.591699702720604 39.3984187515994364
-56024 -93.8679070246212888 44.1552289507576816
-38731 -91.086524197916674 33.0884111093749951
-29716 -80.968196565217383 35.0347237391304276
-03869 -70.8359612266851997 43.2235893033240828
-99223 -117.354955152297151 47.6068332183186129
-61062 -89.8433391556830827 42.2556574126073059
-70354 -90.2959811564570884 29.4293746552152555
-58261 -97.2926318236285965 48.2475138915943731
-56757 -96.888514119974289 48.469299744380443
-79906 -106.416269652999986 31.8114543399999761
-98404 -122.413297604152945 47.2106523596706893
-25204 -81.6217613090908571 37.9264737757575787
-08886 -75.1123271983963576 40.6912956957618022
-62804 -88.9071605000000034 38.2896015000000034
-56153 -96.0178122444444568 43.8349840055555475
-38131 -89.9934887113402198 35.0650181701031087
-23831 -77.4429715630868003 37.3442568226018921
-14138 -79.0615101652333578 42.3762504531461843
-79413 -101.888970802545188 33.5460562813679743
-68504 -96.6571812518755991 40.8451671427535672
-38663 -88.9013632243098755 34.7401990399328042
-16678 -78.2297252857143803 40.228387802333323
-48316 -83.0657405605278143 42.6916369929699471
-99685 -166.527161952627722 53.8727139215396065
-28075 -80.6453103180595008 35.3075950030946899
-28383 -79.2546259403851678 34.5879517813504975
-53226 -88.04310917028765 43.0490954264954198
-74134 -95.8102523745914709 36.106986130780065
-78885 -99.5445604715083192 29.7745214022345905
-81221 -105.144288285402936 38.3598770980392345
-53507 -89.9001511863541651 43.0090510746291983
-64660 -93.0777101525424939 39.5820813866525612
-27950 -75.959202014136153 36.5187349874345628
-05907 -71.7558981734748613 44.9595117074269837
-06519 -72.9367180275629892 41.2957973863636525
-75057 -96.9948948689004311 33.0488957797658429
-64440 -94.9164048566378824 39.5855976698810466
-24514 -79.1740126875000101 37.3603403749999998
-55021 -93.305126059376704 44.3089005052365508
-24559 -79.0048703333333293 37.0435013333333316
-56450 -93.8303724687447698 46.2442550964252774
-74339 -94.8714590345369402 36.9339385374149813
-43917 -80.7988765985737132 40.2071238624162177
-38340 -88.6644621692323796 35.4107800814676139
-50116 -92.96681851322451 41.178993880135053
-46566 -85.743211500000001 41.1038929999999993
-43804 -81.7362554255842042 40.4535661072675623
-41230 -82.6581349033314439 38.0872759529542222
-39466 -89.6556657003457644 30.5418597372206904
-67215 -97.4341352594099277 37.6293759528653382
-93706 -119.834429950728307 36.6936547959600645
-64466 -95.1018198902044389 40.1770939634014823
-64155 -94.5716558028808549 39.2763244962971925
-43944 -80.7753247047105276 40.4325872709339862
-89515 -120.001027999999991 39.5221573999999976
-17039 -76.2443255606060575 40.2984809696969819
-56588 -95.5194668405072491 46.2405178201383649
-77332 -94.6351319999999987 30.6275860000000009
-47995 -87.0340931395049182 40.7582933065661024
-22717 -78.1084766470588221 38.6035592941176446
-40468 -84.9754974992739136 37.6479900098607203
-19975 -75.142469219945923 38.4684172223098244
-87568 -105.474413038461549 35.4168083846153934
-08041 -74.6788884287060029 40.0390351630024668
-27931 -75.9544528333333346 35.8867428333333365
-90278 -118.371837800896742 33.8708247324840457
-50472 -92.9389472149205744 43.4161106588301067
-28685 -81.03215284254496 36.3345935526117145
-81212 -105.306224157883605 38.4727154045669906
-58272 -97.9884641950114172 48.0111346479592171
-42457 -87.7608865737705059 37.7996127868852412
-65772 -94.0475470789342296 36.5853694787864896
-32061 -82.5243977055630467 30.0769388303934662
-56031 -94.4619989905192057 43.6372072614943747
-62219 -89.4344326967006538 38.6051189631979526
-59853 -115.809961109480071 48.0485230276186712
-76036 -97.3864948931320811 32.5741123631911407
-35116 -86.7693933976223803 33.7365942011575441
-66494 -95.6220830000000035 39.9143488000000062
-58259 -98.1223862514954845 48.0074399252244959
-23513 -76.239512070956664 36.889056409836023
-63536 -92.3772264677640891 40.4734404581618747
-84045 -111.913592874456981 40.3479095757321673
-54747 -91.4262758766787016 44.3598529401709243
-32057 -81.6050595000000101 30.2015250000000002
-52402 -91.6587582144230169 42.0243528714742567
-57341 -99.1697983353658685 44.131596538617913
-78008 -98.2421629984709028 28.7550631360856173
-13212 -76.1385483917143659 43.1274701790000492
-38128 -89.9258653287576379 35.2236921551952804
-78802 -99.7410591454545283 29.2071046363636349
-77685 -96.5614646666666658 31.0593806666666659
-67481 -98.4202330328766664 38.9891111794520313
-61726 -88.7143334440499558 40.7610116832268687
-78138 -97.8616946875000053 29.7154039374999961
-50641 -91.9086184746637258 42.5989787311272323
-39333 -89.1917239206349421 32.0376924126984122
-92527 -117.803175666666675 35.5971406666666681
-11249 -73.9623969972144835 40.7126709818940924
-31021 -82.9383632791204803 32.5107789311297353
-71375 -91.4565998111030041 31.820171209805352
-58564 -101.348393769835013 46.2908520722702477
-87571 -105.555868126216041 36.4037939840167866
-68437 -95.6604941872145815 40.2417621255707658
-85143 -111.554944976784455 33.1639421162020014
-82644 -106.37898680743811 42.8489096446280939
-24925 -80.395556063246616 37.7606680302178432
-46341 -87.2055150975837989 41.3402800382550382
-41121 -82.8301610220938898 38.4594664309975514
-88869 -116.931991999999994 47.9429283333333345
-11771 -73.5248651983535382 40.8665259444761659
-68016 -96.1038878859935153 41.042500094462504
-40350 -83.8757053273361777 38.3015040081254412
-01008 -72.9506355237286925 42.181990454237372
-65449 -91.4751057700959507 37.8503921998015755
-52776 -91.2733276927051378 41.5740410285274962
-01467 -71.6094750315789241 42.483996526315785
-46804 -85.2520412583414497 41.0541378307687381
-29715 -80.9270356959677883 35.0215985944708521
-46030 -86.017805498389265 40.1708932774964964
-27919 -76.5356609038099691 36.3092344300264287
-58416 -98.3577025859233345 47.5421835448296122
-37405 -85.3312519398668314 35.0900888872793928
-01468 -72.0654491751598982 42.5521506975448958
-28441 -78.4317725670212837 34.7943478434031235
-36066 -86.4322541345501918 32.477546943381661
-55905 -92.5284846666666567 44.0555176666666668
-98359 -122.568497414551544 47.4285786146269146
-12182 -73.6479381320159234 42.7915777272894786
-32571 -87.1622702034660364 30.6352495178857964
-57531 -100.533651042704633 44.0500061459074459
-43432 -83.2512755737920145 41.5557041416280697
-61335 -89.2382179355893754 41.1594868034934009
-83115 -110.191511438718052 42.9538106860465092
-04963 -69.7827739456829903 44.5552028909301541
-27253 -79.3648694154547201 36.0005405027260181
-93943 -121.872804000000002 36.5951033870967777
-72534 -91.7347221079732122 35.5983286358858848
-30268 -84.7076930839057525 33.5313717277723313
-25286 -81.3928426325691277 38.6121771138425984
-65536 -92.6573613561455005 37.6880972241556051
-57567 -101.707236177194261 44.1247654372436102
-57621 -101.083565264150977 45.7656801698113043
-56115 -95.8942826837821514 44.2245120731878387
-53717 -89.5162383722508253 43.0733543490235959
-56401 -94.1664484213459332 46.3475508328369941
-06824 -73.2705842285699305 41.1684445881106811
-01835 -71.0833526143907051 42.7564208826484773
-72546 -91.9379567077409234 35.5799317898894358
-57854 -103.326195999999996 47.7948000000000022
-83276 -111.569667453059481 42.6785068424140945
-39328 -88.7261495676727918 32.7391793671553089
-13163 -75.7079529489795959 43.0792870102040766
-93922 -121.925885937499984 36.5487159999999989
-48454 -82.8185148693694515 43.2024724380630047
-48103 -83.7999455647028526 42.2802827189349983
-06851 -73.4030451743065129 41.1350991613517607
-16424 -80.4508412307939693 41.6421197224155364
-14452 -78.0922387857142724 43.244162071428569
-30099 -84.1142279999999971 33.9800269642857202
-20876 -77.2382096062149799 39.1999577614341916
-80235 -105.076334221255905 39.6463661222221617
-19945 -75.1753772882791793 38.5118684282233374
-60429 -87.6851231991644795 41.5719505097976239
-23923 -78.6345584955926995 37.1007503242617815
-48630 -84.7732875928572014 44.326931100000003
-15478 -79.8194563639610664 39.7968402783308264
-78546 -98.655048750000006 26.2671242499999984
-25567 -81.8644306124339209 38.2285330654761353
-59015 -108.790240924263841 46.0831494712849477
-24523 -79.5232152421863674 37.3309949931817115
-58026 -97.4319892499999867 46.8027112500000015
-68959 -98.932406134512604 40.485642630757674
-28680 -81.6770642357723489 35.754501243902439
-64635 -93.4599854733192643 39.934918413721455
-25313 -81.7617135626867935 38.4214430190048333
-34994 -80.2564353148688809 27.2006106387756041
-22972 -78.236949249139812 38.2185730330350566
-50648 -92.0910844031974563 42.4618498493628493
-18651 -75.9537316094338451 41.2463697504717501
-72564 -91.4632547812343546 35.6087296593075493
-23884 -77.280275516666677 36.9254855833333338
-53065 -88.5470321301518339 43.6801381626897935
-50514 -94.4758779400049775 43.4104155904906079
-53048 -88.4425593477653109 43.5903835293295785
-77083 -95.6537449342992261 29.6922641933846165
-41086 -84.8689462259675054 38.6928190817247568
-56228 -94.6683512992957645 44.9362367112676608
-33913 -81.7389000977100437 26.5626186059894351
-11207 -73.8941345632257764 40.6709458161280182
-52691 -91.143777 40.7667870000000008
-82081 -104.387335693837059 41.5301385745526801
-61534 -89.6534170031473252 40.4162132509834606
-38355 -88.7762957529589727 35.7962764151921675
-73069 -97.4587294534812543 35.2333491180221188
-15962 -78.7241695864197339 40.391410925925932
-58568 -100.95825349230762 46.0580223564102411
-48884 -85.05516507050298 43.2120980249762638
-86397 -109.857635500000001 34.4900239999999982
-64039 -87.9816694999999953 41.6611971000000025
-32927 -80.7964559670971738 28.4699036664083387
-12483 -74.4376326679173843 41.6675354765478474
-36276 -85.5571802187685648 33.1276619785892734
-91384 -118.642020464102174 34.4822449572164373
-29551 -80.1229171944444403 34.3769755277777733
-97843 -119.867470800711601 45.4889610317048536
-64163 -94.6851855339603219 39.3232979592476539
-05051 -72.1174503695051925 44.0870984016919607
-36509 -88.2487839594383559 30.4022829087363249
-77523 -94.8546273108341893 29.7996090555978945
-27285 -80.0351160000000021 36.090135944444441
-83701 -116.202027999999999 43.612563999999999
-75786 -94.9575109999999967 32.9593815000000063
-18451 -75.2199394046740792 41.4009071869618239
-78229 -98.5718444977501633 29.5025553142499213
-56335 -94.8595525107527777 45.6007918118279392
-54949 -88.9185900238569218 44.4625261013916386
-11590 -73.5728458971696284 40.7558775531448205
-58382 -98.8234208186888594 48.3234321513250507
-98263 -122.059031963503656 48.5287182846715268
-06469 -72.4438401177529983 41.5075143448620025
-14806 -77.7880697858072239 42.1580449973958409
-38557 -84.8636427441860519 36.004246023255817
-98555 -123.049734896871669 47.5312724339872119
-34236 -82.5494946788356003 27.3320996129852034
-41189 -83.5644077162472456 38.5458592204424946
-17202 -77.6638328752779756 39.9202032366441912
-04631 -66.9999023655957728 44.9125531630744277
-38760 -90.9925199647059202 33.4606356313725541
-16684 -78.3295422019230898 40.5571180673076981
-93535 -117.983550734241476 34.6935534916521604
-20015 -77.0634899674273299 38.9684941273464815
-77713 -94.2472478608693791 30.0983166892109395
-15362 -80.2182677248645319 39.7627347031908869
-45145 -84.0055127272727304 39.145212181818188
-99011 -117.657657218842218 47.6564678115799936
-83605 -116.674329844077207 43.6560194745153112
-22538 -77.254248290020783 38.2000120758835635
-80118 -104.906102098452322 39.2146333036806851
-29565 -79.4748649111554926 34.351884117587268
-55377 -93.8052735263157871 45.5404980000000066
-39741 -88.8559380551319435 33.6540797073061313
-49894 -87.07701991089111 45.7838309193776709
-81084 -102.385853106382896 37.6114201587561467
-43006 -82.1558451597251036 40.4591373828810816
-81612 -106.823712251964707 39.1636745520110097
-66015 -95.3936948681930517 38.0708315934406372
-73030 -97.1144079226971684 34.4963436625980933
-91204 -118.260125365344592 34.1352277967989153
-47804 -87.3902349520220554 39.4953002827073263
-91784 -117.658539392496763 34.1378934187075558
-48720 -83.3521917179487417 43.8325721994301958
-99174 -117.356661880952373 47.0073857857143054
-71601 -91.9819470119114726 34.2078423032941075
-29824 -81.9864173760986574 33.8049125528977257
-15133 -79.8658313848016377 40.3312305926912629
-64111 -94.5945444451233044 39.0571212881355976
-86320 -112.518680561232102 35.2324081280990598
-39098 -89.7179223488372202 32.5684297790697812
-03242 -71.8183373657908817 43.1746278267216894
-02946 -73.9808965000000001 44.2792280000000034
-84117 -111.838308427615075 40.6625390288118354
-98762 -121.515331388888882 45.7815935555555598
-97402 -123.178654696240827 44.0569329656641884
-56524 -95.6227140988252131 46.2256603094995171
-85759 -112.445711666666668 37.885149333333338
-31502 -82.2987526363636448 31.1977479090909107
-21655 -75.9144415090371751 38.7463810195556135
-23404 -75.8280815353535047 37.7377294242424171
-40391 -84.147647337999345 37.9596158370446446
-48833 -84.512115333333341 43.1039283333333287
-61735 -88.8121462666667725 40.2092701298850557
-01524 -71.9198732207177756 42.2412871161500831
-87035 -106.053633776632964 34.9845610564455072
-28445 -77.5363267764638948 34.4770600066233897
-31061 -83.2492139277916152 33.1000029878056665
-30301 -81.627443999999997 31.7587440000000001
-57334 -98.0362687423167642 43.5399034674940566
-22911 -78.4204250944073351 38.0974711050600092
-26807 -79.3272945132976162 38.6587269444575412
-00619 -66.5929284999999993 18.3983889999999981
-99025 -117.083348796320379 47.7609523245650465
-24872 -81.9012459797508257 37.4691219018691655
-78226 -98.5538971200000304 29.3903451460317306
-43323 -83.240557088584012 40.7384587747972873
-61450 -90.9774294246607838 40.5692516260413356
-74156 -96.0667274999999989 36.3412686428571448
-14743 -78.3986090514644474 42.1947559693401857
-89496 -118.803902750000006 39.4515010000000004
-62376 -91.3852489959567862 40.1151423445641129
-64077 -94.1324494160853078 39.2453089558345098
-80823 -103.471810817910352 38.7602767952239731
-85273 -111.164943327272752 33.2670178727272585
-67035 -98.3622555752374836 37.6618782217371333
-24121 -79.64631707805313 37.1560205046766967
-52326 -91.7483812081967613 42.3913398475409551
-77597 -94.6970822019139149 29.8470746277511871
-51459 -94.6324445571428328 42.0416216428571303
-47265 -85.6387338224965191 39.0092808868373027
-21679 -76.0731342796392056 38.9160901494844467
-92377 -117.400741801615467 34.1512543431028419
-75042 -96.6743994439814145 32.9164864773147912
-74743 -95.513659829593081 34.0113265834211234
-28531 -76.558710977448925 34.697814297392533
-60748 -88.0604396000000094 40.5214710666666633
-83666 -115.969840659090906 43.9448850844155956
-06084 -72.3650263750066216 41.8745551917726786
-59451 -109.396939578427322 47.3702817812380701
-18826 -75.743409396073389 41.754698079842953
-12782 -74.4038171999999918 41.8828596000000033
-10566 -73.9142481854969731 41.2903317461938499
-45403 -84.149976304902367 39.7622330729374411
-32310 -84.4392721507406208 30.4166026400104563
-56559 -96.2078256666666789 46.8772335555555557
-79567 -99.9570148744953713 31.9915705671135555
-30461 -81.7392297475712155 32.4895010972813978
-79531 -101.839965666666671 32.964683749999999
-30091 -83.9216313333333517 34.0249806444444332
-13471 -75.6080859846045001 43.3389832941450805
-78941 -97.1387678935103338 29.7238995799523487
-56356 -94.7525720402010734 45.6288514020100351
-22943 -78.7668772894503775 38.0395209556737299
-38578 -85.2024184605263741 35.9708545789473391
-79832 -103.645674500000013 30.3619394999999983
-85626 -109.587508608888854 31.362930577777778
-59123 -104.476427000000001 48.3611560000000011
-13605 -76.0519873477093284 43.8065114777653832
-00949 -66.215107805488941 18.4282819682920369
-13815 -75.5205249335447064 42.5453316873074741
-95653 -121.975441962085299 38.6790389905213274
-20841 -77.3063719027385048 39.1869947280453559
-59482 -111.670183852670505 48.8857618848987414
-54656 -90.8177657282387258 43.9682696614247988
-75211 -96.8870702865228424 32.7376310691256265
-12204 -73.7350272683788006 42.6846376762336988
-36720 -87.366427588905907 32.1679613989361499
-50207 -92.6435266479014956 41.4439693456407809
-10502 -73.8407782105971791 41.0123920327795304
-54749 -92.1162450829015853 44.9457961981865566
-62279 -90.1342982499999721 38.1534265909091062
-55033 -92.85327246148195 44.7347031282949459
-71202 -92.0877186452777323 32.447780000212795
-49227 -84.7625550245761588 41.9544208906779588
-32963 -80.3701077864278091 27.6786418122862337
-54930 -89.5727321767625853 44.0287088679246352
-07981 -74.4212446414163793 40.8218202525797693
-38555 -85.0088959096985661 35.9236391877139738
-31045 -82.767903569343062 33.2936012919707878
-61725 -89.1162735688985919 40.5952496314333686
-82323 -107.539364808823493 41.0372857205882084
-44849 -83.1306466130069879 40.8060271130071257
-47043 -85.0919068280662145 38.7855892735370489
-82838 -107.435087966706277 44.9678534304399662
-47229 -85.8473760706943807 38.8094231197942747
-14614 -77.6160278323699231 43.1567774884392961
-27546 -78.8676577871421642 35.3869700247838495
-25164 -81.1862890498745173 38.5052718838115666
-24641 -81.8029501000461323 37.0942279327861968
-36481 -87.3663344106628301 31.8094060187319769
-61831 -87.7869354209809956 40.2251596430518461
-90028 -118.328110877342425 34.1001291107325315
-84105 -111.86001187231733 40.7383177116125879
-14542 -76.8613527464788859 43.1332957746478982
-53213 -88.0009276082059984 43.048603111265713
-70507 -92.0241291603953329 30.2814192198717542
-17601 -76.327417535241679 40.0737023837251556
-78408 -97.4379207569635071 27.7955891586221533
-66767 -94.715746650025622 38.0729211960885294
-45772 -81.8208715098716937 39.1379248277394467
-60029 -87.790970883152184 42.0579338586956766
-56672 -94.0253974647741302 47.0323405950580593
-43062 -82.6811422644069012 40.002376513193866
-95642 -120.732396146229846 38.3596885511568146
-71477 -92.4933083999999894 31.4113347999999988
-46716 -159.587132999999994 21.9192870000000006
-91775 -118.09107141333692 34.1139817112091706
-25108 -81.8710658673834786 37.9648658046595529
-79110 -101.866547079899362 35.1547744028595019
-06770 -73.0461486219104899 41.4918770758672508
-35742 -86.8029217999999929 34.7863750000000067
-21045 -76.8274418148350406 39.2057350066214596
-93210 -120.396006029908847 36.1559902865976426
-78101 -98.2286506092972189 29.3219660413207066
-12468 -74.4011337727899473 42.3001593988258122
-44827 -82.7454712949827922 40.8010919674691905
-19013 -75.3750151246005657 39.8477063012206543
-75450 -95.4770051526805901 33.4036919510489483
-44286 -81.641663411633985 41.2392095105405119
-73646 -98.604252197841717 35.8153709784172847
-52332 -91.8844852194114878 42.098977459989591
-04942 -69.5753642496999447 45.0173709468212095
-41561 -82.4590426538461543 37.3376251923076907
-92680 -117.565881428571416 33.9010588571428571
-79244 -100.832818610453643 34.0253689684417822
-76246 -97.8384524556961992 33.2146896202531536
-72401 -90.6834861368564873 35.8575695883264487
-85280 -111.931622000000004 33.401390499999998
-79645 -90.9226782500000041 31.0001977499999981
-92104 -117.127249729135428 32.7420156336829677
-12302 -73.9763719880005368 42.8767606052311905
-54530 -90.7191595593922955 45.5130688591160251
-78151 -97.7114269969847982 28.871850006030197
-99123 -119.047553378268077 47.9188598455882016
-49203 -84.4159900805369006 42.2236732293808785
-32750 -81.3543529598336761 28.7049468585800582
-40863 -83.4621723504399142 36.7545327360703737
-01821 -71.2502683266933445 42.5505863306772696
-24441 -78.8255645711048913 38.2459823846287605
-56002 -93.9388929999999931 44.1632050000000049
-36752 -86.6183538389285559 32.3054424756694942
-54476 -89.5703495185905751 44.9031261131201518
-79504 -99.3839024782356688 32.3440450469953191
-54968 -89.1311093723957555 43.8501831158854358
-96056 -121.370999467171714 41.1104936829003833
-33470 -80.30682221331314 26.7479018436779121
-42152 -85.8177402941176553 37.0978155294117684
-37682 -82.292302486238512 36.3010717339449656
-06791 -73.0658553241645166 41.7648803867156886
-63019 -90.3823972528936821 38.2283628221676679
-13315 -75.140779996075949 42.737083167647647
-10058 -90.0588409999999868 29.8514331111111098
-87027 -106.953812737654417 36.1513628518518146
-27542 -78.1354184406269923 35.6122128900820343
-83837 -116.103158088848218 47.533156330164573
-25315 -81.558298266037724 38.2349102202829982
-88897 -89.7965894062499927 44.8624882812500019
-36041 -86.3253879670913875 31.9207755379511262
-95714 -120.828601144430152 39.2024704779792259
-00701 -66.4919525483871183 18.4280939193548328
-07094 -74.0617340649998681 40.7902562910000768
-33954 -82.1138220254996725 27.0246627613039152
-58725 -101.691382863024316 48.5065048880338665
-92503 -117.45912920201819 33.9041804201377914
-61571 -89.4440082604082249 40.7028486285112763
-37085 -86.2819482099103823 35.95030256285159
-02186 -71.0786816478047001 42.2509630924237882
-26327 -80.9356497628866407 39.1198645704467225
-97144 -123.297506667110611 45.7334064620506382
-85340 -112.386265265922091 33.506411657912011
-26452 -80.4951380299508514 39.0415151033301129
-84622 -111.816474968152832 39.1195191637852631
-75126 -96.4474886491291841 32.7402006243098427
-37111 -85.7949067818181419 35.7353133272727277
-04923 -69.4533225712188482 45.0376752393538524
-93220 -118.788186994764345 35.3333399895288025
-32068 -81.8646640997270794 30.0815321796399751
-18380 -75.5910188571428563 40.0128615714285729
-85701 -110.978681021366128 32.2068592709614592
-50048 -94.5150518647539712 41.5089343311986596
-70062 -90.2497559641103777 29.9893674877088934
-83225 -114.571479466666688 44.2115957499999936
-15683 -79.5976203662342812 40.1069553584295875
-13613 -74.7467493022494978 44.8537402753990406
-77420 -95.9366673981191411 29.269951384796201
-32605 -82.3683397226143512 29.6791650519192025
-68118 -96.1728367562846813 41.2632360355018264
-32346 -84.3874328753125837 29.9858459807210203
-23124 -77.0737160158801089 37.546975054597759
-46507 -85.8300103807494139 41.7168515870733287
-66775 -95.1495221891025409 37.6924413749999871
-62907 -89.5133045992486558 37.8618464800252141
-68007 -96.16924979484277 41.3493486625559754
-44833 -82.7956794231257902 40.7183618090396351
-79412 -101.856977646764605 33.5465109046577652
-43025 -82.5012197968200667 39.9617954510013433
-90260 -118.351591850544636 33.888377897393454
-89731 -107.299735857142863 32.9860991428571495
-76490 -98.0425443189189565 32.953272916216207
-29512 -79.6924734415258058 34.6441496793340988
-67950 -101.888102071157405 37.0085166233396095
-19536 -75.7557072074468323 40.4804665585105994
-30721 -84.9272543528788759 34.7946276641590018
-40347 -84.7000000212987771 38.1583171442428224
-59748 -112.713188783144915 46.0260878951695531
-41778 -83.2990851250000048 37.2669536935484018
-60446 -88.1138557946989067 41.6325607876410331
-39502 -89.0884333333333274 30.3906278333333297
-53818 -90.4981549636625147 42.7481998748565175
-48370 -83.2014740485091409 42.8283201802403752
-85252 -111.65702633333332 33.2084711666666621
-01463 -71.6009594364381456 42.6700625537750611
-80734 -102.277747786477008 40.5338365487544792
-40949 -83.873176108910954 36.8918980141443242
-43332 -83.3815381750131763 40.5872042234787855
-61363 -89.1785126818181908 41.2567227727272794
-71051 -93.4954427864385877 32.3641833738909952
-31524 -81.4740030085470579 31.233355957264969
-19038 -75.170187359254939 40.1024385073477418
-93009 -119.213440375000005 34.2710898750000013
-01260 -73.3156564904214605 42.2883382452107099
-12969 -74.1529239451303397 44.7158107482853353
-02917 -71.5201533508711123 41.8973747034287953
-97452 -122.742867288710571 43.9046816385542868
-15860 -79.0784064870833845 41.3194396621654718
-25646 -81.9439941205412197 37.8276142263222681
-16120 -80.4750141652088331 40.8890255416261965
-75667 -94.8337563120893208 31.9967888004381891
-70522 -91.429204900000002 29.7595020222222395
-76452 -98.361373969696956 31.7574040606060528
-71901 -92.9981537813620633 34.5128517091892348
-20626 -76.7689230233813049 38.2379545917266057
-80624 -104.516128107428713 40.4732073645713939
-21716 -77.6233297440786032 39.3164458723282095
-02669 -69.9976780409356394 41.6772648669590779
-49061 -85.8255629569089677 41.8736964398150135
-56248 -96.1284783427516487 45.8006038777641891
-37680 -81.7463083333333032 36.5753246395440641
-13214 -76.0754023769157612 43.0397197710353581
-56621 -95.402073927672788 47.4608901499427276
-85464 -114.661208500000001 32.7147105000000025
-27292 -80.2229951890993647 35.7485646743441663
-47851 -87.2437814130434646 39.5731476521739083
-43505 -84.7304302881355937 41.5253054915254154
-97903 -117.56201593067226 44.2363434348739659
-50619 -92.66581614046666 42.7934535248479193
-34771 -81.2154341186770665 28.2803968090037614
-39255 -88.5137325294117545 31.9066812941176465
-69339 -103.377886021142544 42.6257435085469396
-63074 -90.3869524338773118 38.7251318053155131
-76436 -98.2205286519523924 31.8814921213921956
-50667 -92.2238770839894499 42.4676592913385491
-42348 -86.7706545000740306 37.8324292288649886
-63771 -89.6891459099251449 37.0784692893021557
-98042 -122.115896122565445 47.3629656757441353
-34881 -81.7464955000000089 28.059274000000002
-61416 -90.5448839656160658 40.5061833123208856
-31704 -84.0554016913580284 31.54964983950617
-76643 -97.191542157907179 31.4524785276684256
-25828 -81.2299501999999904 37.7441792000000049
-84097 -111.676925590262286 40.3012464176778877
-59219 -104.18741422660095 48.5640914837438729
-99546 -176.633546338926323 51.8731796879194604
-81042 -104.721855369863007 37.3189054657534385
-07882 -74.9903519181532374 40.7546006599786992
-38368 -88.3594889109805592 35.5035274543607642
-96111 -120.017888177304911 39.4302915248226853
-21013 -76.497396999758962 39.5125848223668754
-48604 -83.9478066207772429 43.4782963699676017
-58262 -97.7843437284145267 48.6926372637362945
-66958 -97.169833672106833 39.8841304999999906
-50554 -94.848014875376208 42.844252644197411
-87159 -106.270846527777763 34.9480431388888917
-62919 -88.165132844632808 37.4871426271186223
-96073 -122.23521364570054 40.5635147775751221
-85630 -110.168455189831988 31.9019451858699838
-66540 -95.9668159760994115 39.4951788671127559
-43145 -83.2356565895947824 39.5632086562789382
-80081 -105.181271749999993 38.7515794999999983
-11967 -72.8723350165037829 40.7952186132464547
-30401 -82.3403158072819679 32.6014378899238437
-83673 -115.414973986666695 44.1142341466666608
-37087 -86.2931488005240368 36.2554992431160272
-76405 -98.212151166666672 32.2927536666666697
-66749 -95.3971311911541022 37.9276456248791405
-68227 -97.8889535000000137 36.492375250000002
-72745 -94.0935579588322355 36.2482910680821746
-34251 -82.1924447942059686 27.375025887421895
-22960 -78.0659554085186045 38.2181286738854951
-03521 -71.675494999999998 44.0384923333333305
-47515 -86.7054308660442246 38.1777272696772556
-21824 -76.037790382566584 37.9876896029055686
-33429 -80.6173775000000035 26.8498124999999987
-43142 -83.5813462784810071 39.5906616962025311
-77020 -95.3179754778043815 29.7744603437002731
-49452 -86.2968532103840857 43.5161485137911939
-23460 -76.0288169999999894 36.8091250000000016
-98542 -122.696084105109421 46.5294939474452818
-04553 -69.5666700448091717 44.0511068741430307
-13147 -76.5630876403960769 42.7780533180198148
-31770 -84.3714783043478178 31.3276023043478204
-02222 -71.0632840000000101 42.3644485000000017
-39150 -90.9782606055538849 31.9585607865228205
-39079 -89.9176375895705888 32.9623339981595365
-68747 -97.4792982033195159 42.403717614107876
-14441 -76.9559443873239672 42.6847603978873167
-15610 -79.4285964341077602 40.1295499766505728
-04738 -68.0907615333333354 46.7555630666666815
-99579 -157.449474711538414 58.2745244230769188
-47875 -87.502608510204098 39.7156798163265208
-78336 -97.1560347161439353 27.9159397759318288
-49417 -86.1742723492312592 43.0244263196884802
-14450 -77.4325185061014025 43.0861486843286201
-60111 -88.8312940941558793 42.0131615941558678
-95625 -121.90377794059404 38.3505813861386287
-60202 -87.688808273581401 42.0307868583239426
-62201 -90.1342320499243215 38.6332371207765135
-56354 -95.3038876880993229 46.0571797731037762
-06280 -72.1438418154821761 41.6949065921319644
-30205 -84.4666620994589863 33.2758387346754745
-29338 -82.0049317692308222 35.1289615641025605
-18619 -76.7140895855345377 41.4347360100629558
-04078 -70.1148865576922731 43.8189656730769386
-64146 -94.5763085228162197 38.8947058344198311
-76180 -97.2238325147155962 32.8424846717899328
-81005 -104.7164801593416 38.2233524010009447
-93505 -117.962130893991187 35.1252103855852127
-28727 -82.3413496666666589 35.3922540000000012
-47617 -87.2367854999999963 37.905097750000003
-46580 -85.8579469142502916 41.221239822584252
-09130 -70.6767374285714283 42.6628604285714275
-83271 -112.852154321658006 42.4723417378867723
-12209 -73.7866459949566149 42.6414980698847401
-39752 -89.1467366096166103 33.5233105984288784
-54465 -88.8869943302976111 45.3951891712205295
-45339 -84.3478034775955052 40.0060782688524412
-15339 -80.1560849999999618 40.3015505454545462
-84757 -113.260783368582509 37.4576795577006934
-13363 -75.5092884086074605 43.3179803458227539
-31515 -82.3041880930232708 31.673516720930234
-67625 -99.6771396103542315 39.3683147574932022
-11252 -74.0256642857142708 40.608547714285713
-03226 -71.5012549399617683 43.7003604757170265
-59715 -110.958491264378665 45.6922458624385897
-77640 -93.960315348136163 29.8896793491685884
-61484 -90.4354968409877813 40.3003028227159845
-65788 -91.7010767759270635 36.8103554245029585
-17081 -77.2852438113207398 40.2024657169811377
-26680 -80.8843175511582189 38.0936914990347617
-27017 -80.7364298377860194 36.3699055770449249
-62518 -89.1946281341552094 40.0531330311820071
-63127 -90.408452407120663 38.5380554568775224
-96773 -155.218920130434753 19.9703871739130427
-03861 -71.0070490369094358 43.1218815251482468
-26443 -80.7502863652482432 39.0819859326241144
-61859 -87.9638024291694904 40.1410812882065571
-11752 -73.1822176696641691 40.7556438735011639
-29529 -79.9946415217391262 34.6540721739130433
-36461 -87.3406521566265042 31.525407204819281
-88125 -103.212595359246166 33.6412333286219436
-14462 -77.7557232790698549 42.6803188462115202
-54686 -91.7459721249999802 45.5388358124999968
-15489 -79.7002734918032871 39.9573897213114506
-51034 -95.7939095829577809 42.1646961199279673
-63545 -92.9591280923695535 40.2749483708165812
-44841 -83.3067849112951677 41.2510644967474178
-72737 -94.1722966344086245 35.9983371935483945
-23237 -77.4627811364847929 37.4004024561187975
-55047 -92.8199527444262316 45.2050574541187089
-49826 -86.7698554000000115 46.2409545555555397
-18465 -75.5135027249745008 41.8281521713484139
-05809 -72.014053799999985 44.4467046000000039
-45832 -84.7333296226715902 40.9242658512976831
-93604 -119.55237512087605 37.322009645816749
-23891 -77.2028923750000047 37.0501241875000034
-69091 -122.724789888888893 40.8856228888888893
-70346 -91.0025607317970326 30.1058109979262483
-93308 -118.998994069287093 35.4646270641653061
-77943 -101.545752833333339 30.1985479999999988
-52074 -90.4671962697925665 42.1066184819369909
-57466 -99.4636154212328449 45.2188574006849322
-59521 -109.833269832163083 48.2764580898877398
-91803 -118.146740689165796 34.0726377871883699
-55912 -92.9755453655696869 43.6759768871042127
-14006 -79.0500435085064765 42.6349428936672936
-22611 -77.984631861163237 39.1611270878987696
-05734 -73.3344103696026934 43.9852417394521567
-63874 -89.8120269944443947 36.5732105777777718
-62380 -91.195278907845605 40.2412752627645602
-75862 -95.31297307413152 30.9327516398950948
-43755 -81.4378005175194062 40.0481568361947211
-83320 -113.933175980243902 43.345549034282385
-15083 -79.7945797074689551 40.2398581639004362
-68948 -100.015527809090898 40.3381386272727269
-74364 -94.9587527313190378 36.1917581482237338
-19112 -75.1750317031250148 39.8918257265624874
-18603 -76.2497426692414422 41.073058808420484
-05849 -72.0083228837209077 44.5037651860465076
-30273 -84.2735143498637171 33.5816627181832317
-28377 -79.1917891039468032 34.8261092981939555
-75266 -96.7672270000000054 32.792151666666669
-98376 -122.834794379439259 47.8127210223772607
-36783 -87.6082987337896384 32.2402755547550584
-64080 -94.2580019276020664 38.7816682770779195
-10710 -73.844051877705212 40.9667544001006121
-80426 -106.922888663551433 39.8738867570093518
-95039 -121.779421881751716 36.8115023430657189
-56042 -93.479506387283223 43.8096432938342843
-27620 -78.5487035769230886 35.7608839615384539
-58497 -98.5199223496483683 46.7597189258497963
-10173 -73.9786519999999967 40.7538304999999994
-06335 -72.0669523111333064 41.4314573250670861
-93214 -119.570635424999978 34.9480322749999885
-25021 -81.6914878888888865 37.9255700570570582
-54171 -88.116166741436146 44.7111093300395908
-25674 -82.3869147066421874 37.874823730012281
-75978 -94.5210929870129775 31.5211370519480596
-47032 -85.0511486823493215 39.0786926108304939
-76454 -98.6800007219668629 32.2024820732217023
-17957 -76.5167283613861429 40.5929025990099106
-55036 -93.1246264513888633 45.8386660694444146
-60970 -87.734987155874478 40.7884786760332787
-75221 -96.7703004999999905 32.8612564999999961
-88124 -103.635666072650451 34.5351522607208352
-57252 -96.6236398591978229 45.2160533053617186
-53541 -90.0214756832470044 42.5753383526771145
-63006 -90.5155096666666594 38.626534999999997
-22222 -81.6221510000000023 36.5568393333333361
-37877 -83.409083995901895 36.151589178974703
-72201 -92.2800645881006716 34.746741727116671
-28717 -83.1057572430032252 35.110228077709877
-16211 -79.2006611960784568 40.7879611764705885
-44560 -83.1903210000000115 39.0647634285714318
-85126 -112.050460000000001 33.2315467500000068
-95976 -121.764967333333331 37.0083891666666673
-66060 -95.3309781211629996 39.4166569779214271
-85043 -112.204820457856286 33.4322450123395569
-76702 -97.2974509999999952 31.5954170000000012
-55447 -93.4930153956972418 45.0027170360829487
-27375 -80.02844433333334 36.259604666666668
-71218 -91.7813285757575841 32.349823999999991
-03216 -71.7880030662667394 43.4421604703887638
-74861 -96.6091182000000117 34.4484074000000007
-46208 -86.1732821030040981 39.8235892464746044
-64803 -94.543006599999984 37.0371876666666608
-87418 -108.18110572684752 36.9148003077642386
-22937 -78.6168158879449379 37.8146623600879863
-97813 -118.501085815955378 45.817597093771866
-02149 -71.0504453628990404 42.4111562414035888
-25789 -80.9966511333333159 37.4451159999999987
-42442 -87.4760460242847415 37.1719390480303105
-99682 -151.143931517241356 61.0695947931034624
-30529 -83.4745910934807824 34.211320867814635
-35072 -86.0333053094663569 33.0962063013771655
-96153 -120.04385802173914 38.8337857173913079
-80233 -104.95194901770023 39.9004424058236324
-48892 -84.1653044100894761 42.6511064873881409
-19710 -75.6035473809523779 39.7764148809523874
-36544 -88.2362898310655055 30.4776311671850415
-39767 -89.4484370970223921 33.4663820448309508
-50111 -93.7874948350029598 41.6916083455116464
-17580 -76.213683844444418 40.1174918444444515
-38061 -88.7656092800061458 35.0642714850518473
-06870 -73.5671255466748448 41.033871369127489
-30257 -84.1883918778209477 33.1447352121919323
-55609 -91.7595723115182551 46.9891848730366632
-35667 -88.0635850000000033 34.9114576666666707
-85334 -114.516987650574706 33.6069632643678204
-44424 -80.5691373333333303 41.3122296666666671
-53827 -90.8385090530489094 43.0496190275163428
-24413 -79.557165669344073 38.5113515207496704
-70665 -93.3936489898258344 30.1644913232245102
-32355 -84.2075828777218476 30.1622221356783697
-27013 -80.7022504618277452 35.751645650013991
-31806 -84.2988779279008753 32.250807945819119
-02779 -71.0769638793765353 41.8371773504901512
-68783 -98.0792411321022968 42.6156428920454289
-72629 -92.5599188961856925 35.7346134962642807
-15454 -79.8703599842519765 39.8627854645669402
-81243 -107.204947328816601 38.2835346314363321
-95248 -120.515548454944891 38.3313407029303761
-93925 -121.431926639024411 36.597314873170717
-04579 -69.7692233130127022 43.9625904731084631
-29468 -80.0709706937579142 33.4215710321590365
-15017 -80.1240923306301198 40.3443798700520873
-91354 -118.550989377931288 34.4495941547681497
-63537 -92.169300520833346 40.1678144281608596
-57321 -97.5222471036705656 43.8597173407737557
-29503 -79.5597145833333173 34.1129758166666761
-39120 -91.3392825426028878 31.5332212596727999
-74502 -95.6817826499999882 34.9055434500000032
-03827 -70.9898711480390574 42.9063542398546431
-27351 -80.274676816666684 35.6543849166666647
-44640 -81.1479045514705604 40.9825327647058728
-75472 -95.8673866177620795 32.9129473273356155
-72081 -91.6627344516360409 35.3421326243132938
-63718 -81.0432026000000008 40.0276249999999933
-47120 -86.1914457528450129 38.4544518060992573
-55376 -93.6548260211031192 45.2091127638367709
-46035 -86.6636509515128495 40.1908318471684041
-22572 -76.77267199300681 37.9747863336026725
-44614 -81.5779938422909368 40.8882091539729799
-16292 -79.6850457500000147 40.7107740833333338
-60512 -88.4208822268455776 41.6980089040268211
-78202 -98.4627197110975487 29.4278082593485628
-28138 -80.4421215793897915 35.5326456073729844
-37078 -87.7767478497221134 35.9394445553656183
-32520 -87.203434499999986 30.4123174999999968
-46260 -86.1811078795106056 39.9016235998403275
-25853 -81.3143712499999936 37.6327243187500002
-76013 -97.1495472742260802 32.7196667787471327
-56523 -96.8328794163425073 47.6360150369649347
-23909 -78.3947435000000041 37.3015642499999984
-03626 -85.7741567142857093 33.3319905714285696
-46146 -85.5774108154506195 39.5779251072961316
-14305 -79.0364188882328165 43.1158832069449858
-77652 -94.9141537812499934 29.7593372812500085
-74535 -96.4364855714285767 34.4851217142857109
-51002 -95.312379154582402 42.6959124084347081
-70785 -90.8490641854933756 30.5304097509317849
-48159 -83.560651059297669 42.0200126678180865
-41059 -84.3591482025574635 39.0059101701719868
-35677 -87.9799964204959366 34.9528195591755093
-30540 -84.5348044438116375 34.6934425544082075
-11777 -73.0602417019806438 40.9485545325111104
-38460 -87.1493785642728085 35.095601112552778
-44824 -82.804488645632901 41.3854958060792768
-04539 -69.5038398187169548 43.9620024917881054
-13501 -75.2318077290479295 43.0832527472840923
-37406 -85.2450045981851616 35.0662937320047874
-35105 -81.7731619999999992 26.2085379999999972
-06343 -91.4557095000000118 40.3595915000000005
-16735 -78.8035209524446714 41.6552573744443393
-60953 -87.6805384985318312 40.6243336313857668
-41408 -83.2861144726774967 37.7954817691256864
-33157 -80.3448699979679475 25.6060865461694007
-06339 -71.9972721103433315 41.4400276985969569
-24817 -81.8158010420168154 37.3629054201680475
-34133 -81.6938839999999971 26.3523564999999991
-47969 -87.1475949230769089 40.2040200161943417
-33135 -80.2350243023333149 25.7667773669999676
-68850 -99.7352879454569603 40.7956978317524133
-18063 -75.1913438391304396 40.7804247304347811
-07711 -74.0087631822759704 40.2374917421953455
-47353 -84.9234119689660361 39.624879601174321
-54441 -90.1055735037220842 44.6407451315136328
-70515 -92.579001476218977 30.4533836335540471
-05821 -72.1083118333332891 44.3164191429137873
-54317 -80.6505421111111076 36.573318444444439
-92386 -116.833374711367668 34.2449088765541276
-23936 -78.4816274479172478 37.522904134503797
-46783 -85.3448511394890801 40.9760881586990919
-82512 -109.253797906565453 43.3471530505050353
-63625 -90.9819699038272915 37.5559704789009103
-21641 -75.9414412096774072 38.9178116290322649
-03303 -71.6466515564233362 43.2874946225886319
-88063 -106.587014420553487 31.809426313438756
-12406 -74.5775854241719713 42.1205819148751246
-00926 -66.0570604306054463 18.3618161614597568
-49408 -86.1565831003150322 42.5782688797876716
-87115 -106.539486333333343 35.0580437777777831
-40977 -83.70929269871786 36.7368148169737054
-48686 -85.4973379999999992 44.7369713333333365
-15456 -79.6560828929604128 39.9261012883316937
-15925 -78.6406861478260879 40.4085569391304205
-14454 -77.7673140571816788 42.791276572014084
-41260 -82.7585213408693932 37.8249273573913314
-29334 -82.1212234403590884 34.904316463988593
-33724 -82.1994188333333398 26.5520269999999989
-48671 -83.8927788000000021 44.4735660999999993
-38820 -89.0334957551020523 34.1736275918367269
-12589 -74.1377874062411735 41.6172039196225683
-58591 -100.670840124999998 46.8361733750000013
-32832 -81.2134528636366184 28.3996958308340162
-31760 -83.3870870625000151 31.646948312499994
-77630 -93.8164121724735764 30.0855730136729953
-02747 -71.005931328402724 41.6459934393066717
-39145 -89.7874785632988193 32.3175095082350694
-22642 -78.0690190137072193 38.926823638051431
-87315 -108.588952150793631 34.6765425238095162
-28749 -82.0949233249804422 35.8436310439475392
-50471 -92.8788144856856093 43.1506575228528249
-26210 -80.2321906931216375 38.8491785925925726
-77468 -95.9009325655736973 29.1769725491803413
-78018 -102.336273500000004 35.6833649999999949
-48621 -84.0295268288830499 44.7219233557728941
-98832 -119.016020937418546 47.3728839491525306
-10036 -73.9902844977875844 40.7595271504424588
-18914 -75.2081347568291818 40.2836375295919069
-28510 -76.8045432857142742 34.9974390415542729
-70803 -91.1743108333333367 30.4157536666666637
-16936 -76.9718043573477644 41.9409884476126535
-08720 -74.1003910505226884 40.1413082282230036
-43213 -82.8653854878402996 39.9692794894262988
-58219 -96.8788327968750309 47.4675456093749943
-59016 -106.936338796954345 45.5282335329949177
-60403 -88.1242694546518095 41.5666847730648641
-52731 -90.4854949767779573 41.9717788841857526
-25107 -81.6067752440056324 38.2185482552891003
-25159 -81.7850001299305376 38.4853148156742222
-63012 -90.4410750622099613 38.3366037688312389
-72640 -93.1567573833333427 36.0430977166666722
-60180 -88.5259473794157685 42.2183128033144754
-40504 -84.5421740529409504 38.0360610812091267
-30076 -84.314794094199101 34.0249451721547089
-79559 -100.447812142857146 32.5680392857142849
-10901 -74.1126851074634914 41.1269633319075467
-44125 -81.606916670425889 41.4110380736925237
-13601 -75.9102308276852824 43.9721763484015895
-66524 -95.516479598030358 38.7903455499850409
-22041 -77.1453434570839818 38.8477657782101886
-59860 -114.153467814215162 47.7139064797291894
-43460 -83.5648877967302184 41.6029829231110071
-63147 -90.2256326760860219 38.7006756925850652
-60146 -88.8702192200607612 42.0943934286803056
-24442 -79.4206578857715613 38.3469805791583056
-28647 -81.9500862936288001 35.9623479612188532
-01343 -73.0060185464480895 42.5937326092895745
-59046 -108.975232563345344 46.3352996115035864
-47164 -86.1003837942900248 38.4027781540996003
-22654 -78.4465709110844642 39.0768150550238929
-56667 -94.9343747179378852 47.7241323319362607
-44287 -82.1340136664026232 40.9524414873129601
-81637 -106.985708579065601 39.6649338700804819
-04291 -70.447785333333357 44.038563203703724
-41421 -83.1624945699038989 37.9848811440768159
-28398 -78.0753125098291889 34.9928415681152103
-04630 -67.4000430643519763 44.7582998494463595
-28303 -78.9565199693130495 35.0827333720717576
-04865 -69.1330574848484929 44.1808594848484759
-51351 -95.1732917104121299 43.3319648893561222
-18074 -75.5088143533403127 40.315786196606588
-49651 -85.1374824280356961 44.3817122010859322
-75164 -96.3210714597156965 33.0707435592417056
-97364 -123.986407753355763 44.998180494966455
-12477 -73.9961394671712043 42.0830140957331835
-33477 -80.0797104842741589 26.9112352377017174
-96769 -159.671145500000023 21.9628816249999943
-65686 -93.4397909152455384 36.6290620163880476
-66012 -94.9047887000342172 39.0662458914729385
-17746 -77.1667640000000006 41.2829090000000036
-03903 -70.7885271298825671 43.1405807683692899
-62979 -88.2494712010894204 37.802339359583975
-71161 -93.7549142499999988 32.4996909166666725
-15772 -78.9178085694443752 40.8759418353173984
-80273 -104.987307999999999 39.7273619999999994
-27504 -78.5287168270905909 35.4040157821881181
-73664 -99.1782653183453249 35.1591256025179746
-46160 -86.2702829890798313 39.3336444253882149
-39164 -89.9809000000000054 32.8845329999999976
-95437 -123.763009777679059 39.4427029196382222
-44667 -81.7669710367328406 40.8380272273120113
-89108 -115.225281832975313 36.205989470277224
-86351 -111.767144140454789 34.7849977755796687
-75752 -95.798784335513929 32.2217771524782961
-40346 -83.7420288981481917 37.983909427248669
-52753 -90.3694300836743025 41.6124440936789455
-66423 -96.0981920063937736 38.868472316176522
-66013 -94.6822106485764294 38.7405105475786229
-20861 -77.0013515676624678 39.149089615992942
-28301 -78.8783851957712159 35.0689220149093472
-16853 -77.7873151508620992 40.9432772456896572
-36114 -86.2526126538461426 32.4052356153846119
-81635 -108.033083011168628 39.4382591821566848
-48115 -83.9143286666666626 42.1641340833333302
-27865 -76.8107433234575439 35.5663946740988237
-73669 -98.7445705460233825 35.7335336327078537
-36017 -85.5667224189638063 31.682597965162131
-58343 -99.6847038163265324 48.3250418571428781
-87749 -105.100763618181773 36.558122955844162
-88337 -105.894800987902499 32.9930003720975975
-33403 -80.0750995723619639 26.8039389683109981
-68358 -96.6062842219625963 40.5204759574766129
-19319 -75.5237332320675421 39.9242086877637234
-03470 -72.3471975399441334 42.773894081131516
-23055 -78.2274226345574277 37.7792852546658935
-95987 -122.214900955181093 39.1450373029760428
-80445 -105.891452607843149 39.9559773921568677
-26424 -80.1470077297297223 39.249915135135133
-62354 -91.3511134471727928 40.5268007824101204
-57073 -97.0721515791855438 43.0101784601808816
-38863 -89.0076128842257503 34.2239762497950579
-15926 -78.8218807519628797 40.0692507080892071
-08890 -74.5783152291666624 40.5366302916666683
-13612 -75.7738730426267182 43.9951011779954655
-32462 -85.8071574079339285 30.578560113223201
-08314 -74.9442162874074143 39.2217087511110947
-47220 -86.0523271409806512 38.8799710672063341
-53029 -88.3503205635878572 43.105785169146472
-14622 -77.5561072462704288 43.2148062723135382
-68901 -98.3920308766598737 40.5963215846585754
-32223 -81.6305582002164272 30.1545577753173646
-71268 -92.6950921542549793 32.3344745726011595
-63091 -91.390168612880899 38.3664191520082767
-24322 -81.0994346058201359 36.8139909179894289
-44720 -81.4192833097363433 40.8921541316954418
-63752 -89.6792745833333385 37.3126967916666601
-75080 -96.742465556300985 32.9705973776641912
-94565 -121.912870214747826 38.0143438494012074
-03845 -71.1386312873239604 44.0955845699530826
-26743 -79.0710716803625644 39.285207299697845
-61375 -89.2550114236000098 41.0520592581460733
-42345 -87.1824478775458545 37.1636593490200298
-26106 -81.5633856666666617 39.2651786666666638
-90623 -118.042797165282209 33.8488264548725226
-67260 -97.2925735348836866 37.7188005116279186
-17239 -77.8417707263157723 40.1384092466165612
-29172 -81.0922624119241817 33.9022194156096788
-79759 -102.751480409090888 31.9169534772727239
-04625 -68.2627883434578848 44.2420810514018967
-56285 -95.3554257097076459 44.7824672462021169
-66403 -96.2828437632169454 39.8666035742407345
-63001 -90.6750930714285772 38.5031205714285747
-18611 -76.310046901639339 41.1992670819672
-35463 -87.6982555938069055 33.0743223867638676
-93704 -119.801418091225287 36.7977262908340563
-02468 -71.2320793370985825 42.3268943124257007
-38994 -89.4120580000000018 33.8528686000000079
-95527 -123.486156936111982 40.8468695636930192
-12544 -73.6610839425287622 42.2265044137931014
-40140 -86.2984877510015167 37.7259284252337039
-98662 -122.57662809400361 45.6770182864948922
-16102 -80.4049673815811587 40.9664051689786106
-47711 -87.5380201407484577 38.0216805778746618
-81050 -103.535894057935536 37.979282868240837
-88268 -104.356500328358237 32.2365275970149199
-29649 -82.1513049999999936 34.2348113388657822
-61088 -89.2480728024905119 42.2741391693183957
-59351 -105.658300973941422 45.7466047263843052
-68789 -97.9976767985865962 42.5302824876325332
-25676 -82.2466037106986789 37.8022416080786243
-38827 -88.213286367328422 34.519589764608547
-28901 -83.8234404624581089 35.1959511736765691
-94525 -122.219471706019974 38.0520778959866703
-41216 -82.8143176726504464 37.7399419809926542
-47420 -86.5495465158730184 38.9129082698412674
-70643 -92.9200987882563112 29.7577007686832644
-30833 -82.3687113778793503 33.1973360923102518
-50022 -95.0041119022546354 41.419486969373196
-06331 -72.0036826422477247 41.690396337359914
-12516 -73.5662724936598096 42.1116888845649129
-32536 -86.5857898344377759 30.7621035353028915
-49980 -87.7314706666666666 46.8260536666666667
-00734 -66.6711606666666654 17.9948503333333356
-99671 -162.285632374999977 63.5233111249999993
-60148 -88.0142592742837593 41.872712065390651
-41010 -84.6153417526829514 38.5054132546362808
-76264 -96.8452560329062919 33.7411777880022754
-53563 -88.9548685489534847 42.7777552471819931
-93306 -118.914031053804052 35.3990534162437669
-57661 -100.941503634999989 45.2871006799999876
-73860 -98.8658319099236707 36.5888784656489392
-68788 -96.7186461534103046 41.8388314019244802
-12560 -74.0532249999999976 41.5472605000000001
-19246 -75.4293785000000128 40.1843799999999973
-50528 -94.5393703464466881 43.1316219949238757
-73068 -97.2973578409247608 35.13909839998054
-66032 -95.2495065863462429 38.2814293914360491
-78828 -99.9944996817594074 29.8075625717982007
-61261 -89.9174986331395161 41.7230883970930293
-79526 -100.771298983314921 32.6292271627462327
-88096 -109.007127749999995 31.9055365000000002
-62993 -89.2717862500000052 37.1503332500000027
-43458 -83.2115361403508444 41.5319433859649223
-97340 -123.080760499999997 44.9464292500000013
-93633 -118.943346825902381 36.7378413333333427
-11430 -73.8120382999999975 40.6583986999999993
-38573 -85.2161135804876437 36.4824565065920225
-92714 -73.9913627500000075 40.2809404999999998
-24282 -83.0694588298397179 36.799019569667081
-60607 -87.6529719847536626 41.8763391712615345
-62956 -88.9278913313052186 37.2805760741150252
-62888 -89.235783012223294 38.1238522419280343
-28314 -79.0179416040423916 35.0579124766629278
-67570 -97.9935725627603063 37.7845349124508871
-08638 -74.7615628750524621 40.2542541570249313
-23455 -76.1418874775728085 36.8875532734286438
-50529 -94.2011840566372314 42.7218950690265586
-55338 -93.9941691238706483 44.6690599205209367
-13319 -75.2701119326683283 43.0261532468827852
-54211 -87.17001653757832 45.1596782212942927
-21131 -76.5681347624096702 39.5037730863058343
-21767 -77.7461286040403792 39.6974385656565758
-01013 -72.6067711345896214 42.1624895947361011
-76622 -97.2332810505618141 31.8140358693819891
-15129 -79.9962822830803901 40.2921976245922764
-40423 -84.6950646666666671 37.6063940666666667
-76458 -98.1938563502285291 33.2007948822185099
-15359 -80.2848026809815849 39.8834881717791561
-33761 -82.7236217375291289 28.0318154303029665
-51432 -95.1172753636363666 41.9601775454545347
-76122 -97.349959454545484 32.6809631818181785
-50258 -93.0791830360070378 42.2355260498059479
-78384 -98.3829594450344302 27.6335196799865059
-84085 -109.919943179640654 40.4563325169660857
-30286 -84.3388921502688476 32.8960294206156902
-21778 -77.3346313012144861 39.617749190283341
-45851 -84.5943876305353371 41.0341198288169693
-26556 -80.1326965000000087 39.4329054999999968
-28173 -80.7439198766304003 34.9463642491691076
-15834 -78.2128448760577584 41.4973714858447948
-22484 -77.1631490000000042 38.2535785000000033
-26271 -79.6054980129869847 39.0637207748917774
-74881 -97.0812877954309528 35.6740764589821922
-62068 -91.2536903333333385 38.5166354999999996
-63173 -90.750903509803905 38.6081236078431402
-33973 -81.7244143488442347 26.6012250360251912
-71003 -93.0101743132488252 32.6394350221986684
-08501 -74.5705403617664331 40.1583852953388245
-72064 -91.5993430640967006 34.7921628642791987
-18441 -75.6232578922413836 41.6630733793103474
-45809 -84.1829269005848317 40.8455052573099522
-58282 -97.848230735171029 48.9138829175993166
-34202 -82.4049313939644037 27.4138534232503517
-28739 -82.5261008769429765 35.2858440615286995
-64643 -93.3655699334629219 39.6201530830899387
-66604 -95.722796189582354 39.0403777189861998
-34117 -81.5883975765001423 26.1807140625000301
-55345 -93.4853741197440229 44.9144126350598754
-14850 -76.4937058981739284 42.4442802232056238
-20632 -76.9657568611632428 38.4302473283302106
-49611 -84.9723732921810608 44.9737005596707746
-63333 -91.3210287216428611 39.0371040345502536
-63110 -90.2616828948530525 38.6217882371327974
-37028 -87.8652445861494868 36.6270713465016513
-24101 -79.7948432481054795 37.1805906883462427
-27570 -78.2372012229299401 36.4382484012738743
-96046 -123.442321806827948 40.615989610630983
-15695 -79.6939619138755404 40.1970735885167443
-30633 -83.2476532262633668 34.1784787964590606
-19940 -75.562082791556378 38.4768432875845647
-36766 -87.0774969100345828 31.9301033079584649
-46502 -85.9751353376623229 41.2599836363636214
-24251 -82.5921163930028115 36.6566825334702102
-28853 -82.7928023043478163 35.7051427391304372
-20802 -78.8383644999999973 38.5184770000000043
-54153 -87.9132770879899397 44.8931419949721331
-50051 -93.1455980900847322 42.1302052720677409
-81238 -112.02033999999999 33.0740146666666632
-76723 -85.3073145000000039 41.2785264999999981
-85718 -110.918849397764646 32.3116301153912318
-29651 -82.2311019956543845 34.9461643824328831
-29507 -79.7567155000000128 34.1830000000000069
-74110 -95.9547930725023832 36.1830328001938355
-95631 -120.853534183348188 39.0112396833183226
-52057 -91.4524742866313147 42.4915163618407163
-28806 -82.6151657656741207 35.5827503117473327
-98032 -122.268092863603655 47.386880591052531
-43560 -83.7249305101788508 41.7054937736527265
-59745 -111.676134393939392 45.5692008112554987
-18374 -75.5694433999999973 41.1704334000000003
-90505 -118.351393431926184 33.8089333995619086
-51445 -95.4601933573608221 42.3279163012372308
-37934 -84.1764300248876225 35.8741530693954545
-96777 -155.478465181818137 19.2717697272727264
-22921 -81.188169666666667 32.6810820000000035
-12157 -74.2960890661620823 42.6643849839233127
-56030 -94.6048916666666599 44.3252584666666678
-45206 -84.4851885810278418 39.1276803909749518
-70377 -90.530356504413632 29.4655390840689861
-15689 -79.4911530161290472 40.2196573387096947
-82070 -105.807461686874788 41.2137639075548137
-33412 -80.2215847074457855 26.7945936777408527
-44048 -80.6444275361642156 41.8573719682687013
-46158 -86.3731192898404458 39.591827126861233
-20565 -77.0190889999999939 38.892241999999996
-68964 -97.9035983017241165 40.2349280517241539
-03590 -71.5558783706473633 44.7145548451024553
-12588 -74.3685034210526368 41.6287510526315785
-11547 -73.6431801574073717 40.8286784722222507
-01338 -72.7939115726316146 42.5801479326315402
-19426 -75.4480321719842379 40.1888653569311884
-23486 -75.8089167164178832 37.5171549813433032
-71465 -92.1933057295641447 31.8757632678241052
-38326 -88.2630273730875103 35.0394489425606324
-47861 -87.5588457364994355 39.0589458138643977
-66018 -94.960983685365747 38.967269450656687
-28467 -78.5767687140694875 33.9136518999349477
-79364 -101.661339410505093 33.4548759943216609
-25247 -81.9926249430893961 39.0054694166666565
-54814 -90.8474130932235795 46.8386981364467445
-65688 -91.6462740999999994 36.6993450333333442
-29111 -80.0127149113832843 33.7944507755763794
-85371 -114.413146733333392 33.9451664533333428
-72106 -92.4605490526834757 34.9674534532001502
-77984 -97.1701465133259319 29.451998570598164
-62910 -88.5722422487575045 37.1554706521056772
-65484 -92.2128599290953161 37.3747345904645556
-64671 -94.0636818319920565 39.5401254478596016
-85622 -111.019996992510883 31.8149012832743807
-76255 -97.6991976550941672 33.8109730195864557
-03619 -119.735935499999997 36.8554275000000047
-89557 -119.659833666666671 39.8857758333333337
-33428 -80.2149514901210097 26.3485208724342641
-15943 -78.833966012010336 40.4745884128840601
-74955 -94.7781304577256378 35.4709111233536021
-79799 -102.633941133333337 33.5063928666666726
-64674 -93.1305050526694345 39.9615792987013165
-75695 -94.7682233999999966 32.4205437000000032
-83285 -111.359940366265121 43.0304080831325422
-25985 -80.8341059380805405 37.7578255356037147
-72935 -94.1380678973988694 35.4975881835259912
-54414 -89.2198723548812183 44.9325622664907769
-14603 -77.6061065000000099 43.1614505000000008
-85543 -109.84107903350727 32.8882130861619046
-94014 -122.450321028132194 37.6982917281041949
-20764 -76.5097978185593917 38.8357858382964736
-21044 -76.8830610056019168 39.2117682098218197
-71934 -93.396982374999979 34.6961760000000012
-92869 -117.794425316372354 33.7929917310365653
-58413 -99.375031063432985 46.0363590930349673
-62246 -89.4196611253881457 38.898065223405851
-03746 -72.2747932216624065 43.4910566423174103
-27208 -79.5380290212767136 35.5560630035043133
-82054 -104.395135630034034 41.0690443646970138
-94558 -122.293863460152394 38.362235084638364
-73622 -99.0094781220930287 35.3876092558139632
-77019 -95.4053201609607981 29.7526003245363384
-59453 -109.615581803999774 46.6799272950000201
-56087 -94.9768877259605091 44.242830129691427
-16142 -80.3373725092952355 41.1345598230574723
-62541 -89.3522872179486853 39.9691844358974393
-22060 -77.1440236030449 38.7028073422611314
-50552 -94.4459065741935433 42.4513192709677227
-57936 -114.005725285714263 48.4949826428571455
-57536 -99.7583724892596564 44.5337281923967083
-04438 -68.9203602939307558 44.5987558214536719
-29450 -79.7946268205851652 33.0324695553126304
-59747 -111.903028128834293 45.6721979202453667
-95064 -122.057546445026333 36.9907198586387338
-68801 -98.332751927546127 40.925213123031611
-25669 -82.4650497901302231 37.928399469088923
-27411 -79.7688990000000047 36.0759714999999943
-28772 -82.8510565253243243 35.1323002925398029
-15732 -79.2115545937571852 40.7275966320566667
-77377 -95.6437004149478014 30.0480597515205616
-68361 -97.6009117121752325 40.5256013275598832
-02920 -71.4678375086065216 41.768587016365629
-94367 -122.703918666666667 47.5252286666666635
-13776 -75.3347452321711302 42.4709877591124965
-71292 -92.2156539590617825 32.4310092897129181
-60552 -88.6857183000321072 41.6438764292620363
-34224 -82.3021639362906114 26.922242055578316
-76427 -98.3799198198052949 33.1635236639610298
-72761 -94.4893262639647418 36.1773508426645236
-15944 -79.0949988421702841 40.3702380731607136
-72411 -90.5719713181817099 35.7478174561983977
-25044 -81.3353069582887542 37.9128233818181499
-41011 -84.527527509099869 39.0704454329436288
-42563 -84.4678370833333361 36.7334087500000024
-94561 -121.708186261155348 37.9885523515525421
-41045 -85.0124949058698007 38.7220225706499548
-04921 -69.1325562723658322 44.5684649356361433
-03051 -71.4109673100397799 42.7654108533237007
-17520 -76.3507853686689231 40.0998801888497098
-97371 -123.202485037682791 44.9824631951630423
-97835 -118.758060443556275 45.9079671978022787
-76856 -99.2286706908232077 30.7204899878456992
-92610 -117.661449629713985 33.6848186076190004
-78948 -96.9735589272886926 30.3030090591327372
-10473 -73.8579156690820753 40.8163389064009863
-70519 -91.9016255365852999 30.0894499512195104
-30802 -82.322219804683769 33.6066603196248437
-56350 -93.2647138354141703 46.2801947395005584
-88041 -107.937344337695521 32.8014979336099941
-54013 -92.2162852971801925 45.0735282414483862
-13167 -76.0577206582771339 43.3133311240694994
-27042 -80.0581327668334382 36.3360829610462019
-07451 -74.1404430000000048 41.0718274999999977
-27811 -77.514317666666642 35.5891992456140329
-67061 -98.392433992647085 37.0954683345588165
-10044 -73.950547718750002 40.7609045156250147
-73487 -97.4608873585584803 34.4799103243243223
-81143 -105.876108968244083 38.0918886313114484
-38109 -90.0769521286105999 35.0394121092114261
-85541 -111.262049246969113 34.2663757914646041
-61108 -89.0115926666472888 42.252825685235301
-70391 -91.056230181818222 29.9784614393939428
-97795 -121.577063599999988 44.2214585999999912
-08751 -74.0767803398177023 39.9492517860182517
-40238 -88.0259255454545269 36.9928152727272774
-16669 -77.9098688194987972 40.6472405338780547
-38365 -88.2331734805194827 35.052243766233758
-12944 -73.4912833735855884 44.4816204437024467
-08065 -75.0266604274181077 40.0029885969535854
-28479 -78.0379004691500455 34.1449074776830415
-85608 -109.385406976470549 31.5585958823529573
-34748 -81.8776743319011189 28.7695120731385003
-95843 -121.366152748290133 38.7162991848016773
-29325 -81.8724617794479883 34.4669097575839771
-78061 -99.0562025015098016 28.8898798698406694
-75024 -96.8034319902189395 33.0770361867341265
-55378 -93.3613369399542989 44.751589678754975
-22670 -78.6469255000000089 39.2480015000000009
-27527 -78.3835401019873785 35.6518142763826518
-93915 -118.906369999999995 34.3977335000000011
-00601 -66.7480409974338187 18.1704226911890281
-45786 -81.6473290533620286 39.5038127097365077
-20106 -77.9905589368535743 38.6760467536054691
-43335 -82.9093540370370334 40.6687491851851846
-03467 -72.4347594079422521 42.9694338182912432
-08075 -74.951613790572253 40.0265133974286371
-57332 -97.6142813194167758 43.5808112531477008
-35957 -86.1847393511233975 34.1968093276719003
-21790 -77.4874930358974439 39.2644924205128163
-71171 -93.7166196666666593 32.5237093333333362
-16830 -78.4419707117103115 41.0277734937557952
-83524 -116.660559399252961 46.3981019640958721
-77954 -97.2856177379740075 29.0788852581149158
-27837 -77.2264107631903585 35.5433428853196389
-98323 -122.03781099562822 47.0547496409835233
-22833 -78.7656852500000184 38.5422992499999992
-73056 -97.6189235911110273 36.152051607407401
-52531 -92.8068674175259076 41.0215778912442417
-67749 -100.533865879724985 39.8212396002290987
-75153 -96.3399718441331316 32.1525488511383486
-10509 -73.5917022754818788 41.4159492889666012
-67634 -98.6032924999999807 38.8307961412776592
-72636 -92.7167109142857129 35.9920738714285804
-49725 -83.9467709944588591 45.9894276357591707
-63736 -89.5421813141269922 37.0907047186311587
-61606 -89.6105779688598716 40.6997851195380278
-24161 -79.5442540503339615 36.9837864108884986
-67954 -101.600223263392749 37.1551048013393128
-80861 -102.737593402597383 39.3695142813852215
-11780 -73.1662372657442575 40.8873711761529037
-05649 -72.3947158263422494 44.146563406879217
-49753 -83.75509587922447 45.0501433005539766
-82845 -106.72062414889696 44.7599132444852543
-60421 -88.092501114900287 41.4273801385561384
-74109 -92.5796903333333319 31.3659459444444479
-11368 -73.8604160357142945 40.7471884821428603
-40210 -85.7877980905604858 38.2325479312683569
-32212 -81.686559117500039 30.2039036299999921
-32634 -82.2497345000000024 29.3602729444444464
-07204 -74.2658777539164845 40.6658061834203792
-31035 -82.7055881213446469 32.8439456474446629
-29939 -81.2429351875000236 32.6701567500000252
-71210 -92.0543427499999893 32.47344425
-00766 -66.48982146529967 18.1252928533123132
-06606 -73.2085283577382455 41.2117733074253749
-85040 -112.027862189363532 33.3963795598434103
-46228 -86.2021292389881495 39.8466966128603772
-56334 -95.3669064772028321 45.5953560216158067
-93614 -119.730416198070401 37.2198929660603142
-07825 -74.957549454627511 40.9705547052742034
-08520 -74.5358094307419208 40.2624409389718991
-75561 -94.2729303773648724 33.4904936763512424
-92697 -117.844251 33.6483428333333379
-30264 -84.8689498518518377 33.4085209629629745
-30810 -82.5909791301116343 33.2446938258506677
-16635 -78.4545059771873809 40.4159291129897795
-79762 -102.349039505640036 31.8894067419324436
-78075 -98.2458227658863024 28.6450697324414563
-30236 -84.3234757773760606 33.5288362091589605
-75961 -94.5510107281260019 31.5832912847558873
-98571 -124.198245823019931 47.2016352908415655
-54838 -91.7817495154870358 46.2418501995897557
-54201 -87.4219450398074684 44.6343925546806659
-36101 -86.2982417500000025 32.3812542499999978
-89230 -104.901096374999995 39.7294642499999995
-25201 -81.4912764220779025 38.345094318181836
-22436 -77.0621767718003952 38.0342024620389623
-05905 -71.6465380366473568 44.6850880495283675
-90657 -122.137291000000005 41.2497222500000049
-24272 -82.3389294488160459 37.0140308460031449
-55120 -93.1353209677959626 44.8719822149728316
-40733 -83.9799216666666695 36.9483661666666663
-30425 -82.0016879365986711 32.6306979843749474
-84029 -112.470842121512931 40.5866925335908988
-38379 -88.4325611951108925 35.1673085899883802
-64125 -94.4941793350304806 39.1042652688391854
-38041 -89.668848694715436 35.6664726800115375
-40243 -85.5385849934847045 38.238866654096725
-89166 -115.335040772636859 36.3027211189326877
-33849 -82.0697763994974991 28.2359254673366564
-56637 -93.8243054564269414 47.6103246753812357
-49512 -85.5668345344585646 42.882816723981918
-79239 -100.742255372960415 34.6641987039627253
-28533 -76.9417329444444391 34.9267229722222226
-90755 -118.166520953594102 33.8006184881367417
-63131 -90.4452843612081239 38.6152681423568893
-24472 -79.2462769650599483 37.9371221556698899
-74884 -96.5100738786895249 35.1732673661420705
-73103 -97.5171771064281074 35.4905325451352169
-78756 -97.7405607369564393 30.3212745543478341
-39701 -88.4546437333981714 33.4790879524053437
-03289 -71.5119740789473752 43.5038341842105325
-99547 -174.20041286206893 52.2055858275862121
-10469 -73.8480938051508105 40.8693555838699112
-28515 -76.7097772139439513 35.1681869373434424
-84647 -111.449381453867545 39.5400248615097993
-32358 -84.512732512725961 30.0717072607652014
-39080 -89.4953179999999833 32.5038962432432541
-98546 -122.913781208632884 47.3157139260243724
-38759 -90.6999039753609679 33.8229373084112552
-92604 -117.787663938599906 33.6883706340764491
-05733 -73.0946107056488614 43.8162195786493527
-04825 -70.7927463611111278 44.4448909722222254
-76253 -97.2554251282051467 33.5837879794871697
-87553 -105.702267674107134 36.1706011035713857
-36502 -87.487317518024895 31.0935268320639047
-94965 -122.499859236040834 37.8584631023929532
-80828 -103.71319772172356 39.270433327947309
-58622 -103.178426506977843 46.8869079350338396
-15379 -80.4341468760330542 40.2395412107437735
-16945 -76.8568683333333382 41.805423999999995
-96143 -120.026321840534393 39.2416404371359775
-88344 -105.371296575549863 32.5911387242848321
-63123 -90.3272758144485692 38.5491367827947826
-76875 -100.024415266725484 31.6196574753521347
-20171 -77.3952084930174351 38.9237128040176401
-15311 -80.1852051510443147 40.0456879629084241
-87015 -106.200636673090628 35.0773582807315876
-11562 -73.7924261666666581 41.1458175833333399
-21521 -79.0371196179418973 39.5452902040699428
-91464 -118.621943999999999 34.1498758571428525
-21631 -75.9518036990074563 38.5890012372718729
-71436 -92.4035202499999997 31.0920314999999974
-73044 -97.4153627428508031 35.846451769198751
-81236 -106.203988818535834 38.7085331799814369
-73759 -97.7469893346667504 36.8048450493333519
-74102 -95.8464390588235489 36.0690541764705799
-07642 -74.0452335334096716 41.0068396638945885
-93727 -119.696115117747951 36.7502166409828561
-95960 -121.093945024370029 39.366054779177631
-10923 -74.0008210714565564 41.2039803155017523
-73102 -97.5203537969401566 35.4716513393601574
-29643 -83.0069646230158753 34.513423620208691
-72389 -90.8777824592592083 34.3289815925925836
-62059 -90.1660838605577482 38.6570181713147463
-55601 -91.3128421404110071 47.2568708972602636
-08038 -75.4697930205128387 39.5008269435897574
-97537 -123.151013255257638 42.4977074710832881
-78576 -98.4433812343905288 26.3005543067394072
-26295 -80.6152969999999982 38.3200804000000019
-98643 -123.651047259791071 46.3064821625326388
-94404 -122.268484418685219 37.5523403890621807
-22718 -77.8166808382396766 38.4641318645327317
-36051 -86.4932685113049331 32.6823408234034574
-67789 -106.287849222222221 38.1631422222222199
-37678 -86.9286863333333457 31.8421260952380933
-33965 -81.7728551290322656 26.4666189677419403
-33859 -81.6163560132858379 27.9011043416927151
-14475 -77.4997873948219649 42.9357297443366193
-49931 -88.5781671548174501 47.1233792086194612
-68622 -98.5165928583880088 41.9274877167755591
-50612 -92.3816346521740002 42.2742825951087084
-85203 -111.80396017543184 33.4394527863904827
-99820 -134.582086608024667 57.4998820586420223
-89441 -119.697252975772884 39.6654182771930124
-81523 -108.770417444482192 38.9624668798819727
-52552 -92.5265339266511404 40.8414364696083751
-07071 -74.1229908490808924 40.8089131949551813
-77505 -95.1445243860454042 29.6493678574892883
-68758 -97.7790296856649519 41.7634816683937586
-79034 -100.143206474966306 36.4141154912042921
-40505 -84.4564595925925943 38.0587642400145114
-54720 -91.4369731735599913 44.8027991091998814
-76848 -99.5474394196428563 30.8719590937500001
-35509 -87.2298014999999936 33.8544698124999996
-08648 -74.7279429134884197 40.2804735574290049
-25213 -81.9014816620389183 38.503826476001521
-39272 -90.2771116268934009 32.195436420285688
-06065 -73.01320444153572 41.9704699397905117
-73459 -97.133048497142866 33.7823955971428731
-74340 -95.017397303867412 36.4816889999999958
-49670 -85.6123715607039202 45.1238294271715574
-11721 -73.3739285755315507 40.8918869165974002
-36450 -87.6223603333333187 35.2577855333333261
-25053 -81.8467689628822797 38.0425044271536166
-62701 -89.6492624074703315 39.8008149083191825
-25927 -81.173571411764712 37.7924434999999974
-45458 -84.1639300877673122 39.6056621726932789
-25137 -81.2292015000000021 38.0693253000000098
-86514 -109.375000294117655 36.9616724705882262
-97112 -123.899993877302606 45.2271173096292856
-01824 -71.3599332442063883 42.5916154224369734
-71223 -91.6830699419114552 32.9050609787234194
-39119 -89.6667452873626445 31.7555163992772016
-45135 -83.5449371590272136 39.3386906878022629
-30901 -81.9722591044988462 33.4612690132934958
-63747 -89.8121605056839769 37.5615122906786851
-51572 -95.7882131432872512 41.9887292679108555
-47394 -84.9828100348566409 40.1659920355157567
-21671 -76.3350891654739883 38.7059000894454499
-17225 -77.7534922006143319 39.7849153039399184
-12140 -73.5692128171076405 42.6881713237240206
-30247 -84.0902443333333167 33.8713673333333318
-62069 -89.7378860007380155 39.08424320787217
-95636 -120.538126495339512 38.6356999893237187
-20607 -77.0192165414906214 38.6697427273637047
-54701 -91.4724828334255449 44.7812628934723875
-50559 -94.324622736162226 43.2052535046125996
-51063 -96.1815057778316742 42.135920341723164
-48705 -83.6765314701589347 44.691659617224758
-48717 -84.6632156666666589 43.793434000000012
-58254 -98.1214742985484776 47.7801758195695925
-28755 -82.2075707032966818 35.8939565714285749
-24016 -79.9526346518270117 37.2724963026037059
-12424 -74.1672161508533208 42.2461918006825883
-02127 -71.0455632235989896 42.3347962928340493
-19838 -75.0367676666666767 40.3285780000000003
-75833 -95.8737613686970604 31.2665261314972867
-62683 -90.1066446829268273 39.483596146341462
-38953 -89.9363211849313871 33.9216222534246938
-25043 -81.0009457131959749 38.4638677542638661
-06883 -73.3684982622341835 41.2212105078677666
-56453 -95.1226713167938129 46.3160046243184382
-29154 -80.425111029753225 33.8929410985431261
-78005 -98.8323632602230191 29.0007395356877211
-74039 -96.232265831175738 35.9095122044913921
-72342 -90.6206131007365627 34.5157816768777863
-48767 -83.4745485351231764 43.6465817716072948
-04471 -67.8353326203361888 45.8784918511685191
-46987 -85.7674072040404951 40.5688920585858526
-04342 -69.7456865814112632 44.0800528734871548
-59865 -114.06950714966662 47.3428920323333102
-23585 -78.5464187500000008 38.7374790000000004
-99591 -169.549616641025665 56.6067745897436012
-14302 -79.0504666666666651 43.0956715000000017
-46967 -86.1948291714285517 40.6945015714285745
-80754 -103.648745374414972 40.7082060717628522
-77094 -95.7038426683509726 29.7724911364262788
-94554 -122.417775357142858 38.4315292857142836
-14082 -78.3867228841251062 42.6559071413673365
-68022 -96.2350017235259827 41.2645892673804227
-14515 -77.7313367666666579 43.252605966666664
-38714 -82.1995540249999692 35.8342621250000022
-73736 -97.6933798576449703 36.3460745905096445
-47809 -87.4090540097087114 39.4717131650485413
-38236 -88.2756842639176824 36.1739230824742535
-39452 -88.5891570350515991 30.8750389155052822
-46321 -87.4994068260510716 41.5470469425272242
-32812 -81.3287544031464478 28.4934944581632656
-59448 -112.790560887480098 48.2738942963549675
-40209 -85.7503582047670818 38.1922952838569714
-36361 -85.7155640689654916 31.4088631724137919
-88441 -104.268259647058812 35.6515803529411741
-35148 -87.0471255867010285 33.7560928916237586
-77084 -95.6686250597487202 29.8417266170413029
-77831 -95.9194145101314746 30.7351070291780992
-36113 -86.3443321697172621 32.3795185440931803
-64665 -93.7953048333333328 40.3307330000000022
-27887 -77.496871132530103 36.2542913493976044
-04676 -68.6449206847356947 44.3448783405388269
-07088 -74.2840220986459485 40.7181394700193096
-10591 -73.8557948828108266 41.0798826371645305
-44857 -82.5980225087754008 41.2343070383675396
-43055 -82.3914498858687807 40.0928887446304358
-92311 -117.131945380869269 34.9323303497725277
-60162 -87.9003282511090021 41.8743018106448872
-67840 -99.9951500339805932 37.051142427184466
-16046 -80.0361985682574755 40.6977524270082611
-30450 -81.9100686311164026 32.5316657237866167
-95558 -124.238426136646055 40.2995214689441781
-30116 -85.0098306196642426 33.5707308315960802
-22480 -76.4177942724885071 37.6655679514116386
-59863 -114.180697192307704 47.2742388205128208
-06360 -72.0843161862135844 41.5383876361725513
-80421 -105.472632797075192 39.4534093061347093
-48422 -82.6485787388551927 43.2676639316802536
-05057 -72.4104276666666777 43.6556202222222183
-95339 -121.265807999999993 37.7783983333333353
-03045 -71.5637718051065121 43.0187590123734154
-84123 -111.921622486458247 40.6570389035080098
-61080 -89.0191348284144226 42.4810749615646657
-03223 -71.6573900351062321 43.8402260303549198
-58102 -96.8031670616109921 46.9035395494770881
-18411 -75.7177777422700444 41.4783607523236171
-79345 -102.254657314917083 33.3412496344383626
-24810 -81.6475833333333441 37.6962456666666696
-25632 -81.9328364832714442 37.7826153779429674
-28020 -81.6319608328691544 35.5199534024328543
-19438 -75.3895058409314203 40.2664434756577876
-12414 -73.9157687379691026 42.2304188812973678
-42351 -86.8808083049402313 37.8986082564711424
-35120 -86.4397692621324438 33.6737224128096244
-58727 -102.813149854626531 48.8503276244614568
-97635 -120.310633794567082 41.9537653106960278
-23067 -77.9944010833333294 37.8318566944444399
-19116 -75.0165801333061779 40.1182936636678562
-74725 -94.8420994999999891 34.3593515000000025
-23410 -75.7480140394703625 37.6429875763176796
-98056 -122.183123930798445 47.5117835550550041
-83434 -111.99704482863099 43.7452020726227602
-04543 -69.4949909753538719 44.0399764655930852
-13849 -75.3130248700500999 42.3379226856770856
-76111 -97.3017861967648088 32.7812777085953755
-42377 -87.2649858999999992 37.4206008000000026
-63955 -90.6777389200000101 36.5986143599999991
-28725 -83.2320529840318812 35.3810357045908219
-98337 -122.635640119331981 47.5694946772076719
-20152 -77.5154356415446415 38.9024199437354312
-90720 -118.071378865792468 33.7950244586367035
-17087 -76.2614581852862159 40.3880416471389694
-74068 -96.5807984666666641 35.911479613333313
-37882 -83.7662930324343762 35.6767786056208891
-61071 -89.6947009611917707 41.7553203581815282
-17812 -77.2375967027359138 40.7503175320538844
-61704 -88.9446378800033273 40.4810236448061289
-96344 -119.612615272727282 37.3737474545454518
-06255 -71.8999832552190981 41.9924240600207384
-71415 -92.1377207336683739 32.0257669748743581
-05059 -72.4264584358881365 43.6510916407555243
-56330 -93.738822568299085 45.7443370666882529
-47281 -86.0989805186145247 38.7819982657868749
-96790 -156.323936862665107 20.7508841982543792
-24866 -81.6086135751295529 37.2625572435233181
-17727 -77.499925845826823 41.5353171742658276
-15558 -79.0892203858192033 39.746777983104856
-31328 -80.8505700794797519 32.008328802504856
-07310 -74.0412965252918553 40.7320686653696598
-05862 -72.1974580568414694 44.3341942025984466
-72714 -94.2173019453586136 36.4650755229831773
-37818 -82.9719024642481173 36.1838629767788618
-54415 -89.9144434999999902 44.6127270000000067
-40475 -84.3060546884701409 37.7693392665676342
-91107 -118.086501915875488 34.1548382394413466
-23079 -76.6757333406407611 37.733818038785877
-75209 -96.8260572107705997 32.8481439218972824
-41725 -83.0324230061100081 37.327241346232185
-36255 -85.7349705328214498 33.1832504094623957
-64484 -95.019121016201936 39.5530412727755518
-74878 -97.0851943959539057 35.027992742774579
-37228 -86.8028247386090186 36.1925114004796171
-96789 -158.020552076922996 21.4723719743589641
-22965 -78.4226911000000086 38.2873105999999979
-65486 -92.3155646185400087 38.0971142501140392
-16255 -79.4484384300417901 41.1222119474941508
-72662 -93.1917737409377764 36.4376167185217739
-25062 -81.448351501754459 37.8648064245613583
-39092 -89.3700681612000238 32.3280868316059369
-22102 -77.2261360966969477 38.9473059461467628
-99523 -149.117594499999996 60.9562139999999957
-52257 -92.1801909224044067 41.9053077049181013
-56032 -93.5629214247312007 43.766101473118276
-35674 -87.7237084971705769 34.679699336805669
-85625 -109.707791876273433 31.901357825523327
-30258 -84.4539011630518672 32.9993671135493543
-37090 -86.2993223973364962 36.1338605840849709
-27978 -75.7615386287879318 35.6797471704545188
-58229 -98.2189854688039645 48.4694320662910627
-01721 -71.4626319127751373 42.2562902894903374
-72854 -93.4710720441081548 35.6576532189598296
-75964 -94.7160759876663434 31.6214532193492275
-24058 -80.6186968137129156 37.187947142302697
-43163 -82.4450867000000045 39.7644006000000019
-96727 -155.478617929824566 20.0859749298245553
-08245 -74.8225267142857007 39.1600967142857144
-61342 -89.1084643492615243 41.5461423614248844
-22713 -78.1308438634088702 38.5363654379544585
-42127 -85.9304546328531558 37.1213142389872317
-68414 -95.6811015402542751 40.3305475508474416
-69001 -100.632322890283405 40.2195231420528216
-27302 -79.271858063502421 36.111689444362348
-61367 -89.2518850461155324 41.6282338706766737
-79851 -105.360109342776326 31.1992907979225791
-58761 -101.612320472421075 48.7577961966325049
-74867 -96.5473801556480566 34.9748703711608471
-48086 -83.1823643333333251 42.5681143333333338
-59006 -108.10402101747772 45.9375202121316661
-54565 -90.4431043513958315 46.3314690147783637
-58276 -97.4440969257504435 48.6276115033600931
-27526 -78.7997935502067577 35.5724202358374129
-57540 -99.6146675148935969 44.4588155404255403
-45899 -84.775736674242367 40.7993418106060659
-27581 -78.7193247631439164 36.2077769822977658
-75671 -94.4764763333333235 32.4063936666666663
-38850 -89.0595582850851031 34.0518615437415733
-17876 -76.8238238442438757 40.8523082471782857
-84305 -112.038818509426122 41.9196996410994061
-85357 -113.519162553956818 33.9311363983813479
-60431 -88.2028843315469544 41.539871694855691
-54165 -88.3218649286722695 44.5137182937853453
-78458 -96.9920683333333358 30.320294333333333
-43566 -83.7362421836148911 41.505338668154323
-33487 -80.0923068932913935 26.4116976623142428
-02269 -71.0116534999999942 42.2376859999999965
-41311 -83.7007521745144203 37.5846382015982883
-73663 -98.9252883824818099 36.1413813678832483
-10018 -73.9917591011905103 40.7546698630952164
-77972 -96.6568690000000004 28.6111310000000003
-48837 -84.7352502982377871 42.7507483916566215
-07710 -74.2567288571428605 40.2182760714285763
-16914 -76.7784933565241232 41.8650297674654581
-55767 -92.7615067431381703 46.4464531667285669
-44628 -82.1369419324893357 40.53430878450866
-28401 -77.9398134263095415 34.2311829064612496
-33764 -82.7428915938157417 27.935986953794913
-42436 -87.5652514407039746 37.4138145742158201
-39996 -80.1721128823529483 27.2091696470588182
-56633 -94.5796509628864612 47.3675838010889123
-84012 -110.139384777777778 40.1940629444444468
-99204 -117.432216744663108 47.6490575910111858
-73171 -98.7912569999999874 36.7026978749999984
-07789 -96.5747672500000078 30.8497689375000022
-21620 -76.0819897250857906 39.216273748887204
-04927 -69.5330280676626415 44.6666661284952369
-87150 -106.175124499999995 35.0263774999999953
-56326 -95.6789832646639553 46.0191015688672564
-79539 -99.8499042218430191 33.3755353054607511
-76771 -97.5855422000000061 32.0228254000000021
-79329 -101.682646879029122 33.6981834221837957
-73507 -98.4057554618816681 34.6635502069111183
-98392 -122.560970411029359 47.7334888139705527
-10153 -73.9731455000000011 40.7639290000000045
-18473 -75.2147527734374961 41.5331848496094196
-25337 -82.2498200266666544 38.5409416533333129
-68419 -96.5107804342105027 40.5989140263157893
-30429 -81.931764730769217 32.1634016538461509
-65586 -91.4313358333333213 37.8595980333333344
-38152 -89.9366170270270544 35.1182215405405316
-77627 -94.0049473253400834 29.974348492459832
-30645 -83.4754424166666809 33.9498278611111104
-32256 -81.5414254498143691 30.2129144615503087
-02653 -69.9764071215922883 41.77828653747018
-74602 -97.0807526666666689 36.5982570000000038
-85128 -111.531784285954586 32.9681891759485879
-46732 -85.6368408557233067 41.3884383456017915
-88103 -103.322339749999998 34.3980867500000045
-71720 -92.6615657032987059 33.7492544492358491
-61107 -89.0212922920053842 42.2819140472724229
-03826 -71.1338828746531817 42.888298133210057
-23153 -77.9468868015652419 37.7744653837415072
-77441 -95.9118576222118691 29.6801895246622571
-77977 -96.8286976586345389 28.6945244959839201
-95031 -121.924875000000043 37.3975168035714276
-04019 -70.1031363034826285 43.697833507462704
-56472 -94.2780114482082752 46.6022330995876644
-83670 -116.317074743252604 43.9993058429065727
-14166 -79.4162561029411336 42.4511654191176362
-13108 -76.3321497538618416 42.9770281194644141
-41366 -83.2322092376155211 37.6198968908480111
-60076 -87.7311279918727962 42.0360775344551882
-30421 -82.1195464244617455 32.1825375447290725
-54170 -88.5673584999999974 44.4508184999999969
-27025 -79.9791807084302064 36.3787076450235176
-44211 -81.3117385000000041 41.1691214999999957
-59843 -112.961283365140559 46.8040891303335513
-29916 -80.9763028946474179 32.7197021401868824
-32767 -81.503043498500702 29.0041277922651268
-65038 -92.8304720735294353 38.2077738676470631
-73560 -99.4263288199446578 34.5764152714681359
-12513 -73.7151361424418639 42.2189644026163222
-54162 -88.2011118007501977 44.6723843738864801
-96019 -122.373303514620076 40.6763852785296436
-32347 -83.5899235640877265 30.1314160762929539
-13826 -75.6396728086419756 42.1102810308642006
-05836 -72.2745956033230641 44.5161522652129946
-26690 -81.1299648645083238 38.2347108141487197
-08888 -74.7367553888888665 40.6187434791666533
-07720 -74.0129247757225386 40.2020823294797793
-57457 -99.1765970980392666 45.8766733540304941
-93143 -120.019839954545446 39.2342049090909128
-55360 -93.9058961361295275 44.8999498954967535
-59861 -114.116830727272742 47.1724647272727253
-36532 -87.873971172829016 30.4993516486487373
-44410 -80.7293728563544306 41.3265474522672633
-62618 -90.413330676767643 39.9976802912222738
-76837 -99.8532144311970171 31.215117376531559
-30176 -85.2992406285773228 33.7597529334271513
-43080 -82.4348078481613271 40.2380818301829777
-22646 -78.0285521463814717 39.0646208700658093
-18617 -76.074861992126003 41.1727787559054832
-69640 -93.9644117187499859 39.9422475312499969
-51301 -95.1513472278302999 43.1488281751824303
-73145 -97.4161371165919405 35.4218519372197065
-06242 -72.0962626130995261 41.8990319738725745
-53080 -87.9705234385229744 43.395909185900031
-60957 -88.1122425823040345 40.4490525996976018
-91387 -118.420357569634234 34.4203218019341648
-73121 -97.4462845434905347 35.5125433110598223
-60439 -87.9790282807155677 41.6641310641656943
-24892 -81.6875000601683894 37.3084051949459194
-45812 -83.8221579316191168 40.6979973916849431
-16441 -79.9879496869285731 41.9471542955887955
-20296 -87.8220422000000127 32.5024298000000016
-02886 -71.4552307834613885 41.7025286129889068
-29656 -82.7608234300000021 34.6116562299999941
-62442 -87.8581271813507669 39.3254268332311483
-63764 -89.9555936952169901 37.3406276051167652
-85331 -111.957753287737674 33.7952894506176023
-34134 -81.8226968774347796 26.3556969892814017
-53820 -90.7184311720810967 42.7034859359699794
-08220 -74.4506959999999935 39.4769460434782573
-37874 -84.4528807142083195 35.5982620178690325
-81137 -107.643931538305935 37.109769619778028
-68382 -96.0238704038461748 40.5967426346153815
-68409 -95.9314939491124079 40.9090608065088901
-83874 -115.857913516666656 47.6271555333333509
-25168 -81.8765593613445475 38.5620696421937978
-80612 -104.884082277992164 40.8433848832046422
-55943 -91.5760823115223559 43.772523274179747
-85142 -111.637395784853396 33.2243466485562635
-41094 -84.6219340275596181 38.8847950674743643
-18453 -75.3635585912512624 41.7500833700913816
-71998 -93.0532654399999899 34.1246954399999964
-04062 -70.4080368316160303 43.7995263695677863
-75060 -96.960289557036063 32.8019332850631855
-51059 -95.8779685798319434 41.9413589831932754
-45652 -83.0881511452202943 38.8391240122473107
-18714 -76.2678024000000079 41.2505789000000078
-73832 -99.7579862681562872 36.1257214767225463
-66067 -95.2725778029876835 38.615121365319645
-95959 -121.006231797125366 39.2977101773677759
-66215 -94.7420034328053333 38.9613556805218408
-26568 -80.2759053217391028 39.4194386739130636
-62863 -87.8207927500944407 38.4149978279610949
-87059 -106.315666414964767 35.043261630902407
-20180 -77.6311855969391189 39.2658594483056262
-61603 -89.5800478263967364 40.7128827059661305
-03603 -72.3817772697702964 43.2550395481066943
-20724 -76.8107562373200494 39.101412192026693
-29560 -79.7674434885933863 33.8586712227141717
-05765 -73.0360849240507264 43.6571182146835
-37711 -83.0460272500847339 36.2822533877117337
-64056 -94.3472652004599581 39.1166402985542305
-11747 -73.4055077066744417 40.790788623180255
-75091 -96.6228955000000127 33.6981123750000009
-66952 -98.593584980324195 39.840267267361142
-78217 -98.4202109444673994 29.5423495292312985
-22660 -78.435519873045962 38.9500758844149075
-73726 -98.4872491041666507 36.5759929088541824
-26505 -79.9505163642203485 39.6481697592590834
-55080 -93.1819720892667647 45.6630158275442781
-00612 -66.711416709881604 18.4576185100468138
-82053 -104.387914836022375 41.2099529720118554
-53024 -87.9454102999846441 43.325000601108961
-01748 -71.5353943845575486 42.2226478059267336
-87557 -105.622255869910546 36.3549862903095686
-15829 -79.1976321049425849 41.1767710653549273
-77381 -95.5040814758477552 30.1782188156566171
-28704 -82.5481766279819595 35.4623762448358448
-96117 -120.319775708860803 40.5270568227848003
-95497 -123.460317925992541 38.716641836823058
-20003 -76.9929496284111536 38.8828137546544426
-22626 -78.3975246999999911 38.9842772499999981
-25287 -82.0451858726376742 38.9708463993426832
-32097 -81.5865289235531606 30.629937002228953
-03866 -71.0063260000000014 43.3642619999999965
-63665 -90.8473583934976716 37.3097001221973343
-26542 -79.7901459751649895 39.5638704780809292
-33876 -81.3462578280429938 27.4362784601639866
-61068 -89.0787662416900332 41.9408290189180377
-87232 -108.139712200000005 35.2878940000000014
-32159 -81.928474568086429 28.931168360891153
-55045 -92.8358181589628373 45.3866700040602211
-12051 -73.8309493679920053 42.343868736493377
-93524 -117.918766562499982 34.9190882187500051
-13417 -75.2923827524115552 43.1013274051447084
-46393 -87.1810149743589875 41.5120434017093984
-16362 -79.9595249867571169 41.4454597578947315
-36575 -88.2624425110610389 30.7658045223572465
-25902 -81.2015235722061846 37.5822026916426992
-77962 -96.5006781457517206 29.0216207035947313
-18340 -74.7507559124999545 41.4179563249999703
-99774 -149.105829999999997 66.0102579999999932
-94801 -122.368400069458318 37.9397001623710608
-41257 -82.8081661305071037 37.9117849143807675
-23236 -77.5843549478300787 37.4747970572032258
-59620 -111.480259249999989 44.8264560000000003
-99356 -120.361516230769269 45.80968887408131
-80864 -104.193844545202751 38.7694194324432146
-60119 -88.4670296155860854 41.8854354571128411
-12842 -74.2655755601053471 43.7623833936889568
-63146 -90.4510366283119538 38.6885345697312246
-37878 -83.9540815404004235 35.6124557941685325
-14561 -77.1257377605456753 42.8222243173696526
-52567 -92.0654287892156447 40.9331752990196165
-95485 -122.930702826278733 39.2166562279667446
-61543 -90.0023616394557564 40.3927767755101925
-78558 -98.0370308472221978 26.2974545555555466
-62611 -90.37363436553062 39.8924390308442582
-92647 -118.006438512934608 33.7221958500594425
-20215 -77.0138299999999987 38.892000000000003
-94546 -122.080266657709643 37.7035389235755503
-14812 -76.9869519551847645 42.2902488318019181
-12064 -74.6612564437919985 42.6101369010067188
-33317 -80.2261072528268926 26.1131434165464533
-56338 -93.8910001696439451 46.0263945765740061
-03576 -71.4306489709654642 44.9073535789981833
-13201 -76.1426179999999988 43.0448889999999977
-85284 -111.9293393856275 33.3356992567294981
-76766 -95.2310139999999876 31.8566242499999994
-54234 -87.1074116545387227 45.1892924312232935
-05251 -73.1130416196247666 43.2554692348160046
-35137 -86.6319804848484836 33.3242577272727303
-39837 -84.7059594025527218 31.1656276983514893
-46037 -85.952700487070743 39.9579992709954439
-14820 -77.3612796059661321 42.19039630320583
-97814 -117.824231844415309 44.796005046343204
-36046 -86.3392443004386223 31.9964144727095814
-68030 -96.4636673958630695 42.3171612253922689
-12043 -74.5148045895502804 42.6986618393552888
-49070 -85.6370435053190278 42.5359599969604574
-24168 -79.9492825581854021 36.7391887001972393
-36790 -86.9035232492492469 32.7288355660660315
-95236 -121.043245633680613 38.0310503712384431
-28339 -78.7071025277327578 35.3264231619831577
-23938 -77.9979070297656563 36.9031550582647156
-60910 -87.7796364208999904 41.0796542278664703
-95446 -122.997654843451485 38.5057700519605888
-73944 -101.186130055555552 36.6161448253968445
-17086 -77.1063452374929028 40.6798140589012434
-06417 -72.4530355386262812 41.3731243175714951
-12426 -74.1453624814814702 42.1628808518518596
-83440 -111.815971727416297 43.8133968753255303
-69342 -102.183746666666664 42.8047579999999996
-28360 -79.0718087989194061 34.672714211580228
-38589 -85.0859734967186228 36.3040660164068214
-68668 -89.8509361333333487 34.6340561333333383
-45805 -84.1539811524972095 40.7342767944477799
-57579 -100.746832272727389 43.576801702619484
-31620 -83.4294408478595102 31.1289756461164089
-38780 -90.9991701627906906 33.2486516395348843
-79088 -101.755792303420051 34.5414841311578087
-24931 -80.596131632175144 37.9081156095166349
-01510 -71.6805258997344055 42.4173926779661556
-78951 -96.8280511111111366 29.5976320317460342
-30238 -84.3793966138592424 33.4967054303217466
-50106 -92.8128643928927914 41.8897757989562294
-66942 -97.9853650526315505 39.7789027947368439
-55018 -92.9886140741651701 44.4103272652260017
-41332 -83.3877302847550652 37.7967550696503736
-08442 -105.81165277777778 39.9769463333333306
-48064 -82.6848483805311218 42.7620976525073715
-72038 -91.2740876481927472 34.4566684289156484
-75483 -95.5418267999999955 33.0344177999999999
-26257 -79.9772473227091183 38.9051682350597687
-65329 -92.9763312220256921 38.6082705864661762
-95223 -120.29699229766301 38.2813121191314707
-43510 -83.9520630416666762 41.4644283124999973
-04951 -69.0439278093194133 44.6011179426731843
-87020 -107.843894985752883 35.1592152344973812
-93504 -117.789113555555559 35.2098119444444535
-01969 -70.9018663317247331 42.7171823408400826
-72413 -90.8143080889009013 36.3189548162715425
-40178 -86.4122059506577926 37.6571139769737542
-28306 -78.9392819918466415 34.9786588671375824
-55424 -93.3393642515535049 44.905010017562887
-58075 -96.7060742167249003 46.2806819601130712
-26619 -80.7327982952136836 38.7705461077823728
-29666 -81.990300590091465 34.1352959523497148
-02812 -71.6594595199999702 41.4738461238461582
-22393 -78.9807905555555436 38.0903667777777741
-89440 -119.646868570238283 39.3068666916666345
-49806 -86.8375251304347699 46.4078311739130527
-21421 -75.8288725000000028 39.5899114999999995
-12582 -73.729337195860154 41.5449006169595663
-55603 -91.2241444566667354 47.4723165485185703
-43624 -83.5473359166666825 41.6587297499999991
-28411 -77.7999585170393715 34.2845330372661792
-35578 -87.4593216078513507 33.9719881598421409
-44024 -81.2057346633227866 41.5759224920411512
-59704 -112.328234500000008 45.5432800000000029
-06057 -73.0164144470786312 41.8427903798367709
-67047 -96.0157592014851531 37.6258762801980069
-37394 -85.8625533504273903 35.5373765811965896
-63117 -90.3294698763542527 38.6306099538389063
-52144 -91.9437588191662059 43.1275983890091723
-95251 -120.470009073329621 38.0808087914177094
-12581 -73.6976231334032406 41.9003997683823215
-75831 -96.0199470257426668 31.4471371181145685
-47837 -87.1116007643626347 39.6250551570915519
-60419 -87.598298869232039 41.6269192586802887
-56052 -93.5243770767214357 44.3304709801646339
-64339 -103.637748600000009 42.5313177999999965
-76827 -99.1164144064136394 31.5241541937172549
-84606 -111.639125868426618 40.2249053792894387
-24247 -81.9917524999999898 39.0069625000000002
-46112 -86.3849117562880622 39.8508352147110045
-93726 -119.763920074396296 36.7940175782031673
-34265 -81.8674616111110964 27.2133670555555618
-79512 -100.873626240489429 32.385714406213026
-58573 -100.180802654582067 46.1148795679758479
-13072 -75.7579241179321912 42.7608574858642285
-66742 -95.3382080813953507 37.9185050116279001
-02693 -66.3581333333333276 18.433244000000002
-47973 -87.2569454999999863 41.0808617499999968
-84333 -111.81053706995084 41.9192399056034404
-32653 -82.3995777055175012 29.7197384536695033
-42204 -87.0684763596909761 36.6974353816885142
-06756 -73.2430197498273969 41.8294675672080416
-11509 -73.7259706877761545 40.5888073932253661
-45014 -84.550745216497134 39.3264998188080881
-33781 -82.7131059306535974 27.8393689370745534
-35979 -85.6086747293605015 34.8329119097867661
-99750 -164.534884000000005 67.7255780000000129
-37865 -83.7429418770687448 35.8602794751712963
-61625 -89.6170327666666537 40.7955346333333324
-02453 -71.2374248963808725 42.370829064286923
-08010 -74.9120249572037693 40.0572600354562951
-93000 -118.847327868055572 36.5434662500000016
-94555 -122.049082725172823 37.5723920782758469
-68774 -97.2754812966507245 42.8117995805422922
-58386 -99.5953849003622764 48.3559612463768502
-54355 -89.8074336666666682 44.7992633333333288
-70576 -92.4193083264706416 30.7809840500000433
-61310 -89.3438995371062816 41.7046601954082519
-58444 -100.135496120653457 47.5100742249707437
-43017 -83.1321211955198862 40.120395546126197
-19931 -75.6279312849999883 38.5730654475000065
-17508 -76.2160690617848644 40.1233330572082281
-32460 -84.9472717652823661 30.746774586210865
-30255 -84.4176888124999891 34.8532886875000045
-61770 -88.5276175744513694 40.4410945082289572
-50072 -94.1239700810397721 41.4957997070337257
-13695 -74.9166735365853782 44.1366205993031215
-87533 -106.166955395424949 36.119785477124168
-93219 -119.271017128082107 35.8882110938357073
-43905 -80.8389847348066297 40.1035087182320638
-12919 -73.4411736679205234 44.9719080988372113
-48177 -83.5799520750000084 41.8083259249999983
-59841 -114.221301421711985 46.3339697912317732
-15837 -78.5176330000000178 41.2705884375000025
-56584 -96.2291827920734448 47.2397600924756418
-11770 -73.1542336347825568 40.6466862565217113
-60428 -87.6909570016327962 41.5978973728572541
-37018 -86.1879307067680145 35.6441565333332306
-15241 -80.0803246939306064 40.3346810779741887
-76114 -97.3995070781727748 32.7776725726805154
-66748 -95.4253075931905386 37.8003894519123733
-99597 -121.151152842105262 39.2332311052631582
-52347 -92.292992116126598 41.7134468692129872
-26623 -80.8766987308642484 38.6573182452675113
-21756 -77.6976271508811607 39.4550143276145704
-42721 -86.4935765365320464 37.4228211220012241
-02189 -70.9317422173005951 42.2120315930027417
-27815 -77.677157666666659 35.9195132777777815
-76008 -97.6345474441372829 32.6929689910733501
-49822 -87.1040651234567633 46.4883586790123644
-39651 -89.9745706666666791 34.9039109999999937
-16638 -78.2042277058823601 40.3314014803921452
-82732 -105.52858550273497 43.7317208269516371
-08340 -74.8728305530034959 39.4382003162543811
-33134 -80.2698264779987767 25.7537806133212506
-47597 -87.3095411244981392 38.6537247561674704
-33809 -81.9528476246141224 28.1523228627705571
-79378 -102.467413681818172 33.0335557979797869
-68326 -97.6769626736841161 40.2815044289473789
-21540 -79.0587040624999986 39.474979492187515
-46375 -87.4533780528080911 41.490803040732338
-12951 -74.5076221666666498 44.9839723333333339
-94541 -122.084494062156921 37.6744798370683185
-52746 -90.682958774999932 41.7172183658536113
-77950 -96.8310818185184985 28.3712079685185188
-79379 -102.63030885844752 33.615164730593591
-45746 -81.4581068148953591 39.6081574834494745
-93646 -119.307987983787214 36.6298737736705107
-89423 -119.744792307267801 39.0151094192789785
-46943 -85.8366847089552039 40.9741229179104565
-38336 -89.0225003999999984 35.7413854999999998
-49022 -86.414687366571485 42.1112615193501014
-07083 -74.2695893146628521 40.6962577603024087
-77081 -95.4824028322384635 29.7090789813037368
-06020 -72.9160317959183857 41.858315244897959
-65102 -92.1785616538461454 38.5553418461538371
-03447 -72.1537126350835507 42.760333935465006
-22482 -76.3613223056934061 37.7215152680022925
-80342 -105.889932222222228 39.2890665555555501
-59319 -104.192186731404973 45.4801222685950535
-55310 -94.8728034209839279 44.7662987873649669
-71472 -92.786999339336532 31.2037770530805858
-45690 -83.0230286714907493 39.1363196301483924
-28129 -80.3298583700688482 35.2349690702797957
-43618 -83.3704221320754755 41.6763839245283094
-93623 -119.645031987854324 37.4715346383266379
-47957 -86.8868321584021714 41.0916783415978273
-23606 -76.4994424528826613 37.0764265845238583
-74053 -95.7411518971008491 36.4335907648533563
-35022 -86.9573049362226271 33.3374254331321325
-74034 -96.5520436357615921 36.2325130662251738
-85038 -112.155251714285711 33.8435784285714263
-91351 -118.470857947887296 34.426096390140728
-17240 -77.572260542186271 40.1454524517230666
-95325 -120.218015710810903 37.4968322716216491
-90746 -118.255622368674395 33.8607065463290624
-37067 -86.7951226840192334 35.9234139631514466
-33021 -80.1886095564672843 26.0250298254719858
-62265 -89.682583576084042 38.5215480573660329
-54420 -90.3112398896551269 44.5984325931033894
-29329 -81.8381331959798644 34.9925757185929669
-60942 -87.6627088549845865 40.4648488548409588
-30634 -82.9483232606734475 34.1988901631878193
-07424 -74.2112855395610325 40.8835291719314924
-84009 -111.995439364085996 40.5589271746215303
-63349 -91.1542176823707138 38.991366610638309
-88256 -104.074266201865996 32.2853114291773267
-45782 -82.0795460828402241 39.4844469585798876
-56687 -95.0055938701298857 47.5021009090909203
-97210 -122.717181424198174 45.5347674720732769
-62554 -88.8593413238972971 39.9312996583278874
-38857 -88.5774705328323364 34.2808883572850078
-30143 -84.4159340908462923 34.4603806005726341
-20732 -76.5399720338040481 38.6659898031851483
-78655 -97.8451965176056433 29.8303742843309827
-28343 -79.5822216216081557 34.765379549246255
-67802 -102.041695333333337 37.4553554999999889
-11233 -73.9188770331633123 40.6780118303571214
-76556 -96.8415132276853967 30.6951051074225418
-32177 -81.6711737232674579 29.6668733864308649
-48748 -83.6665967172805836 44.3186470879300387
-18354 -75.323473214408196 40.9243055926243215
-55027 -92.632064550022946 44.4149198798538691
-49902 -88.402035786259475 46.0429948244274954
-22976 -79.0346452299731794 37.8518896361816033
-11719 -72.9147000107239336 40.7782707117962531
-92240 -116.506487356431151 33.9597490597239542
-93242 -119.715888550892004 36.4360558929697049
-72937 -94.3950939029961091 35.1438879667796016
-62241 -89.8951607078258945 38.0134476349850985
-73333 -97.3804192727272806 36.1415882727272688
-36477 -86.0545928584707696 31.1067459036265923
-48806 -84.5025941489864749 43.1822097369165192
-79527 -101.067170463492047 32.6050509415873506
-26238 -80.1420727579319134 39.0932447367802354
-24073 -80.4226659462623559 37.1365463631228891
-64836 -94.306104004269244 37.1650815302702995
-72354 -90.3131134656532311 35.6172470909347751
-69352 -103.999957511909301 41.8561871482041781
-06103 -72.6751233361753606 41.7672864799025163
-14620 -77.6022875785192667 43.1308027400449419
-06269 -72.2566129876324936 41.8097155494699706
-48502 -83.6895612728972651 43.0138006990653849
-70460 -89.819707955582146 30.2969792857540874
-64034 -94.3318899810395237 38.8467612728085712
-68464 -97.1898279548021549 40.4159543898305742
-76115 -97.3310087911212065 32.6794655294391987
-81645 -106.424381284600273 39.5831786627679918
-01741 -71.3521451904448867 42.529308240339212
-79754 -103.598085937500002 31.7076095624999965
-78056 -98.8956513100993533 29.5521054302977362
-03582 -71.4519424128597791 44.6062348552631107
-71651 -92.308057997866868 33.3667960712457443
-65321 -93.4654198975695749 39.087022300347229
-87319 -108.919214709134579 35.4811659727564006
-29664 -83.1647388817361417 34.8461256376428068
-31062 -83.218619517241379 33.0497047931034515
-55031 -92.9791080733335065 44.6098818451851642
-94089 -122.005922623888338 37.4014654884409978
-73762 -97.9593460276133499 35.7112226955950263
-45669 -82.3587086292842656 38.4860554786142828
-23630 -76.4131560000000007 37.0068940000000026
-02841 -71.323567846153864 41.5143409743589586
-87931 -107.325779547169716 32.9741432801160883
-12108 -74.4201641308289368 43.466248169689166
-72529 -91.5489295498352504 36.2959735139933954
-61353 -88.9881697112156331 41.691647440564104
-85928 -110.583396446777343 34.4304438616943926
-95540 -124.136241997378292 40.5776317405863622
-83877 -116.707297999999994 47.6179921666666601
-43137 -82.9763396931964508 39.7921749345313955
-58501 -100.642584729224211 46.947301183583555
-54734 -92.1348424365853447 45.0400164439024451
-13021 -76.5592450502796851 42.9260971378458152
-13159 -76.1325806381379238 42.8089112495301194
-30124 -85.338111198486402 34.1222557788107892
-93502 -118.232990339285735 35.0708422142857117
-20763 -76.8199637851124351 39.1377556179775397
-18834 -75.7179669687317727 41.8489860066687598
-53012 -88.0260175091988941 43.3166800202514608
-46992 -85.8282625648822659 40.7948439875338309
-13811 -76.1666539628479882 42.2296488216130044
-06906 -73.5242020183194853 41.0705355312623865
-58710 -100.242557824843956 47.8050061057493565
-20627 -76.7010684920634702 38.2732394285714221
-40203 -85.7643122947951184 38.2473813779362928
-50271 -93.5415199272660516 42.4897838065209896
-37140 -87.6833833619908347 35.8588205393664978
-37069 -86.9007426482736207 35.986199057629058
-15088 -79.8981763136729199 40.2723131501340461
-71463 -92.6497530995143137 30.818915599513943
-28581 -76.4178134695652034 34.8518024434782419
-36015 -86.5906706976744402 32.0648645348837178
-42048 -88.2426448721221419 36.7709593643484922
-13902 -75.9065387499999957 42.1018127500000077
-92384 -116.209713750000034 35.9854782100000108
-92845 -118.027405754184059 33.7829481497499771
-78205 -98.4888394560527729 29.4254193421779959
-79011 -100.182462664327943 35.5592693360414458
-66201 -94.6902761111111175 38.9953365555555536
-08073 -74.8674252967032885 40.0103937582417544
-07105 -74.1519048503143239 40.7267724444445278
-24124 -80.837841667275157 37.3249709905830329
-53531 -89.0939652278835723 43.0539002256438224
-65685 -93.1516512212715213 37.7563074321515728
-66734 -94.8220406566864966 37.6213275888223535
-49712 -85.0170345572861095 45.2209363746602477
-15963 -78.800559119169364 40.2286101505878406
-33701 -82.6390927984532908 27.7708174929917284
-42082 -88.5015723164121226 36.9097180099344371
-48039 -82.5163420407133543 42.7046966850605401
-56725 -95.8109548386296268 48.1866408592652533
-01923 -70.9451158170228098 42.5725997730898982
-18431 -75.2519189541133642 41.6089535893859548
-70707 -90.9868040000000065 30.119413999999999
-18343 -75.1096557472384916 40.8925106301945362
-46524 -86.0250297856286892 41.2966417083832411
-02824 -71.5635081176470891 41.9996418235294229
-95605 -121.548145338966933 38.6018308970266091
-17236 -77.9277699759585971 39.7987083647394471
-99926 -131.584658292181103 55.1403305048010566
-45067 -84.4669835468314858 39.4821783275988878
-48759 -83.4208484841699516 43.7331478142858359
-50317 -93.5504514104506768 41.6113960298140881
-32862 -81.3310091111110864 28.4137542777777767
-61910 -88.300936166762412 39.6833337499522756
-25234 -81.1531233906445522 38.7998179395700546
-61702 -88.9541069999999934 40.4932054000000008
-65051 -91.8080814911439091 38.4698236420088335
-84038 -111.325719281385346 41.8492856900432812
-65232 -91.7666270021322106 39.1479400788912812
-68325 -97.7659583111887827 40.0294873461538643
-28913 -83.2714014999999961 35.4969719999999995
-22265 -78.3204798888888831 39.3939947777777704
-45775 -82.1556109566605528 39.0850808019969236
-25634 -81.8437252431507858 37.7284866164383388
-07015 -74.0357741428571359 40.4029214285714247
-75039 -96.9413725328134177 32.8910392033788526
-77616 -94.2018913094644859 30.5721451556662522
-58351 -99.2779241748252161 48.1024226783216804
-20692 -76.5024209677821148 38.1876112757125199
-19067 -74.8363809449593447 40.2197386025083858
-99626 -160.367673749999994 61.512695750000006
-68626 -96.9830791040946139 41.1666420160734177
-50233 -94.2132906390196041 41.5959284863337757
-27295 -80.3034599923773129 35.8710542524491274
-81303 -107.867000899194196 37.189076933274869
-38751 -90.6604242327490084 33.4547895886791338
-92617 -117.837684285467191 33.6398413088235344
-62208 -89.998876444256851 38.5944057857801113
-61572 -90.0285587989689589 40.7905392121992278
-49885 -87.2464047037556156 46.346403127062139
-63431 -92.329184060367453 39.7413644015748204
-15676 -79.4585831218638532 40.2436360752688458
-13856 -75.1460533993170543 42.1805848631490861
-01506 -72.1040840044750695 42.1947682977326366
-27586 -78.0357490740740616 36.4024716740740786
-45628 -83.1976859769517176 39.3854527781723931
-61489 -90.0228979007469547 40.9402454635360158
-33617 -82.3929546135272517 28.0376719206605074
-54526 -90.8933286153846041 45.4627682307692425
-37083 -86.0031641404701332 36.5446772229542987
-63755 -89.6493837352228695 37.4262557850276423
-48619 -84.0499088462348709 44.826497840253289
-50424 -93.9270372730154861 43.3933225293082288
-90059 -118.248021920218051 33.9260504633575479
-84010 -111.870547617197488 40.8737484167351113
-84776 -112.085944108374406 37.6242342725780006
-67801 -100.027049117417548 37.7298757079861815
-77611 -93.8329953846812828 30.0303693049442977
-81526 -108.369387015912977 39.096151126041967
-73662 -99.6466103088281301 35.3097865227206995
-12090 -73.3614905362280325 42.8881756549331996
-10570 -73.7802152185059157 41.1337722153013132
-49747 -83.6057159338890159 44.8429031638890834
-72821 -93.7353531395588959 35.4496912837872387
-43779 -81.4272825600415189 39.8145187035197523
-02356 -71.1179331161452524 42.0549540912933537
-83713 -116.33448449821762 43.6406213316246863
-34420 -82.038057866712748 29.0531095587392691
-47982 -87.527490298076998 40.1965578750000176
-12541 -73.8074825407407502 42.1601260444444037
-78385 -97.7923899750000061 27.2249862312499893
-05830 -72.018137195836033 44.9842024730983852
-24520 -79.0394825468830931 36.5854637652227552
-24137 -79.6430482750929514 36.9542428103633966
-27847 -77.1995068947018694 36.1758663265577951
-53227 -88.0383753413944845 42.994931582344222
-90805 -118.18220378571479 33.8648109234694203
-96743 -155.781790101415083 19.9951265589622693
-46706 -85.0454510517750037 41.3544004247117911
-16114 -80.1823927329816541 41.402174973087007
-38869 -88.8401087973856534 34.360944042483645
-14604 -77.6049238442105889 43.1577631726316469
-98512 -122.978227876145652 46.9742762726196474
-60466 -87.6864932240114712 41.4829438941321627
-11692 -73.796222414201111 40.591629674556259
-57363 -98.258651257622617 43.6965545969951989
-87321 -108.456254826959821 35.1080719004610771
-46216 -86.011476064498666 39.8581788482385448
-19904 -75.574758110233887 39.1672873389153224
-59732 -112.690589821656062 45.4855694989384389
-69361 -103.644215706027069 41.8911629994365882
-21228 -76.7447406456254697 39.2785810392817467
-22852 -76.8432895714285706 35.1414231428571426
-46212 -86.4219699000000077 39.8458161000000004
-95844 -95.4851496666666577 31.4926326666666654
-73743 -97.9996374131736872 36.5648044011975983
-30474 -82.416456913480161 32.2154924999581311
-68033 -96.5177390829457664 41.1453162426356371
-81416 -108.068633304135446 38.729374209526874
-44672 -81.022524003871041 40.9216145903225481
-05843 -72.3446033833704263 44.5006176676247591
-31011 -83.0583760412303747 32.1229235942408167
-50681 -92.0034015224661914 42.7805074294670575
-27949 -75.7309559732075854 36.118786664357124
-27502 -78.8773263902597392 35.7297886448846214
-86732 -87.9468985714285765 32.4528352857142792
-81123 -105.535862955375208 37.4312055608519429
-44451 -80.861622797179777 41.0784123936125809
-15322 -80.0389547960218266 39.9814929171790396
-50243 -93.6952150776255763 41.8635522648401945
-04530 -69.8340846395061874 43.8958361096188696
-94107 -122.395801313286185 37.7656225003930359
-87514 -105.577444825979299 36.5214406936043616
-13352 -75.1231023076923208 43.3118229780219863
-06853 -73.4393518255319862 41.0690370778723448
-20701 -76.7916334541284868 39.1250754174311979
-37037 -86.3743878836424983 35.7079564298060816
-28737 -82.5521449999999959 35.711411499999997
-11566 -73.5539341762134598 40.6686166723750873
-35218 -86.8932789295607364 33.5072798347660239
-80265 -104.994641000000016 39.7480010000000021
-13634 -76.0863149748275163 44.0044576992580687
-26559 -80.1695157302903993 39.5021263319502225
-46122 -86.5225777316655495 39.765318124607731
-24162 -80.2666172994887717 37.1323418686389033
-70310 -90.8036290000000008 29.7906140833333382
-13958 -78.6902600666666814 37.2193161333333293
-17024 -77.30778699458034 40.409547732304226
-05702 -73.0329996000000108 43.5641075999999998
-98829 -119.796669255879095 48.30077869484888
-44611 -82.0837194423007048 40.6034440485984547
-54475 -89.7885912472637244 44.4791924171057147
-98522 -123.296730513513495 46.5714936486486408
-00971 -66.1128859359137806 18.3304265209391026
-31637 -83.4528828409144836 31.2904298310794182
-37765 -83.0706915795146159 36.5716224843666211
-18221 -75.9078435970873215 41.0057246092232788
-57744 -103.212512259401066 43.8272393642406399
-47997 -86.7241131126760649 40.6685983521126744
-51016 -95.7942317286353955 42.4717426248876322
-81111 -105.510481114754157 37.0522499795081899
-32649 -82.5750817499999954 29.0419892500000003
-95417 -123.640018015209009 39.6796572034220603
-34604 -82.4517493017403211 28.4763491308775443
-78617 -97.6098552737478542 30.1477720646043892
-73061 -97.0166380435943267 36.2949930071173981
-66204 -94.678210944773781 38.9913649662883444
-27219 -79.5677668749999896 36.2428013749999991
-71731 -92.6855628064516139 33.1481439999999949
-43218 -82.9247711250000066 40.0181633750000003
-28396 -79.3995006836863695 34.9196323041717918
-60420 -88.4154095278748429 41.0838597363748548
-67731 -101.53640251076061 39.7518478880918096
-63650 -90.6172117727667228 37.6182245967043727
-37733 -84.6251420041840561 36.3228373430962108
-41267 -82.4308734735883206 37.8685597040073745
-90037 -118.287466076314843 34.0033418489521821
-43081 -82.9087736410475884 40.1102689821944267
-26836 -78.9611479816264961 39.048448717449773
-61821 -88.2753354149640899 40.1076468956696246
-03865 -71.0926057425178612 42.8358981021899012
-95560 -123.864187458249347 40.1323159526543165
-84040 -111.926849932963023 41.0849747509552827
-55427 -93.3824453645763697 45.0077624603232849
-49052 -85.3121965377358862 42.1197020807127558
-17930 -76.1491385352696852 40.7159747925310995
-32626 -82.8864065987095415 29.4664759384656811
-40175 -86.0451989291644708 37.8368616073198396
-05477 -72.9838729025840252 44.396379161082983
-38549 -85.1548073823256715 36.5685125678388374
-08776 -74.1405782500000043 40.1371012500000006
-08049 -75.0365757935916236 39.8546125134127962
-18327 -75.1449428684209835 40.9840646785714142
-30459 -81.7625004999999874 32.4007475000000014
-81634 -108.140007199999985 39.1270623999999998
-66619 -95.7045117304582362 38.9457856556603588
-37618 -82.2270440942124736 36.471758104715839
-64873 -94.0534447192899137 37.0155802888675254
-48111 -83.4860431614312262 42.2023685645787197
-22971 -78.8052476416942085 37.7537068904858657
-33777 -82.7601443239465482 27.8526048010117684
-70770 -90.995924620551861 30.6340471383441866
-03942 -88.4741693333333359 31.0672796666666677
-98823 -119.601832263585493 47.2827483977687066
-73659 -98.9471636565657064 35.8680312020202052
-19956 -75.5543625290618195 38.5502369274674876
-39564 -88.7766867292899917 30.4036087377204716
-25840 -81.1115695961349843 38.0404840299054356
-54733 -91.8601303688868427 45.2806823311598237
-28387 -79.3884777023273358 35.1739797778141252
-77978 -96.5605104896552149 28.6783547448275868
-14445 -77.4879207606383318 43.1120564824468957
-60805 -87.7026198929161183 41.7209687951009585
-19096 -75.2741719256291475 39.9966248879775463
-58068 -97.4306588287089852 46.5530995849056453
-05749 -110.643357408284004 32.268530810650887
-14468 -77.7868410915340718 43.2926526827062474
-65566 -91.1371379287234191 37.7356365191489331
-43438 -82.7044917531760433 41.5997960241984117
-24148 -79.8615929335592654 36.5850059603410074
-62883 -89.1052679861829233 38.1654917380541647
-89005 -114.835298465699651 35.9787893388866848
-72903 -94.3624271481334915 35.3561602884397885
-47042 -85.2465187417763559 39.0156143232121408
-39039 -90.2372396002030683 32.8337979207503139
-56122 -95.9514453868479507 43.8971410340134511
-22307 -77.0628380551569592 38.7688821533632151
-44828 -82.8593329787234012 41.2358644042553095
-55435 -93.3371864624295142 44.8748038493679999
-98963 -101.408851999999996 46.8393709999999999
-44304 -81.5079483808563765 41.0823159768261661
-24256 -82.295907559176058 37.2145776034253402
-94501 -122.259103598770778 37.7695587154149663
-31776 -83.7876378750000015 31.1875181249999969
-50848 -94.7614534290388377 40.781443849897741
-59013 -109.106400542253525 45.4473694859154875
-48469 -82.551533371123071 43.4422396834223719
-02906 -71.394236230947314 41.8377110179842546
-30290 -84.5889457697330158 33.4778913278209984
-70438 -90.1197224365781153 30.8671224549917937
-18350 -75.4537992072752672 41.1153114340660295
-30081 -84.2442115555555517 33.8010424444444482
-85234 -111.745514303176279 33.3650419320996932
-87156 -106.436755333333323 36.1869346666666658
-63866 -89.6094265791855094 36.5189112036199148
-46723 -85.3226772051222753 41.2348093952646764
-61315 -89.3678322149999644 41.288708574999994
-45240 -84.5293137090830555 39.287681201102707
-72039 -92.4066977062705348 35.3517241683169843
-85554 -110.955011974619197 34.0935734602368825
-00611 -66.8018871428571401 18.2767293928571419
-02630 -70.2991848914424367 41.6992670737828703
-34646 -82.8392965000000032 27.8546425000000006
-48739 -83.8264910831242531 44.3930120330406837
-49676 -85.288564632792955 44.8366766003741191
-13431 -75.0759799759266429 43.2080938616736034
-04003 -69.9950458635312458 43.7335357972243415
-08059 -75.0923586658841486 39.8848290211267411
-79243 -101.011342092592528 33.7475340370370347
-27559 -79.1117166192671704 35.6347912630467931
-73108 -97.5578012871488909 35.4455491904540949
-11751 -73.2139745008427099 40.7349360000000331
-32692 -83.0807666935483553 29.3786593084677286
-09617 -66.5753859999999946 18.4134901666666657
-28128 -80.1500416567506591 35.2259405393830178
-41310 -83.2431472173076088 37.6395618365384621
-57043 -97.3104127463474242 43.4176380621878621
-15237 -80.0402437405125511 40.5506300971224292
-77065 -95.605093755982594 29.9310737367711219
-98195 -122.305228109890152 47.6567768241758287
-55950 -92.969716068702283 43.7443675954198241
-33041 -81.7953324999999865 24.564114333333336
-04672 -68.251964375 44.4133978750000011
-85086 -112.108909118602909 33.8406155011393892
-54457 -89.8556550718406299 44.2508544420076575
-72387 -90.7726258888889106 35.3125576666666703
-95423 -122.631899112824868 39.0407470525569309
-35437 -89.2085688928571727 31.5832045714285705
-99332 -118.741862181818178 46.7647574545454532
-33128 -80.2044476449135857 25.7766189078694516
-28098 -81.1024857663550591 35.2714977604077617
-28388 -79.3707567391304423 35.1660569130434837
-22577 -76.5550122499999901 38.0600399285714275
-02836 -71.6211521153846036 41.4502916692307579
-23417 -75.7679165806640924 37.71556530076397
-71234 -92.3563175463675634 32.6406828298076448
-08402 -74.5092619224013504 39.3374547368228846
-45065 -84.2111086280682599 39.3687340170756954
-33441 -80.0984158421331927 26.3098947603070599
-28469 -78.4557976122767542 33.9166510226981117
-35365 -87.6133343333333414 34.3012730000000019
-70807 -91.1771751827704691 30.5353814316388181
-97068 -122.654503094464815 45.3630524394815495
-96086 -123.21504980696713 41.8447478309364271
-26438 -80.3186579583333184 39.3463123333333371
-33214 -81.8496526666666568 27.8962736666666693
-46235 -85.9808113341822207 39.8343230907498196
-98230 -122.739695278664655 48.9543959123407078
-77518 -94.9877843549863599 29.5065893151875613
-72515 -92.0514670149586749 36.2790870243767003
-71309 -92.4476903750000218 31.30881458333333
-95041 -122.056581534482689 37.0505852988505922
-10038 -74.0040418903591473 40.7098309943289252
-47039 -85.1645330000000058 39.4032194999999987
-76354 -98.5738479141968611 34.0860240270409705
-30545 -83.7317891253349842 34.7168257136052674
-50137 -92.9064586344085654 41.6073607634408447
-45308 -84.4573271047617737 40.1245493404762783
-27806 -76.7725219397821803 35.3127860822249389
-24288 -79.8339268888888824 36.5165115555555531
-58478 -99.7624151079872235 47.1403053484983303
-32440 -85.5276701081298398 30.9258250904316121
-27942 -76.7613840877673823 36.2838700307186315
-17047 -77.4097253561995302 40.3670912883047421
-30676 -82.7567017500000048 33.7377545000000012
-80127 -105.143795095583357 39.5692080638539494
-67629 -100.17068932456138 39.7039490570175317
-24069 -79.6398090403201593 36.5954524057764132
-25432 -77.7860844764706201 39.2954457647058675
-55933 -92.7020497854784935 43.6552048580857956
-98354 -122.312620076082865 47.2508581991264407
-22312 -77.1519169271203253 38.8190039032571761
-51019 -95.6995573629788936 42.2479466165957973
-11976 -72.3499181124657156 40.925431401303328
-38259 -89.1778635011614114 36.1924888013937931
-47143 -85.7718226917023117 38.4717922746781014
-24829 -81.4535611250000073 37.4056662499999959
-29458 -79.4825822591092503 33.0981817190283749
-54401 -89.6765745251933595 44.9570067311626147
-56679 -93.3967209999999994 48.5835842000000042
-58248 -106.352940333333322 48.1383664166666563
-76357 -98.1926176308642198 34.0781844740740496
-62642 -89.7231111527702154 40.0773439671866996
-83715 -116.129006000000004 43.5485132499999992
-11794 -73.113610468750025 40.9058439062499914
-83707 -116.276173794871795 43.6748443589743616
-87582 -105.986823294805163 36.1531007350649247
-19903 -75.5490424999999988 38.6925290000000004
-85002 -112.105932999999993 33.4708560526315821
-23847 -77.5657521823728615 36.6761167517801283
-68635 -97.0097900771073682 41.0864694818218013
-26146 -81.0381532943592759 39.4577480328727219
-99206 -117.254154051189985 47.6380555112413049
-87733 -103.877369476868211 35.7773774163700793
-43950 -80.9077434510817994 40.0860655393824175
-07494 -94.8194952500000028 35.5873192500000002
-52157 -91.2260691103676606 43.0076915992719861
-31756 -83.9593175795986326 31.1856197405035935
-28615 -81.6564536777721628 36.4593194942315932
-80907 -104.819816410886986 38.8776046888148485
-17362 -76.8671626088218005 39.8545030576509376
-75440 -95.7459082014381551 32.8804716244954847
-13648 -75.3137115279076426 44.1560425255691555
-59759 -112.230536156543039 45.8556847876836784
-89319 -114.983062710526269 39.2824356894736795
-80109 -104.902294415619551 39.3827716675431887
-76467 -97.9401050909090856 32.3148571818181836
-74343 -94.8201793672024849 36.7403931186742128
-18035 -75.5408381911765048 40.750342874999987
-15202 -80.0686815733365336 40.5034757893890216
-37023 -87.7854578994413544 36.5810146867210264
-54621 -91.094046660714227 43.6586023928571336
-57794 -102.374666000000019 43.1459228750000037
-25701 -82.4283663573765466 38.3859082212583473
-51357 -95.273114073529328 43.05340530481282
-66054 -95.2027173141975567 39.1933033417972467
-67341 -95.4232315586035185 37.3475564064838039
-63690 -90.4684144999999944 37.8288409999999971
-16881 -78.3188024064827886 41.0184317525186373
-95373 -120.17140631147538 38.0777001475409662
-96124 -120.443570594724292 39.6492623752997559
-27102 -80.3794526666666798 36.0182289047619051
-04771 -67.9007546666666713 45.9735487499999991
-17764 -77.81285893422546 41.3642596216247895
-29614 -82.361779967948749 34.8729308076923274
-32306 -84.2943116344086008 30.4331908172042738
-08738 -74.0572119422719055 40.0219036294226669
-63539 -92.7631981543438826 39.9262574445471472
-15942 -78.8256299616747214 40.4052217268498737
-39576 -89.3826660801559711 30.2902168667676968
-14881 -76.3546888290155294 42.3987205751295448
-23518 -76.2166481054335634 36.9166702664770625
-31213 -83.6388979999999975 32.8394553333333334
-21607 -75.8535343938999773 39.1386789428942805
-87829 -108.553203946456662 34.3021345842519807
-23232 -77.4443522222222356 37.5598367777777824
-50086 -94.3897154999999941 40.6087559999999996
-00965 -66.1167537540160026 18.434446880522092
-47803 -87.3403083445545576 39.4666878145147351
-98350 -124.627721411764611 47.9036368235293963
-98826 -120.685500882406714 47.716050206856444
-98502 -122.979822302289818 47.0817049985591822
-32550 -86.3473542067300741 30.3844409542808336
-35741 -86.4828818464944504 34.7210590664205796
-78562 -97.932630800298071 26.2996104292101229
-17075 -77.8356488225806658 40.3924043064515956
-63042 -90.3718464635495167 38.7814589362620481
-68520 -96.5864536231431998 40.7937425895230774
-76093 -97.4096474222489093 32.2154243923444525
-53546 -88.9893600289714612 42.6793118367329072
-32551 -86.3569645000000037 30.3857103749999986
-68881 -99.3742599464285803 41.4117716250000072
-31632 -83.3606694448201182 30.9729934261399116
-22192 -77.3141982848940756 38.6827574844463271
-42356 -87.3251829999999956 37.692465999999996
-07041 -74.2993675494238772 40.7226298896300776
-74456 -95.9917663924050686 35.7078864556961761
-85082 -111.500437285714298 33.0905109999999993
-16136 -80.3266815654952211 40.835144760383379
-70032 -89.9973516266549325 29.959852748896683
-21817 -75.8366116815497406 37.9890389916829818
-61705 -88.9893175174774314 40.4559117412110183
-52756 -90.544646326578615 41.7231226422906971
-44305 -81.4647321359883989 41.076045547838909
-19152 -75.0459600050186282 40.0600962739037953
-46157 -86.509711226463935 39.5535603415614219
-66866 -97.1223642738397928 38.1674609841917842
-69042 -100.386169080645161 40.513931419354833
-56349 -95.5117854858446975 45.7328674178082366
-87551 -106.620268609022503 36.7043346785714419
-74457 -94.8456925483144886 36.0046695494381979
-98009 -122.186369499999998 47.6100819999999985
-13794 -76.0334954948453401 42.4018944639175288
-26431 -80.2929911301803401 39.3939502439709841
-08260 -74.8213354000880031 38.9872511855821315
-27892 -77.0792529800526154 35.8119361085033248
-73502 -98.3573361578947498 34.5786229999999932
-58072 -98.0060080299494842 46.9189912554780619
-67886 -101.449850249999997 38.0657107500000009
-07828 -74.7479069295299752 40.8741978125836667
-75739 -95.6249384285714257 31.6424584285714268
-75641 -94.5802300818182573 32.3797905772727361
-14619 -77.648202468873194 43.1357092253742778
-19606 -75.8588176801369656 40.329150496869552
-38963 -90.4151199705686395 34.0069487799330972
-83121 -110.54204050781253 41.8285468359374946
-94129 -122.464701455710923 37.7974402925408128
-89417 -118.478256500000001 40.177225
-55102 -93.1208876924827678 44.9349115880246757
-16901 -77.3129291678654909 41.7353942307849408
-83025 -110.796107196378784 43.5661730027855469
-85932 -109.21355540085753 33.9584438210075206
-61053 -89.9837400706633872 42.1154480632833028
-62329 -91.1738053870967491 40.5774369032258093
-94706 -122.295390366969329 37.8899815441271386
-16343 -79.7485746821306094 41.412052410652926
-84113 -111.834496396373027 40.7634083005181367
-67759 -100.829170500000004 37.3732200000000034
-71229 -91.8919565457305652 32.671219910226057
-58849 -103.185410627272674 48.2975395369697438
-29377 -82.096816789727086 34.9302947752809203
-89928 -110.621595159999984 34.4058653600000071
-64846 -94.3046046666666626 36.545498000000002
-43973 -81.2773837984816794 40.1860759006183272
-29620 -82.4190581839596206 34.1979415337462171
-22534 -77.6620154307035051 38.0812811230277575
-42355 -86.9782106093007457 37.8563503924763438
-68061 -96.2258013087566013 41.7875961713420239
-13843 -75.371858964211583 42.5223802730656857
-97504 -122.828509873206059 42.3350763424108436
-99320 -119.477436797132967 46.2721514578037443
-61773 -88.3852189762570504 40.5493451885474556
-97540 -122.793909057477777 42.2317513593749396
-15225 -80.128524647311707 40.5112513032257979
-90670 -118.068684525576884 33.9360185287164668
-23893 -77.9338442575934209 36.6205690689252492
-14869 -76.7746325758985222 42.3600344452432012
-41006 -84.3501707523679585 38.7901041416928649
-40894 -83.021398099999999 36.8854898999999961
-08028 -75.1176447735109321 39.7064219898565085
-70855 -90.8555340000000058 30.4917267999999986
-61769 -88.3966877774939377 40.8862633229812715
-32788 -81.6968546666666526 28.8047793333333324
-34563 -82.7029289999999975 28.2267980000000023
-21624 -76.2736002658228358 38.8371255443038024
-41713 -83.276314180412399 37.2199927938143986
-11942 -72.5805757812282764 40.8506170386473073
-05903 -71.5756876489397769 44.9589859512367056
-45003 -84.7935571249999782 39.582708714000006
-49801 -88.0646500897268254 45.8238349711311486
-89074 -115.084916351801127 36.0379335411957769
-04075 -70.5671208620689754 43.7982465172413811
-62012 -90.1482395580967761 39.0355977977333595
-22749 -78.1732660278021285 38.6260305981755323
-56167 -95.4320862545994544 43.5467176480711231
-71730 -92.6452485048577614 33.2076976490920686
-45810 -83.8236474600820571 40.7713296640055134
-29049 -80.4497643333333343 33.4678606666666667
-80449 -105.806744319225601 38.968448907758976
-24758 -81.6239453859649018 36.6732892631578977
-99832 -136.226920116504829 57.9591905533980452
-03256 -71.6303358634519469 43.6306531144669663
-65348 -92.9944677988666655 38.7098007116776941
-59701 -112.521071730687723 45.9932610652172897
-15629 -79.5633897254901399 40.5977674191176661
-57465 -98.6307556463676178 45.1295401874999627
-07432 -74.1401077771276107 40.9956150909574006
-44309 -81.5142852500000004 41.087651000000001
-04667 -67.0885160343740949 44.9779119175021336
-25132 -81.3490758195488866 38.2620451578947396
-67576 -98.7707950955632583 38.0229735051194169
-40903 -83.8344702577065135 36.828783700369975
-14731 -78.6601950305811215 42.2931305151729333
-30815 -82.0800288759369181 33.3301909382725157
-90247 -118.297411019234204 33.8907071344583528
-55409 -93.2836598006465465 44.9264546821120518
-03574 -71.6832194524432822 44.2866327990465223
-18018 -75.3940919556107616 40.6275865167650494
-19134 -75.1114721907650846 39.991909083259209
-95570 -124.121783843448767 41.0815515549833989
-30813 -82.2084354403259141 33.4706980690584075
-46147 -86.6196653402413546 39.9649676549645889
-93445 -120.610892090629051 35.1014675332159456
-40734 -83.9767289247729138 36.935024021188795
-12822 -73.8613302362677899 43.2498848153874746
-22513 -76.4833213823529405 37.7272925588235282
-31006 -84.2503070428237066 32.5775486480428071
-14802 -77.7916571289682253 42.2522127698412646
-29801 -81.7088323076951042 33.5786715996816127
-55784 -93.2150238124341257 47.0519517608008115
-95318 -119.832556375581376 37.6613951418604529
-52803 -90.5592036037016754 41.5385110467798526
-87868 -118.82348537499999 45.4892664999999994
-21914 -75.9776113663550774 39.5736738579439162
-38627 -89.2142067345908032 34.420735360053925
-35124 -86.7865402481170918 33.3112933719779107
-98801 -120.334532444327706 47.4253454136466175
-19968 -75.2860286125066267 38.7719507894971258
-14730 -78.9500374782608816 42.1743561304347736
-63102 -90.1885510913460706 38.6335380716783661
-91307 -118.653625629395378 34.2003759678792818
-46988 -86.2359674701491201 40.8716335170574965
-67042 -96.8468497486288697 37.8219759373376831
-29625 -82.7385490142180515 34.5426541137861278
-37066 -86.4586948279254699 36.3871866409049574
-47111 -85.6535869336150597 38.4554656616481907
-64500 -94.8248695000000055 38.9848915000000034
-59258 -104.718729129161048 48.5821007896138326
-32507 -87.3377283420950903 30.3606379277888401
-74868 -96.656606591436983 35.2421259616669857
-16431 -79.5216034230769111 41.5884504615384643
-74653 -97.3104844438962999 36.6767268129869635
-06758 -73.2416960147058234 41.6809017242647002
-62204 -90.102297522166154 38.6314215041165241
-08054 -74.9009298052794037 39.9463644477784854
-01450 -71.5582819664359988 42.6117336665779192
-63940 -90.2246514906109809 36.7661704095381481
-78666 -97.964056379752904 29.8829684277557028
-93650 -119.804275131857523 36.8406854687199399
-37076 -86.594015377273692 36.180269270847738
-24211 -81.9567475899718545 36.6558572175244208
-97739 -121.529602333372992 43.6832695794424026
-53549 -88.8086974584040405 43.00360769468017
-06241 -71.8562418465892279 41.8565890221085297
-30285 -84.2507532306866977 32.9837614581545182
-72186 -91.8252436875000058 34.8265323124999995
-98807 -120.134852153846154 47.7609256923077012
-35210 -86.6814293133539024 33.5347483634462407
-97217 -122.685517110557029 45.575228657054474
-94065 -122.245982878910198 37.5352474255802875
-47635 -87.0958296451942289 37.888977373415166
-45324 -84.012642885060032 39.8065642238238908
-36279 -85.8882133759852167 33.8686836063977452
-41470 -83.1901143333333266 37.8232163333333276
-34047 -86.87834035294118 35.3878687647058783
-10121 -73.9918795000000102 40.7494434999999982
-66226 -94.8542976173212793 39.0287001545282379
-75243 -96.7336570715456787 32.9054802917803784
-35614 -87.0906878656718675 34.862047508156742
-45335 -83.747125732476718 39.6352147373272672
-95012 -121.73759094986174 36.7807067027241033
-33902 -81.998251499999995 26.5163771666666683
-70043 -89.9633096739025433 29.9469221778563721
-61374 -89.3554528495934477 41.5476144756097412
-01913 -70.9386188486375318 42.853680054359387
-80534 -104.940427975402471 40.3436812510198024
-49948 -89.0342346790125987 46.7366967658178751
-05842 -72.2476343127559915 44.5731354529330801
-72950 -93.9448367057277522 34.8016446952181155
-60056 -87.9336780425038711 42.0676246901133268
-43725 -81.5955518277906009 40.0337569266564444
-87144 -106.651565839209738 35.3082355529501726
-43350 -82.6992235400000055 40.3947885200000059
-12092 -74.3818667787465841 42.7012127989100847
-30187 -84.8455085760796521 33.6647096616830623
-08019 -74.539340087512258 39.7974179406751674
-85131 -111.595927991203837 32.7483756821957996
-48054 -82.5173964949237728 42.7727219479694512
-98330 -122.178622881503003 46.757738202312126
-79235 -101.325592561947872 33.9716208230944048
-61949 -87.8627814198473089 39.6451792213740575
-72016 -92.6258807562626174 34.981496677485417
-03443 -72.4702046638477668 42.8872181363636145
-10501 -73.7612322867925201 41.2960342877358002
-11204 -73.9851525621422041 40.6191282740509152
-11364 -73.7506975000000011 40.7495880000000028
-55395 -94.0581080522818525 44.9593494900309096
-12160 -74.36236740297457 42.7570171770538181
-78230 -98.5519891274994819 29.5455151544391157
-95974 -121.763395545918314 39.493422581632629
-32858 -80.4544165000000078 27.7578241000000006
-49325 -85.3131544623468159 42.7622841406887417
-76703 -97.2914701111111242 31.609617888888895
-24361 -81.848467556854402 36.762795219358857
-72833 -93.474856478422609 35.0296998989881203
-88118 -103.663655105283084 34.230185051301639
-18250 -75.8607534812981896 40.8233913987899655
-68009 -96.0939798571428554 41.5856441428571415
-78028 -99.1593809178788774 30.0437942623500014
-44420 -80.6879204219139012 41.164469037531191
-66209 -94.6354412740995343 38.8991547262901349
-99203 -117.404129021942296 47.6300360759188735
-98621 -123.594105522627842 46.3531760043796126
-30426 -81.6794388736420274 33.03879074647881
-97315 -123.958353333333321 45.2058013333333335
-33923 -81.8119549999999975 26.3589899999999986
-72076 -92.1377289748938892 34.8955398284848997
-48049 -82.5700375320436422 43.0232792252116027
-18640 -75.7761760282050716 41.3147879065180987
-79342 -102.39337131555564 32.9116457133333356
-82936 -110.178892588888829 41.0515804222222371
-13046 -75.9549030000000158 44.3210832857142876
-33367 -88.589433800000009 35.1026615999999976
-46222 -86.2146727601973168 39.794713926398245
-20602 -76.9042527559512763 38.5953153872333701
-57032 -96.6841464606770131 43.4343336873629227
-32696 -82.4866567659274068 29.3894993119532053
-54909 -89.3580957276883225 44.3007773312485327
-78118 -97.9127001821212133 28.8883929891643909
-76533 -97.302519999999987 31.0206291249999992
-77316 -95.6514665253303775 30.3223766894179221
-73077 -97.2772113535669263 36.2852864694521173
-35622 -86.8944602027105617 34.3377729582105076
-15232 -79.9315994310850471 40.4531586719731777
-76064 -97.0264159136422819 32.3059777578222622
-74115 -95.9119602345289621 36.1793785745195606
-09702 -81.4595021874999929 35.1181454999999971
-53518 -90.6005090243668008 43.2535371661876411
-93435 -121.013042020379572 35.490672047786326
-78676 -98.1279186394676799 30.0214891695298256
-90706 -118.127735675291774 33.8879712179374764
-83105 -119.749486000000005 34.432189000000001
-89115 -115.0755994821006 36.2227572069641965
-98837 -119.289262117177245 47.1401516104018157
-61611 -89.5357236480686396 40.6911744463990814
-56566 -95.629938001831448 47.2520137271062097
-67513 -99.5500079243697513 38.46294835294119
-29177 -81.2695213580247042 34.1464436419753099
-15902 -78.8921459582537636 40.3113226874489214
-79370 -100.910817978005767 33.4784728597263666
-25126 -81.3699247922077973 38.1976562597402491
-83118 -110.994389707879691 43.0499431188506776
-35213 -86.74517232032251 33.5068185649999535
-44697 -81.4182383474903588 40.6129461312741569
-76247 -97.3171181683733835 33.0895956561085427
-66782 -94.9259544982578802 37.2843354703832759
-00782 -66.2205144343434569 18.2223286296296436
-55391 -93.5230623394697318 44.9594237406315287
-68164 -96.1088488478381038 41.2968444302179165
-22657 -78.3553235330013962 38.9962638861295403
-33543 -82.305800487096036 28.2011406535567595
-76557 -97.3996750395407531 31.2708879860368967
-22835 -78.4636252415362634 38.6649531420833483
-14435 -77.6748091372017058 42.7226294948482277
-11412 -73.7606221500000174 40.6976012500000053
-74559 -95.0620264285714143 34.9911514285714347
-07522 -74.1783689027679571 40.9254990198721984
-06704 -73.031761722343262 41.5792403759605307
-62363 -90.7886428902622242 39.6011048956888487
-69340 -102.297962131443484 42.0143831675257928
-32656 -81.986302952466346 29.7970213645546878
-04349 -70.0625501566860009 44.4425316857270616
-06663 -71.9123416666666628 41.8415646666666703
-68732 -96.983089785507218 42.4539321101449048
-03244 -71.9200644391067669 43.1238287866787431
-56232 -96.049078506486282 44.9289583689190195
-81133 -105.25478142632781 37.4690561161005107
-60188 -88.1434527480636802 41.9234007458216453
-41139 -82.7255221296834975 38.5142509131136421
-87415 -108.086893473492779 36.803022092515576
-42692 -85.0889658749999711 37.0114920624999897
-81155 -106.058528434612327 38.2626121550509239
-95230 -120.842890579956418 37.9846371773420373
-78044 -99.3532050377358473 27.576389867924533
-24844 -81.7786121111111015 37.5059698758170157
-48509 -83.6013620380064566 43.0266850638221712
-07729 -74.2907187499999964 40.2497277499999981
-67732 -101.375055314285717 39.3970365428571014
-56136 -96.4243843548384945 44.5016570491935397
-56478 -94.8816288214285635 46.635152749999996
-26731 -79.0755933910256488 39.1483274615384431
-68726 -98.1974092971576624 42.1781745090439273
-67664 -99.5625713615819308 39.8289733220338746
-38921 -90.0868274292806461 33.9938777500458755
-86034 -110.163450341463431 35.7782986097560922
-94970 -122.651810098617489 37.9065326718893729
-54519 -89.2773294225704319 46.0534178886797179
-93711 -119.833136785667904 36.8319568253414857
-70125 -90.1043009434336568 29.9517114507783795
-32798 -81.5804317027659351 28.721336606544611
-29018 -80.6489731784206612 33.3459349542474115
-74060 -96.2671593368421128 36.2515500789473677
-16351 -79.3976767264929606 41.6772973467211116
-20814 -77.1033027462842995 39.0025412705019079
-28629 -81.371082282178179 36.3398638382838399
-33602 -82.457062132796608 27.9546445278336684
-63121 -90.2985023104266702 38.7063418203783272
-38132 -89.9969709406475005 35.0694669982014062
-40410 -84.649841500000008 37.7136430000000047
-29469 -80.055760084795466 33.2415072587719251
-20301 -77.0179945624999931 38.8890293124999999
-43310 -83.7913232694515102 40.5143475462474356
-19801 -75.5486240199624604 39.738126916044699
-89131 -115.245449617723267 36.3009850512391949
-92226 -114.608580888888881 33.6606561111111162
-98684 -122.520684358963877 45.6308892573735889
-31033 -83.4325876665945572 33.0614267064559613
-71080 -93.139763662162153 32.5473290675675671
-93656 -119.892033179233053 36.4358071066415761
-50252 -93.3040074497926071 41.4543900721991889
-28325 -78.1020056021127402 35.1522120950704036
-71256 -92.710269318693463 32.962275138725218
-61877 -88.0737283605049583 40.0083523633755078
-69168 -102.009976897142963 40.771678514285739
-29841 -81.9463151674694785 33.5176162421147765
-97386 -122.731912739667678 44.3884803838133237
-36258 -85.6682416634524913 33.4464673287128349
-38844 -88.2555454884792141 33.8352432073732956
-46180 -86.6179646035312203 39.6051494133227351
-58323 -98.9291375041322851 48.8370569173553832
-43102 -82.7538914620624837 39.6279402467060322
-36269 -85.3795316288208141 33.7283160128435853
-81437 -107.682306000000011 38.0404877857142907
-50150 -92.9544794761230122 41.1243664962859299
-12741 -75.0791301221531597 41.8327706138715669
-71631 -92.263024369699167 33.5655113240423049
-54545 -89.8381305282669587 46.1301669800159075
-16436 -79.5091646728558601 41.8535495577931513
-06759 -73.1962970929294556 41.7519536362349157
-27031 -80.5592315000000099 36.4877079999999978
-29069 -80.0778412217415791 34.1873207395303496
-54106 -88.4497552590266451 44.4738185321821291
-87357 -108.461016711538505 34.9128541682692841
-47987 -87.2469064094162547 40.1156769721490321
-67730 -101.06549728560843 39.8195102937685661
-40262 -85.1640368333333413 36.6575947777777813
-96089 -122.454953516949161 40.7476502711864441
-87840 -107.064390099999997 32.6493450499999938
-95772 -121.046730392857171 38.9810935357142867
-80646 -104.696743461538446 40.4801993461538459
-06365 -72.0031856719400167 41.5186660557008409
-76055 -97.1520147732853872 32.1679603633572597
-33956 -82.0914839089477368 26.5341658295526486
-60004 -87.9785698863413899 42.1104716496471312
-31012 -83.1695328403226313 32.3936790576612523
-67739 -100.788209591623144 39.8944291727748706
-76502 -97.4117855885691739 31.0999354100125416
-97030 -122.430373545602478 45.5075637722417525
-84520 -110.412218095155751 39.5424194878893402
-32644 -82.8627667865168291 29.4671314269662936
-29645 -82.1312069651831962 34.5947958251480685
-98126 -122.374713136588966 47.5494265029746401
-98322 -122.586883999999998 47.3327446666666631
-47929 -86.9021492212644944 40.6753425874384149
-39566 -89.1618777000000335 30.4517387500000041
-03820 -70.88055455339655 43.1882335217445075
-04071 -70.4664056289365135 43.9162319477648211
-01612 -71.9241516039058979 42.3048916096644163
-66862 -96.5474196666665705 38.1578562235772267
-00605 -67.1541666428571205 18.4372922142857121
-40771 -84.0466714874532528 36.8686020106780106
-07723 -74.002827744360971 40.2495872729323025
-85861 -99.7322379999999953 46.3684310000000011
-95125 -121.89551416067205 37.2948750964900952
-72630 -92.9158147510162564 36.4550195741869842
-92561 -116.542206616392889 33.6174972135681926
-65461 -92.0302767906975561 37.6846408433292481
-32114 -81.0422512941265722 29.2019742609321113
-32080 -81.2774845644194386 29.8392405657087885
-05860 -72.1235630462608555 44.8027393199774551
-72315 -89.9165865936795541 35.9287816225559027
-64730 -94.3268982199064681 38.2588074658675978
-94610 -122.238536040831846 37.8121221139467565
-79776 -102.587882055555568 31.7325402777777725
-01905 -70.9748194599668381 42.4661992112141391
-52325 -91.9216819374099856 41.580128355395658
-92114 -117.053869921735412 32.7058774847359004
-39421 -89.7108701419037686 31.4799522070457201
-78879 -99.7421075483871533 29.6550825275142316
-67374 -95.9025745000000001 37.0963174999999978
-20877 -77.1838381132731826 39.1430116952451641
-59066 -108.534924033898236 45.4227536045197766
-79226 -100.917652045496325 34.9543180598473668
-68058 -96.248915426356632 41.0082027713178405
-70650 -92.9182313043478132 30.2343534906832367
-17813 -77.1763286591308884 40.7833522787000504
-57922 -96.7291474102564024 43.9222586410256426
-68407 -96.2695088825554279 40.9227039685504295
-11020 -73.7181956863116881 40.7730825451520147
-84039 -109.814496249833809 40.4403634717608114
-49785 -84.404597416666661 46.1807641666666697
-25573 -81.9434991833888233 38.2296144485049751
-72043 -91.2610803863636448 35.6498587499999857
-04481 -69.1148592535111845 45.2500711292135023
-28852 -88.1738282222222125 34.8125375555555507
-06821 -73.5090515999999923 41.470981000000009
-53211 -87.8852824899285281 43.0832686990760862
-19470 -75.735087111111099 40.1869160000000107
-85218 -111.431882707482998 33.3647295804988815
-12062 -73.5032051050813635 42.5280109652195861
-76486 -98.042132833407365 32.9935900550867274
-72623 -92.3286938878413679 36.4758018939679829
-47140 -86.3624591605779841 38.3791305743309437
-30163 -85.1300492307692309 34.2880613846153892
-55316 -93.3871685739238018 45.1673680853796782
-60804 -87.7615339908074645 41.8449602273474355
-67417 -97.5430897023136367 39.4367024238323651
-52219 -91.3946614236453456 42.201713586206921
-44251 -81.9279130880732822 41.0309252642201727
-92755 -98.5515738571428557 36.1330965714285739
-76882 -99.6785152233787528 31.8103323554843733
-50084 -94.0548988571428453 40.8481778571428578
-85535 -109.896615722222222 32.9714110555555493
-85022 -112.053087424967842 33.6275630428367052
-64853 -94.1872544999999946 36.876616999999996
-70086 -90.8653277412868619 30.0379786621983911
-48217 -83.1541407013963436 42.2754476052631816
-21028 -76.2454683268275772 39.5653324734021581
-26817 -78.3770856642857581 39.3532692571428697
-41653 -82.771390526075308 37.6575552570563872
-11510 -73.609434719548446 40.6546178850916533
-45342 -84.2597483237560709 39.6258253580901041
-90249 -118.317898075251705 33.8999795953894818
-84713 -112.629080426789798 38.2906950761930602
-91802 -118.126360500000004 34.0927824999999984
-71369 -91.8352498452174473 30.9682992993788311
-38068 -89.3285729846808749 35.2529936437861338
-19902 -75.4799309107142733 39.1239518928571428
-61880 -88.2505847561194798 39.9789221074627363
-50583 -94.9880180287646709 42.4247355979695158
-68327 -97.6119160028734996 40.0165705775862079
-48371 -83.2849366136766065 42.8272835200162731
-68642 -97.508701339750175 41.6972000691987574
-14112 -78.9646345151515163 42.7009971818181882
-55057 -93.1877774619787118 44.4538286161654455
-12057 -73.3469251022284396 42.9635062969359183
-61811 -87.6125268013778111 40.2932171067738523
-71365 -91.8381764117646924 30.8132039411764787
-01929 -70.7795395587135658 42.6312498151019312
-98669 -151.118677749999961 60.442113374999991
-56627 -93.8057099348216212 48.172248223214261
-60961 -88.2413473489692706 41.1051367963917187
-44236 -81.443220398543076 41.2484202527933732
-91352 -118.370134436839464 34.2252906111202364
-12085 -73.967458391304362 42.7016938260869594
-27050 -80.4051863593433609 36.2417016667229817
-91109 -118.154353999999998 34.1552590000000009
-58058 -97.001177535341796 46.1616648435689712
-36527 -87.881344619890541 30.6869728078441817
-02815 -71.6666872310923537 41.771236905462203
-26563 -80.2736204581497788 39.4818743083700525
-26726 -78.964955557453635 39.4290235299690082
-33935 -81.4393589383624175 26.7604846497089284
-67748 -100.855576124483022 39.1253265592327537
-75038 -96.9772811892119933 32.8693437388668528
-75438 -96.0728378397162999 33.6013230761229167
-98338 -122.291370919128397 47.0309038149387177
-29653 -82.2304869705149741 34.2963077702429047
-73853 -99.1725907128713118 36.2614494752475167
-37887 -84.5693343718996289 36.0876849707829805
-71861 -93.4523665503217416 33.1016823392820427
-02666 -70.0596548336485085 41.9946123745612496
-23435 -76.4679071204480323 36.8540065548824458
-35118 -87.0431821624433439 33.5396640523067546
-59487 -111.628676090040386 47.5743364159959867
-97409 -123.268988249999992 44.1283745000000067
-33455 -80.1527777936351811 27.0833687924808828
-29611 -82.4551493126931945 34.8359066131411197
-38361 -88.3073917719096357 35.3118525678106039
-78210 -98.4669373313212049 29.398067417572129
-79744 -101.903281214347501 30.9135287942955657
-96009 -121.155681209999926 41.1116623399999952
-21052 -76.4450779119170534 39.2058384611398978
-99747 -143.611706999999996 70.1263844935064924
-45004 -84.6089665199999956 39.5135428000000104
-98295 -122.220080429577379 48.977118653817648
-79543 -100.385997186862312 32.7286721798469458
-98443 -122.374172243885866 47.2066801117527248
-57109 -96.7459190000000007 43.5059235000000015
-23837 -77.0758182158526637 36.7399478734136267
-13484 -75.6555311208791323 42.8576540109889947
-19078 -75.3218533741195841 39.8790224466474612
-01436 -72.0742479691943316 42.603243742496069
-14719 -78.8726151963577991 42.3305804300087161
-15928 -78.9227315764971422 40.2368004889280471
-98010 -122.014346811775027 47.3195803473089001
-00681 -67.0811917142857084 18.2001125714285727
-56373 -94.2500347471714974 45.8507511011509266
-38134 -89.8651345428504129 35.1921428133366661
-94523 -122.077145693678091 37.9541465186645297
-33852 -81.3667953966031661 27.2873203990954138
-38569 -85.8601787031463601 36.1047414001368168
-63941 -91.1545372962962546 36.8956293838383971
-78931 -96.4424079740457785 30.0242618335877687
-06716 -72.9800603487952486 41.5996314343143965
-61855 -88.6564051369047235 39.915595035714297
-37710 -84.2567568675233076 36.1613221191587471
-03048 -71.7652553829277053 42.7474500604147494
-44650 -81.1739192666666725 40.8750461999999999
-50250 -94.3328586918852778 41.4850931683953661
-25942 -80.9954252715231888 38.03965133774836
-35406 -87.5037864845688489 33.289582880765856
-91284 -116.18063457142857 35.8552224285714303
-20603 -76.9651748939448339 38.6296924999647047
-65045 -92.6636577222222115 38.194342055555552
-08027 -75.2753299729849914 39.8220390234128132
-17102 -76.8903754244025492 40.2727664737657562
-02608 -79.861857333333333 39.5601398333333307
-50444 -93.3859910091464371 43.2827822205285315
-51330 -95.643919000000011 43.4141970000000015
-75566 -94.496120598290716 33.1587493344729225
-72332 -90.3079579398148695 35.1043620925925879
-44707 -81.3607516059591234 40.7760488437870094
-84637 -112.43880201941748 38.8096094352750782
-14837 -77.0044735345986169 42.4961521722580784
-30185 -84.9113751585989149 33.519877337194842
-77447 -95.8163416869877409 30.0985476051954848
-02893 -71.5175420331755447 41.6999039647735543
-84024 -111.339820000000003 41.0431825917431183
-07670 -73.9611900185701074 40.9207582704374602
-01376 -72.5560313855586827 42.5974180349681859
-94502 -122.245218552428611 37.737943123241152
-73457 -97.420078999999987 34.8103800000000021
-77428 -96.1857538780487857 28.7242666585365853
-76135 -97.4527666508138566 32.8257240807654327
-77848 -95.9875394000000028 30.0708978000000009
-68336 -96.6840271208609607 40.9621840579470629
-75411 -95.6170397187005676 33.854197367142163
-38571 -85.0458234619824367 36.0347289618540643
-72527 -91.6933418117258157 35.7238138926507176
-59547 -109.015035926470574 48.5833165882352773
-67838 -101.09157723337222 38.0029011656942686
-37347 -85.6127828203737522 35.064902567224209
-58078 -96.9025035261798848 46.8564986660817269
-73742 -97.9078181732366062 36.1034692427386474
-48468 -82.7704725139240622 43.9561009071729956
-13623 -75.7572018076922689 44.4430369423076854
-76633 -97.3120043759921032 31.6776236254509804
-27260 -79.9881478534347821 35.9550851815096095
-50517 -94.2306030045435392 43.2990051032630916
-25644 -81.9916936071428353 37.7098610892857167
-86352 -112.760677000000001 34.2157112499999982
-47683 -87.378406822784811 38.2782064556961927
-51517 -95.2521265000000028 41.5347945000000038
-85054 -111.962856205821183 33.6868624130284715
-30572 -84.0785100382880728 34.7320094083790352
-19454 -75.2415868101559653 40.224702391796967
-97868 -118.825977051459645 45.4625229923195207
-66857 -95.6241684319384433 38.0986007884003044
-55769 -93.2109709962113016 47.4577174887788189
-17953 -76.0844444350877751 40.7297832035087879
-75915 -94.4299625714285753 31.2382595714285749
-33921 -82.2647103961127186 26.762821676943652
-48218 -83.1353124722806029 42.2710524421052014
-14063 -79.3305042235528077 42.420849067682795
-65302 -93.1773365714285831 38.7000251428571431
-50706 -92.2652096923076783 42.4029753846153881
-65264 -91.6867962452575114 39.0903657862465295
-73491 -97.6565135147783963 34.4523935935960779
-19102 -75.165482649595674 39.952321495956852
-30535 -83.5809991592328885 34.5801054176859353
-97208 -122.679742500000003 45.5273639999999986
-99218 -117.415738772537622 47.7576595421670831
-14136 -79.1648135184806989 42.53147210164272
-60184 -88.251974400000023 41.9303702333333348
-78544 -98.0237841666666583 26.4959689999999988
-39174 -90.1588628800000151 32.3980870133333312
-76645 -97.1326250258033497 32.0129996694814807
-20233 -76.9272929999999917 38.8462689999999995
-13516 -76.7063168000000104 43.3143752999999947
-56636 -93.8297929455570738 47.3995893265222179
-17843 -76.9364571018518575 40.8170345833333457
-46530 -86.1414191516078489 41.7444373283294894
-10279 -74.0084012499999915 40.712368749999996
-17006 -77.5292655776264752 40.3086521302960747
-37996 -83.9310200769230903 35.9509592307692358
-18355 -75.3502225811517832 41.0760582446454521
-23805 -77.3880474700864767 37.1533793555069849
-90713 -118.111453603379687 33.8487959781741878
-62255 -89.7876019954475169 38.3029325007587715
-97523 -123.610967124412056 42.1342079692386164
-72539 -91.7179561856367371 36.3265400621993493
-37724 -83.6889388517541875 36.5400652597594657
-99166 -118.690595239329355 48.6877860695742015
-10169 -73.9765730000000019 40.7542740000000023
-81201 -106.057683381525024 38.5482825115546035
-98105 -122.296558090509308 47.6630635210624476
-96820 -157.922865000000002 21.3368690000000001
-63361 -91.5613819671382316 38.9525186656960614
-16633 -78.2336421571428531 40.1598689499999892
-24635 -81.347685258687207 37.3082978880308787
-49442 -86.1732824538399313 43.2345969946324544
-68822 -99.6391962422024733 41.393956184310106
-62895 -88.5820621818181451 38.3241651765224773
-26250 -79.9627134173763352 39.026224780037829
-28601 -81.3230810471215193 35.770296788937948
-66103 -94.6253944185082645 39.0598269714547328
-90045 -118.396203577009942 33.9636891750226795
-30330 -84.4304899493671002 33.706674531645568
-46076 -85.94293061008851 40.3635652862985239
-02916 -71.3554062819477792 41.84063158808938
-81235 -107.305615591304132 38.0226992434782218
-33541 -82.2171042047422986 28.2334878321598879
-64401 -94.7122215041440967 39.6363983443840695
-92239 -115.441705405184152 33.803986323328779
-12854 -73.3641645128205226 43.4759672051281854
-46865 -85.0188619999999986 41.2497104999999991
-04457 -68.4756507408063584 45.3736904344649261
-35954 -86.0811486353481001 34.0652713858046283
-67159 -98.3031267211328981 37.4413519346404726
-08859 -74.3036677112046533 40.4601682724343092
-12023 -74.1581947243397934 42.6028816848531164
-38375 -88.5870001686481032 35.1611138044753986
-38558 -84.8813455993916506 36.0036649993386675
-77406 -95.767342776636454 29.641402018270508
-30394 -84.420392333333325 33.664933166666664
-08551 -74.8477695769447422 40.4450312474914213
-40037 -85.4127320891000466 37.6536679167534487
-13953 -74.2679344999999955 44.8495615000000001
-77835 -96.5934907803015363 30.1801200115435151
-18086 -75.5462074152046767 40.7350551461988246
-05871 -71.9471326244034515 44.6777390726170367
-26847 -79.1285594267017842 38.981227232329843
-55419 -93.2880079861802471 44.9059322200388351
-47136 -85.9647624152637633 38.2392648044222341
-46538 -85.7694613721961616 41.3184200893110258
-52236 -91.8676170601236919 41.7339957303271376
-43439 -83.0425959803921643 41.517925274509814
-26338 -80.6161506394247596 39.0748494128801056
-36116 -86.22805085786419 32.3112082690684161
-28136 -81.6413272295081924 35.4308230819672048
-06070 -72.8218303347242966 41.8739812802586968
-45215 -84.4617997404895817 39.2318598078713308
-71027 -93.6956157983378688 32.2509260470914541
-83344 -114.101628882212808 42.4666230100142741
-41333 -83.7765315128205117 37.5554233076923083
-36853 -85.7914504801715765 32.7884004466522967
-95721 -120.07961159062981 38.8147154247312258
-19884 -75.5455010000000158 39.7463111249999983
-47352 -85.3656498629540437 39.7977144358353883
-68339 -96.8498562491888038 40.7392668306293757
-45152 -84.134772912471675 39.3495865263102473
-78160 -97.9458631819762502 29.2662419657707993
-20660 -76.6989645206185315 38.3776767268041255
-23872 -77.7258861141834956 36.9826653635280209
-48615 -84.4724818219043811 43.4287656906758528
-77474 -96.1924459290962801 29.7995963309398526
-91032 -83.5094563913043686 33.0238950869565286
-41754 -83.323590828710465 37.3047155002432547
-17224 -77.9067323627856894 39.960267354527879
-64656 -93.6977603921320537 39.6765561916243428
-77077 -95.611598762832017 29.7510403727066475
-25011 -81.8409930247524642 38.5089406732673254
-61838 -88.3436025000000029 39.4802575000000004
-61087 -89.9960678810211618 42.4838769193084218
-13429 -75.4602829999999898 43.4609766666666602
-23520 -81.5895319508196621 38.5549317868852413
-95225 -120.88639737098184 38.1991152780191356
-14733 -79.1843393344886124 42.1409981615251183
-28605 -81.6817931862106548 36.1433328304526498
-73116 -97.5569071340924125 35.5432184100843074
-99681 -165.25604766666666 60.5829153333333394
-12436 -74.0936631307012306 42.1993659428182468
-12846 -73.8201909686302713 43.3310422119205541
-22958 -78.8991500254968088 37.9056694616975491
-47303 -85.3759168700953666 40.2302411239693996
-77778 -89.5260492499999998 44.7149304999999941
-89503 -119.840859291996821 39.5391582798562666
-14876 -76.9306200441177026 42.430187235294099
-76950 -100.610877022445862 30.5507059754902315
-76904 -100.480721636149553 31.3819182178017932
-48626 -84.2209543798375933 43.4178380328455376
-03042 -71.0794758033213014 43.048557657039602
-23527 -79.5554565999999852 35.4645536000000021
-28540 -77.4785281033886406 34.7609782183809344
-21239 -76.5882576230068537 39.3629347759301638
-70734 -90.9927794333170255 30.2410806790424864
-80501 -105.111886457758743 40.1774241840552833
-47970 -87.1193269470450105 40.4690642357553116
-40108 -86.1517855398175527 37.9693197494441748
-29201 -81.0344102286080101 33.9997891833758175
-30260 -84.3271497099874381 33.585710375474072
-15532 -79.0680961522842836 39.7674203502538361
-68512 -96.6936263482672302 40.7439603540111719
-93267 -119.093871743578475 36.1431709497430518
-82721 -104.922433460845127 44.3951284718047816
-30092 -84.2327745341993221 33.9734108223183853
-30542 -83.9000939039246703 34.1717050290684412
-12792 -74.9363139047618603 41.5193562447397468
-73402 -97.0698014871795039 34.1686261025640974
-57262 -97.0995155025367325 45.66868900450946
-72007 -91.9813507622914699 34.9981137144789614
-99950 -132.827620556961989 55.7596692278481072
-38877 -88.8993015454545343 33.9872001363636329
-88349 -105.807265518348601 32.7904943623853171
-47917 -87.4827619526902254 40.468002336734763
-13476 -75.5157572571756646 43.0838156946039845
-98730 -120.149133350000014 44.8482949500000032
-76689 -97.5168639563164561 31.6576909767122991
-61346 -89.7189633385826681 41.512175716535431
-63460 -92.1614901393442665 40.0110187049179942
-12405 -74.0813450537065137 42.3188352708018414
-70071 -90.6997719440745556 30.044949095872127
-26812 -78.8788695974094054 38.882373714928562
-62994 -89.338201790430162 37.9048791505934375
-50375 -93.2814910000000026 42.9060455000000047
-13051 -75.912512250000006 42.8800770000000071
-49126 -86.3733191696429259 42.0344703580357049
-97335 -122.894021848484854 44.6346766363636291
-15710 -78.8702725736434047 40.6421873875969126
-29926 -80.7373030477300659 32.2279848853884872
-76667 -96.482731607401135 31.6569856120066362
-97413 -122.183786426792153 44.1730499814438531
-53802 -90.8871070000000003 42.795478928571427
-99866 -150.113381249999975 61.707382250000002
-72004 -91.7902475697288622 34.2764112349636818
-48840 -84.3907710306688017 42.7572373040061464
-26678 -80.9080992396953462 38.1664189077060882
-42285 -86.2859014979757575 37.2599241950067324
-55413 -93.2484744053355854 44.9985075854020948
-12927 -74.8504017927928089 44.221528401544397
-26254 -79.6006585619469149 38.9361472920353933
-97702 -121.301540198316829 44.0181838495673361
-32949 -80.5431226793796355 27.9226285440067095
-62670 -89.8769462020440102 39.7448934067682558
-21801 -75.6312600545915217 38.3708434372870428
-08741 -74.1669780047581781 39.9352392743854523
-14208 -78.8512573819590727 42.9152140443974801
-75901 -94.6716955306662271 31.3198790262233615
-50262 -93.7957181229508166 40.8570873213114965
-63139 -90.2958977748553195 38.6096246751443886
-65259 -92.5520307940401779 39.4381022286055938
-44319 -81.5306899215791105 40.9866617594289835
-46052 -86.4620873407114203 40.0440486362052255
-49863 -87.5532235000000014 45.6114409999999992
-43440 -82.7680193835985705 41.5275784752626009
-74350 -95.0495356498316681 36.4689961060605725
-17065 -77.1947672839015411 40.1173946447264171
-57365 -99.3938741218748874 43.8054571281250489
-24481 -78.9626670833333293 38.3238912499999955
-36035 -86.1255474831007319 31.7808316381252354
-80733 -103.4849674297635 40.352382191933188
-49964 -88.6301311369047653 46.081791821428574
-12187 -74.4627699105304828 42.6230796991291001
-80228 -105.147079978902454 39.6869844122670727
-75945 -94.0295260000000042 31.9697979000000032
-68019 -96.3749104752661339 41.7796436696931295
-35972 -86.232145829548287 34.0014387781258449
-27938 -76.7296292549635695 36.4040202197840799
-54933 -88.7070834765625449 44.6662706093750117
-83123 -110.227834012574391 42.2500251323627083
-79911 -106.555613615257087 31.8842542620232017
-36910 -88.1799754915966361 32.2345305924369754
-39630 -90.8454944834121818 31.4617391872037793
-27565 -78.6372490573256897 36.3583938348857885
-58032 -97.647655427165347 46.0787771374015591
-17814 -76.3796422653931444 41.2340174322427799
-77043 -95.5605549609794878 29.8060503557766019
-98953 -120.262752518518525 46.4183947480462464
-85207 -111.642454635485663 33.4502370682395735
-42061 -88.7752511071428501 36.8852654642857161
-38470 -89.5791526000000147 30.8464466000000002
-37180 -86.5757686868263221 35.6169464009980246
-38567 -85.9153729849369228 36.1380676537900456
-73150 -97.3307884145254434 35.4070070683797269
-00674 -66.4872051128114947 18.4273481062527438
-35765 -85.8044806565568194 34.6861068042262772
-52952 -89.4257806666666539 37.4915606666666648
-02641 -70.1536396220779039 41.7494354961038638
-39361 -88.6249684902788317 32.980474574387145
-01237 -73.2491367978415724 42.5440635908873048
-78055 -99.3024583562501419 29.8355840073864158
-58368 -100.012290907980613 48.277855764924297
-37322 -84.8156679552006239 35.4954527942232403
-81325 -108.952166199161468 37.9260672641509515
-47831 -87.5222636999999963 39.6672433000000026
-21577 -78.9080446666666688 39.5213237500000005
-16746 -78.1414028818067123 41.7913422612917316
-76534 -97.3851193444284746 30.886753181775326
-61018 -89.5453090778559186 42.4077998008934003
-63060 -90.86409254059609 38.2635268737923511
-84740 -112.224606462184823 38.2382356134453758
-30464 -82.2485112847221984 32.4445315833333225
-76842 -99.0992723210884492 30.902658502040822
-06482 -73.2489158120849879 41.4097361395113595
-38874 -89.2369978333333336 34.253405454545458
-77632 -93.8080275652193905 30.1970216612764304
-00977 -66.0165947999999929 18.353758533333334
-92315 -116.893652528264568 34.2413352217155875
-95111 -121.822657604848828 37.2806229703158252
-67345 -96.1873997755775605 37.3762150594059435
-33401 -80.0652527259192368 26.7148594382352513
-66834 -96.4555830884977041 38.8517020682002538
-33947 -82.2703211386762092 26.8978147486610801
-87537 -106.132365322334991 36.0882396015228082
-10916 -74.245263676955247 41.4402707760501556
-06096 -72.6471152471951456 41.9275342301794893
-51029 -95.545431890745391 42.87428674293065
-88020 -108.846701250660942 31.9735317352422506
-92679 -117.582579113384696 33.62263147193039
-15095 -80.1167913333333246 40.6739326666666656
-79785 -103.789960518518484 31.3139739259259144
-33974 -81.6079424012170307 26.5637077090829621
-33858 -81.5833501388888607 28.0752963750000077
-49418 -85.7624581194631901 42.8826699567085896
-18222 -75.9907980469875923 41.0315447537122893
-79357 -101.400923955789381 33.6590493957895376
-19355 -75.532891686742559 40.0476018653878185
-17964 -76.5079051600553868 40.7114030620386629
-90602 -118.031231570520418 33.9688356785714234
-07024 -73.9761132605762981 40.8471604141630635
-99116 -118.958731617486336 47.9982573200624287
-68324 -96.2866365246752025 40.5547418519481155
-15663 -79.6777198269230951 40.2483207980768967
-25963 -80.8026891666666529 37.3989896666666652
-98501 -122.870388911559175 46.9983738480893791
-24941 -80.3585059449648611 37.5737610550351562
-17548 -76.8829216666666468 42.2694803666666772
-21034 -76.2244649769037039 39.6481805873097102
-13076 -76.1473327069073918 43.3533879707529977
-08327 -74.9820366551180797 39.2556669590551266
-13373 -75.4635380526315771 43.6750091052631504
-99702 -147.078898179604209 64.6822376012176932
-07524 -74.1559152115170832 40.9314497552602248
-71438 -92.8020808241757038 31.1253029413919684
-64022 -93.6854522078430847 39.1973275411764774
-92368 -117.333007601941787 34.6577453503587591
-30160 -84.6104636000000028 33.841740999999999
-03756 -72.2905336666666614 43.704813333333334
-45873 -84.3975340893932895 41.118866857936645
-62815 -87.9929450189274007 38.4582535031545447
-90261 -118.378620666666663 33.8956586666666695
-39338 -89.2200078243777881 32.0902205861474528
-60153 -87.8452578978442347 41.8784624064123392
-55785 -93.7241914805800889 46.9468845939927633
-43963 -80.7021245253456954 40.17260400276502
-95671 -121.162075833333319 38.6894032222222251
-62649 -90.0654610584457203 39.3605811997431942
-03307 -71.4562832220836839 43.3107374902663267
-75237 -96.8725468336541837 32.665801956103202
-23436 -76.5057596151173982 36.8972474257167704
-79036 -101.584758871345031 35.6432199392927131
-84247 -111.724577000000011 33.0708224999999985
-91935 -116.816449616780275 32.7180654493174785
-49236 -83.9531505574628625 42.0766968279851596
-35464 -88.1580179557007284 32.8007235664488093
-58653 -103.149878813121077 46.0640786361829058
-17062 -77.1639292691377818 40.5509896777694934
-31052 -83.821921539433859 32.7825500607317295
-71109 -93.8046705752960293 32.4736296623016969
-55044 -93.2642829407077159 44.6739911564279595
-44428 -80.5820863657298645 41.4424084303229137
-32509 -87.3404437678571242 30.4634371785714322
-28097 -80.3995833659800212 35.2874396565617445
-71414 -93.02310804237284 31.8166951355932213
-95445 -123.547305927193506 38.8177257332663999
-68422 -96.6956967037269237 40.3852836445349013
-83617 -116.523168342311081 43.8899198475785823
-50005 -93.0171182066828948 42.1216782937293317
-43467 -83.489833794117672 41.2429900882352953
-45105 -83.612746882352937 38.7508253529411704
-23250 -77.33267823129259 37.5055436394558015
-36879 -85.547579978950381 32.7328805342054139
-01063 -72.6398075084745614 42.3194686779660927
-38104 -90.0049101341395499 35.1331391797690031
-99830 -133.938805176470538 56.9740192020460583
-59086 -110.611818558114834 46.0213954064646558
-29349 -82.067087075391882 35.0670117603443288
-71845 -93.5984802469557167 33.3432569352167221
-56312 -94.9547461463741627 45.4643245923939148
-83641 -116.580705477145742 43.3784831229011871
-10962 -73.9614019827720739 41.0451490477680991
-95963 -122.211620089061583 39.7476553130552048
-38556 -84.923659468428994 36.4117822685839272
-62289 -89.754561786363638 38.5953313500000235
-75447 -96.1221757627325246 33.7513241988245625
-85240 -111.537396086003397 33.2377008617200786
-23441 -75.6947547749999785 37.7090107249999988
-36556 -87.9788297339449201 31.2025868636959309
-61379 -89.5967706080586908 41.3763145238095333
-49664 -85.8958247969723487 44.8769463529014985
-81136 -105.890793736929524 37.7313293858921099
-51440 -94.8115549085587901 41.9133355179224978
-64470 -95.231151748130543 40.1554360081576363
-37050 -87.6365424542240277 36.3714505521385689
-72379 -91.0230672731277508 34.0413138678413958
-89512 -119.80065269247018 39.5527193004233837
-44087 -81.4503157005830047 41.3291787191209679
-91789 -117.858775136126653 34.0185655160148244
-62973 -89.0827952812500001 37.310816468750005
-40036 -84.9778033008848297 38.4451417262536879
-70426 -89.871334019105916 30.9303810528084711
-94607 -122.284762559656031 37.8063336919485664
-15863 -78.8378707268907277 41.013827130252082
-92154 -117.050685603652738 32.573802369582971
-70047 -90.3764337183303041 29.9684893858439381
-76955 -100.142233572413758 31.3017638689655371
-70763 -90.7359831339490341 30.0382793279445153
-12861 -73.423578138431111 43.7470082762933643
-74538 -96.214963831030758 34.5464368623804319
-15337 -80.3712437672995748 39.9470572379013547
-71301 -92.4623091749317041 31.2904302129652407
-60526 -87.8708554162116542 41.8304883621724102
-32099 -81.7676686666666654 30.3371930000000027
-67545 -98.6483485390335062 38.149378460966517
-49630 -86.0014093710952636 44.8193743461057466
-06754 -73.3664492860303739 41.7736390740741967
-41426 -83.0127619047619021 37.7798203333333333
-87032 -106.048661468697134 34.8573151099830412
-62048 -90.0955366270447371 38.827289631406785
-72435 -90.5677235020821598 36.3274470660321285
-89506 -119.851611454087731 39.6324588747829765
-46784 -85.3849201561149584 41.4939986165468397
-97147 -123.89489786059724 45.6129827681365398
-99678 -160.419849592592612 59.0548393703703738
-94621 -122.191025548021742 37.753649458108903
-30182 -85.2489952701092761 33.6576046323734985
-75651 -94.5395799028779749 32.6752187190647234
-98408 -122.446341118569876 47.2007328575102818
-36455 -86.353001040441157 31.0128934558823701
-55101 -93.0863050120274664 44.9598330481098927
-44278 -81.4261834751589362 41.0993854885801824
-26161 -81.2470538983050119 39.176571999999986
-42602 -85.1408622305478673 36.71699692265274
-92805 -117.907274672157911 33.8333639679148988
-12122 -74.3060129873226742 42.5410832669799248
-17122 -76.8712884999999915 40.2497806249999996
-64118 -94.572103977031702 39.2141255628863377
-37931 -84.1140838175340662 35.9736593422207065
-50223 -94.0192905619468036 42.1667436539823157
-25088 -81.2192589831528124 38.3766216979542136
-96732 -156.47430737784714 20.8803345664428051
-37174 -86.9035393092938762 35.7292925757831625
-77014 -95.4664106160661419 29.9783775307025131
-99507 -149.797583475985249 61.1464723405113943
-76525 -98.1387636313537683 31.4758109514342088
-95116 -121.851652381911563 37.3510722671810456
-61420 -90.8673332958789643 40.551680312004045
-48386 -83.4700364550490121 42.6425860945946411
-74431 -95.9441587166246137 35.4582417821158629
-70234 -90.3181747777777844 29.4772648888888895
-24432 -79.4192219437634606 38.1718272840663744
-33708 -82.795961943728301 27.8126411890729166
-57779 -103.751233854460239 44.5575934307512824
-04239 -70.2112515045137684 44.5276023606892792
-50171 -92.5302327223844117 41.590984048768405
-40965 -83.7159777836976531 36.6218830207650754
-26762 -112.611752250000009 37.4798837499999991
-70052 -90.6931863746439006 30.0550626965811816
-75903 -94.7148950857142751 31.4265633428571434
-22651 -69.9787319999999937 41.8616811999999996
-29212 -81.188288161896935 34.0785609827735243
-95053 -121.933772166666685 37.3458873333333372
-53215 -87.9445919468135457 42.998998799747767
-42025 -88.339774688342743 36.8622781301660751
-68973 -98.5634692905230878 40.4576032897914359
-58544 -100.314397839641387 46.5016225806772994
-80128 -105.081418846023908 39.5781181900958003
-25175 -81.30856552380952 38.0623670000000089
-20369 -82.0101105999999902 34.8844150000000042
-34445 -82.4314978441558281 28.9679304545454421
-65546 -91.2638520625000069 37.8235761875000023
-85027 -112.105921049416793 33.7043339937775457
-70091 -89.3631145374280038 29.2742993339731044
-67645 -99.8230978215223388 39.6290454295712635
-75236 -96.9212050056347181 32.6866060745773765
-62837 -88.3683179447322544 38.3825634745250852
-45033 -84.7638358018868132 39.1767561603773586
-74066 -96.1248851372061779 35.9948951770111023
-17241 -77.4068514986225154 40.1862716703205294
-78726 -97.8354585926348221 30.4336450502426317
-12574 -73.9501277942028565 41.9171606521739193
-53932 -89.0416785877763886 43.3870909141742729
-90010 -118.309840711864453 34.0616437175141158
-42445 -87.8645616314031628 37.1211701804825864
-54011 -92.4821483430545612 44.7344080844206147
-12065 -73.7834916548390822 42.8521478312569783
-16051 -80.1444202976051656 40.9474952381051054
-94020 -122.25171673843461 37.2939163562365437
-05642 -69.9919393333333346 41.8449126666666658
-08831 -74.4332919239665785 40.3307764582481738
-32240 -83.4253780000000091 30.4603584999999981
-42041 -88.8447614090690223 36.5394411274706528
-94051 -110.386503062499983 40.3770184999999984
-64449 -94.9774985975310244 40.0387101074074039
-57244 -97.234014703703707 44.4146836296296357
-99326 -118.901285352963114 46.662991332836441
-15690 -79.5546398954536187 40.6288576194344415
-99736 -162.728810166666705 66.0772996333333253
-83352 -114.424465802750277 43.0081239591749593
-54929 -88.7578432338384431 44.6256822984848611
-12401 -74.0338172198412536 41.9337483181433157
-77568 -94.9786501887614065 29.3680134994064019
-12804 -73.6790879860369046 43.3346112750901611
-43750 -81.5050990000000155 39.9947997672413891
-30250 -84.3180493783784044 33.4351390945945894
-77493 -95.8160235958327036 29.8112891595589176
-30733 -85.0429262377704305 34.4151949869551643
-56060 -94.4271286333332114 43.9248753099999973
-29342 -81.6320039999999949 34.900580000000005
-05360 -72.8847421423317456 43.0380188013975911
-43558 -83.896095858550197 41.5826925229683582
-46351 -83.5039330000000035 38.1016095833333353
-95858 -119.78485114285715 37.7580803428571485
-56726 -96.1938744084266943 48.7007662057423829
-47012 -85.0012345760637231 39.4078235957647323
-80249 -104.749588302168107 39.7876330529609064
-68874 -99.4265650307101225 41.6507062591170794
-07846 -74.8713205348837363 40.9679093023255803
-80216 -104.960417673097481 39.7826668213812482
-39826 -84.3547614717948733 31.8205620192308025
-97884 -118.210800428240745 44.479233265046318
-29812 -81.3638970590205304 33.2216116678451954
-95354 -120.973326999851778 37.6425447009804159
-06409 -72.4168330824175683 41.3465927513736347
-12503 -73.5855427570640757 42.035173277798151
-76621 -97.0945751290321937 31.8717203526881825
-76148 -97.2504392855280884 32.8676453780388869
-56146 -96.0951849722221993 43.5755489166666621
-84329 -113.376712496855347 41.8018250849056514
-66938 -97.4159756107560071 39.5509862300319242
-83403 -111.662643666666668 43.4476766666666663
-32323 -84.5947995217390911 29.8827146956521759
-52652 -91.4550035344827563 41.1365407241379373
-62023 -89.7844117857142834 39.1099373928571481
-71428 -93.0862344545454619 31.6118210681818148
-71075 -93.4635712173346604 32.9975202089469519
-98301 -114.85964366666667 39.2031456666666642
-45890 -83.4918210298825727 40.9706884866595473
-76035 -97.613914793400383 32.5569081323529659
-95008 -121.95709140594731 37.2798951725450394
-41553 -82.1603487600253004 37.4887393660954658
-27846 -76.8865693581384448 35.7832680085239048
-55077 -93.0798806678077142 44.8207256535878287
-03887 -71.061836661953393 43.4777385958566143
-61016 -88.9652178780432621 42.2221979793813276
-07621 -73.9996532205056212 40.9238060158940655
-95051 -121.983637131890617 37.3473774447536897
-32124 -81.1164590814087632 29.1792216613741004
-31715 -84.5134508333333372 30.7394590000000001
-14555 -76.9861703870715672 43.2617194735202588
-62962 -89.3522325532995012 37.1004230253807279
-98030 -122.191570617798021 47.3693112245829653
-70037 -90.0068694503817568 29.8279259689071878
-62281 -89.8013064383075488 38.7136232076873412
-18302 -75.1223679707540697 41.0863409699117881
-36612 -88.1142018231779929 30.7555293572281769
-17106 -76.8773946666666603 40.2990754999999936
-38661 -89.5608880010631765 34.8936535720361576
-13461 -75.5980032321950546 43.0708409502438698
-15061 -80.2937400789210471 40.668124188460105
-94938 -122.704595717929564 38.0175333458364406
-85533 -109.281905359544453 33.0846382689635874
-63386 -90.2333363128518613 38.8736777800187667
-40452 -84.9574950000000086 37.6011429259259202
-72115 -94.2603321578947515 36.4317142105263088
-39671 -89.2541635000000042 30.3938879999999969
-10964 -73.9187379816346066 41.0109753865931594
-26342 -80.8566091877025173 39.0200061866235473
-28026 -80.5784770000000066 35.4093509999999938
-71249 -91.6138436250000012 31.9492825000000025
-04224 -70.4170340486449078 44.5733294511916185
-80726 -102.816011957474274 40.8772745995488904
-54655 -90.7819480312185476 43.3791673155479103
-00685 -66.9871388779821615 18.3403522058622883
-95608 -121.329713280645962 38.6288539925396037
-86502 -109.515823870967722 35.4105913763440938
-93603 -118.995419316463 36.6224024857474788
-90017 -118.264519722457734 34.0529489682203419
-15688 -79.5894984499367553 40.1720065044359629
-66097 -95.2383902701039489 39.3222783705271581
-60141 -87.8384694893616853 41.8584557021276638
-55276 -91.2624524000000008 41.5841789999999989
-85712 -110.887237187494435 32.2521830091927342
-20403 -77.0091699999999975 38.8998854999999963
-38021 -89.168600797101405 35.8712152463768206
-70802 -91.1709719217778201 30.4474330068237151
-94548 -121.655395422680442 37.9741570309277989
-74753 -96.5364001818181805 33.9075791818181855
-97067 -121.964334606562588 45.3372111448458881
-21136 -76.8073447557879092 39.4733015363416371
-28524 -76.4598980257510448 34.7993143369098661
-88083 -94.7102480000000213 38.7807704999999956
-78022 -98.1029598971282013 28.312821760218764
-99833 -132.952443737796358 56.7980682278010534
-97213 -122.600841505245455 45.5370225357855034
-22969 -78.6918302858135377 37.7999737790332659
-65665 -90.6106606000000028 39.753226600000005
-48449 -83.9427262713607263 42.9850490197784794
-49601 -85.4770610039619072 44.2331012268943482
-47452 -86.4319289704133524 38.6460236195215856
-75214 -96.7466163293095889 32.8284903937695276
-46311 -87.5096090352065801 41.4856542066145622
-79255 -101.044762671521113 34.3450186634304302
-84942 -108.786693999999997 41.6805595000000011
-81402 -108.374854428571439 38.2494342857142868
-00768 -66.8562884285714176 18.0306387142857218
-05466 -72.9236911037736206 44.3827464905660278
-30080 -84.5025381368453168 33.872074006405029
-36088 -85.7166988894110631 32.4160866866642081
-81036 -102.750810698832296 38.4471312980664379
-62474 -87.9955602455465566 39.4508588815599239
-29562 -79.0711341578947469 33.8964966842105326
-84027 -110.821414112771109 40.2030772106024088
-24325 -80.5980946463801757 36.806352122273168
-48375 -83.46121670837843 42.4627765986542514
-47167 -86.0861273741753195 38.6058457812010829
-91350 -118.491772671683833 34.4444014684985049
-73461 -96.4320702934909946 34.3606949597633147
-16140 -80.507238754385952 41.0962780526315967
-06243 -71.8080690717703334 41.8483025358851677
-62081 -90.2091387272727303 39.2616244545454549
-57767 -102.598309984433001 44.1592459992587223
-98303 -122.697488957386355 47.1601720790913177
-87197 -106.707591499999992 35.1163537500000018
-20695 -76.9800074275712092 38.5988231375638335
-38670 -90.2906895089946033 34.4444956317460651
-92084 -117.213440774181507 33.216117331382641
-47952 -87.2930004222313158 39.9728571628086442
-21835 -75.954913982716036 38.5416476641975478
-16849 -78.1260514609928833 40.9666350744680656
-36740 -87.8487428783876538 32.630180049339792
-60098 -88.439066154508339 42.318716939217687
-47567 -87.2991196175173911 38.4704107181328823
-14736 -79.7396128128897601 42.1221758711018737
-43740 -82.2165889539473511 39.9510859999999823
-26711 -78.4538187805542577 39.2905521679965446
-72366 -90.9310131311267469 34.5454032417259214
-07863 -74.9726003907561704 40.8127168004201266
-92126 -117.144069495910216 32.915292252014261
-02780 -71.1130372107098907 41.9064416511297111
-72727 -93.9410679026071875 35.9499010614101095
-63943 -90.8256520666666489 36.8523652461538447
-08213 -74.6021379999999965 39.5143752500000005
-46730 -85.1550928178873079 41.4575903132335952
-17954 -76.2608793783186059 40.6903302417034638
-02421 -71.2336602664776422 42.4372421223359595
-14481 -77.9094424175710145 42.7724885514211906
-63877 -89.8495935160391213 36.078557488981744
-01095 -72.4365459032654257 42.1273942868256412
-35405 -87.5267976881095109 33.1405559290842433
-80359 -104.750077818181808 39.7972448484848513
-14536 -78.0781717880968387 42.5420613943754233
-21866 -76.0237000860215204 37.9669880967741946
-97636 -120.537124175767957 42.6487220170648058
-93022 -119.295599198932663 34.403516836298941
-53405 -87.8243383212523128 42.7177082855024537
-41774 -83.1353970367944015 37.1593690871722586
-97258 -122.675573 45.5130105
-32907 -80.677824104059539 28.0154168367775931
-47368 -85.2015484910025123 40.1786899932518295
-04458 -68.5146623902439131 45.3903090975609729
-02554 -70.0961123743509518 41.2771868165452815
-20117 -77.7386763036646613 38.9948064870247251
-60629 -87.7106953456037957 41.7773886863100969
-17509 -76.0268094774693282 39.9186713631383441
-95713 -120.954962754088385 39.0800173426341573
-39178 -89.9312177999999847 33.5355091999999999
-48346 -83.4089291980741336 42.7221333931353016
-13138 -76.0217919069767447 42.895039662790694
-77580 -94.8620131829268871 29.8560512804877973
-21737 -77.0127206308838481 39.2592982451205543
-98108 -122.312039640886624 47.5466211696465351
-24598 -78.7805217353965475 36.6021191365771372
-71866 -94.3951311743026906 33.8751247373839064
-37868 -83.0809443076923202 36.0523974615384617
-40165 -85.6890308533378118 37.9983142697996072
-68790 -97.190795051282052 42.1622526849817021
-29933 -81.0381035357142707 32.9543227142857162
-31727 -83.3884581999999881 31.418564700000001
-95014 -122.049046290088455 37.3149712639018105
-37086 -86.5629499330083547 36.0156550717966013
-54727 -91.1652852520607553 44.9636369956459845
-83327 -114.791224233082829 43.3614114360902576
-04856 -69.1085721578551926 44.1753631513968443
-89179 -115.252654618689547 35.9922417142857682
-05346 -72.5252348352169207 43.0209309042895995
-25920 -81.3409926470588687 37.6903113613445413
-48073 -83.1664236989787895 42.5185473964374765
-68810 -98.4764858991149481 40.863847730383533
-84051 -110.405971340375544 40.39011455399055
-17033 -76.6409220585124871 40.2715498542382662
-42724 -86.0496921428566282 37.670074234687327
-46930 -85.5720317679557922 40.4103110000000072
-55420 -93.276651693548601 44.8360334407204206
-76526 -97.7880716470588283 31.391474235294119
-35074 -87.1140098416666859 33.2102295500000011
-71295 -91.7005221231787004 32.164135637295324
-82401 -107.987974775750857 44.0050862939240446
-85927 -109.466312484351789 34.0297389016393694
-85211 -111.844528999999994 33.4511460000000014
-62971 -89.3849955000000023 37.8671755833333421
-01937 -70.9828280952380908 42.5857827380952472
-42368 -86.7479111071216664 37.7238953925839482
-93626 -119.672727862227802 37.0369249067238542
-91701 -117.594794267481959 34.1353808226750814
-56297 -95.5475708474692595 44.6418151682626956
-68471 -97.7688663333333352 40.7465689999999938
-11797 -73.4707569861981824 40.815691330489301
-43114 -81.737219500000009 26.081078999999999
-04565 -69.8631560827586071 43.7755889551724096
-23454 -76.0263609658297241 36.834270519148788
-62818 -87.9668815041435579 38.3745249613259887
-44655 -81.7807295000000067 40.6000245000000035
-55942 -91.5600149999999928 43.7607619999999997
-51556 -96.0360935363443957 41.6410778666196393
-66751 -95.2980117564991502 37.9126531776429871
-23416 -75.5636628726287256 37.9334435880758605
-36553 -88.0708343008010388 31.2400221386829209
-06441 -72.5801603175455625 41.4672044063662923
-40390 -84.6691389790465081 37.8576908579925018
-14217 -78.8736375296023056 42.9701546258095135
-32417 -85.8424103999999915 30.6708162000000009
-28691 -81.7764840940171069 36.2007573076922995
-67151 -97.254540427048525 38.1333466262491996
-88201 -104.530248513149559 33.435080198246645
-04401 -68.8144348492907483 44.8350328890540979
-63546 -92.548873973432265 40.3163854198182392
-65081 -92.7809581982332361 38.6361073266878137
-97408 -123.070076476056755 44.1145817563518889
-60518 -88.9174382909762784 41.6001185115962855
-97065 -120.725190873180736 45.5885993596674126
-40299 -85.5427493378456916 38.1793218008867612
-37149 -86.1838451784115165 35.8096002154713204
-44092 -81.4671807866715199 41.6022403281419741
-35804 -86.5842077142857107 34.7260822857142912
-29727 -80.2712727347900881 34.7165363583975761
-70124 -90.1075167263367547 30.0096520072254407
-49045 -86.0018641200862106 42.1070004866351368
-55401 -93.2671886126855441 44.9832637462887988
-80305 -105.252966613119213 39.9798105943775255
-57748 -102.116960912854097 44.59885114923744
-18614 -76.4106726323350784 41.5128204804811958
-92618 -117.74554819884942 33.6692664199425948
-30256 -84.3234797353139243 33.0162736198514324
-12957 -74.5734903434944698 44.8494413256505098
-46051 -85.8445681776199336 40.0624426478686004
-16409 -79.6825055000000049 41.0916254999999992
-92275 -115.956921582642096 33.2958911301849696
-74965 -94.6028589698217246 35.9842774012345217
-14818 -76.8298062359466059 42.4421943305131322
-26034 -80.5544977059403635 40.5966712188118706
-95255 -120.514916025102281 38.4022832816815196
-71058 -93.1955458000000192 32.536196799999999
-39593 -86.3232381428571358 33.8333188571428565
-95035 -121.889046157618182 37.437207510198057
-33936 -81.6263110246290609 26.6034964480671441
-48732 -83.8172170622208768 43.6068573542721651
-99034 -117.747638977578688 47.8757639730941733
-60941 -88.0849316817339343 41.0430726494997558
-24343 -80.7022954771490504 36.7620209157994466
-83454 -111.955701823529481 43.5943975823529257
-15066 -80.2763702833811124 40.7440934316639769
-00785 -66.1029309999999981 18.0017967500000005
-40019 -85.1715838317129226 38.3697365325355761
-78316 -97.8197787999999946 27.4952102000000025
-39759 -88.8180754458383177 33.4445557226931527
-72327 -90.3258041119805881 35.2408810608068137
-16692 -78.7182215962003795 40.7559829934370654
-84717 -108.34325471428572 36.7334105714285712
-01119 -72.5112321728546334 42.1261430789281093
-37122 -86.5041813517351699 36.1927516220561429
-96701 -157.927739627240044 21.37900574014337
-39355 -88.650016020669355 32.0515325356670715
-28698 -81.740857266151238 36.329336318533251
-75929 -94.2094579291048859 31.2577476806409038
-61851 -88.440725795546669 39.9599882844130008
-11963 -72.318351255030862 40.9952684518824313
-17754 -76.8933877529883745 41.2855916354280765
-39886 -84.6106513748361238 31.7389183119265965
-48917 -84.6320579102668802 42.7353309268877055
-47021 -85.1585548928571541 38.9808169285714285
-89442 -119.299638518324699 39.6769450693717332
-30518 -84.0294657360709749 34.1208119318532184
-18618 -76.0437378327154221 41.3685223857177675
-14549 -78.0210904705882626 42.6993246862745224
-50158 -92.9125809912898717 42.0396852619225925
-76437 -99.0039310934256065 32.3634216997982165
-02041 -70.6494182499999965 42.078703499999996
-82423 -108.615390005076122 44.9709979137055598
-59339 -105.197057314533481 47.2372826472774463
-56375 -94.2731206712644365 45.6986509827585792
-19061 -75.4389391051315101 39.8323968411763261
-30536 -84.3850182753592435 34.6575668178115279
-52594 -92.6530463915969591 40.8338513957665512
-56655 -94.2281559332757581 46.9645307670395056
-25414 -77.8682745609760758 39.2684730820107504
-93270 -119.039492535627375 35.9545532292081589
-68460 -97.4336497819253253 40.892067427308433
-45387 -83.8904588461538196 39.7994948412487517
-44902 -82.5115952181233467 40.7589251941260287
-55005 -93.2300931807077973 45.3929368531431692
-77357 -95.1878931610879988 30.1634935994272126
-12859 -73.8879807280039103 43.1746370406812829
-54556 -90.2894999242173526 45.5457174349258054
-99572 -149.793522339672649 60.4879300237717459
-92124 -117.096831214056024 32.8231322765627311
-30809 -82.1507908036609535 33.553586848034783
-30054 -83.8787008632211268 33.6746676598435926
-12446 -74.3096698714878556 41.8089996026023343
-24879 -81.7647696142034306 37.3512991785028561
-95559 -123.806336823077118 40.2062166025640835
-71049 -93.9677410233777408 32.0051570397429472
-70466 -90.5001759075618963 30.5649752284788434
-95476 -122.472548017063133 38.2965767843914762
-79928 -106.206509783732642 31.6823684189567629
-88066 -108.272501250000005 32.7513500000000022
-70053 -90.0537746283605003 29.9131002326909332
-49534 -85.7686869968352283 42.980890712025257
-59739 -112.280668036092749 44.6437616488818279
-47112 -86.1287002916928373 38.2005208014208648
-13755 -74.9991967222727709 42.0579142024999726
-42603 -85.0058591181014407 36.7768307091611391
-75715 -94.2741854999999873 36.4760354999999947
-94128 -122.390355973214255 37.6286647767856905
-59010 -107.332574304545403 46.0650452318181678
-72711 -94.0660567142857218 36.4014447142857165
-16054 -79.6560304593024 41.1595354985465249
-58755 -103.596310504078247 48.5358740489396538
-09505 -71.7092237407407538 44.6720116296296368
-72519 -92.1598835851269058 36.1350355777022187
-50836 -94.5253481611669741 40.6199757450979888
-39503 -89.1205831156332664 30.4720847821102545
-68938 -98.1114125557538443 40.4188186752899412
-89834 -116.064609950617296 41.3237490000000136
-44281 -81.7316163213763787 41.0433700221404933
-03034 -71.3050689670008353 43.057767971386788
-11365 -73.7908687999999842 40.7393884999999969
-75570 -94.4424859861457691 33.4584073294849205
-71303 -92.5115370731972604 31.2965985485904525
-61760 -89.0442687067345702 40.8940990884886659
-22715 -78.1860689691418287 38.4126074705882914
-03238 -71.8903553162791127 43.9855691255813852
-96141 -120.157175995099593 39.0848158243942478
-07109 -74.1621666515625151 40.7956075182292324
-06752 -73.3606934197931082 41.5242627696208046
-12461 -74.2568039105627378 41.8998756101259175
-26005 -80.6522381000000053 40.0383481000000003
-18241 -76.1617970627706029 40.9440826601731587
-93226 -118.73569249355053 35.7208704643584483
-80825 -102.79334806163881 38.8061404205945948
-71456 -92.9957174274307476 31.6341559013621776
-21930 -75.8851874299516851 39.3661780579710125
-84528 -110.967544575288045 39.323926234406116
-57376 -97.9575365902140334 43.2151371223240943
-48817 -84.0688532628398661 43.0012116540785811
-77880 -96.1865408978078591 30.2864254634146306
-26763 -78.6903251799501504 39.4658990006226347
-38106 -90.0361199720136085 35.1018605839224165
-10112 -73.9793706666666679 40.7590418333333346
-19318 -75.8156708000000066 39.8507096000000018
-23183 -76.5463531250000102 37.3344853749999999
-09811 -120.369808999999989 47.7372925999999964
-70659 -93.2837931014131669 30.9178808262676412
-43111 -82.2432247202380893 39.501510809523829
-20677 -77.0375506085805313 38.505005021157892
-35119 -86.7699096097560982 33.6504367121951091
-39705 -88.4187130150560137 33.559162519352256
-15078 -80.3887183407709358 40.3589726004056928
-99363 -118.919645831541175 46.063385659498195
-28509 -76.8157210222222346 35.1460351333333278
-34609 -82.5112805756939451 28.4766709243060632
-88123 -103.128981746478885 33.7927033521127029
-08867 -74.965662542041926 40.5807869054662618
-13646 -75.6778560094425075 44.4353145961011293
-37642 -82.7202566215523944 36.5305311746351506
-86343 -112.352602843905998 34.2203057590876512
-60521 -87.9271650760410921 41.7968417220072368
-41651 -82.7572223759689933 37.4653037674418812
-60426 -87.6543544955876115 41.6123002224434089
-47024 -85.2036142181359963 39.48190712304622
-28079 -80.6239027837126088 35.0928972467266078
-16117 -80.2668669745538637 40.8605233567766675
-17084 -77.6085836165560181 40.6799209887005304
-29320 -81.9927263032257372 34.9576268752687724
-38374 -88.2392792647164015 35.5175341879607132
-81082 -104.528161148046053 37.1759342255810736
-45677 -82.7579109857142612 38.7944060714285541
-61230 -90.2137754058649932 41.7586918164046423
-75256 -96.9206258055555736 32.7113556944444426
-04965 -69.3654581059062707 44.8508446164291286
-74041 -96.0499290402047734 35.9427398603800867
-36564 -87.9187320519480693 30.4766453766233703
-61316 -89.1233524571428433 41.2627236142857186
-89102 -115.185254544135589 36.1467265213240623
-35978 -85.7315359866167626 34.6417281603422254
-27403 -79.8241041772671167 36.0650193737066758
-25856 -81.1619211408450809 37.6613438169014003
-95965 -121.566511725087111 39.5993831452043565
-21020 -76.819046437499992 39.5253608749999898
-13143 -76.7094855350525791 43.2313786966570817
-02163 -71.1201957500000077 42.3660422500000067
-73169 -97.6420944575100123 35.3854212213439396
-33769 -82.7123888571428552 27.8965021428571411
-13335 -75.2409468964392545 42.7016182400108946
-76140 -97.2797372538676939 32.6251814029927019
-82525 -106.792443599999999 41.2113973999999956
-95472 -122.854319641638355 38.3963030717337759
-62522 -89.0019060187287891 39.840320483331304
-28784 -82.3937469577464583 35.2325110422535204
-44047 -80.7468488681869445 41.7267860547906295
-99788 -143.721537333333345 66.6544083333333361
-29681 -82.2333473318623618 34.7777255354833983
-84784 -112.982806723028958 37.0060204211617929
-75119 -96.6093570219486821 32.334914732082666
-20687 -76.3469978929695259 38.0823704763904018
-23076 -76.3082895144664946 37.4796370461121313
-46234 -86.3240350016460241 39.8089446759542653
-67025 -97.7891819201511083 37.6472130168848267
-24877 -81.4214953076923109 37.4061026153846115
-31786 -84.154866619047624 31.9037777142857131
-31564 -82.4773305740740597 31.2305279444444324
-18016 -75.4121796666666597 40.6424776666666716
-23071 -76.456055727434034 37.5431190365111931
-13217 -76.1216399999999993 43.0516149999999982
-19711 -75.7370683659685682 39.7110445470000855
-07645 -74.043079518422573 41.0520793105929798
-54941 -88.9571303834772635 43.8428029889026121
-99840 -135.312469614876079 59.4628217619834629
-12033 -73.7032602935507697 42.5399578685172912
-23430 -76.6421520352467809 36.985492653556264
-64150 -94.6208403338541757 39.1766484874999392
-20354 -82.3844793749999837 34.4735203749999997
-35870 -85.0817533333333387 32.4719026666666721
-76164 -97.3573227447418361 32.7828156427660957
-72945 -94.3455960017825959 35.102885071301273
-37650 -82.4335206597360894 36.1220714454875704
-76832 -98.7218347215958545 30.983596954032997
-68935 -97.9645740525362214 40.3731318922100826
-30053 -85.7245671999999956 32.0278127999999995
-73086 -96.9891932728527451 34.5011393165541804
-56156 -96.2131245172189153 43.6573255514900396
-12492 -74.3514003360151605 42.2066117316611553
-48842 -84.5309888988978315 42.6401767154021698
-39354 -88.836745308985428 32.8802132288009687
-85287 -112.537969357142856 33.6915223571428584
-19405 -75.3405562537416245 40.1033243346938733
-18430 -75.4804530142857288 41.7422205142857123
-61778 -89.1021949249770842 40.2391513449222629
-80304 -105.285511000000284 40.0430191016103407
-46561 -86.0766466241152131 41.673951450581427
-44515 -80.7520270098581534 41.095751194334305
-24607 -82.2771205700267814 37.2978657814451182
-06075 -72.2948476666666551 41.9870478333333423
-37412 -85.2378830192552641 34.9972160189156369
-42102 -86.3357889999999912 37.0375453333333411
-88036 -108.012818370786519 32.7836543595505532
-29423 -80.0704199999999986 32.9773870000000002
-41729 -83.218295062294942 37.2642683191256694
-36348 -85.8591765000000038 31.0526514999999996
-50065 -93.7832314761409833 40.6089189875518812
-41085 -84.391091129330249 39.0345019491916716
-25418 -87.2707245 41.1445219999999949
-24465 -79.6123395378297971 38.3859191598518734
-52310 -91.1924488685612289 42.2238829319521614
-27343 -79.1043507223592286 36.4976679100136678
-37415 -85.2844457507871709 35.1186276830997741
-12548 -74.1023824372843194 41.660789369390109
-58581 -99.818078558901675 46.0594736997342764
-95338 -119.91385769087195 37.479849626558817
-98317 -108.749332800000005 35.6212896999999984
-66543 -95.6099180921199547 38.6501112408435006
-71609 -93.9956295000000068 32.9672330000000002
-39346 -89.0966203409640656 32.9693758777219941
-58377 -98.8150800464546393 48.4543862349410759
-16844 -77.9343902044144698 40.8955895563500889
-39067 -89.4597245464720459 33.1091040725060779
-28480 -77.7973443646372971 34.212426087435297
-74735 -95.2589282893450786 34.048848308895387
-20852 -77.1249336267907921 39.0486720194948447
-38369 -88.9698916785837355 36.1277716675058755
-07722 -74.1831244418953446 40.3073495043078864
-68131 -95.9633708771297336 41.2647405432503334
-71909 -92.9698076228965107 34.648837359678673
-69357 -103.79592082183575 41.9257476448964894
-43304 -84.3508965000000046 30.4429890000000007
-04757 -68.1355744586050491 46.6819502558955648
-07206 -74.1907350299800612 40.6530142238507537
-16423 -80.342283036490727 42.0208494588509183
-42643 -84.618732499999993 36.740097200000001
-49098 -86.2535467089463452 42.1869635765155877
-61377 -89.0350998109119871 41.0553838525614694
-47115 -86.2242307428247585 38.3360335865776989
-63501 -92.5921239821219757 40.1813938598914788
-12737 -74.804529414893409 41.4799198034131749
-12107 -74.1215393999999748 42.6663345846153774
-97054 -122.924841935859149 45.9502463674959571
-24054 -79.7141475313745929 36.6650880108580495
-72826 -93.7057324913793082 35.1261142327586384
-58030 -96.7222026339110243 46.0408321358382722
-24588 -79.1090537085487568 37.2696781605892014
-72555 -91.8788172580927096 35.7835422143482376
-99621 -161.436937888888878 60.8113427777777673
-66849 -96.5965762925086437 38.8536968632581221
-41647 -82.7236590081670471 37.438616642014523
-15958 -78.7364685062330665 40.389153868523465
-66517 -96.710552935765179 39.1159587478192421
-08324 -74.9910250398010163 39.2261003631840879
-78232 -98.4705227311161337 29.5848880883151182
-60640 -87.6649925334836411 41.9720064168547538
-38004 -89.7734544924671525 35.4222467726815253
-17532 -76.2920559953897879 39.8612896057079951
-40121 -85.9648228426633807 37.8959672115906798
-68764 -98.2356971625487319 42.3839166501950686
-23086 -77.0659179464137054 37.687471885737672
-25833 -81.1056398947368535 37.7224407894736871
-19974 -75.050742249999999 38.4531102499999946
-98930 -119.914818009504387 46.2561869696905816
-94566 -121.867967663575925 37.658865643587383
-62215 -89.6145502904149396 38.526789538626609
-84743 -112.196696097014922 38.2132795447761069
-56071 -93.5700642337328787 44.5366432866427573
-72812 -93.0329710689655229 35.3922123793103438
-30539 -84.472014756000064 34.6738257639999929
-46565 -85.5859533850119334 41.6916791266719713
-15616 -79.5530391555555809 40.2230085111111322
-46950 -86.3674898491171064 40.88098869823434
-56129 -96.0025501850917351 43.5227851004422988
-76849 -99.7700106348876545 30.4727268143311285
-82832 -106.79269593901374 44.598853524650977
-44223 -81.5176157505061525 41.155424448790427
-63109 -90.2951410718976177 38.5860088001831372
-92504 -117.402290039494758 33.9153912458927422
-75050 -97.0148342857887371 32.7668891812128962
-77643 -93.8666051999999951 29.9669392999999999
-70463 -89.9291394374999697 30.6574110451388897
-78716 -97.6163723333333309 30.168491333333332
-32408 -85.7561986659285225 30.1595048551985805
-84650 -112.635679769230762 39.294099769230769
-24019 -79.9467394135002252 37.3418395940794099
-93307 -118.974398343807906 35.3174344166298155
-12745 -75.0188362700296523 41.7839065637982046
-68731 -96.4495405445990315 42.4144792995090398
-68763 -98.6424097515955793 42.4805245506765488
-34591 -80.4730400999999915 27.5568266999999985
-82055 -106.146798706241455 41.3152904328359085
-20037 -77.0505648150491425 38.9015593326302209
-76483 -99.1772249930435947 33.1637037960869776
-61941 -88.0782171666666898 39.8005895555555398
-61526 -89.6160808158175541 40.9188332383327378
-50843 -94.88611385480948 41.2504183266787336
-76429 -98.6558164383859975 32.7742953097055505
-29719 -83.2479098999999962 35.4738574
-36201 -85.8646455651350635 33.6580944613757396
-32250 -81.4057623436983562 30.282944374685318
-34758 -81.4813917590437171 28.1896137264160842
-62283 -89.2088094615384648 38.6933603076923092
-16433 -80.1432586103660469 41.7317641703094822
-18445 -75.3518850698346796 41.2946464426071955
-46350 -86.7352545925803753 41.6226207147112675
-58212 -98.0449913738258658 47.680846939799892
-47926 -86.596896465245834 40.7860818537705612
-42365 -86.9983693561644031 37.1135172602739942
-12020 -73.8466376620345244 43.0083279209892169
-77904 -97.0122708495686368 28.874901537104595
-56357 -93.7988714404944659 45.6953196603553735
-57634 -101.837878591176704 45.8170409509804912
-90732 -118.31191728251757 33.73841219500504
-20751 -76.5513718333332633 38.7846733902222667
-57427 -98.3119728780336999 45.4864528195396005
-39372 -102.485209999999981 33.4484374000000031
-87064 -106.582040086274446 36.1902162274509891
-46103 -86.6137616551724108 39.6892989913793244
-75925 -95.0606718163327287 31.6256453226402385
-35661 -87.6053609041941428 34.7633633871026078
-67879 -101.763567422978795 38.5046308212766135
-37665 -82.573252487817129 36.5789597603181704
-26074 -80.5947692377622928 40.1686160699300743
-86832 -106.86881266666667 33.9091349999999991
-23551 -76.3018604000000096 36.9253249499999896
-51639 -95.4751019702774499 40.7189753830911911
-99226 -114.732925999999992 33.4305229999999938
-99629 -149.660541494565166 61.6063245054347846
-49265 -84.1630807094016262 42.0226566740480507
-08029 -75.067238040572974 39.8406625155130811
-15774 -79.3317754259611263 40.6619608136104773
-25864 -81.0158318571429987 37.8912809599999889
-91504 -118.329789816417943 34.203230181529733
-37694 -82.2738569442502552 36.3793217296478133
-85709 -110.984340500000002 32.1759670769230794
-74724 -94.8418198620689594 34.3578504137931091
-20319 -77.0173723000000052 38.8670325666666656
-13411 -75.3114302815651087 42.6352051322281227
-35130 -87.1212728495990092 33.6497953063458439
-22185 -77.3059604999999976 38.8766487500000011
-68785 -96.7167362582677299 42.4242230677165253
-41095 -84.8285417370765487 38.7871472957728898
-40309 -85.8559815000000128 43.6817534999999992
-98106 -122.355122524170525 47.5369417072844627
-64763 -93.6944691284758306 38.1407244466737225
-20903 -76.982486027831257 39.0168082888677006
-63833 -89.720232300970892 36.6483463106795782
-73773 -97.9005140140844077 36.2784236909692908
-56293 -95.2600256482718066 44.4131192849259406
-07428 -74.5400488227848399 41.1911853670886003
-79353 -102.576277409836067 33.7822373879781495
-20634 -76.4933280728877776 38.2548865071879263
-06708 -73.0665963556172358 41.5537311225907615
-88431 -104.33271897959186 35.2553924693877505
-56502 -95.8184160967742002 46.7823319354838674
-02346 -70.8831049828894635 41.8869809544338594
-73834 -99.6226213567251477 36.8369485497076568
-31740 -84.8042630705128175 31.779104249999989
-11764 -72.9915444459430063 40.9450301663454326
-24801 -81.5734253952170292 37.4324266079294858
-38626 -90.4055313688081412 34.5247712468055781
-85354 -112.914737373980941 33.4296610830111973
-16125 -80.3722172320283335 41.4015666945695173
-31077 -83.181696863745799 31.9620217250842558
-68413 -96.0076045632654314 40.84531848104956
-27896 -77.9528703783916797 35.7716414381459558
-14005 -78.2452007331099821 42.9172355170295603
-74556 -96.2156767234042007 34.4708515106382904
-78521 -97.4553933461103412 25.9386018662536273
-00682 -67.1493149033515664 18.2177499869145656
-71941 -92.9745581802734762 34.2747813727374222
-62620 -90.1655330000000106 39.1527790000000024
-55398 -93.5829503179840287 45.4554224233334736
-29813 -81.2659157511521784 33.2646421474654446
-57448 -99.4154372750902269 45.6160406830324447
-02458 -71.1882326712873947 42.353165647293963
-28802 -82.6680809999999866 35.6219749375000063
-17254 -77.5863629999999915 39.9695150294117596
-48808 -84.4518573826727277 42.810880231848472
-04957 -69.8362762313932848 44.709644681755023
-74825 -96.4310120372528701 34.8474108529316808
-99709 -147.931707176320629 64.8584776129404759
-72669 -92.8826722248061998 36.0715459534883749
-97914 -116.990674559817606 44.0590255327266789
-67156 -96.9795785917130644 37.2429307416205262
-01950 -70.8889466799780195 42.8137270247138844
-13203 -76.1353977019430346 43.0608884353037951
-71835 -93.4424765377212339 33.6773661629929393
-24882 -81.750455830449809 37.621307323529436
-17056 -77.354355599999991 40.5350687142857211
-24816 -81.7025982999999911 37.4595950999999943
-32317 -84.1328225374656711 30.4664905878748584
-87016 -106.138046975923359 34.780437451709922
-53338 -98.6540774999999996 48.5376295000000013
-99201 -117.434183251965393 47.6626070561294597
-95024 -121.453195909090894 36.8989111818181783
-78838 -99.7203166753926382 29.5322283154450034
-85633 -111.540285428571465 31.575093428571428
-46406 -87.4072851772216097 41.5895107677902232
-43547 -83.8725330575539516 41.4910393237410133
-36260 -85.9956834223991251 33.5891993920893341
-42728 -85.2880925724809487 37.1009577668907298
-43030 -82.4152087567567833 39.960721797297289
-59012 -106.547069300403038 45.3088389012096542
-19022 -75.3399872339657435 39.8648668166214861
-86342 -111.773022364741635 34.6397866352583677
-88434 -103.281335607640187 35.1264514203989009
-41360 -83.6365383778014859 37.7727018527214469
-17554 -76.4269677757919084 40.0416107860818116
-47387 -85.2910417592941741 39.8369013377441874
-29843 -81.2143803774834652 33.2034952387187232
-80518 -105.535771199999999 40.3397015999999979
-64117 -94.5275698301163914 39.1668852929716138
-34695 -82.6959624907090927 28.0072074521523078
-95958 -121.818826342465769 39.5526897808219218
-47522 -86.8999293289473798 38.8949766710526106
-40806 -83.3147902019387629 36.8734167302099891
-28603 -81.2860360322580675 35.6751013225806375
-92338 -116.297324617720534 34.8780690100035713
-84312 -112.153312078513594 41.7640329497065821
-88004 -106.797890159090926 32.2104980000000012
-81503 -108.550490183571625 39.0368281244056874
-30344 -84.4585179672799597 33.675456932028446
-10453 -73.9119050007835625 40.8521199083071735
-14102 -78.5549260076923304 42.8351996128204746
-94109 -122.420014774034087 37.7930883984725909
-95110 -121.898412643680629 37.3359451672200819
-44693 -81.1859023855421782 40.302575746987948
-15445 -79.6813411797574389 39.8796518767561281
-20721 -76.7932084560555381 38.9197317079545826
-57035 -97.0733997071879173 43.6234430395629005
-23305 -75.961036923076918 37.3658219999999943
-56488 -94.1046821999999992 46.7354078000000044
-24878 -81.6421152582781815 37.4247187947019953
-01201 -73.258061110587434 42.4535669081787006
-00790 -101.992947500000014 33.9950355000000002
-38781 -90.7494586266666659 33.9074462400000129
-44202 -81.3509820371631776 41.3188989179875463
-44632 -81.32304122917499 40.9622800927412882
-15438 -79.8364173589639705 40.0854532869283844
-76301 -98.4883824169236135 33.9035566507000681
-20017 -76.9914582294146754 38.9388991770832931
-86247 -110.744863500000008 35.0240200000000002
-27840 -77.2127601733102722 35.942940996533828
-98688 -150.103855399999986 61.7132267999999939
-10541 -73.7505014773794869 41.3756947308997312
-67416 -97.5950295232045164 38.6784140439667183
-29137 -81.3154192911348019 33.6089184893616917
-33927 -82.2161949523809596 26.9328071428571469
-33079 -80.181499294117657 26.3194964117647032
-43961 -80.6273019096045118 40.5194188305084921
-83122 -110.948058836170247 42.8056533765957425
-81633 -108.401981119047605 40.3900055158730424
-32331 -83.6412857951074784 30.4699115297957732
-60560 -88.4368993391835119 41.6381215560304412
-39455 -89.4692168911483918 31.0142217215059084
-16220 -79.2711344444444705 41.4042978666666741
-83536 -116.002316255675666 46.2274751729921078
-46616 -86.2651513978979807 41.6946390788288781
-07076 -74.3752794612278194 40.6366073147010596
-74388 -94.7554168333333138 36.2655559999999966
-43976 -80.9058799848483261 40.3605610323426021
-01949 -71.015356140524446 42.5993604554874779
-50662 -91.9293091473188326 42.6846984339175606
-62980 -88.7066595000000007 37.8673689999999965
-58888 -101.244414212765946 47.7176644042553164
-99006 -117.476737126426613 47.9503633371877314
-12009 -74.0302822056110585 42.6995245964408667
-74935 -94.909739804123717 34.9501984793814415
-55068 -93.1299253681737582 44.7393675799001329
-22152 -77.2326104639331419 38.7735707887728083
-67530 -98.7865090859087616 38.3709126258288293
-00862 -75.2162307692307763 39.7492177692307678
-22641 -78.3876853813038537 39.0744935362854022
-61331 -89.2784382857142447 41.7486045714285652
-66712 -94.7098448623228393 37.5501943348442282
-35906 -86.0722126462897705 33.933090524557123
-13439 -74.9986752756576323 42.8444592246002571
-41819 -83.0820472772047509 36.9862403832081768
-62242 -89.9445686977716434 38.0950193569438369
-15783 -79.3566489084507225 40.5995428169014119
-76428 -97.3011125000000021 32.9204584999999952
-97870 -117.203320466265211 44.78352778875513
-66050 -95.4334938869622533 39.0253076631342495
-23888 -76.974989033333415 36.9571622416667509
-92131 -117.081933166102871 32.9181991909683092
-62252 -89.2935331363636351 38.6051942727272674
-23438 -76.6994599577588474 36.5820777097701892
-86936 -109.395411692307704 34.4993043076923129
-22206 -77.0904673992989444 38.8425675810190469
-12932 -73.5933738379662969 44.2212417779809499
-52570 -92.151019675028607 40.6926275890535436
-27340 -79.3307282950819541 35.943019508196727
-23934 -78.6260706895022849 37.1749008685995364
-33677 -82.6819339999999983 28.058479333333338
-04628 -67.2237948822778151 44.8992647747920159
-38644 -90.4720821428571469 34.4383648896103836
-17021 -77.6579529851887855 40.3475287634805539
-36453 -86.1435335349176796 31.1992691394882051
-58023 -97.098484692307693 46.0971864999999923
-29006 -81.5602174947025844 33.8942535827136737
-60457 -87.8298934637616924 41.7258002510004502
-42087 -89.0136705792902632 36.9786074006903789
-13086 -75.0280798636363784 42.3950284545454537
-63624 -90.6306980383610323 37.7553463130352469
-19436 -75.2516077241379122 40.2015450689655154
-49782 -85.5439534022842167 45.6883335619288999
-07068 -74.3030994316888354 40.8209937609107882
-83227 -114.479969798165143 44.2335227477064308
-12428 -74.4359893971328859 41.7309218238179582
-28163 -80.4270959690817477 35.2115057428472298
-05035 -72.6869344671666369 43.6071233612815021
-58532 -100.114817553571427 46.8533380436508438
-95050 -121.953875729729575 37.3487793086552031
-04416 -68.7616622541255822 44.61449406353141
-78883 -99.3313055708435826 29.6892907526617478
-38046 -89.2458647309090622 35.0532697345454523
-54765 -91.6862725000000012 45.1671280000000053
-52577 -92.6528473260166976 41.2828690001871905
-68761 -97.9648895536480921 42.0543145922746646
-61563 -90.0525302037036681 40.4922974753086322
-40145 -86.3210175368565729 37.6355767955493619
-28673 -80.9973668745906679 35.5989037365406062
-27512 -78.7982114342105149 35.7831467894736832
-13338 -75.1251082884438972 43.474905174352422
-27954 -75.6800977474380829 35.9106226571306735
-05770 -73.3169263509699647 43.8932161103553113
-98852 -120.706686000000005 48.3413062580645061
-80301 -105.212016930277287 40.0482545448356575
-66485 -94.3859104999999943 36.5926019999999994
-92009 -117.248679520964075 33.0942748660420989
-71324 -91.698609333333323 32.0948429999999973
-67822 -99.9004942857142879 40.3449697142857175
-23601 -76.4597541800990257 37.0614035864662625
-97864 -119.421654399881135 44.8024231521094194
-15312 -80.4364097558603959 40.2503435518038017
-14033 -78.6772747483870205 42.6506619064516741
-57037 -97.1638666889443243 43.1027009438322253
-94568 -121.913883184447101 37.7135296979316337
-11724 -73.4523704249411082 40.8658657703530324
-15821 -78.3497168225685954 41.3433383129176448
-29906 -80.7549753217708854 32.4422440207536766
-79098 -102.209464257826752 35.1209841123388529
-68526 -96.5932539997236717 40.7450321144278931
-77442 -96.4395370146677919 29.456936734253663
-51018 -95.6719420886793301 42.4563511754716814
-41844 -82.8701861720000323 37.3341252685714124
-97627 -121.947317853721586 42.1268965883495525
-11932 -72.3041211515025708 40.9374175404841125
-29379 -81.5993478785556903 34.7079095135337354
-90069 -118.380899803482421 34.096751988814006
-67223 -97.4947198000000554 37.7336503942307573
-68644 -97.6830002125306009 41.6991152088451926
-97906 -117.621375699567125 43.8376285913419537
-25151 -81.2063859999999949 38.9446396000000021
-62434 -88.3224247639620614 38.8448397397260052
-46979 -86.2682009426183356 40.4283458050138549
-15847 -79.0426700909090698 41.0905619288537736
-27804 -77.838693547938874 35.9787230004175314
-84044 -112.084524193631012 40.7002146273306593
-93591 -117.827484338461787 34.5947452108717499
-47619 -87.3034961936494796 38.1983450980007433
-12312 -73.6374046000000106 42.4760899999999992
-44136 -81.8138923584226632 41.3101212620805569
-73016 -97.6737549614074965 35.7955822854710419
-11205 -73.9638669756367904 40.6937781926910276
-45217 -84.4974258735848025 39.1639205264151329
-16410 -80.3163882702531708 41.9218963208860771
-75160 -96.295795141655077 32.7548731764585881
-23426 -75.6641600251256676 37.9257072412060268
-57076 -97.3662339378587234 43.984095671801505
-57534 -99.6706957605821344 43.5988693055555672
-28478 -78.0254966805480734 34.6504169446574082
-43033 -82.5973953162791048 39.9600709674418511
-60605 -87.6257700166482181 41.8697829384017837
-32559 -87.2816583661972203 30.3566006478873263
-15906 -78.9334456008947285 40.3556381843041834
-71221 -91.4721284999999966 32.5987955000000014
-07821 -74.7456220027154359 40.9694809178965258
-30739 -85.2200722999696296 34.8053674456820303
-03801 -70.7818323748137033 43.0679936653422644
-25704 -82.5090656434233267 38.3654443711289659
-45172 -83.388429692307696 39.073569175824197
-17970 -76.1897002602002686 40.718399759045532
-67490 -98.4290213830127243 38.7916152424449834
-72482 -91.369461501320373 36.2828118758886404
-65722 -92.776944354796214 37.5833700477441468
-83633 -115.207349307557138 42.976579512302294
-20706 -76.8539269014766973 38.9665071604031112
-45371 -84.1685039708441565 39.9387387608096205
-27972 -75.4684532354987425 35.5528186415312959
-40996 -83.855993666666663 36.8385780000000054
-93108 -119.62754991688989 34.4387241253743355
-44439 -80.9548923214285736 41.4591691071428414
-37640 -81.9793150569438467 36.3367909245353786
-04076 -70.8442734641445355 43.5506101656062086
-70744 -90.6593769485211709 30.5189325757119647
-70070 -90.357644623360116 29.9107697680000157
-01549 -71.8830220000000111 42.2107729047619031
-97348 -123.130180129339095 44.3864450195968701
-27985 -76.4664494999999818 36.2174464250000057
-33703 -82.6288236314515956 27.81727896700475
-72416 -90.7803729394837688 35.941209262950224
-61051 -89.7537857578466287 41.9778023905839603
-55014 -93.1333380919464133 45.156237487820917
-16038 -79.9538579299702832 41.1577823212114282
-17064 -76.4719568279773512 40.2474770047259085
-67474 -98.6945485216345162 39.5627404783653986
-33548 -82.4768247955760359 28.1362371758829859
-41351 -83.6053358524590209 37.3341422786885246
-31411 -81.0472118075755787 31.9307624160302268
-05906 -71.7069930090525673 44.4665526517895557
-32703 -81.4940034852958775 28.6607608667615992
-37128 -86.4561556790293082 35.8140898729780872
-21645 -75.9685148557238534 39.3265761892147694
-39426 -89.6635881454389221 30.6430082000061574
-41571 -82.455604259530233 37.630267786569128
-03741 -72.0323151194957205 43.6671208339509889
-07874 -74.7067035747578103 40.9233350445315622
-85326 -112.556296046666446 33.3858816180229923
-06037 -72.7715781655257956 41.6164529310164042
-32360 -84.7839318275862155 30.3257078103448272
-83451 -111.646084852380923 43.880169406349161
-66426 -96.5084485000000001 39.4394058749999985
-43358 -83.5309446274812615 40.412208463604486
-37079 -87.6706023577230837 36.4881548763535193
-73019 -97.4424435294117757 35.2048846470588117
-18066 -75.7364163615114165 40.6576822995563134
-57433 -98.3202689100601077 45.6317992307145701
-29033 -81.0671625592094642 33.9618957326482018
-38135 -89.850717767901557 35.2350118010684739
-50241 -93.7294533846153826 41.3068345897435805
-75674 -87.7112186666666531 34.7061114999999987
-63050 -90.5732967051068272 38.2623545389091362
-02474 -71.1586895684494039 42.4217739184280731
-49449 -86.3914900761433984 43.8011628123914676
-08026 -74.9686736227141637 39.8358940875842009
-14098 -78.3794387019889598 43.3411863206960675
-54173 -88.0369857948516454 44.6370436003961331
-59829 -114.19461430561762 45.9063895540363802
-08089 -74.8637922749858546 39.7244392879729133
-68463 -96.1374524484445914 40.8714394715135754
-78577 -98.1866161528100889 26.180734919951469
-72114 -92.2650012924301564 34.7648134955961865
-04983 -70.2197782164904254 44.832720322310557
-96246 -120.475854833333315 38.2715294999999927
-31067 -82.9273307999999929 32.8944227724137974
-54166 -88.5997573762970489 44.7774728208627621
-29105 -81.5933273240197678 33.810759803515154
-62897 -88.9009903487260686 38.0869418105095932
-40865 -83.2108540158371852 36.9117389524887116
-31543 -81.8366262673853271 31.3070743026772931
-27299 -80.3828997958491556 35.7573790755561731
-28788 -83.2273461818181488 35.3395128424242344
-48743 -83.8718806995709087 44.4376337768240433
-48843 -83.9029082811113369 42.5842322984191171
-75077 -97.0625192297660817 33.0776915693889322
-67134 -98.6780395548871923 37.488790039097772
-50626 -92.1677401955054165 42.5742307022471422
-41181 -82.9009968242074535 38.2054096772334191
-37740 -84.4174913333333308 36.0311846666666682
-36574 -87.474412752070549 30.5123233136645347
-13327 -75.3117562676087999 43.9342173945748939
-43927 -80.9387718253968131 40.1229204285714331
-59207 -106.274930526315799 47.7550514210526416
-45069 -84.40766210110516 39.3452009238107436
-70452 -89.7746155581109804 30.3999407133850035
-56239 -95.9123701307690766 44.5065696419580519
-43859 -83.7832681249999922 40.6908570000000012
-78946 -96.7849526690501847 30.1579670231693129
-53235 -87.8739822876481327 42.9705943570220867
-84783 -113.672561813936724 37.2999785790230405
-02549 -70.4911856521739111 41.3696967826086919
-46218 -86.1011399830198343 39.8058417855897702
-54202 -87.1315361592672417 45.0679218222479605
-47232 -85.7937494022564806 39.1139379826427316
-02493 -71.2974101012191142 42.3596713273137837
-33771 -82.7544118072232919 27.9098447395905289
-37159 -90.9305525000000046 32.7948042499999985
-03031 -71.6043987318563211 42.8611982003270242
-90058 -118.218864209661263 34.0018000463358305
-10464 -73.7908340239999774 40.8544040672000079
-48847 -84.5901083389948525 43.2752823203815495
-55060 -93.2225583669327449 44.0769456304455431
-86051 -111.823741499999997 35.225514000000004
-25113 -81.0404636398306053 38.5471210544328073
-21770 -77.2502322963200214 39.3492995819883546
-36856 -84.9980924146019703 32.2776267954059719
-05515 -72.9022224999999935 43.1134850000000043
-41645 -82.8010292978361804 37.5325586190205343
-15583 -79.642176500000005 40.1296409999999995
-65603 -93.8452098295454959 37.5501744659090875
-17038 -76.5075344558956658 40.4377181572236992
-99347 -117.57428314474889 46.4874177688876742
-48953 -80.6513084444444388 40.3473439999999997
-43204 -83.0808551931393566 39.9570509292873695
-34436 -82.2886548378457121 28.7364104851043578
-15691 -79.6870859561403506 40.2943368859648956
-92010 -117.299005384789936 33.1616015329750837
-60558 -87.9000797604041821 41.8025552271107657
-70644 -92.9464281614173302 30.7866091824147041
-19341 -75.6424195248149402 40.0427296662092118
-17603 -76.3453381664552779 40.025613083117797
-57064 -96.8556902040298127 43.4541925590023013
-66205 -94.6320880329833898 39.0309541486132616
-41141 -83.1494700307065102 38.5563135402618187
-66944 -97.2901980398089421 39.8518503662420329
-12054 -73.8487357414066281 42.6115541671189675
-22332 -77.0727436666666677 38.803295999999996
-05335 -73.1391569999999973 43.6723843333333335
-81120 -106.207282071451459 37.0960680283030584
-37416 -85.1778506707254195 35.0969563979177792
-88022 -108.187244037775983 32.7832836714184452
-73463 -97.4192732106317294 34.1532138285142892
-19310 -75.9725006957131797 39.9307199047786696
-69026 -100.42149860669457 40.0362406820083621
-53529 -89.5240534404190242 43.2372429496180288
-46127 -85.3193140536864973 39.7167934037222849
-55003 -92.7820921265738292 45.0171340430748614
-14822 -77.8363720358685782 42.4376544550562471
-76309 -98.5392714639769594 33.8935458487658821
-35214 -86.8919514737545029 33.5637097954039234
-66220 -94.8225413068182519 38.9591203223597304
-98671 -122.278056979809833 45.6073775239391992
-96964 -122.532071500000001 41.729728999999999
-68943 -97.8835456470588383 40.0239436078431439
-29144 -80.4984931176470582 33.9913725294117697
-92201 -116.234800238662729 33.7118695722047335
-06656 -72.6231129999999894 44.6708224999999999
-95425 -123.027252303229162 38.8018518181050851
-30137 -84.7612683247205325 34.1218998819833033
-26143 -81.4166408013653324 39.0770549290708757
-17321 -76.4431713246111997 39.7513233673973971
-18705 -75.8454861381580514 41.2698525324248422
-29388 -82.0498532993441358 34.7706085754355243
-02601 -70.299339715094078 41.6543714088205093
-13687 -74.8335993116499765 44.4865090242460326
-37318 -85.9994414825196287 35.1701892173228075
-33709 -82.7276690600446898 27.8164423069306537
-49270 -83.6880342276683962 41.8748181149794405
-29009 -80.3813339359566328 34.4402834343239164
-90003 -118.274622776540696 33.9626462146555497
-11236 -73.9034299321216821 40.6409560102244285
-31326 -81.2327506757168152 32.2900493994750661
-15536 -78.2153057821427495 39.9562514209821558
-28071 -80.327496811340211 35.5211077945507938
-41839 -82.8785308636123119 37.4139102290679162
-68117 -95.9983594232252955 41.2072178532819109
-15931 -78.7448428690609603 40.5128287549347519
-62510 -89.0603713126108687 39.5269592126999427
-75065 -97.030427938694487 33.1211892794737679
-14221 -78.7288756872863615 42.9829022042643771
-14057 -78.8690289186991436 42.6535525675247413
-94515 -122.598010792514231 38.5988257890455984
-65783 -92.9273641699669355 37.7249012310231464
-95468 -123.637863768222431 38.910790371803138
-76098 -97.5348142500000108 33.0018861249999986
-31801 -84.5953506903495622 32.5221610270770682
-17113 -76.8254822034460574 40.2343968193774089
-65773 -92.5356741778916501 36.7579934816983638
-43701 -82.0045003951827596 39.9529350207935323
-28024 -81.775859187500032 35.2256245781250001
-88417 -104.111068737373742 34.8857208181818308
-73443 -97.2798456343586082 34.1707666489593649
-19360 -75.7814008571428559 39.8419995714285733
-18439 -75.3502402338038451 41.8241978675352044
-98055 -122.204333157987946 47.4532720509728421
-41076 -84.4420360826278937 39.0198763182693114
-44021 -81.1576191776409814 41.4537513211747424
-45345 -84.3920127794596198 39.7390315699021173
-35504 -87.1853695800157737 33.887927960779713
-83407 -112.032676666666688 43.5374123333333287
-77581 -95.2671242055027818 29.5610064357014153
-68824 -98.5944027421874978 40.9986147199707744
-91744 -117.937313173682469 34.0294297512142805
-12733 -74.6397397130124034 41.7054374206773844
-22433 -77.8661977256281688 38.3501284643216565
-10968 -73.9183016603773098 41.0407448301886717
-67561 -98.1031446850292781 38.1167376665585138
-24850 -81.8594648792452659 37.3315139433962315
-30078 -84.0208501425033063 33.8621711597512345
-71055 -93.2815333016175856 32.6562274362439098
-04444 -68.9094059440137698 44.7345543337285108
-87936 -107.26828105612239 32.7520410102040742
-56556 -95.8914310007892823 47.6527466621941471
-34421 -82.1611096249999946 29.0827071874999987
-12430 -74.5194021974231475 42.1817550338211262
-24943 -80.7186156099584906 37.8368209792531189
-80643 -104.504469760498296 40.0793427829181397
-06444 -72.9351627465564718 41.5661662286501183
-17257 -77.5066081457099045 40.0545565239564354
-75488 -96.0167193854197905 33.7645676389707319
-67230 -97.1712826421523772 37.6888415208771335
-83462 -113.872189071239092 45.2923594442477651
-66408 -95.9746557246834584 39.9581897009493687
-27229 -79.7926508869154389 35.2614759606660613
-98033 -122.189130948456466 47.6785129207980418
-46379 -87.436268717391286 41.1668255688405509
-53090 -88.1760564680919572 43.4473003954008021
-36512 -88.0361322195122113 31.0121351463414676
-70345 -90.3275270158472097 29.5010582181310603
-65760 -92.2725133009377601 36.6143046598465318
-03461 -72.0098628084581094 42.748476595770839
-14558 -77.6785423636363532 42.8517948484848432
-28039 -80.4319777204300976 35.6820319139784985
-58733 -101.592038773786527 48.1788012582524914
-33302 -80.1478099166666738 26.1222077499999976
-34289 -82.1417339096085612 27.0825826049821963
-67733 -101.511154947213996 39.3382819941349311
-93407 -120.659556999999992 35.3074492500000048
-06282 -72.0736954663750851 41.9460975626024961
-27966 -75.8362087626794334 36.1309843282296725
-71969 -93.6348890851359812 34.6600522400558759
-04578 -69.6901268545783381 43.9744501652701132
-21543 -78.9552975043860101 39.6371827982456253
-84620 -111.93504482996326 38.9195753437499832
-50235 -94.2123220921052109 41.9251965489473335
-28017 -81.667929285714294 35.2374099142857062
-15055 -80.1241191362433796 40.305249416666733
-50039 -94.0018389270385768 41.8315804892703298
-17016 -76.3881298146610135 40.2683634591977864
-02829 -71.5956668571428452 41.8834144761904668
-04021 -70.2687137025216941 43.7988895787787982
-92705 -117.805679007332003 33.7628100058964336
-65631 -93.4362585119366003 37.0150944823398689
-59821 -114.081846877947456 47.1650077202038887
-78389 -97.7003033947915611 28.2330288781250331
-21727 -77.3379067059609611 39.6980233795775916
-35223 -86.740450229120782 33.4858238480931831
-85939 -110.094506517042504 34.4505205836392037
-71471 -92.9408471043478528 31.7486114217391417
-82331 -106.786787679306556 41.4406880715058819
-11844 -75.4942117857142847 41.3915747142857171
-25560 -81.9000457184507127 38.453961063678662
-57653 -102.286371464912278 45.6859000701754283
-67212 -97.4407076975688966 37.7026642636299485
-59256 -104.568097421052656 48.9070784013157862
-03233 -71.934839172011678 43.4222786384839665
-54728 -91.666988389378389 45.3091824750415597
-46077 -86.2835424917903708 39.9654566629994861
-07481 -74.1670319727463436 40.9986073284416719
-35986 -85.8403926146417575 34.5022167121883143
-65017 -92.4933828914395519 38.0869094107004287
-29736 -83.0923837692307785 35.1664802307692241
-67767 -101.369804999999999 39.7871620000000021
-44646 -81.4986826646688911 40.8168457134124267
-98849 -119.395660456466914 48.5280199742704639
-17210 -77.6480496052631679 40.1947801973683951
-93648 -119.530992705665682 36.6151957592067347
-62024 -90.0838305092003822 38.87815388464265
-01337 -72.5771378921698584 42.6906237172795926
-29442 -79.3998821666666714 33.4467519999999965
-52339 -92.5914618887626375 41.9460247100751005
-41650 -82.6822087159762589 37.3548313508030958
-68621 -96.623625161202142 41.4833206256830636
-23418 -75.7008559682171125 37.678467839534882
-98421 -122.410509792324916 47.2530023707675824
-08025 -75.1874042500000002 39.7006137500000023
-25549 -81.8635688181818182 38.2230929090909086
-71032 -93.8037107749447472 32.0925842901884621
-31094 -82.8215442592314162 33.1135954335593681
-39339 -89.0348275814199326 33.0929855847122809
-32139 -81.6127548488831565 29.39288463556721
-99686 -146.228446839233413 61.1077288861357388
-60637 -87.6035383278153574 41.7813166328898404
-62543 -89.1619286407232607 39.9619022012579279
-47119 -85.8836517228715479 38.3565634483940059
-44035 -82.1051014335056664 41.3714512251540825
-14623 -77.629065191941919 43.079916443579485
-04014 -70.4394165999999728 43.3725729466666579
-54104 -88.4140352693601699 45.4395839696969901
-70937 -102.515649400000001 34.1131161999999932
-97056 -122.918350558126349 45.7727695462842945
-20625 -76.8505057735471553 38.2635754869739415
-32779 -81.4195639643887858 28.7064178819197835
-45052 -84.7473940182469931 39.1511184983899057
-47512 -87.3193060753933565 38.7795256110750373
-71112 -93.6643817956626776 32.4756691261642843
-24226 -82.3293324697016828 37.1471837496591988
-44254 -82.0126979672561589 41.0404804341846798
-22973 -78.4675096764278379 38.3148263922985208
-96114 -120.4678915625 40.3078706874999995
-33618 -82.4979364729517357 28.0734560874723371
-45844 -84.2809291061997072 40.9224020446781012
-94602 -122.206580711722324 37.8046707936522921
-20712 -76.9651209146067998 38.9417133558052271
-90043 -118.338300819605891 33.989809363076354
-67137 -96.2355697327375452 37.6392090454915049
-19501 -76.0565047307691771 40.2419660339366771
-42633 -84.8348705107014496 36.8236311070629654
-80504 -105.027487934066428 40.1632651844939446
-68638 -97.9756600434781717 41.363619304347786
-83864 -116.503799690430313 48.3477162124140136
-48421 -83.3806353589510394 43.1540964766697712
-17406 -76.6514081709104005 40.0079143929736674
-14085 -78.9332121105975375 42.7187182350611252
-76649 -97.8789985386113415 31.9733760369889346
-50464 -93.0937039200000527 43.2491281158621348
-69350 -101.706162756803508 41.928980586566297
-76373 -99.1168667182891738 34.1431911047197332
-27829 -77.626973079687545 35.6930123846354661
-16352 -79.0628862557003202 41.7467543110749517
-82434 -108.332496275000125 44.4409815555555596
-16541 -80.0894045000000006 42.1278124999999974
-97012 -122.186424000000002 47.8522783333333379
-63036 -90.3615168353691303 37.9843438966271805
-43840 -81.601553653978641 40.4054367103225971
-18951 -75.3484740270693436 40.4485241608958077
-44306 -81.4886567251826932 41.0458101883055235
-22552 -77.2317638888889064 37.9907764444444425
-68455 -95.8995979184196301 40.8224059343252748
-21154 -76.3453358717097785 39.6520643433205109
-49009 -85.6849906246076358 42.2705167947122504
-68920 -99.3555615421487914 40.1121414685950626
-74667 -95.3249390384615367 35.8510526923076966
-75143 -96.2226030067130864 32.3525652882493446
-02647 -70.3053775656565421 41.6325041090909451
-85940 -109.739182028626118 34.2678922700381463
-67023 -96.656527296103917 37.3116341610389526
-04210 -70.247361898054308 44.0870519880419707
-64441 -94.2671447429245291 40.3901153443396126
-77951 -96.8967525219012487 28.6482519561975408
-58335 -99.0024318409091109 47.9841448454545372
-16663 -78.3673927777777806 40.7862379999999973
-76644 -97.3748666000000043 31.8622584000000089
-76087 -97.7639916910232785 32.6965608610100062
-91371 -118.571049499999987 34.1839795000000066
-48829 -85.0251410321429262 43.4035575334821999
-54618 -90.3377487951281921 43.9255193075250645
-58004 -97.2537749163722367 47.0166264687868889
-50138 -93.0990869730629242 41.301467817008664
-75069 -96.6044139883023405 33.1752818090445984
-23549 -76.0136221428571304 36.9254029999999958
-36312 -85.2453239717145266 31.170081849144438
-95699 -120.848675521428589 38.437472769047595
-43067 -83.4618915707105913 40.3521717264895727
-83443 -111.668578990046072 43.6029686738131943
-56460 -95.2651217272727138 47.2392144545454542
-65740 -93.160093560485393 36.7136037146325265
-68008 -96.1517163782293522 41.5189531746892442
-01431 -71.8179194674228398 42.6741407812199967
-38181 -81.6116627500000078 29.4943519999999992
-57378 -97.9637869999999964 43.2229434999999995
-05359 -72.716237834392885 43.1413225858231826
-97304 -123.087563054549662 44.9706626837070047
-75782 -95.5971496399999552 32.0884690000000035
-36966 -85.663829249999992 34.8027053750000022
-06013 -72.9527131321337521 41.7580992070773505
-17082 -77.4303237923965355 40.5039839192445825
-34230 -82.5317481666666737 27.3363805000000006
-59414 -111.254376451544459 47.5352792310968368
-62231 -89.3424841428362981 38.6347648257266627
-64136 -94.4001907257683541 39.0220664972418589
-33404 -80.0711733024951258 26.7818541898439726
-65534 -92.2860471347584053 37.7334301517967248
-97317 -122.935497539483919 44.900914727358554
-38333 -87.9898863766453445 36.097039936942565
-77982 -96.4303514310441727 28.4413948682299988
-20817 -77.1416188676196981 38.996084830173956
-68047 -96.7898593849912459 42.0966166903393102
-24657 -81.8648105238774946 37.2336243570919834
-43343 -83.9798343618593748 40.3079478688098263
-98264 -122.458314989348366 48.9414320639104332
-12783 -74.8315636610241768 41.7389507368758146
-49690 -85.4152100311821982 44.7788491729073854
-56317 -94.0915238333333264 45.897961500000001
-73043 -98.3780299014084392 35.729902126760571
-36750 -86.835281153360441 32.7770603068908812
-19009 -75.0665158688525054 40.1332841680327945
-27617 -78.7720153216772019 35.908071498258245
-34593 -80.3533490000000086 27.2174660000000017
-48001 -82.5602547101062072 42.627212408849033
-97621 -121.26359619266718 42.4663470726096577
-25606 -81.8284474392803673 37.763946433283337
-18342 -75.2648930743801827 41.1730293140495789
-75229 -96.855376744188149 32.8948274244498862
-12970 -74.2888395321101598 44.4518006422018672
-88006 -106.919422294117638 32.4765148627450912
-17932 -76.1818343333333274 40.7868103333333352
-73155 -97.575917000000004 35.4803979999999939
-90403 -118.490295306372715 34.0309628946079243
-46102 -86.6198505358850781 39.9953788612440277
-93035 -119.218503236117641 34.183763844125977
-66030 -94.9325736654436696 38.8164328703024353
-40828 -83.1729082397166053 36.8626588395533332
-68462 -96.5217498911722203 40.925262482951851
-75801 -95.6099966960454424 31.7456169183965144
-08504 -74.6997276000000028 40.4082093999999969
-97035 -122.724681050920793 45.4163149364214505
-57449 -98.1860959249649454 45.7237982377279621
-67112 -98.4157507511380771 37.4596927096611623
-81427 -107.680357908593365 38.0309773661740138
-20240 -77.0426147499999985 38.8936017499999949
-72176 -91.8879822601770826 34.9988805006882444
-98813 -119.639737620903773 48.0191828627119648
-51550 -95.8874794192139746 41.7025610698689704
-63134 -90.3402689062261288 38.7402914215946623
-25154 -81.7098094796163537 38.1198957434052659
-30064 -84.6160195039173857 33.9383974279333884
-45315 -84.3335204324906869 39.8545690893958522
-83824 -116.876276410301884 47.1048504236234891
-49718 -84.81301981252453 45.724054829745576
-14143 -78.0771839642501675 42.9762540764647554
-16214 -79.3616319053810741 41.1950292919499219
-16948 -77.7521181901363576 41.8732126376606004
-45891 -84.5759506144843556 40.8743400595498585
-64454 -94.6052440330422542 39.6105710877978936
-89145 -115.274972718250226 36.1670309669618248
-01921 -71.0111130593439697 42.6776127285787936
-72475 -90.9368956842105263 35.5644961368421022
-32947 -80.3518439999999998 27.4522868333333321
-67066 -98.7415188588235395 37.7461542794117406
-20901 -77.009974584476069 39.0205024135268914
-01104 -72.5727487820876433 42.1318725725424343
-92557 -117.250104591981682 33.9593207709338287
-83839 -116.245091015724284 47.5612667288276043
-98396 -122.040856987441103 47.1075169183673381
-63826 -89.8316496190476244 36.1805942063491912
-60131 -87.8735712357781722 41.935110624136513
-38851 -88.9766118338459648 33.903167186937651
-24381 -80.8463245291441552 36.7281676161044288
-92321 -117.168050846415497 34.2556473232384775
-28074 -81.8748071333333485 35.246745644444438
-37355 -86.0996936413287841 35.5079620843660564
-86476 -113.619700499999993 35.4574346000000062
-97381 -122.757993271599332 44.9910637857926687
-78959 -97.3095654794600904 29.7192549962832189
-30524 -84.1796669000000009 34.5694779999999966
-67146 -97.1091642194786147 37.3951579428440439
-49783 -84.3164565430743949 46.4434107688837727
-57324 -98.0450999006852442 44.3042630023973487
-29683 -82.489163335106312 35.0200682659574554
-26534 -79.9857989743589997 39.6422671135531175
-39347 -88.9272447837538067 32.0581625838647994
-06043 -72.4409039192884734 41.7659294071477944
-32501 -87.2228865009992802 30.4256004069177912
-43906 -80.7887677671253357 40.0129685618132314
-76379 -98.4743299739130862 33.6487432826087058
-24981 -80.7397355228136604 37.6359033384030255
-81331 -108.821829390191809 37.5722367558635071
-52750 -90.4001607127131308 41.9253076659329196
-40117 -86.1194354032848111 37.899324828467023
-68004 -96.6264631924458968 42.0054366366907033
-63366 -90.721042902289085 38.8175324944952038
-66713 -94.737376047941126 37.0244579701469974
-03266 -71.8549380667195834 43.7991666586575761
-34339 -89.1455160000000006 33.0606870000000015
-13633 -75.4918766768291789 44.4888481178861781
-22728 -77.6938039278620209 38.5807827583235294
-76653 -96.6195398388240392 31.296391221490115
-25005 -81.2663861331443798 38.5784724100567047
-36577 -87.9975027241379451 30.6799487241379225
-26187 -81.4502660352410857 39.3739948032698095
-82072 -105.559740142302743 41.3477879560033301
-70067 -90.1112909281482786 29.7234017770370436
-53811 -90.5191670837288882 42.5378382830509167
-78206 -98.4776886666666798 29.4126683333333325
-84014 -111.880266211317746 40.9273220858725963
-18067 -75.4835448675802496 40.7071793658912355
-07086 -74.0224098324382282 40.7682192438238502
-96024 -122.914209090445084 40.6326968455954827
-61299 -90.5416940000000068 41.5203297500000019
-47457 -86.9048870714285755 38.9117205000000013
-03766 -72.2350887273781694 43.637435448362794
-68025 -96.4926434915658433 41.4355529898502937
-25261 -81.0936665956677132 38.824758640794208
-39661 -91.0860818705288438 31.505314025780141
-62410 -87.7263548885601665 38.5320765512820742
-25438 -77.8602479772895748 39.3087108970625252
-05089 -72.444321130015993 43.4895220712815842
-13778 -75.7648161974647962 42.3406163562896012
-48441 -82.6764090045820836 43.8006581088201372
-98381 -124.35519484202662 48.2774564123200562
-81151 -105.858302550631137 37.2575943967230572
-58559 -100.738095679629012 47.4572573541729525
-17867 -76.6901105570776451 40.712821150684924
-04678 -68.3301700000000096 44.281480000000002
-34207 -82.5788227668082868 27.4396533460992806
-95391 -121.551530211475665 37.7739989331967294
-27555 -78.2040714905660366 35.5627203679245127
-44555 -80.6420246666666714 41.1018964999999952
-56044 -93.9296565793624296 44.560235569424087
-38837 -88.279230294117653 34.6663111764705931
-35085 -86.7397580439470062 32.9637333347006845
-36456 -86.7691333810409731 31.5472070533722224
-80921 -104.814420479902594 39.0383954724590652
-02740 -70.9392981476888878 41.6359567303173819
-18256 -76.1446934784172811 40.9407082194244367
-18829 -76.1703962502178626 41.8343403596338348
-30677 -83.4104986302685916 33.8418317319593314
-87620 -112.730601849999999 37.9956199000000012
-49955 -88.6696145233645012 47.0401767258567176
-63456 -91.7307236840697868 39.6849599527443715
-12530 -73.6903286503067818 42.1987953312883519
-55665 -94.1600710000000021 46.9512725000000017
-12950 -73.555537871504086 44.2983863892667813
-61490 -90.2719392746574414 41.1914365165854761
-23030 -77.0859596751379001 37.3640863128545888
-60201 -87.6995301115072294 42.0567601672050699
-88325 -105.819094341852846 32.9350081492884499
-96135 -120.21442685087726 39.7939176315789425
-87564 -105.64290863001743 36.6024670296684036
-35646 -87.5385543875557772 34.6596625325675731
-93651 -119.51674423066622 37.0031814651319877
-64732 -94.5551672499999825 37.4093037499999994
-74146 -95.8533040515749377 36.1048445091727572
-67671 -99.1455172432173271 38.8611031013802801
-38198 -89.7567541111110927 34.3383993333333422
-15027 -80.2343746834646225 40.66431815354332
-67054 -99.2962655125229219 37.5982364098961739
-78248 -98.5257870004247849 29.5908219770749632
-67549 -97.9428253333333174 38.3352299999999957
-11949 -72.7929864830710187 40.8480904420046613
-78042 -98.8616685555555392 28.1217477222222207
-77586 -95.0370772297986264 29.5758494110429737
-37658 -82.1758494879072856 36.2558606368107874
-37382 -85.990923749999979 35.5575111249999978
-46913 -86.4860703231016856 40.5028110866989408
-04347 -69.8037750474012171 44.2873606694387192
-51240 -96.4524700340401608 43.3092081962653808
-96726 -155.879334666666665 19.4546623333333315
-28448 -78.3083086078430881 34.4758150458750379
-15122 -79.8968754237722436 40.3648099154533355
-15064 -80.1495277032520477 40.3542937540650399
-89004 -115.47502497452227 36.0414563354564947
-70121 -90.1606933688780572 29.9625593265022445
-37147 -87.6549206523297784 35.6880139032258015
-21464 -75.7013633333333473 37.7090114444444495
-01094 -72.1442240913241903 42.3598023881278536
-98260 -122.446291370468373 48.0338755676599547
-19734 -75.6673963044433293 39.39281102483762
-21539 -79.0095901206706799 39.6024793213634112
-26266 -80.4936728427228871 38.4169564389671336
-38941 -90.3377858512238561 33.486901037193924
-75480 -95.1995308304452834 33.0328820448019371
-92867 -117.822246835377385 33.8161541631465852
-48890 -84.965061576857579 42.7709921588202704
-41075 -84.454027015173196 39.0796410785380459
-68701 -97.3780783692988905 42.0113129012812934
-56208 -96.0002302110249275 45.2262233819982313
-56091 -93.6914588978828533 43.9202575043586378
-72310 -89.7999352857142696 35.9156492857142808
-28033 -81.3242793022816812 35.4191607304698266
-81043 -102.218399372222223 38.1201571999999942
-61102 -89.138006026969137 42.2495752706874939
-51241 -96.4479287452342646 43.4502779347920765
-45040 -84.3150591066102777 39.3475535702141741
-73127 -97.6417343678411953 35.4823936532992263
-00642 -66.224817657142836 18.218517457142859
-04024 -70.6854379690000201 43.8338478690000031
-76439 -97.9256476000000049 32.6192247000000037
-63047 -90.4806603409090968 38.1982798295454486
-36789 -87.7468020000000024 31.8634205000000001
-60966 -87.5773087840909739 40.7600421067653613
-67049 -97.8488941379309978 37.1759414568965809
-65278 -92.4118983297872632 39.3415115000000029
-28774 -83.0120384408839556 35.1164838982054661
-06237 -72.3041149210373817 41.7004165359007644
-57766 -103.259208554033449 43.399052736681881
-33334 -80.1336865990170111 26.1828651955249647
-92108 -117.138352885613983 32.7756887796105971
-18847 -75.5746091795787152 41.9262749690866912
-92106 -117.230257639156349 32.7281540785039908
-75656 -94.6050222628844324 33.0153704317359242
-33443 -80.0929747142857025 26.3043882857142854
-17502 -76.6659522574655199 40.1033097017479534
-23072 -76.4850792382763842 37.2926586954472299
-57026 -96.5294852180283556 44.2108355141784557
-17370 -76.7750051718025901 40.1212495523882922
-47236 -85.7249642311321338 39.1524574292452741
-18045 -75.2672676996617582 40.6861712704168781
-54543 -89.5609345200000035 45.7411925199999914
-95257 -120.486659658291515 38.3759290093324594
-93605 -119.245132413978595 37.2044543844086348
-80435 -105.998642284113018 39.6151064585382642
-54115 -88.0749555226197884 44.4206407149487887
-10075 -73.9568245381817917 40.773473098181789
-98039 -122.231992747736356 47.6240502988356766
-51030 -96.198854873473266 42.4889137620908457
-31554 -82.6371741405345688 31.4894521193703802
-28047 -81.79836825000001 35.2557054999999977
-52656 -91.4509015741816995 40.7318700748750544
-04969 -69.2238852836938321 44.7642947271214311
-13861 -75.1270292121212435 42.4898103398268745
-12786 -74.8397968782239786 41.6554816892176731
-12752 -74.9911591504630195 41.6827722175925928
-72425 -90.7375329932704204 36.2015981754150005
-56666 -94.9004676753246912 48.0339878181818065
-56241 -95.5423474579651923 44.7993144945172546
-97634 -121.832557343042041 42.1071413527508227
-60452 -87.7554798365499522 41.6072294314434146
-49306 -85.5784889781091209 43.0749945434141779
-75780 -95.0860181208791033 31.9797768681318608
-24220 -82.2497617235508756 37.1674628470357789
-11518 -73.6679943999999693 40.6401588912620539
-23937 -78.532134629983176 36.9526390365448592
-53523 -89.0446965711755922 42.9849425494310537
-68835 -98.6148991236068184 41.3211789976359611
-97042 -122.544965417228312 45.2115372982379498
-54726 -91.0285952887595613 44.9992101782945326
-56389 -95.0841552258064411 45.7996755645161215
-68812 -99.2722248237937919 40.8854880433221481
-21678 -76.093483719241064 39.3069693960865578
-50122 -93.3060680768944053 42.3026997769878079
-03581 -71.1687675947446223 44.3944361876387532
-12958 -73.5751355669250131 44.9660144299741731
-11371 -73.8871634999999998 40.7684689999999961
-57012 -97.2610938667641136 43.5925827582543874
-71973 -94.3475487811240896 34.3050399076362424
-47469 -86.6101135161344331 38.6062057779119172
-20053 -77.0099479999999943 38.8831136666666666
-21144 -76.6898428334270221 39.1258401245415328
-23576 -81.558109999999985 38.3123578571428567
-54880 -92.0981612002563139 46.6643206630199501
-45875 -84.0590265125413083 41.0215152395383242
-88314 -105.858718227835979 33.1499281077216281
-62558 -89.5610398939549981 39.5966320447698195
-74047 -96.0141318128822547 35.8531474342224428
-98335 -122.614291237300179 47.3003660115957061
-76460 -98.5145040341393781 33.2880047155049326
-30828 -82.6501157289007296 33.3834758390069197
-16116 -80.4544336891721912 41.0377534757961939
-31034 -83.2333690138888755 33.0508074166666646
-05677 -72.7088562392778073 44.3819569056022871
-07728 -74.2746629301504981 40.2382108537121894
-13206 -76.1078523244781024 43.0699000290051259
-62301 -91.3777731500169921 39.929978541325184
-11417 -73.8477112222222161 40.6733204444444354
-84755 -112.712765972477115 37.2541913119265971
-20759 -76.9246730233159894 39.1562177746113562
-35123 -86.5496483333333373 33.5595816666666664
-32220 -81.8220595935811019 30.3304760413918473
-28545 -77.4552333750000059 34.7155766249999971
-03457 -72.1302900193370675 42.9995656756906897
-74540 -95.6943042459016766 34.5414295737704933
-07927 -74.4532368920703505 40.8224318406755202
-14228 -78.7922280079971955 43.0327217619954538
-16665 -78.4341201595330944 40.3914799610894519
-63901 -90.4394943228270023 36.7764369699460758
-42433 -87.2806434999999965 37.247738499999997
-77076 -95.3822394653539476 29.8590087156031636
-31739 -84.0640669166666754 31.1618912500000071
-38376 -88.3616039498326984 35.1095895183946141
-74036 -95.514193200762918 36.1537188682337245
-21791 -77.1882042874620851 39.5431380977203446
-29048 -80.3155082022853435 33.3929211018720764
-94951 -122.65264802823539 38.316318470117551
-71356 -92.0400185942228433 30.837033568088021
-65063 -92.084224901813343 38.7216739137549979
-47435 -86.2950109000000083 39.265960800000002
-83428 -111.208591251950111 43.3514976833073362
-85726 -111.067449909090911 32.1911620909090885
-76673 -96.8852353810693216 31.745416984634339
-95951 -122.016233857923567 39.7353738488160246
-75788 -94.9210688117646839 31.8263569117647158
-22940 -78.5900270476937379 38.219270705450711
-15858 -78.28609944444446 41.2891566666666634
-86912 -109.998419499999997 34.3925584999999998
-54775 -87.708223000000018 44.0740023333333397
-35051 -86.6148994601644517 33.2049545356258022
-60436 -88.1125338958730424 41.5060757694126465
-62565 -88.8027911063216635 39.413839912835364
-08609 -74.7384367189234951 40.2233088312686817
-19444 -75.2578252680009285 40.0882787241775489
-77326 -94.8213445061728493 30.5166531851851914
-35226 -86.8370708870317287 33.401652270040266
-24915 -79.7983282122093129 38.4524723546511424
-86047 -110.696412300738672 35.0315540178227707
-59053 -110.463585043935083 46.4603851585482701
-45861 -84.4203127383178327 41.0897503644859938
-99614 -164.037034199999994 59.9384778000000011
-65661 -93.8235989594410427 37.4532708972510591
-19432 -75.5720704166666621 40.0800593124999978
-98685 -122.688156331967477 45.7119021997807096
-98736 -122.811311500000002 47.8816355000000016
-06460 -73.045353619854879 41.216013030389469
-58654 -103.817927387744859 46.8171505419387302
-52359 -91.8135922203209134 41.3565993871657653
-18456 -75.3450331181102797 41.6166579268841161
-60189 -88.1077087144686288 41.8422262616694169
-80247 -104.877168636830035 39.6947501132867941
-24122 -79.696633729383251 37.415155340269024
-49970 -88.5954446929935955 46.5537520305732571
-11419 -73.8243061176470832 40.6892516470588248
-27981 -75.638421681189584 35.8433665110650139
-62953 -88.8432836441948268 37.2083589475655501
-40010 -85.4487586746639067 38.3725783291746581
-38930 -90.1478678259826154 33.5070793305226573
-38848 -88.2850943937722263 33.9450936714239546
-62031 -90.5276611109947851 39.1113372023665704
-71378 -91.7012456866039969 31.9607771848739972
-71029 -93.8258921239602159 32.8296865890182374
-50602 -92.7990808309261297 42.7439044885301485
-42759 -85.5185620322580462 36.8374727311827854
-13842 -74.723123465816272 42.3741831076532094
-42534 -84.4816640000000092 36.7134166666666673
-70718 -90.8623572500000023 30.196768500000001
-54603 -91.2496585687927677 43.8507010801296744
-79781 -101.817386418803437 30.7272453461538397
-15102 -80.0378639646821881 40.321976039217553
-97221 -122.726921757270389 45.4972559195326909
-83251 -113.695375679760005 43.9369186464713124
-54820 -91.5736843408009094 46.6118551233933118
-30322 -84.3244762320675108 33.7939417383966472
-70730 -91.0970231941480364 30.8158428421614516
-25678 -82.097168519832934 37.5995875782881086
-91188 -118.142203249999994 34.1496169999999992
-42274 -86.5970930909827672 36.9494870431763331
-57577 -101.677357353571466 43.5494772714285645
-61236 -90.3587901494253174 41.5166305517241341
-46184 -86.0878591484965483 39.558939318138961
-59856 -114.790705345678973 47.3862550895061858
-62339 -91.0443549959612852 40.1262051607431616
-62933 -89.0269200775755962 37.7750744084848833
-64457 -94.6951891182059171 40.1622704393767052
-16728 -78.9079239000000001 41.5711005999999941
-42357 -87.3332759791666717 37.6474680208333226
-21522 -79.2278315714285952 39.6057294258760422
-16667 -78.530464320936801 40.1760058530761128
-98448 -122.422862800000004 47.1368261999999945
-67455 -98.1439853553327737 39.032518892751888
-71999 -93.0559071428571372 34.1273026428571455
-99847 -119.503213408450705 48.5134697042253435
-37012 -86.0164124079222603 36.0726110012160817
-25119 -81.263263999999964 38.0502696023391849
-60617 -87.5569396664094199 41.7219842842117146
-28645 -81.5412945777667346 35.9461634742003113
-29921 -81.1843812478992248 32.6855531974790097
-61252 -90.135069436514442 41.8509120658683145
-78107 -97.5804329580924303 28.5370041228323821
-75765 -95.2215324966605294 32.6674863388990673
-30025 -83.7150425073947417 33.6403746952251055
-93280 -119.366490841511705 35.6035824018612459
-83262 -112.612921539338544 43.1315401033827897
-98136 -122.389285797456822 47.5363870908265511
-26582 -80.3734045247745996 39.5262415690363937
-30669 -83.104632573955314 33.6628395724076341
-07644 -74.082053486245357 40.877179052788108
-23188 -76.7622697350914649 37.318659864190181
-35764 -86.3156574189187751 34.7110030315315043
-96752 -159.718220826412391 21.9714176303607758
-03290 -71.105436491703955 43.1242304195417958
-64499 -94.4350397925311853 40.3944473817427578
-97377 -123.115024096990751 44.4610238784691489
-42044 -88.263489786362058 36.9490599390352941
-77745 -96.6781466666666773 29.4924769999999974
-75421 -95.7137115278711121 33.6512304217596281
-22709 -78.2183145928969594 38.3318048368956994
-03276 -71.5783266550101445 43.4383612839611999
-68715 -97.6004435365685055 41.9791772672292609
-32164 -81.2237992122268935 29.4986929683774903
-28722 -82.1542821529857576 35.2414408975504188
-71357 -91.2771687322191383 32.0922145542168877
-28516 -76.6292879255493347 34.7967872334154436
-27404 -79.69107249999999 36.0891055000000023
-01003 -72.5223112311827691 42.3911235698924997
-01347 -72.516469316129033 42.5564819677419237
-07457 -74.3112834913856943 40.9927343498127215
-77541 -95.3496297205644652 28.9824610735756849
-95684 -120.649653927123794 38.6086880572189131
-38637 -90.0509802241209769 34.9532426395786615
-67553 -99.3074908245613415 38.660299938596502
-66413 -95.8556071463814732 38.767689407483509
-17922 -76.1376170368235989 40.5948364192817905
-00780 -66.5470882771209347 18.0438934915166875
-93460 -120.065943739625084 34.6441708337025815
-30641 -83.5718287844110961 33.7697198761747259
-11415 -73.8307327954545372 40.7100902272727296
-20187 -77.7401088792758088 38.7344638568648776
-56080 -93.8552012896551986 44.0797536620689812
-08518 -74.8015595940592561 40.11679113321334
-28650 -81.1595405691005851 35.5711474913026535
-16943 -77.5910883283191168 41.8462413726965536
-68542 -96.7596246666666531 40.7846916666666672
-75977 -93.7885718491853595 31.0180529427813063
-74426 -95.529008475893022 35.4544148548588183
-19146 -75.1803525323268786 39.9392852601937136
-17768 -76.7369806555790461 41.5524462917893445
-14529 -77.6272672399999948 42.5390272799999991
-77971 -96.5415197299035128 28.8482030836012768
-35744 -85.9085319346371818 34.6109409583118435
-95148 -121.786710371984412 37.3310066781112653
-32714 -81.4117819625764412 28.6639595206471505
-65452 -92.261963724458198 37.9556341241962869
-38726 -90.9814342663317319 33.7651245100502706
-93463 -120.132839300864191 34.6075836340928049
-68431 -95.4421372847966012 40.0710215117772961
-92225 -114.607871660591314 33.6256306395003008
-59218 -104.489466971443008 48.1295416369199742
-38057 -89.3823179626284343 35.0644871946433412
-23603 -76.5745108679138866 37.1984686921769097
-17941 -76.6109493934923762 40.6793237010915263
-85711 -110.884892410603015 32.215369366605259
-56183 -95.4117912972503746 44.0371713007358636
-27409 -79.9355964910044037 36.0851567599356358
-01606 -71.7970507622335674 42.3135378311090804
-48836 -84.07902115061529 42.6585177873365566
-64631 -92.8780162175091419 39.8117107199157729
-24899 -81.7061125517241464 37.3222391379310352
-24350 -80.9957653757790865 36.8195351531612616
-53001 -87.9497571036036305 43.6208620945945711
-07955 -74.7220116666666598 40.7160559047619159
-13863 -75.9036594537190865 42.4427991206612134
-12571 -73.8242111245802448 42.0020867199744572
-16374 -79.8014135617803504 41.2644057600920959
-20194 -77.3449366465771533 38.9797046569143149
-07662 -74.0796150577096739 40.9082563940487134
-10172 -73.9750300000000038 40.7555754999999991
-53572 -89.7328489543408381 42.9798948552639146
-12176 -73.9628275207956705 42.3871630452079771
-15619 -79.5039859196428012 40.3173619910714294
-35593 -88.0783282118497368 34.350825192282592
-96737 -155.77672126415095 19.1057499433962263
-68954 -98.2318636693548513 40.6219647258064498
-00683 -67.0346303996102932 18.0848676291423303
-63738 -89.9566703928571485 37.0826265714285768
-95619 -120.811421152264387 38.6840922911148581
-83278 -114.881103167088469 44.1914539417721812
-75939 -94.7932469291676369 31.012617679942764
-85862 -95.3597565000000031 30.8826205000000016
-49078 -85.7190506845605711 42.4616295927111622
-29810 -81.3301065672420265 33.0080381220896513
-03237 -71.3955803178176751 43.4236719954954467
-19340 -75.671882999999994 39.8654633333333308
-75246 -96.773175396797086 32.7926416921707826
-47116 -86.6104431361896872 38.3321189758990002
-24070 -80.1908671569185003 37.3597969858284102
-15744 -79.0832349372196717 40.9221881300448302
-60713 -97.2815310000000011 40.7779090000000011
-85724 -110.945447181818182 32.2411812727272675
-18069 -75.6116033816909408 40.6239858619502101
-30337 -84.4609547215223557 33.64946822353253
-48059 -82.4877281669500064 43.0675954458922732
-28002 -80.1865763846153783 35.3289703846153813
-22810 -78.7769736126543876 38.8158218599537364
-31639 -83.2266435137576366 31.1960888352573171
-17249 -77.8956608843536884 40.2456347823129335
-47838 -87.3781991687410198 38.961087507670058
-25647 -81.9885463070175859 37.7892441432748711
-14897 -77.7791651459488094 42.0310925188726401
-28367 -79.7229448372093259 35.1676332732558308
-82710 -104.260803006584396 44.6890658814815183
-63958 -89.9707605294117627 37.0884759999999929
-17543 -76.2966555110527338 40.1624675158528817
-20880 -77.1742725320000034 39.1394996200000094
-98305 -124.29335219495546 48.0593314328562542
-63072 -90.8102062343908614 38.3678129226004927
-65716 -93.3717804999999998 37.4727664999999988
-42027 -88.6325260989096364 36.9164736675316476
-56218 -95.9345790687500539 44.8288158339286156
-24167 -80.7352399007907735 37.2459478758893141
-75210 -96.7472459127737352 32.7711291273722978
-62295 -90.3069192083794263 38.2918155838735217
-59913 -114.038869709764867 48.4268219303798162
-67149 -97.6168155571239993 37.5402656307896407
-25030 -81.2306049411491813 38.4546440254866084
-92883 -117.486693720338039 33.7750131786627605
-62711 -89.7263871107557804 39.7661671677329025
-46550 -85.9958516892350957 41.4530575029932251
-92555 -117.182527499148932 33.9223803722910873
-11755 -73.1160239317184306 40.8570845432525473
-28681 -81.2192790906572242 35.9076135073373877
-41649 -82.7662637371930998 37.5691797917550119
-25141 -81.0307939606879302 38.6332712162162437
-51647 -95.321220320754648 40.6060258777358385
-38034 -89.2451509441192599 35.9064991459248617
-81301 -107.814623599404726 37.3574769690421249
-96780 -155.213537630434786 19.9720393478260938
-77551 -94.8296414019682175 29.2787381137396743
-50634 -92.2142525236363042 42.4177309509091032
-71230 -91.5608368249999955 32.2439659499999962
-72941 -94.1624889442668547 35.3462834302500752
-93455 -120.429463179665362 34.8790691276708813
-53583 -89.6914199409808788 43.262230844275976
-36474 -86.6106562914607281 31.4149511656416003
-15522 -78.5385519048727474 39.9803039876147963
-61742 -89.2691532988980754 40.6273148264462662
-61425 -91.0531759239130878 40.7522430905797464
-74977 -94.8682725000000033 34.6763860000000008
-95419 -122.985113970674519 38.4491615527859523
-14212 -78.8200706314984529 42.8946135402650555
-67361 -96.2013647558619596 37.1085497620690248
-87544 -106.293516512971692 35.8838027501684991
-12726 -74.9858709213450965 41.697817794528298
-55975 -92.3882325737645971 43.691149123629927
-79309 -85.8066840000000042 43.7740836666666624
-03773 -72.1863142255478607 43.3566458238467618
-11730 -73.1842703661378806 40.7294443793000625
-75180 -96.6147387928629939 32.7187321526697303
-03113 -85.201068333333339 33.8569558333333305
-05069 -72.1471368343559192 44.1737385358762396
-55957 -92.2877765581551728 44.2606559445187315
-79109 -101.881099636273561 35.1688882095229616
-54722 -91.130131009868407 44.6825772212170733
-68818 -98.0089876056923544 40.8375076532898333
-61114 -89.0045219351802643 42.3074409019111854
-02338 -70.8541286048972836 41.9971500155634203
-49256 -84.2220233230884361 41.7470437899743558
-53817 -90.9729070769231072 42.9401323615384669
-59089 -107.398976047244062 45.0930761653543541
-72933 -94.0342484995993857 35.3223112540318027
-37863 -83.5635369669645058 35.7878745620759915
-19320 -75.8271333785713892 39.9801209697541751
-32816 -81.2151140925925858 28.6050707407407394
-68405 -97.0614459136816237 40.7618377166595423
-45734 -81.1903950079265684 39.6378806184866832
-36482 -87.6490414171881014 31.6332280175219367
-56231 -95.7644459037958313 45.2762027912303608
-43608 -83.5335916606871791 41.678912769838881
-60919 -88.2601714743876613 40.9915424988864245
-75409 -96.5263017118384425 33.3510083062808889
-03253 -71.5019213793960091 43.6346599710880767
-28320 -78.7830231834703056 34.5617448824705207
-63379 -90.9795731151415055 38.9914584704563225
-97431 -122.822848983934506 43.8987684362727322
-16922 -77.6773320432650962 41.6674981590331583
-54577 -89.8979645749999889 46.2029555749999901
-93023 -119.25643645669723 34.4715841686349123
-96095 -122.562148045454506 40.6344812575757572
-30147 -85.2029106824179792 34.1506878137465648
-12200 -73.7952204999999992 42.6588449999999995
-34208 -82.5248736311275906 27.4879357081048461
-12920 -74.0602042321519463 44.8968550716456676
-45897 -83.6516764698795043 40.8331008313253037
-15711 -78.9624444482109737 41.0016387288135533
-98558 -122.502948235294085 46.9405282205882415
-81603 -108.219347333333346 39.335290333333333
-55396 -94.3720347163568221 44.5485903352667663
-55758 -92.7303871258740884 47.512790818181827
-53830 -116.38730799999999 47.1237355000000022
-81654 -106.984435467948728 39.285440441794897
-09725 -85.5129190000000108 30.1294450000000005
-11530 -73.645274342580052 40.72628127953449
-27338 -79.7547739999999976 35.1508343333333286
-98923 -120.722052074886889 46.665713752098064
-93252 -119.389273917344326 34.913616202235815
-94133 -122.410081652389792 37.8008534535617926
-57702 -103.350130318738209 44.0490743523457411
-04030 -70.6962157572092735 43.5982220245638885
-61948 -88.1690473333333244 39.793024333333328
-30732 -84.6940245862069219 34.563844379310332
-49978 -85.6779310000000009 42.4500134000000031
-32691 -82.8867891428571255 29.7115767142857159
-60630 -87.7599012884933671 41.9710611836833536
-12150 -74.0469011860465969 42.8757936550387413
-19967 -75.1195591141869272 38.5396156585928722
-50652 -92.6912155212120723 42.2625292666666468
-18105 -75.493699333333339 40.6010153333333292
-60064 -87.8548039296621823 42.3254938259646423
-46322 -87.4591541211025145 41.5483834743744822
-37148 -86.5038758745762379 36.5729262523874183
-25387 -81.6649903676506881 38.3806232740580526
-97140 -122.859087095295124 45.3518544592810429
-97368 -123.927820293350692 45.0133050250164501
-32043 -81.7300210677223617 29.9925923562853036
-30028 -84.1804784289880956 34.2885087893900007
-92003 -117.201758204691387 33.2815015093040998
-63303 -90.5433831660426449 38.7544420512909369
-33994 -81.9509160000000065 26.5532233333333352
-87619 -105.622997285714277 36.7855598571428573
-52590 -93.1148759120929981 40.6757700427906812
-55322 -93.7875282272041488 44.7723606988574474
-05061 -72.5786456501670045 43.9352014271094049
-35023 -87.0527622480553589 33.4613238211879747
-80840 -104.860132617647039 38.9801090735294338
-03103 -71.4470524692856799 42.9618335315634283
-53205 -87.9340724367675364 43.0533906076496109
-74710 -85.7189570000000032 38.7331814285714273
-19076 -75.307547011734755 39.8849782903061154
-95224 -120.348883758509757 38.2201275317919738
-60511 -88.5738834428570954 41.7493861785714344
-47223 -85.4828036113525656 39.0540188115942613
-60631 -87.8097509418061293 41.9960754010826491
-39191 -90.4150327706728945 31.7071098206171413
-37723 -84.8431307128213632 35.9464965282895292
-30566 -83.8968367139926698 34.2377086294439508
-01519 -71.6843642819791427 42.2007513381590513
-44626 -81.3767143537975528 40.6966160397152379
-33173 -80.3594686824228575 25.7018941937704994
-73481 -97.5058702767213816 34.4317107954098702
-57218 -96.6157329667774292 44.658229405315609
-02464 -71.2209676427907254 42.3135058576744356
-97982 -96.4187074999999965 28.4466675000000002
-30414 -81.9721109696969563 32.1623844848484879
-79051 -102.252384709090919 36.4862542363636209
-45226 -84.4299752632704497 39.1174260815816552
-59940 -88.8621954999999843 44.1679050714285637
-37738 -83.4715020532610339 35.734134718643098
-77417 -95.9584120392473636 29.4870886586021399
-61545 -89.3529926001012313 40.8725601910796001
-80933 -104.917655249999996 39.122212999999995
-49075 -85.4501256511627787 41.9172900000000013
-10537 -73.8849626847612484 41.3377335055592425
-38455 -86.8835589433962667 35.0635671698113143
-75156 -96.1092467708333515 32.2857677169742985
-39609 -90.8402223749999962 31.6426385000000003
-98844 -119.26743817621346 48.9131741324663949
-87127 -106.944567285714257 36.099300428571425
-52253 -91.3661382237025634 41.8971092248128514
-66414 -95.6894449623476504 38.8256282491693838
-39739 -88.5616948990923305 33.2379059583554124
-11789 -72.9714805092004468 40.957362784543264
-78564 -99.1410042909091231 26.6332088363636572
-03601 -72.2986699375480555 43.2325312197377869
-77375 -95.5852645621720427 30.0885880419681335
-23176 -76.419036403521531 37.571773050623591
-95676 -121.729455346774301 38.8975543064516032
-16671 -78.4004959159090902 40.8007486272727391
-37273 -85.3674321666666742 33.594324499999999
-87735 -105.118796637362593 36.0574838571428629
-74079 -96.6656273383354687 35.7529591055935327
-16326 -79.4316207690742857 41.3579976378433543
-12115 -73.5833729979878939 42.4722271830985818
-30823 -82.4559787626524781 33.2112642219214322
-63045 -90.4597866422018626 38.7612898440366962
-75844 -95.447274617980014 31.4996957379916971
-41606 -82.7356211190964359 37.3386466067762157
-18352 -75.3608005604113345 41.008579071979419
-76261 -97.9401468745019343 33.8177915856573605
-99575 -158.138326333333339 61.8671916666666633
-50170 -93.1122137730403807 41.5312856939981216
-84747 -111.615665926875508 38.4343413950617929
-30453 -82.1158313931567818 32.0468774825694709
-26346 -81.0452555182013441 39.311115127408975
-85032 -112.0047768090582 33.6251632639104727
-52033 -90.9979470257612775 42.2826558109547932
-73841 -99.574089079625324 36.5713284309133613
-53135 -88.4055060000000026 42.9328014999999965
-20006 -77.0422856625955177 38.8980253923663497
-92562 -117.243103988528361 33.5654971350334748
-52358 -91.3257065317696686 41.686200997005983
-07033 -74.2935029832690645 40.6761241930501924
-31724 -84.8728585384615428 31.5265413076923053
-63016 -90.6424424003650557 38.3552611429995025
-28703 -83.587279594594591 35.2041048108108114
-79101 -101.841004213286723 35.2055383096903185
-06021 -73.0982943811852834 41.9971206760645472
-78595 -98.5612391170350151 26.283802823146921
-72088 -92.2710558484299668 35.5969597592049283
-32655 -82.5967997894736925 29.8299610000000008
-30347 -85.2152983333333367 34.463062833333332
-78347 -97.4727244166666793 27.5892863611111103
-59761 -113.531336286879181 45.6056426323202047
-51656 -95.1594704823529156 40.734444988235289
-39668 -90.7485248698082785 31.6736836022364265
-42149 -85.732603714285716 37.1106847499999972
-92833 -117.960907620380553 33.8793980489953341
-67154 -97.1222352825485302 37.9674863022159528
-95038 -121.58193 37.153655999999998
-64734 -94.578639232086644 38.6567169054266699
-50225 -93.2671335949868165 41.3775629034007935
-23131 -76.477904499999994 37.3182635000000005
-00934 -66.1250124077669597 18.41025643689321
-31605 -83.2511352300781624 30.9215580204275398
-08857 -74.3259436684218855 40.3913949217399875
-15108 -80.1876285561071143 40.5038195810032917
-15762 -78.8306997691353644 40.6016487410012914
-54801 -92.0090814379731086 45.8634986449865352
-47708 -87.5733988006135462 37.9738960245399042
-49499 -86.4307179999999988 43.8135235000000023
-89016 -115.024359500000003 36.0578210000000041
-43968 -80.6735455251195361 40.6290601127169708
-88230 -104.421273788415945 33.2373905845236521
-46725 -85.474739676892554 41.1712666391735809
-26167 -80.7324850889893924 39.5637615324283445
-81502 -108.54260450000001 39.048311499999997
-10931 -74.1693093819578877 41.1247776372360576
-14826 -77.4980132388701151 42.4911970562046761
-38241 -88.5950884889122818 36.420641826399148
-23504 -76.2666025639460941 36.8578432338961832
-17403 -76.710902092544444 39.938175695473042
-36432 -87.0478688416747985 31.2985126237584979
-66607 -95.6490174511681062 39.0424622816462943
-22318 -77.1610013333333313 38.8222909999999999
-01841 -71.1658738420865973 42.7108845088705564
-62011 -89.2120366794257933 39.1136249186602996
-50324 -93.7118235439189249 41.6060214245495388
-44417 -80.6659885603603328 41.4363047081081106
-62418 -88.9758110070093693 39.0206833523364622
-71753 -93.2086326289038709 33.2423719196304006
-31726 -84.3615929459459437 31.8285632702702692
-02454 -71.2456378235294068 42.3572802352941196
-07746 -74.2583870902847565 40.3136563215242916
-58213 -97.2424537999999927 48.1879491999999985
-93534 -118.150612917665441 34.6940406247859059
-29075 -81.3839758080255962 34.1940173682194981
-44491 -80.9741480384991235 41.3728765355749601
-40221 -85.7508401666666629 38.1888668333333356
-68063 -96.5037003473053829 41.7341320119760368
-20534 -77.0124100000000027 38.8938566666666645
-17340 -77.1070672082762627 39.7517921891485955
-18210 -75.5504720474332174 40.9965025195437391
-56520 -96.5730635893369538 46.2674697812087103
-79003 -100.101380497206691 35.6108513966480658
-94704 -122.259281082587322 37.8668871383238539
-40272 -85.8523673004698793 38.0960044751979439
-03784 -72.2950347761263998 43.6477085267069711
-25423 -77.7997826363636307 39.3125569090909082
-20011 -77.019778360214616 38.9528776172378883
-68510 -96.6471418264327866 40.8063216474522719
-10527 -73.7567699556451544 41.3105998205645051
-45242 -84.3554194815498875 39.2407233932058617
-41643 -82.8316719122806973 37.4617037684210388
-99517 -149.938030113838636 61.189711267698236
-07087 -74.0317715696290719 40.7677171347096774
-35025 -83.5805571428571454 34.8572509285714318
-46163 -85.906814917470939 39.7348218182030024
-26253 -79.8709727554180802 38.8281749715170221
-20734 -80.518897999999993 37.1244186666666636
-89835 -114.929709321003884 41.1123424029061866
-00717 -66.607711342412415 18.0137087821011619
-34797 -81.8215679121798019 28.7427913596445492
-78117 -97.952626289812045 28.9619587082096857
-24503 -79.2345430972228968 37.4474973425237962
-81222 -105.763594689979286 38.3644290668058616
-41143 -82.9559599034641479 38.3232879545815237
-28115 -80.7872691695435776 35.5806844242657689
-96721 -155.14081035000001 19.8518499999999989
-62903 -89.2694627774917109 37.6721532180626966
-68977 -99.621178294277982 40.0977177166212684
-71330 -92.242629522293015 31.1102717388535197
-24532 -78.7432267499999909 36.8915554999999955
-35041 -87.2267908749999776 32.9196586249999967
-49858 -87.6182575078189103 45.1206413675803546
-45617 -83.1571075192307632 39.2816890576923043
-48035 -82.9118648675031267 42.5574663311167072
-06001 -72.8656513692551187 41.7916780487200512
-15530 -78.9255137323574445 39.940264842156445
-24572 -79.1111592211076697 37.4644133839908022
-93202 -119.70906493077733 36.3119966911607719
-32403 -85.6312382644815955 30.0935372057927069
-48169 -83.9215142151926727 42.4557886765116663
-87835 -107.230521333333328 33.1905576666666704
-71942 -93.0063978985507163 34.2248597826086964
-23878 -77.0116656618751136 36.8204240819993487
-92059 -117.068539435597515 33.3870796450317187
-98424 -122.350791594771309 47.2350465470303362
-98201 -122.200069956288843 47.9865365251508464
-03818 -71.1568967529881604 43.9732090628076691
-27016 -80.2205812378965533 36.4462439415475359
-71831 -93.860575846774168 33.7911648897849304
-50853 -94.7700145588821954 41.247617500000068
-99778 -166.345989847826075 65.2594794565217455
-80108 -104.876795998631991 39.4485106341446397
-28347 -79.5556431616341087 35.0343672646536604
-97045 -122.555698896557018 45.3379644667446158
-15335 -80.0654591052631588 41.6315718421052665
-33175 -80.4115518345599298 25.7337811286437059
-97759 -121.546526794264494 44.3224016252907447
-35045 -86.6594001480424936 32.8197825462946966
-57051 -97.2928005717516271 44.2045094683256679
-30667 -83.1599665041194669 33.7805498156539059
-75222 -96.8948350000000005 32.9072469999999981
-37036 -87.2787251919918532 36.2330955480610299
-49037 -85.231281430551789 42.3371849726874387
-11234 -73.9205738390318885 40.6179906039078347
-45407 -84.2172792007041977 39.758536507042237
-11666 -78.5557385384615543 40.1780090769230753
-39532 -88.9448471736932618 30.4717586154473103
-40962 -83.7631240489089066 37.1683652269832621
-43101 -82.7464459413680373 39.4660142280130017
-13020 -76.0727744821428615 42.8182027678571444
-37060 -86.6353806079868178 35.7484619402174317
-54539 -89.5741618463016209 45.7969071934150449
-30215 -84.4614278510466363 33.4015239529644177
-37302 -85.0232150484634417 35.0142514138997853
-61440 -90.597050055456819 40.3155160792748219
-79789 -103.156066637019137 31.7533284687500235
-72742 -93.4956687309168473 36.0000120218435669
-13797 -76.0350733854299392 42.3385827477535202
-96754 -159.405871894305648 22.2068514606083838
-10460 -73.8798652516752838 40.8400359277735916
-21779 -77.657903137644098 39.4256038681177756
-01368 -72.1839275949120633 42.6787479559686673
-21076 -76.7206165146987189 39.1628607909380904
-74848 -96.383300203349151 35.0801272111778601
-61061 -89.3378283967766151 42.0093329344413391
-20143 -77.5671383119691598 38.8606863884170082
-18508 -75.6607405026332458 41.4413093197827891
-47523 -87.0189123761491459 38.1748399319673055
-51532 -95.1196335881367787 41.1407814232574154
-83202 -112.473553568502567 42.9325196751412292
-16323 -79.8339395919072814 41.4111207050744454
-92127 -117.119104339972822 33.014933318735487
-15059 -80.4785973288609711 40.667639943649327
-77707 -94.1759834943262746 30.0599592261192221
-47393 -84.9990190363572111 39.9611798488120797
-61953 -88.286696350974438 39.7969047225872572
-82939 -110.347389549976313 41.2575901217432204
-52550 -92.3473230753737084 41.3181920896685853
-48822 -84.7692448434277281 42.8272370394796482
-19453 -75.5025366341852191 40.1388438466453721
-98158 -122.301080435374146 47.4555972312925149
-35968 -85.7685353019849828 34.4913011705268531
-48233 -83.0641055000000108 42.3234300000000019
-56251 -94.9230908278844652 45.147216635096278
-76132 -97.4188330699919902 32.667795506263559
-78839 -99.8247520227426577 28.6874961982348786
-23421 -75.6293850926304287 37.7741868365228299
-72326 -90.8409498793676988 35.1125042011231159
-57471 -99.3388003282733791 45.4287733358633545
-50036 -93.8822103488569013 42.0731783401513368
-40353 -83.9412271195577091 38.0613933382969876
-75751 -95.8734805819879199 32.1692001980948845
-98288 -121.350508394834009 47.7127726949569251
-02482 -71.3015278625028657 42.2977452945406895
-40906 -83.8847921409915926 36.867141146336472
-12964 -73.61483903888886 44.1501376944444743
-61085 -90.0391033648090513 42.336245539295966
-70591 -92.833066336342597 30.242357088994094
-99216 -117.21711834826219 47.6668788711117912
-13801 -75.7792976556604003 42.5034207616683872
-50074 -94.0715363324697478 40.8572538108807635
-61740 -88.8628449893559775 40.8829946736423935
-46017 -85.6023016190476511 40.0892104308525603
-66307 -90.7619613333333319 38.5865603333333311
-37607 -86.8019871666666631 35.9347583333333276
-68727 -97.2094552892415891 42.5028538871252479
-22508 -77.7839905424416997 38.3238955953909439
-56437 -95.0413577073792339 46.2543051159578553
-93313 -119.055748153538701 35.2772800521529604
-73002 -97.7416360541871967 34.9502003990147259
-25510 -82.0656005264462607 38.4044306833056268
-71751 -92.7748416538173188 33.4109956361601874
-29848 -82.1473316119578527 33.9992803132474677
-27858 -77.327674704928441 35.568743527915565
-78841 -100.83921470588237 29.3557360588235277
-96779 -156.379433549458383 20.9134562859205673
-27021 -80.3437604039642821 36.3121280715458212
-12585 -73.7074967008263968 41.7234364504132387
-50041 -93.2353904239999736 42.6217268159999989
-68976 -99.7337123882174552 40.5828818670694602
-10463 -73.9071430954138293 40.8814917738535115
-49277 -84.4575293737769499 42.3855981643835449
-27252 -79.3553384010989902 35.5598586088267723
-02837 -71.1648598232983858 41.5122340948770585
-74963 -94.5408788126801056 34.4185995072046538
-81618 -76.0195523888889113 41.3813181666666594
-15547 -79.0695457897196405 40.1594236838006395
-38666 -89.9019541000311051 34.4189577319410276
-18246 -76.1909766060606302 40.9663318181818283
-36402 -87.5271656666666757 31.0194976666666662
-20201 -77.0159658333333397 38.8874818333333323
-23138 -76.3031348716486519 37.3658567564175215
-31304 -81.3742905999999948 31.5139116000000001
-87839 -108.307715444444455 33.8722481111111122
-04353 -69.6105719935831928 44.2051792924038196
-02071 -71.2727598403755991 42.1003258560250515
-43149 -82.5687083043146828 39.5405471341163661
-18057 -75.4700428750000043 40.8652736250000004
-73453 -97.2153945110663642 34.0490345352112556
-19041 -75.308747955092727 40.0121266879270863
-37314 -84.301406915789471 35.2508644315789539
-32190 -81.4991983021553779 29.3325032998459925
-50115 -94.5417447573783534 41.6827282891887307
-46624 -86.2525095999999962 41.7024660000000011
-58856 -103.750326267190616 48.5631177819253921
-99612 -162.299555058823529 55.0613331568627657
-34128 -86.2551906249999973 33.5287418750000015
-73554 -99.5080670633829385 34.8783957602137704
-57366 -98.0602845372468153 43.41016538307845
-26412 -80.6017413335599713 38.9110861217273012
-33321 -80.2681004927432298 26.2106976229733419
-20606 -76.7404947020202286 38.2515614663299317
-47359 -85.2776232075813994 40.5512377732359042
-22153 -77.23828836593961 38.7472071462771979
-62475 -88.0628902636625952 38.8814032368168299
-25019 -81.1118822798634369 38.3746184744027516
-60543 -88.3341641861644291 41.683386821417308
-61279 -90.7247516642617597 41.3225927162096554
-04779 -68.3124479123562764 47.1456097521551101
-94937 -122.876729572254106 38.0935000684007861
-01009 -72.3427643527606534 42.2102260582821813
-01106 -72.566719402780592 42.0513364766166831
-13303 -75.4605297367088355 43.3558197341772029
-86029 -110.032729975352055 34.9794335035211503
-38237 -88.840840120314283 36.3515140361216282
-16034 -79.7329808537686944 40.8606021359622105
-98616 -122.145848680000057 46.0599304478260976
-98378 -122.047917600000005 47.1093619999999973
-40892 -83.6995603333333378 36.96332533333333
-13454 -74.7616845066007158 43.1668832450494264
-35383 -85.6231912499999908 35.9851884999999996
-87017 -106.7855851614583 36.2600485182291266
-54446 -90.5030965507519483 44.7291442048871914
-82802 -93.1380475714285865 35.3073301428571398
-13691 -75.7828833328512275 44.2248277092975286
-58431 -98.4838131558029488 46.5172408744037966
-04571 -69.67389837376804 43.8995074624715187
-24549 -79.5067151143598778 36.7139224260562926
-38966 -90.3511887853185982 33.9407858130193887
-78957 -97.1814175316990543 30.0202465551216733
-85749 -110.759130518614654 32.2753132967297987
-13154 -76.7671575744681007 43.132143851063816
-17538 -76.4128825104225626 40.0890960387956454
-79830 -103.636650648902517 30.3104214858551408
-39885 -84.3499628548387221 31.7208964032258187
-01056 -72.4639141226267185 42.1781486744480034
-77099 -95.5972388331511382 29.6753927409610974
-38821 -88.4430441253782789 33.9788418912184227
-12402 -74.0763789999999887 41.9171989473684192
-14547 -77.102835363636359 42.8905706060605851
-60827 -87.6335190018717611 41.6509179015259861
-56056 -94.5713453749999928 44.0707373999999987
-52050 -91.3125383414264462 42.620215013050057
-88054 -106.905048117647084 32.4963053529411638
-75850 -95.9029156428921539 31.1434676050172712
-26067 -81.4414159999999896 38.2196369999999987
-55359 -93.6838386161240493 45.0055874528588546
-63469 -92.0327062882322338 39.8195930217729384
-03448 -72.2653998830549256 43.0444100996420005
-75159 -96.5439377324850057 32.626769657110799
-99664 -149.403079442717456 60.1748022661596025
-03825 -71.0418944320400954 43.2137515426232852
-08620 -74.6662680319276433 40.1739068617039266
-44699 -81.297553646349229 40.276345619893668
-22035 -77.3605714722222189 38.8545045555555646
-05156 -72.4786503809524874 43.3029868678082082
-27607 -78.7043321952988322 35.8040864154974798
-49682 -85.64111259616881 44.9681338351613462
-21757 -77.2616843368673614 39.5893119609639115
-58480 -98.2581475754146965 46.9385811395173462
-17353 -77.387778599686996 39.8822391669510665
-19973 -75.6072056708411253 38.6406276079950075
-39148 -89.9882991489361785 32.0665914042553197
-90808 -118.109468027105692 33.8223672091266963
-65401 -91.767420578091631 37.9337520284164569
-04572 -69.3732951454548186 44.1088230204179865
-42020 -88.2931883490493306 36.6916843602028564
-32026 -82.6556950000000086 30.1795735000000001
-49058 -85.3034087266140943 42.6383238846328467
-65325 -93.1793295029270467 38.4364815745042918
-04614 -68.5806952469285989 44.4100275945556007
-33941 -82.2615004999999968 26.7395094999999969
-38363 -88.1120830903362986 35.6685383120410862
-28329 -78.1043295000000057 35.0282424999999975
-38070 -89.238293074829997 35.9486632040816403
-92039 -116.616454000000004 33.0887194999999963
-63565 -92.9487828613624174 40.4824742430814624
-52362 -90.9949193218390917 42.0654895238096742
-23062 -76.4955876815672866 37.2579625104855765
-80473 -106.166524031249949 40.4591591475694941
-50588 -95.1798719620763052 42.6505163649067995
-12434 -74.4982700792235164 42.359985290136386
-15660 -79.7642427571059471 40.2483292428940729
-24619 -81.5293300467289583 37.2403360934579482
-99921 -133.136379984478907 55.4774676452328279
-91901 -116.749094012842136 32.8193927731715576
-62321 -91.1013982865639207 40.4031342364597421
-26038 -80.7310187767954517 39.9613341406996909
-58844 -103.719622231707319 48.893027982926867
-24862 -81.9309360402844362 37.4876303744076296
-68424 -97.017262194789609 40.3010119110219236
-38138 -89.8008135519816904 35.085664623965485
-76250 -97.22337141315775 33.6316766157894804
-84736 -111.995317400000019 37.5633025069767612
-92289 -116.234704857142873 35.8759428571428529
-31563 -82.1773533168033623 31.7559948019268674
-15051 -79.8604178904847544 40.5661249443447218
-29140 -80.3514977499999929 34.2233170000000015
-94538 -121.969497998145783 37.5243156671881408
-31070 -83.7754435752065802 32.1859992123966521
-42081 -88.3850455923011822 37.1967034851419669
-99336 -119.178865990488603 46.2105781651347627
-77808 -96.3103968334259832 30.7754190031380439
-25906 -81.1272371029411801 37.8387288823529531
-72772 -93.7011631249999937 35.9925070624999961
-14783 -78.9035148690095269 42.0936670798722119
-46767 -85.5801647606080849 41.4671869443272882
-97418 -123.286379040816357 45.3714837142857235
-28833 -88.3596803333333298 34.7952817333333329
-32055 -82.6675734528607791 30.2270049955416411
-61616 -89.5741114326340551 40.7439718222538261
-27705 -78.9640607473918408 36.0184414822070309
-43971 -80.7083042979397902 40.1597838177496342
-46531 -86.5112250309869211 41.3593690130068552
-06388 -71.9764463749999948 41.3446604999999963
-23095 -78.3134639999999962 37.4714956666666623
-69036 -100.296507301075266 40.049427526881729
-78259 -98.4352380371008024 29.6303850542646572
-33944 -81.3127993114754872 26.9485384163934221
-04055 -70.6034366472685377 43.9618004459619129
-79343 -101.406450420184143 33.6486898528746607
-45616 -83.3140659806913817 38.7619956363041211
-83616 -116.367500090777241 43.713348438738997
-14556 -77.827045499999997 42.6821987500000048
-16831 -76.3086686666666623 41.033060666666664
-66736 -95.8416495497782819 37.5490445881832287
-41747 -83.1412839545454716 37.3034739545454599
-28642 -80.8319131989901933 36.2226353106622625
-72005 -91.0782815200000044 35.5542005025000023
-46117 -85.6140727480104005 39.8112489071617546
-46793 -85.020021146804666 41.4525223984455451
-50257 -93.8420535284697621 41.1924730017793408
-13112 -76.4115292450844237 43.0981970960219627
-26278 -79.9393674397164204 38.8645827943262461
-03245 -71.5961047558825641 43.7417807035294572
-41855 -82.7872099035345173 37.1878096089837911
-17244 -77.6533817354010409 40.079660745459698
-31907 -84.904757857362867 32.4782886163512146
-58214 -97.491949501275684 47.924293650510208
-17011 -76.9297015621137348 40.23907729173132
-45030 -84.7730110133768875 39.2584082005477697
-97429 -123.086530010965689 42.9516384550823105
-75036 -97.4500572000000034 32.6060092000000026
-36751 -87.5371910144928194 31.8247332173913264
-30063 -83.5984542916666697 34.1469292500000066
-67756 -101.818579729618719 39.7727703055717825
-33802 -81.9697264999999931 28.0289067500000009
-61439 -90.3437359009008674 41.0266092027027156
-48105 -83.7041885220358068 42.3118036443562389
-43113 -82.9468558477476563 39.5928608011704739
-33715 -82.7193084071174525 27.6903187580071197
-02748 -70.9638789476319545 41.5795798105902747
-29166 -81.7125050799604367 33.9030506377098106
-98660 -122.684149932187722 45.6423702514852252
-97394 -124.048333786425502 44.424405625181727
-14065 -78.3257115200432565 42.4875274972914596
-53079 -88.156924056466309 43.8228135081967238
-54770 -91.3886012702169808 44.5525089526626985
-70562 -91.7457584999999938 29.9307605000000017
-80126 -104.962210761261659 39.5415544102894216
-83851 -116.890945778462495 47.3171166119095119
-04623 -67.7605539164109274 44.6727143920163599
-40008 -85.2732118513562369 37.9203052852620175
-98340 -122.5679887991746 47.9081307647868684
-71276 -91.1800351214953224 32.5752172211837916
-04956 -70.1302281043955134 44.8035601153846343
-37311 -84.8979269151201805 35.1387192512871422
-31721 -84.2531860588424593 31.5745069009307571
-39212 -90.2656839313316652 32.2485451537000003
-00616 -66.6693616850828761 18.4346599907919035
-05355 -72.7981533669777292 43.0201143473878247
-28454 -77.6456882807289617 34.6896306854696732
-84180 -111.901103500000005 40.7694257499999964
-36117 -86.1641737533103793 32.3661787882072076
-31753 -83.8732140999999842 31.1992994799999934
-75650 -94.5734428056635039 32.5383619786605749
-36761 -87.0242971062364035 32.0983683809631444
-57620 -102.498442124868689 45.4396184575026254
-40447 -84.0395391210549434 37.4572276715392363
-43408 -83.3623199473684195 41.564304513157893
-39158 -90.106438565217374 32.4232847826086967
-17778 -77.929906485427054 41.3003121346733906
-36032 -86.5503278998674404 31.9769873610743254
-85931 -110.799365990853559 34.3372774079268552
-57761 -102.761789865961134 44.2370001640214667
-54716 -111.308539843749998 45.2155062812500006
-43952 -80.6428641404883706 40.380255551942426
-67637 -99.5605073906201739 38.9448328580147276
-76823 -99.1457201589388148 31.7163247354326643
-76947 -101.21098783333332 30.6991594999999968
-36031 -85.7190352043010364 32.2501629677419288
-68448 -96.0283516079828559 40.5484913321454172
-22645 -78.2735745566193231 39.0170848976538309
-56563 -96.7563715909090973 46.8673607272727182
-65053 -92.3646897086824339 38.5432117544409962
-12022 -73.3626801350482651 42.6744405602894332
-52535 -91.9666706061126717 40.8596442219112532
-65282 -91.8241641905940327 39.3849076287129094
-89408 -119.214853444263923 39.5930565641946899
-98812 -119.774122790924466 48.1301407166147399
-13436 -74.6602686096939294 43.8146170918367659
-62462 -88.4476901217104228 39.2266497623355477
-27612 -78.6942353598906976 35.8517473406579015
-67430 -98.4391894187794492 39.5166357755868844
-63052 -90.4262924119966556 38.3902083879139937
-33898 -81.4852855970251539 27.9049895088435633
-31523 -81.5894040148700697 31.1817375707371554
-32243 -81.9906009999999981 30.1505305000000021
-07638 -72.1553059999999959 43.8671156000000053
-17043 -76.8997228059308782 40.2475189749587443
-04474 -68.7843377383024546 44.7224833790838474
-45402 -84.2086260684994983 39.7591000917986435
-22824 -78.6100907284088208 38.8416285238440224
-59442 -110.627882490520065 47.8519773079924633
-06053 -72.7908504098379723 41.6884507162934881
-51460 -95.5736576338028527 42.1291364225352041
-44273 -81.8775378941344627 41.0325594377683132
-74055 -95.8174203874901025 36.2860628357745725
-05833 -71.9799598518517882 44.8360048796296553
-75694 -94.3135521447368745 32.6861269605263018
-74453 -95.9049029999999902 34.7278169999999946
-46933 -85.6003404005321897 40.4872092246616901
-00710 -93.7036810000000031 32.8988662000000005
-56026 -93.3017526525033816 43.885199056653434
-56072 -93.5057709475201193 43.9091544599626786
-83238 -111.068625654941243 42.3498507855946187
-94549 -122.115036664339499 37.8993778252589522
-32195 -81.9056880375141105 28.9796314249720268
-51575 -95.6075674280938017 41.2451182809363743
-66091 -95.3191595083207375 38.1743693419061785
-56759 -96.0722094953270584 48.564567246225657
-92310 -116.746708882295181 35.2295712918031967
-78069 -98.6731263716819882 29.1876227058407238
-23169 -76.459700111111033 37.5925883968719319
-48756 -84.0226186636363366 44.2086257879446052
-04643 -67.8078034821647009 44.5950451894218602
-33615 -82.5824343890414667 28.0090907801752138
-46058 -86.6522727477759815 40.3535337259685747
-75503 -94.0952547573233034 33.4740019916723384
-48430 -83.7348869734625794 42.7768946413240698
-18337 -74.9037107086589913 41.3200776882628702
-30005 -84.2111241497836431 34.0816399956191987
-14010 -78.8599982500000038 42.7732057500000025
-46250 -86.0691315380192776 39.905598277215887
-20872 -77.2139268400084262 39.2789199375131659
-07504 -74.1433509869214618 40.9123552484909041
-36034 -86.1096381806451205 31.6271288258064729
-76012 -97.1382445928700093 32.7554013100415489
-94901 -122.51399433528475 37.9754074941473405
-79502 -100.258025325177442 33.1669312241515115
-12307 -73.9354678045977352 42.8050684417076823
-71735 -93.4654932499999944 33.6215447499999982
-92808 -117.743596425182915 33.8550771165628106
-95953 -121.68820842938851 39.2602163116697938
-08217 -74.7182595581395219 39.5765384418604711
-80549 -105.025828912399732 40.7392722921035713
-58772 -102.616308562020862 48.9548502399639176
-73539 -99.3332926417910755 34.4788793134328202
-98672 -121.465497919532183 45.7743995519234232
-32962 -80.3924881045299031 27.5862735273212678
-44102 -81.7359566009042169 41.4734928020665379
-15675 -79.6398809431330079 40.3308549721029408
-97637 -119.879325574380189 42.4049897768594874
-61799 -88.9364442500000223 40.4883272500000047
-47860 -87.3302341244239955 39.7255122258064617
-27312 -79.1763902689228587 35.7658453600371473
-27006 -80.4392577897285292 35.9655375109097477
-43447 -83.4327926579280899 41.5661159073994781
-74046 -96.5607677111111258 35.7515335555555538
-80924 -104.722937081619037 38.9613032574651825
-96784 -156.452821142857147 20.8694422857142854
-67401 -97.6119374636732573 38.8276678874850845
-48187 -83.48440041997425 42.330557045903177
-76836 -99.5647862642857149 31.4066795928571416
-50228 -93.2430491932391732 41.5747061661242796
-66845 -96.5485333843930391 38.3408343111753851
-88005 -106.79293864106279 32.298977547637918
-87316 -108.496322404327998 35.5034916412300419
-45424 -84.1205010337855583 39.8448007165074003
-72102 -91.8409577742979053 35.1507457329912896
-73107 -97.5754436219098835 35.4848672257593947
-18447 -75.6121963233003669 41.4968594326671649
-65641 -93.7279732855626975 36.537604764331256
-95632 -121.293603493278454 38.2680500468342331
-73346 -92.3988354999999899 31.0864617500000016
-50046 -93.5280978906134948 41.89841518662233
-95376 -121.431676909933472 37.7277651815155366
-29655 -82.6210850123498233 34.2957656746924613
-67815 -100.230238800000009 38.2913604000000021
-42748 -85.7123610707202488 37.5685007849364752
-04469 -68.6680709096573167 44.90011654361372
-76859 -99.7817050297151411 30.8866697938144306
-03043 -71.8043058914427377 42.9910524830535721
-18630 -76.024888096832882 41.6619569180140275
-51053 -95.2890764476241259 42.4935518492589779
-29822 -81.8893996744185841 33.5003535348837289
-38063 -89.5486852874831385 35.7553492056031956
-49254 -84.3217531323842593 42.2262527188612466
-49999 -87.556486552631597 46.0093093947368175
-84324 -111.943213947037577 41.4957624676839885
-55070 -93.3669372970622646 45.4001366354985976
-15360 -80.0819254175231947 40.088212069566147
-71260 -92.2563288069916609 32.8942266248692192
-25152 -81.267378670329677 38.052461219780227
-36870 -85.0997501651000476 32.4832936181152192
-44117 -81.5259064110671261 41.5685392618577652
-98848 -119.858108192003414 47.1827148381079269
-31641 -83.0859761101805816 30.9346141625227951
-62893 -89.0265695810683724 38.4771972652297123
-43614 -83.6299290640218089 41.6034936084540234
-22948 -78.126339584569692 38.3613230267062448
-33668 -76.3364513333333292 37.0174280000000024
-30125 -85.2573017692766797 34.0094467752156788
-38058 -89.8224837114397872 35.4521174463784661
-03907 -70.6034236243816196 43.251468962897448
-02472 -71.1808003126929094 42.3712303178284913
-38037 -89.4099129178856487 35.7965730258220702
-13061 -75.7459630476329409 42.8583002677188745
-28465 -78.1259962345419581 33.9147016159925201
-98562 -124.212830623655933 47.2365124569892387
-38914 -89.4539588661597094 33.876912607604531
-61849 -87.9637303149366261 40.0263513604906365
-23114 -77.6433126123405515 37.4835482249687715
-31331 -81.3879203715889332 31.5410544933361265
-48885 -85.1507401218353692 43.2502417325948656
-21913 -75.8676578456375665 39.4045320536912556
-05825 -72.2481005683759889 44.8703166239316715
-51235 -96.2143516516595412 43.2901316650134262
-20613 -76.8163231619685263 38.6756793808559109
-77068 -95.4872170641577611 30.0058518365449629
-38952 -90.341548551435281 33.6371437212918565
-17093 -76.9299604596491235 40.3092976350877379
-94971 -122.902904420187681 38.248457314553967
-92596 -117.094804878385446 33.6229233314014166
-01266 -73.3786500715386012 42.3164684239900879
-17292 -80.2828910000000064 35.6459185000000005
-84761 -112.851748877324866 37.8386328897210618
-18360 -75.2752810167207258 40.9811474875199622
-02067 -71.1779452252134917 42.1095283203589972
-24984 -80.4100621162029512 37.4904997495908248
-25231 -81.585147400000011 38.603751950000003
-08512 -74.5333779515284647 40.3123989077389453
-21711 -78.020537475558271 39.6539492426071831
-12750 -74.9567904972222436 41.7405565027777996
-77547 -95.2405921850913018 29.7376953590263433
-26627 -80.6049335296295624 38.7575019759259476
-50071 -93.5153204917734797 42.6497042601699619
-15116 -79.9605091738874876 40.5377525454191598
-36039 -85.8187603829114778 32.2909781803797173
-26833 -79.1773709114448963 39.0866856972506582
-12490 -73.9288145687499991 42.1221138875000065
-99318 -118.223712105263147 48.4236147368421044
-91911 -117.048751274091686 32.6106724622385187
-62550 -89.0300030893695151 39.6164063057384723
-49337 -85.7243104021648747 43.4320516161575085
-37359 -86.3946824643925879 35.2055765477656379
-76593 -100.3431535 31.7219885000000019
-34125 -86.3729061000000087 33.5937607000000042
-49428 -85.8302134332919735 42.9100791161610289
-71236 -91.5373638999999883 32.5766571000000056
-68738 -97.448787799999991 42.105549400000001
-57640 -102.68139530784714 45.734730112676047
-00624 -66.7176936503760203 18.0504658975564034
-92326 -117.199110485232097 34.2364926962025251
-17057 -76.7288278222619908 40.2021327313189047
-46069 -86.243505529671026 40.1294178518830336
-49349 -85.7498125930679294 43.5734215668958811
-54426 -89.948370425215515 44.9120462084447709
-60106 -87.9458103273743319 41.9564272722532365
-28690 -81.5744340157737184 35.736011746385266
-75248 -96.7934049720651331 32.9695966617424219
-98575 -123.824404074725393 47.4779831208791379
-82643 -106.290062875432511 43.4292179031141927
-91722 -117.906702181625931 34.0974867721225152
-75865 -95.0219877402597319 31.0316815324675481
-65548 -91.7421332920862795 36.9856654921351051
-82729 -104.388264333485537 44.3806630600730827
-13803 -76.0559963052320427 42.4587975504788488
-38052 -88.9141510777809714 35.079252621682329
-50548 -94.2277154916557294 42.7128034989687251
-18913 -75.0523828215613378 40.3839221747211568
-57046 -97.3189796633166111 42.9505820062814152
-81428 -107.59855212479232 38.8739983915343501
-38388 -88.3490864163529324 35.771708550820648
-20111 -77.4361133501822962 38.7531669297513943
-00743 -67.2499447857142911 18.3399427857142889
-71859 -93.9048896764706456 33.7430859402574015
-40316 -83.5259606150793417 37.9375482642857023
-91184 -118.159466500000008 34.1397525000000002
-38011 -89.7128388913554318 35.4694808597755298
-40509 -84.4071434323055598 38.0035488062517004
-38620 -89.9139116186569254 34.2379212698233459
-32225 -81.4930463459728429 30.3509220200772383
-54555 -90.4043744757412924 45.6936941583558252
-20772 -76.7842967959607989 38.7917706882014315
-01284 -73.6883656666666553 43.4726583333333352
-52131 -91.6310366842105424 43.4842063157894714
-58843 -103.369485718357893 48.2208995290763553
-78407 -97.433362729511515 27.8047568954380253
-33061 -80.1641759999999977 26.245257500000001
-68137 -96.1240189620719576 41.2038574861679194
-58550 -100.712917500000003 47.4920759999999973
-63039 -90.8266241812297324 38.4945360927723215
-86441 -114.317215712795516 35.5685588820769212
-71025 -93.6936430000000087 32.034026499999996
-47108 -86.252383551198605 38.6609451201331495
-67467 -97.7079307222221445 39.1237994491818313
-79016 -101.917088000000007 34.9835628000000014
-61569 -89.898265886651231 40.6762956870644388
-16022 -79.7303497386362778 41.0566894791666286
-01902 -70.9394154260189111 42.4716813775884674
-70788 -91.1636355056925964 30.1601465298861378
-77881 -96.3017329999999987 30.531094333333332
-52354 -91.9859249126315461 41.9183052631578761
-92706 -117.881844720849486 33.7657754600454467
-41539 -82.3157686007751295 37.4983420903804969
-80918 -104.773267705992339 38.9134285687091008
-88210 -104.434553213053633 32.8365919982184238
-41766 -83.4286382720587909 37.1852778186274548
-40409 -84.4329935121540416 37.3756210747348874
-61242 -90.296764819792287 41.6879944587660702
-56376 -94.6675528486485973 45.5020835891892048
-84315 -112.114139266243996 41.1682755773148088
-35443 -88.0174805536890403 32.7637613145586641
-33143 -80.2970212939769254 25.7027539205390241
-18822 -75.7944112187962418 41.9520414107710309
-85141 -111.495309293103432 32.7091290632184197
-48737 -83.7058951439859129 44.5419848505320175
-62463 -88.6273760824999783 39.2690700833332684
-39756 -88.7533689585237653 33.7834685471842064
-43972 -80.9765161206897091 40.1028765258620581
-18517 -75.7128603147002508 41.3925710679431234
-48098 -83.1792027387331103 42.5992683787968929
-31084 -83.60275145833333 31.9491353333333343
-49342 -85.3072479844678355 43.7000046861581879
-91739 -117.522548566047078 34.1356661465707916
-56557 -95.893487710867447 47.313163727195807
-79838 -106.155142451174299 31.5002012398022373
-54648 -90.6277569411970489 43.82647393575553
-31315 -81.6062821938461553 31.8907397692307981
-95595 -123.466661435348144 40.1460667834735148
-68846 -97.8944804713261476 41.0729687231182936
-47541 -87.045214761787463 38.2380741840918077
-25140 -81.4853642762667363 37.855279941597523
-83302 -115.059557529411677 42.1118425514706018
-22030 -77.3375298907973416 38.8425388261066189
-24086 -80.6436123511521288 37.2768209059907747
-12849 -73.298217761732829 43.4439183122744126
-77038 -95.4477387772249557 29.9154121228707872
-46960 -86.5177740609009476 41.1645273503894487
-75168 -96.8795240000000035 32.378264999999999
-16681 -78.4250328947368587 40.7987507368421021
-98390 -122.215255653919968 47.2000944810274987
-32960 -80.4027956419794378 27.6347779814442696
-14591 -78.088007687061193 42.82833564125702
-36550 -87.7283113677092246 31.2563989746407387
-35902 -85.9932989999999791 34.0178819500000102
-72473 -91.2082307402438914 35.7205597676828219
-34142 -81.4265102454717464 26.4029742141861803
-48079 -82.5188678167289709 42.8460534408364495
-58524 -100.083599630094042 46.6163145987460794
-67758 -101.742045706879424 38.8806110488533676
-02494 -71.2327331483805466 42.2993364448908977
-68038 -96.4630257038106294 41.9411507984988887
-39456 -88.814322402755181 31.0667221958134903
-68340 -97.7286790165974253 40.138815014522784
-10031 -73.9490687944784213 40.8251139079754779
-47041 -85.073779654683932 39.2355081618854342
-68869 -98.8807706520434238 40.9797487274235266
-77331 -95.1449044212468493 30.6235070467806558
-23419 -75.9214017457626937 37.3095275932203521
-50273 -94.0276578907830611 41.3359634272438043
-48198 -83.5860453225106568 42.2536247871167632
-37375 -85.8965802011758228 35.1781634268677337
-14059 -78.638162598537761 42.8318795076287202
-83810 -116.442736854131851 47.5426182658070218
-96757 -157.007963597484263 21.1522802306079392
-30537 -83.3396119115929253 34.983391947682648
-64459 -94.6569694549763199 39.9253376909952564
-65712 -93.808784352491088 37.1071012462660619
-14179 -78.8651575000000093 42.3196005
-64757 -94.4428325000000086 37.2483599999999981
-45238 -84.6107212883819955 39.1102530167091729
-39093 -90.3651493333333207 32.6419156666666694
-47562 -86.9803583055369103 38.8337670879096493
-49707 -83.4724823263341591 45.0943782188211841
-65247 -92.4882773192628065 39.6342224048751604
-66777 -95.9396194907938593 37.7814494387302062
-72346 -90.4661056515992499 35.0970083684434897
-62452 -88.0234598306166589 38.5863600163005032
-59915 -114.332773722921871 47.8233303602015454
-85623 -110.791216633129537 32.6080314455891056
-12884 -73.5931663574879025 43.0877829275362103
-62257 -89.7285028971252387 38.2664166022807279
-52322 -91.7688455663292046 41.6907317893063691
-19369 -75.8943263921568843 39.9808608235294116
-67515 -100.046163346153861 38.6697350641025608
-25173 -81.2319613205342108 38.0838472838063353
-81506 -108.549065509820636 39.107802729204856
-29568 -78.7605486754520854 33.8925528243004308
-39664 -90.6722192198288184 31.3316167721825956
-66735 -94.7061447859588696 37.5235838184931723
-99122 -118.187005156736461 47.7523314966627197
-58781 -101.120089739480193 48.0263499588489893
-36524 -88.0547971438684414 31.7928602627054104
-99502 -149.955315284318885 61.1575692981077381
-33712 -82.6657947813820044 27.7393254203331807
-10152 -73.9727460000000008 40.7587054999999978
-01757 -71.5266251018788495 42.1551692182188589
-27869 -77.3054505627031858 36.2746758468776775
-51466 -95.1120244356725664 42.2563906179337465
-82058 -105.601024903553295 42.0998751133671831
-95329 -120.365944732676866 37.6730486604637562
-60491 -87.9486720727181961 41.6126538608064962
-04761 -67.9792447169068623 46.110187473132342
-33565 -82.1637223990824594 28.0647855573393663
-14026 -78.6900216739130656 42.9353664891304376
-32138 -81.9301568739495849 29.7320227226890701
-67432 -97.1872926926923526 39.3581257187158897
-71065 -93.5057872834308625 31.8048747892841064
-15622 -79.3363631738543376 40.0411423296495457
-05848 -71.9360992844036673 44.3486399449541295
-38833 -88.3342072102056619 34.835317722633846
-06807 -73.59226702635668 41.05720919586566
-04635 -68.303758122807011 44.2961553245614184
-55902 -92.4957994646732971 43.9896247129133542
-95834 -121.520646253550638 38.6416626983889273
-04333 -69.4997384545454651 45.1465327272727279
-01752 -71.5435312086215731 42.3518444151589506
-65621 -92.891540599999999 39.5834037999999993
-15779 -79.2263582420748946 40.4186712046109449
-42210 -86.3011264171768886 37.2095491849481874
-79247 -99.389978401960775 34.3541214117646874
-40847 -83.1539422129629457 36.8698121574074165
-65767 -93.1443418518908288 37.8442988609944138
-77010 -95.3617140268456609 29.7547191342281998
-13606 -76.0101784490071708 43.8687680361011161
-41164 -83.1698656185825058 38.2888284606466556
-92459 -116.733198117647063 33.7313498823529443
-22664 -78.5216383729408847 38.8896672586617598
-97171 -117.73468419999999 47.1140424000000024
-32810 -81.4310514037500326 28.6223508647511125
-69365 -102.549643999999972 42.9568644705882363
-28740 -82.2596437281373767 36.0035865372611568
-96725 -155.949676696969675 19.6154758484848415
-73024 -98.7872472287390337 35.3699011143694904
-18932 -75.2582096275000083 40.2940142750000092
-63384 -91.5639007135249727 39.0761046418175795
-87419 -107.636877411652307 36.8785006580707559
-51364 -94.9564097056316285 43.3020079200188164
-23178 -76.4585491739130276 37.3972746086956462
-95366 -121.128352835958054 37.7489514475314465
-52513 -109.452749083333345 43.585100583333336
-31008 -83.7677204758644223 32.649336238312415
-72538 -92.1054437681187039 36.4399875039147005
-47336 -85.2045425769304217 40.3897901538614192
-39436 -89.2911583222222589 31.4417756555555563
-41666 -82.8020797331498244 37.4446381533700077
-24884 -81.619508914675734 37.2446022013651969
-41179 -83.3820617684894501 38.538842345255496
-41502 -82.5394288947368437 37.4725030000000032
-15024 -79.8461606760278642 40.5794893808133637
-53576 -89.2474966322616154 42.6292533451776805
-50239 -93.1936437343750299 42.1432408656250743
-37360 -86.2544801063171462 35.4388312971817143
-49864 -86.6483677193877355 45.8476217704081535
-24138 -80.3171100265330438 37.0471919589065664
-63449 -92.1471723461538517 38.0745318846153822
-16925 -76.7690824233525291 41.95551370151437
-58441 -98.3761913398533068 46.1782636821515879
-27841 -77.2769912234042948 35.9112287659574534
-63137 -90.2185594377538536 38.7494691039000756
-59525 -110.326064105263171 48.6223530971660125
-30663 -83.6100080079343542 33.6027715852948603
-14414 -77.7275697324524231 42.8975192599653639
-06098 -73.0865237176578404 41.9215021118426918
-73733 -97.6931520866666148 36.2579890499999777
-22209 -77.075907656424576 38.8941578128491656
-74006 -95.920532463784113 36.7302167921879743
-74015 -95.7138360978822931 36.1786940207712036
-95690 -121.574663259093455 38.2339957383535491
-28405 -77.8546130151622577 34.2583060323295499
-31405 -81.1581858129425626 32.0429903616495295
-86924 -109.773891500000005 34.3485344999999995
-86362 -112.761617999999999 34.2160009999999986
-04841 -69.1162773510302486 44.1114204620381614
-48092 -83.0620469167398454 42.5138380347159384
-22967 -78.9889268582702044 37.8038752719628519
-80447 -105.85904323416878 40.2231721170841183
-52214 -91.5052637196385348 42.1972060730205598
-43210 -83.0198908496731036 40.0026513071895451
-84941 -109.969894499999995 33.8295274999999975
-60051 -88.2253660400403845 42.3542806207356932
-70046 -90.5711649999999935 30.5392500000000027
-39411 -82.8121752857142894 32.2248948571428571
-44041 -80.9459744348215224 41.7891260970275269
-01532 -71.6468461515759572 42.319968485542617
-16063 -80.1250029337441845 40.7713702535951228
-07081 -74.3239841896718332 40.7000926213707217
-97027 -122.591576395903033 45.3896723572343319
-78741 -97.7172911124627888 30.2293448840616499
-42744 -85.5097528245613745 37.0197091052631748
-42634 -84.3990963135832999 36.8654303815911533
-88008 -106.639963630461494 31.8571708897509787
-46259 -86.0129224960153067 39.6585903795537575
-04057 -70.7011554000000046 44.1019566249999997
-57274 -97.5299535830091884 45.3197086157588274
-47272 -85.6131761451976558 39.4202756443155309
-57269 -96.8091655292856359 45.219332437857183
-79106 -101.886412700492215 35.2035403899139112
-96126 -120.360610576271185 39.5766395988700879
-30452 -81.8889555979558565 32.3266367536627115
-71233 -90.9273728606557512 32.3266370409835986
-15323 -80.4101252105070188 40.1066643629231834
-61728 -88.6197206098997583 40.5678601685327678
-66002 -95.1360497758623893 39.5527895464461992
-36548 -87.9716638087718934 31.4891702292397504
-52659 -91.4425656645962164 41.1284610699792808
-51044 -95.9101429353160029 42.2989420661709161
-24889 -81.6174388734177398 37.2782701898734388
-31631 -82.656758179577281 30.6861231285211282
-53732 -90.2073712500000084 41.8515672499999951
-04435 -69.1284683332342524 44.9637394988109165
-82640 -106.175942324607277 43.587033015706794
-40068 -85.2851871811208326 38.3881833537183752
-80816 -105.287745050407992 38.8861111337412808
-32110 -81.3440909991380181 29.4459365441415528
-44619 -81.161514389610403 40.8931037272727096
-58060 -97.4336525182961566 46.2599135092250364
-83201 -112.42871834726445 42.8873425191203452
-74349 -95.0229880555555297 36.5196167647058445
-95002 -121.97300422702709 37.4259231216216008
-49263 -84.18363524444446 42.1584592222222199
-75158 -96.3713261143004587 32.4686145161128223
-23075 -77.3220520571103265 37.5451392883799215
-93001 -119.304575050532804 34.3111630107371539
-78234 -98.4372929274261281 29.4687477054852671
-60470 -88.6398914037581989 41.164149573895422
-60551 -88.6834616806623046 41.5227625571017711
-39114 -89.8316521981291487 31.9483703126821155
-44099 -80.9697403552479642 41.5429598979238861
-57350 -98.1916234141989719 44.3826527406808964
-20170 -77.3818843442278848 38.9816891118841795
-29626 -82.748926745878336 34.467656537444114
-94123 -122.437380320881658 37.8001815584812775
-94956 -122.844908288375279 38.0715208823362659
-95650 -121.167908553490662 38.8139828052752378
-47357 -85.1486423256760787 39.7655682881651487
-78370 -97.5984046935954268 27.9554582616447682
-32003 -81.7145360922197881 30.0993430548032705
-49339 -85.5142841116786769 43.342855319343073
-59067 -109.229305269930236 45.9295423118881914
-19144 -75.1734047910037617 40.0333559125248897
-33868 -81.8351288087011994 28.2124447185136873
-71417 -92.6447031508614884 31.5173764833618684
-44848 -82.2811471363636571 40.9213548181818254
-36571 -88.1008744281569847 30.8342178248513328
-94571 -121.719265583302686 38.1537782298639883
-10305 -74.0748688999543674 40.5986514255368078
-15082 -80.2146322913669394 40.381474010791365
-32413 -85.9275446141334669 30.2575247467618915
-71261 -91.7268831011842281 32.7742261575887852
-43501 -84.4532051216016697 41.6700139490854795
-44321 -81.6557370929263868 41.1084979042540439
-22652 -78.438887524825347 38.8269322882643806
-25083 -81.3960823052209008 38.1355210120482369
-83239 -111.389926575257647 42.4805900412371074
-57301 -98.0308986256730321 43.7131173611685142
-17027 -76.9935819122807175 40.1566448713450299
-15781 -78.995108342105226 40.9656639342105251
-36857 -82.9020625714285586 36.3549413809523827
-75779 -95.4857881818182364 31.8683222528409011
-59910 -114.295197595441635 47.7963130883191383
-29335 -81.9113434265104701 34.6614899520209221
-00585 -66.9908259999999984 18.3396754999999985
-16503 -80.0637711163495283 42.1261822064561358
-77050 -95.2731974211854578 29.8983948688523782
-77386 -95.3898997549986234 30.1185938725571809
-10801 -73.7851162390039406 40.9175077440930224
-45804 -84.0816741281264939 40.7233837997955419
-50313 -93.6189632898714308 41.6453700544216616
-50842 -94.4627615130434606 41.03989660000002
-33314 -80.2264726996868376 26.0680385631806537
-21755 -77.5560772216189207 39.3620774710879004
-56601 -94.8597764383823687 47.5069696283676208
-16639 -78.4737248552004871 40.6854482750963413
-85290 -111.557566821989511 33.6295598507853342
-87121 -106.729875113878904 35.0485153878765274
-95424 -122.676690827160442 38.9782346872427965
-43211 -82.9735739375242645 40.0116014261121578
-57645 -101.694559535087777 45.947470907017582
-43522 -83.8537045532068106 41.4205013289143906
-06060 -72.841961868944523 42.0110296874043456
-45715 -81.6226162891694713 39.5933524193064486
-58052 -97.2705766581456714 46.6426112508666151
-71302 -92.4106337159818878 31.2529652104070159
-97101 -123.197495655429293 45.1034096116462067
-50020 -94.7426351555653099 41.4314273957054837
-51439 -95.5786929865264909 42.0726193592024345
-49757 -84.6298227220052155 45.8588775149739547
-05776 -73.2061532916358715 43.2477230310880714
-30071 -84.2035557397299357 33.939773137027494
-93619 -119.611589051714816 36.8761666079448318
-97145 -123.960112229411607 45.8696911705882613
-98058 -122.139177682289784 47.4457161939482219
-06785 -73.4440261999178858 41.7008465444489715
-27020 -80.8192590794813697 36.1065811743189897
-68415 -96.8088575830005738 40.0610244805666866
-55444 -93.3048947642990498 45.1056694320134
-72464 -90.1538140217390946 36.4556174782608622
-73131 -97.4640350681630139 35.5816856012745575
-75402 -96.0834112297890073 33.0712861151057069
-95477 -123.618255420000054 39.8549356600000024
-61536 -89.7889794999999395 40.6865275059242606
-04354 -69.4289539622436251 44.3919876262480244
-56165 -95.7097247499999924 43.7259674644549463
-01776 -71.4265244553996865 42.3859210544153058
-57474 -98.2754440615940581 45.2891441915760495
-71429 -93.4532505009363348 31.4017889226408933
-29161 -79.9441551333103035 34.1260411078562242
-21723 -77.0143163177291683 39.3240168874502487
-12198 -73.635020352123135 42.6808583954977649
-77385 -95.4267901354014896 30.1857299378245081
-34217 -82.712290476651404 27.4997448959307
-25059 -81.2085701264591506 38.2553653677042647
-68820 -98.7015394497735343 41.1013735085972982
-68979 -97.8545895175519576 40.6111695227703819
-24624 -81.9936690909090942 37.2061850000000049
-65032 -92.3810843967833932 38.3550808558041822
-43844 -82.0518879203163323 40.3299802636889595
-32162 -81.9930643568328748 28.9099803163997215
-50566 -94.3229471994302031 42.4388851832857625
-45654 -82.3887127275431652 39.3847248243740395
-44095 -81.4453610776235308 41.6527332935867776
-10587 -73.686892499999999 40.9596645000000024
-04952 -69.1392207561251695 44.4044562100816833
-53245 -87.9775735000000054 44.0846145000000007
-82321 -107.656626124054497 41.0362461754917689
-40919 -85.2047759000000013 38.3933779500000085
-38107 -90.0210024547008203 35.1661826203201429
-29684 -82.7094281490489465 34.3890277925071857
-56683 -94.7510525846098091 47.6968176336614604
-46303 -87.4505093171282084 41.3751626678882189
-00733 -66.6433080740740706 18.0459614074074075
-19706 -75.5948633611764933 39.5731759364705695
-31044 -83.3518672683433977 32.6618025845310029
-98293 -121.743868444444445 47.8667477777777677
-36563 -88.2549835000000087 30.393892000000001
-50831 -94.218506166666657 40.9498547777777802
-40370 -84.5366667073427038 38.3923989359678473
-68871 -98.8434911549708204 41.1312735146198705
-03258 -71.3997359066716797 43.2516092743628278
-92550 -117.159441375 33.5404086249999978
-46555 -85.6875963926607227 41.3253846506421851
-38955 -89.4669320283018976 33.7748940471698091
-02540 -70.6266785340764898 41.5707051511390731
-66937 -97.2519509286192658 39.5835241854568878
-96041 -123.178594916069812 40.5176479081204306
-48390 -83.4790009245646303 42.548655248854196
-15338 -79.9618389410410089 39.80647620497475
-29832 -81.8017509912224483 33.833431952178465
-69354 -103.348781679331324 42.454874995440754
-15435 -79.8502789108911202 39.9430797821782235
-23456 -76.0679611841715513 36.7554183092367879
-32954 -80.6093628000000137 28.3040407000000016
-14530 -78.0040609993505285 42.7296361574614068
-19094 -75.3453376946721249 39.8764669788250856
-35626 -87.9085364999999967 30.593300499999998
-21205 -76.5717198176899529 39.3017955058860906
-72959 -94.1117541419736057 35.8069027725241611
-04413 -67.7441215180571845 45.5779989414695308
-57569 -99.5645808220994297 43.8412349458563639
-63956 -90.5415511230769425 37.2097892153846175
-46142 -86.1589873471125003 39.6194705830175451
-95952 -122.642817599999987 38.2429401999999996
-63113 -90.2466721956404001 38.6573698321526678
-28771 -83.8048727606800412 35.3347745927268662
-54745 -91.1376441358786877 45.2459290806648866
-73542 -99.0125260726463523 34.3914874225352136
-78965 -97.118048642857147 30.0551271428571418
-79522 -102.47156733333334 33.4770726666666647
-83654 -116.301487578925062 45.0233072185274636
-77452 -96.3263228181818221 30.048964090909088
-07022 -74.0009965847089148 40.8173769383144887
-87774 -104.806627499999991 36.3541970833333323
-75645 -94.8734219332421418 32.6763395106983339
-45264 -87.8275720000000035 32.9755164999999977
-32423 -85.0634192416513599 30.9382768191093831
-91343 -118.482722297513405 34.2393036271344329
-72057 -92.3189223700054669 34.1483449670471373
-27830 -77.9585343383767366 35.5513340917952689
-37692 -82.308119842812161 36.2058390621463531
-14001 -78.5123064597975144 43.0364059846950155
-31789 -83.7315466154512364 31.4903383018826872
-39601 -90.4561916339516898 31.5656010355786947
-29922 -81.2516778052841886 32.619134435956326
-36131 -86.3005624999999981 32.3790385000000001
-49960 -89.1939431794871496 46.7325588644688779
-95420 -123.805959086666704 39.364318643333327
-64762 -94.5018689831649823 37.5526373471753772
-54020 -92.6413808701603188 45.2906511373472895
-02054 -71.361333700511949 42.1686230095746524
-12935 -73.7911800021428945 44.8370473696428462
-32461 -86.0310529036964482 30.2864695953307432
-60192 -88.1465918230590546 42.086860735104402
-45204 -84.5708606295831373 39.0970683870832332
-15646 -79.3393454901255666 40.0900806175942463
-56271 -95.4183920618444859 45.2198644467144675
-19474 -75.4051560677083188 40.2246948229166748
-85277 -111.896230199999991 33.8064755999999988
-43837 -81.4763818302605216 40.2999200730806635
-95209 -121.343664064749817 38.0399462573558793
-83254 -111.320536538792965 42.322204108411583
-79053 -102.616043833333308 34.3886800666666659
-25527 -81.9518361428571467 38.4565997142857086
-35042 -87.1453688376390971 32.9677089981070495
-16040 -79.8392819133443084 41.0956883222590506
-10154 -73.9732009999999889 40.7580800000000067
-17312 -76.4854236071428346 39.9437123035714237
-67869 -100.545246292670782 37.2711959432769504
-19478 -75.4600276874999878 40.2764061875000152
-55750 -92.1272742322647673 47.5107116552812698
-54215 -87.8006154374999994 44.2256680624999916
-63120 -90.2619390591718656 38.6914088795857936
-82325 -106.808055976351483 41.2059534180743583
-58580 -101.920703958833684 47.2857611526586297
-46711 -84.9382451387298829 40.6628044678298224
-71115 -93.6816419251065042 32.3924410353191732
-13620 -75.4485096011409837 43.9014684168494469
-54895 -91.4113264705882358 45.4230035882352965
-66079 -95.11774544282747 38.5487208577961979
-30521 -83.2988395426242079 34.3652768412241016
-51061 -95.7211507991924719 42.5803583143289615
-03561 -71.7989180525775197 44.3191151146063618
-77703 -94.1185956427088115 30.1114363688898763
-37396 -85.4988995740742297 35.0033864542483926
-96576 -122.676927000000006 46.9162329999999983
-55949 -91.94683594087671 43.723450390819842
-16680 -78.4061803333333671 40.757301035532933
-36543 -87.445357801801805 31.2121353423423393
-94511 -121.633522860317456 38.0257635989418148
-40376 -83.6964137688564449 37.7945943041362398
-73684 -94.9836956000000043 32.2369665000000012
-21502 -78.7679263118278215 39.6432630736320135
-62601 -90.0443871240544098 39.7487350438729621
-64147 -94.5448639065934344 38.8464630238095125
-17404 -76.7648601048270081 39.9893179303086725
-05738 -72.8574190064534406 43.5229881829506482
-81142 -105.622867083333333 37.0819819166666704
-68876 -98.7436611418839334 40.807639206646904
-30321 -84.3935699852941354 33.6399224705882531
-69210 -99.8645017707979008 42.5186141522354646
-96826 -157.827482030171979 21.2923306860632131
-49433 -85.5239647500000046 42.593069749999998
-55992 -92.6762473244993146 44.2997912316358864
-29817 -81.2834862773563174 33.3625398060316911
-58074 -96.8975257926829272 46.3281219146341456
-10634 -123.390777545454554 46.2128964545454579
-85009 -112.125991620292382 33.4562332190661351
-21657 -75.9814632213897738 38.955764614781998
-67335 -95.533995902415171 37.2700087441253203
-49331 -85.3498401813906185 42.948460046358143
-38843 -88.3818525810715698 34.268835831936066
-29632 -82.6856171999999958 34.7842289999999963
-83263 -111.818368335915466 42.1479499382927898
-49089 -85.234917014045152 42.0183934792134437
-06442 -72.4441099103942321 41.3440433290323384
-17862 -77.0611328141592793 40.8605178982300714
-45360 -84.0918833559321968 40.3305597711864223
-02809 -71.2695833081746457 41.6856879564564125
-71970 -93.5107869757915324 34.6681853005586618
-10560 -73.6029075929203884 41.3327611260569867
-92663 -117.92818167500694 33.6199794734167057
-34448 -82.5764356192392484 28.7982021378547124
-28804 -82.5604977637869979 35.6408718818513321
-45234 -84.5359175000000107 39.1145329999999944
-10107 -73.982720999999998 40.7663845000000009
-53038 -88.7724894168420349 43.0773168329824401
-57367 -98.5333952710843448 43.0635861204819221
-05444 -72.8999966554872856 44.6533512679336297
-71315 -92.5078176666666678 31.1473996666666686
-97918 -117.299788236068153 44.0104841735036203
-53536 -89.2891957975691639 42.7691656100168558
-36914 -81.9888224000000037 26.592672400000005
-59868 -113.474831000583919 47.1732570846797614
-17943 -76.3837883095237942 40.763981011904761
-54007 -92.3719880898810288 45.1970802249999934
-07049 -96.4992542758620573 42.4934112068965462
-85716 -110.924729748858681 32.243221950587305
-67203 -97.3646379558323645 37.7044919261617864
-15063 -79.9248993333102931 40.1931561384375158
-53566 -89.6417136165457862 42.5990307602164009
-66102 -94.6779553794873436 39.11488468346095
-25067 -81.4398263354944021 38.2132660875202959
-36305 -85.4779766404972463 31.2139165287640381
-68969 -98.8698545344827977 40.3999178103448102
-53404 -87.8078534879642802 42.7465097937593157
-67031 -97.6456809370759373 37.4050002270202953
-10598 -73.7926283174667788 41.2928397868065815
-51431 -95.3562949009287877 42.3488461625387629
-56282 -95.2104371731843031 45.0325571054004072
-64120 -94.5277603550401722 39.1260901333629931
-62889 -88.837231556742168 38.4579054410325156
-50479 -93.3954315855819317 42.9453489877740822
-89027 -114.080104828717666 36.8148979495448287
-75605 -94.7380200830063188 32.5623121908066366
-19942 -75.5789554285714331 38.8709248571428603
-92323 -115.467639296212795 35.2764299156898389
-12827 -73.5118853817870672 43.4228872326038058
-95673 -121.450778252666922 38.6897576071321154
-17264 -77.986885166742681 40.181386154539247
-22529 -76.6924735089285576 38.0380257232142895
-54424 -89.1759955789473793 45.3271701578947415
-93292 -119.246368991337008 36.3459620313153167
-25464 -81.9348609545454423 37.8092034545454538
-06710 -73.045524353400566 41.5687389250919068
-99644 -152.504777999999988 57.9227277045454514
-32706 -81.2370669705882165 28.9664993529411703
-22503 -76.5064184137664967 37.7445270501622971
-22725 -78.1588298999999864 38.4379199285714392
-47246 -85.7608000897625828 39.2917545520680349
-29846 -81.2261957321428838 33.0359696785714334
-19101 -75.3118154000000004 40.0183315000000022
-32422 -86.073798565217416 30.7338526956521711
-62271 -89.5309826410486949 38.4387091220615105
-22848 -78.8968676428571456 38.3835630714285685
-78102 -97.7882155941007625 28.4446642608681621
-62963 -89.1628425757211573 37.0878154915865181
-54639 -90.6178254780022598 43.5716315980975182
-85293 -111.787262468531424 32.8095626223776051
-30666 -83.5881714670750853 33.9630958117535613
-68062 -96.677234248466263 42.1967192392638069
-10941 -74.3545922226781073 41.4843578974262783
-13636 -76.1298317220543481 43.7393885830815563
-45350 -84.5697563333333306 40.3254010833333396
-15019 -80.3351803591919378 40.4099127621794025
-27564 -78.7468278571428613 35.5647558571428561
-16927 -77.659455250947758 41.9606706474601197
-32189 -81.644558233671134 29.5574865160722524
-19567 -76.2045743941033322 40.3886428300697276
-76403 -97.7124854999999997 32.3189688333333365
-81141 -105.932080816165737 37.1699614155937255
-32058 -82.098311673913301 30.0505571204177038
-68465 -96.9988463855787586 40.4888307433547467
-39055 -90.0105165000000085 33.2277681999999999
-78557 -98.2409044962462872 26.1027880251501934
-46345 -86.7001213231706771 41.5257174573170644
-06484 -73.1352559294449094 41.3043368331343359
-23962 -78.6996543284929686 36.9394145412088122
-33199 -80.377278000000004 25.7610470000000014
-64632 -93.8063396611002673 40.4516923123772756
-27592 -78.6801704632668049 35.5632804450564493
-95587 -123.757108618514764 39.9674771342828024
-59469 -110.694167078638415 47.2068720715962087
-57675 -99.6154922500000026 45.2077282500000024
-85344 -114.295054625537119 34.1063654751424536
-41535 -82.2793712797493555 37.5982377463465482
-95628 -121.258107688052448 38.6551712315265377
-69152 -101.036384039953035 42.0996545881316138
-03055 -71.66733678626413 42.8240727061924389
-23306 -75.8625769613479548 37.5646852779980449
-29593 -79.8791409594387289 34.4899446162247472
-98112 -122.29685070953272 47.6303902766537277
-48303 -83.2535799999999995 42.5751968750000032
-63739 -89.8045579573825563 37.3557191954369259
-72686 -92.8655403883882826 35.7668432862863312
-26102 -81.5616346842105315 39.2691676842105224
-07721 -74.2358480699373615 40.4354864979123221
-05257 -73.2479398213248487 42.9459509142939311
-93532 -118.489411475156928 34.6924208994860095
-95982 -121.765678374821846 39.1656349121140011
-50702 -92.3295292879822398 42.467923366765568
-51573 -95.0940347139016922 40.9764327142856359
-07018 -74.219332605417236 40.755438415080512
-08740 -74.1354119093610961 39.9260105007429473
-29840 -82.506038402578838 34.0017213968481045
-92941 -109.799155500000012 42.8518820000000034
-83687 -116.534893428328189 43.6010503915737075
-10975 -74.1509903201834391 41.2432418440366959
-13044 -76.0000461265229745 43.2817166813496854
-35244 -86.8124348926274081 33.3580259170374021
-31557 -82.1076590227517187 31.3772982888115095
-72926 -94.0563462309044809 34.75554358887711
-49064 -86.0501134741533207 42.2122453975044323
-73858 -99.8761201222142319 36.2712838734722922
-15320 -79.9931191336406471 39.8799871359445888
-38014 -89.7678283571428608 35.2734977857142837
-25272 -81.692295944444453 38.8655958611111103
-04236 -70.1453203832035967 44.1923657396037228
-22151 -77.2117361674200851 38.8038689941879298
-85925 -109.303722831813388 34.1015386398176474
-21085 -76.3556106344152425 39.4350853507815486
-39209 -90.2630935376302403 32.3385952578154914
-42740 -85.9337476551204134 37.593002052495649
-52751 -90.673115358161013 41.8424952041378972
-39090 -89.568996825003822 33.0259539695357276
-73749 -98.1747087310925224 36.6958999873949452
-28604 -81.8411891526912427 36.1750351021379473
-22101 -77.1676051930014495 38.9335053527852111
-95715 -120.656548481997703 39.2943910290359923
-27105 -80.2355451731939695 36.1517870133810462
-68113 -95.9158211007957391 41.1311758116711275
-08880 -74.5286141027132913 40.5535602441860519
-70050 -89.5956487031963462 29.3885630502283171
-46526 -85.8510765665410673 41.5649681644985165
-52626 -91.7196215845882108 40.641518589902617
-66740 -95.3633490848000065 37.4651348015999801
-53017 -88.2493040556587829 43.2066017676842975
-62896 -88.9170835347773476 37.8935611415388109
-29486 -80.1307552952359856 33.0725225226888782
-98232 -122.41742205512638 48.5732369600234364
-72112 -91.2501915988837453 35.6058023620438959
-81130 -106.990636579527788 37.7877499971320745
-07739 -74.0405816987381939 40.3357378886435782
-21532 -78.9417371324749979 39.6530441974235757
-63133 -90.3053512799518359 38.6792415659240376
-60659 -87.7037050987718203 41.9909653103535305
-12590 -73.8900576625725165 41.5912183861657496
-29635 -82.600793627100046 35.0767111445528599
-74365 -95.1038271071847277 36.2988417535688583
-79730 -103.060645284671509 31.2324842299270138
-28439 -79.0197195643921617 34.2997493924536911
-23483 -75.5032604374999892 37.9278133749999995
-85938 -109.283410385890079 34.12877339157194
-56323 -95.7259084192201044 45.626592613509743
-26141 -81.2586767316295067 38.9343111456868627
-26739 -79.2486793121452706 39.2471493053348581
-62533 -89.6342093562379461 39.4462618445297366
-19028 -75.4449730000000045 39.975084333333335
-63645 -90.3014879858628206 37.5507157833090659
-98348 -122.319239375000009 46.8341847499999986
-35034 -87.2342989396589132 32.9166366413258444
-95630 -121.149450240492627 38.6744002956587707
-61044 -89.9105333841726519 42.3200719208632705
-59999 -89.5673725000000047 44.7147170000000003
-18654 -76.0697771698113598 41.3234819245282949
-78586 -97.6372422191228679 26.1187520580344348
-84055 -111.196333536437905 40.7657229413398738
-94574 -122.429625375336272 38.5228519559267326
-04947 -70.2278015309895238 45.0313010230033655
-78148 -98.3045031512080101 29.5508112079112557
-98584 -123.077959820822343 47.2243117096769822
-70818 -91.0484759427859984 30.5440580581706662
-50110 -94.9808707380952058 41.8404382380952313
-27522 -78.6766064246631061 36.1061729643576257
-03781 -72.3121072018691109 43.5541054110280541
-43570 -84.4335888748759658 41.5917334108665671
-53716 -89.3145530998938995 43.0676722588747225
-86339 -111.784150277777783 34.8641032222222194
-67653 -100.171412417410721 39.8533458080357192
-70754 -90.7519244761193988 30.4162556842610883
-28530 -77.4261774562073128 35.374816662278306
-02838 -71.4734626566916376 41.9656489900249667
-46361 -86.9190133999999972 41.7006620999999953
-55922 -91.9102046579407244 43.5478909249563841
-49322 -85.3682290644351127 43.3623361665272213
-00918 -66.0630692539682087 18.4161030083541952
-69341 -103.66303408696804 41.7904541049673171
-14211 -78.8216915364440638 42.9086969274168482
-83657 -116.294142275771534 44.234763392646002
-42171 -86.1647452186354457 37.0309882142931031
-90049 -118.483318675431349 34.0775065377155215
-73827 -93.0627816153846368 35.3841824615384581
-40495 -84.0712727142857119 37.7016455714285712
-72841 -93.7554589587124241 34.8660257116864685
-80749 -102.523581434762605 40.8786780608575739
-53555 -89.5567249365220306 43.2899394897713776
-46128 -86.7435598587648116 39.6734565492465023
-43571 -83.8019520755989191 41.5212643010462514
-75073 -97.6768998333333371 33.158256999999999
-23234 -77.4740058292189673 37.4521858302103681
-30072 -84.2061413308270659 33.7916144987468883
-27026 -80.5482055000000088 35.8477118333333351
-36451 -87.7941068974823366 31.6996239252530678
-39206 -90.1748952486878323 32.3691869269800137
-68046 -96.0480786048612316 41.1408712112560693
-73526 -99.2921539147841798 34.7837230985626746
-93042 -119.086307391891921 34.1028422972972791
-97626 -122.011889688144365 42.682261664948463
-56078 -93.7554771241240843 43.9987353543544728
-56046 -93.2760509230769372 43.9627108461538398
-44272 -81.2018758144532313 41.0892234739583913
-73740 -96.4019730000000123 33.861109285714285
-55020 -93.3551975973153247 44.5704788635346034
-82426 -108.071995896350998 44.4973526859865771
-61455 -90.6703475565079344 40.4499557134512528
-20909 -76.9340768333333358 39.0837051666666682
-55329 -94.5651260513080132 45.3230246287726644
-15828 -79.1404832483531635 41.3300654683794804
-92886 -117.803469347895089 33.8899983326827297
-19421 -75.6338597352940951 40.1386542352941049
-16915 -77.9866005920228673 41.7928035826524678
-56074 -94.197474510240113 44.3049990911017204
-61243 -89.6768372558139788 41.6184297291383061
-84518 -110.864240462046226 39.3581281639163834
-36615 -88.0671028456376632 30.6397798758389328
-73033 -98.5556926837606824 35.3035467179487057
-37020 -86.4060240418551899 35.6241178889140286
-96772 -155.612551376470549 19.0470365529411794
-39269 -90.1888959999999997 32.3005129999999951
-35541 -87.180107961750906 34.0752556418785986
-03209 -84.0500521111110999 30.5979300555555547
-63105 -90.3289721313233969 38.6434981387570815
-28005 -81.6574080000000038 36.1216489999999979
-74476 -95.3042844000000002 35.9554999999999936
-25873 -81.2217421877193999 37.7506119982456383
-53969 -89.3099192290748931 43.4967221674008826
-30736 -85.1494997001452703 34.9107278099357146
-50613 -92.4595778694594657 42.5237043055365831
-52411 -91.7227093929127903 42.0416436229443775
-11418 -73.8331994137930963 40.7041150689655211
-68368 -96.8118019096175004 40.5534043070683552
-48618 -84.5536720181376609 43.7480675276123705
-65653 -93.1086798676886502 36.705920677309507
-36871 -85.1543279415890169 32.1631032055861183
-35570 -87.9964921491933438 34.167896576571394
-31735 -83.9554135932761199 31.9668135121951451
-80488 -106.883918769952999 40.5091544272300439
-83703 -116.245314957995504 43.6576003196560336
-31707 -84.2031040035554383 31.587138068527242
-95074 -122.543947857142854 39.8847171428571414
-45177 -83.8535068253679157 39.4628240595201376
-80227 -105.085471422183261 39.6673806583674633
-38701 -91.051836275087723 33.3755110938388384
-58027 -97.644326309530868 46.607180860920117
-23130 -76.2750850020899236 37.3964456959247329
-63559 -92.7389278644855324 40.2214854025697619
-39017 -89.9196128571428659 33.5059721428571464
-52801 -90.5752555890804985 41.5218945258620735
-74031 -95.5273638571428592 36.4267880000000019
-37886 -83.8130121721540746 35.7472748199517056
-55129 -92.9039691051716687 44.9052231975144309
-77448 -96.0781690454545583 29.4054106818181715
-11370 -73.886946100000003 40.7762943499999935
-05149 -72.7063046501268104 43.4049596569256551
-74943 -95.1074155085714068 35.1030633371428564
-57440 -98.2842888684637046 44.857736518010725
-35581 -87.7059712494285293 34.3557460227907754
-45847 -81.6706064444444451 39.3513341111111146
-72369 -90.7859144999999899 34.443299500000002
-33975 -81.4365192916666985 26.7814402083333363
-64745 -94.5046280444444307 38.165434733333349
-53051 -88.0997092702702957 43.1390934729729736
-52136 -92.0914765219665838 43.3811882271509788
-70540 -91.544329166666671 29.7980382777777777
-48770 -83.8135535391245838 44.2412337261273478
-75013 -96.6983590251139447 33.1129727531000313
-79377 -102.113175115151506 32.9399668303030282
-95615 -121.564002664506972 38.3121592023037891
-25106 -82.096335369308747 38.7795547951096182
-19980 -75.5702162769230767 39.0721033230769308
-83867 -115.954251813218349 47.4985873534483005
-70543 -92.5070791349305352 30.3301530182228731
-36320 -85.3175093977438337 31.05644755203787
-28466 -77.9448656257432759 34.7502943937384003
-97028 -121.747721546718182 45.2952271196911624
-60151 -88.613736934302068 41.9025119753632183
-03751 -72.0743300066225885 43.438153323178831
-14871 -76.9094500692067982 42.0438911811820759
-28585 -77.4181924020893746 35.0622596267540061
-06114 -72.6796771198910392 41.7382443235694183
-50540 -94.8386046796176885 42.5994760243092543
-10597 -73.5958645637371092 41.2967687078384671
-95686 -121.44819096862733 38.222501500980421
-61738 -89.0200116722331671 40.7347243202891747
-23223 -77.3915003436915327 37.548920621923223
-75469 -95.8281093462532709 33.4250942105943025
-78763 -98.3004906000000034 26.3179652000000033
-82945 -108.949201974647863 41.7551876760563232
-71842 -94.3057687998839924 33.9354770657399243
-50003 -94.0178616609065472 41.5950088404180889
-87323 -108.17669572485579 35.3633533574632324
-18254 -75.9607069872448903 40.9162144260203888
-14807 -77.6956448184455013 42.4186143372002178
-16435 -80.3743200079537274 41.8160516811279876
-93268 -119.434757949478836 35.1768203087410285
-68609 -96.2968788999999958 41.2512827999999985
-38552 -85.8198143837657881 36.207242352065343
-44133 -81.7481243306590528 41.316994983954423
-99776 -143.359169250000008 63.3771776250000016
-95838 -121.443804875992569 38.6416690543401558
-20746 -76.9180234473800084 38.8379310975212277
-68054 -96.0823405714285457 41.0773279285714352
-89183 -115.150332674563117 35.9984685579800896
-15561 -79.0902775665024365 40.0970906009852186
-46701 -85.4404835835150038 41.3604563059275776
-72042 -91.3212969825611651 34.2890362736855323
-50238 -93.1832715245903245 40.9814944724292687
-60621 -87.6402561818700718 41.7767378567774657
-22306 -77.0857450975544651 38.757484867180068
-70359 -90.7666238445944771 29.6885741038407147
-72353 -90.9742732739725994 34.3322714520547905
-06456 -72.5498972625698286 41.5517218808193292
-08066 -75.2261617216381779 39.8308211587531673
-46126 -85.8930204454850781 39.6197599673324987
-21216 -76.6718301516648353 39.3099532729601577
-13322 -75.2129299211878362 42.9691691941747038
-41805 -82.9426844090909015 37.2947265454545445
-10514 -73.7705782418714193 41.1716513378525164
-73004 -97.8627245814751632 35.1591648439108155
-92570 -117.303797005916309 33.7936329456203026
-52748 -90.5592873848712827 41.6628369535565213
-53023 -88.0471736298932655 43.7984094911031931
-60938 -87.9881561755961172 40.7697236757240873
-17055 -76.9883464323510651 40.1861147010598998
-78387 -97.5506862200682718 28.0402671941934507
-32226 -81.5442281595272647 30.4707559481381516
-47834 -87.129787434134002 39.5243318081448862
-61540 -89.3825617402731893 41.02357395954661
-87109 -106.567067026133614 35.155209451766865
-28431 -78.8315392412875156 34.3049451423348231
-33613 -82.4509428252392098 28.0821310059181535
-28112 -80.5511315945801414 34.9157576593092998
-84752 -112.927605806913078 38.2163858688914999
-98027 -122.028840476910162 47.510702271423078
-02121 -71.0811936953097643 42.3076315391988302
-01901 -70.9458367244094319 42.4628413753280824
-33044 -84.0534460000000081 33.9158139999999975
-06258 -71.9637495199999933 41.8875855866666598
-14782 -79.2553007826086997 42.2651092968291024
-63719 -89.5270770000000056 43.031313499999996
-30069 -84.5198225000000036 33.9218784999999983
-64423 -94.8467158018398777 40.1873772581483664
-00724 -66.7146160000000066 18.0047982999999974
-85367 -114.407596452368736 32.6586614346663495
-48657 -84.3892898618364455 43.6990238980622649
-17301 -76.9836088732481869 39.8898145938959274
-16232 -79.5507219579424287 41.2214939074731603
-64504 -94.8739737165062706 39.7007112071685526
-79553 -99.8125276116060576 32.9399228230392609
-76662 -96.8982616666666701 31.2831119999999991
-86510 -110.213507258620652 36.1616638879310273
-37340 -85.5328628133432005 35.0272608680659658
-15672 -79.6273394007243809 40.2407237371519244
-54205 -87.6216448918205799 44.5766450343007747
-78670 -97.8333591607142807 29.7785025178571452
-20166 -77.4468613860839099 38.9922826827832196
-67102 -96.7762994961831993 37.0429898015267085
-75063 -96.9700366553142459 32.9235271129226916
-22385 -78.579267333333334 38.6305983333333316
-96729 -157.079325393735957 21.1623836286353573
-66521 -96.222006151767232 39.5035524708939576
-19934 -75.5883486269630964 39.0960756528397226
-98934 -120.418391409470772 46.9852295626740926
-18911 -75.2527641914893621 40.3699940425531878
-95638 -121.16575824172449 38.3150010246343271
-43105 -82.6241421705300354 39.860782013130212
-05455 -72.9642605725027806 44.8078321331902245
-23089 -76.9053281369269115 37.4425975138542739
-86338 -112.669882697552509 34.5303043959790585
-27808 -76.7757969878267517 35.4674327917042049
-19542 -75.7679743846153855 40.2587296153846026
-59261 -107.370162426229541 48.5119598797814788
-44405 -80.5909835258345453 41.0773211192368777
-43908 -80.8812956548735684 40.5056925415162752
-40855 -82.9147018977272694 36.9638009299242327
-04964 -70.7652003629864623 44.9183489614773421
-06232 -72.3774418769153556 41.7361112984175762
-04093 -70.5410484242307092 43.6467451996454869
-21010 -76.2955865606230077 39.3904525873192384
-38617 -90.4974943352855519 34.3761561068813748
-59322 -106.558276010416648 47.0689083541666378
-63432 -92.0382243333333321 40.5604483333333334
-48176 -83.781094430708535 42.1674429665180313
-48306 -83.1601875723218882 42.7166698287031679
-40735 -84.7001348260869662 45.0937048695652223
-95937 -122.006309126050496 38.892985164465756
-49010 -85.8706281276318748 42.5339736133946431
-55982 -92.8824605950001114 43.8130481583333662
-62250 -89.2634015670103196 38.5396053195876007
-95920 -121.971535995384684 39.4425468369231211
-41160 -82.9943474923077105 38.0300239384615395
-70030 -90.4447016400989838 29.8157429767326896
-43130 -82.605588940002562 39.7061237811852905
-60530 -88.9588881881655738 41.7893248520709975
-18331 -75.438477967340603 40.9110791306377024
-48040 -82.4826564570348637 42.9123545898646626
-56562 -96.7714889999999883 46.8676833749999986
-33431 -80.1018028182951696 26.3801703419181877
-28078 -80.863562255261769 35.4121838809509484
-89318 -114.781281563805109 39.3979596658932749
-92595 -117.262626762404835 33.6182809245948278
-16029 -79.844764677559894 40.8782550871459662
-75647 -94.9535461912997931 32.5255354309667553
-74578 -95.3282921477176046 34.9061841260199088
-49760 -84.9182521984732261 46.0626691297710167
-95139 -121.766646167824064 37.2255929301697179
-79549 -100.928082643019223 32.7524133367907666
-67701 -101.045911828748231 39.3896418521320513
-33258 -81.5593345000000056 27.7555885000000018
-10311 -74.1743093103447961 40.605106172413798
-96044 -122.49205843874924 41.927488573531015
-37338 -85.2084402725529486 35.4267691201124393
-20640 -77.1488505838392911 38.5694402064847708
-02878 -71.1758618752553218 41.6246541808108574
-92662 -117.893029862527541 33.6065836274945156
-16228 -79.5353908823529423 40.7608676588235355
-56119 -95.4886651096047245 43.7144193138418373
-18612 -75.976257388728925 41.3449180265116709
-29919 -81.2413659999999993 32.7473030000000023
-72070 -92.6984607661387798 35.0250574393474068
-99573 -145.40453235714287 62.0689830000000029
-34648 -90.4045320000000032 31.2173279999999984
-53954 -89.3026025436446957 43.5314262036753732
-43316 -83.3808336386307616 40.9494207414833298
-24750 -81.3076544999999982 28.7330100000000002
-50275 -93.5960865763000953 41.0302744748509127
-42701 -85.8525585109381097 37.7075101734921319
-10918 -74.2607143384842772 41.3474239940563919
-43044 -83.5732741488063056 40.0543762702117405
-23108 -76.7258659579832312 37.6447201092437069
-55416 -93.3403473672217814 44.9506430325118131
-01029 -73.0440941051769244 42.1768160756882082
-42330 -87.1362530660438068 37.3128308316718886
-62022 -90.3326597746130062 38.9959193985066577
-12493 -73.9683337987680005 41.8033206591375901
-72566 -92.0847937487623227 36.1932640581683103
-33182 -80.4038311942241251 25.7761684586636406
-10804 -73.7851487008493478 40.9494331970570187
-14845 -76.8388740483642891 42.1896705874338451
-15022 -79.9248309500513443 40.1351798432265241
-07027 -74.3231671784387373 40.6511372936803141
-14058 -78.161304638699562 43.0973819098059252
-54140 -88.3109977855952621 44.2861146815154214
-54313 -88.1040534374396174 44.5676794330227608
-48834 -85.0391163150424916 43.1285920449385713
-49072 -85.4619763279400928 42.0100748981847261
-41062 -83.9279352222222457 38.6883967142857017
-08852 -74.5487842799997935 40.387259581242958
-62998 -89.4380628647871561 37.5041195914845034
-59430 -109.905707170522589 47.372028943016339
-50668 -92.223450320974635 42.6921796154660385
-02835 -71.3749161486736625 41.5138364033004379
-77530 -95.1267141773437572 29.7900692584882201
-50609 -92.8172017213822897 42.2092844546435799
-67762 -101.975002367768596 38.867670731404921
-73179 -97.6518632538568028 35.4232998443198071
-64636 -93.986240012413873 40.1154690096551789
-44128 -81.5485960408257284 41.4402861034248247
-03053 -71.3823068520957946 42.871015915570581
-04350 -69.9483923873029738 44.171296180212309
-16850 -78.2935856666666723 41.0967113733333207
-75109 -96.3112215269893994 32.0225852259407162
-25971 -80.9823523121040978 37.4771417645881755
-65898 -93.2500668181818213 37.2375174545454612
-32811 -81.4434865235436121 28.5217052091556944
-12440 -74.1485393387980167 41.805757183542255
-43207 -82.969069764401965 39.8953019980034185
-54245 -87.8946028726743975 44.0282005255813473
-16039 -79.7937203796296615 40.8321985185184957
-45653 -82.8286016624107617 38.8877590816137726
-98871 -119.988392666666684 47.8017426666666623
-50650 -91.6583491429794464 42.6094607803937606
-87554 -106.011489515384582 36.5130796384615337
-01718 -71.4291800042553149 42.5197482382978649
-49404 -85.9483223378319252 43.0559787073774132
-78767 -97.7398703750000095 30.2672954999999995
-67851 -101.010383600513364 38.0490457188703104
-40204 -85.7243711895349492 38.2374118773256626
-53091 -88.4541709026945995 43.5161283877245282
-57950 -81.8366599999999949 28.1730265789473755
-21542 -78.9467059425287232 39.5909850689655372
-33426 -80.0834452961582031 26.5285252112897041
-04084 -70.5622784830560192 43.7681364567875306
-41803 -83.7722635000000082 42.2800610000000034
-27826 -76.1981647980652781 35.5591683373639569
-77651 -93.9600185822366285 29.9791804665571071
-23125 -76.284872448476122 37.3443997068215054
-27529 -78.5920660312635988 35.6603224789196886
-67444 -98.1194392581551114 38.5532595699754239
-29108 -81.6187777636803133 34.2873727901019691
-48888 -85.1142957330554282 43.3032071011726316
-52549 -92.9351450941767609 40.6162238907261255
-08326 -74.9359360777338139 39.5268354044795771
-70131 -89.9870305421162442 29.9160145583617769
-43567 -84.1485938084578464 41.570052036268315
-76050 -97.1972771201244257 32.2849533182561927
-75708 -95.2247913129140073 32.4046496242054474
-27953 -75.8035896321352425 35.8950383498942998
-45118 -83.9487586632372853 39.1806484936614936
-68466 -96.6528018347260627 40.0844094992866502
-41222 -82.8436298554802448 37.7683284159099557
-81066 -105.279104379999993 37.7023513399999999
-32180 -81.4527632992925703 29.228232323082203
-73569 -97.9110962781456635 33.8996079403973667
-16153 -80.0965744297688786 41.3305062140292208
-54447 -90.6899067931034466 45.0682937586207046
-92008 -117.321732563235088 33.1534186713407948
-32246 -81.5100128825839789 30.3014652726344309
-65085 -92.0692098427856109 38.4096599767871183
-19083 -75.3103120104912023 39.978246221191327
-38838 -88.2478556328113513 34.5521101771429358
-50542 -93.9260889317193204 42.763551013057544
-27355 -79.5630484986106268 35.791502213293434
-73847 -100.193667750000003 36.8727157500000047
-20758 -76.588250706907715 38.7328068934796406
-82236 -114.249191666666661 44.5038396666666713
-80804 -103.284226171688829 39.349561942536802
-30067 -84.4614867413116457 33.9359513576860934
-60556 -88.7686517317990393 41.7630707979079432
-50058 -94.6966778720093316 41.8597917145633502
-71961 -93.832054078659155 34.6038703737138817
-93235 -119.20940543287675 36.3789712780822043
-18435 -75.0206118290240767 41.5040860389907138
-84652 -111.86828227643646 39.0050102930890645
-99126 -117.983425903215419 48.7378373025723377
-84564 -111.076506624999979 31.7299833750000033
-77591 -94.9939982929434308 29.3911582826161712
-75756 -95.5974490057570989 32.2969489364805824
-05473 -73.2052234227160028 44.2483437044444301
-05457 -72.9018253824536231 44.9729375563171629
-99676 -150.044404923132532 62.2286935221175597
-58558 -100.534674009245919 46.8052923958395155
-17568 -76.2326111153846284 39.9466711153846106
-25571 -82.1671281901987953 38.2863770426977368
-60129 -88.9553013604060681 42.0286238172588256
-39111 -89.731019361739186 31.8739699405342449
-80133 -104.911255559779377 39.115867858982206
-04254 -70.1557118273073144 44.4434450975980013
-17758 -76.5643131618453623 41.3430019176125896
-60181 -87.9788963424470438 41.8847387975095415
-25826 -81.3567173132529859 37.5728491325301093
-52749 -91.1261267087628113 41.3530212912370843
-07832 -75.0513928929046585 40.9449919215523508
-42361 -86.7018589979854966 37.5188727803895787
-07208 -74.2287452893183257 40.6731597595277137
-55062 -92.3160049999999899 46.2385080000000031
-11944 -72.3653690240173546 41.1067986082969838
-95828 -121.401034603052537 38.4815459449702928
-98593 -122.976198422248913 46.4041865550239194
-67764 -101.198609058236229 39.0174056755407364
-04022 -70.8044318126207486 43.9830726662373479
-57374 -97.5692125147194531 43.7237385896964739
-37376 -85.9229243892239936 35.0406972612069154
-42040 -88.5080975896980107 36.6187598927450608
-44689 -81.6537678192955809 40.648572147013752
-48093 -83.0098248506586884 42.5154127655928562
-07403 -74.3333073975187659 41.0170344510209972
-12967 -74.662998268337887 44.7718700649953547
-47918 -87.2208606602724359 40.3072809733187754
-13630 -75.3158059158879922 44.4994985493701236
-57202 -96.9175643000000093 44.9936684000000042
-64699 -93.1132146666666785 39.9978623333333374
-81631 -106.799401051623462 39.6446872285818372
-57455 -99.7500723987341047 45.0093762088607647
-47846 -87.1971593710617014 39.3685927882146771
-64843 -94.4366097377388058 36.7348471830774486
-79566 -100.111830316337191 32.1425535189038882
-64686 -93.6270456291208433 39.7433339478022063
-58429 -98.1796595863095547 47.1933519579081917
-72626 -92.5376788433576394 36.2940139193654474
-32449 -85.2111120181819359 30.2647206055944125
-83114 -110.96383509975459 42.1334097980376896
-16929 -77.1367795881727147 41.9761255536636355
-37365 -85.5550881422050793 35.3761543792141495
-99156 -117.195868056949422 48.1539642461187256
-62079 -90.1391155980392256 39.1038149044117347
-60011 -87.9034272499999929 42.0549112500000035
-99014 -117.595166239130421 47.5610375869565232
-50845 -94.3435523146495569 40.8174375783439345
-59071 -109.534463254623049 45.2952218349928728
-31741 -84.7126758163265094 31.2875592244897938
-79250 -101.615876886071007 33.8706871943035921
-08559 -74.9689982453538022 40.4379023670442947
-41804 -82.9866331212121366 37.1483347097480419
-85920 -109.126351681383454 33.8372593090506868
-35755 -86.1152309482116891 34.512568036885213
-42159 -86.2447542738457997 36.989479034882109
-84310 -111.847072897508056 41.3265718957944586
-99143 -117.844381872611109 46.7682038988385287
-03586 -71.7915866054475202 44.2255176591439394
-08016 -74.8395345447113556 40.067930620808653
-97752 -120.308955060800045 44.1198998159999789
-96140 -120.105305821765782 39.2000484894503458
-97326 -123.618362282720653 44.626323559761957
-17327 -76.7456511758880282 39.783897867566381
-57251 -96.9129823784615354 45.2782524738461163
-04109 -70.2011662454090413 43.6682061302170368
-16851 -77.8129740931780276 40.8093370632279715
-58436 -98.5601281908427183 46.0296430500192315
-02818 -71.4879989786844021 41.6461511389290564
-02674 -70.3042197142857219 41.6336354285714307
-63862 -89.6423396650165643 36.5883642731023357
-59330 -104.736658422825144 47.1414325891503907
-80611 -104.303604819775586 40.599897096774157
-71410 -92.7789402647058523 31.9656327294117695
-85901 -110.056118106904847 34.2828195703687157
-36483 -86.6575862201837168 31.0297210693578052
-48117 -83.3997663183534286 42.0504394346677373
-32094 -82.8291004638553687 30.1842953228469462
-80121 -104.952795793757801 39.60813809669515
-38255 -88.8488560367393916 36.240233462686632
-55087 -93.3924961784702532 44.2480276232294685
-71108 -93.78262540762924 32.4486255865548827
-29631 -82.8147385897543842 34.6829764828306679
-98850 -120.133346720286013 47.3628894075066995
-07738 -74.121767368479837 40.3386853345964624
-16933 -77.0717113827800659 41.8113895723216373
-62234 -89.9810667342051147 38.6835539248772093
-03945 -88.6297039999999896 31.0869356666666654
-15613 -79.5769072240798465 40.554788848272139
-74436 -95.7263653661529332 35.8310512445690676
-58345 -98.3508119020027323 48.298195208512098
-01604 -71.7696982628584408 42.2515802714484039
-45841 -83.7331309513556761 40.8763216826155755
-56580 -96.6116220697485488 46.7474424448501296
-15770 -79.1632754011516511 40.997095387715909
-36024 -86.0206504167534405 32.680921466852709
-30259 -84.7463672426131183 33.2708357685008878
-43545 -84.1329956940741823 41.38763229518716
-30082 -84.5364397360514204 33.8571045732792442
-56149 -96.2842757245509517 44.2882760419160775
-45205 -84.5766921922780739 39.1108010142857268
-79121 -101.930236516574524 35.1740175821823371
-61265 -90.4961160905369297 41.4898387686588919
-61256 -90.406299389108824 41.5534776801980001
-62803 -89.3006547778794157 38.455052164533754
-13452 -74.6288949293014952 43.0280194677499139
-12838 -73.4024377897573714 43.3434230687331237
-36353 -85.3688258385022465 31.470995847806897
-11714 -73.4852553104214508 40.7400739415496673
-57432 -97.9922864099306565 45.6767944487589475
-02026 -71.1690599230023508 42.2449046375230211
-28787 -82.5446248781519785 35.7289667873217027
-61610 -89.5958463168785357 40.6447004693285336
-88255 -104.174134983870928 32.8865403064516073
-37118 -86.1954334184572417 35.928692908264523
-85546 -109.695785481429795 32.7982337141132163
-91923 -117.116166833333338 32.5908805000000044
-30241 -84.9744045719818075 33.0275377271427715
-41092 -84.7091424603770946 38.8131739251089201
-14787 -79.572919665015732 42.3173467219720649
-02880 -71.4653573333333298 41.4340507777777773
-83245 -112.231505868743739 42.8090555596171498
-00622 -67.1706258119891402 18.0162103841961745
-33838 -81.6160222799515793 28.0205134683340624
-38647 -89.2032025179784966 34.9591642327502541
-32514 -87.2205301252679845 30.5268932905924792
-47532 -86.855982934633559 38.2295448259749051
-94513 -121.716019989125613 37.9338293107228566
-35896 -86.653980500000003 34.7532890000000023
-34940 -80.3362029999999976 27.4650800000000004
-18469 -75.1364968985365635 41.6983375790244537
-33542 -82.1821752184478242 28.2382401965855827
-33874 -81.5694794999999999 27.8983154999999989
-46572 -86.4035879285714117 41.4110224285714281
-65354 -92.890588539643602 38.6474090092193876
-69850 -98.6519509999999968 40.4648090000000025
-95448 -122.880079903450167 38.6171157495677591
-34433 -82.5163418145632477 28.9971194267939474
-66886 -95.079708999999994 39.1122039999999984
-14744 -78.1933563050294254 42.4230052834748648
-15668 -79.6785503242588788 40.4530619129566062
-61830 -88.7199281757322069 40.0137568423989265
-65339 -93.3808864757535844 39.1817564390563291
-11104 -73.9215071999999935 40.7441941333333304
-56456 -94.3325847142857157 46.6461641428571383
-30183 -84.5858697920313602 34.334613395488617
-39558 -89.4369390999999752 30.2516729333333423
-05485 -72.9731351666666512 44.9028225555555593
-17536 -76.0737043117031533 39.8412052612528598
-37186 -86.2151695498390751 36.5825969282956081
-52738 -91.3827483578676407 41.2778805676285785
-04275 -70.6402504992248055 44.677289685788125
-43939 -80.7979182889610428 40.1752475649350771
-46224 -86.2578244812727064 39.8000559959843159
-04015 -70.5208496622966692 43.9629921603361424
-67871 -100.914047368448323 38.4920631382093177
-05073 -72.4679840999999954 43.6331875799999978
-43220 -83.0687094662593637 40.0485850613690246
-80530 -104.930806549496083 40.0999770853586881
-05483 -72.9681342696923565 44.8898376931734049
-03084 -71.8480736776043472 42.8209770993947814
-24269 -82.3782921451850854 37.0731021890369874
-26296 -79.5486819999999994 38.8130006666666674
-40472 -83.8757678543241383 37.7168840075518546
-98107 -122.374738036440775 47.6673589355692471
-65648 -93.1629885347776252 37.3901821532451564
-35757 -86.7492336876330086 34.7841266072190933
-43315 -82.8805926644765236 40.4891878415940454
-44406 -80.7632268411373957 41.0267280572110735
-47848 -87.2586192164674799 39.0579096002656954
-98198 -122.31325695305047 47.3925897350903327
-71749 -92.7824359641039536 33.063821524377822
-16674 -78.0847757456926388 40.1897073294279608
-66023 -95.3768038151781354 39.521880093959652
-62426 -88.6467339329957582 38.8945511040124359
-45849 -84.4483848114210502 41.0081494309428507
-55056 -92.9843048269672607 45.5067293177260552
-81147 -107.06582598913549 37.2265854099189539
-51650 -95.5586179833887712 40.6764782441860433
-48846 -85.0652976727116368 42.9867785027512213
-52637 -91.1350899862681985 41.0132891122979473
-49267 -83.7094263894080939 41.7597342170301005
-38929 -89.5610155677870949 33.7476012596434742
-78548 -98.6475209560439907 26.2730050153846229
-87028 -106.838434484162832 34.3832902217194487
-33815 -81.9873328372422066 28.041035394314143
-30319 -84.3360733679676997 33.8775563078089306
-65617 -93.3384896895037173 37.4303485450556792
-28134 -80.8864879360522622 35.073286861990276
-95821 -121.381521865563315 38.6239942070222639
-05032 -72.6623125071580489 43.8003022459973437
-56387 -94.2270493696220939 45.544410677735975
-50054 -93.2445598364750055 41.6902703610441776
-55711 -92.6808852079729633 46.8552725148551374
-61486 -90.5769270788612175 41.1974930670812114
-17501 -76.2057026362661531 40.1569840472102726
-98345 -122.624720621082602 47.7005898603988143
-26378 -80.4428842213736317 39.1186343408790407
-36504 -87.4939740000000086 31.0204363000000072
-41663 -82.6495516617100918 37.5709132565055626
-27948 -75.6866710559848457 36.0144791254363668
-70349 -97.2908265000000085 35.568866749999998
-19401 -75.3344138290154035 40.1269163367309716
-25317 -80.0928277142857326 40.3040919523809578
-22845 -78.8127637777777608 38.7911607422222247
-95567 -124.178701905936478 41.9470075087792935
-71647 -92.1187294140150357 33.3903167145156843
-61237 -90.8572626842105393 41.3376405263157949
-12309 -73.8705254605985289 42.7935262873203257
-22448 -77.0427204966442645 38.3280934899328827
-03774 -71.9980078223246664 44.0822532942024594
-91040 -118.331750718849364 34.260429129118549
-91648 -108.851043491278986 39.9812006976744101
-67523 -99.5382498333333388 38.1915843790322711
-13309 -75.3368836745543717 43.4767172824124302
-08061 -75.207835803187308 39.8026232653386174
-36616 -88.0814987272727308 30.7248158181818134
-44246 -81.8829514999999901 41.1131230000000016
-24812 -81.2818614166666862 33.2519475833333402
-76445 -98.5524841440329453 32.2605249308641575
-62908 -88.8529070234543212 37.3106457594883167
-45898 -84.7661772934460487 40.73972622198729
-49237 -84.6464430873635365 42.1749389344774386
-28547 -77.372214091228102 34.6940152269005466
-57763 -103.232946137082607 43.1557045623901843
-78516 -98.1127417071240586 26.1839382958241522
-84319 -111.848241710294232 41.6295941355043553
-98493 -122.575818499999997 47.135917500000005
-72865 -93.5626635988023878 35.3053236505812862
-56128 -96.1150103023721414 43.8776832526842
-55555 -94.9135610000000014 43.0308039999999963
-12577 -74.1196994887995686 41.4343833026995725
-16832 -77.452446903482695 40.8506243840796444
-47031 -85.1429500119584191 39.129789967862628
-65464 -91.9337514422493314 37.1829516656534267
-27560 -78.8413432043397364 35.8419020533671144
-48192 -83.1684491041231126 42.2045053210330892
-27596 -78.4558156386933518 36.0163344025107008
-66941 -98.4395282981817417 39.8416505709091098
-57062 -97.9111186540915668 42.8576679170053225
-80545 -105.654387862476355 40.8392136621559061
-18109 -75.4391858588209345 40.6256884583332862
-19154 -74.9784223487841501 40.0903169967704827
-88323 -105.456505653333309 33.5237487333333277
-15823 -78.7153759777622639 41.265962664666425
-93205 -118.482535757686961 35.5825016810463453
-45377 -84.2049250593969703 39.8871893976608263
-37645 -82.6619154780734817 36.5602304716031412
-32008 -82.880018724767595 29.923385209847492
-17851 -76.4203652906613939 40.7998847389105279
-27928 -76.4241765831549316 35.8609554655080842
-78260 -98.4935064467307768 29.682848463660207
-83647 -115.665895795559805 43.1844376272585535
-67525 -98.5619290590894366 38.578642523732718
-28715 -82.7055845505423974 35.5320497835140685
-40740 -84.0400447739393428 37.0198080615949792
-64369 -95.0944785000000081 36.8752367499999991
-68980 -98.2708880801724831 40.6843327698275701
-42965 -83.7317617619047638 36.5952249047618992
-37773 -83.5891190000000108 36.3911749999999969
-93634 -119.219094202166019 37.2136252815884276
-75030 -96.5660163529411477 32.9077246470588349
-55110 -93.0082336785921626 45.0823795684995261
-97378 -123.411112192813647 45.0947416941306329
-48906 -84.5687197834819813 42.769322018388614
-39192 -89.8061814208058422 33.2056339197019739
-77098 -95.4142706255638871 29.7348319258145395
-43761 -82.1245983461538458 39.6704181538461427
-40385 -84.1305403698516017 37.7282839808764408
-97469 -123.372414090819717 42.9313737560655042
-40228 -85.6287344531008756 38.1367507737307321
-25244 -81.535329121831623 38.7706573618151822
-75433 -95.8125355195316359 33.1083164087499497
-48239 -83.2907651274600624 42.3799099283873915
-43553 -84.2283198333333445 41.5316639166666803
-35990 -86.2954874536082031 34.064579886597933
-88132 -103.174408830424071 33.9156034276808072
-33612 -82.4536831800829475 28.0499035519709103
-66960 -97.4078710197368451 39.9342506776315815
-79608 -99.8330734999999976 32.2750805000000014
-56324 -95.9039388025425126 46.1687016326270907
-57941 -101.333651000000003 46.0912330000000026
-52754 -91.2397045664497455 41.3474617381015079
-02830 -71.6472378867633211 41.9773100241775126
-16141 -80.3979235544077824 40.8614886806703552
-00996 -66.0896819999999963 18.3095350000000003
-85704 -110.987052233109992 32.3356979610228521
-78940 -96.6659624923016452 29.9413440191513125
-25630 -81.7053325677749314 37.7965761739130528
-33624 -82.5252075141640944 28.0775685561418058
-01255 -73.122171330789655 42.1169383944736282
-18428 -75.1340805340925044 41.4398246711380054
-13733 -75.4779985045814925 42.3071308237989641
-34786 -81.5524150506123107 28.4865748112756698
-36526 -87.8749371761759619 30.6229542519572817
-28463 -78.808955205267111 34.1209584064100753
-87132 -108.012351312499987 35.6081130624999957
-27063 -78.6237226923076946 35.5886509230769121
-46150 -85.603994104445448 39.5491241579629076
-64854 -94.4550481057705298 36.5463965172323171
-17302 -76.4055257672264645 39.8054851138290218
-65552 -92.1712078870714322 37.5381506529075182
-57572 -100.950545687224775 43.1430022422907271
-57104 -96.7237392113487431 43.5759478766645856
-85366 -114.473937893333371 32.8821950400000063
-34470 -82.0972339575160959 29.1987610980391921
-79301 -102.410739750000005 34.2303597500000052
-31650 -83.0211560991977251 31.3957464906360286
-34608 -82.5554567216388335 28.478698228346488
-63089 -90.889017833938567 38.4618474815423426
-03740 -71.9714315320446474 44.1594703193697669
-86367 -113.201712823529419 35.504220411764706
-62867 -88.1340806567967832 37.9130087341856594
-46382 -86.7653867927780169 41.4750097396928226
-62819 -89.0157587980050096 37.9810694887780755
-87536 -105.736064142857145 35.5866115714285698
-24061 -80.4198010000000068 37.2230179999999962
-25499 -89.2290734285714109 44.7836485714285715
-46776 -85.1618745184523078 41.7323249511326679
-35126 -86.6513666831849321 33.7209065531319325
-72770 -94.2621433548386989 36.1787595161290341
-41231 -82.3933816322751795 37.8056396157407661
-70815 -91.0635004693838681 30.4537970444704946
-56221 -96.1882601985158061 45.5524798497217347
-94305 -122.164157810963971 37.4204146064901835
-77533 -94.6441196718345736 30.1130938036175557
-94117 -122.444506485294099 37.7700875561975238
-19137 -75.0736606613976534 40.0010367346090305
-54817 -91.5224320515105632 45.676185601084434
-47130 -85.7107373425000958 38.3168342534167508
-32060 -83.0478393919168099 30.277227833914111
-62036 -90.6103252202797336 38.9232692727272891
-83858 -116.886373739136928 47.8319017318480846
-99239 -117.381574999999998 48.6634064999999936
-25520 -82.1740206424714756 38.5613184679064815
-33598 -82.326383153593568 27.6966938051139842
-80834 -102.881442244212977 39.3219366851851717
-70393 -91.0254840853658749 29.991274857723571
-31320 -81.3961775899423259 31.8018596750801059
-78732 -97.8992472092378563 30.3666873372179964
-95746 -121.183270716311654 38.7459618506489036
-38504 -84.753727669948276 36.3871367805907369
-78659 -97.1468674363827631 30.1918437615384931
-67621 -99.1224452378947234 39.7762970926315731
-23233 -77.6207091442668542 37.6384806817975743
-21524 -78.7975020770577999 39.6957804956216833
-05060 -72.6787142363246375 43.9606061773503853
-72376 -90.2922628342960962 35.0953422673907909
-26764 -79.536540038421478 39.4595020692329399
-58332 -99.7803376909546813 48.03574234422112
-91745 -117.969037627095815 33.9955927509920812
-47139 -85.9038011874999938 38.7012236250000043
-99683 -150.256863818805755 62.264615899107703
-28443 -77.6508023405730654 34.4028130077093977
-33584 -82.285250172545588 27.9956392837512809
-65550 -91.9441833645132789 37.8476703947958342
-28459 -78.3725045017793747 33.9535464875445001
-50556 -94.1954923649359301 43.4552185267117608
-15431 -79.6202535764866042 39.9629983099181629
-27958 -76.1273847838219098 36.4944797309923814
-74367 -95.1088270625869114 36.3955073685674506
-56608 -94.0135536250000001 47.6576697499999966
-07401 -74.1343164934311858 41.0316743346213002
-84015 -112.051291476079342 41.1236987855468996
-92546 -116.800350307692298 33.7147738461538466
-19395 -75.5364833333333223 39.9459321025641003
-22202 -77.0605296446546646 38.8537023710459124
-95829 -121.341036808021045 38.4670766798727826
-55731 -91.8589299738672906 47.8922531931705109
-93528 -117.636018560000011 35.3717496733333334
-92243 -115.57519727776419 32.7833584005752954
-58768 -100.986381667368434 48.279011220350867
-12083 -74.0348086475908929 42.4285036120380852
-47855 -87.3001061397435763 39.1858319615384616
-99329 -118.141625704081548 46.1449869540816238
-32084 -81.3407719526224327 29.9027257412073588
-70524 -92.3036390481284457 30.5723269652406167
-71939 -94.7163129333333274 34.8006550666666641
-54977 -89.1909565047619708 44.4693989306122646
-66070 -95.4521735282575321 39.2080917066978927
-15473 -79.7688495430359126 40.072997114240863
-49318 -85.8255392635574879 43.2548741659435834
-16150 -80.4593518547788165 41.2726609008661001
-97885 -117.506516540548191 45.5995359259679205
-53556 -90.2599462180676539 43.2326145480107371
-49723 -85.0157576461538298 45.6378114153846326
-31774 -83.273377317209949 31.5705810208333482
-66856 -95.820409133116172 38.391834664649906
-66872 -96.7592576863560225 38.7975838620942497
-97494 -123.332204873239448 43.3301493802816964
-80911 -104.721694806954886 38.7482374531404474
-25114 -81.8245775384615825 37.9748295346154094
-24719 -81.3216290517241447 37.4866687068965518
-59904 -114.173102636363609 48.1992676363636221
-16426 -80.1427357211308617 41.9855186449447899
-62939 -88.9691986408024746 37.5623504881758947
-12962 -73.5813964985529907 44.6953182102079012
-68718 -97.6741658809383466 42.6417002692082932
-00925 -66.0508146221910408 18.4005410308988857
-03217 -71.6342529680088518 43.7129465611592494
-28069 -98.7262713333333295 29.2447569999999963
-54514 -90.4577547261525581 46.0409325746234401
-43534 -83.9352005197932982 41.3615881781410621
-65701 -89.5262816666666623 37.3153846666666666
-77082 -95.6302973984289935 29.722073955331112
-46168 -86.399179322553195 39.6976901487797775
-48167 -83.4961793092305129 42.4371593311837998
-13357 -75.0643624946982158 42.9911404231240226
-19027 -75.125225282385216 40.0729109546220741
-94132 -122.47864164488 37.7225495228758092
-01355 -72.3346999277387255 42.5032617485847979
-27341 -79.7173608283682853 35.512101181304736
-00954 -66.2496635555555571 18.3988496666666634
-79622 -100.02184802564102 32.0925573076923101
-83850 -116.240200099156766 47.5221626467281766
-42749 -85.8763682142916736 37.18929694797162
-40220 -85.6188957639156598 38.2126847262509415
-92130 -117.213167226732537 32.94809348247081
-61524 -90.0328958823529319 40.4915105614973427
-47443 -87.092886573206485 38.9748164348462964
-56501 -95.8291739672583702 46.8179712125897254
-68067 -96.4756077000000403 42.1524742681818481
-27027 -79.9834687456239664 36.4362642716895451
-41472 -83.2384227018833229 37.940971049495829
-41828 -82.789645347968559 37.3109483184796957
-67854 -99.9451274218180288 38.082146664545462
-04461 -68.6249130843100659 44.9525913644612984
-97330 -123.277028650844159 44.6058867892806603
-80215 -105.117201744805143 39.7461634236461165
-20659 -76.7223641683575579 38.4257716668393741
-10104 -73.9796479999999974 40.7607964999999979
-26234 -80.3234707616160364 38.7819633964646826
-90717 -118.316958146096269 33.7934293243399111
-06471 -72.7723243067933936 41.3296803761141121
-99335 -118.514505515400543 46.6675610718685689
-18232 -75.882896182795804 40.8315057992831214
-70420 -89.9965388713069245 30.4895411108996441
-56740 -97.2068551875000111 48.9997177499999879
-19046 -75.1078371744839046 40.1007479213508375
-39476 -88.8898378257663495 31.3741818214265962
-42642 -85.0392545297707727 37.0538214605736371
-65344 -93.20126907982592 39.3062686835994484
-28375 -79.039599587500021 34.4776360375000124
-16028 -79.6328992875676249 40.9674252003603598
-27738 -83.5230101764706063 35.7427766470588253
-37015 -87.0692064735033426 36.2909135895011374
-35652 -87.3044489756234015 34.8447296429974926
-49282 -84.4083802590361643 42.048680042168634
-75094 -96.6148752362232841 33.0204675677810258
-93668 -120.261139475281752 36.64175234952301
-02919 -71.5044560649880907 41.8275829583828482
-23429 -75.9538053750000017 37.27647975
-56721 -97.0024153230566384 47.9334716892093695
-03446 -72.2942646766655201 42.862170898014206
-93063 -118.696030224668775 34.2803383506895116
-79103 -101.805580418076801 35.1851098926899439
-17952 -76.0566732547770812 40.7580196942674959
-84124 -111.818690627461109 40.6796303041768965
-30213 -84.609560609268101 33.5841025813358769
-01876 -71.2220138155763749 42.6048281902184911
-10577 -73.7163460639485066 41.0362340532187702
-97433 -124.181735071428562 43.2931060000000016
-59728 -112.407512047601415 46.512337351803744
-30571 -83.6854553571631783 34.6994083802030531
-04985 -69.8997315323529733 45.3405915313725529
-39208 -90.0899420442157037 32.2671200991714997
-97149 -123.972327919734951 45.1080234494194841
-57010 -96.8023209563064029 42.8113863303234297
-80731 -102.680864905179916 40.6085911553884458
-32073 -81.7441672084876529 30.1686140125236157
-30650 -83.4661668687246845 33.5922021452604653
-97631 -122.822365000000005 44.8336180000000013
-17313 -76.6497883780573943 39.8959683651187476
-75134 -96.7856315248643284 32.6183423108047066
-78164 -97.5056612322018879 28.9913503532697412
-32606 -82.4336293732906711 29.6801216448650322
-68378 -96.0075534759259739 40.401076881481508
-03110 -71.530537705691529 42.9408725892848508
-75969 -94.8661430026180454 31.4378914268612242
-40849 -83.1178772406417181 36.8943389786096247
-07452 -74.1253213600238752 40.9595800017926379
-10606 -73.7769065991420376 41.0224479923736567
-43013 -82.6919740728605603 40.2238354850856012
-15534 -78.6962433572896316 39.9161892144323218
-25031 -81.2837686124401699 38.1506806698564631
-63701 -89.5674355364240142 37.3370861457724814
-15216 -80.0366296927304006 40.4000516160380982
-74827 -96.3340781146245178 34.9465001363636176
-61259 -90.9236333359021387 41.3848250700063289
-32111 -81.755896694915279 29.4618214915254164
-48638 -84.0153475252293447 43.4209507211665269
-14169 -78.53215078260871 42.7654830869565146
-28589 -76.5088972550607309 34.7887103603239041
-15724 -78.8141086852865271 40.7320772430682823
-71277 -92.5713712567673497 32.9560974119578702
-75858 -95.1429104657534594 31.3946853150684966
-99654 -149.444804613072193 61.5865877641449444
-68305 -95.8477581844605311 40.3830359637411078
-92028 -117.211859419467359 33.3738961758428161
-62450 -88.0822933544432374 38.7233229798162313
-76113 -97.2534405000000106 32.7600534999999979
-99133 -118.982741478247135 47.9486117674491084
-51467 -95.1123900203442929 42.0698433719353488
-04563 -69.2547829212090136 44.0118806499612774
-44123 -81.52376910702489 41.6031852809993694
-30055 -83.7498257839445586 33.4976891896719238
-19002 -75.2097789935622529 40.1762873447522395
-28564 -77.615515000000002 35.2229019999999977
-45855 -84.5835397641025963 41.0874608358973958
-06094 -73.1459742909090807 41.9011563818181898
-18224 -75.8956906558616851 41.0178813358518326
-78585 -99.0905389774436003 26.5079366541353458
-02911 -71.4735390355257465 41.8548055108399524
-37938 -83.9436559870479044 36.1088878176171661
-76710 -97.1915728898844407 31.538305165542539
-83244 -113.025156214285687 43.8452534409938153
-24219 -82.7572166061684271 36.8560155134656569
-12883 -73.4590379088073036 43.8502265095412511
-73547 -99.3836951771770174 34.9664180750750901
-74888 -96.6875060000000133 34.9457340000000016
-25934 -81.093263052631599 37.8619034210526308
-54470 -90.2005782030612835 45.3211511744898061
-37615 -82.4508254548941437 36.4026858234151689
-24945 -80.6810149495933615 37.5294474357723544
-27317 -79.7972825478978365 35.8274248939459454
-56187 -95.5955678257935233 43.6230118633575046
-21102 -76.8581561501535617 39.6846256987715122
-65201 -92.2793643660883447 38.9235609081494687
-71927 -93.6396446666666833 34.5486229999999992
-95501 -124.155729379189523 40.7937218455507988
-30132 -84.8274341872975697 33.982444087203298
-80401 -105.222270352840326 39.7211395937098573
-41566 -82.1931819764419203 37.4038777627944086
-04632 -67.7399477499999989 44.6954051666666672
-78881 -99.5097361103104987 29.3614280426829239
-70749 -91.4142506747448778 30.6215967219387792
-66224 -94.6308398878448145 38.8633280649502311
-98860 -119.109156916586713 47.4448859165867702
-30705 -84.7799883265123952 34.7570981372110381
-97865 -119.1686748705621 44.4234609423078624
-91608 -118.358531120000023 34.1384502000000012
-86443 -114.302164083333324 35.938893500000006
-79057 -100.611716029205596 35.2259812348130765
-24569 -79.1261580151066539 37.0468495619048426
-36913 -88.4568074384615244 31.9356493000000086
-19808 -75.6654856671454894 39.7360006957420495
-78782 -101.799571499999999 32.1351620000000011
-93041 -119.183659586271361 34.1561692682699061
-30354 -84.3875845385482819 33.6634795127868713
-60475 -87.6268734870289876 41.4712539703520591
-61048 -89.8317310604904691 42.385127142779254
-10020 -73.9795635000000118 40.7591782142857113
-29179 -81.6014055625000196 34.5220875416666786
-02744 -70.9136974595343332 41.6092799933480961
-62010 -90.0498574158738592 38.9188385315765615
-73084 -97.3456192333574535 35.5202183367216335
-37142 -87.4980175865717484 36.4082089006120455
-44054 -82.0945754919197839 41.4711699101486886
-58469 -99.9203666666666663 48.9289933333333309
-36344 -85.7031476417605234 31.0974421753381023
-93255 -118.145282785502914 35.7013053343194997
-85750 -110.842864705906138 32.2960101261425692
-29112 -81.0786897127165105 33.6307031616117484
-36642 -82.6237376551724196 36.5808907931034426
-95973 -121.851411046086199 39.814423174127505
-13696 -74.9123498815789617 44.709996697368446
-85539 -110.889381462814626 33.3979952346666664
-48157 -83.4405841439874223 41.8113013544303698
-18444 -75.5122336427012186 41.3411731726127982
-47358 -85.1096760250090227 40.049903963755014
-83427 -111.900262917525694 43.485788070692216
-78340 -97.2083291540504888 28.1037720066400887
-56114 -95.6085080108625078 43.9732275865815438
-19607 -75.9510093135035333 40.2948692557866224
-45107 -83.9864367787672421 39.2805886780185745
-45624 -83.3425625481481518 39.1679733111111048
-32459 -86.1993000222364287 30.3591334091688942
-69103 -100.692715833333338 41.1012080000000068
-85243 -111.56236669418962 33.1632742859327152
-20057 -77.0871176338027908 38.9088205211267422
-56118 -95.0427882472382066 43.9570510391162372
-55614 -91.2681898650716619 47.3189781765551416
-66532 -95.3788894885412901 39.8233299676245238
-78844 -99.4849072500000062 29.63429
-39035 -89.1891577368421196 32.3038612631578985
-33993 -82.0176539282551573 26.684509575305345
-74050 -96.0643678355555011 36.0736196488888936
-29107 -81.1172845955334481 33.5271251381307138
-68310 -96.7491228638808423 40.2598409620401725
-75089 -96.5470388085053628 32.9286155011620849
-98940 -121.054426931812387 47.2602865157651593
-50311 -93.675103980904936 41.6017281494396016
-67068 -98.1181458296714482 37.6404941408787508
-88436 -103.10830140336131 36.1621922184874194
-38018 -89.7783393795778437 35.1409559035793535
-72060 -91.5869156584580253 35.0876755305139341
-95672 -120.988997296204815 38.7192015767091391
-53188 -88.2644829696628221 43.0204236480266431
-02664 -70.1969567319888341 41.6706881052100542
-56750 -96.2831149492592857 47.89409508037037
-27982 -75.4668450804597768 35.5665358333333401
-14008 -78.630688447070014 43.3141262230624164
-58001 -96.7269167647058907 46.447384411764709
-45221 -84.5196569999999952 39.1381126666666646
-23942 -78.3129884426719087 37.1484215628116061
-00627 -66.853554250285768 18.4690470091428409
-63547 -92.3164844584905353 40.147016990566037
-26212 -80.2589445555555727 38.7580574444444466
-70645 -93.3639450812624716 29.9881203646742769
-21001 -76.1898706185655357 39.5096043063543902
-36511 -87.7385370298102742 30.3208561070460725
-77002 -95.3661104927446672 29.7550503000000148
-85000 -112.426798000000005 33.5809309999999996
-65488 -91.4908233333333243 36.9971146666666684
-14482 -77.9750723167742166 42.979831916017055
-22737 -78.0139877247043501 38.5852826528566553
-90026 -118.264997663832844 34.0804413220460418
-38828 -88.8653575742018944 34.4258216730641351
-72211 -92.4208860520259492 34.7520752511859357
-91759 -117.598383061470884 34.2347432766191275
-33525 -82.2118059143939206 28.3417893955947058
-96707 -158.070935064814762 21.3258624722222265
-07463 -74.1258399239470265 41.0121037230889343
-93015 -118.909589085293149 34.3980195443624268
-49971 -89.6024854217289857 46.7402142184578935
-26039 -80.6651898261225426 39.831416103673476
-78024 -99.3837556527891337 30.0488227764158182
-97801 -118.762561778411467 45.6666243028308614
-36859 -84.9989836666666605 32.2115640416666693
-33980 -82.0567666346838251 26.9855496843276335
-65777 -91.9894899480610491 36.5368635948753635
-03361 -72.0223520000000121 42.7873795000000072
-26108 -81.4254225714285838 39.1975332857142789
-51446 -95.2870968082939385 41.7379898703748964
-40853 -83.3569315000000017 36.8468105000000037
-29485 -80.1779589789936438 32.9732917407757853
-90723 -118.163560551930402 33.8977638247103457
-04041 -70.8336836158039063 43.8548513453223379
-77619 -93.9165717742904462 29.9467062904841477
-79041 -101.89282776498564 34.0521379309230667
-77872 -96.0967691563666619 30.8913051583787421
-95944 -120.882169769491639 39.5245407322033699
-62842 -88.4000737516483355 38.4545737516483683
-97839 -119.665700452002795 45.4833269987286002
-57246 -96.6774539577205303 45.0552753511029209
-83554 -116.30647644850751 45.7140292309701621
-04693 -68.0855888657598314 44.3934902720283731
-15353 -80.316527666666687 39.9664713777777791
-57075 -96.9677054684105144 43.9825348375702774
-29823 -81.8193967777777829 33.8654184444444439
-57622 -101.497917000000001 44.6049470000000028
-15801 -78.7365025377201562 41.1316861662171718
-84644 -112.405638318777321 38.8833461877729007
-51526 -95.8558275702217912 41.3617784589229061
-12068 -74.3847519146977589 42.9562812043571682
-57001 -96.6356911965632577 42.9812538908468937
-46164 -86.1278723240262281 39.314933716981038
-45754 -81.3006107551020563 39.65225651020409
-57223 -97.0072329294835782 44.7155204913935904
-49796 -84.93915310165481 45.2678809479905624
-58514 -102.003737000000001 47.4580924999999993
-51444 -94.9721603857143037 42.0064013857142768
-52065 -91.1030777264408727 42.5725247874575743
-52340 -91.6758961504917096 41.7080573634032277
-91932 -117.117021891464191 32.5791387185202197
-47342 -85.5143780472786688 40.3217337751510172
-06880 -73.3491043844452406 41.143923024083179
-53037 -88.163632358541264 43.3214130491363392
-94544 -122.064679865999793 37.6343136419486228
-58707 -101.301964499999997 48.2451599999999985
-18419 -75.8020709746902668 41.5765673302498158
-35553 -87.4002758315674981 34.145194079826851
-15490 -79.4469137183787524 40.0706486345213548
-53063 -87.8001504635127361 43.9615845589413823
-51514 -82.3334791578947431 37.7441567368421076
-49805 -88.3885414214743435 47.3320882580128242
-39171 -89.690876805555547 32.851278277777773
-11553 -73.5918584378761551 40.7024909370552095
-79962 -106.582066400000002 31.8540998000000073
-55063 -92.944487685827383 45.8235523076811404
-79064 -102.13509099257665 34.1807377030568347
-54209 -87.2856032397296957 45.0259666471683673
-11565 -73.6728213909335068 40.6752682943999702
-57570 -100.857187617924509 43.2392452688679114
-20130 -77.9460236976026124 39.0270051933487778
-70372 -90.9629095957278935 29.8293829414557443
-03575 -71.4538891397589992 44.2608460963855634
-57018 -96.9840794641183948 43.8009183050160189
-49878 -86.8974140180959012 45.9039582848149337
-14513 -77.0945617881612719 43.0601511974195859
-05982 -73.2247323333333355 44.3878640000000004
-24285 -82.7967105666666754 36.9410852666666827
-80653 -103.99181533891732 40.3496560560567303
-33155 -80.308320885899164 25.7390237328341414
-51520 -95.4605070425790672 41.96812694160581
-55744 -93.522135463995312 47.2384672809790871
-97477 -123.015065954715482 44.0599520181561672
-98836 -120.430451022580641 47.4937467580645247
-72019 -92.6366733690431801 34.6032808081796404
-41739 -83.1225917853881384 37.3292433299086852
-44905 -82.4719847339956971 40.7757125382539982
-28651 -81.2756326328223935 36.2521509903156556
-78781 -97.7240885862069035 30.4925907586206897
-40023 -85.4172325936617796 38.1481240296095336
-07622 -74.4775793333333382 41.1443016666666637
-13675 -75.8448209402985043 44.2756250845771007
-81656 -106.877162595084144 39.2746236727037186
-25670 -82.1563618433782352 37.7253498779270586
-21071 -76.7829817037036975 39.4972353444444764
-49202 -84.4086387767183624 42.2640716984505147
-38964 -90.3706574072847388 34.0686371291391055
-63560 -93.1166151653645926 40.3535521458333406
-24177 -80.3710813597883913 36.6956386931217082
-60522 -88.6901254999999935 41.6162220000000005
-58765 -103.030565928571477 48.8594932816326235
-78545 -99.1060762860824696 26.5721168195876345
-76127 -97.4254866631016085 32.7788689429590221
-31015 -83.7932904493811179 31.9407690893664054
-54661 -91.4345121773912979 44.0067115834782498
-79764 -102.452635166504976 31.8754549836717587
-25276 -81.3348318513337745 38.7839125969676104
-12790 -74.5147358007065606 41.5916146251806964
-49761 -84.5204566595744922 45.563114680851065
-14004 -78.5126199130910294 42.8912604371715886
-52324 -91.7930166937552485 42.0460752968349141
-95827 -121.328650133886057 38.5668336937730132
-81524 -108.798093376874263 39.2311831056314162
-51631 -95.0061845811965071 40.6013518926282302
-38767 -90.7930040987654365 34.1465298271604993
-19141 -75.1458619359016353 40.0373409031708292
-77079 -95.6014101996742767 29.774610553382292
-54023 -92.5607679033852264 44.9783294146280923
-21613 -76.1099520189035417 38.5522957543194167
-38965 -89.6121416657668277 34.1491077389355411
-25717 -81.426290999999992 37.7673240000000021
-85748 -110.770673469952357 32.2145469658666954
-38628 -90.2549408181818222 34.390310333333332
-76567 -97.0066784410020801 30.6493817275383229
-05730 -72.8221283664400829 43.4168085482992794
-28348 -78.9264222011419605 34.948576222691031
-74571 -95.031931029638514 34.7461134937759368
-74748 -96.4424140706032773 34.1569607535301003
-29807 -81.6624975000000006 33.6732545999999999
-40374 -83.9043489922558194 38.2176219377452497
-27895 -77.9639304000000095 35.7192577999999941
-79401 -101.847935431859767 33.5906455825659975
-58384 -100.201276785539463 48.6171163600075076
-85310 -112.177924387258486 33.7000363268111371
-72533 -92.2477547482924649 35.9595665278048671
-55352 -93.6018864118431111 44.6602323494105775
-01070 -72.9220031579152845 42.5195679443796521
-77571 -95.0461569484616575 29.6577461241913056
-50582 -94.2965318906942116 42.7829533456425963
-43009 -83.6389706179342056 40.1671663579136791
-44403 -80.5766687371823167 41.2378122352434602
-95585 -123.666854626456839 39.8041233327505068
-89014 -115.065228090029436 36.0588419692086575
-57551 -101.71559496452943 43.1703917598908831
-35447 -88.1482655269159352 33.2531551411018143
-10518 -73.6095534543670738 41.2713241246320166
-57544 -99.843454259864032 43.8746340353741431
-70560 -91.8525703414841672 29.9885928212480017
-11042 -73.6948829036145128 40.7609028192771063
-12285 -73.2917056666666582 43.2836239999999961
-57769 -103.331900160875009 44.2334567229436146
-75041 -96.6431470600229829 32.8820216424422895
-76902 -100.664594599999987 31.5831121999999986
-25322 -81.7245819714285773 38.2610361428571437
-33915 -81.7671822000000077 26.6178367999999992
-64742 -94.547257842581061 38.516856465399016
-78851 -101.928168791071315 30.0472353303571396
-92272 -116.257817347826062 34.2058255652173884
-23325 -76.2397916142466556 36.8138622143311096
-12439 -74.2016719564459635 42.2898704024390213
-32711 -81.7336970909090752 28.5573090454545451
-88444 -104.367832791666657 35.6298748749999987
-41048 -84.7120023646851195 39.0898582464190056
-54474 -89.618586838224175 44.8829215647103013
-64661 -93.5378424860198976 40.5087793363486597
-16928 -77.4310110299441021 41.9481279582099518
-55307 -94.0973915649503709 44.6039970936845762
-18505 -75.6639395030211546 41.3914212331055325
-94510 -122.15667391587148 38.0736610674013747
-13418 -75.3824715555555116 42.8431077078189162
-48915 -84.5714744609377362 42.7377771683593863
-72368 -91.0134503095597438 34.806229807307318
-31810 -84.5452371487889849 32.5777657543252559
-62539 -89.2573375723921032 39.856810153300124
-89031 -115.169836054664714 36.2595442329356672
-14578 -79.9141923333333324 39.8897753333333398
-38972 -91.0730865000000023 33.5957395000000005
-39647 -90.6972051192176281 31.4947998720591791
-10171 -73.9745734999999911 40.7562020000000018
-63743 -89.8277450670102979 37.516446018900389
-33483 -80.064902748931928 26.4597502229202775
-32324 -84.803105046701873 30.6724046775637902
-33162 -80.1783441107643284 25.9295358082168512
-04863 -68.8412398612502443 44.0712705737312973
-57213 -96.545627916540127 44.5379262807283496
-15031 -80.1646934678029623 40.3494472575758039
-93441 -120.10930207969632 34.6832068263757094
-06834 -73.2466097894736805 41.1428882105263156
-36425 -87.209777993877367 31.7331128969387741
-25420 -78.1200838827777915 39.3801339043055378
-63703 -89.5456439992465789 37.2950351606631472
-78471 -97.392660499999991 27.7962912499999995
-22637 -78.3562690822318757 39.2633521733969957
-82062 -105.236713885714281 41.578028057142852
-72638 -93.4099695951098283 36.3373375487678345
-66531 -96.8310191196270154 39.3045566103001676
-12812 -74.4152788994709056 43.8568605978836317
-54425 -90.2926261685933156 45.0094756994219694
-97024 -122.441691557592591 45.5420033750498305
-60515 -88.0157701472210476 41.8065512817761231
-42754 -86.3118938281076424 37.4817331297043808
-73744 -98.3403684193548173 35.9677889516129099
-24601 -81.7242164285714523 37.1140041047619036
-71677 -91.4766145948718048 33.7758011076923168
-89418 -118.133025820379984 40.5947265112262983
-47610 -87.3828737855580755 38.0385916487965119
-28461 -78.0581128709280563 33.9533643711739757
-96020 -121.229484631033515 40.2850609780869746
-65672 -93.2325379086734642 36.5862158136190345
-18936 -75.2330484745762504 40.2289435593220333
-76469 -99.1966601475410528 32.3759489890710412
-54967 -88.9909684210526279 44.133667289473685
-73903 -94.3476050000000015 35.36146733333333
-61741 -88.4024135007002201 40.7614574666934644
-52213 -91.7798921471752749 42.1899447859266843
-64458 -94.14015886798515 40.5136561036878149
-38067 -89.0341368909362103 35.0948901263280533
-02632 -70.3477587085792209 41.6603327048318945
-82061 -105.1707544835443 41.4917998734177331
-04491 -67.437263999999999 45.5635688316062186
-93576 -89.41704266666666 30.2713963333333318
-06383 -72.0448573666666761 41.6047342833333218
-83346 -113.884873364500891 42.2338351473851006
-14753 -78.6261942015342044 42.0268291520222874
-11953 -72.9493871357385189 40.8868433057603369
-99620 -163.552967999999993 63.0345005714285662
-34653 -82.6953391862787583 28.243798945175687
-02325 -70.9613967916666724 41.9933868333333393
-79786 -103.795966166666673 30.9420839999999977
-84112 -111.842514548192767 40.7644430286144157
-96080 -122.319243688817437 40.1846224732772086
-18218 -75.9089555718653912 40.8263180846075642
-02872 -71.3152668625072153 41.615229991912237
-87023 -106.759879378120303 34.6054079581497973
-06779 -73.0853803245485665 41.5922632990435162
-46808 -85.1677825465699243 41.0959453470813827
-73122 -97.6147935770678288 35.5201285490810292
-29067 -80.5415296518233674 34.5415415210677139
-14134 -78.5182800719424279 42.5345246258993015
-47244 -85.6997445838274814 39.2320798237196655
-64652 -93.439294752168351 40.0169372354398973
-78574 -98.35561210335851 26.2869217471012604
-43072 -83.9546878822587814 40.1203041084944019
-75980 -94.3715287298808647 31.1443223666925597
-94512 -121.852332233516492 38.1309312609890299
-28470 -78.3850014183242791 33.9508848777126104
-84756 -113.535124101562403 37.7060735093750168
-26546 -80.0333755955881969 39.6663079154411804
-27862 -77.1893012648536114 36.4898530744900782
-95802 -123.104936833333326 47.0269916666666745
-46914 -86.0981842846225192 40.6362521881566536
-24894 -81.6969389127516905 37.2918151610738278
-35756 -86.7960405297943396 34.663727064587043
-50611 -92.9050690598005957 42.8012128571428789
-55404 -93.2620584398321029 44.9623353777985457
-17229 -78.0126831663420006 40.0810624869134173
-50469 -93.1915741185610358 42.9932643512132628
-20224 -77.0267680000000041 38.8921650000000056
-03904 -70.73447540163653 43.103975096584783
-50232 -92.9625260286021415 41.5531700100107599
-38752 -85.9550647142857116 34.7174658571428481
-47434 -86.5477687042253194 39.0129788873239605
-20052 -77.0481594767442033 38.8982727558139416
-50801 -94.3807117632069179 41.0805936169420676
-03720 -71.5094579999999951 43.4844009999999983
-48327 -83.4101543776000227 42.6413754816148298
-66512 -95.5464294793578119 39.1957451963634398
-70736 -91.337866320158156 30.6382041897233179
-87710 -105.289179460972179 36.3726515355915083
-99790 -149.093603500000029 64.557417749999999
-51451 -94.6984172660944381 42.1802516309012816
-74470 -95.1384787281795639 35.5093786433915355
-52252 -91.2249562631578783 42.1909435000000101
-39862 -84.5354780244389161 31.4144694523690475
-62075 -89.2887309451744358 39.2974425953083184
-53959 -90.0008484081830318 43.5392401773015791
-07960 -74.4939345266379433 40.790329377015162
-03752 -72.1257178375284411 43.2990301171625021
-46778 -85.1525397441860719 40.6119862325581522
-55807 -92.1705718082975238 46.7398680883317752
-71154 -91.1699459999999959 32.8075256666666633
-82224 -104.860555640642872 43.0020374925372622
-14739 -78.149634667865655 42.1898707851718555
-29104 -80.2189271915223543 34.0031189378094183
-61528 -89.7305238620806449 40.7754755731543455
-70422 -90.4850031192128199 30.7342508907512695
-76569 -97.2303728030634744 30.9437665070334624
-97220 -122.559961619409805 45.5446775777376871
-68049 -95.9494713333333493 40.9177356666666654
-22180 -77.2541830911643643 38.8947814359493975
-25965 -81.3125555964912223 37.7479911403508765
-10025 -73.9673065790032496 40.7986369427359037
-10505 -73.7455259880597538 41.3414158328358496
-39332 -89.0129583047473147 32.3102196572230369
-95232 -120.574537729273587 38.3558323939838957
-31000 -82.5761468000000036 31.3069720000000018
-48006 -82.6934719373296474 43.0685998410535618
-39402 -89.4041276515723666 31.3142986106598151
-36921 -88.236817913881282 31.9543996260322203
-20818 -77.1611523578791463 38.975494703976473
-46074 -86.1645894624778208 40.021402306626328
-50644 -91.8911316931537385 42.4718441464644698
-76256 -97.6380471999999884 33.6393498000000051
-45056 -84.7422078838662003 39.4921237779869898
-26267 -80.0932330350877066 38.9448718175438984
-10467 -73.8694161841390411 40.873794733297153
-73722 -98.4122740839160741 36.8965555594405501
-93084 -119.155551800000012 34.2788292000000041
-30520 -83.0895886329606839 34.3422095652456747
-61818 -88.7318584148093379 39.8826834701653397
-99640 -154.861212018181789 59.9577413090908991
-67568 -98.3098993068525289 37.9905926884370047
-28625 -80.8929056020867705 35.8544270065468567
-85204 -111.786277503826412 33.3971896934913062
-54160 -88.0981630900900825 44.1195337207207317
-59644 -111.467756291463658 46.3565449548852371
-59231 -106.545044572254184 48.404153221579989
-04054 -70.5966568461538486 43.2785089230769202
-16032 -79.7608857000000029 40.81764376666667
-77538 -94.5852629016978597 29.9944416809651422
-55615 -90.8247260146430477 47.6187900707749918
-16544 -80.0791414999999915 42.1110605000000007
-52537 -92.4147224476616458 40.7720921127192213
-91345 -118.459581392556871 34.2639940097086821
-47360 -85.2572765501982843 40.0126490952920761
-48126 -83.184990562438216 42.3312633230921165
-30103 -84.9213741977214056 34.3707634781735933
-26761 -78.6996330268596154 39.2741007830578326
-57385 -98.314477357995969 44.0427929753371927
-26035 -80.5540708716834502 40.3502802911711029
-90042 -118.192470720064833 34.1154194243821749
-27291 -79.159809260645531 36.4045531092590622
-87131 -106.617880571428572 35.0903123142857183
-49409 -86.2151108888888871 43.0803501944444349
-94519 -122.012198250163991 37.9824464073051402
-32216 -81.5824271228709534 30.2847972949202244
-41014 -84.5055193651329972 39.0663559055690186
-48891 -84.9185986593075626 43.4017405303562285
-54466 -90.1830739903708576 44.4281965739215678
-28152 -81.5844389584732284 35.2499799264398135
-24142 -80.5477659999999958 37.1388965000000013
-33945 -82.2101555750000301 26.6085875395833504
-15428 -79.6663571831325896 40.0744326179001433
-67832 -99.9052976874999956 37.8169936250000021
-04783 -68.1776920043209316 47.0178816740741183
-56430 -94.2380889090909051 46.689401636363641
-50067 -93.8563649019886412 40.7199235596591009
-97257 -123.347150571428557 42.398646428571432
-07831 -74.9440541153846169 40.7390275769230854
-28709 -82.4320361866895439 35.7666239910218735
-33823 -81.8024505668428361 28.0842392792045246
-65662 -92.5807712852759437 37.4281498950238216
-96774 -155.273190499999998 20.0103183333333341
-24466 -79.6100986363636451 37.9821300000000051
-40434 -83.9298465185185023 37.3881247037037028
-13162 -75.7282115229007644 43.1904817900763263
-32193 -81.666263234848401 29.4839279666666769
-73774 -98.3506012499999969 35.9689479999999975
-56161 -95.3234725159237684 43.7130508513800535
-58008 -96.98552939935594 46.2939355499195742
-35576 -88.108071517254686 33.5748304848039467
-95832 -121.490083937278712 38.4690770930703536
-74959 -94.6110555014417258 35.2471983309984651
-82934 -109.850998165584485 41.5603247662337552
-61561 -89.2026905735416307 40.8017684502875255
-39735 -89.1948378436171367 33.3464669923788009
-49233 -84.3696730186536854 42.0596892681053802
-15501 -79.1224408808211734 40.0290044574216708
-35526 -87.8716314117647102 30.645158117647064
-30230 -84.9245884442185286 33.1704381976941889
-30083 -84.2013395683176498 33.7918253297528395
-43345 -83.5834876197720575 40.5168558471482783
-61070 -89.4712702727754134 42.4149161038136171
-15345 -80.101788738545693 40.0242026633039316
-49730 -84.8663238470129926 45.018744808121582
-97496 -123.472982025648903 43.0743132645039353
-87083 -106.337743376237626 35.6483908382838095
-95303 -120.674549137291194 37.458402837662284
-83886 -116.53493828571429 47.3026898571428589
-63860 -89.5761781712328968 36.6646713013698644
-78214 -98.4884676668081056 29.3614366477199873
-50103 -93.6049833627451022 40.8004319425770277
-21053 -76.71240490437566 39.6934145325508112
-39483 -89.9285637305818994 31.2319073521377391
-28742 -82.6053363296743015 35.3588092912521432
-49841 -87.4318313111600531 46.2991370800270161
-60505 -88.29658738252256 41.7617945816913192
-04011 -69.9696094698754933 43.8998250413517255
-07847 -74.6230300636254924 40.880526860744304
-28528 -76.5397071725489866 34.7295119803921608
-05047 -72.3400001566265161 43.6625980481927982
-03251 -71.6538540211080743 44.0538917331323105
-16910 -76.8285403529411468 41.7061938382353006
-02536 -70.5653867482119068 41.5879883436132616
-76085 -97.6963081588600915 32.8485427609532579
-00793 -66.2890096666666722 18.2435893333333325
-61042 -89.5683394162162614 41.6901349231231748
-85942 -110.040314453488364 34.7634870116279089
-33322 -80.2744276731576463 26.1480907093619059
-05858 -71.8139565839736207 44.5123770559824479
-43933 -80.8888681604701532 39.9389101439805856
-82218 -104.126461694444458 41.903038583333327
-50558 -94.1697389013989579 42.8681111685543428
-38316 -88.8074647778713171 36.0643793769458938
-14653 -77.7324844999999982 43.1534400000000034
-04463 -68.9408034071040419 45.2429949456947895
-95128 -121.936528075879167 37.3171672189698995
-58845 -103.877088797164546 48.5566447371865664
-28135 -80.2174843453202726 35.0619985389011362
-95930 -121.163251443381156 39.5408445438596274
-19804 -75.612370791718206 39.7208797983569681
-67452 -98.3849974911763496 39.2561968647058777
-78661 -97.7470028162392879 29.7333177820513015
-63439 -91.8449329761526627 39.8030202098569035
-63128 -90.3757471210482493 38.4969563239155121
-75726 -96.1503757500000091 34.0168012500000003
-78652 -97.853656510231545 30.1340959466192047
-79756 -102.896666908881983 31.5775253086623131
-54960 -89.2186527471429258 43.9647668142856674
-67835 -100.331913283273579 37.9481235023980119
-54864 -91.8018946865613827 46.5982822864844124
-13093 -76.3551166451612886 42.6442435806451527
-32133 -81.9739833020833544 29.1095608333333224
-19043 -75.3089277663158043 39.9006941357894505
-38392 -89.0319341462216158 35.4685386053313536
-89765 -117.850936500000003 33.9768435000000011
-17765 -76.9621872080202536 41.5831546430033256
-70513 -91.9075696774194171 29.9070623306451608
-25917 -81.210343748805883 37.9603775574656552
-96092 -122.115137789757625 40.0189732331536447
-23022 -78.2673431910230306 37.7432634391092705
-01590 -71.7481479851929862 42.1412123231876592
-50520 -94.3990843653543266 42.7989623401574661
-21769 -77.5497511860654924 39.4450156811474457
-79015 -101.924402034823004 34.9921316349618081
-10452 -73.9217984035248605 40.8384840166975991
-11795 -73.299384439218656 40.7091594126683702
-26385 -80.365255915228218 39.162530681566011
-41390 -83.3787574497206521 37.4210045474860209
-16247 -77.5799994999999996 39.8014735000000002
-84524 -110.855737000000005 39.6839525000000037
-43333 -83.9147182885019447 40.432443429852313
-96759 -158.061427278846168 21.4596604615384692
-70756 -91.6154505765766771 30.5573144864864901
-73658 -98.7063322925531708 35.9417248510638245
-52761 -91.0426243730543234 41.4361386615274583
-63548 -92.5132868062929958 40.5231795054080237
-48457 -83.889751207384279 43.1894298046928995
-86018 -111.951164712180017 35.2728653560900085
-80745 -103.362472366291939 40.872893416479414
-52804 -90.6318170801940823 41.534832576507398
-11754 -73.2442896052973111 40.8840640775016979
-99684 -160.792115272727273 63.8774702727272654
-41074 -84.4677708533047706 39.1100773078891208
-47649 -87.4417322088067124 38.3469126278409362
-24229 -82.3710006666666601 37.1508149999999944
-85238 -112.026130665030706 33.0373317251534147
-98101 -122.333910049504794 47.6111742673267528
-63870 -89.8304755491936078 36.6311407427419056
-58275 -97.1199843555226323 47.6983335767944752
-31032 -83.5598835441004866 32.995427176088036
-14424 -77.3108662225333774 42.845527178424156
-29016 -80.9838939794198183 34.1945487644578208
-29208 -81.0316258487394379 33.9931287899159571
-37777 -84.0355124391949886 35.8329489828851919
-37719 -84.4309238966566085 36.0266775197568236
-24448 -79.7903779155844148 37.7987394123376532
-67640 -99.0414386766744883 38.8834497840646449
-36755 -87.2233475000000027 32.4573443333333316
-38506 -85.4551418259803626 36.1717788229943196
-47362 -85.3702352308787624 39.9291487062236996
-76624 -96.9602000611286741 31.6603988746081662
-00604 -67.1384295000000009 18.4999669423076938
-03840 -70.8473909427861344 43.0377493004422433
-96122 -120.468283682716802 39.8229053197417429
-11559 -73.728086800949697 40.6126853308271052
-17317 -76.5212946685714854 39.9719371314285752
-47874 -87.2725505388146559 39.6187504870618525
-29520 -79.936715293283612 34.696493649004907
-03662 -68.2829938125000098 44.293118312499999
-50237 -93.3634824620690438 41.5360942344828104
-12528 -73.9946467752211561 41.7196676584134707
-59250 -106.420144090232483 48.8426719767442066
-80432 -105.780754134900491 39.2129561391159314
-60479 -88.5217168348214187 41.231573475198438
-47356 -85.5184132801299626 40.0359324009439987
-99157 -117.807623950345473 48.9070367039597826
-87576 -105.758244882352955 36.1321128823529349
-55030 -93.1033677744154602 45.8390249170106046
-61235 -90.0262542167249933 41.4042900223177881
-28730 -82.3887871412805453 35.5299038005447088
-06249 -72.246147579810966 41.6298761815588989
-33036 -80.6501661480637182 24.9102410315652634
-18046 -75.560160530612265 40.5486205306122471
-78938 -96.6990355737102618 29.8409352432432158
-78350 -97.9712664999999987 28.2435386250000029
-54482 -89.5045717245772039 44.5346641487791501
-85259 -111.817888780248197 33.589308971484563
-30043 -84.010038122421463 34.0044781621365004
-30906 -82.0308277199921463 33.3959680601070872
-66053 -94.6738281607009782 38.5944716062818927
-97432 -123.428083573333282 43.1039987733333305
-25703 -82.4189456254152617 38.4212655049834595
-50059 -94.3456203829786944 41.9193669148936152
-74221 -96.0222784999999845 35.7612361428571432
-28702 -83.6116555040136973 35.3846025156728459
-95545 -124.086756275315423 40.2565514713513792
-53804 -90.898871569595201 42.8715212833168522
-30331 -84.5417045224674553 33.7073229026279932
-50242 -92.6767559577532012 41.5680189035044663
-16131 -80.3754039074257207 41.5465879217822476
-42120 -86.2661792804645131 36.6719451633411992
-35615 -86.8810660666666621 34.6579715166666489
-81226 -105.129955441910695 38.3640383949733064
-87573 -105.66483653008126 35.7801053951219572
-12520 -74.0155850579639889 41.4389047320993811
-45267 -84.501600499999995 39.1367469999999997
-17365 -76.9396993830243332 40.0549984037089644
-19032 -75.2810411941439099 39.8929200763844563
-82209 -104.653436567901224 40.9630374938271444
-50222 -93.9537208638574413 41.2281670267423834
-49872 -87.0855861713287425 45.9883051713286761
-68927 -99.6419625721605229 40.5303904372330592
-15540 -79.2429278821105925 39.7854738004946853
-50420 -93.4451528547294856 42.8180905054053795
-88136 -104.721435436000036 34.4203066920000111
-28144 -80.4705827257050288 35.6896954098457329
-43821 -82.0152915915789151 40.1342291160148861
-53034 -88.6045802777777567 43.3446085355555581
-15824 -78.823988421428993 41.2409038201929761
-98353 -122.545135628571416 47.5541802285714184
-56758 -96.5047935028208599 48.464586170713865
-57857 -83.0729851250000024 36.3826664999999991
-24345 -80.6253886666666659 36.7314783333333352
-55753 -93.0788993410042025 47.3970026422593662
-27538 -78.0661462500000027 35.3648205000000004
-66442 -96.7972261846153685 39.0817124512820371
-24976 -80.5164094879227719 37.653844589371964
-80863 -105.077086927175188 39.0054893744256077
-45316 -83.8263617899159641 39.7972899495798274
-84138 -111.670363516746406 40.580820392344485
-72677 -92.6930922550789944 36.2547821060948223
-46761 -85.3660037249100014 41.6310119356209398
-05439 -73.1619780624999834 44.4963545000000025
-48082 -82.8899429306599274 42.5258249540517852
-38642 -89.346902715478933 34.9196194419210428
-76834 -99.4494140857313624 31.8528966505432258
-10475 -73.8269905260805075 40.8780870134127667
-13077 -76.2070248285673983 42.7051752321989539
-05495 -73.0955182421488558 44.436930419154443
-51564 -95.9131251046714794 41.8132417238319434
-77355 -95.7434157887332447 30.1571230697229105
-77335 -94.9250680680485885 30.5930642192022297
-75218 -96.7014591121262583 32.8432378484811949
-78419 -97.2720045918367759 27.6914042040816391
-58541 -102.063513879858633 47.3432909770317991
-55805 -92.0962006133530764 46.7994912284865947
-72018 -92.7423590999999874 34.5594284000000016
-32435 -86.1243152012028474 30.6870241903238252
-04351 -69.8661942106490983 44.3304647171881996
-57369 -98.8664432689777328 43.4063650352439012
-35564 -87.8464696979512638 34.2660325197348783
-75772 -95.3082811666666458 31.8162173452380941
-39482 -89.5786037086050015 31.3625383234702895
-18923 -75.1836509148936614 40.3630314057751178
-29118 -80.8877710414107582 33.5533158332651453
-19375 -75.7455633595505731 39.9035652752809042
-19473 -75.4694951985449478 40.2542142621349086
-75217 -96.6739001235941657 32.7221696960840163
-87577 -105.889867216049495 36.5901181893003837
-85534 -109.138378191251562 32.8173003512132908
-55384 -93.6310275707071042 44.9364416060606331
-28678 -81.0623769743025093 35.8398828562077938
-38311 -88.1083534160366639 35.4379449362212782
-76871 -98.936884187431815 31.3167315010929208
-98640 -124.04689005786777 46.4999948144670512
-05101 -72.4756700751849792 43.1629986937534156
-06890 -73.2879027767885276 41.1442159472178233
-93901 -121.658271506074485 36.6669013833738333
-65049 -92.6901208588573127 38.2009320307094313
-36036 -86.174408008732641 31.980626181762787
-26524 -79.804547234234235 39.5420811621621624
-55795 -92.8455283392628843 46.3093182009208633
-02025 -70.8136452908012473 42.2424594091464485
-79935 -106.330152464743676 31.7732052084936178
-87442 -105.413451846153848 35.8037490769230828
-54963 -88.7553066150442476 44.0451986429395532
-71418 -92.0738383620063274 32.1432806770154187
-76570 -96.9470316511028471 31.0922276977942005
-97218 -122.600736373329212 45.5629328277643708
-65432 -92.7292243333333204 37.4773798888888834
-68768 -97.0599088888351531 41.9891847327211281
-36908 -88.3073854595897387 31.8902870963303151
-77087 -95.3020803177716829 29.6858884470379785
-72851 -93.4538819576268622 35.284160617907169
-78663 -98.3001851156829218 30.4107904349452625
-58453 -92.5921857499999987 45.5299949999999995
-82421 -108.593625954770644 44.9110504981412362
-80138 -104.689649817505384 39.5152455281631703
-92707 -117.870748509854138 33.7169283225060354
-15204 -80.0596812766688828 40.4556824050226282
-43542 -83.7508471686086438 41.5603443947908957
-77560 -94.615514715863398 29.8703452821285111
-23980 -78.9449675000000042 38.0791204999999948
-28628 -81.7859428504465171 35.7284068370536048
-44443 -80.5916895639651756 40.9225146845278118
-38655 -89.5032743820534904 34.346351606650444
-29525 -79.5354468643476764 34.5806125986085959
-47564 -87.098277066834342 38.4750571862417061
-03044 -71.1230705245086625 42.9883795370330688
-92083 -117.246623223325429 33.1932050479568872
-04938 -70.1157736666467883 44.6545490720765272
-38482 -87.1402462254645371 35.7695689397711334
-99571 -162.204502789473707 55.4720060578946956
-14756 -79.4217385730994181 42.1982841637427057
-78560 -98.4700043257965376 26.2410800842754348
-53203 -87.9147638523623272 43.0384253543307267
-61020 -89.0921013821527481 42.1037111113759153
-27881 -77.4495558774510187 35.9694740833333455
-17822 -76.6202151111111078 40.9806724999999972
-99599 -149.880448000000001 61.1865485000000007
-13464 -75.6075143634374882 42.6806119631250809
-18962 -75.2696094017857291 40.3467104017857281
-35040 -86.7398469971086712 33.1099215783247516
-66840 -96.9187792562634911 38.0529329551647777
-21309 -76.339379749999992 37.4004639166666593
-14387 -77.0863630000000057 42.4963682499999962
-47447 -86.2817667999999998 39.2674984000000009
-64066 -94.1321065555555521 39.1304753333333437
-62832 -89.2345982229103498 38.01169409664341
-74452 -95.0782165814814562 36.1119080141975743
-53584 -90.2920003125000079 43.2815965000000062
-47305 -85.3844920676327632 40.1930007869028714
-88114 -103.240729787234002 33.5311412127659594
-44325 -81.5150598214285793 41.0763677142857091
-60305 -87.8168722489625537 41.8944870487552237
-43314 -82.9584160706621674 40.6390932067220305
-22182 -77.2681617406548327 38.9317315168695401
-13219 -76.2253281748035363 43.0402802756913658
-83547 -116.364729078125137 45.3097362585227472
-15368 -79.9913456754386516 40.015602307017538
-20778 -76.5589187467787298 38.8341594952380618
-71750 -92.7054720000000145 33.2469601111111075
-54742 -91.3375216972567614 44.7604930935161178
-91602 -118.365738835010134 34.1512978209254854
-53562 -89.5259633680934428 43.1065568916210964
-83272 -111.319518761904945 42.0862284555984019
-92371 -117.539787502588041 34.4635409784606637
-05344 -72.7350235558194385 42.8542529619952646
-91355 -118.562484671178765 34.4109519491259732
-19382 -75.6018208888085894 39.9314332334797086
-11741 -73.0701944805365713 40.7961415834024521
-32837 -81.4169470983612342 28.3774191255383315
-28659 -81.1083260844195308 36.1804553722040581
-74472 -95.2531180432099234 35.252495546296295
-87042 -106.688619221780698 34.8255276435054526
-62860 -88.7240397905218714 38.0427933495878676
-35567 -87.8638844259259599 34.2303513333333385
-65011 -92.7285503706445695 38.3700951729676447
-02889 -71.3924076301829018 41.7079884712850983
-50038 -93.8927312133332634 41.5166923000000381
-01550 -72.0344513974820728 42.0704955445305444
-24132 -80.6215252585033966 37.2117661234207731
-17303 -77.2897310799999957 39.925572399999993
-01350 -72.970583006694568 42.726408194979058
-43357 -83.744485412249503 40.2612825089676818
-48640 -84.29352365482859 43.6118378591870481
-03513 -84.2693473333333287 34.7892296666666638
-62912 -89.0406969382541291 37.479864469836734
-59318 -107.522700653295033 47.4678921375357845
-56263 -95.5519487388723547 44.4150666988130922
-98946 -120.700852554036544 47.0752677819010259
-39404 -89.3317057368420961 31.3095378947368417
-69317 -96.5017914999999959 40.691422750000001
-60136 -88.3651448507542767 42.0913302559266924
-19611 -75.9432029279632275 40.3245744687721057
-98446 -122.374677540306351 47.1235944582828594
-93133 -121.850494000000012 37.3799399999999977
-24102 -79.9964222440116117 36.8420295761737506
-53964 -89.5157403308899262 43.8925086984293387
-32351 -84.6416148469962337 30.55126651791117
-17856 -76.9240254681941877 41.0574366096042738
-57754 -103.806419085627098 44.3124010609858416
-47036 -85.2351992579670394 39.3873060000000024
-26685 -80.695142897435872 38.0941043846153846
-79631 -99.3101734500000077 30.4568224499999936
-87552 -105.682858717527949 35.595158743119292
-91746 -117.984391233723201 34.0467456629697907
-31030 -83.8800178137727386 32.5717370585839063
-71672 -92.049753999999993 33.6136077499999999
-88575 -105.636273466666651 33.4074116666666683
-28016 -81.2841708867694734 35.3146656708859581
-45828 -84.6545775478122806 40.4839132046768171
-93237 -118.908381468208106 36.4704301560693622
-29011 -80.7269165000000015 36.1964593333333298
-16744 -78.5763043359872455 41.8774395127388956
-84753 -113.895081610169512 37.8215836876513478
-52070 -90.2115103043480815 42.063461288800994
-17118 -76.519685071428583 42.7630504999999985
-72940 -94.264650018293608 35.1129211871750115
-54110 -88.0461174149051118 44.1728954664994333
-48861 -84.9086744564199023 42.729342261480781
-19330 -75.9177754837469934 39.8717681782150066
-25764 -82.4315712857142984 37.8966387142857144
-11220 -74.0144368553644654 40.6407102756371472
-52807 -90.5342020288323113 41.5787068985347332
-56464 -95.0778412067469674 46.7736833704621944
-12469 -74.2345320389298706 42.4439431112967114
-14373 -75.4205243333333328 43.6224203333333307
-48726 -83.1779167760569464 43.6024560676015867
-19544 -76.279993349999998 40.4277346799999933
-46922 -86.4167958548387674 41.1392521129032147
-22181 -77.2922183079431449 38.9022783526970741
-28745 -82.9748518161082842 35.5203893232359746
-39861 -84.9794430349616476 31.1256219315134146
-64658 -92.9356767202380496 39.699888018298104
-47637 -87.1383592911265055 38.1264902445164537
-42135 -86.5775119565217324 36.7230026086956585
-39648 -90.4181606092209194 31.2129119089893869
-40003 -85.0362598141591093 38.2677325535121682
-63454 -91.6499763578810445 39.9293870430662636
-04222 -70.1218796156605748 43.9657479225934154
-79844 -104.316708608695649 30.8879772608695689
-44275 -82.1007958423238051 41.0993802049792336
-17887 -76.8829636991150238 41.0826421814159204
-24421 -79.1659805085215424 38.245402653615983
-04926 -69.5376264089068883 44.4250942874493902
-31551 -82.2703747763159328 31.4934919429824483
-65738 -93.4807421426533836 37.1256509235164245
-04658 -67.8697069922395997 44.543803377771539
-27582 -78.5681360902777755 36.4537907604166378
-70009 -90.220091999999994 30.0051120000000004
-73049 -97.2986466340836245 35.583670794256328
-00660 -67.1147528873739958 18.1336375969176409
-70733 -90.7909832488730899 30.3069164401601974
-20779 -76.5758530432123763 38.7635241402364841
-26228 -80.3702049076923402 38.7525718102564198
-72022 -92.4929343077974835 34.6130626793645746
-93020 -119.157360000000011 34.2138635000000022
-07035 -74.2992347819860299 40.9224264988453612
-97465 -124.479737021827518 42.7473077977156706
-42232 -87.6589654806980292 36.8558635219461266
-32904 -80.6708953154765283 28.071125355821561
-28791 -82.5045385916661616 35.3516243471256004
-61361 -89.7471894276357176 41.4082892583788862
-50135 -92.8850996669847859 41.7364151140267055
-12723 -75.0237054357694433 41.7721646212625899
-99164 -117.156080111111123 46.7306028888888889
-94596 -122.043378352339147 37.8906379577678791
-13883 -76.5092869000000064 42.2070125000000047
-95006 -122.139343625260196 37.1614976232263743
-83464 -113.432928433080761 44.6871585147306192
-47035 -84.9018567850877162 39.312425521929832
-27792 -75.8048233333333314 36.3044229999999999
-18833 -76.4374361232608663 41.5904625643953381
-93243 -118.880805981657346 34.8331264081231708
-47011 -85.0761557291520489 38.8687108622985846
-74720 -96.3820332387542749 33.831162882352956
-21766 -78.3714262894192473 39.6714075596474132
-77664 -94.3946593937130842 30.6091103471947754
-53559 -89.0781007180909086 43.1685342042734916
-21836 -75.7601623928571541 38.1058811785714298
-72717 -94.4231429112475098 35.8425159372034372
-51577 -95.2102136716383001 41.4559764789512286
-11385 -73.9072085312976981 40.7037895587786025
-97710 -118.471416035087728 42.1940029502924077
-57649 -102.821687367592588 45.4979432777777077
-64427 -94.8233550196629409 40.1212243584269999
-50864 -94.9806711751170383 40.9628002615024087
-47367 -85.3906867580645326 40.0791512258064415
-07031 -74.1321633997832379 40.7904161776814504
-19317 -75.6012411162511171 39.8584926894316851
-16256 -79.1357300732132387 40.8626100002905304
-81081 -104.184608388435393 37.0975484673468756
-78006 -98.7085149037351357 29.8259200975489733
-91342 -118.423355037148482 34.3064228715842674
-99344 -119.233867120241555 46.8353326737908944
-46111 -86.3691968333333477 39.5395807430555593
-58054 -97.669144683299379 46.4315769925323707
-72655 -93.1312153564356038 35.857170732673282
-77802 -96.3321624075076386 30.6579207236024338
-31071 -83.530338049398523 32.1378334737972864
-66223 -94.6672783439476291 38.8591984317572283
-34636 -82.2709127222222207 28.6649232777777776
-62088 -89.7901851188200624 39.0147376754524231
-78068 -101.310991000000001 35.4443395000000052
-82831 -106.069568147607683 44.5931017688995723
-42140 -85.8223816325167093 36.6585400268852197
-55604 -90.3799584402860887 47.9004300359678226
-88052 -106.599862275132196 32.4252871375661229
-66615 -95.8435166235194487 39.0511343288212416
-20191 -77.3508598627310135 38.9345731337548457
-08875 -74.5202847567567659 40.4535855135135307
-29802 -81.5714731249999829 33.7250849062499967
-39529 -89.627200000000002 30.3586023333333337
-27897 -77.2032489544547644 36.3313283430116272
-44308 -81.5181766971214614 41.0804685707134496
-63362 -90.8970247781270189 38.9368887582111043
-32580 -86.496360031496323 30.5069455787402042
-75074 -96.6753396084974526 33.0330015308049596
-50436 -93.6519681485350191 43.2677572639506707
-81419 -107.748575490405401 38.8468893203837453
-06763 -73.2137271997573009 41.6895887599271973
-68863 -99.5308396924309591 40.7616984925372989
-28786 -82.9944013776555494 35.4792960689526282
-45431 -84.0821082783945997 39.7629001970178706
-15733 -78.9620251022727331 40.9841470795454654
-47613 -87.4305402444066999 38.1546627861017171
-66412 -96.7727516918326245 39.9162233678791978
-59480 -111.143928579784713 47.2699096481048429
-89431 -119.754247696939018 39.5449670916021248
-19036 -75.2943395821263408 39.9035610409860908
-28274 -80.8313957142857049 35.1884611428571432
-60102 -88.3105455727678788 42.1645067407837146
-57722 -103.205240348484878 43.5329631045454448
-76706 -97.1204037510640745 31.5018565272690729
-33563 -82.1293543136999915 28.0157123922321531
-60656 -87.8147405824084899 41.9745541504058508
-21054 -76.6735337117290356 39.031178615186441
-01501 -71.8399172176690115 42.20248824091221
-15084 -79.7960994558770551 40.6266583974513651
-12987 -73.7751486666666381 44.3347257240617623
-57059 -97.7301398376014419 43.1366693591504529
-80550 -104.913630440241761 40.4771972188936502
-18910 -75.1896106065573662 40.4261133770491838
-68467 -97.5881365205554516 40.8684608430326222
-14873 -77.297443003373445 42.5207258527428351
-33478 -80.2138021248381108 26.9363454995376301
-13835 -76.1712467523339427 42.3817728737034258
-59716 -111.353131807566086 45.2668588082547316
-27936 -75.6137037365785005 35.2444399835360755
-97909 -117.463576388297881 44.2018938829787089
-26354 -80.0288834539557001 39.3492553286572004
-14815 -77.0882108334988914 42.3783577490897088
-27509 -78.7626986288521493 36.1338615868691093
-80031 -105.038863614531436 39.8764197504951667
-96778 -154.927720236504001 19.4867611079691549
-18766 -75.8888560000000041 41.2453918333333363
-38281 -89.0509166666666516 36.421835333333334
-44302 -81.5397673747166891 41.0904875782312828
-42055 -88.1624959045297913 37.062284886096883
-73066 -97.3314462499999991 35.5007690196078372
-78242 -98.6121366279220837 29.3509903766234324
-85742 -111.048426448224646 32.3820625151025112
-54467 -89.5360434236587395 44.4503026790243183
-52569 -93.0389239294025572 40.9624115330513376
-74048 -95.6399254586812759 36.6972407345894709
-97446 -123.115369481657794 44.2680555991180853
-80860 -105.115368720805392 38.7069799174496225
-47361 -85.386231274336339 40.0039147345132804
-16866 -78.1928787667017389 40.895590362626784
-56685 -94.5177998937381574 48.1617987637570693
-23920 -77.98609932784737 36.7265456302982614
-24368 -81.2927820957437177 36.882365685892367
-77875 -95.9536241835442922 30.6127849556962097
-03770 -72.2673510771929841 43.5345839251462152
-13069 -76.3923408984325647 43.3260979537683824
-15480 -79.7734638759442021 39.9868599141154348
-25870 -81.4982078421052734 37.6548739649122695
-93125 -119.085530124999991 34.7475749999999977
-38677 -89.5373723546797748 34.3589605024630487
-43970 -80.8901296842105211 40.46804571052634
-59229 -104.486003000000011 48.3340120000000013
-58773 -102.66776439118226 48.62077950619814
-56549 -96.2950423218073155 46.8415611800173508
-63841 -89.9749305496749088 36.7883170986351828
-05481 -73.1392587499999962 44.808086749999994
-11428 -73.741162700000018 40.7188487999999964
-22630 -78.1678700332309262 38.9290378491729498
-35459 -88.3023052153075696 32.7612834041487559
-70748 -91.202463654692508 30.8248238861696215
-18460 -75.3395873444676596 41.2652891962421577
-87123 -106.505089334862419 35.0653994341210833
-32174 -81.1119670157565764 29.2930519261733515
-27503 -78.8857178390824032 36.1641951734177525
-99153 -117.348912901909074 48.865569980908468
-30311 -84.4738345228667669 33.7242431091712618
-11715 -73.0349596374217214 40.7489443795881741
-79059 -100.692119526315835 35.725735996567515
-78059 -98.8427683822685168 29.185400713168324
-66088 -95.4545864708246654 39.3333954363336673
-04742 -67.8446542119136211 46.7764682243911167
-76802 -98.9171334607488149 31.7496607086783413
-76041 -96.85417885039368 32.2469304881890011
-17059 -77.3724028953221392 40.586435330879965
-24935 -80.7967551584021919 37.5793282988980977
-11414 -73.8374447301587367 40.6593400634920599
-19768 -75.1892965333333336 38.8051314666666656
-61634 -89.5925453333333479 40.6898148333333367
-11005 -73.7211424999999991 40.7563969999999998
-93401 -120.64083359727907 35.241715077108509
-61532 -89.8201408218390469 40.3554435264367015
-40902 -83.6384037229381647 36.8293245068728226
-01085 -72.7547485607077249 42.1374735082114924
-90620 -118.012697158204176 33.8422591421445631
-63555 -92.1698482005836013 40.4606525565281316
-89134 -115.308136373666429 36.201967573697118
-59087 -108.273480282383346 47.1071058575129555
-75033 -96.8568871972889553 33.17275490542238
-36915 -88.3610394045655312 31.9583814020291861
-32354 -84.5226499999999987 30.5516777499999996
-63849 -89.9810250037736381 36.1316927056603774
-82063 -105.9628934750301 40.9207800559710719
-61604 -89.6427212162841442 40.7092425626258958
-89893 -114.046039000000007 40.7393542500000052
-77067 -95.4541581334029701 29.9546356929841764
-34434 -82.4532553107481192 28.9959817609805484
-63629 -91.2115374907749867 37.4667442579335059
-66425 -95.7235160436364367 39.8184403919999994
-63847 -90.0322280985915171 36.4417543943661926
-59645 -110.948804984189465 46.5499094016250794
-94950 -122.771203469626045 38.0392927616822618
-40616 -82.6850053333333364 37.598945999999998
-12955 -73.9749894096069198 44.790036468122274
-53102 -88.0787822499999891 42.4995912499999946
-36081 -85.9328584749102475 31.8422382210409616
-20868 -76.9721302592592735 39.1220863024691567
-56737 -96.0390763649540133 48.4274536714098218
-94935 -122.502736029411764 37.9456394411764748
-31757 -83.9181764624790389 30.8783940358156599
-80220 -104.916120373351248 39.7331711523519289
-61426 -89.7064683544303705 41.1181164177215166
-78649 -97.839618999999999 29.9897017500000018
-55069 -92.9864537496741974 45.6883120724753411
-28442 -78.6082462223483418 34.3111635252410281
-96108 -120.39401455216688 41.7547131540931318
-58602 -102.790042999999997 46.8693815000000029
-62987 -88.6699262281184275 37.6310033202196337
-57030 -96.5493227236757718 43.7427783301671269
-11930 -72.1132980411128983 40.9842121590532216
-27888 -77.7044445207673249 35.590999819435666
-22517 -76.5348560714285497 37.7313725714285653
-61065 -88.8454717988108342 42.3617927135091037
-04431 -68.6554543793102994 44.560348586206878
-77356 -95.6578400421236239 30.4082968555151218
-10303 -74.1599518993951534 40.6306921396370626
-74062 -96.9144133895107984 36.0409940288745076
-37016 -86.1038090184759994 35.9555328027713301
-59545 -111.243061414141465 48.9333122626262522
-95919 -121.267234231440924 39.4362412718915039
-92840 -117.933968246061241 33.7863239418864723
-97734 -121.269255056031469 44.5281298043258786
-32044 -82.1623310947971675 29.861909190035302
-61465 -90.4685763270157395 41.2053201519253065
-61529 -89.9408646762630184 40.7805216456168083
-42333 -86.7604007902791921 37.3641541128970402
-28756 -82.1745898137074136 35.3427750504459226
-38545 -85.65143037155309 36.2286608101595391
-99403 -117.097511160023046 46.3936450437472985
-67675 -99.099033832251834 39.4152269896170679
-64802 -94.4824963333333443 37.062625666666662
-31415 -81.1190099141955869 32.0747554602523763
-53527 -89.1987748034276677 43.0753372717753891
-59054 -107.865102085555094 46.5839952526667531
-19121 -75.1738352867083819 39.9809899888655522
-79984 -105.217793999999998 31.747038749999998
-55904 -92.4162445943758826 43.984022835011892
-81128 -106.773676671207696 37.0442379397517669
-08064 -74.6280270947368223 39.9624438771929604
-16003 -79.7457777142857225 40.9479131428571392
-19210 -75.5961787000000101 41.0222788999999963
-47325 -85.0168320115307949 39.6898794417495466
-32577 -87.363800741124777 30.7301360118334941
-99212 -117.305940094960889 47.6719864334868717
-49416 -86.236470312499975 42.5212867500000016
-84641 -111.736895000000004 40.0001014999999995
-85236 -111.708672922127448 33.3193537535613302
-70526 -92.3763572370636581 30.2170679932760571
-40013 -85.4836346462242602 37.9432812387613581
-44652 -81.3263487555555855 40.8970517111111249
-87231 -108.301615749999996 35.4185414999999963
-82028 -105.850559315789454 42.2647393157894697
-41563 -82.5359403176008328 37.2257729242870568
-21765 -77.0713654999999989 39.3353070000000002
-79458 -102.151808166666669 33.3992348333333311
-89883 -114.097158534022483 40.7401755245477659
-48131 -83.656738446498025 41.9625130556905148
-34788 -81.7824822784820213 28.8608585971417391
-25288 -81.3717186666666805 38.649013888888895
-12851 -74.0094997609045606 43.8054094614971206
-45650 -83.4216140795453782 38.7465970832111424
-25620 -81.8367632857142837 37.6784594285714363
-24655 -81.4915983333333287 37.1262605833333339
-35801 -86.5655345882304204 34.7262150609593334
-54635 -91.0171515164835085 44.3822305192307738
-80547 -104.959610958706136 40.5254708368891912
-57354 -97.8380274117646991 43.1877945882352918
-68724 -97.8611586507177833 42.6251097942583712
-15746 -78.8827007321428653 40.758643866071445
-06079 -73.4034124840425761 42.0319656914893827
-52151 -91.2598684190312781 43.3435917968140458
-92649 -118.043771620566105 33.7206022107547483
-06854 -73.431139327914309 41.0935355547184287
-53081 -87.7301620037447805 43.7285042798839072
-47162 -85.4823381601624845 38.5513547141408424
-26404 -80.3124126437499939 39.3544528187500262
-37203 -86.7905269046162147 36.1501416869456591
-63336 -90.9423727912835886 39.3433460159936601
-84656 -112.097408524096451 39.2576340572289055
-02671 -70.1098856991526134 41.6825991345339091
-68441 -96.255436427616857 40.2179003986636943
-45334 -84.045558162037068 40.4462969421295924
-92273 -115.693177859838286 32.7942569272237137
-33040 -81.7602051640300687 24.5658055870865226
-51524 -108.866205714285712 39.2222490714285641
-62026 -89.9961493103448333 38.792489586206905
-49719 -84.3169188293414322 45.9982150237218477
-54966 -89.502054737327299 44.2315320493745858
-21628 -75.9238518851063873 39.2376985148936015
-03325 -71.2954755714285682 43.4285641428571338
-19610 -75.976479270411744 40.334092510257527
-64481 -93.9121820938372451 40.3615020013916634
-25035 -81.4929916702252939 38.1900635800711967
-95388 -120.596956547706682 37.4130969493884393
-58204 -97.3700261175337403 47.9588521599229125
-44805 -82.3210501604723532 40.8674240226854693
-05863 -71.9286014285714401 44.5547788571428569
-32421 -85.1813178234729662 30.5327913861183546
-75002 -96.6254988858518544 33.0937373900101548
-25135 -96.2712307666666334 33.1281353583333313
-17564 -76.0638026315789375 40.2362229473684252
-60075 -87.9125503000000066 42.4923141999999956
-08825 -75.0266348933729006 40.513166729424718
-90846 -118.139318000000003 33.812736000000001
-11435 -73.8093780625000164 40.6996367812500068
-97310 -122.992613999999989 44.9094864814814727
-15957 -78.8942253713389192 40.5414748347280991
-26283 -79.8153062573233285 39.0499912504307289
-46510 -85.8900541664562809 41.1169270953282719
-03323 -71.3818560714285866 43.3337751428571352
-21405 -76.5461022700585971 39.028736769080254
-15533 -78.2486288607792488 39.9817883319480458
-68444 -97.5785743170732047 40.4080581544715685
-64443 -94.6535253492783113 39.7427375899518225
-45001 -84.7113553600000415 39.1393783057142741
-15430 -79.6643399221556763 40.0413393712574788
-20373 -77.0123935098039283 38.8584967843137292
-55438 -93.380754921724801 44.8263109442437795
-29829 -81.8459826556188972 33.5666893208915127
-47968 -86.7318637090607183 39.9585777581046884
-94806 -122.335141908409383 37.9756808946618847
-55752 -93.275205601388663 46.9574372033335052
-97451 -123.262869831914841 43.8129072808511211
-05874 -72.4440212009925801 44.8721713465674057
-54857 -91.5967273411764893 45.6000022352941201
-45106 -84.086579658611285 38.9479993014269184
-32445 -85.1842693457005851 30.9678566383981213
-22408 -77.4649368380370049 38.2364607006400377
-03850 -71.3069177135922416 43.6925226334951731
-20566 -77.0557699629629695 38.8975410000000039
-21822 -75.65936363677271 38.2842545879138356
-00741 -65.7635938202898132 18.1614064681159348
-72325 -90.2291812968750548 35.3013043125000081
-36768 -87.031071401850042 31.9032887499144344
-14808 -77.4751814206641569 42.5570558782287947
-27281 -79.6344341051645159 35.2027693365253072
-81129 -106.01724639130434 37.0902223260869519
-04777 -68.4591438534884702 45.8857401941860488
-53108 -87.9448562767467052 42.8192370949781065
-27614 -78.6101905389954254 35.9409310480704036
-98072 -122.128471289504859 47.7574339312714145
-50145 -93.4998658550724571 41.2032728550724627
-02324 -70.9698031376286593 41.9787423111973652
-64422 -94.490884529500704 39.8955974478063808
-51559 -95.6490635596216379 41.4521081914382776
-12981 -73.816934748827876 44.6291989588173905
-33313 -80.2261752044613417 26.1507495361263409
-86015 -111.815429848101317 35.2338463924050913
-36877 -85.0960993416812528 32.5426037811694826
-04721 -69.1282257142857191 44.4955799999999968
-64625 -93.7936862903408013 39.7417296568181655
-61852 -88.0716949098497963 39.8990162220366784
-24347 -80.6734241555883216 36.9779325372969012
-29640 -82.5807973815972218 34.8708409357548987
-47170 -85.8184953487947695 38.6787508564393718
-53184 -88.5935215535373857 42.5300722466539085
-82902 -109.078720911851264 41.6772578765915895
-60549 -88.7523143391214973 41.4874821920326795
-66526 -96.1640413099053717 39.0813520919811594
-32431 -85.4006593597564745 30.78215483529765
-52030 -90.5952527709924311 42.1556909781897815
-38028 -89.6362966025213836 35.1881363580376316
-71616 -93.5620412499999929 36.3496287500000008
-22736 -77.7185665799132579 38.4020203390056949
-23894 -77.8267505163661326 37.1272418617234621
-62976 -89.195562097688935 37.2140836838235174
-04650 -68.712983162725223 44.2910611447072782
-93464 -120.130797799999982 34.7364362
-65426 -93.0759058333333229 38.1021419999999935
-38354 -88.8457489000000038 32.8907067999999967
-61468 -90.3854054190475864 41.2710596761904611
-48085 -83.1184280288943995 42.5983613795073097
-26865 -78.4914001370143808 39.1828747719835846
-42339 -86.9721060392154612 37.0997286850979506
-68723 -97.2005175393731093 42.2897437438838537
-57755 -103.311862809139711 45.8190180107526288
-24622 -81.7941791468855968 37.2151253414485481
-94618 -122.23799396952414 37.8432191284535975
-28278 -81.0099629647216943 35.119508860325567
-94703 -122.275819319796923 37.8642279253508249
-37411 -85.2362818717594024 35.0268980115407018
-78066 -98.8899444534883827 29.4873277567829319
-68412 -95.8402469999999909 40.6628596666666624
-43431 -83.330303796797196 41.3879645651244772
-86544 -109.069941499999999 36.6061394999999976
-46135 -86.88146900961776 39.6525834141554014
-96045 -122.939433875939784 41.8303550225564038
-11429 -73.738422799999995 40.7117880999999926
-76638 -97.4254543047970714 31.5563420047970915
-48730 -83.4585419841982485 44.3170903952837349
-63853 -89.8704692090909134 36.0571307818181808
-49027 -86.0755506764705416 42.3468795441176553
-98314 -122.646105111111126 47.5615704444444418
-27926 -76.6094420007756867 36.5178339278510293
-29696 -83.0107241474548943 34.7764562464326659
-44684 -81.8351604693877732 40.5841956734693881
-87116 -106.554597648725178 35.0591291029272867
-80732 -104.293199809523813 40.9586749523809459
-04360 -70.0105401151407278 44.5407543411972213
-76581 -97.1162398888888987 30.8986902222222142
-56223 -95.8139667975123785 44.7786158343284342
-33168 -80.2096826622908026 25.8927893075933184
-75494 -95.2755758173793623 32.9274228642541686
-77301 -95.4437364378875941 30.3124393578922131
-32301 -84.2604543374251875 30.4282364278148059
-13469 -75.2990156398892196 43.2189567396122172
-44606 -81.7969292458621311 40.7362268639959169
-19477 -75.236278637931008 40.1837502241379454
-12937 -74.4847378042895087 44.9719716691688873
-74061 -95.9015535191738735 36.5406020132742668
-37127 -86.3427662845223409 35.7839760439768
-68454 -96.2835760591621579 40.6937175760065699
-27513 -78.807383147326064 35.794904144567866
-73053 -98.4080759577736046 35.3637471036468156
-11201 -73.9897485630803686 40.6948641867831995
-29575 -78.977257291621882 33.6219091755847046
-33540 -82.161028993186477 28.2394481197776841
-72083 -92.0136247489878372 34.6006872995951653
-80424 -106.038116510062849 39.4735022050549063
-10983 -73.9505302954462564 41.0276670370232921
-79300 -101.555621176470609 33.3222111176470577
-92405 -117.299475846894765 34.1463843649949794
-12133 -73.5157912222222052 42.7933503333333363
-50647 -92.4755396043885725 42.6460218821317127
-40995 -83.8189140418604381 36.7636746232557883
-93239 -119.984464213754663 36.0372558438661699
-83523 -116.442389156082029 46.2577395193756971
-63345 -91.5730330152671286 39.2739292951653454
-08731 -74.1995632049187464 39.8438130260140113
-33068 -80.2176250531274349 26.215504982683612
-87060 -106.717681161111102 34.7385852555555701
-12603 -73.87514267244255 41.6744519435439926
-27283 -79.641446404924622 35.9492116326182085
-42764 -85.6284405270216951 37.4391139447731263
-62644 -90.0672876143987651 40.2962282584593936
-19107 -75.159052760732294 39.9514843895201821
-97862 -118.381882404455666 45.9421528961784205
-13039 -76.0882409834602669 43.1740213554723056
-93549 -118.00118355231136 36.2494955462287223
-06155 -72.6864124999999888 41.769283999999999
-63960 -90.130320231157782 36.9480200366951976
-52166 -91.9325956972477059 43.0661718256880448
-42133 -85.9660708469057937 36.733000462918163
-46107 -86.0937757905023346 39.7124232779909434
-81443 -107.906019684210534 38.0719606315789392
-56295 -95.8278284963821108 45.0366929276410701
-30228 -84.3051142167929299 33.4160616243253088
-38835 -88.4668589999999995 34.9598037500000061
-50153 -92.7886916741718863 41.5650452849791066
-74651 -97.1691396757623664 36.4731811524879461
-66039 -95.168590894449423 38.0910148880800961
-97010 -122.110209315068502 45.5800737945205512
-62892 -89.0668198263647071 38.8067759459929746
-20755 -76.745744030612201 39.1117890355101707
-59215 -105.651998015994039 47.4962813699963959
-29936 -80.9693679183802288 32.4842032180193954
-91606 -118.390028121212325 34.1868422775629455
-12195 -73.4658580352941044 42.4831416039215597
-32456 -85.3377473975822625 29.8199060662636022
-62560 -89.5915377334178942 39.3053865626784429
-15038 -79.9259632222222081 40.252469516339886
-42151 -85.5801883882726742 36.6463576767036656
-28687 -81.0382120000000015 35.8585154999999958
-27508 -78.2455470828728323 35.959182771639064
-29850 -81.8063696052631286 33.6116692368421042
-12515 -74.0590560212568789 41.6798786774491248
-92882 -117.595990361055286 33.8601800501629953
-21251 -76.5867146000000076 39.3426558000000028
-62689 -89.7614362380952571 39.5386117551020533
-29133 -80.7955572367337425 33.3583814597194248
-47876 -87.4132269310344725 39.6251576551724156
-04958 -69.9277054104226323 44.9053312295993692
-69737 -93.3911710000000141 36.5967708000000016
-01740 -71.606087937284201 42.437307537852611
-49068 -84.9509313533628472 42.2756016519614448
-59751 -112.292988376168225 45.6794747464953588
-23692 -76.4562671719736926 37.1752758850565215
-75470 -95.8021296751151681 33.6002732857143016
-23488 -75.5909363321033254 37.9469338597786177
-95337 -121.23196248454434 37.7738819773461927
-78877 -100.602653472693177 28.9471744425612094
-76655 -97.1947093837484317 31.4021523740607975
-83431 -112.017591660827961 43.6927634426751652
-74234 -96.8686697999999922 32.911117400000002
-46937 -86.040990037037048 40.419009888888894
-57386 -98.0046708036649932 44.5148013734728991
-01061 -72.6375999230769338 42.3020598461538455
-36793 -86.980748872663824 32.8386623142112057
-55787 -93.1208650541877319 46.6741089211822171
-61730 -88.72059493379777 40.5326051106271734
-64503 -94.8222925405544999 39.738790886603411
-13450 -74.800382390581774 42.7086066398892115
-74530 -96.5039738489583101 34.4098122812499909
-17760 -77.6885980727728196 41.367395554161476
-24919 -80.8899590000000046 37.6752176666666614
-58330 -98.4509189647373546 48.4424176888290461
-98291 -120.780348782608712 47.7580496956521827
-19460 -75.5264203086343002 40.1272353448966186
-64770 -93.9777289766925321 38.2720244942655299
-59721 -111.907546330717835 45.7912597144993114
-45243 -84.3508748927514347 39.1813694952451428
-48220 -83.1342901883012644 42.4595147174144572
-54521 -89.2563867515760307 45.9172671153876664
-56252 -95.295509175454626 45.1902804472727055
-60527 -87.926760927060684 41.7512207275308427
-14478 -77.1236454599714989 42.5850247214589501
-56610 -95.0258848 47.8778456000000006
-76670 -96.9699933373786678 32.1277430825242121
-14129 -79.0007042338203718 42.4766633263743287
-76267 -97.3642877083333076 33.3636193333333395
-12024 -73.5279477180451124 42.4847597443609146
-26562 -80.4429488317013863 39.6400050807834106
-63531 -92.2220765999999514 40.2669230086956347
-06905 -73.5439725702470639 41.0878650131595791
-88312 -105.646755451972012 33.417434652377942
-67862 -101.923832361828929 37.5261711630218855
-26636 -80.9562537151369668 38.7528151769964921
-53540 -90.2989864210526605 43.2211396526315923
-20177 -77.5580741481481368 39.0992424444444566
-35188 -87.1653108065798108 33.1875186780746176
-03301 -71.5369765587271047 43.219758813503951
-78348 -98.2275348333333369 27.8687011666666677
-19363 -75.9704233169006642 39.7840262711767991
-98824 -119.816576089552228 47.0842702686567023
-93305 -118.986459331988996 35.3907955268012131
-52338 -91.6888256457816482 41.8298135993645701
-26555 -80.2128783333333217 39.4672043333333349
-72740 -93.692228851887748 36.0996586709048373
-70774 -90.8386564690209042 30.2374036850086618
-60921 -88.292685992974782 40.7441554435573039
-33846 -81.875829666666661 27.966654166666661
-03592 -71.3565148101116193 45.072968251884646
-97876 -118.014995703103622 45.5130750071973011
-60633 -87.5518539242339102 41.6514427513674619
-75116 -96.9143121294002441 32.6587195906462355
-46975 -86.2373393080579831 41.0746249087277775
-73887 -97.4681410000000028 34.477206333333335
-59332 -104.729739230320746 45.3365184956268337
-18979 -75.4456767142857103 40.3171235714285743
-75606 -95.3660370999999998 32.464236200000002
-02364 -70.7459417262176089 41.9898435374092003
-96105 -120.192472981715909 39.8631945991561238
-71054 -93.6768500000000017 32.0273134999999982
-21794 -76.9735385168801827 39.2890475192084949
-29569 -78.9021194598863786 34.0366797036185815
-67647 -99.5545544422657827 39.9394638562091657
-77061 -95.2830835435979537 29.6612617912479237
-16221 -79.4418020793651181 41.1022261269841138
-75422 -95.9375270654923185 33.1486733938573224
-48426 -83.0693005509517519 43.5020102407615141
-74830 -96.6679768867924736 35.1436122830188467
-30530 -83.3869584057128606 34.2200884222086827
-78204 -98.5046585163804735 29.4031633017160665
-59436 -112.001844635186259 47.6343109751136495
-05352 -73.0699666853531227 42.7709455941192758
-28311 -78.8898943105727852 35.1417119773974278
-96022 -122.35570533253852 40.3333518888112081
-80517 -105.527004205857864 40.3598744516501569
-39877 -84.5069067665148737 31.9121903599088448
-65755 -92.6480030882352139 36.7799693713235669
-70402 -90.4702117199999947 30.5172195600000045
-48341 -83.3028082414500659 42.6293064578847876
-56676 -95.1651238118272573 47.6025536360739494
-15334 -79.9842659303797348 39.8133272911392524
-75693 -94.8589045099009951 32.5352327653465494
-58454 -98.9244646802719672 46.6004477776360062
-98311 -122.635170453922726 47.630293331755567
-99744 -149.189919512903288 64.3466355387096911
-67336 -95.0611330033683828 37.0518235195788463
-59454 -111.870059598208698 48.7474603403335536
-45888 -84.0866978306451642 40.6020252661290471
-98061 -122.646388999999999 47.7335748749999951
-86429 -114.534435500856063 35.1708297377783339
-77053 -95.4565174692464069 29.5962134997963062
-96013 -121.669736389010168 40.9190819527061933
-05845 -72.2992317542813652 44.7972941360759762
-64664 -93.7029797756833744 39.7436747200753828
-76203 -97.1503456923076811 33.2095806410256458
-06468 -73.225804473794625 41.3346690445717968
-33865 -81.969385929499083 27.4243652606678978
-21401 -76.5395928927213589 38.9870599179207957
-67556 -99.5387657261613441 38.6222498459657544
-12801 -73.6485305850753065 43.311660495369118
-35254 -86.8500681363636318 33.5240090909090895
-95346 -120.179492877832203 38.064432655708508
-57652 -100.924226307692308 45.0726125384615344
-41601 -82.7245680825770933 37.61097006261339
-98028 -122.246173069425211 47.7562585519540974
-51535 -95.1546070162602575 41.233810024970964
-34292 -82.3843839954949289 27.1002996238314999
-83871 -116.747384295160231 46.7417506958774069
-28537 -76.5745401324374768 35.2553840978886299
-48014 -82.933715998053458 43.021871095377108
-37339 -85.6298123445094035 35.3771934147230525
-95669 -120.872494819266791 38.4886266256241214
-50439 -93.6339706151636335 42.9418054572084316
-79546 -100.494372088440073 32.8588903216296089
-84719 -112.836750787348279 37.6968504540146299
-85735 -111.190686584326357 32.1498514956002595
-20874 -77.2810737425332235 39.1589576595601656
-74944 -95.0049762717475943 35.1333700700539211
-41043 -84.1911295323024973 38.7549370701457292
-38630 -90.6549330853658546 34.2542946463414637
-98248 -122.611113243874016 48.8625333106432436
-93264 -119.822429 36.1909025
-92327 -116.875246740763671 34.8616192395320184
-16363 -80.1970447500000034 40.2528454999999994
-00921 -66.088387267652962 18.3932865521183224
-68740 -97.2970724627788712 42.1608020744425929
-25085 -81.1854132186177395 38.1628357263752136
-33193 -80.448443408646682 25.6995671482243253
-71129 -93.8958704366293375 32.4081553415312911
-38925 -89.6423059423280648 33.631805711992989
-60468 -87.8031092403583813 41.3347340002488579
-60123 -88.3132657095550115 42.0382897887323352
-77655 -93.9384347841879901 29.7160021752136565
-53792 -89.4313581111111233 43.077578888888894
-85703 -110.975319333333331 32.2370666666666637
-65784 -92.320809011428608 36.7031782685714347
-24090 -79.875093887610916 37.5088617839806915
-86316 -111.958612000000002 34.6508494999999996
-59559 -111.966681400000013 48.7524605999999991
-23693 -76.4355688167030394 37.1167611572154996
-54837 -92.4052871239810969 45.6802363022307745
-89523 -119.903620910403617 39.5291300505902186
-22160 -77.2211839999999938 38.8110989999999987
-22730 -78.1735325742972122 38.3679775662650471
-08561 -74.5889550737705065 40.2051626721311521
-47631 -87.9028640625905524 38.1043071304978156
-39773 -88.6459984162241739 33.6118585540560773
-28783 -83.0552769875466339 35.2488813683052058
-37175 -87.8887434709146333 36.3317438435567936
-81432 -107.760521255421693 38.1502441400053129
-04925 -69.9491660263620076 45.2166239771529206
-62672 -89.8191328545454581 39.4002962090909108
-25265 -81.966783171032418 38.9864453374422055
-07755 -74.0209515994913403 40.2639597005721441
-95302 -120.654307727272737 37.4398725454545485
-18030 -75.6630194541063048 40.8006297826087092
-48625 -84.799226489754119 44.0462572495978577
-70811 -91.1248500207651091 30.5304342834070717
-48703 -83.6456134083872485 44.0548391867741813
-56760 -96.4425449956408016 48.2469603041582431
-98251 -121.648213622665324 47.8420391122771562
-60915 -87.8588638434799805 41.1464420942753506
-40513 -84.5807271387100741 38.0129246272472514
-28662 -81.8722005496085075 36.0253004164490918
-29333 -81.9113062016806879 34.9710641344537905
-92107 -117.243521987785883 32.7388981554120733
-17004 -77.7297255009154213 40.6048909056415681
-93266 -119.809316356557389 36.1835280581967069
-56483 -94.7934202380952371 46.1995706190476128
-05769 -73.1116021622031127 43.9167223799898636
-41169 -82.716459053059026 38.5236839888745521
-69101 -100.783036665791087 41.130027633438921
-15226 -80.0141629763064088 40.3959877184260137
-98239 -122.659300142663682 48.1946228627641418
-32040 -82.1966351024921948 30.2944404646957146
-59064 -107.958370565668901 45.9763489181429037
-88033 -106.970529421875 32.2523697499999855
-76205 -97.1239716669239499 33.1875350747681921
-58452 -98.2373069411764561 47.5422324117647008
-45415 -84.2584953878369163 39.8351239399537249
-80516 -105.036928270652808 40.0437280795068986
-32687 -82.2379548749999998 30.4280911666666718
-92411 -117.318856648767024 34.1223730140154657
-23414 -75.5930745249999916 37.8093215625000028
-71461 -93.2865059675323209 31.1128054978354918
-78620 -98.1165222214063419 30.2304586866468554
-33060 -80.1223129505155356 26.2317914806935946
-73054 -97.1960256928500712 35.659313893756277
-94534 -122.112004827827718 38.2452577501249351
-06370 -72.1884346281321285 41.4672494918776664
-07108 -74.2012316965678735 40.7232159890796055
-38486 -87.5362094238989101 35.1793398538228601
-98862 -120.220474593160262 48.4951480682432106
-93686 -97.0024425000000008 34.5133824999999987
-55089 -92.7240954527720049 44.5771442076493472
-38669 -90.6611610727272677 34.2714444181818223
-62324 -90.9722415022037438 39.9814661667099998
-75665 -94.3662149999999968 29.8237757500000029
-85258 -111.892861292955118 33.5648483506609878
-15423 -79.9240103147108414 40.0877044433056824
-11355 -73.8244269032258131 40.753484903225818
-92584 -117.1771634240216 33.6675323436857852
-81401 -107.831811844163838 38.4782054347762212
-20149 -77.5129254999999944 39.0360064999999992
-35461 -88.2156194978130657 33.4221704661307584
-92832 -117.930312064434659 33.8694990615325011
-75910 -94.8050434999999965 31.4200935000000001
-72734 -94.4522691895976152 36.2681101848284371
-73909 -98.043398333333343 35.4100791666666694
-12059 -74.0566188906573046 42.6205367620916675
-43953 -80.7034839549726257 40.3682748097907691
-55984 -114.679959333333329 47.5929179999999974
-81434 -107.321587154886558 38.9782049973365332
-31079 -83.4584816949105175 31.9410290023952008
-75491 -96.400737234225744 33.4921926361137849
-42056 -88.963463237090167 37.0784537382056172
-04668 -67.5959093733376761 45.2119794466428218
-74116 -95.8141329728387774 36.1745409445294541
-29015 -81.3354604767482954 34.4385263615894175
-02534 -70.6177912758064252 41.6668793895161684
-48065 -83.033765066175377 42.8304996927109158
-56646 -95.6383976079446398 47.7263881606217879
-52639 -91.4552232558493188 40.5223500256603302
-24528 -78.8975298714578059 37.0954513467560716
-41812 -82.7601675325239512 37.2442098473546963
-16412 -80.1468037796960147 41.8788647136047487
-72853 -93.3381004510307406 34.996625908791529
-72417 -90.5759322100841047 35.9177712853488416
-32176 -81.0592755610653342 29.3245219027794377
-99583 -163.415052731707306 54.856341585365854
-41548 -82.2516402854664364 37.372340207808989
-56571 -95.5535532582854614 46.4435213656652337
-92305 -116.909484610987022 34.1818602389219279
-32257 -81.6020044212631461 30.1912680104458424
-60632 -87.7105118732568059 41.8087907637793492
-50013 -93.6423339999999911 42.0243194545454557
-40702 -84.1442003789473745 36.9314686947368287
-72011 -92.473099309273735 34.5240520905369337
-19131 -75.2270896943190479 39.9838275098646108
-24460 -79.6312567043477486 38.0248695558742327
-69149 -102.661588655229281 41.1971694899372807
-29435 -80.4787362227494611 32.9720881415012741
-36274 -85.3755481655406214 33.1629796241839045
-35621 -86.7256224939179674 34.3504929292548482
-61345 -89.7898571535486525 41.2892584432477605
-64725 -94.3726580084178721 38.500666223512404
-10021 -73.9595366118299324 40.7693634343807716
-79367 -102.162948772727219 33.5757551115702597
-83138 -111.020964000000006 43.1795380000000009
-48455 -83.3077730519914468 42.9417206058465055
-68248 -97.4628452499999867 41.8335604999999973
-61285 -90.0726185280746137 41.9828487877005188
-13024 -76.6430733750000002 42.8597740000000016
-81302 -107.867821653631268 37.3929543184357271
-32730 -81.3427623029476194 28.6517529492358989
-59530 -110.685177782258037 48.5581578991935245
-54861 -90.6381583999999663 46.5855882749999921
-93908 -121.677792670939937 36.5841472663775633
-18349 -75.3735222344827918 41.1009664034482611
-78082 -98.5761498749999703 28.6075408928571377
-36345 -85.3164644894931712 31.366790948800034
-43143 -83.2452852504963658 39.7003877969871652
-99031 -117.377296241464876 47.4437793090054427
-21649 -75.7754395270412857 39.1425137661717741
-48873 -84.8458888613091204 42.9963411283214825
-42235 -87.6777020000000107 36.9158062000000058
-89040 -114.450083305231573 36.542822907623318
-27823 -77.731095497901677 36.2090876619704076
-04468 -68.6926776649382589 44.9644436503240001
-49709 -84.1610575370782215 45.014607270115242
-31139 -82.7295464166666648 38.4979998333333313
-95823 -121.44301765438199 38.475693674892689
-95124 -121.921860623411277 37.2577901703945642
-18925 -75.0734571828424748 40.2892401460763239
-67459 -98.3007873100164176 38.5770889813741888
-64463 -94.5054294657647489 40.0634166576464565
-91770 -118.084174551876757 34.0657789845474568
-23501 -76.3120109999999983 36.9365044999999981
-70656 -92.9257217649373501 30.9241862088817392
-70122 -90.0644342726173761 30.0077655453556886
-97859 -118.462993329286618 45.5128970015174517
-53944 -89.8971750206677456 43.7078732050874308
-24445 -79.8734862230605103 37.9713764999999839
-53516 -89.8788792388707236 42.8038465856016259
-43659 -83.5353947777777677 41.6470287777777699
-07470 -74.2484278063354424 40.9493569807765851
-31550 -82.5916988950032049 31.1332418203668304
-50157 -92.5524830145338058 41.7410439943282086
-36143 -86.5295991666666708 33.0447922500000004
-20871 -77.2715243874035025 39.2484482788443074
-62465 -88.6216404753361786 39.3497064506726417
-13905 -75.9375206803676122 42.1439187036112344
-54400 -89.7394696363636371 44.7882157272727284
-85003 -112.078277340908926 33.4509528783422567
-85619 -110.748482441817416 32.4310586365322209
-70584 -92.0906879004955954 30.3928696023947467
-08039 -75.2663943942307725 39.6858758942307688
-84314 -112.097493894139063 41.6398758098085366
-61568 -89.4784334080003703 40.5064756700740034
-76828 -99.2659543891892184 32.0058812360360108
-45872 -83.6760135883437073 41.1845602589449697
-75102 -96.6402719406731592 32.0846098625213543
-98367 -122.656047571570483 47.4700258016422154
-80801 -103.081653188679326 39.7330766635220343
-13658 -75.2761832662226169 44.7356899420181335
-16341 -79.5724302820689786 41.5654247165517532
-93422 -120.683672082003142 35.4774741934564446
-25130 -81.8042159841268841 38.0451773654664862
-06410 -72.9040930818972441 41.5064397064595383
-30293 -84.6005862206414321 32.9747467702272559
-67004 -97.764719516230457 37.2778062544503328
-12131 -74.4671859831387479 42.4534062840466575
-11142 -87.3595103333333327 30.6077686666666686
-74360 -94.8329818910170417 36.9828221053352379
-45346 -84.7141603420043907 39.9820785814844797
-22939 -78.9706339447175196 38.1006482366712689
-26587 -80.2955521955923359 39.5318951404958838
-51054 -96.3450726788453693 42.3979039590792723
-99961 -151.184371225806416 60.7191160645161361
-32203 -81.581922800000001 30.1809472000000021
-28562 -77.0958214902087917 35.0882650689946232
-36475 -87.2140537252215609 31.4058276065905488
-49666 -85.5177291328124625 44.6254538281250106
-95916 -121.392438142856747 39.6446915505951623
-87114 -106.69430085240748 35.1993247106764997
-84790 -113.565121017710453 37.0707549487447778
-63435 -91.5677325698110423 40.1511633047236387
-07543 -123.501800636363612 42.3561033636363575
-68786 -97.5385759114389543 42.5050094732472772
-80808 -104.318652689944059 38.9743069945190612
-66049 -95.3018437705269861 38.9740491666867044
-19081 -75.346499854462536 39.8967784883408996
-80428 -106.929328408787185 40.7724300785577114
-92179 -116.919288000000009 32.5692939999999993
-40077 -85.4424065603582648 38.4933209878755065
-49402 -86.0585322053458412 43.925399111098244
-98651 -121.562035866013048 45.7378134578794331
-72827 -93.6027710595492977 34.8783868540772346
-56132 -95.7540379830579838 44.2035408903007152
-16311 -80.0290430751095982 41.4619718174341969
-06855 -73.3979755006989905 41.1016173773584441
-15417 -79.9110115507463803 40.0175064601807051
-94945 -122.559652005302524 38.1137210450292585
-20770 -76.8817966310790695 38.9986553303596395
-94506 -121.912683813961763 37.8084508356484008
-50272 -93.2566604423077194 41.088285858974352
-17830 -76.7951611981388282 40.6856979475714553
-31904 -84.9816200026652524 32.5292550974258248
-06027 -72.901493490990859 42.0017538738738097
-23881 -76.9726047069413681 37.1838804850587863
-25182 -81.450352571428553 38.1587955714285698
-68875 -98.6903872717814039 41.4763754486345775
-29582 -78.6788254383857293 33.8247919443735867
-68944 -98.0952088411910808 40.6329897673697573
-64130 -94.5424643462641399 39.0346630862068622
-47263 -85.3296225118483704 39.3089123649289505
-49764 -84.8254142406015177 45.4228587368420946
-72860 -93.413046884279467 34.9468730796943277
-93955 -121.830739926183753 36.617481269143326
-60091 -87.7270541910441182 42.0766404580562039
-04932 -69.1307288816259984 44.6941239011381839
-75691 -94.5688489487014579 32.3114712831168589
-67148 -102.620297999999991 41.4981340000000003
-94306 -122.129819796387949 37.4170471858915761
-64072 -94.2914272561576752 39.2393873448275912
-64771 -94.4444965243003907 37.7621243092783629
-60443 -87.7430096321505175 41.509018738284702
-70586 -92.3073513825254253 30.7177946080570088
-64050 -94.4107981356064982 39.0999669985986529
-32001 -89.1063606666666601 35.7501126666666664
-92660 -117.875855432182888 33.6317759776001353
-78944 -96.4910241007120533 29.9996817629704751
-98547 -124.085168950598828 46.7784673113772911
-47118 -86.4839727690526843 38.3028466545600708
-19526 -75.9805975283102413 40.5377758328893378
-93740 -119.742536159090889 36.8137221363636442
-70772 -91.4612391367521127 30.4410397863248008
-04976 -69.6828093313158519 44.7845751294374566
-53718 -89.2781223881171542 43.0926864839248012
-93421 -120.567011857142845 35.039351428571436
-61421 -89.5965594548542725 41.1824242704948205
-46040 -85.8634473791877468 39.9371577134236446
-87538 -105.567788723097081 35.4804540826771273
-28089 -81.6598785591397558 35.3199538924731229
-96125 -120.637865390206329 39.5792694824742313
-10310 -74.1159723832257669 40.6319019354838105
-78223 -98.4231744839422049 29.3458834465403982
-04564 -69.4649748786659131 43.939218866589961
-64653 -93.1864763452021236 39.893502584188397
-74072 -95.6125115758466819 36.9904049764359542
-70651 -92.9424356203554396 30.5346962439418448
-71459 -93.2121486037013369 31.0703787517550154
-73568 -98.2358483468327535 34.2703915711319524
-22989 -78.1224253312101098 38.2923812802547801
-61333 -88.8886860753055572 40.9906668787286179
-27583 -78.9408619137943504 36.2893506013100478
-90741 -118.074821499999999 33.7211844999999997
-69030 -101.924488524046382 40.1374241359867057
-90306 -118.343824833333343 33.9564503333333363
-60104 -87.8774390448821947 41.8827756293042626
-55038 -93.0003013417433948 45.1612792757483348
-40242 -85.5907888366447622 38.2785883949226431
-29378 -81.9701042205882544 34.9683203529411699
-62449 -87.9020090957403823 39.009019914274397
-41016 -84.5458701191398205 39.088118556536152
-79915 -106.370672291772323 31.7446382120209485
-26149 -80.8893147452469492 39.474329969805396
-80003 -105.063670924489259 39.8271172805445914
-32961 -80.5045120833332817 27.6335961089743343
-30575 -83.718686728747528 34.2009492271252071
-29915 -80.8549431727924031 32.1230486272076448
-29045 -80.8109113363629916 34.1745266328187753
-48075 -83.2253490078773694 42.4635621555070131
-23625 -82.9825078571428634 29.2051990000000004
-73933 -102.511721833886952 36.7304469401993217
-99104 -117.164086999999995 47.0889965000000004
-19044 -75.1502888123357309 40.1839652490337684
-78405 -97.4402596625438946 27.7700521853658486
-95313 -121.050753285844706 37.420533856621006
-66415 -96.1304367205100476 39.7075053028692864
-19358 -75.7943201527272663 39.9588760072727425
-61955 -87.588718113821102 39.5800351869918856
-87518 -106.530367403846157 36.5255096826923094
-11229 -73.9421134986908299 40.5992963842125363
-54220 -87.7000249761916137 44.0984970462366377
-28308 -79.0131993415637623 35.1717518189300407
-95492 -122.807294431588886 38.5423006844571248
-96145 -120.142816344082675 39.1671537472895892
-18410 -75.6810318750000164 41.4746597946428395
-26886 -79.4679212857142829 38.849922969387741
-28211 -80.7951866348999914 35.1686363670660143
-62358 -91.259402595003607 40.5898793314566717
-80498 -106.129399624294493 39.7048117310853712
-12045 -73.7942951836158301 42.4738879858756917
-22741 -77.8652211584301739 38.4379982078488354
-72729 -94.4689925490076234 35.7963636526053861
-30276 -84.58400035021468 33.2773256883260657
-42742 -85.4636174399038282 37.0754252403845754
-64048 -94.3543444299603493 39.4473168173189492
-24313 -80.8041595526429717 36.9048194546626362
-60554 -88.4330651017829439 41.7779513472015225
-49710 -84.1798727920722456 46.2696534721836628
-72099 -92.1439999265232501 34.8984751487455114
-84035 -109.367170861673344 40.3652078130903789
-61750 -88.852845084507095 40.123474147887336
-26033 -80.581786591461352 39.8380448563220639
-62355 -90.7700642466188015 39.4456549610183629
-41183 -82.7377252012072546 38.5509854014084397
-72129 -92.5469760029096449 34.3195770543161345
-91108 -118.114761482410614 34.1220483379446904
-24874 -81.5302898163374294 37.5980630480513085
-02562 -70.5329045878671792 41.7922108592870671
-11427 -73.7477595000000008 40.7309387857142795
-35653 -87.8189697308243638 34.5185443632220625
-47521 -86.7413746823385594 38.3884203851185291
-59731 -112.788306527082369 46.5755755867091494
-29425 -79.9482465510204037 32.7845809591836854
-26375 -80.5755547333333197 39.2809141999999909
-68654 -97.7868146926752217 41.0738710907643565
-14821 -77.2207439430739981 42.2321621370018221
-66338 -92.4906224615384502 38.5740878461538443
-43050 -82.486022383168077 40.3819393077704589
-85476 -112.660135172413774 37.5203574827586195
-30248 -84.1116345859337002 33.355900575044096
-42419 -87.5968708823529454 37.8011463529411742
-77573 -95.0906943686572106 29.5013180461292599
-84083 -114.024199507653037 40.6339784438776306
-94454 -120.22448134615388 34.937438307692311
-90631 -117.952547504065947 33.9389749032085604
-20032 -77.0015485359140541 38.8346478389965029
-99777 -152.037449150000015 65.1822885499999956
-46155 -85.429651566666692 39.7436002222222342
-33566 -82.1266230761630851 27.9910284464133774
-49281 -84.3759728297872726 42.0384405673758792
-98371 -122.320318885777212 47.1970975501092624
-27370 -79.9897777706923705 35.8327963291614253
-88414 -104.005332208333371 36.741242216666663
-74021 -95.8359155955305653 36.3561975924021823
-53204 -87.9265747176524712 43.0170935218394774
-51530 -95.4327624385507391 41.7878500926410226
-43603 -83.4946805000000012 41.6456179999999989
-36608 -88.2093560002751929 30.6917202883595941
-42409 -87.6990577286352107 37.5329199849192534
-58792 -100.804134864190374 48.0537568682530392
-50477 -93.3206774830370307 42.9856842180937022
-38871 -89.2011889419850377 34.328062682251975
-62411 -88.7322984496545644 39.0595329386834678
-48684 -85.6793604999999872 44.7018025000000065
-50142 -92.7766905152776928 42.006344311111107
-54744 -91.8217701458333408 45.2907341458333406
-38001 -89.1461935645210843 35.8051509526402256
-17776 -77.3265861058842745 41.3875151361115741
-10986 -73.9893250687950399 41.2624078093525526
-77562 -95.0504377704343426 29.8223998548074221
-38225 -88.682398854095851 36.3123335026131073
-33174 -80.3571275039595037 25.7628733294267178
-63041 -90.7919690331263212 38.2543065217390463
-86028 -109.804047521739136 35.0411850869565171
-72227 -92.3737190409969173 34.7748960441127437
-15429 -79.9343736938775464 40.0085878367346908
-27922 -76.8609915163298894 36.329962764385634
-54755 -91.6675080773572546 44.5693214189722653
-47320 -85.2570776877999066 40.2902290367608202
-82051 -105.777116992725908 41.6444803858677375
-41064 -84.058367138056397 38.517506256862994
-34746 -81.4562331812339124 28.2617210065490738
-15228 -80.0438839349074414 40.3719777476536024
-39082 -90.12320120309424 31.952366225477288
-93032 -119.199650500000004 34.4717399999999969
-04769 -67.9967663503076807 46.6823227798597955
-67103 -97.5462720291262144 37.2651946388349415
-98516 -122.784548594283507 47.0929333819746816
-87711 -105.131794870604693 35.2075431167370283
-25813 -81.1154208813085518 37.762662930175253
-93673 -119.483460476780095 36.4536653126935093
-41838 -82.7538759967399216 37.1854125085574836
-30349 -84.5286162952623812 33.6214717172957549
-40824 -83.3756020310262613 36.8372898186157158
-02892 -71.6004068387719457 41.5057701631570595
-53086 -88.2750663245713696 43.3288174314286252
-25825 -81.092094868236174 37.6559532324650874
-58472 -98.6413530932767344 46.6531185066626719
-95043 -121.058975221450154 36.5549140891731099
-25503 -82.1195042486589983 38.6014229053640534
-50251 -92.8650198452286588 41.5657244840951492
-05839 -72.2136874710723475 44.6808138381545419
-23326 -76.2395204999999834 36.7739084999999974
-01507 -71.9654572117302962 42.1341897733240884
-48757 -83.688541262098596 43.4594805426123685
-63920 -90.717400000000012 38.1823923333333326
-28563 -77.0387869999999992 35.1043243333333308
-98568 -123.278616335712371 46.8402087145208768
-24962 -80.720213061032851 37.6702651737089482
-90029 -118.293710986634395 34.0897083450790106
-55968 -92.0807294666666678 44.4006337600000194
-08902 -74.4846182806635966 40.449464499319923
-44814 -82.4749164886751913 41.3243450940117043
-70657 -93.1640343490263518 30.4665210714813526
-02034 -70.853932400000005 42.2526434666666617
-73559 -98.9212822484661984 34.7229818527607179
-02507 -81.4461514545454435 38.4384401818181729
-76485 -97.8634276666666807 32.870402242424241
-88257 -104.38140566666668 32.5144811666666698
-61840 -88.3059020133962633 40.2975764783293755
-68746 -98.4308223298508835 42.8132765208955632
-83455 -111.114372785714721 43.619000675167122
-75610 -96.233016117647054 32.8173983529411828
-33960 -81.4043927774219043 27.0878268298639071
-97459 -124.203371254176687 43.4570522036813287
-75680 -94.7128132702702885 32.0026846486486534
-40160 -85.9413338992442419 37.8221250582473658
-20119 -77.6367461255178313 38.6363007166149757
-52747 -90.9214410548230063 41.6221384031922241
-18461 -75.3388295134044199 41.9349007825928126
-39342 -88.6485890981817448 32.4235810845454253
-71067 -93.520598475257998 32.582389668209359
-13368 -75.3341014851949637 43.6395189584415846
-18064 -75.3233284526967282 40.7564294463420111
-30127 -84.6944031640691435 33.8766112466301124
-14219 -78.8223255486059742 42.7895350679055397
-72830 -93.4886942919986552 35.5147594840086995
-81646 -108.041114087967614 39.1683311041455937
-10924 -74.3296384317409036 41.3864492723086173
-49623 -85.6742361941086301 43.8956369457022646
-64102 -94.6036945905171933 39.0952945862069043
-35559 -87.7376391428571623 33.9071793684210547
-27864 -77.6435684340714261 35.8032323106412633
-45671 -83.2429353761823023 38.9670656380051739
-60963 -87.6436593794607575 40.3677250560816105
-46231 -86.3235279279528527 39.7388476002770332
-08807 -74.6286093241786261 40.5960350356825046
-17060 -77.8901878955006879 40.4790626600144563
-22844 -78.6600118115110121 38.6585341611944528
-93442 -120.837533602018055 35.3837633588990386
-55816 -92.14094750000001 46.7685010000000005
-65040 -92.3165193720736994 38.3693656438187887
-58504 -100.695225253580446 46.7580110220255278
-63440 -91.7377414844814041 39.9812774477667361
-72680 -92.3219803225444622 35.8864042501403588
-40046 -85.1633171722917837 38.023310585439134
-29438 -80.3131577459518979 32.538634305527566
-84539 -110.392151368663548 39.5514849585253572
-65567 -92.5449102066684759 37.8636764131001442
-11545 -73.5971417762267635 40.8283277257307375
-28542 -77.3760588571428656 34.7092005714285747
-16694 -78.1380315978836251 40.1670533280423214
-52566 -92.498646524590157 41.1406833770492
-48027 -82.6870803124470228 42.9479656147332207
-87821 -108.041075562223753 34.0693915723310354
-17507 -76.3600250806451726 40.2059605806451614
-65279 -92.5200165069215075 38.9972153152744241
-28338 -79.751482037015009 35.0928073823283952
-79963 -97.4842046142856731 28.8563269285714306
-47922 -87.3673491910427487 40.8687287143218398
-50104 -92.3836007841727138 41.4881512374100865
-34267 -81.9457646774193478 27.0862837903225859
-59933 -114.769645160714262 48.6811820357142508
-51453 -94.5413406219843324 42.2672500150804353
-10010 -73.9837534307036577 40.7393512899787567
-44119 -81.5478843273138665 41.5868080194130982
-92526 -117.095829499999994 33.7681764999999956
-70714 -91.1380742522284635 30.5829955650140768
-10019 -73.9857348030534041 40.7652483648855224
-27412 -79.8017587049180293 36.0868782213114585
-96786 -158.034907203424495 21.5000852034240104
-28723 -83.1678529649222895 35.2462406844412186
-05448 -72.8759719036672635 44.7559614850845264
-62920 -89.2417607870302305 37.5457939815817241
-54486 -89.0626115308370032 44.735423766519844
-61615 -89.6390907562147703 40.7742968381170456
-06751 -73.2108374751092441 41.6378750159768458
-71118 -93.7998260872392677 32.3957741121472438
-48143 -83.842098486486492 42.4574030945946106
-25422 -78.3518409935366975 39.5635481995532885
-21612 -76.264559058350045 38.7591141016096614
-06740 -73.3618991904761941 41.4024715714285705
-41727 -83.3045061700507432 37.3607102179568287
-77359 -95.3131896265734753 30.7417143286713319
-67448 -97.4193714275137239 38.6525034870917494
-12032 -74.4997590056599392 43.1545599115669418
-66868 -95.9933860510947312 38.5455148925385629
-07840 -74.8305666435622925 40.8561418769659781
-04787 -67.9379317628781507 46.5592872224039098
-40171 -86.4416820436111379 37.9609052119358026
-20622 -76.832745379424523 38.4635504553956977
-68114 -96.0533154288723097 41.2639155112799543
-53151 -88.0931030660020724 42.9768401333511534
-65564 -91.9644145807085778 37.2394180748031545
-18845 -76.1768910222222786 41.7871561286549635
-64446 -95.3945139580513484 40.3194564381114304
-08204 -74.9248017102821962 38.9717405307846434
-52554 -92.24228067598564 40.9213696333333559
-20682 -76.8476552916666549 38.2847229166666665
-81058 -103.876378066509119 38.095480701692253
-38469 -87.4203414734561761 35.0700315757871763
-45142 -83.7998773598203144 39.2070116427694799
-75560 -94.3553719762408605 33.1810777550158562
-31729 -84.3478585438596724 30.7293334210526368
-76566 -97.9874938484042701 31.5009447371454456
-89439 -120.003452749787286 39.5188204042552513
-66601 -95.7454721666666728 39.0596178333333341
-96028 -121.49020778203797 41.0527699283246506
-38758 -90.494743333333318 34.0773213333333373
-80434 -106.30333281976749 40.8822022906976983
-43506 -84.5606699401116373 41.4712023283743036
-35490 -87.2369340232466897 33.2139654488441138
-22820 -79.0322765847221831 38.7380469861111152
-93723 -119.93572814564078 36.797519590307239
-67673 -98.7883384848484667 39.1241374011543712
-93013 -119.511697701754784 34.4020132053005554
-69165 -101.19657714839073 41.2362772933636421
-00690 -67.0976033810263601 18.4927216438568998
-17048 -76.7271880241538469 40.6064150399189145
-11568 -73.6030047427560703 40.7848973802120796
-05487 -73.0205369580570789 44.2348867435344886
-46534 -86.6104376570105501 41.2763205696203599
-59347 -106.375781258557822 46.2829813073561738
-76226 -97.1529592123953876 33.1073412514334393
-96052 -122.824762705108014 40.7184397296660094
-49272 -84.3446045719557418 42.389645079704863
-76455 -98.3683624583800906 31.8206113624487479
-85030 -112.147131000000002 33.8833424999999977
-31076 -84.1225027570039856 32.5498432832178537
-26602 -80.6686495000000008 38.5363613333333319
-17749 -76.8195977902097411 41.0725630000000095
-42338 -86.7677257359999174 37.5613803080000039
-59461 -111.22423641666667 48.4624659444444461
-06320 -72.104455913392755 41.3478973747450098
-68932 -98.723227652234641 40.3457709092178902
-32681 -82.1871700967741816 29.4257201797234984
-47983 -86.7725433826715005 40.2854041155235052
-68837 -99.0453339319726922 41.6679249455782283
-37722 -83.2377488527317126 35.8240921459291144
-78236 -98.6176334350453203 29.3848870876132828
-66779 -94.9738168721461875 37.8469732180365099
-67024 -96.4921421841529963 37.1030513612021764
-64483 -94.8338050879828103 40.0449071294707295
-99345 -119.759041934782502 45.9027650507246108
-24834 -81.6449543626168577 37.5609587551401987
-28227 -80.6685767483828045 35.1891028863995601
-85609 -110.056741429319345 32.0408683186237511
-04082 -70.4807466000000034 43.8374043999999969
-49635 -86.2060888152618219 44.6312072015971921
-62515 -89.3864486513091236 39.8625003258203634
-37074 -86.14503716687463 36.4205595472936565
-89727 -118.836749076923084 38.9850221538461525
-66076 -95.4399742436593215 38.6283953958378419
-29202 -81.034812707317073 34.0115039878048648
-80474 -105.500842375469389 39.9177758235294107
-67650 -100.08215861864403 39.3244518474576239
-20754 -76.6506325003512501 38.7398501503020611
-77838 -96.7727403846153607 30.6045298461538451
-24808 -81.4089997622601658 37.3352252611940045
-66653 -95.6696693333333315 39.059429333333334
-77871 -96.146674423468383 31.0575444895752462
-21775 -77.2936559999999986 39.5657393999999982
-57346 -99.4536168679245378 44.2440633018867828
-71040 -93.0164145276786485 32.7769383722391083
-89103 -115.21985717240581 36.1141858308848569
-14225 -78.7606634973970472 42.9293215608219683
-78074 -98.8062938934426143 29.9454658360655692
-95427 -123.571930803703594 39.254460131481558
-71423 -92.5443475232300727 31.5347102252488263
-83335 -114.071180873585902 42.5702319279390693
-71444 -92.9017511388888835 31.1611195833333277
-95556 -123.56136242606884 41.2959161391030563
-58740 -101.452585913782386 48.5607106864927118
-53825 -90.5801462999995692 42.9180135301333721
-20674 -76.4938323417719914 38.1329414371957256
-64001 -93.5385165328718529 39.0995596678200457
-82410 -108.107010326343442 44.3775385792922847
-80007 -105.18283716649718 39.8305937070543266
-30297 -84.3660519210821178 33.6147333416056568
-23947 -78.4638992954927801 37.0519934858482571
-40510 -84.60014625704612 38.060507104471931
-48145 -83.4440298452721692 41.8481017879656321
-03285 -71.6361218941895288 43.8960936299695206
-72774 -94.2039454683057755 35.8918616439202367
-37201 -86.778316346444754 36.1660419909228139
-01730 -71.2764608050945583 42.4955721739353578
-20120 -77.4567562495269897 38.8512137579656667
-69544 -88.1420474615384535 41.6326584615384618
-87113 -106.589700273415687 35.1771892512772411
-81153 -105.409504818181816 37.1847670000000079
-83639 -116.830984162045411 43.5362370805891743
-59083 -107.541176276595777 46.6831827234042436
-85542 -110.432429583514036 33.2978946420824258
-72319 -89.9199952727272915 35.9608035454545458
-95947 -120.883281192156474 40.1330826657755253
-01984 -70.890867829512473 42.6020198876331619
-65079 -92.746830888006059 38.1548655930348062
-51566 -95.2284399214430692 41.0128472259182217
-23137 -79.5990052500000047 37.0145967500000026
-42444 -87.644684704081655 37.6397597142857236
-07757 -74.018377720670486 40.3145518579410194
-37179 -86.8946451572492009 35.7997959168945528
-91977 -116.995566694522651 32.7264916937179322
-29384 -82.0904975001862738 34.3301856667597036
-58771 -101.910923345249685 48.0720155675807987
-37330 -86.1338025836322458 35.2775754659759215
-80111 -104.880190469682731 39.6113009626770989
-58565 -101.371417134090905 47.4981287772727256
-96749 -155.006095740350787 19.590242491228075
-42324 -87.0076848749239673 37.1466476897389057
-35117 -86.87372866980688 33.6684106632849449
-44445 -80.6201803918988986 40.8472645489563533
-21162 -76.4145455306844212 39.3926274284027897
-48002 -82.9173175106676439 42.9359158472126552
-45102 -84.2149601451218928 39.0266660022973326
-99765 -158.11064038461538 64.7306035769230732
-61459 -90.4019911908472693 40.5025170160661503
-13488 -74.7590152010220805 42.6863260988074842
-19601 -75.938896622490617 40.3500561190085634
-15564 -78.8782102514285555 39.7349793200000079
-81227 -106.290985591836716 38.5511484489796104
-02563 -70.4742720998896459 41.7156035014061288
-99165 -117.136316000000008 46.7318998333333298
-78932 -96.6963008609736647 30.1500739566831939
-33593 -82.2076967916666632 28.4370787916666679
-40914 -83.5748803669106906 37.1115343305860534
-15698 -79.6860883877551771 40.215306089795952
-04292 -70.442618927408887 44.3740789442003987
-14747 -79.0948559116364862 42.1554384315495341
-31521 -81.5831117826086967 31.2267118695652179
-37183 -86.2941470031438769 35.5080430984459383
-22643 -78.0015506865942712 38.9023797744566124
-51360 -95.109344220497249 43.4325651200519118
-70550 -92.183834439490397 30.5197472165605035
-45656 -82.5964387234736108 38.879658606813237
-57793 -103.591740704674834 44.4839777848081184
-17935 -76.2821230094877478 40.7937898434534745
-07421 -74.3652351357671648 41.1682094820058566
-99727 -161.128449657142909 65.975254514285723
-36916 -88.058025157399328 32.2068685329341591
-92069 -117.158865837240285 33.1597855676700917
-85333 -113.450452656742598 32.87992205954464
-97343 -123.758640086255923 44.5982603278591938
-80026 -105.104877972627207 40.00156295366493
-45066 -84.2210547868380388 39.559763492426498
-15434 -79.8742820636704209 40.0797936404494308
-78016 -98.9141754325231801 29.1645109950431944
-80230 -104.896126744057923 39.7215535157046702
-98582 -122.633746144284842 46.5196113360400005
-64442 -94.0040231622265736 40.4895828637011945
-03071 -71.8671570760953102 42.7505060549577323
-62060 -90.1546415751120378 38.680590126681615
-68440 -97.0129109790475468 40.0451564019047765
-44710 -81.4173436518469629 40.7911554599862924
-76940 -100.134532957317077 31.4504932317072914
-56068 -93.7960394470757421 43.857496908651548
-48076 -83.231488978652834 42.4977207812861693
-42437 -87.9253242118796976 37.6573917028751737
-20860 -77.033485791436533 39.1486356491712257
-65668 -93.3124036124138883 37.9316767503448133
-87314 -108.013669857142872 36.4434478571428571
-60080 -87.8484729999999985 42.3125239999999962
-02553 -70.6174457382919769 41.7089221184573518
-23128 -76.4330033452767594 37.4528922003257634
-23015 -77.6330609353492918 37.9299367977841726
-47025 -84.8650019958280808 39.1633598762594346
-52722 -90.4839648170977853 41.5571402509491179
-50501 -94.1810167602577195 42.5028874609841694
-47928 -87.4809477711063721 39.950767846069887
-22898 -78.1243596428571578 38.2884994642857137
-11957 -72.2808996541916571 41.147490579341337
-57330 -98.1731454837240989 43.2898979609019818
-25147 -81.2566247777777875 38.1250040740740701
-32353 -84.480449764705881 30.6069716323529306
-10543 -73.734074112325743 40.9520517344666786
-75760 -94.8494410374006378 31.8095161639592412
-79359 -102.557454078516727 32.9453948767720632
-20645 -76.9179459241773316 38.3030894892704197
-68769 -97.7999454659475163 42.3450811409305032
-95836 -121.524575200000015 38.7156379111111093
-74740 -94.6392331944444862 33.8052298230994026
-76270 -97.7731785928333892 33.4461724891390872
-78123 -98.0377323535823706 29.6038619470405422
-57220 -96.9100792486654541 44.4622404541813907
-77592 -94.8950844999999958 29.3868085000000008
-34242 -82.5487257828902301 27.270569351495034
-78535 -97.7326170125000289 26.249203231249993
-45725 -81.9726864615384443 39.2483228846153835
-08739 -74.0591707333333318 40.0276818000000034
-77333 -95.7817994358974261 30.3564767435897558
-61920 -88.1740603792467539 39.4796949472758527
-78483 -98.5302133749999882 27.4462749999999964
-33458 -80.1226649295904281 26.9273465810488339
-01840 -71.1615261168830386 42.7079650111317548
-74553 -95.9098021426954119 34.7083456002265009
-36767 -87.2153148427093754 32.266666814090712
-65597 -92.5573462727272585 37.9533974545454598
-35571 -87.9407835886257772 34.3407143640114967
-99624 -153.987370526315772 57.533724421052618
-32352 -84.5857200515385017 30.6467796492450262
-65301 -93.221307891661283 38.70670896313014
-38117 -89.9043236373533148 35.115880367470794
-92356 -116.91497362438173 34.4390549643218549
-62839 -88.4937730693663269 38.6653287949769435
-62624 -90.3562245195196567 40.150921513513552
-17306 -77.2557306710526603 39.984492894736853
-45251 -84.5910746108413889 39.2582614862053916
-17259 -80.1799804000000051 41.6222764000000041
-18320 -75.2862104871795026 41.0545794102564017
-70256 -100.8563616 33.8991925999999921
-93667 -119.403829617311175 36.9861796831790031
-89436 -119.704626257776013 39.6028375691154721
-13637 -75.8332939555452725 44.0801381810265767
-37088 -86.311677538461538 36.1715105384615399
-62723 -89.2260065833333442 40.2726224166666711
-91042 -118.284422255960081 34.2552262098105018
-53004 -87.851092921916532 43.4962803315587507
-98332 -122.597522848941267 47.3658327404357635
-32336 -83.848959545980108 30.3529349584250454
-27861 -77.3176081428571393 35.8190360439560465
-79065 -100.958545761240003 35.5457892814141019
-21128 -76.4470771884999749 39.4043774904999964
-49840 -86.0243082082093196 46.0270809726353889
-29925 -80.7663907098765463 32.1974882901234523
-22520 -76.7745457682378003 38.1221164389029141
-89044 -115.103540531432358 35.9396380675909342
-82535 -106.755544999999984 41.241141571428571
-06105 -72.7035627302968095 41.7713365598770565
-17068 -77.175197168025619 40.4064046649677238
-31055 -82.8986237477968047 32.0114518429238473
-64356 -103.473328749999993 41.8170319999999975
-18902 -75.0950068016890953 40.3486828442693124
-56016 -93.3387159887483193 43.7622160506328939
-48467 -83.000353576513362 44.0240130453412348
-28872 -82.824978999999999 35.141689999999997
-61340 -89.2446316686746144 41.2631515481927593
-20250 -77.0272379000000029 38.8875573499999874
-16137 -80.2373355211359041 41.234066360288125
-51552 -95.1024348973384406 41.4990400773130617
-35353 -85.417371799999998 31.4095729000000006
-89012 -115.058520938490332 36.0151276353334211
-94517 -121.913196656857096 37.9264772628394624
-11914 -72.3839984285714308 41.1048079999999985
-29741 -80.1971222225454028 34.7243431483636655
-84712 -111.978357869409663 38.1415788765653048
-15492 -79.7658616779660861 40.1218061610169414
-38859 -88.3847226450333778 34.5233210072847925
-02021 -71.1290112355967921 42.1689263034235466
-49834 -87.8396143636363576 45.9617258181818258
-05732 -73.2026973627530566 43.6639829000000503
-46991 -85.5078619097296126 40.6255733853178995
-34759 -81.4833815460780642 28.0981350561998866
-12874 -73.5114138449197725 43.6899859331551212
-25425 -77.7859630027181055 39.2802999042154539
-15949 -79.1340393828124746 40.4021790781250161
-24484 -79.7910278001718467 38.1203038528147928
-28160 -81.9251221002284922 35.3589080280142483
-46371 -86.6015678750619031 41.6849344530240629
-79510 -99.5286530550444866 32.3312951270523641
-76685 -97.0267961374999857 31.3411661124999981
-62264 -89.8977059390537363 38.3173288544572159
-47016 -84.8990120835633348 39.3736417158061798
-09717 -66.6169020000000103 18.0077229999999986
-82645 -70.0119645000000048 41.7168879999999973
-87061 -106.318859434724004 34.7212878573351702
-06069 -73.4526327395300456 41.857801251270871
-70537 -92.5709271299143381 30.2607419675213656
-24224 -82.2892214644309092 36.8620051626405285
-91046 -118.24071450000001 34.2117977500000023
-54634 -90.4242835077989184 43.546928624164444
-71855 -93.7505623952118299 33.8607425752948927
-43068 -82.7913498185315007 39.9566061458055799
-86301 -112.441429357312032 34.574726154126374
-30519 -83.9371291270029189 34.0897620463688966
-73550 -99.9131231002677964 34.6908642598930612
-95666 -120.519445471601983 38.4713155606776454
-22942 -78.1918325708082733 38.1112182764366665
-79069 -100.273752749999986 35.4475890000000007
-78146 -97.8119804799636228 28.6112774162113013
-48189 -83.7890075173153264 42.4245637911378921
-15007 -79.9329353661971851 40.6517689464788958
-80446 -105.922037785051359 40.097368900699486
-15351 -79.926018748743715 39.8788374145728923
-20388 -76.9961179999999956 38.8728064999999958
-41099 -84.4655595000000119 39.0355840000000001
-75252 -96.7962655634410538 32.998329634412741
-65250 -92.8284219033136395 39.0491801420789315
-80209 -104.964641077363098 39.7063316750735567
-24522 -78.794243661791711 37.3630940461165508
-59105 -108.468230571256555 45.8386457369087665
-56720 -96.8938460888888926 48.5722101555555525
-01057 -72.3250962416830561 42.0949813511879469
-59936 -114.00851093865856 48.5133271323919217
-98034 -122.205038959738175 47.7192395435659122
-71340 -91.8308333631394618 31.7852167075360938
-50231 -93.6019500304878136 42.2381640182926503
-84353 -105.208940600000005 34.6039141999999984
-65475 -92.0360973999999885 37.8582933999999938
-78551 -97.7169739999999933 26.2409758750000002
-75021 -96.4972672133032887 33.730211278836741
-82324 -106.414218777227731 41.6760557673267016
-10471 -73.9044559820392664 40.9004016309386031
-28638 -81.4792656838961733 35.8414198207350267
-61525 -89.6452576516993247 40.8403819693666321
-20715 -76.7429287094301316 38.9804510733254261
-25685 -82.3592353749999972 37.7957313437499991
-97070 -122.767242515311011 45.3055774370655513
-27533 -77.9684482244898049 35.3542016258503295
-19551 -76.1439876668298155 40.3576009838394185
-46161 -85.6966020328613638 39.6744149914505968
-10468 -73.8998251030149902 40.8671646541038385
-00659 -66.7938469104156383 18.4659064796399264
-47921 -87.3732985669432338 40.491027302725044
-23915 -78.2833884953757746 36.706376076011658
-04039 -70.346203218998582 43.8843800484120976
-76539 -97.963618679061625 31.0807887802250278
-47459 -86.7348163794906952 39.1010725345089938
-21029 -76.9433290281137232 39.201715644669882
-62325 -91.1627352310557768 40.0443392447205113
-62946 -88.5376884765535266 37.7165173234786693
-68844 -99.0435458713178463 41.0461152372093281
-26543 -80.0088770514706482 39.6595918308823485
-44138 -81.9188182633593698 41.3708057811973049
-31090 -83.0743226406151507 32.807678431045538
-37869 -83.2422827321038596 36.5130452219203008
-84501 -110.798880599422716 39.578101793937833
-59045 -111.302895500000005 47.4862524999999991
-07945 -74.6008848045993318 40.7840392132478797
-19446 -75.2939918803024 40.2362627249445453
-99689 -139.728583354375928 59.5474543744619922
-01235 -73.0796018195073742 42.4323751835092153
-41631 -82.6536547308411826 37.4667521757009894
-49667 -84.9394232720587326 44.345354260746646
-03280 -72.0847131799141465 43.1665234970633236
-49748 -85.1803785417544361 46.3568593164912883
-11697 -73.9137177029411987 40.560310632352909
-93543 -117.94765559896156 34.5189159961819527
-46106 -86.193951993352087 39.5240683769321208
-57529 -99.5739731509663386 43.2030380012077231
-53192 -88.1833332325581125 42.5119643023255946
-30334 -84.3890252127659721 33.7472246808510761
-57428 -99.6818774970762718 45.4533719532163545
-47106 -85.9155512600024593 38.4530741775216711
-65330 -92.9665598738937149 39.2125635464601672
-88411 -103.195310842794754 35.158877539738036
-67870 -101.00416090246533 37.4870876827438124
-53130 -88.050350740495503 42.9413741062787295
-62087 -90.0597127026209705 38.8276365100806302
-66621 -95.7018882999999789 39.0332713000000027
-54440 -89.3869406296983442 44.8007948098499895
-82836 -107.319167730346535 44.8701648081149784
-95247 -120.448214250734608 38.1474325567469563
-16058 -79.6173512608695688 41.1827341304347812
-27993 -75.6865913999999975 35.2229010000000002
-35502 -87.3010826984127135 33.830727857142854
-38105 -90.0359186353442027 35.1515356890951836
-48741 -83.1760229377962617 43.4024220811611272
-28403 -77.881435406706828 34.2220287396957232
-70340 -91.0884075662650616 29.7818139397590542
-95736 -120.970578434645574 39.0383954015747818
-38120 -89.8626811850053286 35.1208533506863603
-87532 -106.052352735464254 35.991387391632621
-15315 -79.9769214561403601 39.7723119005847892
-68655 -98.2531902619046775 41.6527811761904658
-14024 -78.2488353274597159 42.5760304519824331
-78829 -99.6277803930014159 28.9508149636608216
-00647 -66.9394941235954661 17.9616191878009772
-64037 -93.7292687818072778 39.0543115634142382
-78115 -98.0494702499999988 29.548030875000002
-87665 -105.597696999999997 36.7225454999999954
-42732 -86.1074349474902192 37.6086992045045037
-02143 -71.1014209616612192 42.3825172900957838
-78567 -97.7454832989690203 26.0509064329896809
-92518 -117.274624426691616 33.8862386879699358
-67010 -96.9828607979126502 37.6796284364553884
-54125 -88.4075469861386125 45.5958567366336425
-69301 -102.883627304729202 42.1457715667781443
-60523 -87.9585893187493042 41.8355917943607309
-62902 -89.1516872075470559 37.6725165828237039
-75551 -94.1879981675203624 33.1200037698485517
-83720 -116.163961833333346 43.6028553333333306
-32535 -87.3365931314468469 30.9681241288950488
-42757 -85.7245548336466072 37.4058667037236958
-58012 -97.1929449934114729 46.9136099443631025
-35774 -86.236722174496677 34.7451693456375637
-62557 -89.09455377470168 39.3952917361213437
-24173 -80.0646983333333395 37.3133589166666724
-07607 -74.0628499624776566 40.9034250035735454
-97497 -123.391630160062064 42.6632608421135231
-38359 -88.3718881827008147 35.3696801897617519
-47421 -86.4739027540378942 38.8702587200706873
-32259 -81.5966706926154188 30.0892041203871834
-01778 -71.3569791496630899 42.353109014253647
-42716 -85.6333439148615554 37.4822675163515271
-48230 -82.9217614193548087 42.3834450215054588
-04929 -69.3129444719471621 44.7720650220022378
-63879 -89.8179447690802846 36.347696258317022
-34461 -82.4820756105658432 28.8463233717949024
-63066 -90.8217981333333739 38.318288966666664
-28034 -81.1801010271366152 35.3461348317642461
-62871 -88.2693381998022772 37.8759942735352055
-99714 -146.935631456866474 64.4769884837408824
-31625 -83.5260915903209735 31.0017412285577088
-53561 -89.6303777003969202 43.3722030912698386
-19468 -75.5331675242560863 40.2055207343876475
-61241 -90.325480981211399 41.4835803793724125
-40953 -83.8175391789473423 36.9366650429149956
-02381 -71.6848304999999897 43.1476213749999928
-68949 -99.3740238120300461 40.4422765480129272
-03819 -71.1205362141033817 42.927380907483851
-98921 -120.314603312499997 46.4291856562500058
-43356 -83.0480062561099146 40.4655250254583478
-66603 -95.6759215817942845 39.0557562889181824
-80013 -104.776529129073779 39.6586687083610059
-21035 -76.6315805648467716 38.9382470979315585
-47250 -85.3528895769269269 38.8000492884950887
-02827 -71.7286824713684155 41.6957579699474081
-24106 -111.857006124999998 40.7187121250000033
-50154 -93.3929753348923413 42.1644757913938122
-01970 -70.9029720323480035 42.5125331603020058
-38743 -91.0524478750000128 33.0079147499999976
-29624 -82.6420902385599021 34.4641467801006627
-06878 -73.5820016723008479 41.035673471493574
-60557 -88.7709552474226626 41.4396418762886753
-57317 -98.970555871770344 43.1187533703348578
-78635 -98.5537929887279063 30.2239600917874327
-98394 -122.776783555396079 47.325960062082288
-04226 -70.7187864666667139 44.6237620051282136
-52584 -92.2540316584507138 40.6620628943662155
-02382 -70.9389778676595597 42.0809638896811009
-10953 -74.0751302579617601 41.4078176496814976
-62934 -88.3648248435467565 37.7134410205996602
-00958 -66.1951193333333094 18.3408442380952401
-43743 -85.5761093333333491 37.2041510000000031
-25526 -81.989481073646914 38.4346980426519593
-18467 -75.1280542500000053 41.6904076249999989
-16648 -78.359333004315161 40.4406923183578968
-45041 -84.6939098796296008 39.2201255648148219
-15449 -79.7857382878787718 39.9687163257575904
-57644 -102.166213865016786 45.4709094814398327
-83674 -115.696815000000001 43.1065569999999951
-56536 -96.5348009193011052 47.0487690049916196
-93003 -119.220341702645698 34.2721677218690246
-35975 -86.0423198858306364 34.4431525847773727
-70812 -91.1177012141455265 30.5049798189726857
-18831 -76.6050774117005346 41.8919579840116185
-60463 -87.7928227910782795 41.6625102267655691
-25921 -81.2575824079540467 37.7057548318983322
-55366 -94.2298077403846293 44.671162429487218
-86004 -111.542250579527931 35.232235909841215
-33547 -82.1782009554530077 27.838370341031041
-92222 -114.567811128205136 32.7864579871794888
-81251 -106.334108355712601 39.0890115877503135
-64085 -93.972681420149371 39.3183612718386826
-00705 -66.2702996560789757 18.1384014545454733
-67132 -96.6343755393586292 37.8012213542274225
-83712 -116.161918313480626 43.6051711481401369
-68950 -98.6528338306556378 40.4267138758141442
-84718 -112.054928602150554 37.5667543870967719
-52627 -91.3418477360589094 40.6478227351273489
-29151 -80.4045358750000076 33.9289890000000014
-60541 -88.5368937728027134 41.5282941827898355
-57452 -99.8624501356413816 45.5423936606130937
-93402 -120.829605962978917 35.3107045657447074
-23577 -87.3060890000000001 30.7228264999999965
-30350 -84.3269523690719893 33.9768092299417859
-18519 -75.6246860383481021 41.4627257564264795
-76657 -97.3755269537721944 31.4514737788547372
-24084 -80.7335352511128121 37.1075122637564476
-87543 -105.689749419014049 36.1483637640844933
-12487 -73.9979709138643926 41.86034395870211
-55655 -89.7295773333333386 44.7884526666666645
-52336 -91.4401028771187043 42.0598838290960373
-89410 -119.672466257672411 38.8860014883228047
-71838 -93.8056184669008815 33.6680087887057411
-06778 -73.1065532215161795 41.7118269110304496
-30750 -85.3863699945682413 34.9406267923230516
-64064 -94.3574170711166289 38.9915317469833056
-24265 -82.9501963078445783 36.8353554916799411
-03608 -72.412273458291736 43.0728336254569442
-29439 -79.9376600473783867 32.6592609210359583
-55708 -92.3374768282442204 47.547828068702259
-91737 -117.580067104825986 34.1490273356101426
-40045 -85.3568257020149446 38.6938051971523365
-56734 -96.6586066684635483 48.7382033773585235
-23442 -75.5711230575758037 37.8998344436363297
-08759 -74.3263545672743504 39.9811519868817484
-87585 -106.044031833333349 35.6336623333333335
-23102 -77.8388374234224898 37.7132959657064362
-50622 -92.3498913817596616 42.6736620664527777
-58428 -99.7796688593668648 46.8201387820360253
-43147 -82.7596966629308497 39.9058463640370036
-53948 -90.0742877159482873 43.7956245711207828
-51057 -96.1969071999999983 42.8950360000000046
-21643 -75.8713167332228835 38.6484581701777046
-28522 -77.3958799999999911 35.115089250000004
-71913 -93.101382255817839 34.4659696011320094
-66014 -94.9757294866893886 38.2259088614334033
-05866 -72.1297994104918416 44.6259743637158195
-95344 -120.311199423076914 37.3375908076923082
-44012 -82.0060102695719166 41.4958122539683885
-99251 -117.415671250000003 47.7511365000000012
-45663 -83.0689782212657377 38.7511262160569103
-99608 -154.435790432432441 57.5636159189189129
-42372 -87.2730741682204609 37.4160342188056916
-48178 -83.6596477562602416 42.4586723024330865
-96059 -121.835423056698787 40.439844496569151
-44412 -81.030377155339778 41.0959850828976698
-30817 -82.4396010746827557 33.7739534476687382
-02150 -71.033767291666706 42.3970449787297454
-29355 -81.723433786075077 34.3731317214934364
-53933 -88.9113534646302384 43.5627766077170762
-82925 -109.99893627648477 43.1220420497591519
-11962 -72.2704553446567104 40.9364110184005838
-58756 -101.793427842632397 47.9880270457795817
-94403 -122.300850558027705 37.5374834407672822
-45856 -83.9968303782442547 41.1115128056116674
-71334 -91.5547474064016882 31.6503286164358038
-28323 -78.8502116717432955 35.3090681552564902
-32926 -80.791248487772819 28.3897308853712538
-67519 -99.099720967654946 37.9489399811320922
-20165 -77.3851746357251784 39.0458261559573643
-71611 -92.0144688181817969 34.3531660000000016
-60623 -87.7180860040994759 41.8494721245486261
-21156 -76.399139159259164 39.4363405333333219
-86444 -114.071145685379051 35.9749316098495058
-66710 -95.6515968318583845 37.5412333525074047
-35918 -81.1026045454545539 37.7061805454545436
-87743 -104.224760196288941 35.9131718535156423
-06457 -72.6626569097060013 41.5500096386965296
-28753 -82.6850547255417609 35.8385400170330968
-97489 -122.629636269922997 44.1298492583548025
-70548 -92.3069439218905075 29.9808418649646526
-22483 -79.0435186666666709 38.2947683333333302
-31252 -81.4945605555555517 31.2383983333333326
-62891 -89.0405975735849609 38.0157598037735909
-15684 -79.5161891753623991 40.4626116391304009
-71633 -91.582046599999984 34.1225850000000008
-62809 -88.3571224834123115 38.3021065687203759
-97060 -122.388125908102467 45.5258777800613643
-80541 -105.463509968512014 40.5579650711021529
-48021 -82.945917940783275 42.4651686714422638
-84111 -111.883853433826928 40.7545774656797235
-50316 -93.5990293151459127 41.6077608102854839
-83843 -116.969498413762338 46.7346834001171771
-89086 -115.122415050139224 36.2798416657381679
-19301 -75.4801446302111145 40.0473582788306501
-62926 -89.1447983934319979 37.3790046461356482
-14724 -79.6755099356807364 42.0548981540811511
-43219 -82.930730819792231 40.0082820015308798
-72412 -90.6788487611045895 36.1231929195678845
-56013 -94.0991620008602325 43.6283356690009896
-33544 -82.3669064749905999 28.2365532595093462
-85632 -109.129494313981624 31.9215960429405072
-34447 -82.5102363529411775 28.7727797352941188
-61330 -89.2828287857517608 41.5414438242535411
-86516 -85.8340201999999977 31.1259969999999946
-67837 -100.630216234031238 37.5759851298980294
-71433 -92.6502550923280097 31.0164764161477926
-23040 -78.2530180662375017 37.5038674161162078
-30610 -83.208029499999995 33.9274575000000027
-48146 -83.1811298138842119 42.2431437924895334
-08007 -75.0560642949878343 39.865383419884985
-16731 -78.3722097984899193 41.9472171644644902
-05076 -72.2319982085855656 44.1327863189394662
-61774 -89.2078450000000913 40.4319703954469389
-97203 -122.737100171787915 45.5898674155930053
-61032 -89.6424328813762514 42.3037282477494898
-85327 -111.935771823404352 33.8112868510638407
-34250 -82.586669594339611 27.5725521811320711
-33524 -82.1512716333333515 28.1823012333333303
-70658 -93.0464073054137657 30.5195719339462492
-79002 -100.730879538461537 35.2084852692307706
-26151 -81.1466384957215894 38.8634537490017706
-86503 -109.610454606194708 36.2150535884955644
-59078 -109.479559872222197 46.3262671515873805
-76604 -94.7046574999999962 38.3887725000000017
-57368 -98.4642715155817427 43.732766829373567
-83876 -116.907535491750778 47.4580702524561318
-95688 -121.997933330027564 38.3914822514184877
-03570 -71.1711018162901183 44.4840774645334918
-33189 -80.3444600902869439 25.5746088688741757
-23225 -77.506810361618534 37.5207445717497947
-97842 -116.80784991568494 45.4662042585245345
-16838 -78.6303206029283359 40.9800096303187615
-15674 -79.4962860581395176 40.2093299302325491
-66514 -96.8825471977954322 39.1210278714022976
-14843 -77.6490000466801291 42.3255877917035974
-15006 -79.8784871574074486 40.63232672222221
-95563 -123.536629162072416 40.8806828076075561
-48168 -83.4987377896166834 42.4083960343275592
-59842 -115.407930042253582 47.3990504366197385
-23422 -75.8213113245901411 37.6354415836065641
-12936 -73.3952185914084794 44.2814227397603091
-77834 -96.2500315999999856 30.3150168000000022
-54017 -92.5401445216648426 45.11940231015938
-71354 -91.766838725290043 31.4348073150812333
-94037 -122.506395506310312 37.5415132769116227
-54450 -89.0417442670454733 45.0059784147727271
-94589 -122.246713103319905 38.1461343335555654
-18824 -75.7942993108311498 41.7070278302266431
-79430 -101.901831000000001 33.592209666666669
-31626 -83.8000918665845091 30.793730174300638
-41536 -82.1216519999999974 37.4712703333333437
-57733 -96.9131110000000007 48.6418689999999998
-85757 -111.102037896254259 32.1331036688223293
-72927 -93.9756407323381069 35.1013453943685505
-25749 -78.178607999999997 35.9456786666666659
-41174 -83.0238048955123844 38.6963077444741614
-12791 -74.8875231192843103 41.8069923399602033
-98075 -122.029057364213372 47.5863389009236784
-24856 -81.7179835641025676 37.2586205897435931
-32426 -85.3719365182828369 30.9499565975760902
-79908 -106.386162470238148 31.8249570654761946
-79021 -101.995665756302486 33.9836836218487406
-37507 -83.759529999999998 36.3069449999999989
-20198 -77.7646646206660677 38.8875538101017781
-22935 -78.5515603035994445 38.2528915964675846
-31463 -82.6745294999999913 30.9929600000000036
-21601 -76.0781428426191155 38.7761750038511153
-85283 -111.92846285299963 33.3647849786635149
-92536 -116.822944770734949 33.4930931649467425
-20842 -77.4106152328285759 39.2200995678055477
-07934 -74.6700539017013227 40.7246466493383963
-33146 -80.2719553144010121 25.7198788556796423
-47340 -85.1304021830693642 40.176053898467913
-03596 -70.8407158928571477 45.0028824999999983
-33778 -82.7969824121963711 27.8819352072274889
-15953 -78.8978616019900869 40.2114444726368134
-19472 -75.5677621818181962 40.3385612207792192
-98357 -124.619321164313746 48.355952111834867
-87432 -105.968960249999995 36.0000630000000044
-14624 -77.7336668902630095 43.1239700703301736
-15074 -80.2473687951005701 40.7177471503767734
-05079 -72.3260180509244606 43.9574311279598859
-33330 -80.3157163213561773 26.0633619449067631
-29152 -80.4796286162679593 33.9848670832535689
-08736 -74.0661763685383647 40.1199564161398499
-84150 -111.616248727272705 40.8384926363636396
-21225 -76.6146015331731434 39.228356306195046
-37033 -87.5151395035259299 35.7606258247795878
-42035 -88.8285785217780557 36.9002029746665983
-38224 -88.4826975976051813 36.3825906399874555
-75163 -96.1101850811468523 32.1962396386258618
-48506 -83.6365773841845481 43.0566735503400082
-28813 -82.7690805714285744 35.4292841428571492
-16115 -80.4538009457481422 40.7968450688984205
-68634 -97.4951017297297966 41.387335117117118
-37809 -83.028364793663286 36.1579509052649541
-56033 -93.9249298418646532 43.565661998171862
-10178 -73.9782884999999908 40.7511109999999945
-79582 -98.5027925714285715 26.5215570000000014
-21227 -76.6785781769727777 39.2424451737831532
-38765 -90.8676404594594516 33.2483923243243282
-07306 -74.065888254655718 40.7332026266781568
-13081 -76.6363601081608152 42.6683833885200485
-12506 -73.6911121999999921 41.8759844000000001
-24246 -82.7437390043668017 36.865400218340632
-87435 -104.665876333333344 34.9109626666666699
-18636 -76.0720181848851809 41.3986216257310105
-76234 -97.546434635174208 33.245405596024888
-77539 -95.0405377242096421 29.4639677523603503
-68351 -97.4477175215190243 40.6508277620253082
-62027 -90.5497082130435302 39.2826361826086909
-40176 -86.3440897760395529 37.9316405317002037
-60540 -88.1501238051082225 41.7623583741523063
-64485 -94.8326572249814745 39.9430185970655671
-24279 -82.6072514330614212 37.1037525676357021
-29470 -80.2262792270356329 32.7991931237945522
-29204 -80.9998499974609985 34.0276193987978601
-62035 -90.2260241107781695 38.9524292085914681
-40981 -83.4979183229571902 37.26972757587545
-32951 -80.5290364419933269 28.0021793111110213
-50575 -94.6926268176033687 42.5591456698480002
-43536 -84.6350869623250901 41.3051208449945833
-29580 -79.5583337973066733 33.6647678845116758
-47660 -87.337749714196562 38.3123203635418506
-77073 -95.4028432642281246 29.9966592528457312
-54769 -92.2619344999999953 44.4833882499999973
-01864 -71.0854188920403942 42.5824881662269945
-59000 -108.204383084010843 46.641982478319818
-07649 -74.0335177196341192 40.9545798798433225
-26605 -80.6788170000000093 38.3416375000000045
-77031 -95.5414631550563058 29.6556144692134787
-86442 -114.453575260320861 35.0273933853863468
-45160 -84.1365461556017493 39.1235958672199473
-16428 -79.8305766494821967 42.1927847223674135
-86440 -114.583130250000067 34.8929081547474951
-55797 -92.3859026372817453 46.5702702987450365
-22473 -76.3944762022455564 37.8873144780943818
-96819 -157.881048903975142 21.3448390012504738
-54956 -88.4974355355255113 44.1835312246549847
-60606 -87.6365224825073597 41.8810944125364273
-79104 -101.791766908935571 35.1995748230012708
-91361 -118.851055200960303 34.1449978618395704
-50532 -94.0018541208792016 42.4602351312576403
-03087 -71.3031083523322025 42.8075967928602594
-18348 -75.5296683601895609 41.0950548767772545
-38390 -88.3751189120140737 35.8405788043370137
-89949 -117.232006124999998 38.0622908750000022
-98650 -121.514389771288151 45.9803370839225636
-47581 -86.7756445951975905 38.6577272604363955
-32071 -82.9347131315945063 30.0388513962740689
-32113 -82.1035374719247244 29.392361387230018
-37881 -83.3498030718036489 36.3973272726953923
-78725 -97.6127629160803281 30.241493154304333
-07857 -74.7015599722862618 40.897924980369524
-66756 -94.6401909323509898 37.550166074346933
-57216 -96.493436143489447 45.2958563900126023
-13492 -75.3146573562736705 43.1157379956113971
-75007 -96.893334976612465 33.0060610780543087
-60163 -87.9112156704022141 41.8868460896506178
-61755 -89.3397430643212971 40.5356349772906626
-10982 -74.0992889999999989 41.1087773333333359
-17920 -76.3380006829269036 40.8137292737127382
-04648 -67.5754935929857794 44.6539120710659958
-55703 -92.7524038562578141 47.7499464850061841
-16322 -79.3746286384778159 41.6077071797039935
-27110 -80.2234450833333312 36.0883095833333343
-37357 -85.9249435256053573 35.6102748967447766
-01746 -71.4410870344520106 42.1990188250803584
-81430 -108.018170425153727 38.0292845268349282
-75104 -96.9551606101538397 32.5860643681232744
-14210 -78.8270743762638233 42.8644335160438956
-05452 -73.0825131836404722 44.5067548623970666
-48180 -83.2663312738487065 42.2301865628632314
-54874 -91.9300062152560145 46.5805660500464711
-38050 -89.2243801793611482 35.8191454398034139
-36327 -85.3267540769230806 31.6757192307692321
-39193 -90.0721787586206943 32.2371720344827537
-59411 -113.369407575342265 48.8961142365296837
-91010 -117.965368676225097 34.1373029715151475
-27568 -78.244175686371122 35.5097973924466146
-35670 -86.7284478475928893 34.4674662798695053
-68859 -98.7944312690354991 41.4921029746193071
-93518 -118.45406086165849 35.3934843520145748
-67454 -98.1383718145639818 38.7098786943268891
-74333 -95.0836659816156526 36.7965896545961115
-97113 -123.050529225884233 45.5070125472501488
-42219 -86.7809251333333265 37.1711588666666657
-13834 -74.9630779999999675 42.5387712545454519
-58769 -102.255469565485342 48.3595953127889189
-30275 -84.8706689999999639 33.4321275416666666
-46823 -86.7289715000000001 40.5943380000000005
-40161 -86.3969082645577942 38.0004877534148306
-00978 -65.9859715000000051 18.3627694999999989
-76992 -97.4211695000000049 32.0296689999999984
-12035 -74.3602714902596347 42.7277545075757246
-15464 -79.4438173404620898 39.9341320648499405
-34140 -81.6474040273972435 25.9249286164383506
-17740 -77.2593691543112158 41.2221340686067563
-32430 -85.2152370469511453 30.4515295213414667
-67127 -99.4881509042552068 37.2067634326241432
-11040 -73.6793791883158775 40.746150115848323
-15639 -79.5958783025071881 40.2084217085901869
-01529 -71.578983643755663 42.0359380741239477
-15238 -79.8800877087098513 40.5310256056139977
-26175 -80.9611039109424411 39.5425880324464885
-24312 -80.8586572653983779 36.8320939395826841
-74076 -97.129414666666662 36.1448836666666651
-93615 -119.288227667463374 36.5126145360414185
-02420 -71.2180793323610573 42.4563101134721776
-96093 -122.928757911543826 40.7312652551052565
-89061 -115.92600276315342 36.1239446954305023
-25143 -81.8242212962041293 38.4201410824671541
-40840 -83.4201321608442612 36.9398258580785992
-32163 -81.9883947511914073 28.845523880690255
-61729 -89.222094298701407 40.6266074523809166
-30345 -84.2834449746973888 33.8506526387502333
-57029 -97.3779612989153236 43.2869744776216265
-37331 -84.5369522008007692 35.3226087453451569
-80902 -104.803459779560811 38.7444237457770768
-48729 -83.182041644746306 43.4948961644031229
-53171 -87.8840837681159286 42.6165809855072482
-72461 -90.2912597198398572 36.2709990944270757
-46995 -86.21575693333331 40.4422654666666617
-63125 -90.2974636247382278 38.5205700138900795
-76248 -97.2377457853169034 32.9229048177073764
-59467 -112.303660910471251 48.0707324198038179
-78263 -98.3131219181088483 29.3608110755593685
-26419 -80.6526307481031779 39.5686265159331896
-60031 -87.9500967544832406 42.3737127031492591
-95352 -121.016689500000012 37.6288205000000033
-12087 -73.894828722769077 42.4281914584615052
-97490 -123.60305920815739 44.0315018152836615
-44010 -80.8616023798508365 41.7619736238806141
-54613 -89.9121971368874995 44.0554156372478261
-85391 -110.798567333333338 34.3297970000000063
-41859 -82.7835918227147118 37.3974873144044082
-75608 -94.6246026818181605 32.3711445454545412
-35909 -86.0195038999999895 34.0740813000000031
-67067 -97.274834947925001 37.7943942001626922
-48209 -83.1130886199844952 42.3074601070602085
-16847 -78.1605782741312396 40.9970370714286148
-12454 -74.1712535372196982 42.2853966017937211
-23963 -78.8085985662921189 37.1931144949437993
-93643 -119.509066839584477 37.2258285814646825
-32738 -81.1913775570780274 28.9084917341918377
-79423 -101.874827634423752 33.4894390259344732
-43337 -83.2516975730824242 40.6823145045826209
-54616 -91.2285237536496254 44.2936506441605502
-34499 -81.9681630000000041 28.9707739999999987
-14882 -76.5457712732285103 42.5673173086614796
-73758 -98.0470582878788406 36.9544023131313395
-95735 -120.138646001818231 38.8049077163636653
-04432 -68.6623831363636157 44.5616317727272744
-21788 -77.4116817729059221 39.600517481992938
-95466 -123.500036881589779 39.1047381954582747
-06823 -73.321716500000008 41.2050964999999962
-41549 -82.6038666851851673 37.2925212592592601
-39127 -90.5647625625000074 32.0771595625000003
-71038 -93.0974558388556801 32.9375910781973147
-16151 -80.2069787397260399 41.4444481369863098
-57036 -97.1442608273694077 43.2723367870378155
-92102 -117.120212233907679 32.715221641772537
-04955 -70.0094061700049224 44.6363721275631988
-46360 -86.8685987444803089 41.7063665834263446
-46527 -85.8183346666666722 41.5601960833333379
-63687 -90.4904702857142951 38.0136419999999973
-83438 -111.760344333333322 43.9567333333333394
-02129 -71.0640964461654363 42.378491684926253
-43901 -80.8637463769144205 40.2152391542855909
-15641 -79.5920893351548386 40.62725234061935
-42256 -86.9588054715279668 37.0138883135911314
-97420 -124.20559796047398 43.3485580658653973
-35594 -87.8025360488401674 33.9105161697795481
-72658 -92.2819278537436247 36.1944998229745067
-47633 -87.7793151616627938 38.1587144801385065
-58327 -98.5591334425919001 48.0877553432731091
-54875 -91.5763298000000106 45.9259303999999986
-49029 -85.0883491603426734 42.1387424449204815
-07062 -74.4038009927227506 40.6311217992295113
-15904 -78.8588209152564161 40.2931525483989503
-82694 -106.373976499999998 42.8453224999999946
-80729 -104.172912311781758 40.8678261446360267
-29040 -80.4569017093023717 34.0280971817684588
-65681 -93.4644931022148597 36.5599165632966745
-79111 -101.675449264184337 35.2274390797872314
-47382 -84.9180207857143046 40.2360495595238206
-36885 -85.2615185151515078 33.0330284242424241
-60614 -87.6521085326646698 41.9224724138097287
-43151 -83.4760769262294957 39.7328267745901726
-55422 -93.3400753701032073 45.0102175462887715
-68350 -97.0836974686940835 40.0553864812164591
-71016 -93.1151480351260972 32.2160368765627823
-23919 -78.1073263181775275 36.5792272679283812
-60550 -88.8709099121288517 41.7709376943069799
-68459 -97.2734978333333515 40.6811713333333387
-28501 -77.5476886260918832 35.2730416227894921
-20794 -76.7913886260094074 39.1521928917739146
-49066 -85.3498229260699333 42.0326296666667218
-79233 -100.442087256830547 34.5445710874316845
-43964 -80.6525721503973898 40.4731953524946846
-15825 -79.0574821428352834 41.1651067487088582
-38935 -90.1951285833333287 33.4989257291666647
-69169 -101.170580851480906 40.7937995283101671
-15725 -79.3436274987608812 40.5189929649938918
-77029 -95.2615914346257995 29.7614793440035896
-78753 -97.6753710398018455 30.3738517645965906
-97850 -118.094441001620325 45.326660458247467
-41274 -82.8096811927601237 37.8671692859728068
-74946 -94.4467214999999811 35.3944841979166611
-27884 -77.2700043542354962 35.7067496875687169
-29943 -81.1415120057552599 32.4995642028776857
-36528 -88.1189517289820969 30.2538988313053139
-58750 -101.381543393816415 48.6302913049276455
-30638 -83.4343036060605954 33.744594515151519
-77305 -95.4671212500000053 30.3362410000000011
-53221 -87.9467298839173566 42.9531835507131419
-72390 -90.6578359803605309 34.5468587830632643
-32054 -82.3971992160530249 30.0161194802665925
-49344 -85.5681288274816154 42.5945034980494697
-11701 -73.4135179155285158 40.6861243975626152
-32648 -83.2729178442804852 29.4913912258302098
-32330 -84.7428294121306322 30.5733145598756231
-04442 -69.6202422903929801 45.4721820524017275
-56733 -96.8990362510822365 48.6410053549782901
-64655 -93.2195395629369727 40.4517753461538874
-70357 -90.2465646038068314 29.3296716664714339
-95319 -120.903033625592386 37.6385402701421867
-95635 -120.905235381385282 38.9114436396056789
-61349 -89.4441564698039286 41.5464735903267623
-79516 -100.885793099999987 32.5637499999999989
-54028 -92.2840794407802605 44.951973713475212
-32187 -81.5801165824743606 29.598070669458739
-12028 -73.4434038580247091 42.9434466651234175
-18414 -75.7390533737719238 41.5357730768751168
-69123 -100.373056057314002 41.0226257573688997
-83717 -115.836726499999997 43.7455867500000011
-40310 -84.7562745706213576 37.7895030875706155
-55944 -92.7375986593452666 44.0094114094575843
-12110 -73.7677923022175577 42.7489136871320241
-57295 -96.5167288333333317 44.9342861666666735
-63857 -90.0470110789558618 36.2383548534147124
-32609 -82.301499443077347 29.7247766336470463
-91780 -118.055053646704593 34.1006965318267632
-49087 -85.6700809067052234 42.1168446831876082
-28803 -82.5142832529201939 35.5334496365078749
-71242 -91.411727935483853 32.7975366774193589
-74533 -96.2027229803406527 34.2212306264744299
-42485 -87.4401057000000037 37.8217069999999964
-73034 -97.4393240637096909 35.6940839571127313
-86437 -113.632681391304388 35.4105364565217329
-29074 -80.8032977449920793 34.4500364197138822
-24540 -79.412075492772658 36.6343819755972504
-34137 -81.3609788577586244 25.9586533275862266
-25690 -82.1114596666666756 37.7027558620689689
-64783 -94.1080758069216614 38.0089160455373332
-15143 -80.1489879951260207 40.569939182489378
-79093 -101.032535978494607 36.2758539032258085
-19533 -75.9923244222868277 40.4260677761040625
-57639 -100.805606043269194 45.6703849615384314
-92401 -117.290970637472256 34.1049579290465843
-72675 -92.7640686214971737 36.0387606460918803
-29571 -79.3926645037676337 34.1582363879864133
-46249 -86.0089277272727344 39.8617403636363576
-39542 -88.6487100909090771 30.7752048484848473
-45768 -81.2589080101991499 39.4119197000971226
-93544 -117.772888209916417 34.4934755891348317
-84321 -111.834173586512605 41.7211466837685734
-35678 -87.7438259999999985 34.6897184999999979
-63541 -92.6277810092349085 40.5068902269129438
-14479 -78.3014850155038857 43.2421462945736366
-54926 -89.0173944285714214 44.6155694285714262
-32215 -81.8899982857143129 30.2329247857142889
-48315 -82.9933448312544328 42.6643466504033668
-78861 -99.1166430002427745 29.397678067762282
-98077 -122.060339714633884 47.7505245414178177
-17366 -76.5613139656148434 39.9275142312763762
-79603 -99.8001417887906257 32.4498116175689049
-99663 -151.675470702414458 59.4556791667602624
-29702 -81.4931127241660391 35.1160655119285963
-95983 -120.754110715469466 40.0441309033149366
-64746 -94.4942607812800617 38.6213572627854802
-46911 -85.9379684783042848 40.6277960194513739
-66093 -95.5129948901098658 38.2160505481577388
-50638 -92.7866885471230631 42.3569665661842336
-53095 -88.1832675989861769 43.39830593020762
-77046 -95.4343258846153475 29.7318795769230739
-06267 -72.0142672727272668 41.9565756363636382
-42720 -85.4248979999999989 37.0946177142857181
-87002 -106.746473448821263 34.6412716867692083
-14886 -76.6857765855266251 42.5101426282896782
-81022 -104.398413538674205 38.1502785756215701
-67002 -97.1256640194173855 37.6914147179842161
-85232 -111.39011128981285 32.9890669613306002
-15748 -79.1192786318782169 40.5312542662103965
-17931 -76.2268001795264638 40.7841451715049885
-60954 -87.6310433915967337 41.1537114518207829
-74555 -95.9673576484917703 34.260561153132258
-93314 -119.181243685102302 35.3824235639725799
-25453 -81.9953919090909125 37.8280188181818247
-91023 -118.065743866666665 34.2265765333333292
-28902 -83.9509146483713806 35.0270513242408015
-92658 -117.929946799999996 33.6188484000000045
-74344 -94.7621822692248799 36.6000785692524317
-98683 -122.511135718772138 45.6038214781066529
-58017 -97.8185817173377075 46.0583013223088571
-31765 -84.0485822808963832 31.0833522471715185
-77459 -95.5414093010260643 29.5441245415705041
-56550 -96.7781349702233342 47.2670590446649967
-32629 -82.7236896666666723 29.2184203611111073
-14606 -77.6924976885986069 43.1692676866050249
-44240 -81.3509050595973946 41.1454563162359221
-62084 -90.0733763515483048 38.8418572422586621
-40819 -83.4645580060791161 36.8212433232016281
-10162 -73.9507184999999936 40.7696990000000028
-29934 -81.1165601334980408 32.6125645957972239
-23604 -76.5785015326340783 37.1537155909090586
-95988 -122.219711529517184 39.5240710958473613
-30274 -84.3993547670662565 33.5471118953500422
-74458 -95.5804848099173938 35.8957081198347367
-72716 -94.2409804285714472 36.3657147142857156
-63753 -90.1951053000000229 37.2345209999999938
-74856 -96.8005316256219146 34.3945575547263758
-75452 -96.2510971926006818 33.3915599115320845
-75340 -96.8368389999999977 33.1165419999999955
-67204 -97.3608764193729002 37.7579482007840213
-32612 -82.3650388805970124 29.6403009104477633
-94605 -122.154863756282467 37.7624401629280086
-92241 -116.394753552860863 33.9011848376373095
-17314 -76.3357485197405765 39.7570457092284997
-89015 -114.967832051782963 36.0350139508065013
-30467 -81.6338299641608245 32.7233827976515812
-67859 -100.737684802792401 37.2205404083769906
-77365 -95.2624084754195621 30.1057726142554962
-01719 -71.5159273404089078 42.4844970311845103
-37427 -89.7937445000000025 31.5383599999999973
-51060 -95.6962412995215601 42.0472313784689433
-38748 -90.8923720812868083 33.1721863192667072
-35660 -87.6967096098946115 34.7576199077499268
-60290 -87.6816555000000051 41.751852999999997
-16602 -78.3888210868119302 40.5037876230324656
-39160 -89.7416252797621041 32.9869532353479897
-27548 -78.2086186428571466 35.98915792857143
-44328 -81.5206516666666658 41.0758626666666657
-24430 -79.3620764387160023 38.077949342898826
-72554 -91.5743873124263814 36.4486989991951305
-60165 -87.881134903376136 41.9034699057042772
-46748 -85.1605164531512031 41.2404259983365975
-52175 -91.8186654080429037 42.9939303902305454
-86337 -113.022680157916696 35.283763426250033
-60608 -87.6698458960802327 41.8508831830534049
-55349 -94.066653213666271 45.056825311828014
-59106 -108.662005862133356 45.7775807265050503
-92281 -115.617655229074828 33.0390987973568215
-80218 -104.971879321039253 39.732120870429867
-30140 -85.225724357142866 33.9263504761904855
-72712 -94.2343973033825932 36.3655054523826706
-40402 -83.9745073894317358 37.2985771046249539
-98052 -122.120377314429732 47.6804727014125191
-36742 -87.7539017030332218 32.4410692435927857
-29374 -81.8579766621605813 34.7920329687314549
-54111 -88.4219434586846091 44.8259946736930246
-93653 -119.869988479417131 37.252137955830058
-78832 -100.386596113498513 29.3425539537599143
-62423 -87.5727759804575783 39.4575656806483295
-49119 -86.5489791923076552 41.8764472948717881
-38502 -85.535243692307688 36.2879163846153787
-34270 -82.5441011428571443 27.4030526785714308
-47942 -87.4478651989771123 40.694088178005039
-62094 -89.3530823107226695 39.2467581297393693
-02070 -71.3750374634146567 42.0292550487804775
-71064 -93.6783806823979006 32.910192967034682
-39204 -90.2296876199699938 32.2817175431728103
-60175 -88.3401451663640387 41.9309013545068865
-43511 -83.8299318702023015 41.26495460153523
-75148 -96.0173415718116701 32.1826781519292879
-52327 -91.5770925960870414 41.4850381542977544
-70583 -92.110401600399058 30.2529809711591007
-80742 -103.822299294262294 40.6982496508196405
-67217 -97.3599858728723717 37.6191286208431848
-56220 -96.2806716748274312 44.7280080841065768
-80640 -104.867347254113909 39.8933656768276563
-64471 -94.1887408454906421 40.2555850991736293
-17949 -76.2427731416666461 40.7939860666666689
-56475 -94.5287317464751595 46.0968053774942206
-71404 -92.7591049269853158 31.745704172611017
-73533 -97.9558491242490703 34.510334437469453
-75446 -95.90130146550257 33.6099853688868109
-21890 -75.6974863333333445 38.1538136666666645
-10511 -73.9409304569697383 41.2593549757575602
-85702 -111.220807999999991 32.0535212500000029
-95602 -121.088590505344754 38.9889475260646705
-75754 -95.6790161320529933 32.4184642638691045
-61550 -89.4551967819120506 40.6156336913795499
-79248 -100.296496777970987 34.0110447553856616
-78713 -97.8437950999999941 30.4665491499999987
-92620 -117.762409736464534 33.7121457463085079
-30456 -81.7912278326570146 32.9834967139959687
-03804 -70.7338537419354765 43.0776859032258059
-45169 -83.6523232672469703 39.5024952036168386
-85929 -109.9818556595269 34.1617803722917301
-16370 -79.4300035392781751 41.5669337388534217
-68882 -98.4012122196667889 41.3851248778747802
-58069 -97.8034865682703156 46.2384345162548343
-97103 -123.747197548458004 46.1581084379275168
-70544 -91.6670430101405884 29.904343891723812
-58495 -99.608161672357511 46.2648649671102277
-46635 -86.2120823830869938 41.7155414992359042
-10120 -73.9893329999999878 40.7503515000000007
-82637 -105.847673056607221 42.8361632017594829
-24902 -80.453050300000001 37.7791431499999959
-61475 -90.7444514202756665 40.5831854586614185
-16157 -80.3364273982544859 40.8866506948400854
-33018 -80.3521817357525521 25.9086353206232047
-66213 -94.70792638588172 38.8990311228069814
-52666 -91.2434381999999999 40.7497666000000009
-67628 -98.9789180540541196 39.6522525495495586
-98019 -121.942554635240171 47.7354915376094411
-48656 -84.4359801059330266 44.3544018119481862
-74023 -96.7546860760008229 35.9829513182280607
-48382 -83.5048167948514646 42.5922197911402378
-76690 -97.7864885168723106 32.095047431275681
-93665 -120.666101686666636 36.9712874866666823
-66464 -97.977831000000009 38.5998335999999966
-49095 -85.8790399012423507 41.8927006301241462
-24185 -80.2735357449629134 36.7984600321345781
-07922 -74.4328541738315153 40.6749513128970435
-27593 -78.357150741935456 35.5822241612903056
-58783 -100.733885838245641 48.9117945315789839
-01965 -70.8303732384615472 42.5604810538461678
-09656 -66.813421500000004 17.9963490000000021
-83655 -116.799405203124678 43.9508146353283067
-66113 -94.8228955849056803 39.057377754716974
-43410 -82.9719638528597585 41.299574330742189
-22946 -78.5629623881987982 37.8546489782608262
-72206 -92.2765202826067537 34.6459197456896959
-48749 -83.8971830558609355 44.0555632884614923
-39422 -89.2588061149531455 31.9611418321911067
-93545 -118.077591354687527 36.5880487445313136
-84526 -110.925771951668239 39.6884923105216956
-48644 -84.1681223125000031 44.482318124999999
-11941 -72.7256755889831368 40.8288631372881241
-22434 -81.1719703571428539 36.6469435000000061
-17720 -77.2204028613861198 41.1870964455445403
-04966 -70.3718020425531279 44.8419131479590973
-49903 -88.4071197631067918 46.2982594097086846
-43527 -84.1734030195217002 41.2514951312835549
-67071 -98.8452453842887167 37.2909806199575087
-13775 -75.1471219926162064 42.3339606083684146
-99585 -162.083748777777799 61.8789634444444445
-10911 -74.0630090833333128 41.277152895833332
-33901 -81.8728662279055897 26.6206586874633011
-79347 -102.821546769316228 34.1343768566050088
-13813 -75.546201306692808 42.1664388133857386
-98902 -120.532608435200899 46.5934685755710731
-07045 -74.3668330414913186 40.9070434105348824
-79073 -101.448767000000004 34.1244347499999989
-99577 -149.504103624853485 61.3086353720698227
-71758 -92.917700423811354 33.3142850298507369
-94066 -122.432451729331234 37.6251026610296222
-07011 -74.143514911388948 40.8791785218809807
-66549 -96.4417572737355187 39.4490370386579343
-14168 -78.9908892121212176 42.5187635353535498
-16941 -77.7562208859648933 41.9872092105263235
-17356 -76.5967647160291278 39.9047340561899233
-12553 -74.0626735683746915 41.4613653594075657
-67863 -101.209053144599338 38.5603039808362027
-18014 -75.4061519888002039 40.7610684601143589
-12808 -73.7592810979571567 43.7463073043478445
-81085 -105.008182000000005 37.5090294999999969
-64054 -94.4402892122388664 39.1103331287032532
-73557 -98.4980507161016874 34.7311784978813236
-14061 -79.087866428571445 42.5933522857142819
-21901 -75.956103878669964 39.5890189145281397
-08095 -74.8667666144578163 39.6573732168674695
-28754 -82.5199662678586634 35.8857840746369163
-50587 -94.4891230000000064 42.3395689999999973
-41425 -83.4272155133687789 37.887690817847627
-36202 -85.8303892499999961 33.6643019999999993
-67853 -100.508097362097018 37.8745276994463538
-93562 -117.392307324055764 35.7134950896840522
-47396 -85.503001579900058 40.1841602957694448
-67735 -101.73236517677141 39.349344489958348
-55302 -94.1214052964000416 45.2524883467998933
-77583 -95.4527804865125233 29.4239738110178664
-14586 -77.6857016299123018 43.0438467096624535
-32654 -82.0788863448275805 29.4587452413793045
-49205 -84.1895379999999989 42.0125485000000012
-20007 -77.0783241308335363 38.9154965294922306
-30711 -84.768531210697887 34.9282201249784379
-92599 -116.700276428571428 33.7528497142857162
-30639 -83.1435933809523817 34.2823450761904809
-68849 -99.1064639285714151 40.7006282142857074
-44624 -81.6661927011004991 40.6087579622861625
-16061 -79.8859343068859857 41.0005987520544934
-07657 -74.0017214677897925 40.8319071828543443
-38855 -88.4968119228300196 34.3281434818254354
-07405 -74.3759642273350465 40.9909026313964944
-75771 -95.4352950215927081 32.5234222475482113
-48807 -84.4041199602648788 43.1521699668874419
-12855 -73.7433242358491441 43.9806970843159419
-45710 -82.2201627804985691 39.2010942963880638
-72032 -92.3771520685828733 35.0807454050013234
-68940 -99.2496036618496191 40.5249408815029071
-31824 -84.538946079913714 32.0527252358530603
-63638 -90.9669725639796383 37.2279424249839934
-13060 -76.4222242236672145 43.0245061959253761
-74133 -95.8838118445417962 36.0384995982674994
-39479 -89.4651296331747119 31.5416931018288409
-19955 -75.6654265199999969 39.2274205800000004
-57647 -100.803025333333338 45.8186015833333329
-07006 -74.2744510427940128 40.8520908381549788
-73460 -96.6614674847187558 34.2526976399755014
-08821 -74.6863661386861537 40.5219166861313838
-16803 -77.8990118043797395 40.8052776910679
-18832 -76.5431597380368061 41.6999002011875461
-76017 -97.1658259338613419 32.6617059058513561
-60507 -88.3123755000000017 41.7559650000000033
-03886 -71.2612771663903999 43.8576056009280819
-16407 -79.6450267240636975 41.9178512478144825
-30356 -84.4602515714285715 34.6293629285714175
-81501 -108.549026000000751 39.0759975042712142
-27007 -80.590381383037041 36.3899783126148364
-25343 -114.065433249999998 43.3057340000000011
-97901 -117.066055404331863 43.696406548736455
-72733 -93.9061102222222246 36.4632248888888881
-24020 -79.9428379651162828 37.3575984651162969
-72823 -92.9222429612351419 35.2697975143188671
-47578 -87.1889110562674006 38.8991290440111399
-93563 -117.778533864563997 34.414275740259697
-65501 -91.575519101160836 37.4633032620232171
-48724 -83.9288556377953086 43.4589367913385942
-72015 -92.6042164161334824 34.553780108529736
-31606 -83.1930755172584497 30.7917302857375397
-29670 -82.7322602386188493 34.6432848068250081
-55155 -93.098863850746298 44.9524040000000014
-19012 -75.1058945907288802 40.0596686382726546
-66026 -94.8739814705881486 38.4081891836442537
-15450 -79.9714347300275676 40.0054873719008057
-46745 -85.0128565680573018 40.951626326590798
-48877 -84.8469639221051182 43.3988683415790177
-61871 -87.9728304746835477 40.1924958734177125
-62660 -90.2007481666666564 39.8545586666666622
-66940 -97.4626672910448093 39.7996170559701454
-84036 -111.280436032363411 40.6324457708580837
-56972 -94.3083629999999999 46.5990944999999996
-93386 -119.009953461538458 36.4030012307692346
-20128 -77.9690289384615483 38.7553652769230794
-73661 -99.0385536696165616 35.1712470058996729
-45879 -84.5600283159186574 41.127477409728499
-91733 -118.045363928114043 34.0531921734039216
-80645 -104.691094105912768 40.3226505721248358
-73731 -98.5794848171642002 36.6649953880597224
-78536 -98.4060192812500532 26.6749541988636416
-63122 -90.4147742587339707 38.5839375138629777
-51433 -94.8569180612461054 42.2895205570221577
-29506 -79.6969227948015373 34.2035271388889797
-80906 -104.833022869144344 38.7834963429445949
-48708 -83.8753216623128282 43.5810705178610931
-64445 -95.1292352884991033 40.5269995142948787
-96094 -122.390509537865626 41.4643755365385545
-12847 -74.4528885133014739 43.9673092738746192
-77353 -95.5939909803921353 30.3582848823529368
-76120 -97.1826767967363736 32.761718800106479
-33629 -82.5082234761903948 27.9211022743272181
-40371 -83.615191068772944 38.1037455553670839
-21717 -77.4325965538461389 39.3318663076923016
-48310 -83.06917752531578 42.5674295517577335
-56224 -95.0572344560359994 44.3743446833084576
-18627 -76.0224765555555706 41.3154727777777779
-35202 -86.9496069999999861 33.4354626249999995
-70113 -90.0839450844614191 29.9415680833784812
-49437 -86.3827784493036717 43.4424615958031595
-37684 -82.3733606666666702 36.309564166666668
-55107 -93.0864682578837801 44.9283847468316608
-32934 -80.6919673568218343 28.1501828320840417
-98375 -122.319712627607927 47.1048421062586584
-67855 -101.694861118253129 37.5579543189400979
-45068 -84.074822647776088 39.5310932929655365
-72352 -90.6445945227273029 34.7907962499999925
-70529 -92.1560356287741627 30.1979474399052492
-61273 -90.3954970545497645 41.3627624204990525
-65606 -91.4079589013062872 36.6966711161102879
-82007 -104.807628602643632 41.1080314711392631
-35550 -87.1678976292431145 33.7584818225408014
-45162 -84.0772486564625865 39.2664687482993955
-28634 -80.754873721806959 35.9679842526728493
-71336 -91.6195705297866567 32.0337810017160933
-58505 -100.794601200000017 46.8202535999999938
-32570 -87.0086200372302585 30.7425597754848177
-48223 -83.2467141632969145 42.3945175279300202
-28043 -81.8700141928412393 35.3135738312055523
-34482 -82.2548852474429566 29.2319718474425869
-95211 -121.311238203389806 37.9810098644067793
-94559 -122.287894263583127 38.288054802481021
-24440 -79.1547547476136515 37.9893468090960269
-21640 -75.8173512985994478 39.0717412655461516
-74738 -95.4918580200000093 33.929592126666698
-80618 -111.978404000000012 35.2435502499999984
-73006 -98.3668563656342627 34.8866399230769417
-66246 -93.8435520000000025 40.5741926666666686
-94949 -122.544071549925434 38.0629726920542524
-58271 -97.2581187116327186 48.8821666095794995
-29581 -79.1096200180085987 34.2071909337093274
-94303 -122.127473822815105 37.4485267574159622
-60034 -88.431237923614006 42.4654018999611651
-24352 -80.5355928172618434 36.7133083045637676
-39216 -90.1673869118135087 32.3371666626456147
-99353 -119.358987994342186 46.2928549311984625
-95689 -120.611643118285443 38.4734973090564836
-49812 -87.5509809697803263 45.5906578516483592
-32192 -82.1282295454545732 29.3527415714285738
-61067 -89.4763408800843365 42.3075716851332544
-78243 -98.5722812380952575 29.375660952380958
-57263 -97.0213207722328264 45.1292017594368744
-90806 -118.18696906232752 33.8032012724302717
-93066 -119.007939331057486 34.2862631737697541
-48629 -84.7459599828675323 44.3193279794126198
-44062 -81.0291053453689614 41.4584669746205137
-92250 -115.371181437752185 32.7969315177987184
-65737 -93.3701272132875033 36.6943405279535071
-07628 -73.9922258292681505 40.9452332277522046
-98223 -122.087122660352748 48.1913098813529572
-92644 -106.558968999999991 42.9226644999999962
-95641 -121.597514007908742 38.1653793361159757
-89135 -115.32939511285403 36.1269666493390744
-80917 -104.739587688237691 38.886314397488448
-60145 -88.7733834453355115 42.1025695584635145
-43324 -83.8273851740153475 40.4584160811375213
-77389 -95.5181317438213568 30.1177077609989858
-39934 -82.4704534000000109 28.999071800000003
-76866 -99.9279287670886589 31.4784833569619806
-77483 -95.8728449588235634 28.8027493882352843
-05841 -72.2972078268843035 44.5980461047964951
-99107 -118.142009133333346 48.717449533333351
-18377 -74.9507261249999885 41.3165499999999994
-39439 -89.0063508262962841 31.8601980824046933
-33409 -80.0966858420036374 26.7189508766859021
-40460 -84.2524353380155873 37.385425437836254
-16855 -78.3641719953051989 40.9974494154929587
-78073 -98.6206056540167282 29.2282263393297228
-76688 -97.3986455000000007 31.7024737499999958
-70356 -90.966500883912957 29.6633069163229486
-21555 -78.5900672969146541 39.5801819979897758
-85221 -111.896799116666656 33.1400165500000057
-60651 -87.7412169563915683 41.9020440949257065
-13777 -75.994986418803407 42.2494774627594865
-29356 -82.2517250681805052 35.1487233328611737
-81638 -107.504891970099578 40.3200374828349766
-14034 -78.8746372779898195 42.5027035324427587
-76733 -96.501466999999991 33.854853250000005
-48876 -84.740926022159158 42.6348963221590864
-58570 -100.925256262387336 46.470737164414345
-97873 -118.977682308270616 44.1382085939849702
-84868 -96.6544020000000046 35.1657930000000007
-16659 -78.3785536968325971 40.1645774570135785
-70630 -93.0515195327455302 30.062666081863977
-32359 -83.3670220894796472 29.6762536742195842
-11363 -73.749818610271916 40.7749920785498432
-06349 -72.0844256226415041 41.3959807924528391
-60203 -87.7171015059522148 42.0489818110119273
-56284 -95.1971677241519814 44.7860501180173429
-65721 -93.2136072578037584 37.0062628512294509
-63021 -90.5340861350000807 38.5736279642256221
-87714 -104.939050577439517 36.5153314118173782
-96132 -120.633448109090935 40.9120982181818178
-33149 -80.1667950805801439 25.6935633875906291
-55343 -93.4186208797348598 44.9153575076885261
-14616 -77.6569302506534598 43.2337753437909029
-77964 -96.9030954916553497 29.4216248099952651
-22663 -78.126084838618894 39.0604185838618676
-08835 -74.5921328283718452 40.5394436177877182
-60657 -87.6573148939678646 41.9396882579836827
-77465 -96.2661434899111157 28.7431561718431787
-36330 -85.8448098271851734 31.3205016177566584
-28365 -78.0469751253892241 35.1765378970590206
-94595 -122.07024495035671 37.8787578315619911
-28408 -77.8946940000000012 34.0271660000000011
-47270 -85.7082457910364752 38.8389247834772746
-14463 -77.0659764756097587 42.7944509512194955
-45353 -84.03316599999998 40.2951465681818419
-85072 -111.62184400000001 33.437479500000002
-53522 -89.8093882902584681 42.5770585208747505
-87507 -106.037837030936203 35.6368088534665617
-67505 -97.9179559145220679 38.0171014010416215
-67747 -101.030400192488244 39.0830654976525835
-25444 -78.5071680264009046 39.4398133679956686
-74451 -94.9672300706521213 35.7484704684587768
-57101 -96.7311349999999948 43.5205435000000023
-11776 -73.0465374395253235 40.9118661300775415
-82941 -109.869001667296899 42.8811978051579956
-30223 -84.2717925371306222 33.2807633541215822
-31598 -81.8521907500000054 31.5942840000000018
-62262 -89.282209941731395 38.9489962045293865
-39730 -88.5414207805814328 33.8534168638115247
-49112 -86.0343198506103448 41.7938774805269375
-65622 -93.1015110387899369 37.6176796355273311
-64772 -94.3556399398124341 37.8343098782435874
-79852 -103.574018048903909 29.3614568195615675
-85006 -112.049625297327054 33.4656342353198752
-90704 -118.361459418307433 33.3567314800425052
-76033 -97.452789075997913 32.3086194946757672
-36610 -88.0819919170878194 30.7382140052107076
-12810 -73.8820582327044519 43.4872630584906474
-32145 -81.4608073138487612 29.6651535700935085
-21163 -76.8594153296798339 39.3344401309724887
-63101 -90.1927403436330479 38.6315166694756371
-98663 -122.662243675934903 45.6509192501412784
-07540 -74.6511670000000009 40.3709290000000038
-57178 -97.6343519999999927 44.6296051428571516
-61011 -88.9271445403529128 42.3601774642753881
-61547 -89.7365659056145546 40.6136889033534487
-80454 -105.264038141747378 39.6509735558944882
-91411 -118.459196018762782 34.1774061897151071
-55926 -92.7100062263538547 43.7477774927797256
-19080 -75.3575799999999987 40.0433470000000042
-22907 -80.6461181428571479 32.4705239285714171
-28607 -81.6589955245504626 36.2137450163475876
-21850 -75.4027870134687248 38.3772710071468452
-36112 -86.3481357499999547 32.3798619894366411
-06376 -72.2540570218978075 41.2946621277372401
-62058 -89.7634707552301023 38.9675419246862162
-37769 -84.1483964395261381 36.2162788360637222
-90016 -118.35380717547163 34.0278148441038795
-39046 -89.9833932511396029 32.6207269291455475
-68711 -99.0301332161615733 42.190064098989879
-45761 -82.0858954428760654 39.4256423070878554
-53005 -88.0990925693949407 43.0638552471663587
-46818 -85.2178594916484542 41.1503888980143628
-29646 -82.1531173126467422 34.1614502373710422
-35749 -86.7613954466651904 34.8159278919072719
-08591 -74.6367464999999868 40.2290959999999984
-44120 -81.5810068911918904 41.4738363187655494
-04286 -70.8601284691358018 44.3908938765432026
-78962 -96.7448800687956521 29.6732961126209887
-62985 -88.721930446344345 37.4649741149764495
-16113 -80.42434226890758 41.2794480546218381
-16946 -77.1442063588610267 41.9200492750118272
-45816 -83.7942791294117484 41.0044256823529452
-81091 -104.896902908430619 37.1954995773290946
-27203 -79.80273267764656 35.7175014245101821
-55024 -93.1609258148534138 44.6629330135842011
-08005 -74.2583015649670415 39.7602934000719301
-71666 -91.2597861271186162 33.7747781440677954
-70514 -91.5446600016116037 29.8501925543916258
-68323 -96.3636723198923306 40.1379609543010503
-98008 -122.116701608845602 47.609711916570248
-07608 -74.0586168508771721 40.8585233596491122
-14526 -77.4582122449052974 43.1431427943869039
-11577 -73.6382620749822081 40.7843564196620392
-90002 -118.247785790357199 33.9493416867340656
-48456 -82.7432933193210118 43.6704656499595671
-71959 -93.9243611033376595 34.2452958550526176
-50440 -93.0696586979361911 43.3361436097561423
-18980 -75.0201359504132199 40.2760069338843039
-15664 -79.4847079999999977 40.2022130000000004
-29665 -82.9087775341365329 34.7251336867469789
-56761 -95.6881815496315937 48.6082201452122362
-14777 -78.236650861872107 42.3962188584474333
-10533 -73.8585562577487877 41.0374625859706654
-67626 -98.7029934928057742 38.8689369010791239
-90041 -118.206262343356087 34.1362122373100192
-72685 -92.9545608979100138 36.068658602893926
-74002 -96.1433235857688118 36.5562169148666172
-70471 -90.0842569070187551 30.4032375887735427
-07661 -74.0397122514178392 40.9250813088846996
-80829 -104.912593295580564 38.8507670555250897
-60050 -88.2827428427425076 42.3413650948053757
-81041 -102.337265331298212 37.9203689043549375
-69156 -103.289415618211493 41.2528558815542894
-92652 -117.743904200000003 33.5026968000000025
-31834 -84.5963336666666663 31.9626473333333365
-60618 -87.7036800951808146 41.9470191810194493
-28654 -81.1562539602350341 36.0629659432143583
-59059 -108.081488425120412 46.461779093600029
-48439 -83.62620541583739 42.9218882136254507
-36657 -82.5353461111111102 36.0412432222222208
-95546 -123.705745555180698 41.1208565387951808
-36134 -82.7388498333333331 31.0284723333333368
-38071 -90.2853065999999984 32.4776834000000036
-46268 -86.2264553174154571 39.8946702046727495
-75784 -94.977109404121336 31.8907080137377932
-36067 -86.5366352823521083 32.5063519272432231
-32196 -82.1650769999999966 29.7903625000000005
-49870 -87.9015830766773831 45.7926095694887749
-19720 -75.5969633480092824 39.6670278920596928
-47423 -86.8936429999999831 38.6861174666666656
-33071 -80.2658836691343538 26.2439796351693744
-33759 -82.7160650882777873 27.9824090226725026
-23960 -78.5563139085973745 37.3111305527079438
-98505 -122.975562702127675 47.0658870638297913
-32666 -82.0105883020562487 29.7315278190654091
-78631 -99.2840347358950197 30.3008546669545886
-86641 -114.438061428571444 35.7050032857142838
-75098 -96.543968519185384 33.0154838553887657
-89451 -119.956105161868194 39.2570183366820231
-21155 -76.7999312781067687 39.5713477474710515
-55432 -93.2538435006414375 45.0963729503336239
-34484 -82.0562761564879253 28.9276527822211733
-71661 -91.5606986986165623 33.125189177865586
-23856 -77.708919171013406 36.7840449743826525
-02134 -71.1329676515775731 42.3554837754914644
-37409 -85.3307571739898236 35.00124220318488
-92581 -116.928422560975605 33.7852196585365974
-45894 -84.4678266039725401 40.7618025168220015
-94922 -122.96787408856504 38.3512933901344653
-18954 -75.0048431286315491 40.2189861811949001
-22853 -78.7706339086576577 38.6470130376488186
-65047 -92.5778342333585584 38.1678672154076253
-58790 -100.944093770405559 48.0512158488678125
-49405 -86.1926426356709783 43.9032415826839895
-75709 -95.3908861435793227 32.3129356228004951
-16636 -78.5245886480895479 40.6068437647228677
-75550 -94.8815421011007203 33.5257726078272285
-61469 -90.9383527551643454 40.950555254016848
-64432 -94.6693758268156813 40.2657978212290715
-56623 -94.5435394755039766 48.692473155472122
-57547 -101.465113044117658 43.4773577794117685
-34638 -82.4971679148047201 28.2404081039471642
-66720 -95.4552451289023622 37.6698770129267544
-04488 -69.1089437039765073 44.8824753376288612
-44134 -81.7053796152839737 41.3850624805681377
-78052 -98.7813043899138137 29.2182476480114737
-79411 -101.856672741123376 33.5702384318915605
-77041 -95.5861269842124273 29.8597538298742293
-93446 -120.730103223932844 35.6395580387258804
-24576 -79.0065628333333336 37.1171493333333302
-52651 -91.811977073843849 40.8568340019890073
-88732 -108.797741599999995 35.0841941999999989
-58801 -103.657859829255869 48.1688625282477005
-96068 -121.154426714285691 41.1158010952380977
-21919 -75.9398722787580169 39.4271375232885788
-22560 -76.9292230035199367 37.9079238884325136
-78237 -98.5655078128268656 29.4212406789822332
-78648 -97.6428591892005926 29.6880248704357115
-52335 -92.0675730458715407 41.4616136623852682
-48360 -83.2719019841964609 42.7444729929388743
-67446 -98.3069295444839071 39.493560978647686
-67340 -95.7113014979253052 37.0588043983402642
-28226 -80.8188939154301238 35.1069595246438411
-73766 -97.8043294787233606 36.6670641954787015
-50029 -94.5506524019736929 41.8316847243420682
-08232 -74.5260639789736103 39.3954107551436508
-12563 -73.5816662919870907 41.4867378576797492
-63108 -90.2542946728563606 38.6451956991896708
-98206 -122.326161699999986 48.0183564000000018
-78155 -97.9576429931660897 29.5558291866366467
-87502 -105.789091404255331 35.5797011773049547
-02802 -71.4574926617646895 41.9528785294117839
-98203 -122.226541380294833 47.9449013162385924
-58420 -98.8598893800048444 47.0636646529966924
-97810 -118.439732111634882 45.7259430507430409
-05746 -72.7178398428571313 43.7611400571428675
-71638 -91.4637040626578965 33.5323604555379475
-94550 -121.726850432316283 37.6522571419136725
-30620 -83.7628959643159163 33.9286907961422557
-75487 -95.1853280574801772 33.3276286414160907
-67631 -100.034175318435658 38.9950579310986924
-73036 -97.9400644722196319 35.5170265710961459
-75068 -96.9413273046308746 33.1799930341369773
-82714 -104.666838801948103 44.5585894155844002
-13354 -75.2697411542623342 43.2633603819974013
-83763 -115.430114000000003 44.1137595000000005
-59935 -115.848979823758967 48.5329368921929003
-12862 -73.9149588917431686 43.6694015633027561
-78046 -99.4668629772496757 27.4564621969664557
-38221 -88.0464828907594494 36.2390372742795535
-93043 -119.195802652173924 34.1606229130434755
-19522 -75.8105524503204151 40.441241848811984
-82731 -105.313075194849517 44.8011112822772049
-20762 -76.8848907191282365 38.8037048910411571
-04634 -68.2394032250597888 44.6251451381970341
-86021 -112.98001027162266 36.9839126361686965
-71968 -93.2629668572388937 34.5045318733547433
-19475 -75.5915934012948583 40.1712413750789352
-97115 -123.023825012615916 45.2777824158534372
-48423 -83.5233019471217375 43.0299800694284968
-43757 -81.1518130652173966 39.8569241739130433
-60067 -88.0619507750967614 42.1078472290418944
-89403 -119.552327075687998 39.2711931727474735
-35971 -85.9418602541800283 34.4569114157344316
-79547 -99.8946496958073453 33.1855010793934113
-98526 -123.892063507418399 47.4805456092977636
-64467 -94.1532545763735698 40.4061963373627009
-68735 -98.4213350477099027 42.1902877910305349
-05774 -73.1921121116177886 43.4308656497838328
-14425 -77.3459820627761871 42.9783593591678752
-36026 -86.0973915148255315 32.7637590070847438
-69348 -103.146358094476142 42.3343518457142949
-68854 -98.0006742157831212 41.0096268032786995
-08801 -74.8874367593968628 40.6262131203911352
-71887 -93.5066767499999969 33.8104042499999977
-15091 -79.9806846470588368 40.6007772058823591
-22193 -77.3510000644151745 38.6447035332975304
-97466 -124.085110351637752 42.8775749633911474
-02842 -71.2828272527780342 41.5178944621864545
-12740 -74.5075674092763052 41.8632946381627349
-37049 -86.6800796467614703 36.5558752660255379
-49726 -83.7157185744149785 45.9971281575072126
-67601 -99.3278048481741251 38.8811822031518872
-01535 -72.0811261872369471 42.2686372656031111
-38638 -89.7987218181818179 34.7198965454545458
-26137 -81.0422764458597271 38.9954021743629582
-99180 -117.30211935206583 48.2950619291763559
-77582 -94.6704502022058847 30.0262639816176566
-79713 -101.741645343228242 32.5198394397031763
-73438 -97.4909001232753383 34.2475892069586578
-37748 -84.5237494221584171 35.9372798259681829
-04042 -70.6236426324467033 43.6294485951151998
-04495 -68.3518509802414655 45.4489724127333403
-26148 -81.1775384800000239 39.0701025680000171
-99209 -147.903078666666659 64.8758298333333414
-14877 -77.6870061429656715 42.0654992639362817
-12457 -74.2530608775308423 42.042117559999987
-21206 -76.5394852137525561 39.3395326785133079
-75182 -96.5690768005664211 32.8024197190940967
-32438 -85.4197244930351332 30.5022222290515295
-33704 -82.6361912952979338 27.796579812118793
-87560 -105.444982099648826 35.3285560763828244
-00677 -67.2404328144272654 18.337843042400884
-10001 -73.9959531674641227 40.7496638437001906
-48613 -84.1255522205405413 43.9383191697297661
-55040 -93.2743485574971345 45.4724218058542959
-18211 -75.8345360515907885 40.7457509634720552
-10503 -73.5034126315789536 42.1414023157894704
-28203 -80.8565316842688731 35.2079706624815785
-43772 -81.5306481856782312 39.883398727503284
-06353 -72.136344904040385 41.4541665858585802
-92417 -117.208496000000011 34.2461565714285641
-58256 -97.2293075317202664 48.100456397462473
-58712 -100.540112540404039 47.9666662853535044
-44419 -86.2920389999999884 41.6714280000000059
-83827 -116.179632088397796 46.7820030092081183
-61354 -89.1291126372075269 41.3323699652406447
-99513 -149.885995166666675 61.2149097499999968
-83716 -116.048474866504108 43.6170496030551433
-37876 -83.4933601726678489 35.8514796526220536
-76104 -97.3192251337286081 32.7297875819145787
-70541 -92.046029124423967 30.4195199124424143
-65781 -93.4176149384305745 37.3338561638909994
-28626 -81.5079615277058878 36.293837450788125
-13802 -76.045331622902296 42.2491671085883809
-59447 -110.511756789253511 47.3207443133286674
-68713 -98.9601047463124814 42.5431273185840055
-71475 -93.1028941393442722 31.2210151967213001
-18704 -75.893846366276577 41.2747807358717438
-37097 -87.845535988494035 35.7769815589421896
-38478 -87.0131366656312935 35.2103345854947776
-34453 -82.3611036542093018 28.8706582098367264
-55088 -93.37808984520872 44.5304940417689892
-77051 -95.370808696069858 29.6614188690980711
-92173 -117.03969896114171 32.5582767476217896
-52244 -91.6943793863636216 41.6107005227272708
-77429 -95.656189759842718 29.9843467689647234
-77864 -95.9095858892610522 30.9599930376891521
-57353 -97.8155537170592027 44.4228882732719441
-44843 -82.4069694955181404 40.6955857319157843
-24383 -80.8103010454545512 36.8993901363636283
-19345 -75.6865026363636275 39.9313632727272676
-05469 -73.1275096153846249 44.246637923076932
-16668 -78.6312165781528023 40.6344475217090491
-78372 -97.9854983243959907 27.9629376661079938
-67478 -97.9322125320196761 39.3846958522167583
-49074 -85.5370429999999971 42.3163509999999974
-89721 -119.639129999999994 39.2644590000000022
-31763 -84.1620676917013526 31.6890025852126911
-47580 -86.7732504771241935 38.3552030653594542
-85033 -112.212453874553177 33.4941314681339009
-44307 -81.5455466025596536 41.070126857893122
-90813 -118.192784110226853 33.7808428089931567
-83624 -116.135753373195953 43.0006822027491111
-10037 -73.937884417670702 40.813260742971913
-56039 -94.3343053403924898 43.6679280267829029
-77034 -95.2097388049735258 29.6264653900529566
-38320 -88.1077039582448691 36.0496674479552013
-29590 -79.8483561145374949 33.5684256035242896
-44081 -81.1442012762127121 41.7654422516954469
-95659 -121.573145513325514 38.8676756720742134
-33836 -81.6181711282051339 28.1618650256410277
-78383 -97.8958311562459329 28.0503470109624793
-60174 -88.3003759257982637 41.917058426282523
-97845 -118.931724178512098 44.4024056932668998
-29726 -81.2269603673565257 34.8598093080902771
-92075 -117.257314477542721 32.9958131206332155
-31042 -83.1822725244350067 32.7728431211245166
-21533 -82.8661900000000031 31.4507557500000026
-38069 -89.3592063945360167 35.4511981115401866
-31775 -83.6059585808403227 31.334257417250079
-37134 -87.9505816338647293 36.0064565575697344
-86837 -99.7510755714285722 31.2459239285714325
-93553 -117.893308605734973 34.4756182144021111
-27747 -82.9249322222222247 35.1180387777777909
-15262 -79.7532358750000014 40.7144903125000042
-68421 -95.7451220596420711 40.4839122534791258
-05403 -73.175634933210489 44.4496445182694657
-23434 -76.6022634642117453 36.7346212217799959
-82835 -106.419113285517227 44.6784465717240948
-99648 -159.163804476190478 55.9141133015872853
-71346 -92.4035836161830133 31.117217377211535
-93516 -117.655166510471176 35.0059409790575913
-34652 -82.7305956210034026 28.2367223423904505
-43340 -83.4844177136325243 40.5567516109726043
-46070 -85.6543332048152735 40.3429586447888724
-27591 -78.3864645813779504 35.7899242264978525
-45727 -81.486598829567086 39.6476379292131753
-02520 -73.1440590000000128 43.0843513333333306
-06066 -72.4662609807845257 41.8394466990824156
-94028 -122.209394628742615 37.3782140576605357
-61422 -90.5159841392699462 40.5505445898894834
-38229 -88.6099281053790548 36.216632007724229
-78827 -99.7621366633166105 28.4478457319932758
-66967 -98.7872807482891346 39.7870433299120165
-63824 -89.5229294776119247 37.0028640298507483
-14467 -77.6121060158177443 43.0466077021448399
-50152 -93.8198619545454875 41.9675513909090867
-44836 -83.0558741981246698 41.2465045662453917
-29532 -79.8806903933266028 34.2839054814260038
-77631 -93.7371150000000029 30.0900145000000023
-37786 -83.8671978571428554 35.6933172857142864
-96747 -159.612766666666658 21.919727933333327
-70808 -91.1449762574372215 30.4075634054091779
-15865 -78.8192960786407326 41.050623751456321
-63457 -91.6953832044053172 40.1631526246696069
-73567 -98.1715933745928311 34.7484580879478955
-23016 -77.221419214285703 37.7336022857142908
-45249 -84.3256232294925496 39.2755742416626958
-20621 -76.8035227818407549 38.3303688397699958
-39442 -89.0832821956521883 31.7369373695652115
-24244 -82.7916291653016714 36.6979584025409977
-19840 -74.9490839999999992 40.2181695000000019
-56518 -95.2348346270190262 46.4796744684288257
-74836 -96.6238281176471077 34.43974886425341
-75485 -96.4619136938775625 33.3630990408163228
-92629 -117.703036587081115 33.4777340113778834
-61776 -88.8923041168988135 40.5777042695336547
-97412 -123.551935162126441 44.1856838431244228
-69345 -103.745678147572917 41.5769527436892901
-43530 -84.285184000000001 41.3235102499999982
-74831 -97.0504528968291282 34.8972866326120155
-22723 -78.3944795907781184 38.3519943573486941
-85650 -110.242739812188333 31.4937188611868564
-74179 -96.2194929999999999 28.8680404999999993
-01077 -72.7729041454428653 42.051461089620318
-42459 -88.011518422154964 37.5672454682158588
-10915 -74.363586181818178 41.542474999999996
-75486 -95.7294404671982875 33.7434724301097546
-93527 -117.876089545214057 35.7383367183743133
-37216 -86.7233779612342346 36.2136448649579634
-24239 -82.1408813215340246 37.1032488761062069
-40312 -83.9408257948543906 37.8543599121784098
-16443 -80.4657912684606202 41.9403043842302949
-34990 -80.3003310408026465 27.1704495944404876
-61812 -87.8805480281862401 40.2709896924019546
-31525 -81.4991203048961523 31.2630696046719869
-12769 -74.4544381617021145 41.6534045659574588
-26366 -80.3358623846153677 39.3790180000000021
-54862 -91.1325463148761798 45.770059148760339
-64601 -93.5676221163756878 39.806461759941655
-17944 -76.285121955156967 40.6710587668161452
-67635 -100.42412027814575 39.6126165231788079
-12749 -74.8314489787685915 41.6898859320594539
-17519 -76.0235888233977164 40.1414046835991911
-54448 -89.8329338921777776 44.927999059368247
-60134 -88.3223788258342495 41.8845338602890536
-44740 -85.169762999999989 38.8707199999999986
-87510 -106.328420686557919 36.2393016633165956
-30296 -84.4434603703283102 33.5642793684855789
-91755 -118.117672033907411 34.0493563022067534
-62995 -88.8786579773110503 37.4190915466695699
-99734 -148.405397203389867 70.2285380338983032
-47546 -86.9296027405697487 38.4091271102859366
-33025 -80.276603568273373 25.9926481800640943
-88053 -108.222839315789528 32.8703684972298618
-44264 -81.5468458538174303 41.2278308319195332
-79414 -101.919240043442372 33.549316616880354
-33744 -82.7709159999999997 27.8138299999999994
-66401 -96.3067150717372158 38.9919654515989933
-50218 -93.8795500671642174 41.3489922238806074
-44060 -81.3336349077039671 41.6844210249265217
-78027 -98.5081690317919794 29.9791460685383306
-70355 -90.4839530805501795 29.6982141277013696
-78402 -97.3900072859337627 27.824255890853177
-45225 -84.5498309882480612 39.1409812601496228
-46990 -85.733372823850047 40.8959448026635144
-14865 -76.8347812898890226 42.3500002746932154
-85540 -109.337790210791354 33.0532881179855949
-06607 -73.1649577690980522 41.1779636823665172
-06063 -72.979938527052866 41.9200909090754195
-07961 -74.4308526666666666 40.7826088333333345
-85641 -110.701598002485923 32.0108960946479115
-40144 -86.3759201289335721 37.7567841373852531
-49854 -86.2876591217112434 46.0171745929104858
-30420 -82.1455461577687203 32.2946386221766133
-39044 -89.9780742182582571 32.0185829520721228
-59456 -111.554807201474219 48.2562995171989328
-66073 -95.3787101084035385 39.0964117631989865
-76941 -100.811513887940478 31.2714702923933032
-92078 -117.189550474921035 33.120378260833931
-77374 -94.6183052196668797 30.3945100428231072
-61565 -89.4835056631363841 41.0207898501680432
-85336 -114.771617491891917 32.5625566216216171
-15053 -80.3637017927461272 40.3856282538860256
-77351 -94.8999645673471548 30.7032504972462945
-91962 -116.487517630816072 32.7953286704806217
-01097 -72.8249950692307948 42.1635492153846201
-51554 -95.6917197919463121 41.1431094093959615
-70729 -91.3622209332538091 30.5753605220500724
-29455 -80.0950713326352144 32.6734209393639929
-94087 -122.037421832195236 37.3511027539919382
-62314 -90.9046474096692947 39.7687011068702674
-61478 -90.7572875994123081 40.7563585249754894
-26641 -80.7741057500000039 38.3365768749999987
-49441 -86.2759446842654683 43.1933674299810804
-68065 -96.8493047728625243 41.0704903717339818
-79404 -101.812849499250447 33.5462465313248046
-92011 -117.295977853668262 33.1075489311380835
-38762 -90.7332170804240548 33.8817018603491249
-11004 -73.7076726666666673 40.7475554999999972
-67877 -100.84120227933451 37.5049307723292458
-40241 -85.5813151572692732 38.3053011477926262
-16245 -79.296882921212088 41.0077455393939374
-76360 -98.9840398375955175 33.9911719012022999
-77358 -95.4371679787690965 30.5476944704148075
-19095 -75.1503530058963207 40.0861770652515901
-21212 -76.6130964574442572 39.3668281080891873
-19962 -75.5050707491586905 39.0667042396757012
-23358 -75.8676729063926274 37.6396047922374422
-18011 -75.6366129121340691 40.4799456809168561
-00957 -66.1871958325791923 18.3699999185520362
-63530 -92.4691950307222044 39.9015409155147012
-22746 -78.0166045973451645 38.6351830575221058
-67590 -101.901494000000014 37.0000138124999935
-80809 -104.987083799269158 38.9130328660923226
-63734 -90.0942959450981107 37.2665321921568804
-35143 -86.543014543947649 33.0808627043111656
-07513 -74.1496475994622699 40.9060234731183243
-84655 -111.80554399880883 39.9832536157664507
-19716 -75.7530059166666518 39.6801866304347612
-96853 -157.947990454545447 21.337616727272728
-38101 -90.0564722499999846 35.1304188750000037
-60932 -87.8013976039603961 40.4667030495049644
-67333 -95.9142703672244608 37.0198243251823129
-17946 -76.2481792263157558 40.8120253394736707
-73064 -97.7314759072971384 35.3920997509178505
-35611 -87.059937765909865 34.7863579431827645
-32669 -82.5741007797097097 29.6474224232804815
-12130 -73.6576868002915717 42.4438051516034847
-08055 -74.8209887093230037 39.8660204111824186
-55445 -93.3720808639641291 45.1182859255094115
-15370 -80.1777853172136048 39.8898880023590436
-35151 -86.3435758624404599 33.1271211889065498
-46346 -86.6940624835979463 41.4807733619047667
-14505 -77.1699331762002885 43.1593877822547185
-04846 -69.0558701249999984 44.0835998750000044
-25598 -82.009018999999995 37.9384000000000015
-14506 -77.5023623259423857 42.9982601651884977
-75234 -96.8784512009726768 32.9287555502735216
-14838 -76.6661013656321302 42.1846369545799362
-10524 -73.921235057012467 41.3658966590999455
-47836 -87.1764781447368051 39.64666180263157
-64657 -94.1891625521403881 40.143282134467583
-44320 -81.5714526873950803 41.0818494766159503
-38328 -88.2113023329526698 35.6740425211187357
-12489 -74.3595008809917744 41.7607480330578298
-29409 -79.9643266712328682 32.7954514246575357
-47585 -87.1374248414164612 38.2719688806774059
-67357 -95.2678031363124092 37.3403568494274936
-76271 -96.9088159957628932 33.4697865497881821
-77436 -96.2397546339285412 29.3904377142857172
-53069 -88.4373490000000118 43.1139679999999998
-20124 -77.3949923835703117 38.7908513223749054
-27877 -77.1873056395939017 36.5143590761421208
-98628 -121.115856463687152 45.8240841206703706
-93444 -120.502584142991196 35.0372207880162918
-35616 -88.003995888086493 34.749853711687706
-12959 -73.6887229080977022 44.9570400334189912
-66733 -95.248531329423173 37.5840143069404036
-29168 -80.5067809160572949 33.8905392124005687
-29420 -80.1040510252114899 32.9290711043689655
-22542 -77.8837370873604442 38.2965972462826727
-32258 -81.5596889670875527 30.145596272646042
-18053 -75.7043962455929318 40.7107553298475082
-68070 -96.7963498701969485 41.1966525787253204
-89021 -114.47176865085514 36.5985995188770943
-95226 -120.864279326460576 38.2218742508591163
-74045 -96.7196509126506356 36.2103344397590732
-02132 -71.1575740779770314 42.2794515166453024
-06018 -73.3136121061761656 42.0273092203330165
-29597 -78.6873734285714193 33.8888088571428554
-62021 -89.9916911779461657 38.979227618078589
-27883 -77.8021572429739052 35.5929688562075057
-45819 -84.2603968931298084 40.6241562366412268
-26134 -81.2648910814607035 39.3774353089887583
-95140 -121.702788247511734 37.377401574642974
-20220 -77.0341999999999985 38.8986853333333329
-55311 -93.4911006725870095 45.0952829450465984
-87567 -106.023612841059574 35.9873789529065462
-37867 -82.0659432000000066 36.1990002666666655
-42782 -85.64063039797378 37.3466865680767057
-23879 -77.5965779864220337 36.5925907574312035
-12167 -74.5920600866485728 42.418765819615146
-24293 -82.5589693803507174 36.9956678836879505
-63735 -89.7958095478131781 36.9981919718310337
-08755 -74.2248341953609838 40.0176542038045184
-54853 -92.4582797124504339 45.5728017451229732
-23925 -78.6966234444444552 37.0620402222222296
-59242 -104.551216189542544 48.429705767973843
-75099 -96.8002104999999915 32.7711000000000041
-54128 -88.7859195027932202 44.8489559273742842
-53183 -88.3770884438841193 43.0046314662673055
-59736 -113.47697198781978 45.3243303410475136
-44887 -82.7911326553745965 40.9038501947882267
-43805 -81.9713792230769798 40.4062244230769281
-54154 -88.1716383411313842 44.8773922002445076
-78880 -100.179078934511224 29.9968137252253193
-32827 -81.2939774992224784 28.4236067134981454
-96903 -122.419438 40.6288723333333337
-34430 -82.4544798076923229 29.0590501538461581
-20190 -77.3396922159890607 38.9624107189701263
-21244 -76.7670262998617403 39.335783628189823
-76757 -100.154672375000018 31.3623768749999989
-91910 -117.049695496630491 32.637404943051088
-03609 -72.4468200752941414 43.142232950588209
-92220 -116.889485623390456 33.9192773512486028
-41101 -82.6494139924397615 38.4698073899789037
-58063 -97.8093131245371268 46.9802487699074831
-10985 -74.354955813953481 41.5765378046511671
-20429 -77.0395693333333469 38.8969636666666645
-73772 -98.4159111127393942 35.8513407213076505
-15068 -79.7261833542078051 40.5673257563648377
-13088 -76.1873102759989962 43.1109768121236954
-13073 -76.3833022819685681 42.5870844583717201
-87703 -105.227112000000005 35.5437960000000004
-50450 -93.5325691066065019 43.4211682564565464
-75034 -96.8665117897818533 33.1306879681248532
-62040 -90.1085162947357929 38.7248039496150369
-98231 -122.727968166666656 48.9949481666666671
-90802 -118.192089016447838 33.7674509682018709
-58362 -99.0748299646946009 48.2289120601144887
-95758 -121.436913844988098 38.4219373203978094
-89310 -117.081045801730212 39.3055139992790004
-20815 -77.0772915315984335 38.9833733496040509
-40050 -85.1766639779263386 38.4389630655518388
-74441 -95.1425353914402194 35.9775770790273199
-64630 -93.1461782587966667 40.0280521572077177
-37605 -82.2884757407407221 36.2741054814814845
-90071 -118.254597925619848 34.0527666033057841
-46738 -85.1343861026160909 41.3377807037144365
-83355 -114.722710268088989 42.7509089524582109
-77074 -95.5113661858264749 29.6897794953833021
-62567 -89.1886773722025907 39.6462449646643833
-23185 -76.715893913909639 37.2526444725585861
-42653 -84.4602803018022854 36.7654345416719437
-70395 -90.8338572431387945 29.7050555626319444
-16319 -79.6257721989341718 41.316306348134944
-32038 -82.7050195540339672 29.9309668664587107
-30328 -84.384940301735071 33.9334798289199213
-07647 -73.9498555953329202 41.011063841775794
-76365 -98.2204860018324126 33.767297426424669
-40359 -84.8152672621796739 38.4871703708856572
-94583 -121.959863894535872 37.7525171154123527
-68770 -96.7307835973722234 42.5631350563115021
-42032 -89.0994796615385098 36.7589199934066073
-06247 -72.0681380315684663 41.7665426105895179
-01879 -71.4276979095882041 42.6650388159768568
-36617 -88.0933775255050051 30.7152342328282408
-10510 -73.8348869421634362 41.1450046254993538
-40831 -83.3193440215578676 36.8145314059284559
-01236 -73.3715626008716981 42.2635754813200251
-55319 -93.9416929284661109 45.4767837239974426
-53209 -87.9466363724144315 43.1241700637534677
-07010 -73.9891969958653135 40.8217325380980682
-89141 -115.204791405267784 35.9913077101288152
-11786 -72.8955940741006145 40.948309786248636
-43073 -82.7546091363636691 39.9967633181818201
-73639 -98.8965329131886079 35.6793833005008239
-77028 -95.2860980047253889 29.827374278401269
-99501 -149.875569725586104 61.2153235736086785
-12837 -73.2656274314540923 43.5025653430266743
-54921 -89.5307653041862324 44.3112175854151573
-21650 -75.816962701257907 39.3137571792453215
-45062 -84.5503818095238699 39.4813267210884291
-37151 -86.041162529899708 36.3186551375734368
-85375 -112.358953429337902 33.6762708697929156
-91607 -118.399755574796558 34.1665341187313203
-07342 -74.1363412999999838 39.9025615999999985
-12939 -74.1651152760181134 44.4203628009049609
-27515 -79.016747250000023 35.9479299166666735
-44280 -81.9193658647459699 41.2354011204482447
-55906 -92.4314320726717824 44.0685427776101193
-11702 -73.3244725991627462 40.6900663008895975
-43532 -83.9813962022443548 41.4617437284288428
-42776 -85.8956995612143714 37.5102958313065002
-44846 -82.6006801131084529 41.3067198365597363
-25214 -81.5473430836431987 38.1935046282527821
-25540 -82.1597912233727641 38.1550930902367185
-52401 -91.658369494345834 41.9752006171244361
-15044 -79.9535054162999614 40.6348456413729195
-81326 -108.098406707887008 37.2052719833060905
-67674 -99.0891243012047909 38.8641365180723071
-19066 -75.2495478433388314 40.0042399925986132
-29899 -82.2524609999999967 33.9288444999999967
-63459 -91.3648866413928715 39.6021702671220766
-47520 -86.6409490332889618 37.9697518943630925
-87942 -107.305262344117679 33.0920123397059029
-14067 -78.5670921343076714 43.2090417407611156
-08555 -74.4748201516853641 40.217679474719084
-44303 -81.5366942135069479 41.1035540905512065
-91402 -118.44279573930767 34.223503545598625
-08323 -75.3545659227697513 39.4056278482024069
-37388 -86.2302672655771403 35.3512148103874608
-47034 -85.3274974923077139 39.204367169230764
-96057 -122.116111373724664 41.2432171459040688
-32158 -81.9280510000000106 28.9215322499999985
-42452 -87.5420636043231042 37.6863809055744881
-84726 -111.604424281026922 37.7681102346647037
-99609 -162.519327766666663 60.8729993833333509
-70710 -91.2628291816339043 30.3598724287643442
-47017 -85.1778908189706101 38.9393535083863895
-43613 -83.604600688827631 41.7063285549990894
-01108 -72.5555332142700138 42.0830865141169284
-67118 -97.8542231305142707 37.4676367289321703
-27103 -80.3182868292686294 36.0607647731973131
-12491 -74.1215113433714237 41.9814589757620595
-94929 -122.964847949899891 38.2527883466934284
-29353 -81.6650266946287076 34.826326331176837
-61875 -88.4307777783912456 40.1197324747634383
-15552 -78.9976476973506863 39.79778576870374
-08690 -74.6585910353163911 40.2245495958229498
-67356 -95.1251985369918032 37.1713195793679105
-11406 -74.6066743333333449 42.1517346666666626
-54824 -92.5291996692979382 45.464609157041977
-30126 -84.5544157288502021 33.8173321414899561
-27609 -78.6325327838386272 35.8461866278268388
-49024 -85.6189867377002685 42.2139145938549731
-98245 -122.913521551123878 48.6655196852167293
-91406 -118.494006134085879 34.2018374058228574
-45252 -84.6297397375628293 39.2684846316377758
-94127 -122.459175226753658 37.7356220932182467
-83450 -112.413872027749676 43.8525235443996166
-53704 -89.3470352879123908 43.1243403999408272
-12748 -74.9241859706030624 41.7802536974151337
-28422 -78.2007607764617632 33.9969619810325909
-98270 -122.146383901966274 48.0618411970019679
-75272 -95.9300592499999993 32.8923989999999975
-61936 -88.7174932076502643 39.7993428688524702
-61531 -90.0200066704896074 40.6825798583034839
-48617 -84.7331839498752259 43.8360148043018825
-65050 -92.6878979701420178 38.5418820616739737
-62085 -89.8050603567567549 39.0791115405405236
-64424 -94.0366437747028669 40.2582165970569719
-15032 -79.8428290384615451 40.6438958461538462
-67428 -97.4157910848923336 38.3768979496403162
-48335 -83.4010575819885105 42.4630870853621971
-24614 -82.0706893163037421 37.3088097294049135
-95637 -122.199091160642595 38.8351044799196714
-27371 -79.9501656769959368 35.4039175614974297
-74445 -95.8400769052164492 35.6187130514588404
-08818 -74.3731484545454578 40.5374764545454553
-49031 -85.9841049998731393 41.9016479665904313
-58216 -97.4251250885145339 48.8711161981864279
-54982 -89.287582832477014 44.0716872826310038
-51454 -95.2199700058808673 41.8856571744609596
-86431 -114.210602803278704 35.4083205737705313
-03079 -71.2177823138484314 42.7904322936834021
-71320 -91.7412261612903279 31.1514165935483796
-12821 -73.4012868720379714 43.4544595473933484
-32789 -81.3517373711836171 28.5983277020373663
-53222 -88.0289706397407343 43.0826267025677083
-35049 -86.5999870296113414 33.9584594214461717
-72847 -93.272972773114617 35.3623929192796425
-58317 -99.2497418348006732 48.617735201375524
-80106 -104.56936201876573 39.1247558339768915
-12137 -74.1276423339961212 42.8585173929754859
-73134 -97.5817995162455247 35.6166892072202401
-36831 -85.5194722500000069 32.5767712499999931
-93246 -119.881862000000027 36.2647605517241445
-50131 -93.7229718947248216 41.6792058110563133
-56210 -96.5589850674157049 45.5594836516853761
-12305 -73.9437905866142415 42.8146245065616782
-87193 -106.551741285714272 35.0926797142857154
-82001 -104.791727222416455 41.1426167238925089
-79227 -99.7027516486054566 33.9488590581673009
-02885 -71.266021974347467 41.7259547296254851
-42050 -89.2037987740266232 36.5455880870725522
-43116 -83.0622090099668497 39.7718734875414697
-43048 -83.1301609999999869 40.2495663333333269
-32825 -81.2442351937264817 28.5389183611353374
-62277 -90.1119385708086469 38.1114405798332641
-12455 -74.6561321529762978 42.1611374312632492
-83549 -116.340058122832374 45.3900134046242201
-38915 -89.3540493006276364 34.0261405755494053
-32222 -81.8156853997248845 30.2266911272059708
-32541 -86.4487718523104007 30.3953126935501494
-08226 -74.5908464620623732 39.26800863672959
-26435 -80.0855908999999997 39.2708334000000008
-31600 -84.2448996666666545 39.4219000000000008
-24370 -81.7320862405098438 36.8942607657058304
-26104 -81.4942710020280003 39.2803580683568825
-58779 -101.852600909859319 47.8197957033656351
-12442 -74.2320512962257482 42.2208845077704638
-87034 -107.626613511430861 35.0495240313293976
-85050 -111.99694131062796 33.6811237329710735
-54812 -91.8709296079063193 45.3968936910779846
-79001 -102.727341632000147 35.2004343939999984
-99508 -149.816962123329887 61.2028969801112339
-01341 -72.7023219672416587 42.5158827433349842
-56468 -94.315461126904367 46.4925223603757445
-12858 -73.664111405375138 43.9002879294512809
-74468 -95.5675228358209239 35.6143038208955218
-24095 -79.737107325085077 37.2181737731460558
-52641 -91.5763451722307593 40.9716378415833447
-73701 -97.8613811901312971 36.4053672236981143
-00888 -93.1431151071428758 33.8776077142857091
-72392 -91.0967424025245265 34.9460403842917771
-41049 -83.6410170133733146 38.2761560733831701
-95962 -121.261824472299651 39.3505843721924791
-95903 -121.340671646300763 39.102674169451106
-56036 -93.2380791683296479 43.551401363557396
-44232 -81.4619181000000054 40.9323452000000003
-29447 -80.5929958461538547 33.1078838846153829
-39535 -88.9673914999999909 30.4338890000000006
-44855 -82.5900628066913498 41.10301840201803
-15087 -79.8527780930232467 40.1910328197674218
-81020 -104.778350393847163 37.3540009589331277
-92545 -117.019907715848944 33.7398062523943523
-75956 -93.9298176186974985 30.6859415906012067
-20783 -76.9713335321540058 38.9945265956423341
-04657 -67.3921279645821301 45.0029680420586757
-32732 -81.1136313745431465 28.749868959428909
-17025 -76.9592931316326059 40.2919054880202694
-39864 -84.6328769166666603 31.6070335
-85215 -111.703377012612904 33.4722479207543842
-82084 -105.470056676209282 41.0467939812437734
-49733 -84.7144945905065185 44.815820806382483
-63968 -91.0108025000000112 37.0032099999999957
-54082 -92.7501203710160951 45.0670062395417759
-63465 -91.6778912162162243 40.4908670810810563
-89109 -115.168355164805618 36.1195996854062287
-68122 -96.048816955036628 41.3371925729931959
-16505 -80.1695596683781275 42.0941602145376237
-28337 -78.6016421825334248 34.6491734220362844
-79031 -102.433238002092054 34.2510829811715496
-54442 -89.6664406999999812 45.3026847999999944
-28557 -76.7635387768635837 34.7338261452780515
-40057 -85.0478327247417667 38.372037195891302
-74964 -94.6038765396085637 36.1403727306616958
-17012 -77.5883909166666683 40.3793883333333312
-78747 -97.7578641989082513 30.1413309295372116
-30324 -84.3557243509383881 33.8201982311372404
-95519 -124.069461536859009 40.9426879289728802
-38310 -88.3942602161065167 35.2516936078431229
-33972 -81.6162672160293852 26.6430782298616187
-04598 -69.8949998571428495 44.856972285714285
-49721 -84.4724698108074676 45.5925948317084533
-27501 -78.6981659447745443 35.4930531291476896
-19547 -75.7676218601725253 40.3870899782969275
-60043 -87.7153256726138153 42.0887440187332729
-26276 -79.7384505115863504 39.043772404634538
-96058 -121.957842813656271 41.7813614085901435
-42327 -87.2693762781839411 37.5784246055844449
-18437 -75.3136947412731246 41.8564874462697105
-76249 -97.2643045968299589 33.2694817376522778
-33485 -80.0618379999999945 26.4816685000000014
-06477 -73.0268561151316504 41.2821529498817981
-70668 -93.596106260172192 30.2008906856544463
-43925 -80.8440112992126103 40.4428867874015694
-72457 -91.0580193218142426 36.0813653304535649
-68157 -95.9931554614271647 41.1817193534232828
-28736 -83.1098488905607695 35.1772480454856407
-64784 -94.2564667653410879 37.6656652518409132
-27710 -78.9350589999999954 36.0046304000000035
-55116 -93.1730739781825292 44.9121652232078574
-03852 -70.9745499760307723 43.5046063585810145
-65014 -91.6270129115367382 38.311305232876677
-79045 -102.421491062639689 34.8862269938180205
-55439 -93.3747200132644934 44.8770708150861708
-42830 -83.9022937999999954 37.7593239999999994
-84780 -113.501351872956491 37.1231757080561096
-42088 -88.7387381600596257 36.617245161753921
-72752 -93.6189947705775438 35.8066600072449006
-05084 -72.444275887850452 43.7203964236760001
-86405 -114.200519999999983 34.7517201428571454
-92804 -117.972477799161553 33.8180824881341451
-52351 -91.8326635332102938 41.8777999317343017
-21872 -75.2937011719696585 38.4122882151515768
-18827 -75.6347367647058775 41.9618525882352955
-38473 -87.1719470137468164 35.029758677749399
-01238 -73.236749828453128 42.2997692282877935
-93247 -119.084187510885954 36.2040472695307898
-51052 -96.2777278852125704 42.3139723646185075
-49345 -85.682025719484642 43.1577008356330012
-23307 -75.8834351525542559 37.4319347018894319
-35183 -86.3206150714284774 33.0249323668831138
-59039 -107.376690117346996 46.5911787499999903
-04049 -70.6991283576419534 43.7332172751339812
-12526 -73.861206714402897 42.122846749846218
-56121 -94.6173182266204975 43.5384863364671304
-28040 -81.7559751244631059 35.3613130032001095
-88120 -103.330391991522745 34.8032319084435713
-00646 -66.2863843377334945 18.4407561040054588
-91773 -117.816890391343563 34.1002287769284038
-76801 -99.0274392835447941 31.7402466387792046
-71933 -93.3649739086226731 34.4058987986567857
-67470 -97.5126025766208784 38.8985166630648536
-76129 -97.3648123692307479 32.7077943076923034
-79734 -104.022030253666287 30.6017993569779989
-54554 -89.0602147804675894 46.0558632774675232
-07404 -74.3390320714285764 40.980132142857137
-41616 -82.8749448543308063 37.5866776309055126
-43937 -80.8682277500000168 40.1258627083333295
-27831 -77.5700282792297884 36.4777987998874949
-23023 -76.9630047144993483 37.7900042989537042
-89535 -109.910255333333339 34.096541666666667
-35549 -87.5247776731914939 33.8590528937520361
-10980 -74.0044683345973198 41.2315780456331638
-99117 -118.435148356518141 47.7857375989171018
-44107 -81.8017680474539617 41.4820154305555207
-11302 -74.4859054285714279 43.1349072857142843
-17529 -76.1020025835767484 40.0379637432652302
-32034 -81.4738259813224062 30.6201690861501774
-61448 -90.2609380211780916 40.9176177701301569
-37754 -84.0329990429850398 36.1255457559560682
-05464 -72.8264907128588277 44.6479711774343428
-10167 -73.9747710000000041 40.7546485000000018
-99567 -149.448392881230347 61.4094453911643967
-85061 -111.311673666666664 31.5759383333333297
-03464 -72.1004821127645954 43.0868498790132932
-45344 -84.016877953899936 39.941441604428654
-98853 -119.283413093567276 47.4454019005848053
-25252 -81.5300359222191844 38.8810417886864244
-93620 -120.625864717871977 37.0216884622798901
-29429 -79.6895214797467446 32.9522939641310586
-72449 -90.8142228616071492 36.1671517142857013
-69130 -99.9651861473913925 40.8747281657605015
-87013 -106.975355290025988 36.0045899203224593
-68815 -99.1112600094191123 41.4164040894819223
-57045 -97.5111736293144133 43.2021077473737236
-42629 -85.107847217792937 36.9520517332436995
-40868 -83.4152671833260371 37.0911752680053013
-98619 -121.276952111420599 46.0010679805013396
-62881 -88.9477808394144347 38.6301337030540921
-76388 -99.6506966099071718 33.3222977399380724
-56722 -96.649664194174818 47.9820637548543445
-39669 -91.3607979867692706 31.1351857908933702
-53010 -88.2813246353943981 43.596034723880571
-52630 -91.705862293804671 40.803227508171851
-67210 -97.2598302076824979 37.6355725742187133
-40743 -84.1165379032258187 37.0751723598014991
-07901 -74.364041938540737 40.7140490391221022
-05736 -73.0135175514158021 43.6045728494783873
-00742 -66.9423301632653107 18.4716066632653053
-73052 -97.6114792411015202 34.8851069746020173
-25057 -81.2524797070707336 38.1246004040403932
-95003 -121.886697677872874 36.9831627074507239
-18087 -75.6031212049689145 40.5505367173913029
-25972 -80.7275104988066801 38.0491914868734966
-27205 -79.8407742017183466 35.6619452283441021
-00960 -66.1582152499999978 18.3573661250000022
-16226 -79.4989205420478555 40.7290022824878477
-48706 -83.9237315695285986 43.6056489585400655
-43502 -84.3042246841328478 41.5260825268329299
-97823 -120.193961353729307 45.2111739653262177
-63944 -90.4031420121273044 37.0837721733198293
-19406 -75.3728987100772656 40.0946484896844595
-15562 -79.1271837166438559 39.7457075171938925
-65809 -93.2021663936778992 37.1729174216225502
-02681 -80.1444860999999946 25.9471210999999968
-98591 -122.808865290475268 46.4470374362751457
-52156 -91.452942143588615 43.0628376125450814
-16611 -78.1007241636159222 40.5626878721949282
-31240 -81.8793998000000016 29.7360013999999993
-73686 -96.9674887500000011 34.5668560000000014
-76116 -97.4430842789470546 32.7199516113255555
-12190 -74.2884940828547826 43.3982715611156351
-13102 -76.2922171960784539 42.5533170980392228
-57780 -102.44204569482288 43.8043271702996861
-90033 -118.210139587076611 34.0501527751375264
-79339 -102.32539885568373 33.9017729181468539
-69789 -97.9781184999999937 42.5103474999999946
-27702 -81.4401392500000014 35.0924552500000004
-80033 -105.098688044009265 39.7726548895850129
-07718 -74.087799500411748 40.4174065687808337
-40041 -85.6639333599999873 38.2546226799999971
-19151 -75.2536350973630448 39.9766775584854344
-21617 -76.0461033836124898 39.0516767389197028
-10969 -74.4857329779710113 41.2902469762318489
-79639 -98.4123149999999924 30.6327203333333351
-95312 -120.639552406896584 37.4435233379310333
-80020 -105.060187455846702 39.927226758649347
-13104 -75.9673112605472767 42.9882866494895026
-60425 -87.6126892024056474 41.5467951642711029
-50598 -94.4151463208630304 43.0753566273381381
-79350 -101.837505301075254 33.7340899569892514
-39581 -88.5200479942363074 30.3932347015232622
-58433 -98.7120736107234507 46.3886945240543369
-12117 -74.2395829827786002 43.1433408320895069
-12175 -74.5731666127332602 42.5615120093268402
-22932 -78.6899822808423011 38.1172888952497075
-01066 -72.6287395729166434 42.4115100208333473
-28353 -79.5300680833333331 34.750016666666653
-32773 -81.2772420983215227 28.7622342433665814
-47018 -85.0656334535617304 38.9847796304896193
-22405 -77.4211482475398469 38.3210626162511261
-71764 -93.0382410950391971 33.4033116482721084
-76285 -97.5235638000000051 33.6949569999999952
-49621 -85.7805578539679772 44.8703332177488292
-99208 -117.44374732474536 47.7500876725688812
-39660 -90.5064800000000105 31.2420079999999984
-73746 -98.6773620000000022 36.6603627857142911
-50061 -93.7938889402987002 41.4890653204809539
-15693 -79.4088420746268326 40.2529991641791156
-97236 -122.510096557246968 45.485959056665564
-14832 -76.9223946249999955 42.6032047812499997
-44418 -80.6098703688253977 41.2991183150383989
-05761 -73.1474267153129318 43.3561857198868026
-17840 -76.4576483414634112 40.7791299219512453
-68745 -97.0837637756920202 42.4277038938460294
-98617 -121.169888748560581 45.6295783550863305
-23966 -78.2805624982384103 37.2777534357313982
-66963 -98.0361622478632455 39.6437977008547122
-25736 -81.2259991724137791 37.398084689655164
-16041 -79.7328165607823109 41.0026432119653066
-25857 -81.2243575597484124 37.6208350440251564
-22543 -77.4915446666666838 38.2388475942028947
-53046 -88.1701122701811784 43.1497391894563762
-91123 -118.159402099999994 34.1448658000000052
-71446 -93.2275519760815143 31.129332451536758
-45678 -82.3823185916116216 38.5996394023347875
-76040 -97.0995756589187948 32.8219439470270586
-61063 -89.3454745326171462 42.3103110896009511
-06419 -72.5750896449651179 41.3702771999621817
-17026 -76.4290668060837959 40.4581861203150197
-92115 -117.07033228540125 32.7604412788319905
-70646 -92.9208345294117066 30.108077799999986
-75253 -96.6057247105854628 32.679378855574349
-83014 -110.855092481078955 43.4928133652241371
-05661 -72.6119642402661043 44.5454791737309108
-52246 -91.5732550359870316 41.6516442010104271
-66411 -96.6480742719376167 39.6540900338424152
-34677 -82.6823968178317159 28.0505489579408049
-50579 -94.6431393763823507 42.3912519240099073
-99829 -135.440329239999983 58.110815875999954
-07512 -74.2194106178836392 40.9057349090908033
-15760 -78.80472383394833 40.6479980110700723
-93436 -120.4354894784652 34.6531085697462515
-78703 -97.7643507771729077 30.2935327913958972
-77432 -96.2144911694915663 29.0605066271186452
-71237 -91.4835374853801397 32.5968111881091431
-52217 -92.4190619235241115 42.082892724507964
-40728 -83.3767533999999984 36.8361002000000042
-25839 -81.3792419711836743 37.7775031549844016
-30840 -82.0000169999999997 33.0652735000000035
-49740 -84.9934613131836727 45.4963684332840899
-06424 -72.5034176248149151 41.5655285142398085
-14127 -78.7427830189683107 42.7601452768860426
-11946 -72.5198465541234327 40.8787447862786948
-37337 -84.857608557142683 35.780931466256142
-49908 -88.5276194752083398 46.8036477332163301
-25404 -77.9166081277279403 39.4838205626556658
-21829 -75.3922670412370763 38.0990629907216984
-06278 -72.172078768157462 41.8918265813792701
-46573 -86.0452569720155225 41.5397599953787662
-02904 -71.4370296860102911 41.860958581420924
-98290 -122.028817782813178 47.9403161744212625
-54893 -92.2826758984142259 45.8786715627799708
-65775 -91.8686992598860144 36.7099511572881099
-96152 -119.997289307692327 38.9211716923076949
-81140 -106.022397370547935 37.2845038808582316
-63218 -90.4006597500000026 38.484661250000002
-12052 -73.4831914806105004 42.7532909975573148
-78519 -94.5884535555555459 30.217856888888889
-75834 -95.0289200909090965 31.2590482727272736
-20135 -77.8762675926684409 39.1000188700332956
-32544 -86.705218255520478 30.4144566403785497
-73530 -99.0675811766916752 34.2450475639097718
-76239 -97.5475768968444328 33.519821594053397
-66221 -94.7104705158880904 38.8547413659486409
-70036 -90.1162763565768614 29.7095770760696851
-74469 -95.3174678694992679 35.506048928679796
-25169 -81.7773475302806787 38.1257123766617028
-46383 -87.0323435637209855 41.4823555375524151
-30012 -84.0092533331590374 33.7030849742869023
-80642 -104.621596016511745 40.0330217203302254
-12465 -74.4717894510637564 42.1440493157446312
-00678 -66.9348090957019792 18.4650530355300795
-50128 -94.3042420793060785 41.8504722218091274
-75481 -95.3740921102942281 33.3255558731617398
-30307 -84.3368685106207039 33.7693527273664955
-17417 -90.4827429999999993 35.9162722499999987
-65033 -122.116495999999998 37.252443999999997
-99925 -133.082591906666579 55.5596885826667233
-17961 -76.0661562909806719 40.6471954078948414
-85322 -112.785856812572646 33.3269399383003346
-48212 -83.0581442447389691 42.4103678532271857
-14055 -78.6201772816227589 42.5586214964200877
-45352 -84.7441363333333015 40.0501789416666725
-57548 -99.6030538122270173 44.0732465174672683
-44607 -81.1043390940171207 40.7040407777777915
-20168 -77.9294260000000065 38.792543000000002
-37178 -87.7828641291713012 36.3234029381052537
-98638 -123.767219635046445 46.3647989744398501
-83548 -116.51171439653028 46.3501914151177132
-72858 -93.0440820399480089 35.238235129447645
-37652 -82.1739613333333381 36.2839503333333369
-58006 -97.184075670000027 47.1064164125000033
-86035 -110.928204383333323 35.4150610333333375
-24589 -78.7756984881252293 36.7748858362867992
-64673 -93.5924110577347648 40.3898312080111594
-86043 -110.486773249999999 35.794254500000001
-12979 -73.3683533279043871 44.9864611476655512
-97109 -123.182741291077761 45.729898022735
-79607 -99.8210934619953463 32.4173375225653402
-84098 -111.538585428761081 40.7356602196032327
-17010 -76.5851796835443253 40.2777058227848173
-49246 -84.4956301202403068 42.1070355318637368
-16350 -79.3360221546539179 41.9632855694509033
-83414 -111.033283946725888 43.7685814150943671
-20630 -76.4676253977619496 38.1781395615463026
-63103 -90.2138051532209886 38.6308523253046445
-92501 -117.371294490654705 33.9936468714577558
-03872 -71.0292397416221775 43.5759194676608956
-18765 -75.9087791999999979 41.2362748000000039
-83446 -112.183935463414656 44.359483536585337
-01772 -71.5311881523104205 42.2956665996862782
-11783 -73.4903318299619599 40.6811902122136786
-66061 -94.8456983007764336 38.8993794458721354
-07876 -74.6568124084453189 40.8526944881650778
-11935 -72.4692466189389393 41.0115054965772288
-27835 -77.3880417142857198 35.5943567619047627
-44818 -83.0037827138660873 41.0077018046415489
-83811 -116.148338082300043 48.1333900365013818
-35728 -86.2547095000000041 33.4960525000000047
-93311 -119.119525604955314 35.318774287641105
-60096 -87.8335798242203936 42.4823551348723427
-36601 -88.0416135000000111 30.680277499999999
-74536 -95.3912582023047264 34.591416651728494
-57657 -100.766045193775085 45.4876410783131675
-17262 -77.7415393880749832 40.1507101839863694
-19481 -75.4733530540540869 40.0917466216216241
-76573 -97.5011049999999955 30.8127145238095181
-79763 -102.432610705323853 31.8327204397029035
-75681 -94.6907059017171946 31.9437670777415903
-34952 -80.2954163376014804 27.2886696403469777
-54527 -90.5945854066925023 46.1472692462462888
-89054 -115.202226447058834 35.9340255294117696
-08108 -75.0621438240190599 39.9153046242568195
-56433 -94.6921712233445021 46.9957242566405142
-47392 -84.9354944880952303 39.903114666666653
-07103 -74.1948536504207397 40.7382038156844928
-65284 -92.3155157132399182 39.1865198220037314
-79855 -104.820584469807812 31.0421900988105932
-01244 -73.2555399791123278 42.1024783681462296
-77382 -95.543856670578549 30.1996548074509512
-47190 -85.7320339999999987 38.2863690000000005
-49780 -84.7223893385208413 46.2182056354721738
-54138 -88.4835874738806325 45.32291919933229
-90210 -118.415097362522573 34.1026176045092626
-42402 -87.6079655714285934 37.771096666666665
-06483 -73.0867017886512826 41.3838520943146975
-91539 -82.569943181818175 31.8479738181818206
-97131 -123.871690545175966 45.7175999122227594
-76865 -100.141467043261287 31.8633771630615747
-25846 -81.1548085813953008 37.9271534593023247
-31512 -83.0080997141038068 31.5544753377904819
-39096 -91.0448051627642911 31.8234133635065497
-44661 -82.1125951052632104 40.5956821842104958
-04555 -69.4778721930833711 44.0997365809798367
-15721 -78.7875332339744006 40.8127671314102685
-60660 -87.6665426388358497 41.9910744875526021
-17238 -78.1306768723618745 39.8517303858176604
-84722 -113.626044971518979 37.4181584905063289
-72744 -94.4358329857934251 35.9555704718634459
-01375 -72.5634472205147318 42.4614998524778571
-49423 -86.1138266893590725 42.7640810277799659
-79529 -99.8181175356109094 33.4242665315575849
-49917 -88.3782398125000555 47.2837324017857199
-39935 -81.4375082857143013 26.7768814285714321
-41630 -82.8573122534819078 37.4660901236769064
-89143 -115.286945010726242 36.3149650196138154
-77443 -96.1996009870129569 29.3469013246753292
-50102 -93.3988957755101552 42.2350397346938564
-43026 -83.154760268933245 40.0233522800075505
-06375 -72.1172253681577899 41.4018394519862483
-56034 -94.1811270712468485 44.033097048346022
-74567 -95.3372625917159979 34.450549846153848
-30041 -84.1061194395200573 34.1878920600909169
-47722 -87.5317632500000116 37.970023249999997
-48096 -82.916924328888939 42.7576004955555788
-57402 -98.4578569523809364 45.4534524761904777
-13116 -76.0098291628371072 43.0756424595403615
-42760 -85.6050690000000003 41.3468704999999943
-56540 -96.2613755614545425 47.5376451472726345
-65714 -93.3096743058822682 37.0424699042092129
-60714 -87.8164869537623076 42.0320131612760264
-87937 -107.146961351270519 32.6593073741902984
-24373 -80.8550758333333448 36.6438254999999984
-15062 -79.8824707014691739 40.1512017504372025
-35625 -88.0309376000000015 30.8928429999999992
-39173 -90.4616356909090911 32.7265794999999997
-68879 -99.4810997621818416 41.8605991512726945
-13037 -75.8710023024953699 43.0544928702317193
-18237 -75.9928534426680784 40.8923018985667568
-40380 -83.8007651947346091 37.8241902548593458
-59466 -111.611041837894263 48.7899398437824487
-73754 -98.0767593623011464 36.3812817454100283
-25268 -81.1104968602362106 38.735381917322826
-73565 -97.9440043785309911 34.0171378968926845
-02110 -71.0541727914980044 42.3563669655870925
-47805 -87.3385741328454515 39.5404997171548018
-92603 -117.806233564633246 33.637617570624478
-50570 -94.3758050872726244 42.8888598901818341
-48610 -84.1438015316985144 44.1426591835780471
-18817 -76.6264573052631874 41.8674867789473737
-02180 -71.0962004752155394 42.4822504367193545
-83847 -116.389711895430978 48.5893654246274238
-44675 -81.2468653699109353 40.507650766206325
-24450 -79.4861251146666348 37.7892691481350695
-49820 -85.7348235483870837 46.2128162903225927
-44865 -82.6682111353659508 40.9877498274388685
-23043 -76.3400491752788497 37.5549690931228
-72121 -91.8129562683533891 35.4444636154877699
-73011 -97.7250014549355939 34.8610127081545258
-51529 -95.6217961355498858 41.861296856384115
-56229 -95.711308305993299 44.5961812201048176
-44103 -81.6421849953561178 41.5140520915892495
-83233 -111.213904354430355 42.1827833227848217
-36124 -86.1722224444444436 32.3769969999999958
-95375 -120.011848924430723 38.1984008685300509
-53207 -87.9001489914250982 42.983661768284307
-62469 -88.3315382806068783 39.3544525362946942
-87052 -106.348754266187058 35.5194862661870516
-12524 -73.8930121560594557 41.5393960145171945
-67560 -99.9062495008605964 38.4358149268502132
-29115 -80.866244252009011 33.4905403922468636
-68733 -96.689855649404123 42.2918983904674164
-59808 -114.089897942139785 46.9425600229825335
-96722 -159.477145870476448 22.2179122800000179
-48323 -83.3768675499905783 42.5699564530566974
-63621 -90.6019835258374115 37.517146738277539
-59912 -114.180934505528413 48.3703326303197798
-28555 -77.2416923747624082 34.8568343865797061
-85705 -110.986165454516041 32.2647450883442914
-54485 -89.1752278000000302 45.3728929999999977
-32404 -85.5588002577769089 30.1887283788366041
-94143 -122.405478050000013 37.7696042999999975
-81242 -106.075539530460617 38.5021595052005878
-36590 -88.2560914444444649 30.5022011111111127
-29555 -79.4812167860101226 33.8335535646979508
-55389 -94.4336034402661966 45.3149794018800947
-78221 -98.5007233097192625 29.3262598063061084
-45742 -81.7232744885424438 39.2817307778185025
-54428 -89.1066394329004368 45.4541315108225348
-46149 -86.5583791260211939 39.8864502514585411
-66539 -95.8519814627260729 39.1328750877812581
-67100 -97.7773349999999937 37.43293933333333
-13207 -76.1651197664190107 43.0187420567608214
-75758 -95.5028830990007833 32.2578080974294892
-65251 -91.9708811190099169 38.8482602032796933
-45619 -82.4524417432085812 38.4659002380950668
-81126 -105.368462538631348 37.1654892384105793
-25203 -81.8812546633663345 38.0221845280528257
-08710 -74.1825524999999999 40.0876269999999977
-83104 -110.839889999999997 43.3644469999999984
-03304 -71.5418282469762943 43.1349145660788693
-58109 -96.8077565999999905 46.8297302000000073
-48880 -84.5914877645546852 43.4324796184241109
-37803 -83.9745836602627094 35.6953511961861096
-01080 -72.3643448116958439 42.1813754397661143
-17130 -76.8824835000000064 40.2701284999999984
-08879 -74.2783209289326578 40.4655053732928849
-41540 -82.3007067095134346 37.3779169426289073
-00984 -65.9849955999999906 18.4093465999999992
-35565 -87.5940355618370603 34.2160668296410577
-08861 -74.2766985706820151 40.5213956190910309
-05875 -72.2595905974712878 44.7126699011494964
-45853 -84.1988323911765519 40.985420630882345
-81074 -104.524750000000012 37.1160995000000042
-21409 -76.4542586107439632 39.025223706528827
-68843 -97.8860707053315338 40.907157869956805
-67019 -96.7706856769534198 37.3181661969796608
-76681 -96.4308088871866573 31.9049657061281344
-44085 -80.8513754611448547 41.6090931829229405
-04268 -70.5895207173388286 44.223756807396633
-28369 -79.0303344801547354 34.4503821229382083
-38623 -90.2729077022471813 34.3642340449438208
-00767 -65.8801580323102485 18.0560565444264967
-89405 -119.47326493922651 40.4704390994475247
-30747 -85.3258276117129242 34.4917553570798034
-14514 -77.7973665562381882 43.1044539702268352
-80602 -104.909875583807349 39.9569298882559707
-53088 -88.3024150592592605 44.0737146296296558
-59639 -112.633859328108272 46.9585172837407043
-63673 -89.987325676659168 37.8330397388878197
-07752 -74.052531956521733 40.3227041304347864
-44423 -80.8986518541665305 40.7578639333333825
-12768 -74.7217087977558805 41.868856688935324
-80819 -105.023739503951276 38.9336450024316179
-41397 -83.6736275390727968 37.6657103284767842
-83722 -116.002843999999996 44.1515594999999976
-40701 -84.1280613539766904 36.9392181245372555
-10928 -73.9820805586042667 41.357256847899734
-47020 -84.9359496207218285 38.8108353294958803
-43630 -86.8893843333333251 41.7139716666666587
-21653 -76.1780973913043198 38.7515106195652166
-28421 -78.1630188910956178 34.5139686431645316
-16161 -80.4951476171734868 41.2013284597495399
-97520 -122.649693155704782 42.172619730530279
-06401 -73.0718011757753345 41.3422582533235072
-00982 -65.9878108812260535 18.4029454214559358
-86022 -112.613928732502501 36.9403214755513147
-76470 -98.6868927648764185 32.4773323004181478
-80478 -105.88194721232442 40.0009799848672429
-51201 -95.86161656994922 43.1832058235914076
-52241 -91.5848490622292672 41.6965739104635418
-98601 -122.453936246457957 45.9251867588019351
-99333 -118.137174201923045 46.7539059615384716
-18351 -75.1004806616915204 40.9218116318407539
-77986 -96.7503254047619237 29.4256849761904853
-91748 -117.896926130087721 33.9819015449852841
-68072 -96.5047807499999806 41.6091570833333364
-23320 -76.2361265804180732 36.7565622012557185
-33159 -81.897521399999988 28.8986243999999992
-83634 -116.406691913253894 43.4893559276638371
-76873 -99.3672796726997802 31.4980991674208042
-97430 -123.719393305953645 44.1435150110253218
-45837 -84.3036869411764513 41.0554726078431358
-31357 -82.0587507999999985 30.6635714000000021
-30306 -84.3506854951018425 33.7887128766014513
-62013 -90.5732203521126706 38.9516681173708861
-03218 -71.2805559173653052 43.3346474520958012
-07928 -74.4069114555318691 40.726312538306999
-90036 -118.350105527695987 34.0693800397462994
-75212 -96.8722742500395952 32.7810588107430689
-36123 -86.2217339999999979 32.3483925000000028
-50432 -93.7901027054545295 43.22053492000002
-28436 -78.2590870295541805 34.2901692438217154
-36207 -85.7554422130679797 33.6597196535131573
-47150 -85.8264377271482175 38.3091527765700945
-46404 -87.3741199807265332 41.5871560903855624
-66208 -94.6297741263274759 38.9989194542175639
-11426 -73.7187859000000003 40.7354500000000002
-89008 -114.474614000000315 37.6599482346055154
-79035 -102.725642627466172 34.6353621692556501
-93657 -119.498457923155556 36.7526428475834166
-58641 -102.588033386584328 46.6972598711385913
-73135 -97.4314843474983121 35.4019490849911733
-32035 -81.4509102499999926 30.6097399166666655
-33843 -81.5385657316094097 27.7381479613640103
-52046 -91.0096234148463026 42.4402967891215681
-64642 -93.8459097491373058 40.1775662893050622
-89444 -119.430245906893376 38.7692779956728515
-44129 -81.7354921460991761 41.3925142651707674
-73624 -99.1735139356912754 35.3538011832797565
-49629 -85.3962781347559883 44.9073503761932358
-14615 -77.6560840519801161 43.2095921989480587
-84050 -111.728924622410034 41.0783466381975941
-36105 -86.2977384724302681 32.2725890256304169
-80919 -104.854039104179648 38.9283820720640179
-10282 -74.0154434074074175 40.7163710740740825
-83872 -116.973619914640267 46.8661796615384105
-49302 -85.431313949269736 42.8317436002568641
-27860 -76.6645010971786718 35.6347079749216604
-84586 -79.3058194615384622 36.5626755384615407
-73092 -98.0939480350467221 35.1017993995327231
-17326 -78.0956383571428603 39.7234921428571468
-96102 -120.697233999999995 39.7819107931034637
-76571 -97.558842037271063 30.9479671779355456
-67552 -99.2543572901353457 37.9046561083172051
-03037 -71.2547237232264479 43.1408807118811808
-28640 -81.4087677512328582 36.4034909328346643
-74646 -97.4367952285714836 36.8198154609523627
-46202 -86.1594159544224709 39.7817019848073485
-42566 -84.7888813711789453 37.2910800825327584
-30725 -85.3497552733888369 34.9202367309792763
-55372 -93.416475243544312 44.7018335124509605
-06492 -72.8168806225087195 41.460993016136392
-98566 -123.880342499999983 47.4121359782608565
-42565 -84.9056989088554843 37.1474501196271376
-76825 -99.3391370308849417 31.1245252153588297
-95695 -121.802683149681059 38.6769454907293593
-12413 -74.0199878244773117 42.310717114832606
-17094 -77.2215167949809427 40.5887046536457916
-80422 -105.481562612004751 39.8650153382351533
-73951 -101.067067702127687 36.9549408250591185
-02148 -71.0596634234386215 42.4308996255691611
-22747 -78.172406067789538 38.7155931661873183
-12177 -74.2870024499999886 42.9527140692307867
-28460 -77.4142758548867533 34.5289891156344666
-30151 -84.3729540420168007 34.3829164537815117
-28021 -81.4001064412295392 35.387141356875766
-42374 -87.146552938110716 37.3320910781759068
-08889 -74.7642434697605864 40.6007652569343946
-93531 -118.620234302385825 35.242051908713691
-97428 -123.207408270833284 43.728762687499966
-78541 -98.1997806472116395 26.344116428671505
-39146 -89.9950355212692159 32.8778804211273368
-58237 -97.4021637783756091 48.411708381605699
-48091 -83.0607483328276999 42.468481384102077
-89424 -119.392300520618562 39.7622708118556787
-94601 -122.21793311586903 37.7784462914357135
-65584 -92.1313142307374306 37.8293945196051951
-11416 -73.8535038611111077 40.6840946388889009
-58365 -99.2609882826558874 48.861078385705099
-97040 -121.373740805753144 45.658279128113989
-22032 -77.2914429468688411 38.8191526270440477
-25841 -81.0960324128242291 37.5553647961095081
-61233 -90.2904262147650769 41.2928099865771898
-25046 -81.3844809999999939 38.4726294999999965
-01026 -72.9148982295918984 42.4626948061223715
-86939 -110.052436066666672 34.431902799999996
-92255 -115.569869250000011 32.8521402499999979
-59450 -110.717396387594007 47.5893858693676606
-00728 -66.6484844903505831 18.0103626759989197
-36053 -85.3992728901056921 32.0225805250504223
-52308 -92.1594545447761107 41.5819320373134289
-63828 -89.687231081249962 36.7535856187500229
-17252 -77.8024613155634484 39.9129377054437455
-04535 -69.6280488186412612 44.083898331836032
-01534 -71.6490652131357848 42.1424105829287114
-74620 -97.3833300000000008 36.4920550000000006
-53073 -87.973956997397309 43.7457948435510602
-73105 -97.5023154631110174 35.5113251409774122
-68345 -96.0456560066445491 40.0362815681063182
-56474 -94.3745869198765917 46.7334880959146304
-68408 -95.911081666666675 40.949456000000005
-01068 -72.0513883385102361 42.3475691074982308
-28770 -82.2831052356321777 35.620095022988508
-98583 -123.484934886792445 47.0026537358490657
-04227 -70.3091074545454688 44.564166626262633
-01144 -72.5906724999999966 42.1022009999999938
-65702 -92.4974588842652707 37.0922536033810104
-08887 -74.7935450308748528 40.5242583224699828
-39574 -89.1273560468944623 30.5974890693871338
-74304 -94.8126056666666699 36.6524550000000033
-73647 -99.1745046949404951 35.4017842514881096
-74430 -95.6571938795180756 35.1249061566265013
-84684 -112.995962600000013 37.0064068000000006
-71345 -91.9680654226803824 30.7402989793814392
-28716 -82.8400791849141456 35.4993775529112625
-55066 -92.5447064837514688 44.5356451094899626
-89106 -115.163372006849272 36.1838595916847439
-42101 -86.4682591098172537 37.0468778008420188
-34605 -82.2301968333333377 28.4787325000000031
-08757 -74.2536933196819717 39.9706083008520849
-67953 -101.828434357142825 37.2427440267857222
-44093 -80.6070201961745454 41.535631671897967
-84053 -110.020399967266712 40.4380033617020871
-62016 -90.4006359634509664 39.3000332636309011
-56325 -94.9509334858757228 45.562398214689253
-87045 -108.054462454884245 35.3720970484712538
-14891 -76.9217661346301469 42.3765720940078339
-24818 -81.6209845640432121 37.6049415223765422
-68781 -97.8280885787006014 42.0102438801071187
-50226 -93.7045126613072341 41.7753001205910692
-13743 -76.3373006779853824 42.2157928638556825
-56319 -95.2663361818739958 45.9949363831028322
-87048 -106.62294277045622 35.2392690216028015
-97199 -122.410256333333336 47.6551520000000082
-20661 -76.8825282666666823 38.3597862000000092
-54867 -91.2222701323056953 45.7617849884392385
-83213 -113.305449609292467 43.6319924551214271
-96793 -156.506972916091314 20.8966600932915902
-28757 -82.3038074247065765 35.6457776140887646
-45231 -84.5404687314028536 39.2444067309868174
-16033 -80.047304726240597 40.7929477180407076
-11558 -73.6542670307591578 40.6043854522251593
-67860 -101.276339093023196 37.9570466699463651
-07091 -74.1887629999999945 40.7505270000000053
-95569 -123.905882769792996 40.3780244007308156
-31009 -83.020482061283559 32.3083184782607802
-02771 -71.3209245022804765 41.8386923243159288
-45817 -83.8940829054035504 40.8842833104407219
-37408 -85.306686222147377 35.0303880676539805
-95374 -120.866082224112063 37.3421186263131375
-33773 -82.7619046665994915 27.8809397227364322
-13318 -75.2580744453125163 42.9288597010416595
-72562 -91.4197061206236725 35.7399052910556634
-29370 -81.9716693134422059 34.3821789425250444
-50068 -93.4648879130998154 40.9382949079117893
-25025 -81.4219688774703343 38.3112178142292308
-79095 -100.216112693670738 34.8569831914557184
-94972 -122.933621834688395 38.3170062249322783
-84005 -111.98782217354271 40.350138585200213
-73093 -97.492229102206494 35.0942249808565521
-31016 -84.0962763553061876 32.8601191975509792
-50478 -93.7775991468346746 43.3924169732071974
-87753 -104.983273069306961 35.818808673267327
-19316 -75.8322487534246648 40.0580875890410937
-57040 -97.5913546927711337 43.0652502891566371
-34488 -81.9288396076046013 29.2068257164449392
-08033 -75.0397374882767849 39.8946193231810895
-61564 -89.6546647797468523 40.4937901215189839
-01569 -71.6342588443413746 42.0634426645353656
-14125 -78.2733911519529073 43.0851436313537519
-45409 -84.1885479643269861 39.7227466651321635
-27939 -75.8785681618570749 36.2368728021749007
-03607 -72.2750808456873415 43.1907997688678478
-17220 -77.7416523240290616 40.1808000521844235
-19422 -75.2804082736869447 40.1584922230424368
-67480 -97.3833659395127285 38.9320712628371695
-81006 -104.523679494718493 38.2409789728847755
-50160 -93.7411310226244154 41.3741918280543146
-78953 -97.3467001253633128 29.8819891054379383
-44285 -81.0697992222222297 41.1599007777777857
-15340 -80.3135338534048202 40.2880344170870259
-60649 -87.5714267369603476 41.7615126438943278
-16427 -79.9701303116882798 41.8752095324675295
-90068 -118.331563119275302 34.1201228926317839
-46175 -86.9744924196977678 39.8251843293829353
-18846 -76.2425586888372067 41.6032370060464345
-19953 -75.6936441867041054 39.1521568102311051
-24566 -79.2600968391195835 36.7215136502963517
-21038 -77.6673273333333327 38.6199916666666709
-65473 -92.1235437467432234 37.7797945513287701
-28266 -80.9172989999999999 35.2301146666666654
-97125 -123.193609379254497 45.6591524059967568
-36108 -86.3703132835466079 32.3454536190583894
-72952 -94.2922496127256551 35.5634891823521215
-02777 -71.2126045600797966 41.7497720034630362
-28761 -81.9028665003426397 35.6719667937603901
-49249 -84.4363361294137746 42.0545531873370138
-25964 -81.3117570625000212 37.7441258437499982
-31216 -83.6947189454414939 32.732981641152044
-84535 -109.302000152242641 37.8776660625492028
-48094 -83.0367565439513697 42.7325172895905965
-16430 -80.1590745353535254 41.9727161010101
-78537 -98.052745029643873 26.1879482312251035
-84720 -113.113865094443867 37.671330304289981
-32708 -81.2764369383705088 28.6827545268036488
-79719 -103.394774991341947 31.4621991991342185
-54971 -88.8384938820905461 43.8712512534523995
-10927 -73.969033220451422 41.1964679614873646
-14569 -78.1618663731396452 42.7406214860564901
-75448 -95.7990132195995159 33.3159059663804911
-95212 -121.257835837698309 38.0328372096829526
-35582 -88.1122890367700364 34.4533705663301433
-44455 -80.6068089451645307 40.776697744516369
-27921 -76.1537730071017194 36.3343645164226672
-39156 -90.7954714115487889 32.5078051792389431
-14201 -78.8849860862341075 42.8970745015822246
-84640 -112.377380290983567 39.5103877172131064
-25180 -81.4249012064677231 37.7916916666666438
-31745 -84.8857250555555538 31.0047078703703782
-66048 -94.9515602405851666 39.2919105348486966
-43433 -82.871826541666664 41.5039689166666719
-66095 -95.4358675747277516 38.4674783968987057
-22524 -76.6975826333333117 38.1368016333333273
-60191 -87.9790041720766709 41.9630035577661147
-34661 -82.2623500497925022 28.6448484232364962
-85715 -110.829302920715676 32.2484156388890213
-07435 -74.4466388409594657 41.0472331590406085
-31822 -84.8908049149831356 32.8667420644068855
-65541 -91.7683964865470614 37.6378421165919477
-26056 -80.5801991382978855 40.5323298297872512
-71659 -91.7870270312500054 34.1433417187500012
-82443 -108.300651448588908 43.7250563017623648
-03753 -72.1267307482763727 43.5140482301598936
-85307 -112.309087651608607 33.5305248121546526
-66533 -95.9480865629899426 39.1576318571428672
-74729 -96.2759290021674161 34.1356227685305598
-04735 -67.8382126047059302 46.4244099505882346
-13455 -75.3550004000000087 42.9137811818181873
-18092 -75.5207496201027766 40.4691746160886865
-45159 -83.6912891231195744 39.3215089137412903
-95925 -121.206818282392035 39.4720171004982632
-14069 -78.6420660920097987 42.6032092046004891
-63043 -90.4457337196721198 38.7225964773010674
-29303 -81.9631392296736152 34.9886250096933509
-80631 -104.695591599072301 40.4247337927101569
-49050 -85.2472864435721362 42.4995964465161506
-57224 -97.1347058421052623 45.8405970300751733
-05786 -68.1567256666666594 46.8216466666666591
-56440 -94.9578889099496308 46.1381598991567046
-98342 -122.52281398096514 47.7513176743711654
-92870 -117.855342745231908 33.8825452909053482
-43420 -83.1130641286122511 41.352903558284801
-02053 -71.4302490925123266 42.1533553796552454
-96791 -158.12824044897954 21.5713345306122442
-49028 -85.1907475077289575 41.8461008843848248
-30339 -84.4681290756928576 33.8661739414978769
-80533 -105.194201115384629 40.206274461538456
-54835 -91.2483913098564869 45.6909940883825385
-54552 -90.3058581182291533 45.9719294392369022
-14853 -76.4848716347825786 42.4491148260869693
-58847 -102.888676103559874 47.8770993074434159
-46143 -86.1315418481016479 39.594825962320563
-20199 -77.5244162222222144 38.7797231111111103
-98205 -122.124722545335132 47.9756660078844632
-28147 -80.5534408162255602 35.6735147347784931
-62202 -90.1598809999999986 38.6162729999999996
-14632 -77.6156620000000004 43.1065585000000056
-17584 -76.2706320077052453 39.9604047092127033
-24924 -80.1413343887376044 38.1861256130790139
-52215 -92.3951556635796578 41.9080037594350614
-77511 -95.2534179571791242 29.4115119207115541
-38520 -89.4412355000000048 30.2565719999999985
-72105 -92.8681475945946033 34.4472131351351223
-92260 -116.384712679081005 33.7210356905905684
-13325 -75.4823890748685074 43.5626085993524299
-60461 -87.6919603009340278 41.5174575977974456
-52621 -91.5217521973269896 41.2051543942610579
-98439 -122.526196198384099 47.1281411337522513
-62656 -89.3684304877059645 40.1465124874349328
-84115 -111.889147776065982 40.7156151285399091
-35487 -87.5337216315789419 33.2165123947368386
-29647 -82.1632221999999928 34.1788454000000002
-50169 -93.3466732416880518 41.6593972502131464
-31808 -84.9997490134332594 32.6350078057056621
-11210 -73.9463079943532478 40.6277848613961865
-71373 -91.493118149438331 31.5276260294382702
-20139 -77.7061245560000344 38.6594108200000335
-46617 -86.2355584455465731 41.6850928988295308
-27510 -79.0810276783074215 35.9146330522559651
-55965 -92.1084834740041458 43.6523098858113769
-79702 -101.956060000000008 32.0597095000000039
-31380 -83.731998395833358 32.4912327291666756
-78109 -98.3124471108800861 29.5028446980651644
-52551 -92.1040816777513243 40.8187998043551232
-92704 -117.906215524354124 33.7238954397856432
-38771 -90.5466837158376734 33.7388752355631496
-77322 -88.5459993000000054 31.5779356
-98589 -122.842473381766652 46.8580841401711439
-54469 -89.8653821071663543 44.3482717896121699
-27580 -77.9775376470588242 36.4572943725490219
-72052 -91.8724477952756473 35.1313972834645583
-08068 -74.6776397250167037 39.9670559570007242
-68319 -97.755714496978996 40.9049360679758465
-97053 -122.872644885587107 45.8223794466566261
-18413 -75.6013016210526274 41.6392698842105204
-24546 -81.9162057499999889 38.3081135000000046
-48081 -82.8998872747953328 42.4958800285108467
-22553 -77.6230375032874633 38.2457766054245027
-53515 -89.7507680064990296 43.1197413336111239
-17331 -76.9759039823801459 39.7941588068729644
-35458 -87.7999521681818322 33.3187694545453823
-47408 -86.4812403614844243 39.2112718768342887
-62914 -89.1810114107142198 37.0130164297820841
-45318 -84.3588879044299063 40.128850068187873
-21623 -75.9723635591483628 39.1266341606860735
-89033 -115.139862375000007 36.2658113124999986
-10574 -73.7974223333333299 41.3585293333333368
-21875 -75.5587933875047071 38.4419385711000601
-42647 -84.5527766348869392 36.7113352083127324
-17352 -76.4935173722742405 39.7685736721184071
-05408 -73.2533879242700294 44.512124087591225
-78949 -97.0603670987652691 29.8173395586420504
-60178 -88.6853127725279933 41.9957664832165918
-23035 -76.3718504856696256 37.502979804361388
-50581 -94.5388916035270768 42.8395518767818331
-91906 -116.456816028111817 32.6592218074341005
-64116 -94.5747105581027512 39.1585913592321475
-59934 -114.914173293020966 48.6688871792542344
-79452 -101.816150750000006 33.543725000000002
-59440 -111.172854867285778 47.7119923587008756
-88211 -104.424355358974339 32.8193673076922963
-02833 -71.7757617741935832 41.4732394940577578
-21204 -76.632245975557808 39.404051851876666
-66739 -94.648856762778621 37.0770978082015645
-58630 -102.566212116792286 46.8564708196986004
-39521 -89.3945601764705913 30.3610232352941161
-03830 -70.9943265073370071 43.6294771562499832
-45717 -83.844517416666676 39.0664335833333283
-99321 -119.932376306074829 46.8432392733645244
-72275 -115.970851399999987 33.2692382999999978
-75942 -94.4285400105263477 30.8197631842105118
-47431 -86.8940819184944502 39.2372046547124924
-50959 -93.0838430000000017 42.2864985000000004
-15952 -78.7727602438017271 40.3010590066115455
-06762 -73.1196941352131233 41.5289846170828838
-46105 -86.8041558073792601 39.7633968038168888
-44144 -81.7360850181931937 41.4358490407030615
-78060 -98.1047892941176656 28.4511454411764717
-80440 -106.032521443884406 39.208663911766962
-32940 -80.7015385100285556 28.2272688275844281
-61454 -91.0650810939597761 40.6802265100671292
-13676 -74.9364598082887312 44.6507052906158819
-28379 -79.7637547577230919 34.941898543576734
-25913 -81.4719032500000253 37.6969387595238103
-95334 -120.732497885883717 37.3762014357713781
-53189 -88.2533710775705771 42.9746005659261101
-65787 -92.8733934836469075 38.0699032012881347
-84579 -112.384542624999995 37.7090368750000025
-99348 -118.451658447257387 46.3501135000000701
-35046 -86.557034607161583 32.8991633114669355
-61772 -89.0644944512921626 40.3941319264413252
-37207 -86.7762484543390116 36.229401432583721
-21661 -76.2265154092860087 39.1381885362319508
-29434 -79.8619099711118707 33.1401471279811446
-95745 -121.721736500000006 38.7923139999999975
-70364 -90.7137911856235064 29.6327018277980443
-48845 -84.8518176214099782 43.0994464151436318
-59326 -104.904256308599571 46.8257147498771786
-27104 -80.3244351571120774 36.0950432518196962
-72829 -93.3712305514706031 35.0186397058823502
-38614 -90.5798499353340389 34.1908229627071663
-95432 -123.673584579802764 39.1378123093441914
-13426 -75.9856855378151437 43.5673114537815067
-61637 -89.5940763437499896 40.7002630000000067
-89165 -115.06107775000001 36.2754452500000042
-14824 -76.713365541666704 42.2684445533536817
-53920 -89.6197671204379418 43.6620592518248358
-63608 -90.5501735909090826 37.9918551363636396
-73350 -96.5840149999999937 34.4335894999999965
-70049 -90.5577428167177345 30.0397230046012922
-85235 -110.764581222222233 32.9995730429292919
-12144 -73.7167529999997697 42.6368351492031863
-35980 -86.369264627134271 34.1816622645334789
-17222 -77.5207609461504603 39.8920275662362585
-99724 -147.411903907563016 66.3609469999999959
-79259 -100.4333743402062 34.3782521030927839
-51026 -96.0674972257162096 42.2646465492662458
-83535 -116.718201833758215 46.5403573442121115
-74471 -94.867766198273614 35.8193965986106662
-84947 -111.591274999999996 38.3993334999999973
-63448 -91.5416827696698903 40.0327199114847545
-68447 -96.0850868240418521 40.1896067351916528
-35584 -87.0855315150214011 33.8234343605150301
-49328 -85.7586410563757795 42.6317999494407047
-21634 -76.2087240608247072 38.2999104185566779
-57623 -101.623534639560361 45.0989608681318543
-34272 -82.4500472000000002 27.1363957999999954
-74477 -95.3769385714285818 35.9579392857142821
-81365 -108.065598631578936 39.3759541052631548
-22812 -79.0130606674675846 38.3852432356348885
-66064 -94.9721673796402399 38.4830363743906574
-28677 -80.9189422213488712 35.7491822302042053
-20716 -76.7280189657304419 38.9271325048883341
-36430 -80.7464224999999942 38.9118139999999997
-31799 -83.9975220869565362 30.8216825652173831
-87063 -105.992751174285644 34.5715386628571153
-06263 -71.9072366722689225 41.8404547394957973
-04061 -70.7308424472933552 43.6416415652421534
-84903 -111.84376675 40.6046954999999983
-83555 -116.691625437689964 46.1722713884497935
-02152 -70.9804808873355739 42.3755089952474719
-01850 -71.3052158782515448 42.6554481181359222
-56364 -94.0702689233550586 46.0035949481705586
-97712 -120.344227994219594 43.7445552658959542
-11520 -73.5865249341593568 40.654150407079598
-49242 -84.6312005091057671 41.8966648726561175
-07640 -73.9798525564852127 40.9915269702464116
-07344 -94.7905418846153793 36.5772824615384593
-75054 -97.0497849626903957 32.5926707954315162
-74873 -96.9747985831665176 35.2419066592598966
-97525 -123.065306765787952 42.4400161710585806
-78411 -97.386572372557751 27.7314958021145124
-62861 -88.05055169536422 38.0361005099337817
-41519 -82.3232139744792306 37.5888940661457909
-95062 -121.98853473263577 36.9722571526716592
-32409 -85.6510294542582784 30.335411270958236
-29819 -82.2101678016349098 34.0445516417803304
-54489 -89.9879599141829658 44.4589979515259799
-49677 -85.5307127629965862 43.9037980204586518
-18622 -76.2600924044750741 41.2026221118760674
-12460 -74.1609787402777698 42.4145009277777874
-18335 -75.1058073345521251 41.0697085694698103
-59840 -114.163634388979517 46.2150820044665807
-58838 -103.932002554347804 47.8076131666666697
-30475 -82.3731736949152236 32.2039506779660982
-68034 -96.2078421493506255 41.4555952708719175
-64113 -94.5952119584906654 39.0129654064690712
-03809 -71.2192151066799255 43.4647913330010667
-49250 -84.6343932464110082 42.013191079874737
-48855 -83.9129771277433321 42.6686941664836112
-07648 -73.9548745606909108 40.9940949837480844
-25852 -81.2174610000000001 37.6646276666666679
-28519 -77.0209451099656519 35.1224663951890008
-02661 -70.0399982795698861 41.6759607849462412
-59713 -112.607512510994681 46.606948863874301
-63301 -90.502807258762644 38.8094896902544946
-73170 -97.5418590341186302 35.3367461648521157
-77983 -96.680586460479887 28.4069485163193178
-42086 -88.7673180490720313 37.076455724770554
-04903 -69.631007666666676 44.5522316666666711
-78643 -98.6697610935498659 30.7187273456748429
-15003 -80.2172365365479862 40.5969716793834152
-98113 -122.354413352941151 47.7642428823529244
-26289 -79.5155466708074385 38.9892677950310684
-32830 -81.5526752554162897 28.3738727274800411
-31713 -84.7232525652174076 31.4414670434782586
-59226 -104.445907972904379 48.3366310355631157
-12778 -74.8141952980391949 41.6605132261437348
-45697 -83.6609208565539291 38.931625351421971
-54830 -92.2278254100686894 46.0192631833777668
-77444 -95.7796843463414405 29.3180213209756424
-46540 -85.7040875695705324 41.6803298361599133
-44135 -81.8057792079301862 41.4339570691526973
-64161 -94.4664069326384777 39.1619922381715853
-47596 -87.2345825061349416 38.858075769938651
-16417 -80.3156535496821959 41.9821962150605117
-40223 -85.5523920282550847 38.2565070677340131
-94707 -122.27838508259039 37.898252730887279
-60969 -88.1466666805554695 41.1087278055555529
-85281 -111.932075631887542 33.4250640577784566
-71678 -91.8155751999999978 34.020975
-37805 -77.1948990000000066 36.2537592857142883
-61710 -88.9551629047618775 40.4767435476190585
-45505 -83.7780884560405212 39.9094232180025017
-33178 -80.3690894111210952 25.8331573436771151
-47966 -87.4059713796993236 39.8843582631579068
-83349 -114.173591892665442 43.0771780411448617
-64426 -93.890773510838045 40.5085099707088432
-84094 -111.862229604947103 40.570871084098826
-60476 -87.6075044891233148 41.5717431476598378
-08093 -75.1315951876341899 39.8585738702645216
-23009 -77.1739795309811996 37.8027069707106094
-26218 -80.2866097955328115 38.8572490324660791
-68374 -96.605534666666685 40.2035925053763279
-76527 -97.7866461946448595 30.8379694783573157
-07830 -74.8149460323694484 40.719515807760267
-74859 -96.3277438137205451 35.4382344609413806
-17041 -76.5392024890511209 40.2196882189780993
-44870 -82.7120818772295223 41.4293296749076347
-45881 -83.7804797086860304 40.9576768841871086
-19035 -75.2823634092766696 40.0462799066510797
-01886 -71.4375393804260881 42.5893866237949439
-89081 -115.111854697311259 36.2599178674416009
-87195 -106.773608090909093 34.6289982727272729
-27377 -79.5992095666481703 36.0447126951377115
-73553 -98.8326788750000134 34.3709921250000008
-52732 -90.2207111115575202 41.8730519357855826
-14422 -78.0651953938898799 43.0793960976541399
-17323 -77.0282573870967724 40.0762648064516256
-02804 -71.7760977891227441 41.4315009936842813
-33569 -82.3051381161810411 27.8437605868931612
-77485 -96.0492015375840538 29.6352262257388936
-32504 -87.1852522290667906 30.486104455048487
-44216 -81.5800406055362544 40.9352495439182462
-24477 -79.0325347061066452 38.0187415459207259
-32303 -84.3292135925894257 30.4919490452039668
-54610 -91.9005459328215721 44.3349030825336214
-96002 -122.330559066758667 40.5429023431236502
-29274 -80.5050574999999924 33.0505124999999964
-60150 -88.880075984413196 41.9207743672674056
-35403 -87.5365777222222334 33.1881959444444377
-33924 -82.2049979454856583 26.5582586899488859
-20002 -76.9907675924543184 38.9035429382349704
-37580 -85.6764537499999932 35.0034762499999985
-30522 -84.345090833150806 34.7930891150228518
-70341 -91.0664929829912779 30.0253437063532154
-77460 -96.3967281308411117 29.3965744205607464
-18966 -75.0051355917454288 40.1894709024339107
-84626 -111.963332105555565 39.9665551777777637
-76103 -97.263954636126698 32.7493330875947066
-52272 -91.1213245000000001 41.6609650000000045
-25008 -81.3495135345996658 37.9375047883310756
-95121 -121.808953980860196 37.3048605869358596
-28827 -80.8243046000000049 35.0828829999999954
-79707 -102.156500902182088 32.0239870147551926
-82432 -107.935142665280665 44.257476324324287
-17304 -77.225116261515268 39.9743031830985487
-75859 -96.221159918554946 31.8952385729461696
-92710 -117.815670486486482 33.7115028918918895
-72924 -94.3973594235294371 34.9065867294117567
-28108 -80.6742903437499592 34.9354749843749914
-77832 -96.4174745714285706 30.1618901428571426
-75216 -96.7938904131067375 32.7097430903384705
-98103 -122.343594614346131 47.6709025232034378
-04619 -67.2538382797696528 45.1663455247315966
-64167 -94.484812044354797 39.3190563306451821
-53412 -88.0203223999999977 42.495215199999997
-49633 -85.2138625373269321 44.564550600307804
-48207 -83.0239397386690712 42.3522290005396869
-58789 -100.820933523195961 48.5586987216495132
-30811 -82.2332292500000079 33.078863041666672
-98576 -122.672493631429305 46.8778982033656391
-16111 -80.2862497567009257 41.5178544840205888
-93440 -120.286094309933944 34.7474046847681706
-74947 -94.5039072999999945 34.9937323999999848
-71801 -93.5931291784707042 33.6539585926440381
-14819 -77.4410473259881371 42.2182894014906722
-74347 -94.772654505803601 36.1817148912295963
-98611 -122.901483312437122 46.2875751703151579
-88242 -103.153402824843837 32.7889522344355271
-92041 -91.4635198750000029 34.7903882499999995
-99135 -119.09873512032901 47.6524782922271655
-02739 -70.8123363299396402 41.6612846495449674
-02925 -71.712075258064516 41.8303237741935519
-33388 -80.2540474000000046 26.1206572000000001
-14830 -77.0387377207104151 42.1299850205133311
-24898 -81.5880088114754187 37.6032551803278778
-46062 -86.0587079500353411 40.058103086833178
-31750 -83.2480373140432022 31.7256958063172014
-34753 -81.891192186984 28.5794318348199248
-28618 -81.5154170294439666 36.207812549431317
-85656 -112.934392666666668 34.355355666666668
-35083 -86.6014306268311742 34.2004946613339769
-77370 -96.5766035000000045 29.5301089999999995
-90012 -118.240319458426129 34.0629184090474055
-10573 -73.6753996289253905 41.0149838726940104
-95210 -121.297395106721524 38.023052038432084
-41531 -82.2324309014259001 37.5994471146931417
-25593 -88.0475213636363492 34.3866958181818134
-89427 -118.800317870967717 38.9450666532257941
-95682 -120.959671863377423 38.6451802385391332
-52536 -92.6076751746736164 40.9597962509138327
-29662 -82.3059883781650825 34.7760702236434582
-33851 -81.6272991428571686 28.0449865343915334
-20115 -77.9025339786377629 38.8152752062550164
-99171 -117.628276151405274 47.1000259579934948
-14411 -78.2078604903028634 43.2346967477529347
-00720 -66.3979026580882703 18.2110437279411634
-33625 -82.5564217742035567 28.0676926413546468
-13337 -74.9827387819173481 42.7446969909131553
-41603 -82.690157577918967 37.5580999677577339
-56360 -95.1248811225402022 45.8816673234001939
-80452 -105.568536713181331 39.7411390086667495
-95453 -122.921631182476673 39.0532731299956453
-30608 -83.4945254999999804 33.9913258846153781
-98859 -118.927113321407489 48.8103899758497377
-12452 -74.3625854217142432 42.2367537371427701
-45732 -82.0722086841858385 39.5103244361466324
-99029 -117.815837029299985 47.7134046291373153
-47404 -86.5736399993304389 39.2102529541172231
-98235 -122.425879098314624 48.5319692752809004
-74253 -95.0792414999999949 36.1614505000000008
-33957 -82.0890086623645345 26.4491167023856448
-30605 -83.3307620321288596 33.9147593461668464
-43347 -83.6609296126435993 40.4733785459770843
-75573 -94.2536738333333091 33.3647681153846136
-48221 -83.1502691147455124 42.4289425129802709
-22719 -78.2810333522523365 38.5214815067567926
-02659 -70.0224657076853987 41.6806548151875091
-54008 -89.6005790000000104 44.7144168000000022
-85080 -112.126050600000013 33.9162007999999986
-27511 -78.7839424402286141 35.7635084118480506
-32338 -82.4584192000000087 27.2356267999999986
-25696 -82.0775056562499969 37.6603727812499969
-02713 -70.9337033522267575 41.4204627773279412
-74044 -96.3850120751128969 36.0979868256194152
-59471 -108.890812774005724 47.3477251183316525
-45429 -84.1612286538892675 39.6848950173160802
-29209 -80.9337148311049503 33.966809178635458
-82938 -109.560231325555577 41.1895997299999621
-65257 -92.5232507231060879 39.2764196447399883
-73085 -97.7517789298245674 35.4872856140350876
-68367 -97.3456576035502508 41.0183370443786117
-31777 -84.5310984999999846 31.9289072469135817
-68665 -98.392105963761054 41.7156765484818663
-98951 -120.462825648177812 46.4517623910582671
-83116 -110.533204464480917 41.7735183442623068
-60973 -87.6561999336824442 40.5392000942408899
-93110 -119.767754849201751 34.434979302594158
-38338 -88.8500556097561116 35.8689865243902375
-77456 -96.1035821273584929 28.9603106981131546
-62850 -88.5930648941176173 38.5031839529411641
-90272 -118.536467237920519 34.0508489824881266
-80497 -106.091685617135141 39.6845256894243548
-12139 -74.5493346751893284 43.409943397727254
-23845 -77.9983643550724537 36.5657206304348179
-48216 -83.077856810283194 42.328228131526572
-43178 -80.9737306666666683 40.027005370370361
-47634 -87.1878175839148071 37.9342272765694872
-88009 -108.534203776435035 31.9197355287009046
-10512 -73.6974446520967774 41.4449992514535666
-16328 -79.72559265853657 41.6521043658536456
-25916 -81.4916720888888761 37.6808144111111218
-98119 -122.367148317730567 47.6396347688286781
-55969 -91.8532712382198184 44.0898892031412473
-98059 -122.131659531118487 47.4945749111607398
-77055 -95.4951071603239967 29.7967289674057412
-98556 -123.141006666666669 46.8837176666666764
-98937 -120.900078087194984 46.7534145994103767
-06415 -72.3464107867639257 41.5552288800806764
-53045 -88.1500326151636386 43.058987820883317
-03841 -71.1781675307429254 42.8833950509883195
-73543 -98.3672397860038785 34.4848787271805435
-81131 -105.686505135402768 37.9584465506385484
-75654 -94.801892759137246 32.1007524242002091
-03814 -71.1659750670135196 43.7713593092595659
-17518 -76.2474058361315628 39.817523631021956
-23850 -77.7416299695819788 37.156847607889695
-92383 -117.096989000000008 34.206944
-66970 -98.0359806119402748 39.9340001492537198
-15565 -79.0432881862744807 39.7492545098039187
-85648 -110.98845960329173 31.4775537288125804
-12459 -74.6774023527324147 42.2358489524485208
-68432 -97.0048167500000034 40.9012730000000033
-12061 -73.6739007321078816 42.5971027108691018
-60934 -88.355691015592484 40.965915139639705
-73541 -98.213601340500162 34.798925983764903
-30662 -83.142516319660416 34.2681841255950133
-45735 -81.9320551223645452 39.2474238470445727
-39296 -90.1718143999999882 32.326453800000003
-23304 -76.5751438022599444 36.9940334632768426
-48894 -84.795700958250606 42.9304368270377665
-13324 -74.9757516016521635 43.3146230447198022
-28296 -79.3812537999999961 34.893768399999999
-91302 -118.662835065836148 34.1377248195959453
-72718 -94.2235440814332463 36.266558556188869
-32724 -81.280021457923624 29.0402760850419313
-80722 -103.272487049620466 40.5380739725627919
-12942 -73.7839420566571533 44.2605330730248241
-07052 -74.2614614281921774 40.7877405348220208
-77201 -95.3652555000000035 29.765194000000001
-24271 -82.4252370025726719 36.7524000158749473
-02052 -71.3025941014387854 42.1836689677040368
-45644 -82.8548115048492093 39.4662360751697747
-80525 -105.05297446716672 40.5272394626408357
-62093 -89.854230609999945 39.0694628599999874
-78414 -97.3719303073019518 27.6659609776382709
-62664 -89.7184168778491227 40.2119272937852443
-01028 -72.5024057453321689 42.0637392392438088
-64780 -94.0343107365898732 38.0606323687739589
-45154 -83.9260754401772715 39.0480959466556712
-49083 -85.4476915938662529 42.3787726117101826
-88339 -105.503785925532341 32.9000779979541136
-29126 -81.4235096590252851 34.3128988775429917
-99691 -154.377776899999986 63.0173846749999811
-33597 -82.107637274615783 28.5767694307299926
-67050 -97.6773762306350903 37.6609178050478164
-54531 -89.7554999421604407 45.7719363661751615
-80721 -102.159278022889865 40.6766797110157441
-30033 -84.2831523529919764 33.8153235309943341
-55782 -92.2430297413534248 47.8278694045112616
-87120 -106.709949742386172 35.1381041778476657
-75974 -94.2440325879074834 31.92776355300375
-39202 -90.1775722413431424 32.3138343773466943
-65663 -93.2460868091787063 37.6257689871980858
-44511 -80.6975818871569146 41.0692576703972918
-16652 -77.9841766452312299 40.4963751116434807
-24437 -78.9317338796598875 38.2130072524526057
-86331 -112.111915572262731 34.7495953897810068
-60411 -87.6088478870055667 41.5078540632745927
-14737 -78.4320144114208091 42.3307435387102586
-85085 -112.09862580054218 33.7527135605276101
-30312 -84.3773071993975066 33.7445265472473324
-65043 -92.1091882822829291 38.6335107560053999
-46755 -85.2667723251865937 41.4511891348494359
-02460 -71.2078163091512408 42.3509457191347423
-65614 -92.8988635393909163 36.751272518382379
-08248 -74.658192429319314 39.1961109790576003
-52619 -91.5661233335860629 40.5246210379506522
-75151 -96.4849853199999785 31.9638299199999949
-62635 -89.4826445067713507 40.2955316321537182
-75682 -94.9460791690477066 32.2310503309523355
-71046 -93.9506911834101999 32.1691158198157154
-13730 -75.5347810065553915 42.2343886801747743
-84041 -111.98207323935722 41.0709978014269765
-66058 -95.5237722967837044 39.5472110964912176
-15460 -79.910784640000017 39.8061363439999951
-99783 -168.092563615384591 65.6108515230769314
-47720 -87.6362967041266643 38.0444237477163014
-57234 -97.1285996748110847 44.6532435452606578
-47117 -85.9672383785604382 38.1098626222732477
-16843 -78.4655994391534506 41.0026987857143155
-62351 -91.2740088550077928 40.1100936253276714
-17219 -77.6923984936424858 40.227315735976056
-48623 -84.1292562540323274 43.5157764729839585
-13681 -75.3779931921234549 44.4255398105375718
-38389 -89.1205026790123469 36.0973292592592614
-36579 -87.8335134372841111 31.0797834479012245
-48911 -84.572595171280355 42.6802370734360537
-36020 -86.3314189286360545 32.5040657335139898
-54762 -91.9920891791044539 45.2497937216244708
-63203 -85.8893360000000001 33.586820000000003
-65637 -92.1945368407604491 36.7414664747475612
-56265 -95.7068613436820073 44.9856459911294309
-97206 -122.599831921102776 45.4823258866627711
-98292 -122.313986057846208 48.2126769683529375
-13697 -74.8181514950841802 44.7452672131320881
-48607 -83.9330470848276207 43.4317654696552609
-23664 -76.2940816952925047 37.0624477889780906
-37212 -86.8012090385513915 36.1337858627410924
-32967 -80.4567926437442082 27.7097069378107221
-65010 -92.2557239746258233 38.7827951827739668
-13490 -75.4218954473683283 43.1063558322368152
-80752 -103.230916250000007 40.6291615000000021
-26376 -80.471243824782178 38.7820544883834373
-99827 -135.484531009039046 59.2467556674595954
-95943 -122.022360517699155 39.5949932529498838
-82923 -109.63488713723288 42.7127275821147236
-13134 -75.6842531071428795 42.9677913928571442
-58770 -102.114700599868527 47.8484744116294465
-76048 -97.790054969528768 32.4260675092764856
-74338 -94.6781547392702407 36.2520591400321877
-87001 -106.421113639335388 35.3933096811360883
-12188 -73.7027824643495393 42.8171941887699461
-47971 -87.2371260755980842 40.5259723126794782
-18615 -75.8599204129870941 41.4590324238961259
-65802 -93.3167696394450559 37.2116342033114549
-54534 -90.2061827508593268 46.4086498185136804
-32766 -81.1252106690943862 28.6417407865308071
-47146 -85.9015998529411746 38.3354343235294124
-93719 -119.738434499999997 36.8648524999999978
-69041 -101.741811202166076 40.1424364386282022
-87320 -108.762181249999998 35.8522339999999957
-75975 -94.41362931021105 31.8937807231644683
-98939 -120.468489297297268 46.5009488918918734
-52585 -91.9863268768588966 41.193935284354481
-12185 -73.5318799620880412 42.8874537620297716
-22472 -76.6303839999999923 37.9499035000000049
-30671 -83.1694027158469851 33.7515021420764967
-21838 -75.7421854577463449 38.0229521627842573
-55071 -92.9903442328825349 44.8339427654268476
-85139 -112.117121782571502 32.9651275436877427
-05478 -73.0994064992193415 44.8011282381880989
-81369 -107.13271446511628 40.5192226627907104
-40803 -83.4221077807262645 37.0240241354748392
-97089 -122.449137970546346 45.424677493842502
-81615 -106.939730518266657 39.2157882867220025
-00732 -66.6299918723404119 18.0453872127659558
-83961 -116.582365750000008 47.3162942499999986
-39066 -90.5991424083167232 32.3014015875252696
-93645 -119.629579378008742 37.1793403774617346
-41004 -84.0976916340068641 38.6569029047394253
-29113 -81.1251300575666363 33.4446968398375617
-99791 -157.420918308943129 70.4811686178861549
-72133 -91.6301173894736962 34.1945438842105318
-27932 -76.6201747969711278 36.102207822275389
-35960 -85.5871931179732428 34.1368107792734321
-00784 -66.1224080415865529 17.9829563257605258
-18054 -75.4373389202072104 40.3523192097691918
-52563 -92.2854169552590662 41.1639391478097849
-76630 -97.2338256207770542 31.3467855371621766
-00792 -65.8465101999999973 18.1742194000000019
-17307 -77.3096239932050509 39.9376603626270921
-19535 -75.8018379062500003 40.3362303750000066
-54870 -91.7421221210525744 45.6809498473683817
-04352 -69.9634016301177724 44.4658397084870813
-25221 -81.9920875384615471 38.2377663846153837
-56084 -94.4446303124999957 44.2734508437499983
-87940 -107.067559297005999 32.6584859616766536
-84311 -112.117298018499469 41.8158163658786748
-05820 -72.36003687882733 44.7424817977577334
-38453 -86.8044097654553042 35.1216539201948237
-01022 -72.5577372598822024 42.1936969007568905
-12953 -74.2778905875048423 44.806841536243553
-77451 -96.0008834062499972 29.4492814375000016
-89104 -115.108928299839661 36.1517788691953399
-79252 -99.7822675875095513 34.3188495690054296
-98442 -122.399262999999991 47.2952624999999998
-62868 -88.2341700732876149 38.6975711919807992
-40874 -83.4644356124567963 36.9843909833910161
-26537 -79.7139005870508441 39.4803452092163809
-86928 -109.457066400000002 34.024712000000001
-55720 -92.502604083370116 46.7274836404998766
-62253 -89.294023267052097 38.7588702445086781
-02478 -71.1753586340107347 42.3932136327719533
-15617 -79.6602108571428715 40.2695720423280434
-62918 -89.0842688258836972 37.7708290421718829
-28449 -77.9091706673714128 33.9975574341085078
-95030 -121.984022015794096 37.2279093015505183
-93261 -119.108475225419667 35.798930318944862
-42033 -88.0845350000000025 37.2701352499999956
-25124 -81.7650483472868075 38.6280438614986821
-33702 -82.6430292476114232 27.8426111333587976
-75968 -93.9682647789629897 31.2645219720484562
-89413 -119.94322269870699 39.0635829163792678
-45760 -82.0964055048422949 39.0100451599010896
-78331 -102.051652499999989 32.8514059999999972
-56658 -93.9404709767441659 48.0958824186046456
-65052 -92.6911829579820363 38.0544672753709747
-00663 -67.0221634285714316 18.4535566428571407
-61862 -87.9541732257597033 40.2962073675832144
-62427 -87.6676065732701915 38.881630438673092
-48133 -83.4937858576678593 41.7659783979285706
-98325 -122.784695290628278 47.9779306818080968
-59917 -115.019002500523769 48.8834152971534053
-58046 -97.7592861554053343 47.2630201036037008
-37132 -86.3596928351648216 35.8458692857142864
-42761 -85.4431219090908911 37.0924385454545416
-07748 -74.1159689736405056 40.3984586328975652
-12404 -74.2361442148592374 41.8179632401110126
-02814 -71.6838051922162691 41.9006944730386266
-62831 -89.2243163269545789 38.2312645341717001
-19111 -75.0797175494376887 40.0594765271109594
-79503 -99.6984002074324707 32.876868684459474
-50101 -93.6181182715355504 42.6737982528089859
-17522 -76.1775619495871581 40.175213650102414
-68303 -97.3814470350877457 40.2440886188197808
-83333 -114.3136253468315 43.5437653244614751
-28779 -83.2135787006688332 35.3549309927122835
-76820 -99.0542722003709883 30.7415247198515615
-01083 -72.2004027480999468 42.2063402660151894
-27929 -75.9956763169230527 36.4271919958974664
-17407 -76.7146515394063613 39.8810107359263384
-62967 -88.7640356140109787 37.5804124739010774
-63675 -90.6787018596490952 37.2980121520467733
-35243 -86.7443202808205882 33.4434114243811678
-04072 -70.4523740224400541 43.5229914415190677
-24324 -80.784775738596295 36.9742210844513934
-44485 -80.8451242780684112 41.2409481788731398
-47847 -87.4826152181743879 39.8302250421612811
-25235 -81.0886727078125205 38.6746032515625089
-48190 -83.5964443466386058 42.1232600399160049
-77376 -94.6882566240768568 30.4442480494830185
-79080 -101.196782587686585 35.6298334701492792
-30720 -84.9868191197642773 34.7651531130693172
-21777 -77.5304002304347648 39.27967677282615
-23502 -76.2144833700329087 36.8538234352897973
-39211 -90.1301162766830828 32.3710669301223319
-05494 -73.009899622718649 44.6122634458778364
-62436 -88.2514992582197237 39.1838836351242961
-44638 -82.1361416911848607 40.6336900753064825
-30436 -82.2975636878282302 32.1669050497233755
-46759 -85.1854209786061602 40.5985997665036322
-13847 -75.2789257326732582 42.2001117029702968
-77011 -95.3083976698312654 29.7424922217827046
-30703 -84.8331630000000132 34.7618708000000112
-37232 -86.8019931428571425 36.1401322857142873
-04627 -68.6551376135682432 44.2177975666777456
-70711 -90.594051495095286 30.521512752194063
-32234 -81.9813999570478842 30.1975733665849475
-07865 -74.8919200368814018 40.7837079077966251
-73598 -97.5850313333333332 36.4398363333333393
-08832 -74.3005610176211775 40.5184930748898822
-74674 -97.8723077333333435 32.3091603333333381
-66016 -95.2322970532543849 39.4770381808959812
-56385 -95.2279349890416711 45.7094292173803254
-59001 -109.51478880619598 45.5194735823726617
-55082 -92.8350217682616403 45.0583539851589663
-97817 -118.760909941176507 44.684307051233354
-85262 -111.836351007318598 33.7889382012514545
-70538 -91.5374494790301156 29.7803013738000537
-04859 -69.1573495088888279 44.0044426572221781
-88350 -105.692804654772729 32.6288884732060183
-30964 -84.5428354999999954 33.9546475000000001
-39303 -88.6790025833333289 32.4117946666666725
-62760 -89.8864783181818154 37.2665498636363708
-69107 -100.768477000000004 41.0516633333333303
-87255 -105.657060999999999 35.5785471250000001
-04629 -68.5183234674329782 44.4188964137930853
-68450 -96.1945732468421113 40.3682432578947967
-97441 -124.11059440549819 43.7301255257731896
-06792 -73.3130398387096847 41.6347746451612934
-84724 -112.145783836392653 38.6782961979249293
-99324 -118.382509974383808 46.0439217960367984
-59074 -109.258826519287581 46.3464559701987184
-97536 -122.530249710188841 42.7508556664150774
-77090 -95.4480699742800027 30.013573432003831
-36726 -87.2999395676971659 31.9916889554015675
-29721 -80.7783367272727304 34.6975400909090865
-81220 -107.481900393739494 38.3277614717091168
-65439 -91.0876901776859569 37.6698325537190115
-86423 -114.19971971428572 35.6196248571428598
-33782 -82.7100009797847093 27.8609546336533
-83611 -116.030240085862005 44.468793120603479
-69141 -102.961030467994505 41.3160775135135125
-29789 -83.3808972222222309 35.4347081666666668
-27401 -79.7715531901648802 36.0706662061755594
-92355 -118.365098099999997 35.6131386999999933
-33147 -80.2381359227918978 25.8516965465649555
-20107 -77.5291434047618822 38.9718764285714272
-74734 -94.557014406666724 34.0209944766666652
-53503 -89.9505534362162393 43.1362562211513918
-22821 -79.0449124604344746 38.451373643398874
-67015 -97.6555025555555432 37.2914916666666656
-07656 -74.0404919740149268 41.0349275499715276
-57627 -102.020156304347836 45.0231443043478237
-37022 -86.3051268962368425 36.5016746877424936
-50069 -94.0122419054327594 41.5309853420523325
-19148 -75.1585300719951448 39.9205461397193844
-33122 -80.3177059913606541 25.8012162246220136
-45766 -82.2517728194699203 39.324545184259577
-66407 -96.192765374414023 39.2464306423308358
-98467 -122.53764753313412 47.2053412201422518
-01904 -70.9642734166667992 42.4911146609731603
-24854 -81.5827399485714437 37.7232118399999905
-71254 -91.2267035818540819 32.7841472741616471
-93556 -117.629524396551744 36.0472790172413653
-62512 -89.2049232429780687 40.1319193111903161
-58007 -97.4673431714757044 47.0451459777411145
-15510 -79.0455850666666748 39.9635846333333404
-57560 -101.221649831578929 43.4759533578947455
-02558 -70.6588231495512389 41.7462790707876437
-88433 -103.815446899999984 34.9101862999999994
-54660 -90.5058517268022911 43.984514508402448
-80135 -105.070699112934619 39.2906255136394691
-92549 -116.722559895425618 33.7494293019376741
-74038 -96.5501979349974704 36.164969383255297
-30309 -84.3866183439825193 33.7975787303773458
-38738 -90.5162273000000113 33.9163627142857109
-76002 -97.0946971484238475 32.6198055235564581
-20005 -77.0310246992552123 38.9041280837988523
-83620 -116.430768999999998 44.8386534999999995
-54487 -89.7387812341043656 45.5667388139464151
-53058 -88.4061866447963922 43.1089311357466372
-38938 -90.3321192000000082 33.3689693999999974
-25133 -81.1208005816163791 38.4865684162704866
-93304 -119.02305365648472 35.339927447506831
-27703 -78.8246371181961365 35.965726045293458
-91903 -116.665563785714099 32.8149038982684047
-18602 -75.7526440359333009 41.1827228492550574
-11971 -72.4228310420481023 41.0580137541631558
-20776 -76.6145663594385269 38.8714237132055089
-54484 -90.0547268044843605 44.7991714878923943
-94805 -122.322737265596146 37.9421435742912649
-41385 -83.3594169854332705 37.6429801400825426
-38757 -82.9948912499999949 36.3969013500000074
-83873 -115.926714187554708 47.5266242585451195
-90248 -118.284090260016981 33.8780635844774025
-02832 -71.7232951927888109 41.5076862278008676
-72170 -91.4726269799196672 34.5810081686746997
-66602 -96.6322808571428595 39.0411965714285643
-85383 -112.282856630757806 33.7306672649335866
-88334 -105.209477728395015 32.5395619135802434
-73521 -99.3233858928989548 34.6496325251239696
-67017 -97.1134349704666846 37.8174549787360377
-38499 -86.7917908750000038 35.0653680624999993
-39897 -84.3267687857397874 30.9091507921891306
-59749 -112.141212518696435 45.4350223908454467
-71474 -93.0180481253870255 31.2574873978328149
-12901 -73.4692618820416214 44.6976824210239343
-49340 -85.1177101187637106 43.617860185871983
-24927 -79.9707285057267967 38.3505517374449951
-80264 -104.986008249999998 39.7424782500000049
-06029 -72.4490576141645164 41.9117280787537609
-04554 -69.5065174115130304 43.8626122384286745
-63381 -91.2392497596087679 38.9937193501048398
-27407 -79.875064110083585 36.0231594570126603
-67843 -99.9375323888888829 37.7314678888888935
-15346 -80.1245887061403295 39.9499813157894934
-78043 -99.4579002109105232 27.5087938250088158
-24579 -79.5231120257984401 37.603906950614288
-55734 -92.4887995581813556 47.3978904687910969
-96154 -120.145381999999998 39.1593033333333338
-13164 -76.2996686241610718 43.0923315693512876
-57272 -97.4878041344697408 45.1024907272727447
-78672 -98.4509107758220239 30.8646023141813259
-32526 -87.3308002818688891 30.4880346724244902
-97396 -123.517151745748336 45.1089021235411565
-21780 -77.465073171016769 39.6826312064666453
-13810 -75.1069526400757184 42.6105040197402403
-95481 -123.162189395348875 39.1321815116278984
-43812 -81.8832674381821306 40.2774005006816296
-70726 -90.9191957852492152 30.4572937630292202
-01568 -71.6043799122449087 42.1722212799999525
-12578 -73.7969987482084946 41.8062479579804176
-72896 -90.7981576666666683 35.1994241111111137
-72571 -91.5173792473989636 35.6403617942195794
-60510 -88.311495503601634 41.8456050744719619
-56003 -94.049847002265281 44.1853308614397591
-03235 -71.6573134985206366 43.4456933941485843
-79346 -102.761709708497349 33.7329734223969524
-53510 -90.3122284108337254 42.7380370121728319
-95306 -120.089526333333325 37.4339890577264569
-16686 -78.2373097103556461 40.6625135150628125
-96150 -120.001613935423407 38.902764428119724
-05490 -72.8720468095237948 44.5086979404761749
-33881 -81.7173774164311908 28.0511383693904293
-32010 -81.9922721666666803 29.9778398333333342
-61822 -88.2961743987673771 40.1117727544814855
-88232 -104.351518944614483 33.0998448253482991
-13493 -75.902748488692751 43.4246329646994909
-56591 -95.8461575999999695 47.0979671000000053
-64855 -94.4752442134250146 37.2514907877223109
-05735 -73.1774599741463874 43.6403058598448013
-72418 -90.1866126000000179 35.7599784000000014
-15300 -80.2308567500000009 40.2167287500000015
-90025 -118.442902772610566 34.046543553643339
-58522 -102.523348499999997 47.2790852500000014
-62261 -89.9940112290610159 38.0296102500000117
-70777 -91.0800219370284481 30.7332635290259333
-41386 -83.7843004402730713 37.4799151467576692
-17983 -76.5441413839934341 40.6387463734841674
-68659 -96.9372141443662088 41.5310166971831123
-73095 -97.3033524257293863 34.9116147960874841
-42069 -88.7555993887588386 36.9145450510204256
-89422 -118.117061676375329 38.3825126213592469
-87070 -105.901314861111075 35.0192854444444492
-43115 -83.1543757797724936 39.5014366231781437
-19119 -75.1900583950784949 40.0535193455922638
-56444 -93.8786978878035683 46.4214160327272154
-23681 -76.3825767758620486 37.0934369137931057
-98648 -121.928190505217032 45.6801284054594916
-69133 -103.486195782966973 41.2078778818681428
-11778 -72.9348381580186498 40.9555625911234102
-12814 -73.6658590939524771 43.5787048831145256
-15625 -79.6774906174863702 40.2662873606557525
-26040 -80.7300170480110211 39.9865446282578887
-74354 -94.8614979272336285 36.876847230667984
-24555 -79.4698890448646296 37.6693181161203015
-42160 -86.0653085169842029 37.0657398864801735
-71044 -93.9008173618215807 32.964098493761739
-78084 -98.8042583333333369 29.9491006666666664
-05753 -73.1728185371220547 44.005600811608339
-75460 -95.5670671317559766 33.670449754836028
-34983 -80.3501833677249095 27.3189969442929694
-08885 -74.8366501612903221 40.5762032580645169
-00915 -66.0484262768024877 18.4366090261486377
-01504 -71.5275068331841055 42.0330554247647399
-29944 -81.043463534857338 32.8195713022861284
-94587 -122.049333549760718 37.5903944042874798
-69138 -100.16117253085288 40.9540567198952274
-12325 -73.7399591000000214 42.1163897999999932
-43519 -84.395661397590402 41.4251794216867424
-98948 -120.327093415456119 46.3530867562923561
-78619 -98.0264476057021454 30.1060494287251252
-26521 -80.2376959344262417 39.7138229999999552
-06380 -72.0524272572815505 41.5658603074433088
-89129 -115.289563051733907 36.2321285301659586
-70056 -90.0301766329286153 29.8893215513763408
-30559 -84.2716836166385264 34.9493953400846564
-18324 -75.0117692968120053 41.1359219406703929
-89125 -115.265227499999995 36.2248797499999995
-84063 -109.730045262872466 40.2195204823848584
-93920 -121.677940068473333 36.1366061091298363
-65657 -92.9958526985215741 36.8474268342134152
-77469 -95.7280897206411368 29.5437503376916304
-38125 -89.8030680019556087 35.0273039112836742
-77242 -97.5424013333333306 32.6142103333333253
-70512 -91.9371714207791371 30.4062562298201335
-00913 -66.042221713043503 18.4513165304347808
-50524 -94.3543335304623838 42.595991940651281
-48226 -83.0509423579008939 42.3303546273586022
-73160 -97.4798575290612064 35.3376966371709926
-14415 -77.0201538218623654 42.7560504655870872
-34690 -82.7274207782678275 28.1912907482135431
-04455 -68.2992652603129216 45.3629379903982723
-58486 -99.4199003004736994 47.4193113516588056
-73023 -97.9693031875000031 34.986183812500002
-26574 -80.1803616250000175 39.5596687830188429
-35486 -87.6607935294117766 33.319026588235289
-60513 -87.8488351832028371 41.822570120928745
-41093 -83.5729391886171413 38.3899269654474367
-10972 -73.9865493000000072 41.3291593000000077
-78671 -98.6284920033806003 30.2092976348884932
-77470 -96.5766492199999504 29.5314503280000018
-65441 -91.2162379729995649 38.1351814826544739
-39363 -88.7782360451362962 32.1344372140078249
-16212 -79.5773742101911239 40.7584357961783326
-40372 -84.8910648302589692 37.9124227836261412
-19939 -75.1951862516713732 38.5632706343422598
-52306 -91.2577874741462125 41.9099757389532641
-77503 -95.1582123506288013 29.6882888650942718
-83338 -114.487801932862979 42.7069451961310875
-47327 -85.1749412577487277 39.8260834514548918
-71203 -92.0326325124811291 32.560763595584973
-59212 -104.171759768910547 48.2107902172102456
-48784 -85.453249999999997 41.5204450000000023
-49618 -85.6021891285641487 44.2995844202101239
-29623 -82.9601619999999969 34.5096209999999957
-36930 -87.4703455000000076 30.4290177500000034
-40076 -85.0833921848226993 38.1154605515242011
-49823 -82.9441705833333316 36.9925004166666724
-58278 -97.1212651322595804 47.7798977147390005
-75642 -94.1831703594202878 32.3710868086956651
-54538 -89.9130145470182782 45.9557537756705656
-29527 -79.1291644683309698 33.8111960309153048
-36278 -85.5170851193695682 33.3422808782262692
-22931 -78.7169814629907734 37.906319789032132
-32079 -81.8170958900343663 29.9798687319587742
-22850 -78.9231213025125697 38.5624068572864758
-32539 -86.5056151101491793 30.7728078713014526
-30118 -85.1371045535714472 33.6305074464285596
-25264 -81.9014413702171424 38.852299778697045
-93554 -117.521219520858111 35.4719437711561341
-67057 -98.7097558076110744 37.0362722875264296
-39077 -90.3978737142857227 31.9362951428571407
-29407 -80.0024916384839884 32.7972967408383553
-53550 -89.4877122500000013 42.5257370000000137
-12421 -74.5459131132342634 42.2465827377920036
-18344 -75.3542501588234757 41.1230207408496966
-33130 -80.2033858363903676 25.7678295634629677
-74379 -94.7070408333333376 36.685415666666664
-85346 -114.197139633161882 33.6876439785966255
-52210 -91.9987102652271176 42.3322258831672897
-24521 -79.0783560376878256 37.6144093748410242
-71431 -92.6625223333333423 31.2511681666666625
-79381 -101.733628414623766 33.326824399408288
-42758 -85.1977969140625078 37.3742934609374942
-23964 -78.6236036320482867 36.7817233884556174
-58249 -98.3571904970916222 48.7835739360125871
-78145 -98.0027817977527604 28.6419121123595453
-93238 -118.434333145423395 35.7693712763044971
-32340 -83.4120097345183211 30.4864441667512303
-02950 -79.5015457500000053 33.4133377500000037
-83686 -116.574349187986954 43.5352530587181477
-66839 -95.7666862817947901 38.2074202445692279
-61472 -90.3867298568588211 41.1001439403579312
-68947 -99.05806384362144 40.3202896440329042
-17311 -76.8414573428571686 39.8165095428571476
-95032 -121.951559526507211 37.2379745246875657
-04010 -70.9151084401497513 43.9283715396252816
-96825 -157.694497414308415 21.2919413482429469
-41044 -83.9748926337542514 38.601397222302019
-24473 -79.4015575732930046 37.9023599578314574
-58463 -100.479223346887849 47.4955389316313159
-53170 -88.1689945557970844 42.5511957630434878
-21869 -75.8931127517451074 38.448658541884825
-04901 -69.6057203785723999 44.5508237129840055
-43930 -80.7634175830629317 40.5755219209206004
-62917 -88.6315558511273451 37.689234725795778
-12411 -74.043820896247226 41.8789707947019991
-48048 -82.7834756921097608 42.732208596269281
-64781 -93.8100574807692169 37.9822543653846125
-91963 -116.611991482509907 32.6210026343310844
-80743 -102.967948514718287 40.2255088734230668
-39577 -89.1122416533164028 30.880441342761781
-93541 -119.14238347902868 38.0261174922737482
-44625 -81.0024381955836077 40.7520332925150299
-98604 -122.519024414382486 45.7955018340457727
-63330 -90.7979922822085399 39.2518254447852755
-59489 -109.421794448609901 47.6157778812131482
-22726 -77.8228175757575258 38.4048650051215787
-66551 -96.275378405152253 39.5234736463700074
-52048 -91.2581977968749101 42.7333612816177606
-29923 -81.2365764455645802 32.8626536754032159
-04967 -69.4123100970039957 44.7792315997053905
-98208 -122.189487447693352 47.8914308884951367
-33621 -82.4846394886975389 27.8508183509149667
-83241 -111.758658328605875 42.522223245913473
-67658 -98.9298507971014374 39.1014566690821184
-15696 -79.3660851517509798 40.2798062957198582
-38315 -88.6223657397111424 35.2683057674614204
-32688 -82.7104596666666652 29.2609456666666681
-47023 -85.3859023939594266 39.0866555519415328
-43019 -82.5733485726172773 40.4973545875919214
-63433 -91.1760256015037385 39.5475591654135172
-04485 -69.6094337390397442 45.3639435292274769
-20646 -76.9802932140188858 38.5214886390354749
-77905 -97.0677157201568406 28.7751881761427768
-40074 -82.8674037777777812 40.3145871851851894
-75241 -96.7786474103494925 32.6691787705018939
-41214 -82.5757015337672584 37.8042944963385352
-07677 -74.0620959539748185 41.0245610191771348
-26631 -80.5573290867309026 38.7853541571534421
-53042 -87.9814057640565039 43.9404033562127125
-28041 -80.4580100355329932 35.5869004060913809
-43986 -80.9959050625513299 40.3815537492455476
-98815 -120.491493571541596 47.52295757480492
-24273 -82.6330290711715492 36.9539275654851593
-30664 -82.7934888571428473 33.5601441428571476
-90807 -118.180857285629031 33.8326193308645813
-14032 -78.6381262439805511 43.0271114189406134
-39367 -88.6680401546008738 31.6753299381029194
-89412 -119.389249504545489 40.6697940636363668
-54016 -92.7087368264225944 44.9797336160397734
-72311 -90.8976789588235334 34.7144361470588194
-59020 -109.933958934291667 45.0169088952772185
-76136 -97.2891533333333314 32.8498136666666696
-68939 -98.9536392253086348 40.1069482445987617
-43723 -81.538783336576742 39.9623710901509028
-48097 -82.8199073438179312 43.1254371435286217
-28363 -79.5429254253464251 34.9413408260646889
-18303 -75.448270470588227 40.9447354705882276
-07430 -74.1595996793209906 41.0740620874245153
-11763 -72.9810975702101956 40.8261246761964003
-14788 -78.3741812878788267 42.0598230757575777
-26330 -80.2392226528322539 39.2950584849392897
-86556 -109.136854526315773 36.2352909473684264
-12870 -73.7799223468589389 43.8343152644696019
-57441 -98.5264890241403748 45.8205017639565284
-01107 -72.605243885764537 42.1214193643819712
-07038 -71.329118666666659 42.8819139999999948
-25517 -82.4619727336347523 38.1133601218793387
-15047 -79.7971484195121974 40.3128298097561029
-14075 -78.8390743258523941 42.7323268089618153
-62612 -90.0528302638958849 39.8877456843447789
-14879 -77.1991079605853656 42.3126040489698738
-59354 -104.376826520000037 46.2165541199999907
-15425 -79.572192821866679 40.0288476232470316
-53502 -89.4342171251042259 42.7079653227690059
-83806 -116.39413872277224 46.859904858085784
-92121 -117.195252815189889 32.8979684158637724
-79521 -99.7073159496750208 33.1325865262059551
-44109 -81.7013513295275118 41.4464591466856689
-45661 -83.0992911425853009 39.0393057418582217
-61474 -90.3754623792272298 40.7332614774556845
-60016 -87.8967447801855428 42.0468400802464046
-04573 -69.5544184564437558 43.9470972303103267
-98005 -122.167754820148645 47.6173231720081347
-13807 -74.9872236441989344 42.6081869502762842
-02170 -71.0177074079586816 42.2669758427693054
-45681 -83.259859717662934 39.3082522777244208
-58051 -97.0353993672081003 46.6314201610792978
-16130 -80.2195787582716235 41.4403267076922717
-30263 -84.8284391782125198 33.397186367698886
-63872 -89.5633798750000096 36.4138016250000049
-12777 -74.7246626077940164 41.5633913149802723
-32307 -84.2875328076923154 30.4264076153846155
-78512 -98.2069775714285527 29.4034160000000035
-61240 -90.443469528882531 41.4350592121155756
-06420 -72.2644122783752465 41.4818527119808422
-42154 -85.7264683723305296 37.0506669238626642
-03542 -71.445290384615376 44.606429076923078
-00669 -66.8752340710022679 18.2804043693317197
-54757 -91.4941472633708912 45.2404527356600425
-22656 -78.0870824346868915 39.2161449597511478
-48322 -83.3826269570742369 42.5415767171565093
-74004 -96.0363669999999985 36.3180943333333275
-74049 -97.3417408148147985 35.6097782592592651
-72437 -90.4519435438095769 35.8315369990475858
-74464 -94.9638023177649302 35.9431558901367723
-64646 -93.3159356382429053 40.1008051033591926
-49901 -88.391834650980357 47.2982833999999883
-94121 -122.493102183753138 37.7794287458731546
-73442 -97.6653740232558221 34.3256948217054401
-83135 -76.2789156000000048 43.2022539999999964
-70358 -90.0046332742638953 29.2309772377317501
-24729 -81.2467710975609663 37.4457373658536454
-27893 -77.9169498189938139 35.7107217432594553
-29360 -82.0422069392572126 34.4943265446702938
-24092 -79.7685010248292201 37.0117802538597189
-92552 -116.287076333333331 34.2260599999999968
-07080 -74.4149584165700304 40.5807071798957679
-74930 -94.7533392776287258 35.1866978897825362
-77017 -95.2531868229330172 29.6863067030030763
-72182 -92.0685091694915343 34.4348089830508499
-74425 -95.6331332531512572 35.1762426050420345
-37731 -83.0125340070671456 36.5421047292614034
-26421 -80.9284053878786978 39.1841455863635701
-47542 -86.9585307723868368 38.2997183146930027
-49665 -85.1477003781855188 44.1031082230466467
-55426 -93.3805870872666333 44.9549686289197368
-88104 -106.712190499999991 35.0117559999999983
-75437 -95.4717399565216596 33.2578562664595836
-48622 -84.8718602458333464 43.8565039868056132
-65804 -93.2522034616042816 37.1550602347016152
-45410 -84.1575841581621091 39.7476026289541053
-75670 -94.3885489528188799 32.5544747131147147
-32683 -82.7766989283582006 29.316238940298522
-37063 -86.4046055000000024 35.6544999999999987
-72479 -90.9091356559185897 35.6307626600413059
-27878 -77.832680912732485 35.8523331402003436
-24861 -81.3669405416666649 37.3729731250000015
-32041 -81.5954981874999845 30.6243501562499993
-83250 -112.205752932344708 42.6546801714549346
-38958 -90.3552685128205013 33.6008230512820631
-02806 -71.3168928090944974 41.7444178485629109
-37879 -83.5285858826728713 36.4788419641720054
-19901 -75.5133209462664468 39.1556416296194314
-06259 -71.9861784505705202 41.8707274041508839
-62464 -87.8809470198020222 39.0069460594059478
-21252 -76.6114602608695634 39.3948462608695635
-39151 -89.7876566136364005 32.083680295454549
-97119 -123.166895829341897 45.4423884966048774
-28027 -80.6650265031895941 35.4064069466790272
-33942 -81.3963628571428615 24.678487714285712
-59247 -104.483787738982997 48.5061868203389182
-52403 -91.6074614649392913 41.9813296921076429
-76304 -98.4851467499999984 33.9473781249999931
-98258 -122.083760739377624 48.0123237694155662
-55026 -92.3387689290779718 44.5173550023640914
-14013 -78.4138401453719069 43.0747092010220456
-68776 -96.4193538950123497 42.4668483425181194
-58560 -100.309754905518488 46.6626639607023037
-67846 -100.836348148445026 38.0075218352189452
-29206 -80.9621436012646143 34.0298033946076757
-93501 -118.189388021889044 35.0230083148914844
-33308 -80.1102075629701886 26.1910323883064891
-69121 -101.707182581728688 41.5547983330602761
-95316 -120.786287756530314 37.5334551907344576
-79256 -100.851305018487437 33.8739391512604939
-66217 -94.7765315300706988 39.0170226883844933
-31329 -81.3224435738522118 32.4008004824902827
-14589 -77.1768577229275934 43.2418121860372722
-65438 -91.507460929625438 36.9549892883087381
-86054 -110.665280828571412 36.5736053142857287
-96025 -122.278239215484746 41.2081816489427695
-56214 -95.32596656146508 44.6049181028530768
-94750 -112.263925999999998 38.4335748000000024
-30172 -85.0493064666666641 34.3381149999999948
-02337 -70.848416555555545 42.0174366666666685
-60619 -87.6044183927004241 41.7443465510889595
-77901 -96.9883095451328217 28.8099240884955563
-58736 -100.381357608833866 47.7994691850460782
-28081 -80.6569315461897105 35.5015083169775139
-23127 -76.7700191666666569 37.3712393333333353
-98573 -123.706276500000001 46.6747024999999951
-19530 -75.7827076425357831 40.5462344736809897
-37864 -83.5433751307692063 35.9632481076922872
-62984 -88.1773715144948937 37.7081611720401924
-03874 -70.860263300346972 42.8836922746377738
-31323 -81.4456149619157941 31.721058571840743
-73436 -97.0455896805555653 34.2442475277777731
-40424 -86.1507036153846144 42.8282864615384682
-65786 -92.957233254374998 37.9617699476155082
-46504 -86.1106093727357802 41.3023563970447682
-44682 -81.4040956149732011 40.3975110240641868
-98021 -122.213350131800823 47.7923341124175565
-81233 -105.836463030974642 38.4274186095480772
-42868 -81.4207746666666736 37.4191220000000087
-86300 -112.585839666666672 35.1617985151515171
-40060 -85.4401284410900104 37.5344522094576405
-88028 -108.628730727601393 32.938106383286474
-87524 -105.521630201612936 36.9713635282257798
-74159 -96.0831767499999927 36.0773377499999981
-35170 -86.8004420000000039 33.6711415000000045
-09008 -114.506984333333335 37.6138103333333333
-54965 -89.0138737500000019 44.166931500000004
-24365 -81.3636416771929731 37.323275487719286
-82212 -104.525692020491746 42.2290851284152637
-02199 -71.0829531428571357 42.3465531428571325
-63077 -90.9860601831327216 38.3298602442511935
-73058 -97.2449563006058924 35.8002570715151833
-83110 -110.949995486105891 42.7168418526837002
-36561 -87.5529629953607724 30.2907891082474627
-44070 -81.9150819876005158 41.4180158688277231
-57630 -100.921041518518507 45.4458330740740664
-30115 -84.4087095628991051 34.2094588069068948
-58430 -100.269960284960547 47.5757398976630768
-83801 -116.681397675249642 47.957673255587558
-47611 -87.0497127293611612 38.0267998370423541
-56589 -95.7068742356021431 47.1646051905386656
-11101 -73.9437227500000205 40.7469456730769224
-23927 -78.5326150868294945 36.6191121265539863
-79373 -101.798975421878751 33.1842776830975197
-08519 -72.0300816153846171 44.4235757692307587
-85653 -111.267053891376733 32.4133690951530795
-70566 -92.5755249999999847 30.1874883333333344
-13753 -74.9205093019035075 42.304459214059122
-79541 -99.8196395832164569 32.1527652132943302
-56166 -95.366527291899331 44.1948840370111213
-56531 -95.9604283719257154 46.00452440821838
-38633 -89.1904503849882104 34.6280028931584667
-58831 -103.672743852998011 47.8559940309477767
-35904 -86.0081304063299541 34.0565383588804949
-39507 -89.0373536717409024 30.396681437353557
-84534 -109.183159171052637 37.2404995131578858
-74576 -96.0162646408450229 34.6674399084506888
-35033 -87.0234569782185901 33.9601006132423322
-67363 -95.7167468297872404 37.3274495744680834
-32130 -81.3278255643839429 29.1421546163405587
-48734 -83.7446698789609911 43.3397100916358085
-98134 -122.333233502854412 47.5776956274975902
-72355 -90.7528491274709239 34.5888981758690903
-71841 -94.3278414324539654 34.1681836426858894
-59314 -105.31976276827092 45.0292326149732318
-95674 -121.493840841593794 38.9611343352769453
-84638 -112.284884497006018 39.514018263473055
-50070 -94.2474552620898578 41.4904810358471323
-30643 -82.9225842377024236 34.3759226624245287
-41660 -82.6434398216925956 37.4125733746918314
-84092 -111.809609737070176 40.5609808217274406
-55967 -92.5099414853572029 43.7871751554080575
-32826 -81.1824920539458219 28.5857961269623893
-51443 -94.7108950171820965 42.0835917228766831
-12823 -73.4110255828969969 43.1849967713787137
-40022 -85.3356093561054081 38.1533553103818619
-97484 -122.895402548916934 42.9070653823046371
-22924 -78.7255376000000098 37.9993436000000031
-96155 -120.080088534351191 38.8105308874045605
-73434 -97.593688782608794 34.6353514478260962
-29821 -82.1037128320869556 33.6439896108090224
-59366 -104.824522153846161 46.5399701538461485
-89107 -115.213296495634793 36.170597160404256
-60516 -88.0124989486830316 41.7629549898110497
-18202 -76.0253896431790963 40.9631104147685292
-42275 -86.4311887387554236 37.2229090773711349
-81648 -108.717649360724351 40.0032476701097792
-29062 -80.5819884129930415 34.0221265290022998
-63702 -89.5624972499999927 37.395933333333339
-52218 -91.5599807988733829 42.2914177604374046
-50431 -93.3692471229947074 42.7326535882352943
-05850 -72.0313386402214348 44.555904714022077
-70601 -93.2057070523706273 30.2258244832676901
-39365 -89.1333111963438682 32.6054565297902315
-13660 -75.1563842294628159 44.7734014703638934
-44141 -81.6216570750951576 41.3092665089353659
-17355 -76.698173379629651 39.7610040833333329
-36205 -85.8024976638176469 33.7188772592593011
-20837 -77.404379721776948 39.1320290313960157
-15551 -79.2653793737635652 39.8844432956792971
-24738 -81.3134318666666474 37.3041697999999968
-77049 -95.1713348904293213 29.8256445640115544
-81423 -108.266137000422447 38.0994796078142457
-33139 -80.1420361318929224 25.784677943244052
-47525 -86.5632860487655194 38.0176790018517821
-41438 -82.7367394000000047 37.1873619999999931
-47283 -85.5809787639224595 39.1746410778044876
-10604 -73.7451594274833582 41.0508592066225617
-49312 -85.810989070351809 43.6842061231155512
-77437 -96.2797983634092418 29.2044443232927478
-54970 -89.1096174618868559 44.0449066883018361
-62820 -88.242576104434832 38.2429345836910244
-29146 -81.3065910077708907 33.5223386749430645
-00606 -66.9780882924528527 18.1806341226415107
-15077 -80.4200464071856231 40.6266420239521224
-28037 -81.0099589997342093 35.5118616375469571
-74525 -96.0933625492016432 34.3281000150160907
-18915 -75.2576165436893234 40.2706627973300542
-77454 -96.2330588253968386 29.5475526746031711
-93021 -118.88341799585092 34.2860643736397535
-48202 -83.0779231093309107 42.3756133807729114
-25514 -82.5405291854342238 38.0968999071838041
-02093 -71.3611501152231682 42.0518497735882519
-25574 -81.9396321111111092 38.2566500555555606
-95639 -121.51550143089429 38.3692815609756082
-50561 -94.8386269496125323 42.4136704511627443
-68842 -98.5204681081081048 41.554225044515114
-44840 -82.1808749194752721 40.7921392911984313
-68862 -98.9315776177083137 41.6059182212023018
-16926 -76.7087792583803889 41.71375013333342
-39769 -89.0161541992641361 33.3410615133193247
-12134 -74.1637966975617218 43.2379384239129791
-43136 -82.8162816904458907 39.8058501452229265
-40033 -85.2542891155414395 37.5576834244725006
-27557 -78.1989944164919706 35.7834724836074258
-16372 -79.8447039371069849 41.2103345660377371
-79802 -102.305917999999991 34.2283089999999959
-98466 -122.536911602939611 47.2263169086002534
-86336 -111.780482939773336 34.8499451123712021
-65326 -93.0966615791273284 38.2053966912841148
-96075 -121.835680890827774 40.3464482210290214
-61401 -90.3726879451873515 40.9485618914579419
-63532 -92.5727938118723443 39.7508159199646656
-58405 -98.6987909230769276 46.9129004615384559
-82301 -107.245835907232745 41.8024317940251038
-15310 -80.4843409342282143 39.7918858375839193
-46978 -86.5102938586888115 40.8523091752340903
-23508 -76.3002678153617495 36.8877699587076648
-30134 -84.7708985317773625 33.777567783576373
-32209 -81.6930531041822263 30.3587499476840605
-68716 -96.8188006220221951 41.9295874505028863
-07419 -74.5747361683189922 41.1532340653059805
-74073 -96.0181648245450532 36.2957905272727075
-45044 -84.3820743808470439 39.4559444809668207
-18252 -75.9701429398296142 40.7835150873719385
-54490 -90.2405858947368387 45.3267374736842044
-68937 -99.8459755754681595 40.6063572668011972
-48654 -84.1355642681066342 44.4735687664124342
-43915 -80.9008190607452775 39.7580821878679913
-53403 -87.8113126339796821 42.6971834429876012
-70456 -90.5004285471856349 30.7891403753477846
-72144 -92.210766333333325 35.6272203333333337
-43734 -81.9080471367925043 39.8824402959905555
-22509 -77.0502150278884272 38.0849020717131523
-13864 -76.3926672531265609 42.2908335527763484
-90011 -118.258214517453112 34.0076886214356051
-49947 -89.6551527803807318 46.422646508052722
-99710 -147.676303450000006 64.865289599999997
-95549 -123.890150800135999 40.6655607459380519
-61260 -90.8792594577376747 41.2366637662402837
-48652 -84.2004504933963034 43.8557514349056206
-07064 -74.2456025165744933 40.5716394709944908
-75154 -96.8274337915732417 32.5274538910232422
-21811 -75.1792872491860322 38.340840526546792
-39463 -89.8161461481481638 30.7612471851851836
-28117 -80.8932364489268565 35.57461298965206
-38452 -87.7913661987092837 35.074860786826811
-72027 -92.5818956635700943 35.3637733398627034
-65256 -92.4384809684754316 39.122819730240991
-17109 -76.8244099351546765 40.290888763180071
-34691 -82.7571122265730423 28.1936429535586868
-55053 -93.0809621456220242 44.3524713304148293
-92691 -117.665332697162199 33.6125642894508445
-37681 -82.6236435566937644 36.2483787304736467
-23940 -78.1725436818181691 37.2068826136363668
-64502 -94.8540944736842135 39.7667017368421014
-43722 -81.5218458167115756 39.9184420943396177
-97532 -123.487537869501722 42.5420111053138825
-05065 -72.4239183781068476 43.7956095787941067
-35752 -85.9396575361764832 34.7508953705882746
-62030 -90.1618091739130278 39.1562790434782713
-42451 -87.3732190642544424 37.8558315115408988
-74127 -96.0305554812894826 36.1650284875047205
-31547 -81.5620616727272534 30.8048379818181814
-48302 -83.2948280587536516 42.584924913897332
-05161 -72.7944529693938591 43.2997707216009289
-55448 -93.3006878367258992 45.1901588748375218
-08346 -74.8640219333333761 39.5617747686274726
-34743 -81.3544844405469547 28.3302313672395059
-47324 -84.8486852340425486 39.7415689361702178
-15827 -78.5041216808510995 41.294450609929072
-48191 -83.5638297268491641 42.1313920669772415
-80475 -105.583622916981099 39.4347361433962433
-61276 -90.5860573108108014 41.309482054054051
-50322 -93.7310917313377985 41.6333509801669663
-24649 -81.9101367127539106 37.0800424183068955
-86305 -112.528825471285586 34.6364958672713499
-57270 -97.3388148714023629 45.8374957264116958
-45305 -84.0813791551925505 39.6410760552208359
-38054 -89.8726601932692688 35.3378760355768904
-39717 -89.7950320677965834 33.3563900508474447
-75321 -96.744527000000005 32.8620042499999983
-60409 -87.5468629242520819 41.6124031793456908
-73000 -97.3907051999999993 36.1237119999999976
-32329 -85.0035892105263144 29.7605559473684202
-81239 -106.642272026644449 38.5073467248126349
-64436 -94.6951512365184982 39.8596619763481144
-07881 -74.9072549242424088 41.1683356515151289
-23045 -76.2685063729792034 37.4317905034641925
-01253 -73.1040992157350757 42.2025267717764336
-13650 -76.2139320900746071 43.8230420992540388
-60302 -87.7896438234762115 41.8951456531072353
-75965 -94.6281055812538199 31.6848023849310003
-98908 -120.624850686782906 46.6091001585459992
-03642 -87.1094387999999924 31.4198414000000028
-95421 -123.1578716300629 38.5626724366605345
-06385 -72.1488950901222523 41.3477410615686978
-13435 -75.1491720592592571 43.3045238074073993
-61720 -88.5166537356521843 40.5488054782609311
-51503 -95.7944737865988571 41.2547389433738161
-15661 -79.359122371057552 40.3212916883116534
-13812 -76.3537425567038781 42.0287405308642334
-39573 -89.1480957854883087 30.7279448194966101
-32344 -83.8926922401202262 30.5135461751407178
-63388 -91.7511059313726207 38.8715601546003171
-97544 -123.279210319723163 42.2332423472475611
-72632 -93.7478548694182905 36.3853100168346089
-71837 -93.8707737092490078 33.2769787894227562
-25912 -80.9947705000000155 37.8523512777777853
-07855 -74.858754250000004 41.0527787500000017
-50211 -93.6797953537491708 41.4665213152066841
-46786 -85.2719245500000227 41.5316599000000011
-70117 -90.0304692014961319 29.9700968206030502
-93423 -120.413509999999988 35.484911799999999
-12450 -74.2375123734939564 42.1414306720214
-14466 -77.5814967253634649 42.7789041593969372
-65261 -92.9140238832578405 39.4824017389140636
-97342 -122.116827563542827 44.7399388536585576
-73719 -98.2933369999999798 36.9257218992248113
-48428 -83.1399000668926789 42.92805075493213
-56442 -94.113643002561588 46.677498046699391
-34432 -82.3856009849208135 29.0755728574990115
-62958 -89.1952987364172571 37.6221534230984105
-20001 -77.0189078485905725 38.9099584664723182
-52205 -91.28039307782322 42.1064445537703591
-25969 -80.9892168382748423 37.6440283899370982
-37461 -88.7290075000000229 31.2226638666666609
-75434 -95.3548190895522509 33.4175249253731366
-12093 -74.6298809167501815 42.4930302478791404
-54756 -91.849642216666652 44.5128988666666743
-32332 -84.6627369673093852 30.6126420955574403
-48875 -84.9083868857246244 42.8591983444384468
-59063 -108.925931692042511 45.6335110867566911
-73401 -97.1284569460118377 34.1791171016634792
-72199 -92.287416144981421 34.8312461328996505
-43708 -81.4360981666666675 39.922660999999998
-44311 -81.5206038563380417 41.0637142430583921
-60109 -88.5505251270718361 42.0498563701657559
-46537 -86.3069576007193859 41.4583834208633562
-01370 -72.731112309839375 42.5997548710905036
-61428 -90.1253796380513279 40.9507483326013642
-01010 -72.2042006561142529 42.133527708207744
-75778 -95.7053149196281936 32.3106200013936515
-05465 -72.962058422752591 44.4746963673627533
-49394 -85.9639295454545476 43.8532049090909055
-71958 -93.6642165609966497 34.1040428978891583
-58634 -103.29749531935488 47.4137314629032289
-05739 -73.0252539580988724 43.3566951460187298
-22205 -77.1395740759153341 38.8840312494542601
-79650 -94.5427477500000037 32.5948697500000009
-62941 -88.9703909883575079 37.2415604686070907
-37871 -83.6767252094135188 36.0415535275364931
-05823 -72.1424419444444425 45.0052604444444384
-25402 -77.8969598064515907 39.5164223870967746
-04288 -70.3678057179487126 44.1718381794871675
-64844 -94.2477813628057106 36.9129782274838618
-16213 -79.5576542142856766 41.1260618246753467
-32194 -82.1657859999999971 29.7903619999999982
-74171 -95.9577690000000132 36.0515685000000019
-95213 -121.226973249999972 37.9044997499999994
-44255 -81.2335671340564431 41.2881870323844709
-33486 -80.113729243202684 26.3454586835696958
-72644 -92.9546211501761945 36.4256605223894709
-75564 -94.2660716129032181 32.8999041451612868
-62879 -88.3602645079365345 38.7643465714285753
-33955 -82.0198046314613833 26.8179446532321073
-29945 -80.8020296391720478 32.6840748124452176
-94603 -122.173909228834844 37.739162150578025
-42411 -88.0311490630492557 37.2077990737487028
-63037 -91.3155379765931912 38.4147569184971189
-30016 -83.9428970792995983 33.5446319310485421
-08733 -74.304519075892884 40.0159060892856502
-66964 -97.8172511422222044 39.9244117733333468
-53126 -87.948664330905018 42.775652560661193
-11772 -72.9976938230078218 40.769597406283971
-63461 -91.5716448597669057 39.7914755121373105
-33323 -80.3133055302541976 26.1523389641961188
-40958 -83.582820498673783 36.8046683746684309
-58103 -96.8198546967299762 46.8573100884131435
-59875 -114.189870655858371 46.3889022383390142
-57257 -97.0048047500000479 45.51302167465753
-52642 -91.6854156666666569 40.980164666666667
-04852 -69.3195088371334691 43.7622762312703628
-75959 -93.8208673243317577 31.5106131227970998
-99349 -119.857602555435307 46.7217947903574569
-16133 -80.1194683987849601 41.2734700102334457
-49775 -84.453756868983973 45.7616112339571615
-45869 -84.3894253527107452 40.4495233725005576
-76858 -99.6604341778741798 31.2341738199565668
-96713 -156.040980700344221 20.7571128179543258
-25702 -82.3537134327233957 38.4344420177609436
-11733 -73.1024184516980142 40.9311096426914958
-86537 -105.081472500000004 40.3493119999999976
-30742 -85.2435769296374701 34.9520898394761161
-47808 -87.4511635000000069 39.4131539999999987
-50278 -93.2946478149395091 42.1524882689156399
-16750 -78.2994841232493997 41.888003662464989
-93624 -120.12620901179254 36.3917104551886723
-16050 -79.7685350194766158 41.0397008554515281
-48895 -84.2893454817310186 42.6930533633128135
-67951 -101.338607625247619 37.1687915131616222
-59273 -106.904248210526305 48.3508576578947427
-08610 -74.7141421528600489 40.199351176442164
-74081 -96.4446233494281415 36.1840410139771151
-40820 -83.1720673135392587 36.769863855106891
-36517 -88.0912984999999935 30.8141260000000017
-62217 -89.8413803287237442 38.1751013563807859
-83830 -116.394032457920915 47.1056179336634386
-14218 -78.8192294890923648 42.8186551567466793
-17076 -77.3110614374999869 40.6171693828124987
-25908 -81.2348143854961933 37.6639952013358155
-78913 -98.9710176000000104 29.9677708000000003
-62015 -89.542068148114808 39.2224425174919702
-56331 -94.6758093001818253 45.6844466764169894
-54473 -89.3475640199772556 44.6448434380979293
-04443 -69.4006411633353082 45.1756619002474196
-51578 -95.3949896551724379 41.7192134827586116
-27215 -79.4743471834778603 36.0574450576304173
-36619 -88.1975690712928184 30.595777213741453
-56551 -95.4708163748737917 46.3249251056351881
-95679 -122.241489009708744 38.8951867864077627
-22033 -77.3872503173000723 38.8773109664882952
-67657 -99.5029561089374539 39.2462544683544152
-32452 -85.6148726249999896 30.9796591250000048
-31083 -82.8257552459016324 32.0503009918032831
-59041 -108.937583435428323 45.5041533352380938
-28586 -77.1661565302218548 35.3085782070467857
-44114 -81.6752211971623012 41.5096089021526424
-24015 -79.9798528488355629 37.2564918554498234
-14469 -77.4611935249164532 42.8739232765117251
-69131 -103.020125163789615 41.3949731408450603
-95201 -121.390338789473674 37.9858269736842118
-13667 -74.9666205521628939 44.8278550071247111
-12174 -73.7871533318181889 42.3698978636363393
-21062 -76.6410768333333294 39.1856539999999995
-45340 -84.046608307759513 40.369796398430644
-18503 -75.6661784246396252 41.4100105058977803
-21236 -76.4835918926234797 39.3919405402663472
-49115 -86.6318371091810775 41.8733466116625195
-98503 -122.797698607836054 47.0240840481208906
-35602 -86.9676705217391373 34.5979370869565201
-42376 -87.090792122896886 37.6104502663110125
-49751 -84.4214089048624601 44.9750680583156708
-43903 -80.949984011798108 40.4739387987882395
-75120 -96.624403749999999 32.3605796666666663
-18742 -77.1187287142857087 40.7783462142857189
-91316 -118.518235453114499 34.1610794524590773
-56266 -94.9246774200505001 44.4090519605413476
-21541 -79.3598562431152601 39.5525303949644993
-97048 -122.965169253291236 46.0528424719958167
-79846 -104.187830102040834 29.4360239183673436
-62761 -89.5409005925925499 39.8502056296296203
-87715 -105.379022207289267 35.9913210455581023
-75062 -96.9677502417499682 32.8482637520800438
-14804 -77.8261574684373301 42.3123973535701907
-97346 -122.396542783829076 44.7536178551376125
-25410 -77.7545910000000049 39.3610109999999978
-08161 -106.875633000000008 39.2550339999999949
-12479 -74.6128786666666599 41.4459648333333277
-68958 -99.501387607438005 40.5080450764462867
-14173 -78.4716205722543094 42.5226491618497064
-52072 -91.3907026181164639 42.9231473089207682
-67070 -98.4861611774840924 37.021766775416431
-06514 -72.9374194166365299 41.3671001064629138
-48023 -82.6797949581436029 42.6923908023206238
-42574 -86.3588379999999916 37.5661696666666671
-49686 -85.5455800013340451 44.7902779686247143
-49833 -87.3307633954248956 46.2919977418300519
-56355 -95.2464884040978035 45.9255737364826544
-27514 -79.039124518947574 35.9472390911993998
-02535 -70.7387039603842993 41.3568102367029411
-75244 -96.8377334635045202 32.9218481616394314
-00753 -67.0457831041666878 18.0877090625000001
-52037 -90.6216413514917036 41.9692045045207465
-69157 -100.203341742857091 42.0470700514285909
-43215 -83.0050244665641941 39.9660864648585203
-38271 -89.1154899999999941 36.4890680000000032
-67349 -96.2690222926208747 37.4803672175572657
-55308 -93.8406832109078692 45.4284975738338872
-76491 -99.0427813445096064 33.0128155993294712
-25860 -81.1101798543689227 37.7664612038835159
-90014 -118.252479458204391 34.0441455386997021
-99184 -117.623431875000009 48.0592077499999988
-33741 -81.1464227142857197 26.9740755714285747
-31078 -84.041091504117361 32.7026885360293491
-27521 -78.6590688098159632 35.4109803460414838
-02138 -71.1301535293055451 42.3787100058209205
-40317 -83.2698045362318737 38.1878238985507039
-98045 -121.7543589813491 47.4745078147465023
-27107 -80.181585427787752 36.0187271445552284
-59244 -106.279603770392811 48.6643856465257585
-21114 -76.6814395753808782 39.0104236837781997
-58476 -98.9938530741687828 47.1915547485737008
-53951 -89.8586644794008009 43.4434951760299413
-45385 -83.9382916975823861 39.6806604170195598
-35173 -86.573621540362808 33.6439995944645389
-50120 -92.979531258527885 41.9337372782764675
-35579 -87.3558387256142908 33.6815810643774967
-12580 -73.8788588437951859 41.8533185303558852
-36904 -88.2461152486760625 32.0919302088096998
-83445 -111.69856723456158 43.9571343942222725
-94062 -122.268141203014423 37.4382646754828059
-63822 -90.0037085758810633 36.6620982994434641
-11357 -73.8267464333333265 40.7912292125000064
-15037 -79.8551451336798834 40.2634255202047271
-29385 -82.1007173633262255 34.9685510382321212
-70654 -92.8952842300435577 30.7140360413642668
-27610 -78.5705882223972338 35.7552933989354216
-97844 -119.508955734885618 45.8901762624859586
-59930 -115.162329469401371 48.8896031459314457
-60449 -87.7694674945611553 41.418698740327649
-62445 -88.3240249683860981 39.180052997781516
-65634 -93.1759201280000013 38.0474474959999682
-25064 -81.7398494931608468 38.3701089220536744
-97538 -123.590766338451317 42.2739286262863274
-52767 -90.4233602513368879 41.5699660534759161
-34973 -80.8546696103896068 27.3275938181818319
-23085 -76.8632720985916364 37.7009294628325975
-02951 -66.2334984999999961 18.444386999999999
-39602 -90.4512107750000212 31.5746282500000071
-55735 -93.007099125372676 46.2118198054396316
-60922 -87.9150409510975237 41.0062700075236037
-59941 -114.028834000000003 47.8900190000000023
-23161 -76.9233717016128224 37.7142449306451724
-96765 -159.500420470711333 21.9234173263598464
-47591 -87.5018600230002619 38.6694444011117824
-72123 -91.2347273816793916 35.2566693206106976
-23510 -76.2882145988504732 36.8532665356322156
-55029 -93.1999288461538384 45.6365589038461579
-43407 -83.2482097984748606 41.275146572984724
-16655 -78.5348516777214058 40.2351282032774265
-19050 -75.265804019129618 39.9383940566349409
-37332 -84.943102068045377 35.5880781188302038
-34982 -80.3260746280178637 27.3895549074430242
-16662 -78.311331848626125 40.3065535505527777
-13031 -76.2905294623805901 43.0410591436058141
-15771 -78.9992450854541346 40.8375626823750508
-24147 -80.8178513179839086 37.3901732682016288
-95403 -122.749002158541998 38.4866903336885358
-37342 -85.9610138122760361 35.3895820011042659
-05840 -71.7460365874999866 44.5785135750000308
-41843 -82.87545921253259 37.2729753477807009
-25827 -81.2372563612258034 37.7366525138479076
-62571 -88.9715006146273026 39.3991420914205719
-02717 -70.9653246520180403 41.7611706040124773
-28166 -80.8809751028116892 35.6776814522855901
-43793 -81.0993149476461923 39.7399508811126765
-56511 -96.0048185695229677 46.8215384421514216
-73529 -97.9812193138863137 34.369427126325931
-60537 -88.6015243510054091 41.5630762193784449
-94585 -122.00889960439666 38.2336221311638482
-00658 -65.9704655714285479 18.2550401038960963
-85248 -111.866175795510387 33.2331082997816978
-85522 -111.701105486486455 32.8898041351351296
-81435 -107.89745198386268 37.9342768626961444
-66951 -99.0416920561796559 39.8046042966292504
-02048 -71.2113065205581961 42.0216944341042478
-55418 -93.2397355118041276 45.0209798652219462
-96017 -122.325233927030339 41.1189161744924547
-83467 -113.88523086169495 45.1261449433600745
-40983 -83.7549864813688458 37.3347538760832478
-20735 -76.9011386315147689 38.7542002567106181
-21201 -76.6229986282917963 39.2945712130316664
-91916 -116.625597656377764 32.8922629561662632
-53224 -88.0329993617117026 43.1569393252918587
-29002 -81.2349169999999958 34.1324334166666645
-04330 -69.751231251294783 44.3471834107045808
-01908 -70.9262133449752525 42.4261716507353768
-65543 -92.2846709651474271 37.4904661675602924
-15507 -80.1430622000000028 40.3979513999999966
-99016 -117.149647704525975 47.6423872298564248
-71232 -91.5191524784376327 32.4117462452515213
-12173 -73.7572588396881912 42.3777308149913949
-17037 -77.4088426947988211 40.4364897618579135
-67865 -99.9427547493473725 37.4884689618798959
-02667 -70.0191459829439964 41.9297092482830109
-34442 -82.3959312389061722 28.9215703714598362
-49435 -85.8436093055710785 43.0216227501378015
-29451 -79.7570496909760607 32.8025692293732831
-46239 -86.0063973983965155 39.7244943577895668
-73620 -98.9832228689956395 35.5863696462882046
-01784 -71.5601566666666571 42.244048444444438
-95134 -121.940549511839933 37.4094140267152184
-95444 -122.868578172932402 38.4348613408521302
-04937 -69.6493648929435238 44.6177340619919249
-27859 -77.3412565000000001 36.070526000000001
-73165 -97.3496229340080816 35.3375945106092431
-05086 -72.3098749280675008 44.1046539339858725
-46049 -86.2212551768389375 40.2948400459049552
-43540 -83.9404327672744444 41.6970199741416039
-71743 -93.1454088972131444 33.9313893886143845
-58223 -97.0401720478723178 47.5103503829787215
-88416 -104.215752502369611 35.3707364344391593
-57065 -96.6232638364347025 43.9079572091086519
-81323 -108.489104179335101 37.4875211244652036
-52766 -91.3064881020314374 41.4700403232505792
-45013 -84.6180619444845377 39.4061525962655494
-44659 -81.7024102682926667 40.6945566991870038
-83542 -116.30599330588241 45.5590055788235091
-17073 -76.255327011385134 40.3043090469209844
-71469 -93.2959010852019048 31.6852421872649579
-55808 -92.2280421152211289 46.6762353517283941
-40313 -83.3922696184211674 38.1403577346245157
-48966 -88.2068882000000087 46.5440749999999994
-77989 -97.1431595714285834 28.9972902857142891
-48816 -83.9492608181818269 42.7593063030302929
-65265 -91.8885738039761009 39.1786560872807073
-60944 -87.6106695000000002 41.0738712500000034
-40107 -85.6338734018712131 37.7620271187620489
-80970 -104.684243212121217 38.8416550909090859
-47891 -87.0244720000000029 39.7388440000000003
-68752 -97.7153643294335836 41.9909265872718365
-75428 -95.9146465361092027 33.2569732360332679
-68069 -96.3040307370382465 41.2579114398509219
-42201 -86.6865956086956402 37.2506306086956513
-28637 -81.4208702473373194 35.7171897650887615
-61437 -90.9534788691357363 40.8656607135802545
-34762 -81.8819733967742138 28.7523232473118178
-40059 -85.5936776006824687 38.3564227028994438
-12916 -74.5137630923231598 44.837420936277006
-43535 -84.0276882184872846 41.3142655990395085
-58120 -98.0130649999999974 48.3691464999999994
-06262 -71.948760339743572 42.0220277275641294
-07848 -74.6873474518242375 41.0994040755377981
-76433 -98.0130308321776056 32.3151802545076023
-79105 -101.907473500000009 35.1917159999999996
-21223 -76.6476409267521319 39.2864155619869067
-85613 -110.352772782258185 31.5635274677419275
-40292 -85.760078749999991 38.2185193749999996
-16840 -78.2023079543011193 40.9258397392473299
-79837 -105.192948022500005 31.9330977600000061
-83237 -111.783652154030847 42.0295911468329777
-85739 -110.900451103724123 32.5143022551976202
-76070 -97.6567719854798924 32.2552594286616241
-61756 -88.9625384190791522 40.0321723437499699
-62273 -89.5935405821428787 38.7793340500000099
-66732 -95.1853184808916808 37.7997811011145828
-65774 -93.5316886366278908 37.924380375000041
-33186 -80.4067399184102811 25.6591187108465562
-46945 -86.3838978571428555 41.1237705714285724
-12759 -74.6516100298012475 41.7846128245032489
-78645 -97.9799133759039051 30.4490528590694325
-94533 -122.027656694494695 38.2708266677407991
-39343 -88.3329294285714326 33.2286485714285718
-36318 -85.95379671643731 31.1789999828616402
-30646 -83.3075261077143097 34.0653271576786949
-43967 -80.9184257483870937 40.017283341935503
-66075 -94.7076591409287971 38.1861011851197389
-01865 -71.267334538461526 42.5341187307692152
-12498 -74.1111754340015239 42.0370474551945819
-35206 -86.718455074464174 33.5694999568551538
-62447 -88.4379952872563848 39.3189973889055082
-45714 -81.6105599192518696 39.3054880589673914
-60304 -87.789658170621621 41.8725815946843056
-39362 -88.5262901038662875 31.4313117223747618
-00929 -65.8878701666666586 18.3925388333333366
-67578 -98.5958684766536351 37.964644450713358
-03564 -87.6414468749999997 34.7139428750000008
-79761 -102.353778577527507 31.8570746660032604
-91709 -117.729943139440081 33.9709824205200661
-17315 -76.8561464802016587 40.0095456355926942
-95428 -123.18495164756618 39.8297525828663055
-29474 -80.5375703943691548 32.9601871052199158
-98554 -123.562826195652164 46.5575518695652306
-31803 -84.5066470708257782 32.321379364572941
-30070 -83.888521351851864 33.5729225000000042
-50208 -93.0415456882165159 41.701791695024383
-21217 -76.638601333917336 39.306616491765979
-99030 -117.117741766044915 47.4793769464836544
-49910 -89.5911723398304787 46.5870586830508842
-01202 -73.0942330000000027 42.2589307999999946
-66080 -95.2472033205008444 38.415616801484191
-10976 -73.9264534265873152 41.0287890932540051
-92508 -117.323761812641408 33.8925843207222428
-21903 -76.0498127106865667 39.5695775301771135
-49722 -84.8620334405594576 45.4244482237762313
-38947 -89.9189586219511767 33.5172585731707215
-44044 -82.0529389354209968 41.2817162852794297
-22003 -77.2168373594304427 38.8302158910574846
-40492 -84.3047507777777696 37.4247581666666633
-55792 -92.5235730490775694 47.5566272322078021
-07747 -74.2373607273907368 40.408966464926614
-76019 -97.1096106428571346 32.731541
-80438 -105.706523584143525 39.761073330590861
-12180 -73.6364796606330145 42.7368797426221647
-17072 -77.0390703972603035 40.3361318767123294
-98433 -122.578705702482011 47.101567443174396
-77575 -94.7560532309041861 30.0761847722522866
-76963 -100.591220857142858 30.8573918571428578
-55370 -94.0433255987524888 44.7827462681912607
-75022 -97.1104651617346235 33.0264162756168034
-93550 -118.093338253934149 34.555467842628083
-36029 -85.9182601032992181 32.1906691984856934
-04556 -69.6256295101607492 43.9687340018198682
-12885 -73.8174230839238135 43.5217910867846882
-76431 -97.831422734000526 33.309205071295132
-75686 -94.9775534739398637 32.9829722862190238
-85291 -111.447878758620661 32.986026862068961
-38474 -87.2272997665864267 35.5270400797759507
-60553 -89.0246444200863891 41.8218833698703847
-15367 -80.059096781991002 40.2678611642969884
-36587 -88.3359753446298157 30.8186180166899746
-52760 -91.0897104633152992 41.5864440258151689
-52333 -91.5184390293240284 41.8010515908393927
-74524 -95.5904589999999956 34.505972749999998
-54161 -88.2211464090283783 45.1138840259077085
-23090 -76.7536289999999894 37.3394925999999998
-32052 -82.9959350000000455 30.4944464201205001
-39078 -90.1916485623398785 31.872979439795099
-39190 -91.1585786749999727 31.5839773250000064
-35207 -86.8187690120195015 33.5606949054246186
-33981 -82.2240307730331637 26.9193509902913739
-79320 -102.676782467687346 33.9214438244048182
-62812 -88.9175419796327446 38.0016400856827161
-47282 -85.6108078271028319 38.9778505093457852
-15775 -78.772558873357255 40.6367022616487716
-65725 -93.2743880124308617 37.4150295635358816
-30652 -83.4668967142857099 33.5930608571428522
-04862 -69.275377183338378 44.2512192028848972
-53186 -88.205891686416237 43.0114242326183458
-21662 -76.1933720946798729 38.7178431045987779
-55436 -93.3739745096722515 44.9032547771516377
-75544 -92.2133395714285768 36.3657167142857105
-53713 -89.3930463011987086 43.0368656833633594
-88265 -103.278277174193533 32.6705941354838743
-49680 -85.2530845705703229 44.6315997224366896
-83220 -111.396619413333298 42.3581509155555409
-94349 -70.0017964999999975 44.4047134999999926
-16254 -79.4528425291978238 41.2659970052631024
-15446 -79.385766335174992 40.0298569318600101
-27019 -80.2406490246023196 36.2959639290003295
-36851 -85.0815847803030181 32.1411222196969604
-69024 -100.832906043645735 40.2269393209242665
-94579 -122.154166756589007 37.6880637151733211
-62473 -88.5691119522498127 39.0234581010100854
-23301 -75.6608948279196767 37.7135214891724289
-39572 -89.6023724553225378 30.250965367909842
-19055 -74.8372248966943658 40.1493341740495495
-54481 -89.5838315394520208 44.5203081221520804
-97492 -122.500320230576236 43.7559445476190376
-54124 -88.3515424403689451 44.9053825641458815
-93669 -119.538780066115805 37.2683762937640779
-68020 -96.2547199936907987 41.9900925993690493
-76472 -98.1647599707242478 32.6245590080893635
-77378 -95.4203788074373449 30.4487158153569553
-60195 -88.0983013717276719 42.0624211652123918
-01002 -72.4983749173491958 42.3745030946057781
-49108 -86.2354343999999884 38.5038371999999995
-94040 -122.085045893585374 37.3794664357078616
-75640 -94.7030928363282811 32.7216631486962726
-15020 -79.947435008375237 40.2289833467337061
-91436 -118.490981779736046 34.1475308039648198
-79748 -101.651290938388556 32.3946427772512067
-72832 -93.6714177120000215 35.4332858639999841
-58313 -99.9682499263158491 48.1214610894736907
-79548 -99.9435014125560599 33.065397576233174
-30455 -81.7996411438640081 32.6912034121061268
-70549 -92.7315245299170101 30.0797566053126708
-58106 -108.66464666666667 45.7859379999999945
-48851 -84.9410960200125089 42.9623132213883281
-58356 -98.994309817685874 47.6871172914142321
-36005 -85.7314986672898129 31.8621440181817093
-33619 -82.3776754762452441 27.9412984921200724
-43555 -84.2557769807692125 41.4375864615384728
-36788 -87.6576094318181731 32.1225662727272763
-63785 -89.8129625259904572 37.2723669570590488
-80219 -105.035571933615557 39.6954407208123001
-02062 -71.202162067201499 42.1864670432296407
-53177 -87.9212469609281015 42.6990607606837713
-72202 -92.27992003102041 34.7427667338045865
-60564 -88.19996023282728 41.7033192658862149
-85924 -109.741066105437724 34.4574891571618664
-87831 -106.910317504451058 34.234471207715174
-37866 -83.8254272934414502 36.3419933442344814
-76022 -97.1469706425064601 32.829830001155095
-49122 -118.301944121212131 47.8955609090909249
-87512 -105.45140996836551 36.9299043936731408
-02660 -70.1580647301231295 41.7118697176651807
-11572 -73.6366593166484762 40.6357156644078117
-68841 -98.1536376918858622 40.7605121801900268
-30244 -84.2661391666666759 33.6474084444444372
-21203 -76.6017835000000105 39.297480500000006
-95412 -123.365403552679766 38.7125753048706684
-55451 -94.706293500000001 47.2537843333333285
-16222 -79.25415723134617 40.8732287373637249
-22535 -77.1664763282560529 38.1508680327494361
-70712 -91.5697183020133991 30.9531202281879168
-49728 -85.0179053118058334 46.4436822131944922
-08538 -112.431723250000005 33.3497984999999986
-96858 -157.884403137931002 21.346860793103442
-08830 -74.3183581416946026 40.5727562800591741
-31831 -84.7177378643502124 32.6798387204555354
-66971 -95.6001420000000053 38.3879019999999969
-55421 -93.2470108418795434 45.0504416860063301
-73435 -97.4898525580110373 34.3605577845303927
-04032 -70.1006253633341885 43.8539967286642991
-98001 -122.271800222857195 47.3140397502236354
-54406 -89.3108293394110717 44.4207391120909136
-74866 -96.8550873636363718 35.0750855454545487
-42765 -85.9191467761013712 37.3053936220119553
-04086 -69.9638644128789338 43.9511416847746688
-16056 -79.8372937736366595 40.7308940821255945
-43336 -83.5827400526315927 40.2927655526315789
-19147 -75.1551693944065988 39.93690836870244
-60542 -88.3391134987277127 41.8125510229009691
-70755 -91.5444396360076524 30.5721020782778972
-42849 -88.6987925000000104 38.5650341666666634
-02858 -71.6471226090534685 41.9620685864197753
-95382 -120.849416303656113 37.5238308937400546
-48164 -83.3831464441015413 42.1314175014332619
-55394 -94.0506129999999985 44.9704805000000007
-69367 -103.275941276628373 42.769318187739465
-15427 -79.9633745234183948 40.0634650981923315
-50473 -93.6762208810927461 43.4680547530796559
-69358 -103.954367425712249 41.9759894645632343
-65776 -91.9259059999999977 36.6573878749999977
-73038 -98.447273645778921 35.1428397911226611
-17827 -76.9498042489540239 40.7575155606694537
-03234 -71.3424677257504527 43.2169280321879299
-54947 -88.7004644281509371 44.1958104688253215
-95981 -121.010838607988944 39.6664262610311269
-20686 -76.4262964301675964 38.1970087430167666
-17547 -76.5707776133041733 40.0691784079343165
-03839 -70.9934339089950726 43.268363450456782
-35984 -85.5652932779999134 34.537135299362042
-37205 -86.8699659227608549 36.112140590423671
-12443 -74.0817297160096899 41.9301245094529023
-03469 -72.3361713015075765 42.8665532864321506
-27051 -80.1586758007859714 36.1804384686439207
-35449 -87.3399361290322389 33.1608464516129118
-28307 -78.9911901188151262 35.1441289052733978
-98674 -122.686359748687238 45.9318718927808831
-92333 -116.937765259539219 34.2685499965999441
-24232 -82.449319999999986 27.3452897999999998
-99738 -141.383979548387117 64.3965291290322739
-93515 -118.679450750000001 37.5677744999999987
-47992 -87.0535350044850276 40.3167272693745673
-17581 -76.0460340650602262 40.157139551807262
-95013 -121.740644212765915 37.2153570851063833
-50276 -93.913110112351859 41.8643250351945895
-89430 -119.301315887508693 38.8042564789509754
-47568 -87.1340096536843589 38.7925593905263071
-37309 -84.7373451552001455 35.3029632522717804
-02331 -70.6825552500000072 42.0101269999999971
-98304 -121.995009411910615 46.7493672741934674
-30728 -85.2490901883306265 34.6938425110348803
-48197 -83.6310533288112907 42.2131475944520105
-95389 -119.658935505339869 37.6397425930298155
-31635 -83.0786254586770383 31.070857906517876
-12509 -73.7353477333333274 41.7060523666666683
-36763 -87.9473810707070953 32.2497150656565879
-63961 -90.2681406413807537 36.577238038610048
-58475 -99.562339513531839 47.1549568726577704
-71325 -92.3239036250001419 31.0150033896360817
-67437 -98.5513227486237469 39.4859730385321299
-49412 -85.941730458502434 43.4656150234771346
-98559 -123.327472750000013 46.9588480000000033
-21436 -80.6509033684210408 37.3505610526315834
-95017 -122.243557380059414 37.089866625370135
-19335 -75.7206903296962395 40.0222897940670279
-68453 -97.3266190296391329 40.3998276784793333
-07472 -74.5116254999999938 41.1868861666666675
-76906 -100.460118166666675 31.4284068333333373
-68827 -98.1838316437956991 41.0384384802919442
-89046 -114.905575308383149 35.4690098802395326
-37101 -87.6421523312348683 36.0991421621975164
-85230 -111.679204136363651 33.0485706818181839
-33609 -82.5063939139189984 27.9428358530648318
-50057 -93.1559795524296987 41.1789069420290019
-91791 -117.895414979212603 34.0604064902176447
-37696 -82.4304115000000053 29.415673833333333
-12841 -73.5099517940199974 43.657454621262417
-62338 -91.2540559693344449 39.9782622008227264
-45330 -84.5265134184396345 39.6488041347517495
-16896 -77.7011514285714213 41.1874662857142795
-24710 -81.26301633333334 37.3156263888888873
-85710 -110.823784274859889 32.2122887642950602
-03835 -71.0669494988040924 43.372159949064482
-75006 -96.8849478076501782 32.9660997767293651
-63017 -90.5360378703428665 38.6450442174060242
-62288 -89.677113438952432 37.9894154330442717
-64076 -93.9546901017668716 38.9866031494910033
-43318 -83.9092906815333919 40.3094425297020109
-87322 -108.662717457413208 35.5281361293375468
-95135 -121.753321573932453 37.2941306235112009
-35748 -86.3912153950689259 34.7203947167597278
-03902 -70.6237051770385023 43.2148716676935862
-59276 -105.182546444767411 48.9120149389534902
-18459 -75.426486636363606 41.5073633939394071
-64641 -93.4044198653061244 40.1504169600000367
-93355 -118.524282374999999 35.4826525312499967
-57068 -96.4947340749803999 43.5731589526030447
-11333 -70.9616819999999962 42.0140975000000054
-59730 -111.236902482693196 45.360147663092512
-33344 -85.6585599999999943 31.0707260000000005
-33574 -82.2528069090909071 28.2925575909090945
-29456 -80.1199190002756438 32.9931011879835552
-60933 -88.271483006097597 40.4651422987804921
-79519 -99.7382565026315859 32.0580359210526282
-80212 -105.047290829275568 39.7712894666247223
-54911 -88.3942019393832226 44.2785357187758208
-33469 -80.1053064051526746 26.9696639539948855
-65388 -93.1445195000000012 38.2540052499999987
-53574 -89.6341095560459138 42.8189331491615519
-93102 -119.907815749999997 34.5451204999999959
-65679 -93.1096450602865957 36.6068654006488714
-14748 -78.6469771179302484 42.1411841083032712
-77095 -95.653763796098275 29.9031394054469182
-57007 -96.781396944444424 44.3186094444444336
-05405 -73.1953110612244728 44.4716312040816391
-14816 -76.7364871991786259 42.182835796714599
-35056 -86.8472732307692326 34.2095393076923102
-72512 -91.7476482224910797 36.2222990213335763
-04847 -69.1885503576826295 44.2450443029538789
-22213 -77.162439624831336 38.8959693819163093
-13209 -76.2430430387000655 43.0785343565658252
-79525 -99.8215555053810562 32.6320247253551798
-49779 -83.8853729209987762 45.4118783344248769
-53220 -87.9925780082786275 42.9675500523910685
-35491 -88.0871622542373274 32.9261521694915302
-63875 -90.0139628999999957 36.0953029000000001
-26432 -80.8093228888888859 38.9773763611111121
-61733 -89.3218302424630366 40.6168085537155079
-46712 -85.4253185714285621 40.6971104285714276
-96112 -120.1411037398601 41.8756677636364074
-47302 -85.375281404159395 40.1540337361715203
-15728 -78.9770984042484656 40.6795841512713423
-01890 -71.1463669128571468 42.4515350642285938
-40461 -84.3949656282361644 37.5935506764138339
-83353 -114.338380430907435 43.6817427396600593
-62950 -89.5592826631312136 37.7535769747474887
-32157 -81.581777574181146 29.482267649325653
-68601 -97.3601705927567309 41.4401740431660244
-29672 -82.9437709348477625 34.7362215488635186
-34688 -82.6977643711401527 28.1464833051054448
-15042 -80.2086429338874893 40.6845856215773054
-26003 -80.6724336834033267 40.0727961904216698
-36737 -84.7883143333333464 31.2412466666666653
-65016 -91.929830602659095 38.5481575769944982
-14222 -78.876335705765257 42.9189547852882427
-30507 -83.7724905656203731 34.2487562499879132
-48331 -83.4083213818051519 42.5080566679556568
-72126 -92.8391420002793097 34.9612810502650788
-40844 -83.403088867441852 37.0695232837209332
-61820 -88.2447440022787362 40.1143850196553799
-67003 -98.0385593666987205 37.1481614412897514
-27265 -80.0248147492524282 36.009722560324569
-59019 -109.269922955159444 45.6090355050385696
-59711 -113.044512300391318 46.1476244237987316
-97436 -123.604724649490734 43.6371454717679228
-14051 -78.7020422202211023 43.0284889535461801
-01027 -72.7010639191680355 42.2766142972243131
-05440 -73.2840317051471715 44.9490378943628315
-41122 -82.8652028571428474 38.4354734285714343
-31220 -83.7991390425279121 32.8712693728396843
-76161 -97.4250889999999998 32.8328365999999932
-66830 -96.0932780239520241 38.6183245312232657
-44880 -82.2225378471518837 41.030898692047387
-76932 -101.485160629970039 31.2463534284294511
-43403 -83.638263072727284 41.3769871272727343
-83612 -116.52114678570247 44.8364224511083904
-15727 -79.3066086263736452 40.5594501428571377
-07764 -74.0173987388535579 40.288062651929522
-27259 -79.5202754999999968 35.4821784999999963
-38075 -89.1550584607465879 35.3613909637524131
-12977 -74.1008536049382514 44.2956010123456849
-36470 -87.5160971535087668 31.5280934166666462
-40162 -86.0108969706623299 37.7502191697547715
-68652 -98.0761546902106431 41.8640250706319463
-07202 -74.2182227022684486 40.6547816342154604
-79324 -102.776271748251844 33.8642226524475447
-76073 -97.722852511889144 33.0987991550928129
-21847 -80.5600409999999982 35.7007967500000021
-62655 -89.9922424298779333 40.1660305998475451
-59660 -112.462271333333334 46.8083951666666636
-48213 -82.9950808501946256 42.3973472246297618
-89018 -115.663147916363513 36.5126739727272565
-26581 -80.554206481159369 39.6444651681159286
-54546 -90.6721946205727534 46.3081150330728875
-23024 -77.7774198062179494 37.9289796675959963
-26384 -80.7109368055173917 38.9682789963218994
-21762 -77.2467492340425252 39.4845464255319101
-22964 -78.9878458449744727 37.7153611533219575
-22460 -76.6145044072442687 37.8721701570108067
-35053 -87.0736709157940822 34.0441783332520913
-02322 -71.0465128584069703 42.1262006110409075
-68662 -97.4213433073391855 41.187100096330262
-86311 -108.587406958333375 35.5834034999999957
-65778 -91.312570235955036 36.5313986741573089
-13316 -75.7590220931921436 43.3679702539477319
-61761 -88.9778172401057219 40.5188327842886977
-97476 -124.428016442557634 42.8197982662337111
-19086 -75.3712358024377949 39.8899962712910394
-24467 -78.9751140703466348 38.2605668182430421
-81431 -108.357417997073057 38.1755414224390464
-23175 -76.6074284103636387 37.6549710810412606
-34602 -82.2904976264504882 28.5005193012239246
-34285 -82.4342699203327669 27.094469031780438
-61754 -89.1587571200632283 40.3263055458136677
-14767 -79.5047610814689847 42.0515806112283599
-02060 -70.8857924893616911 42.1006805106382913
-81004 -104.67528599256967 38.1544937545914564
-49660 -86.2490490596263868 44.2387728927026416
-99113 -117.146696945980594 46.592420529260508
-62206 -90.1685002936197577 38.5631053041390643
-59237 -106.916368904761924 48.3536470000000094
-78739 -97.890648454981303 30.1828090782265726
-22179 -81.8478490000000107 29.1291832857142872
-38423 -90.2735136666666591 34.3580833333333331
-43541 -83.828508798076939 41.3014023557692411
-88240 -103.143750761940154 32.7127814820993805
-51106 -96.3505571903347828 42.4662975460762411
-64063 -94.3560592282428701 38.9130203022839183
-64750 -94.1160575337954839 37.9350536429809182
-08511 -74.5605818726158134 40.0457308065395523
-83217 -111.879273753815951 42.7630768719842536
-17841 -77.3694429099443397 40.7102220200123881
-83823 -116.554422855421905 46.7777856383891901
-24739 -81.0351530234510591 37.3715109562992041
-95742 -121.230133757388728 38.5658785888275872
-65962 -91.591374799999997 36.6919111999999998
-45449 -84.2379935766253425 39.6627516494914616
-59304 -106.235707399999995 45.1266316000000032
-95683 -121.099458466112097 38.4994618892045395
-80622 -104.474511196261687 40.5394424018691382
-46201 -86.1096470395376912 39.7757671637806496
-95045 -121.540596374999822 36.8426350556308222
-22103 -77.2339763333333309 38.9316159999999982
-92276 -116.353320232275905 33.8102946290423034
-13218 -76.1603192500000006 43.0578912500000044
-93222 -119.160345597448497 34.8466537324593162
-55373 -93.728795215635941 45.0938838870478165
-89156 -115.03549481454688 36.1998252772204623
-01012 -72.8386054066193509 42.3887686518912616
-32465 -85.1956309421302223 30.0707536565228573
-73538 -98.3027772662848776 34.7631863495174542
-17032 -76.8716884038168047 40.4804818180524109
-33853 -81.5517213983498834 27.8976667070201501
-02770 -70.8387473828918957 41.757846803227288
-56017 -93.8117921408220496 44.3004873380821138
-64015 -94.2967126287055777 39.0210244327854525
-96797 -158.006627223140526 21.3908016446281053
-37821 -83.1962365171009282 35.965116476401505
-31709 -84.1823691347849632 32.06400553764108
-70647 -93.0089433220309587 30.2531532551319415
-12738 -74.5867153864077608 41.6617203436893462
-62780 -74.7335245000000015 41.4068129999999996
-44853 -83.3067928199167795 41.0508025078837875
-05053 -72.4992206765881093 43.7126976010661963
-62970 -89.0967630719055848 37.2078161597328787
-47123 -86.4760104161290144 38.2791018935484146
-70517 -91.8635163795193392 30.2963346728822707
-81248 -106.412509987499973 38.4837950867188141
-36059 -85.834874058823516 32.0700662941176518
-54935 -88.4363750216363229 43.7693503364947958
-62047 -90.6230128227146992 39.1503340927977419
-29745 -81.2020069877425783 35.0060164043066351
-36420 -86.4923937498277127 31.2476885750439131
-66758 -95.5623874245900993 38.0161319590163913
-17631 -76.301872000000003 41.0345410000000044
-13342 -75.1846005697479001 42.64193825714284
-78157 -97.6348176666666632 29.2644870000000026
-35242 -86.6779479068260343 33.4158229815428953
-43076 -82.4079685163130193 39.9101123841122458
-36104 -86.3088423044355011 32.3766382205333301
-89716 -105.50133776470588 44.6144734117646991
-31638 -83.5084268610905269 30.9244055862583913
-02126 -71.0907879673220862 42.2755370965875414
-97069 -100.304647799999998 35.5639848000000001
-93601 -119.726198095768495 37.3803907969098503
-65036 -91.5597437142857018 38.6708038571428503
-66450 -96.3073951249999993 39.251282874999994
-45808 -83.973702486607209 40.8322185446428776
-11501 -73.6399481157895082 40.7474439723197008
-74942 -94.9816528021977717 34.8968628241758267
-23031 -76.5476082800000057 37.6121297599999949
-45887 -84.3559535851525624 40.7100333916898975
-29860 -81.9678187821809416 33.6022944603986957
-66542 -95.5521935163023812 39.0180555891829641
-42045 -88.2613428614563276 37.0641214229533915
-49744 -83.6630928377424397 44.9929717830687608
-61103 -89.0814616313948164 42.312153418727469
-54849 -91.710848485853532 46.4935981161875915
-34288 -82.1295321179844677 27.0529883624998497
-13757 -74.8889854916102422 42.4123593190173196
-23347 -75.9650780471143321 37.3575902650176488
-97427 -122.786471999999989 43.7022846666666638
-57233 -97.4011688883299911 44.5119962022132327
-87103 -106.834602909090918 35.3725197272727243
-47240 -85.4606937636814195 39.3296892741427726
-10004 -74.0158890911062457 40.6966554316703153
-68658 -97.2996858352181846 41.2077945161551256
-74153 -80.2129704999999973 36.6399258333333364
-82227 -104.73349260092958 42.7499703320052618
-68730 -97.4905096704544718 42.7744480872326349
-07402 -74.3934610833333494 41.0127141666666617
-32276 -81.1841362307692265 28.6512390000000003
-19097 -75.3714959999999934 40.0609683333333351
-52301 -92.0794253481531797 41.7944856224301802
-16510 -79.9914311988086553 42.1215085595620664
-38649 -89.5205340869565021 34.9561721521739273
-63664 -90.8525663180065806 37.9260165033076362
-13789 -75.6384650000000107 42.2453843333333339
-10605 -73.7470553950616505 41.007666601709559
-33738 -82.7811590000000024 27.7857580000000013
-50654 -91.6015512628203368 42.4687115810023315
-06390 -72.0029303738141238 41.2673921290322241
-46165 -86.6542855796102458 39.8495214776603603
-96766 -159.367187433376188 21.9752717061473923
-58793 -101.0272148047721 48.8662351243673001
-53934 -89.8441010606538129 43.9788110443977374
-79062 -101.494554146464637 36.0155535530303013
-11226 -73.9563083292397607 40.6456740233918339
-52650 -91.1641546446828102 40.9467488953516749
-42153 -86.054308363681713 36.6692164651741592
-40691 -84.0898765000000026 36.9244230000000044
-39059 -90.3425288212749251 31.982782906083834
-95691 -121.549067565160613 38.5583958125462374
-65077 -91.8031730974133069 38.7641138343423819
-73738 -97.5778791387336355 36.4409202951582998
-49230 -84.2307900903972211 42.0891355465324111
-31002 -82.5836767573253638 32.552524149574765
-84072 -110.690946640540446 40.3465675824324421
-92230 -116.783378882971718 33.9119613136094884
-15270 -80.0444616000000053 40.3811088000000069
-23511 -76.2978260951156528 36.9379105835475414
-48865 -85.1172586763669159 43.0846357945326019
-13656 -75.9545392285276506 44.1925248346626205
-44706 -81.4124736095201627 40.7653304761992885
-46915 -86.3931184919354962 40.4824781801075062
-72467 -90.6768043695652182 35.8418393478260811
-28693 -81.5485099927350916 36.4652890569443713
-85616 -110.315491703086749 31.6817900295601937
-38002 -89.7165087529329099 35.267362210579293
-38119 -89.8457617722712314 35.08066695541347
-67038 -96.7246447946189392 37.1463506089685893
-49307 -85.4804250915512966 43.6939666313783022
-28124 -80.4055764508836432 35.3963802135394587
-38457 -87.2916611641321794 35.030051703985265
-55084 -92.6926858060342909 45.4395878550646017
-03867 -70.9771317021309756 43.3023106093702026
-33620 -82.410583346153814 28.0638111153846168
-05443 -73.042959555491521 44.139358434563519
-12158 -73.8208377806410567 42.5473442665747825
-84021 -110.399843589001662 40.1656904291077979
-31217 -83.5334677175272162 32.8419532110611385
-03441 -72.4371037876923225 42.7780085399999663
-46951 -86.1100442974843219 40.9465721335471571
-79782 -101.820532775856378 32.1473541963377443
-98548 -123.191372268602208 47.4306365457053047
-42726 -86.153553460481632 37.4088147735985856
-77482 -95.883684388942882 29.0450761454898156
-91423 -118.434086484198858 34.1444579632442071
-20774 -76.7973755271025595 38.8827964607415169
-23867 -77.4745755669545559 36.8128613733352523
-17058 -77.5207142628533035 40.4997398270345101
-83287 -111.426440104221982 42.0280330395588351
-62298 -90.1632010455615784 38.3219754467961451
-18546 -75.3902942222222237 41.1109769999999983
-74366 -95.0387643918170539 36.3896313938974245
-95747 -121.34385068279839 38.7708057463489553
-69045 -101.365611566594524 40.4435510979122199
-15313 -80.0222149834368395 40.0643863664596651
-86508 -109.062679269230756 35.3449051538461561
-75468 -95.4058150166943477 33.5318823864774274
-30281 -84.2114925103628877 33.5547340683008812
-13355 -75.4317629948525052 42.8216682765559185
-05146 -72.6053850776679184 43.1848998153951058
-52530 -92.3033463439768269 40.9910795878084002
-16432 -79.8355085000000031 41.8109324999999998
-47080 -77.0871677142856981 41.799366571428564
-46320 -87.5072280929660025 41.6141012025088131
-43736 -81.2525365588235218 40.0695681176470657
-45848 -84.076352903225839 41.0249882741935537
-23970 -78.1768871983349243 36.7378790539387623
-48195 -83.2046288222219204 42.2054996305343408
-41313 -85.6695049999999867 38.541409250000001
-20636 -76.5664216858287716 38.3454536746723349
-88012 -106.714109644314433 32.4036105003924462
-12212 -73.8176924999999926 42.7405894999999987
-29671 -82.7128017624294074 34.9253826178178031
-84116 -111.939976706109405 40.7879355888531734
-66561 -97.0102516666666617 38.3627119999999948
-73018 -97.9442171464079649 35.0359164461439505
-95270 -120.22799517187498 38.7819916718750122
-05474 -73.2808389429473834 44.8343883986402929
-41832 -82.9501406671428612 37.1439978228571093
-62996 -89.1594139883076195 37.1695606750769585
-37129 -86.4308337188396791 35.9131016846011022
-17701 -76.9936909504532423 41.2790324938972191
-46166 -86.5871545373134097 39.4281190095522192
-72616 -93.5615647587645043 36.3541872224920226
-93383 -119.021321 35.230342499999999
-73096 -98.699250477406693 35.5319166970887323
-73072 -97.4907623659085374 35.2170959903147391
-44825 -82.9308359836065847 40.9521338196721274
-74731 -96.5669168790280565 33.8737453946454679
-04593 -69.2713657999999981 44.8357644000000022
-37363 -85.0686743979498061 35.0891287291333782
-71447 -92.8112726035413687 31.4268909271183858
-33471 -81.1417730994216555 26.8645395815028643
-33774 -82.8281192130512807 27.8822487822728355
-98817 -119.978746013227408 47.8132257010581796
-48465 -82.6896552090450996 43.6180083095477045
-38477 -87.0093954280114446 35.0538478163459359
-03065 -71.6490329090909199 42.8108024545454526
-68666 -97.5972882366346113 41.1133906783523173
-49548 -85.660996087764488 42.8638486180450542
-99562 -149.860521818181809 61.5392298181818234
-76676 -96.9437728279569768 31.8601339381720301
-37686 -82.3425084254941027 36.44135649740155
-98368 -122.817601512127894 48.0853807050902233
-57700 -102.628289199999998 43.8650005999999948
-25557 -82.1655478261672414 38.0976398356879642
-37371 -84.5633067499999953 35.4463538749999927
-51109 -96.4823929477416016 42.5529659992535159
-06110 -72.7355229890077339 41.7318680805109992
-21627 -76.0527778333333657 38.2389413703703696
-23480 -75.6931774647887465 37.6066931244131766
-25446 -77.956274670833281 39.2397839524999199
-07460 -74.547726511474508 41.0972570740103293
-78855 -99.230456999999987 29.8263319999999972
-16679 -78.2043141689022434 40.1608920298062202
-97455 -122.918517469153159 43.9670712180773791
-56096 -93.5899533465725568 44.2337981240155003
-97036 -122.65319949367084 45.3988975949367131
-19008 -75.3612515252832793 39.9746417141062906
-84022 -112.722085837897112 40.2572462760132552
-05937 -73.3554464999999993 43.9774104999999977
-66101 -94.6256705601865775 39.120085948725027
-44003 -80.5706254321870574 41.6183637194938711
-98819 -119.759786478435359 48.5587778174523947
-84601 -111.688057668745401 40.2352214492776952
-21030 -76.6517536822357073 39.4812818220939192
-70094 -90.1827411550529376 29.9199973559453163
-17061 -76.9152741250121039 40.5564796000000101
-70542 -92.5534088880967118 30.0213978176712217
-36536 -87.7208824545454462 30.4345880909090951
-61614 -89.6073508313292706 40.7571154189414671
-46807 -85.1456686303271795 41.0458413286138324
-25832 -81.1032693824043207 37.7279244119422685
-61443 -89.9329286633653027 41.2551371833210183
-81087 -102.445723009900945 37.3692013828382628
-15680 -79.4757892674418542 40.4799738255813963
-06451 -72.823200908537288 41.5357096063816016
-34711 -81.7411327835328336 28.5233278504339971
-43983 -81.2061759520957338 40.146942735710418
-89161 -115.367067721633859 36.0589855975794435
-31327 -81.4064813790849939 31.4617333725490163
-66933 -96.8676613478261004 39.6503608867542852
-31533 -82.839641918639785 31.5261369677970933
-79394 -90.6189522500000066 29.7011167500000006
-71458 -93.1148813333333436 31.8971109999999989
-70820 -91.1805758393463179 30.3764130092507898
-43082 -82.9087831232347412 40.1557598888168883
-71851 -93.9254265553601613 33.850455176918544
-80532 -105.44478955447596 40.4664398077723888
-76684 -97.1187637499999852 31.7228576666666662
-89530 -112.783715857142852 34.0010034285714298
-46131 -86.0519695362198433 39.4834222386799851
-18520 -74.4890582727272772 40.2675603636363704
-16422 -80.3167321750000269 41.661128990000023
-18434 -75.5669822077098559 41.4722080063492768
-30410 -82.5137531671641824 32.1814231787313219
-25911 -81.1856976708074427 37.749668204968934
-86402 -114.091074016509566 35.2495873419811119
-74423 -95.2103916056338733 35.6498961197183135
-79701 -102.086097742587057 31.996187363850634
-60929 -88.2974443508053355 40.8815928919472142
-02852 -71.4657379047109345 41.5850278559610373
-90027 -118.287690051857709 34.1103075783212546
-12853 -73.9605330015602647 43.6985252598010661
-13674 -76.0596745208333402 43.7369821250000044
-25185 -81.2132916111111172 38.2377842499999758
-87718 -105.287681899845992 36.5458536723163405
-47529 -87.074702661525933 38.8701268969156146
-67516 -99.6949884571428981 38.4413830666666669
-73430 -97.3259563415962674 33.9188704853743417
-24616 -79.9036696097560935 39.1364132764227719
-04673 -68.67358829227949 44.3040073915440971
-93117 -119.913724450656815 34.4518443001691637
-31206 -83.6812993402383825 32.8001205939160911
-21557 -78.9278088136607749 39.5004472357570862
-14717 -78.185225379578057 42.3699489655937853
-95411 -122.821122903225799 38.5952375483871037
-46391 -86.9141355936995694 41.5603676631467138
-50655 -91.8958608415370009 42.7728570664940193
-32224 -81.4610453676744868 30.2816551913300529
-49274 -84.7729286972736844 41.849285054528373
-08533 -74.4906327853508543 40.0791478882918
-44507 -80.6557327001692528 41.0743185702992761
-76884 -99.5535437472826317 31.7074917663043614
-29164 -81.4178324030635849 33.655005918463516
-73026 -97.291408714332718 35.2307050138322353
-22528 -76.5503441249999952 37.7933638749999972
-47993 -87.3875174184359196 40.3011527881393619
-01247 -73.0967368264004449 42.6948515648918274
-71862 -93.7150418478516798 33.7591314781237841
-40004 -85.4555424816106211 37.8063254777942603
-14893 -77.1062116197183229 42.4642271056338103
-39322 -88.5224700681752665 31.5819267951733771
-40213 -85.7107620699710111 38.1877659497083712
-43947 -80.7830903008459842 39.9589245871864094
-29079 -80.1083203436893143 34.2920863553398476
-11765 -73.55533524253282 40.8810463440860588
-35112 -86.474585291536016 33.687491846394984
-41526 -82.5122768717948674 37.4339780769230757
-75812 -95.3855554705882298 30.9551122941176438
-15640 -79.7322170492610951 40.2256601231526929
-46217 -86.1840516135484478 39.6595897899552057
-72419 -90.3319632588332269 35.7509596992604344
-38709 -91.0395565000000033 33.3779004999999955
-14801 -77.282926374067344 42.0988868973736814
-87301 -108.747368642942348 35.5173165009580956
-05454 -73.0206015776073656 44.6947666645955621
-08051 -75.1793410900924215 39.7873999207850133
-14839 -77.6397578422285193 42.1392894517789287
-84331 -112.226549324649326 41.9731173667334758
-50603 -92.4756590227388386 43.1895137549266934
-05859 -72.4365442639299602 44.9596253320156123
-23186 -76.7188508378378202 37.2836010540540599
-99802 -134.401166999999987 58.2813977499999964
-15560 -78.9069210566037071 40.0177217688679008
-03227 -71.4396622514449433 43.8062749325625589
-24260 -82.0112789843201284 37.0317236344689746
-26691 -80.6654959336323287 38.3878408520179235
-80908 -104.699209833492901 39.0385003521975946
-45156 -84.2120432222222206 38.810565402777776
-97146 -123.920108149272423 46.1295597315568386
-75845 -95.1110022524823506 31.1163484673659418
-84069 -112.467902766514797 40.3517852340546668
-29534 -77.9369280000000089 35.3523476666666667
-23018 -76.4587241428571502 37.2622617142857138
-00727 -66.0560355643189325 18.2341565322648904
-33825 -81.5005166243658863 27.5986777012947826
-98339 -122.762828284771615 48.0268400179468742
-38118 -89.9260524747236758 35.0462199456216581
-03104 -71.4446958020442509 43.0086367037734689
-40744 -84.0637995592650356 37.0566724078360394
-34201 -82.4707141755992836 27.404512013735534
-02481 -71.2771262137836317 42.3138945327332934
-72336 -90.7479310689655279 35.0113128275862024
-96930 -101.169659624999994 31.1306418749999985
-72203 -91.7560413599999833 34.9603449200000043
-15761 -78.8905494814814858 40.6350115555555433
-30473 -82.4738501482231072 32.0190579158054405
-13657 -76.0452475000000021 44.0282180000000025
-74064 -96.2832459999999912 36.1389994666666681
-75101 -96.6958476926069324 32.2664587315175169
-20136 -77.5666495208353979 38.7469364689176672
-92539 -116.667408391473657 33.5357750747388295
-07926 -74.5701468878504841 40.7981108504672676
-45354 -84.3767093204225773 39.9011431866197128
-73070 -97.410362704545463 35.2232385227272715
-08110 -75.0587673083370959 39.9647150362483217
-97875 -119.201995060568336 45.7953290199811889
-61264 -90.5772837421644113 41.4165204538442921
-31805 -84.7444572336517012 32.2900477273641044
-37048 -86.6017308297941497 36.4974383294051634
-66219 -94.7724987292831429 38.9659572537570256
-74543 -95.4584214563758451 34.341198255033575
-48038 -82.9440892098091354 42.6021136325785577
-83714 -116.277586542176294 43.6842056364640499
-81008 -104.628693144147135 38.3341452881208156
-04271 -70.4986230595238226 44.2619852857142888
-02187 -71.1111185000000035 42.2079056666666688
-69353 -103.474779161290314 41.7643841935483877
-46791 -85.2496251299491661 40.8338770710660199
-39326 -88.6811732359983438 32.5789593116716389
-28644 -81.2821335058806937 36.4264381014072569
-48242 -83.341338578947358 42.2244540350877031
-13844 -75.6463836925549344 42.6059258441349868
-30819 -82.5889837142857175 33.4584432857142886
-97148 -123.227634148878721 45.3551920376185009
-36776 -87.7344475616873183 32.7557677704745842
-72757 -93.9853793749999937 36.3596445416666612
-38601 -89.4750577706349901 34.4756529701058057
-38560 -85.8630031173430268 36.2234250755513116
-00976 -66.0040336574163007 18.3508528693780022
-44878 -82.5256198418231719 40.9502476782841427
-07065 -74.2824800568825196 40.6081333532348978
-16873 -78.3494467499999985 41.1084509999999952
-21713 -77.6658988802408601 39.5226276981928422
-59252 -104.822631442326028 48.9041558436605825
-06412 -72.4694554279403746 41.4029881108774021
-17945 -76.3726718424657776 40.7841944178081945
-17363 -76.5908261736128679 39.7675153315342271
-97453 -123.891335118521482 44.0296436538600631
-78142 -97.7950147379678896 28.5317949572192333
-70421 -90.4000597142857174 30.2819577142857206
-40947 -83.6972565333333449 36.6968581999999941
-16677 -78.2542186745562844 40.799726023668633
-58650 -102.621375944370016 46.3184978672922156
-11411 -73.7320950000000011 40.6903418333333349
-58065 -97.9430073333333553 46.9789508333333288
-43752 -81.0116794999999996 39.7169535000000025
-35574 -87.9562181467269681 33.5788909546156233
-27209 -79.7654471177453672 35.3454051465977912
-98327 -122.657424320906628 47.0963403596977344
-64211 -82.3100524999999976 27.4311155000000042
-97130 -123.934529495579071 45.7196707577364805
-07028 -74.2047109948275363 40.8032563818965954
-14721 -78.2687093333332484 42.0120355102040577
-00653 -66.9016920862982971 17.9870409394398223
-92070 -116.721348525761229 33.1577916980964673
-64134 -94.4995884293981305 38.9307820072335744
-99764 -141.866281813688175 62.9865219581749045
-64701 -94.3384042353790306 38.6350948651595303
-78225 -98.5257482340239505 29.3882837443868965
-75451 -95.1205386094580376 32.9678921663124171
-93954 -120.951520187499995 36.103864267045445
-22015 -77.2794743441200751 38.7872469494017693
-26351 -80.8355826953288954 38.9304366570933027
-79922 -106.573963478931603 31.8223390587150767
-53543 -90.3594500646939878 43.0566116731672182
-97032 -122.791832491833276 45.1811678653312256
-28006 -81.0942212498502073 35.4067689610545528
-99260 -117.43016837499998 47.6658406250000013
-32117 -81.0570594001645333 29.2358556301606711
-48460 -83.9850017731554033 43.1241864866561784
-76577 -97.1915735023685556 30.6179849824922741
-60060 -88.0215219196216481 42.2652330241633081
-70427 -89.89456743403953 30.7504252878669853
-05201 -73.1722851345333538 42.8825357573335282
-42539 -84.9477065943524821 37.3032476681033671
-87146 -123.924326000000008 46.1093874999999969
-52124 -92.2893217500000134 43.5350605000000002
-79769 -102.539896999999996 31.7545564999999996
-95677 -121.23603421617527 38.7894706779479463
-94530 -122.302823955383332 37.9202142726390221
-36111 -86.271283376307963 32.3386755429745421
-46733 -84.9308615952295725 40.8318464218306048
-27923 -75.936590006992958 36.3680086405594665
-75960 -94.8266601521284116 30.9168670163991059
-38672 -89.9494461508164846 34.9333974433339307
-54645 -90.9279290281689896 43.3159504084507105
-30101 -84.7103159898184259 34.0428984091346436
-18707 -75.9257775050342048 41.138419400897412
-33676 -87.0448028571428551 31.8629887142857129
-05837 -71.8621115282509493 44.6637400646284775
-75365 -95.1558217500000012 36.294286249999999
-75672 -94.3098324069236753 32.5013544988524146
-37616 -82.7470523628956585 36.2194451439099154
-65061 -91.6427237932310703 38.6000191872971143
-58554 -100.920379929331617 46.8078751113248686
-84082 -111.398239768280845 40.3768126661918885
-05041 -72.5551017989556186 43.9660769321148877
-22025 -77.3416103787462816 38.604383287824426
-82642 -107.739268344232642 43.3546295844686824
-80457 -105.276467280550747 39.6421027177280436
-46931 -86.2643970618556608 40.947471876288688
-70092 -89.8990126756588523 29.9019485759096746
-98249 -122.538311770796696 48.0201367873155789
-50319 -93.6487637777777877 41.5417743333333362
-16720 -78.0641996345834599 41.5914353856621162
-36261 -85.5068329555555522 33.7082239333333362
-31772 -83.9535196974606635 31.7091090453809166
-44080 -81.0610539727272936 41.3698723272727378
-37742 -84.1675103726414875 35.6770268133122599
-83808 -116.121677562034705 47.2696170880893476
-64055 -94.3993765682841826 39.0508063847699702
-91360 -118.875190656226152 34.2107884234339679
-74802 -96.9031391571428884 35.3426179571428563
-16864 -77.8451985894736964 41.0892247157894772
-15956 -78.7828485471439848 40.3523602032575539
-54511 -88.8396828803417549 45.6921538585858187
-49111 -86.28835219722842 42.012603749274966
-75661 -94.1543857378550513 32.6488408945921691
-84240 -111.548793500000002 33.2394894999999977
-48429 -84.0011350647752693 42.9120157754283085
-18312 -75.0672595624999985 41.0594357499999987
-77368 -94.8310787870369865 30.4543593240740833
-28355 -79.2014972777777899 35.3951341666666721
-30233 -83.9673000500322928 33.2982982610684957
-49776 -83.6711308049137443 45.2493804820122989
-14722 -79.4651011397260021 42.2100475465753675
-33833 -81.5524839090909097 27.868507000000001
-52571 -92.8150107367564061 40.8750100665468068
-08321 -75.1712197000000089 39.2385788181818143
-60022 -87.7620208874905501 42.1348670605107003
-03755 -72.2404278862392744 43.7159696635309132
-42635 -84.4010942738775043 36.6687807628083249
-71441 -92.1596201624388698 31.95656433288827
-37217 -86.6585013412569367 36.1012540330377831
-73787 -90.0699935333333457 37.0843762666666734
-73561 -96.3942143076923088 34.3297776923076938
-54542 -88.7383430285194663 45.9347936356772806
-46031 -86.0173547743281546 40.2121412119403487
-15416 -79.72893961240311 39.8583109612403206
-57006 -96.7937168548746598 44.2817391486978309
-01523 -71.6897466275264037 42.4665536328440325
-65083 -92.4393667531207939 38.1401477718447097
-78681 -97.7212456270724061 30.5258548844003883
-44438 -80.531952349738873 41.2295783605517414
-93621 -119.092658624440176 36.7369609993602637
-73031 -97.6111496371681397 35.010765486725667
-98828 -120.200351800145711 47.3402884792627674
-63129 -90.3228227773081187 38.4649700120968774
-76523 -97.2729085212766051 30.7882277659574619
-78952 -96.9708812499999908 29.9332969999999996
-37787 -84.4918894000000051 36.0798830000000024
-19021 -74.8991986764881545 40.092452889583285
-64016 -94.2064151758286386 39.1240876624898135
-72747 -94.581406570212792 36.3750453957446638
-69856 -94.3828243333333177 36.5923453333333342
-50265 -93.7460615393493271 41.568367978064316
-85018 -111.984333112395234 33.5021438033085701
-95355 -120.948280560386038 37.6714171144455463
-41031 -84.2835643960766561 38.4258348444777056
-13416 -74.9741689737506931 43.1844226350409954
-06782 -73.048441871034214 41.6631330329624916
-33917 -81.8599920229046774 26.7178591849026468
-49622 -85.2728666604346017 45.0733516026084686
-13026 -76.6710752242465787 42.7416361093202966
-30755 -85.0405655287399185 34.8646693794289249
-50240 -93.8047895503774214 41.2928753012237877
-11208 -73.8730762714043294 40.6746670013535692
-12211 -73.7645706350942731 42.7064281113698314
-98315 -122.723165819444432 47.6908895119047074
-57704 -103.14120245454545 44.0566014545454578
-51570 -95.4529593010497877 41.5177088726717969
-11235 -73.952301573554891 40.584141748355826
-38651 -89.9880792966048659 34.8969248347826451
-30756 -84.9786425517241781 34.9022734482758423
-28023 -80.5950079439891027 35.5641699874604598
-26288 -80.4054301179291713 38.4964048971963209
-32308 -84.2259622785603597 30.4799834397697254
-30318 -84.4459401580259339 33.7924657693195769
-97026 -122.91946912679191 45.1070789990442123
-86062 -106.760278749999998 34.5295547499999955
-03813 -71.0433269609575007 44.0281994299325845
-83526 -116.383118451820039 46.155377670235552
-13684 -75.110663232690186 44.3887880025538024
-29330 -81.8031991766591631 35.0495454267053006
-26590 -80.3108727647058487 39.6718209963689503
-54541 -88.7845929621288406 45.5953670957741295
-70575 -92.1574932272727381 29.948883852272715
-76258 -96.9460503372024078 33.3769093404349206
-45694 -82.7994915679789329 38.7469029290632605
-97123 -122.966751339398598 45.4734423772169691
-25831 -80.9132082917888766 37.9286445524193496
-39825 -84.7170824563688711 30.9481854482757761
-01944 -70.7641006984594441 42.5786449505991413
-73868 -99.8680399999999935 36.2790900000000036
-87174 -106.684737499999997 35.2744325000000032
-53060 -88.0599446444444709 43.4275580488889261
-36874 -85.1947446730177234 32.5741279438384197
-47909 -86.8859438558316128 40.352647847241208
-06074 -72.5548477196569195 41.8354323553967049
-60548 -88.6370790252364742 41.6435965178233687
-27011 -80.6995017171842193 36.2170138491896694
-93737 -119.651585694463421 36.7673421961939439
-00688 -66.6112832781065123 18.4180175088757316
-52226 -90.7394277931034594 41.9922014827586239
-13615 -75.9767013177257553 44.0083139431438042
-15443 -79.8775508436019237 39.9290339763033373
-58338 -98.647407582706748 48.5017807509398722
-14517 -77.8976666508925035 42.5883818996752836
-06830 -73.627088729831371 41.0405112206067884
-46928 -85.6669673732498609 40.4105712101807413
-49827 -85.5512070769230917 46.1253578205128179
-31003 -83.2110391566950511 32.6469810113960435
-15282 -79.99164831249999 40.4356496875000033
-55331 -93.5857409291595843 44.9006853899415432
-17566 -76.1497265784875736 39.8746600629885464
-79606 -99.8021473333330107 32.3676721935699163
-83101 -110.546339966644183 41.880848517590394
-41862 -82.7884056371635211 37.3505226625258544
-88336 -105.310463286567099 33.4035572895522535
-75442 -96.3556250519212227 33.1761411901698366
-45821 -84.5774932373504953 41.2318055458449564
-15005 -80.1813924155576387 40.6455182150981642
-05148 -72.8039873531397461 43.2355196409608382
-40525 -83.4642789999999906 34.894402999999997
-38679 -89.6379570447761154 34.8490249552238751
-63758 -89.5377179677419264 37.1805454032258069
-29714 -80.9171529966755969 34.7058692524379069
-62810 -88.7527068657115734 38.2075565393912342
-47235 -86.1371755389078686 39.0029957224156973
-53910 -89.8120846443534901 43.8987079517304011
-28906 -84.1143644571877758 35.0773386064152106
-46989 -85.4855027357535846 40.4527525420496374
-96037 -122.928205804147481 41.5442729953916867
-75146 -96.7699568721633483 32.5831052148719778
-44333 -81.6295198619802278 41.1536886284842609
-12863 -73.9261495197739578 43.058435384180811
-11804 -73.4569282560739367 40.7653107249756772
-21057 -76.5099814913807563 39.4531378842307276
-44032 -80.6632607102976777 41.6713446512586714
-35096 -86.1180764003716064 33.6117090177039017
-44215 -81.9005986445643543 41.0686112852737324
-29031 -81.4283191423583474 34.6028558811093703
-70506 -92.0669976661371408 30.2063762173876249
-47351 -85.5042541546391561 39.8975462164948311
-12095 -74.3941306633113015 43.0190799819108989
-12149 -74.5671601708060194 42.6245067224194187
-11354 -73.8269133181818091 40.7674038409090898
-80223 -105.00259690266617 39.6982632658610299
-14774 -78.1378743066666601 42.0886322933333403
-35180 -86.8308169009123674 33.8349455718376433
-93926 -121.437461522580762 36.5152782435483232
-62821 -88.1623500645798117 38.0787288450824875
-56309 -95.8021725654633372 46.0736878821655083
-75141 -96.7057503010620678 32.6444682152777972
-67457 -97.9956574362366979 38.4021914509371598
-68317 -96.5057171491065304 40.6806336407887059
-15236 -79.9798636256902569 40.3446973747042605
-37202 -86.780113857142851 36.1578152857142854
-98065 -121.847879620205632 47.5316911811326861
-43916 -80.8142847727272766 40.138472174242402
-17215 -77.891981871559679 40.0903880996067485
-76872 -99.1500612388816194 31.3237221315120848
-16821 -78.2040355451895124 40.9644991107871661
-39531 -88.9688532511827219 30.4041935046286191
-83218 -112.165531508474672 43.3153312754237589
-90831 -118.20019769999999 33.7680256999999955
-32205 -81.7217988914041484 30.3065420336723506
-71468 -93.1711530183519301 31.5020027629213359
-03455 -72.1890258679400318 42.8975362580252195
-97362 -122.779253533382033 45.0699410490593522
-15738 -78.7866564540539827 40.6956965000000253
-32141 -80.8904382341497836 28.9400156679122453
-50645 -92.45975831026783 43.0259259620536554
-37334 -86.5705593888037583 35.1497465761240946
-46760 -85.5649165137310064 41.3447929275568242
-29346 -81.8364998174273381 34.9455356182572672
-31694 -82.1756369999999947 29.7930630000000001
-83553 -115.951310022457903 46.3796033100437342
-50597 -94.4369710796285915 42.9724587043794699
-15535 -78.4466471486008317 39.8264237759512412
-43031 -82.6674846669821193 40.1565253430857894
-19605 -75.9431403146079731 40.3967460642016292
-23004 -78.4061869490980712 37.6785043062070457
-90405 -118.471335099867943 34.0099447327320092
-83301 -114.47797280421463 42.5399364992527467
-82515 -108.592523125806423 42.9095560532258204
-05665 -72.5948970000000031 44.6664060000000021
-24146 -79.8080966666666569 37.0224523333333266
-05742 -72.8788835617811515 43.4418443179001912
-24895 -81.5624082083333377 37.3774510208333268
-31744 -83.9146671620085698 31.3330912935490851
-57735 -103.926928486883369 43.5636621011282301
-13787 -75.6623057841320019 42.1954469805738341
-85620 -109.94794897202793 31.3380542377622362
-92806 -117.874553401631459 33.838134828683053
-48071 -83.1026244049964902 42.5023938760030475
-76088 -97.8874792137576435 32.8315578883049355
-61424 -89.6329271538461256 41.0788454945054937
-63048 -90.3932670217975556 38.2584425120724276
-68068 -96.2088692976190458 41.3975307380952344
-28751 -83.0937025125690099 35.5199948420903127
-49649 -85.5419234842450891 44.5741519768005574
-15411 -79.3584897115299412 39.7489065600615916
-54843 -91.3388548533510232 46.0204696929231432
-51046 -95.6867017427633613 42.9689860211877175
-64779 -94.3746139228352803 38.0875078034993635
-28738 -82.5238258275862222 35.2816020517241355
-38803 -88.7923815333333408 34.1726162000000002
-35014 -86.2649026694000156 33.3668133800781916
-78240 -98.6092350790095367 29.5214463542650485
-00607 -66.1052646250000038 18.2558573749999979
-08528 -74.6056929187817133 40.3846461421319916
-48361 -83.2455786000000018 42.7888918999999959
-01254 -73.3616550849674809 42.3749798562090518
-64659 -93.3000095239129763 39.7885015434782829
-48138 -83.1560802449285887 42.1363423236553558
-57790 -102.222472121500189 44.114883304807087
-71219 -91.7074586431584891 32.3046202265236744
-15778 -79.1869922000000201 40.9671226101694756
-99119 -117.333499385500971 48.484912558274857
-02215 -71.1023413914969069 42.3465253702391138
-38372 -88.1733446595959691 35.1798280127369125
-76629 -96.6550253266009634 31.1636048443350262
-83869 -116.856835786761408 47.9836029410656906
-39762 -88.7886023799999577 33.4574539466666749
-31734 -84.409246571428568 30.8319542500000026
-39425 -89.1273632523767105 31.0395066827201767
-12409 -74.1714366231834816 42.0462652584190337
-11716 -73.1120681764266607 40.7700978299142207
-28111 -80.5493386666666566 34.9713316666666643
-34943 -80.3352232499999843 27.4282562500000004
-45113 -83.9895782785641529 39.3996755322325924
-74032 -96.9088165233160908 36.1967055891192473
-76880 -98.3198884210526529 31.4620173421052662
-47975 -87.2531012962793824 40.4417296696914335
-05763 -72.9980555756552576 43.7232798253871948
-40730 -84.1475235432098287 36.7059965185185462
-77979 -96.624443107088382 28.605815349580336
-47867 -87.3689646666666704 39.8287003333333303
-01430 -71.9227939510889343 42.657342105713532
-64489 -94.5672144451131373 40.2281046246110847
-77968 -96.8291858980766165 28.8982795480769603
-89540 -109.736519999999999 34.257593
-80520 -104.933791634285754 40.1128676323808975
-36272 -85.6333448945802758 33.947973137586068
-61933 -87.9169437551127402 39.5428843838489215
-39534 -88.9210901071428452 30.4031004285714168
-15243 -80.072140532412007 40.3748893788809298
-26448 -80.4882990020759195 39.4143647351720574
-37160 -86.4685569962017411 35.4666236343936632
-50483 -93.990190735869362 43.1015761670814399
-10110 -73.9807365000000061 40.7538579999999939
-04005 -70.4742328260007156 43.4871066506820725
-28372 -79.1787717780930791 34.6979043078770957
-60155 -87.8546465421024436 41.8587417677491942
-70642 -90.5518940833333517 30.4311595833333293
-59938 -107.863101749999998 48.3595655000000022
-58494 -100.28409550335563 47.1748904288908903
-44633 -81.9310451683758316 40.628959352041754
-77940 -96.5717369999999988 29.5252800000000022
-96326 -123.615382124999996 44.6030863749999895
-75044 -96.6579857922599075 32.9601566016495937
-20656 -76.5938167389033993 38.3141918328981816
-62923 -89.0228646416722142 37.3415649270072763
-61368 -89.5141545783232999 41.2677550514780052
-72035 -92.4562273124999905 35.0759532499999978
-63443 -91.8513722307692291 39.6799418434065672
-87729 -104.813169437125822 36.3551556347305365
-05054 -72.1958312039473498 43.8444008026315615
-33926 -82.184398935483884 26.4882068387096723
-50213 -93.7637648922994345 41.0292538339247699
-70082 -89.7975277062315342 29.5789469139465879
-31054 -83.2041341646314123 32.8796973903307972
-82322 -107.559896356481545 42.238131212962962
-92058 -117.351706401715177 33.2370070615300861
-62947 -88.4120791456044373 37.597228083791201
-54916 -88.7202455000000043 44.4266270000000034
-35054 -86.32517225974523 33.5078475231329449
-77204 -95.3456241935483888 29.7188888387096704
-03769 -72.0676834193548501 43.7791539354838832
-15831 -78.6047642500000023 41.353024750000003
-45502 -83.8203917767188926 39.9300093664905447
-78041 -99.487507488114133 27.5477357565307237
-98572 -123.309797232865265 46.5632937663089095
-99903 -132.257219833333323 55.7387643333333287
-87528 -106.978154806263177 36.9224140668789929
-28521 -77.7436896509993147 34.8275513135377679
-63623 -90.8404471678929326 37.6814909632105639
-98596 -122.942222858822035 46.4938976436556217
-47575 -86.8125328559017362 38.322867156081486
-78132 -98.1851401970394591 29.7647832637696652
-72168 -91.9957050612484721 34.4348795477031402
-32132 -80.9141375580743727 28.9800840887972484
-99563 -165.59213331250001 61.5268993125000065
-72444 -90.8770233843428059 36.4285487288329648
-23401 -75.7727502374429349 37.622317383561672
-56626 -94.2437149436509571 47.344023882142821
-61919 -88.1459429143481259 39.7856537190397503
-60084 -88.136281722588862 42.2695952235014403
-65350 -93.0942980671725877 38.6659639130930373
-74759 -95.7000751463046129 34.0527694389140336
-78566 -97.4703530867748498 26.0957226509844062
-26527 -80.0668320416666859 39.666137291666665
-19430 -75.4072508709677436 40.2207858387096735
-97846 -117.173036556652704 45.350694516738244
-27311 -79.4734239694129059 36.4872110605882867
-04991 -67.4285496666666688 45.5694064999999924
-07418 -74.4842394132967769 41.2360316216587321
-83709 -116.301880300770264 43.5689426664190051
-35217 -86.7648185266519363 33.5945190465859298
-35456 -87.4450534314429149 33.0909662641184994
-75932 -93.618967090440762 31.0783299669510207
-54228 -87.6489166597776688 44.2661925094290964
-67761 -101.512689316326515 38.9180445578231229
-11713 -72.9441241264418352 40.7751370794143781
-47135 -86.078415946113779 38.0483160768844684
-01775 -71.5157632564144734 42.431874451384239
-87617 -108.338487111111093 36.7125579999999943
-74951 -94.670710478767603 35.1732881606993928
-24055 -79.997891907930395 36.7557204297778881
-83255 -113.430153749253833 43.7504063962686516
-64841 -94.4134479255951788 37.0787908571428346
-74569 -95.9766361372548573 34.460786496732041
-84414 -111.971651498449177 41.3142524597168119
-71250 -91.600697392983804 32.9725808348442655
-65807 -93.317702246040426 37.1661310825161948
-97437 -123.382186153460125 44.0944177126117509
-91208 -118.230160334510387 34.1891255420450335
-24128 -80.4897776457798244 37.3204331163580392
-24063 -80.4641643333333292 37.2036306666666619
-49916 -88.5421125754468363 46.9888096906021957
-87823 -106.909407419243905 34.1654299885451991
-66544 -96.2825260065264672 39.6927012835388382
-98639 -121.973308978409037 45.6412683295454116
-61554 -89.6247616015204329 40.5623859454864331
-41268 -82.7837446391097131 37.7867599077901062
-59435 -112.114766136170189 48.5873948340425699
-73059 -98.0260614216432771 35.3215698868432924
-77857 -96.7247700766183129 30.7837189035667684
-24380 -80.5015631497874722 36.8642991929933501
-15934 -78.8030277337278022 40.2801863964497002
-56051 -93.7131259545453759 43.5340823892962234
-98224 -121.478467179803005 47.7652640541871492
-25405 -77.9601115353943754 39.4133363277407796
-93622 -120.51853340178674 36.8384241259484853
-72526 -91.757860912479785 35.8732499189627347
-83543 -116.235469937291853 46.282412150943351
-68853 -98.9562565717566116 41.2827289402985755
-15060 -80.2925343402555285 40.3673114760383172
-78719 -97.6766099631999083 30.143654062399996
-75636 -94.8126191111111325 33.0302491481481368
-53565 -90.1615794219549258 42.851377145598974
-11228 -74.0124371794311173 40.6179992757111279
-72651 -92.4780097420911886 36.3896785297586618
-33808 -82.012833152777759 28.1497672222222235
-56568 -96.8075492274882237 47.5133324999999971
-97911 -118.115199154536526 43.8057199112662161
-50516 -94.138301767441817 42.6213306774519651
-57013 -96.6046149556553502 43.2904271903052873
-76507 -96.9810615000000098 31.0718715000000003
-70059 -90.0451311428571444 29.8696414285714233
-27909 -76.2446345343910536 36.2869042417100687
-97133 -123.011741628526025 45.6599353470525955
-12771 -74.6349213397614335 41.374962280188214
-94434 -95.207451666666671 35.7709422222222173
-34655 -82.6674635322429339 28.2035502727319951
-63038 -90.6653169917958763 38.5848704822640798
-38341 -88.0807876939313132 35.8807987410188289
-04216 -70.7527471747540773 44.6311127091957758
-49919 -88.4646071232348135 46.5275607804877964
-61436 -90.2246293099778285 40.8542841356150532
-48060 -82.4498477071144578 42.9830648319233575
-76011 -97.091497142435415 32.757382075927957
-13329 -74.7498214807236963 43.1069320199903316
-58477 -100.522132649950194 47.2199690106277856
-14898 -77.4323550287023323 42.0609178071182868
-61238 -90.1863132748396623 41.2880050193652792
-51101 -96.3966912038759745 42.4943420852713984
-28446 -78.3505028333333229 34.8650791666666677
-33055 -80.2786032232331905 25.9445214510160049
-62523 -88.9533070856102626 39.8432643843351926
-03275 -71.4384377420694818 43.1552781990808469
-10958 -74.428770541380473 41.382203218703367
-84081 -112.026418202076187 40.6108337353877644
-22565 -77.522426387096786 38.1289241935483929
-82513 -109.670028203461001 43.559909815257285
-40334 -83.759351278551577 38.0188547910863335
-95550 -123.879968413897316 40.8079190453172345
-29135 -80.8164934304217866 33.6826337113431009
-92372 -117.627514879953267 34.439995839066853
-84749 -111.5847811857507 38.3933982188295104
-95467 -122.571493425403759 38.8105513586652719
-44301 -81.5203586086257701 41.0438103129786001
-79376 -102.593430475260405 33.1394978958333155
-62089 -89.4959834140844777 39.1299624985915528
-24825 -81.348110052083328 37.4179676458333503
-12922 -74.6877962773973536 44.2918111849314968
-43617 -83.7169945750488722 41.6688248502923315
-94709 -122.266338815565021 37.8788393139659192
-37130 -86.3524542627141898 35.8681258927397622
-81027 -103.7447671415093 37.1839597760674536
-21101 -76.1585546666666602 39.5116860000000045
-27306 -80.0035530094346825 35.2490170370288141
-44874 -82.3650555789473628 40.9646276315789564
-31534 -82.836907031746037 31.516270698412697
-55973 -92.774819732309723 43.8096748230974882
-80406 -106.323809000000011 39.2618295000000046
-32437 -85.8924735228890484 30.4363908199389996
-83334 -114.280318851674792 42.4886806034024289
-49099 -85.6786466775623268 41.7916903947701215
-39571 -89.2735396298904647 30.387671810126438
-38721 -90.783688286392362 32.9946707262658663
-29341 -81.7055130661484696 35.1148483552688546
-17901 -76.2277590886271668 40.6814938986474743
-01222 -73.3173546062053276 42.0589627040572083
-63660 -90.7081092048192659 37.907015720678622
-58523 -101.77663757313249 47.2706105703262622
-24130 -79.9860782727272692 37.6175686363636359
-45119 -83.9991876666666855 38.8781881379310406
-95728 -120.399087246731227 39.3092717646562662
-04850 -69.128552285714278 44.320958142857144
-68878 -99.5142384147179229 40.9636661451168891
-72331 -90.4566232729203819 35.2898508222437854
-57719 -103.040775192931704 44.1453036149020903
-36551 -87.7545544659020464 30.6140382061597158
-29132 -81.1263927368421065 34.3060248421052734
-29055 -80.9141355853096229 34.5670632117338528
-11560 -73.590642954545558 40.8817671906159035
-75795 -95.1079765882352888 31.7266171176470593
-50465 -93.8615114472318339 43.4379417301037307
-30066 -84.5039402365988224 34.036199276976582
-87008 -106.365322550641338 35.1297001551826185
-58015 -96.8065300659025496 46.5884938701050189
-36702 -87.0125067083333619 32.3859573333333373
-68321 -95.6719530664160516 40.3972985087719181
-92922 -121.09472022972966 47.3232785540540775
-34210 -82.6230363477454119 27.4494214431248942
-08848 -75.0999283394040162 40.5932787185894526
-34451 -82.2843200000000081 28.8751504285714269
-20064 -76.9970424999999921 38.932900333333329
-61736 -88.8512924268878095 40.4017562370144176
-28606 -81.3051572286960607 36.0583760902010582
-58039 -96.8035337500000139 46.1545017500000085
-45054 -84.088787798877874 39.4457483963534798
-76639 -96.6965106095593399 31.8919712588454374
-76935 -100.489926722080995 31.1868506414973545
-37385 -84.2985738936405369 35.3472485148895288
-00751 -66.2726356024033834 17.9971942173458856
-36744 -87.571821613614631 32.7352669726360119
-79351 -101.809880433212854 32.973322769404291
-14113 -78.3439774217732321 42.6788878409387067
-90803 -118.127743928353382 33.762103753252994
-59804 -114.113758336363489 46.8615511538032479
-78233 -98.3652294720266553 29.5531649405005901
-70531 -92.5037053399260145 30.2325862886279211
-21851 -75.5416630377360008 38.067585296969547
-10301 -74.0943644488457238 40.6279953790253714
-32633 -82.2257487777777811 29.4856090000000037
-18065 -75.609410583333343 40.6961047916666772
-47102 -85.7916839672337659 38.7507274190803273
-10930 -74.1115871106181316 41.3586156183809308
-15432 -79.8596443885209766 40.113801337748356
-67880 -101.333850433596055 37.5912525974940905
-74429 -95.6574091054676501 35.9604585985540126
-34498 -82.7114081646512176 29.0316257190697691
-70119 -90.0859194831794241 29.9760399027193785
-39040 -90.4140573138615196 32.6450192309281206
-68304 -96.3916866948491986 40.8846603411079244
-72958 -94.1253617430004965 34.9047749692777955
-33394 -80.1391504999999995 26.1216469999999994
-67442 -97.7474882615131406 38.6606842236841501
-43325 -82.8419317023809612 40.6688351190476283
-32796 -80.8430190563813227 28.6269850806853015
-34452 -82.3440527849865589 28.8003387597621341
-65080 -91.9865070985877509 38.6377428308119661
-17074 -77.1547578090450514 40.4760512796335163
-12988 -74.3069744074073952 44.2657964814814804
-24174 -79.6641420180587687 37.3528557968808173
-42122 -86.3583567993532739 36.8653964661804778
-02350 -70.8482109137930962 42.0181320517241232
-45369 -83.6057143162045975 39.955995597372187
-05049 -72.4202310000000011 43.5464936250000108
-67422 -97.6059875414173064 39.0194961327345595
-02450 -70.6465451600000023 41.6045438800000014
-01050 -72.8704743131386152 42.2760989401459071
-56686 -94.9107110587879816 48.8170331793939667
-99628 -158.937591941176521 58.9700543823529486
-49284 -84.6987539080225389 42.3911876243921455
-87563 -105.436024999999987 35.0906245757575732
-45218 -84.5201423081394836 39.2673562434593038
-79325 -102.902082694770854 34.3882272663289612
-30046 -83.991872385385534 33.9425742462115068
-04684 -68.5081352007835704 44.4811473596472382
-85257 -111.918236891416868 33.4686637362398116
-23228 -77.4927088878445574 37.6257732426350131
-48204 -83.1420728994617804 42.3658036329224004
-72135 -92.5328170750260028 34.8802228339450267
-04219 -70.6124652744846628 44.3962793887457465
-03800 -89.1814014999999927 35.8328374999999966
-53179 -88.1246939941995038 42.5146726858468824
-75847 -95.1552099178858413 31.3436211090797698
-25434 -78.4530622153364021 39.4578050612357529
-13470 -74.662742460376279 43.1822909519811304
-98557 -123.27764039553233 47.0470432233902542
-21117 -76.7782827011712925 39.4254085319944636
-73104 -97.5029723753410025 35.4750649162875646
-57784 -103.8822945 44.5056014999999974
-93710 -119.762463031375745 36.8262845241112231
-34141 -81.2294550604317749 25.9004331999999842
-03102 -71.48803757419482 42.9954964022626172
-29078 -80.7156084973852046 34.2014898872465949
-78045 -99.4954982191540012 27.6122867516003652
-38587 -85.6152180594750121 35.8687424291544161
-76461 -98.3358874285714393 32.2327189999999959
-33069 -80.1577635790779937 26.2333192871333267
-54499 -89.2302969886905686 44.7658381774683249
-53022 -88.1738633398692855 43.2362005294117893
-43351 -83.2989004072700396 40.8268725953204523
-49457 -86.1660487623843068 43.3605970981572213
-06439 -72.4091471439393644 41.4212519621211968
-14537 -77.1576410202020071 43.0363587373737246
-24880 -81.5302818890306611 37.6227009311224592
-47710 -87.5749955176522832 38.0165661211387018
-83314 -114.929344863613991 42.9121855514524242
-15714 -78.798860559635699 40.6583482652760324
-17049 -77.2456403094473245 40.6486232088688837
-14861 -76.6932420701005526 42.0925200317583901
-23103 -77.7227343817429528 37.6482743696669715
-88355 -105.657531733870997 33.344809303763455
-69197 -101.910316499999993 41.2963909999999998
-77502 -95.2000326205310898 29.679677559899762
-77520 -94.9667244361826874 29.7476242193598246
-80236 -105.041169201200518 39.6526727605051406
-55945 -92.0500708781142265 44.2762427120404425
-12945 -74.2505466627487039 44.3591256609403786
-88112 -103.135102756389884 34.8274506401104844
-67460 -97.664214260833532 38.3791264671707282
-11120 -73.9433009999999911 40.7462524999999971
-35133 -86.6087688461712446 33.8170462542698544
-78125 -97.9163306385542285 28.5433441566265245
-79536 -100.016910597815482 32.4567168229968459
-74834 -96.8870671021067977 35.7004213387357794
-72561 -91.792658278854276 35.9707091095198024
-91311 -118.597193376173252 34.2582806539244729
-31555 -82.0468849185854623 31.6891628167763102
-41269 -82.6734704871794861 37.8856832307692315
-07750 -73.9824013441414934 40.3330558032424946
-13304 -75.1686520132108171 43.2418668822515571
-24377 -81.5924640625801914 36.9929455593656229
-24018 -80.0284124610937937 37.2187671756981757
-48317 -83.0492266934131038 42.6439502749699599
-62855 -87.8309733809523721 38.5444882380952407
-74463 -95.5506391264821957 35.7626530592885246
-00698 -66.8574098770823184 18.0316366497073304
-72025 -93.0135406976582573 35.0524436994322386
-66065 -95.4003665000000041 39.0476115000000021
-76809 -98.4627794999999963 30.7740724999999991
-92692 -117.643628394817668 33.6108021019351426
-48112 -83.4632654999999914 42.2550156666666723
-62001 -89.7476808632632412 38.8867972052838056
-10520 -73.8823035664246817 41.2184957716945277
-68104 -96.0008225609423249 41.2950799228218273
-41951 -88.4637554999999907 39.5751329999999939
-62936 -88.512659499999998 37.7651944999999998
-11023 -73.73555533443961 40.7979729531710973
-56543 -96.3252068110831488 46.2873042670025185
-24536 -79.3079592484022982 37.4914355389859608
-46770 -85.3228350006687748 40.8367520254095169
-68005 -95.9083512647087275 41.1501233332638279
-49295 -84.3191030909090955 42.4013904545454494
-76377 -98.2386125819792682 34.0216452540620509
-26269 -79.6327924698878036 39.1078222864145317
-44903 -82.5217950814948438 40.7728781571746879
-26264 -79.8378108271277682 38.5264246236702022
-04736 -68.0224452977003295 46.8832058067123327
-18356 -75.1147285578634865 41.0120216201780394
-30510 -83.5838748185757225 34.4477637794740801
-62461 -88.6612350394086661 39.1824090804597773
-88330 -106.071012214084647 32.8349781258216069
-28374 -79.4644294955148496 35.1946103343726904
-53558 -89.2905630622064876 43.0099783427759235
-30096 -84.1554361243014455 33.9795108316067314
-70778 -90.8859750099297798 30.1725199538551117
-13308 -75.6675205946896199 43.2459598049308696
-97488 -122.499577501365877 44.1351456458333047
-13421 -75.6478742898507903 43.074957107002156
-82430 -108.181453026666645 43.8051472666666655
-56754 -96.195908260940044 48.0021203646677463
-00747 -66.9561479500000161 18.0686027750000022
-50435 -92.7512956400264272 43.1572007219285894
-87062 -106.755483184671093 34.4938906662643276
-00901 -66.1122789978495575 18.4655403548386978
-52060 -90.6764369216598141 42.1006975964580832
-64728 -94.5167842777778588 37.7030184368686818
-95340 -120.462230751864865 37.3050089478374005
-69145 -103.672712910148448 41.2348233890894846
-39827 -84.2037531260639156 30.9475655827127092
-77865 -96.2210299654189214 31.2290553451777342
-13350 -74.9863407090379042 43.0477322151951682
-40207 -85.6550274232317719 38.2639193385034204
-97419 -123.373180492555562 44.1708123796525669
-14545 -77.7085081615384894 42.6599841692307535
-08067 -75.4070986125378084 39.734729238670738
-27920 -75.5485711651475782 35.2711279324396116
-15076 -79.8348432461929036 40.6138961243655103
-62966 -89.3419525650339921 37.7681646438831464
-23983 -80.4221547333333433 37.627660066666671
-12518 -74.0420846877323982 41.4261025767391473
-31302 -81.341604795610678 32.1307116447187369
-84746 -113.360467721623948 37.2449360472244848
-61876 -87.8223401052305945 39.9113199713574005
-47951 -87.4506852317678351 40.7906715414364953
-10403 -75.3836275882352851 40.1460873529411657
-46162 -85.9525289831932184 39.549934435294162
-80102 -104.444715364904752 39.7233757709660793
-22125 -77.2613338599999508 38.6818665622222184
-15107 -79.2089444285714137 40.5730282857142797
-37172 -86.8669421464958731 36.5180031145809068
-77033 -95.3387067980459051 29.6694713438995805
-48601 -83.9132540315062272 43.4093103153826974
-19510 -75.8798113049449938 40.4460053382555458
-85253 -111.961926479159004 33.5449186920038471
-44627 -81.8311557167876202 40.6579013694646036
-15927 -78.7838167354840095 40.5383141763441017
-98950 -119.989813841491937 46.9050443170163476
-31825 -84.6655097502368506 32.0928130767287882
-07078 -74.3266974480177964 40.7379219597648898
-53940 -89.7920148648648677 43.5937897027027077
-88039 -108.882665055039809 33.3894554542440147
-58731 -100.968336141353348 48.4179774917293457
-11216 -73.9489436931927031 40.6803331994247301
-17098 -76.6238305311293999 40.5801003597796281
-30214 -84.4819595583706615 33.4887557716640742
-63451 -92.2093028808510127 39.8973778127659742
-77071 -95.5196408993727459 29.6494026306359544
-92020 -116.971942941233834 32.7935753066496218
-50701 -92.3651905395267505 42.4708600640089173
-75261 -97.0281680481927395 32.8930897710843411
-32444 -85.6422114834487473 30.2365584165072896
-56110 -95.9357511167929999 43.6233718234812571
-55379 -93.5019160854455862 44.7706793216593226
-76468 -98.439883578947402 31.9963915350877208
-92286 -116.430045923076932 34.1342249145299164
-76712 -97.2403389462736953 31.5055122921001924
-57782 -103.217814461077836 43.2960542874251431
-76207 -97.1857323244895781 33.2094776106577143
-40473 -84.3254874624999786 37.3880837875000012
-75410 -95.6185061795546858 32.7916127489568581
-34241 -82.4084715763303848 27.2775947624285067
-23264 -77.4637161818181852 37.482504727272719
-95252 -120.854744501876198 38.1568089737331064
-24327 -81.8302987477064363 36.7754278394495131
-67882 -99.8914532959545909 37.8068822725337483
-69020 -100.304484760989098 40.2444245521977777
-98261 -122.88568346997306 48.4878389965663743
-64650 -94.0603532006349639 39.6321145339682701
-43288 -82.2308069999999987 40.1632370000000023
-93592 -117.388610922330102 35.8868622233009731
-99205 -117.440162558657505 47.6951980660510131
-36745 -87.9033046883116924 32.3960877922077941
-19029 -75.2934734044357299 39.8665459497716625
-56113 -96.1457333688888411 44.3937660844444295
-50438 -93.6184730875390017 43.1092525255144281
-65660 -92.271608480829201 37.3293237284974211
-16134 -80.4666973418560758 41.5130317007989973
-16854 -77.4738491696078455 40.8967058127451324
-37335 -86.4092949000983594 35.0661060757875873
-20423 -77.0301088999999877 38.8921696000000026
-38732 -90.7246929595163749 33.7478553713557829
-37402 -85.3125820268906949 35.0454390694677542
-56469 -93.5547995128684988 46.7313080786846839
-76119 -97.2648931101781784 32.6896018647072779
-94158 -122.391525437037004 37.7705666148148325
-18920 -75.0873992785898281 40.4963365253654359
-68044 -96.4564769884341757 41.5386149759786747
-15666 -79.5225474853587428 40.1564022037350696
-10519 -73.6605143154362025 41.3491440771812435
-15220 -80.0494863764542544 40.4205448673596095
-49962 -88.1591908946588632 46.8610930727003137
-98613 -120.948993961338914 45.7575573102310074
-04256 -70.3997941209616727 44.1050973022063388
-46241 -86.2592168139385791 39.7317677015250865
-27867 -77.23188569072164 36.3596745051546506
-80913 -104.786976917721518 38.7355748987341713
-06640 -72.0788055384615376 41.375966307692309
-57278 -97.6530156517859638 44.6328606844676088
-26653 -93.5532227499999891 48.3987352500000014
-07075 -74.0866983149016249 40.8499423898780734
-43153 -83.560786287779294 39.7353886767410529
-75067 -97.0109004552622451 33.0219724184125099
-30120 -84.8397634126195612 34.1701402790222701
-84416 -104.218063857142852 35.3605935714285664
-13087 -76.1585680714285616 42.7043176666666753
-73625 -99.1967042878152228 35.6673903928571647
-91324 -118.55019667144407 34.2413480787166691
-63834 -89.3368661454095587 36.91994776093658
-59269 -98.1445494999999966 48.6675955000000044
-72634 -92.568343741951665 36.2691125424616203
-63662 -90.0004444255318816 37.5089744468085087
-68112 -95.9617470598427644 41.3464168161036838
-81076 -103.570791006128786 38.3011423447395956
-06812 -73.4950713552801176 41.4788590223193978
-58257 -97.3186584816900933 47.4987922957746704
-54102 -88.0458065000000119 45.4574628333333308
-61537 -89.412788145843237 41.1136653589073973
-45868 -83.8443370118661164 40.9675245663430161
-41224 -82.5172471261449658 37.8649853551206377
-54852 -91.7119294999999966 46.6331234999999964
-71962 -93.326512141546516 34.0384818032288763
-28664 -81.9997105837208551 36.0479585395349176
-93670 -119.256752750000004 36.4787609500000016
-47243 -85.4751831257784431 38.6876193368511423
-24180 -81.3297802741935243 39.2170096774193553
-25876 -81.4534814843750041 37.6398927343750174
-57454 -97.7653688036210013 45.6261011132775209
-69166 -100.574772329032356 41.9908021589442058
-68507 -96.6236751987156453 40.8476885683145312
-53104 -88.0466921298911558 42.5437711363741471
-71343 -91.8677774187905669 31.5956637129202882
-48765 -83.7311392533756873 44.1574736965846668
-27543 -78.8449185595238191 35.4638641666666743
-43733 -81.5398066233766343 39.9227837662337777
-15692 -79.677164713475122 40.331014885106363
-30501 -83.8192583180806139 34.3169159486702142
-48173 -83.2180571845040618 42.0752477969008822
-32972 -80.3457914375000115 34.764154687499996
-85019 -112.144458204890171 33.5096212811863481
-06081 -72.7676071109123654 41.9069150125223686
-50624 -92.6536259954954318 42.4650737754182828
-99159 -118.731110359021059 47.3488331201267769
-51553 -95.5456906474575902 41.4218570969491964
-67124 -98.7440826616585667 37.6417829106239736
-18346 -75.4007747989471824 41.122574342456133
-02817 -71.6701362937009492 41.6343027128379504
-50078 -92.864870554347803 41.9374634945651934
-56011 -93.7789345697300263 44.6140660326476279
-69162 -103.015355042466965 41.1255804394003022
-03261 -71.2180527886832522 43.2152784675514781
-80482 -105.790643333191753 39.9367993438029814
-50173 -92.712729909469715 41.9812683460392577
-71270 -92.6404130523541198 32.5251778802894975
-45213 -84.4200913227226835 39.1822273074839487
-71275 -92.8072392495445513 32.5365056755539115
-27379 -79.3464756676038832 36.379551861049201
-84002 -110.301280638613846 40.4049474801980111
-30121 -84.7890909879089349 34.2151658496197228
-23707 -76.345547829406101 36.8365524103677018
-60484 -87.6837543325730024 41.4377273841240878
-71745 -92.397820270718185 33.505530337016566
-51447 -95.1955365740301289 41.7181168519398753
-27980 -76.6245267428832335 36.2521376627639995
-60422 -87.6847437028540071 41.5388301819002805
-01521 -72.1588173795245922 42.0567922791472171
-99773 -157.147331375000022 66.8885712499999983
-64776 -93.6735867454643483 38.0434311490666985
-07422 -74.4533936933098772 41.1789674843310252
-91011 -118.19646855510382 34.2057088839277412
-08640 -74.628711290611875 40.0048006956750015
-26629 -80.7051133897389548 38.5639631422142202
-86942 -107.295945333333336 33.0521618888888895
-19140 -75.145874095476259 40.0119635615497771
-54642 -90.9966904108351997 44.1310073837471464
-26294 -80.0464547923250507 38.5390757584650459
-55771 -92.8022840117669006 48.094481098987039
-12719 -74.9197165173488884 41.4851538955166248
-73562 -98.4593481186440727 34.1757323983050583
-44131 -81.6583147900344102 41.3816071375701071
-71464 -91.8267101666666576 33.206557333333329
-71656 -91.8110206190476106 33.5916107619047679
-20896 -77.0940484246912376 39.036454479012356
-77516 -95.5025930921052577 29.2139574736842178
-77851 -95.944970749999996 30.5906897500000028
-62545 -89.393945174349696 39.7691625714285593
-60624 -87.7234791413229971 41.8790880551260045
-29654 -82.3788065258502513 34.4585781188784068
-34326 -85.3321914999999933 43.2444050000000004
-38862 -88.628705437897068 34.179377876047802
-58319 -99.3513179230769339 47.7454534871794962
-72339 -90.2780189481482154 35.413116988888909
-04102 -70.2974916405228925 43.6625585057000052
-71323 -92.2080868212731133 31.2650659810201432
-68710 -96.8448189225268266 42.4376845649582535
-25303 -81.6813480657686739 38.3581430101484315
-31791 -83.8713873599072741 31.5366590250921526
-67101 -97.462330723062351 37.7690791471328993
-83531 -116.259276999999997 45.9648664999999994
-67235 -97.4970692479357695 37.6859604225054099
-40170 -86.5037991345826072 37.9372735817716631
-97819 -117.765814269531262 44.493931312500024
-54871 -92.0461568897846831 45.7497547861868838
-61312 -89.229146487598328 41.4383024198427563
-05445 -73.2312840504571199 44.3040505665339808
-31309 -81.4278677587113293 31.8722084806048862
-34736 -81.8633089379312651 28.5767717241753019
-62829 -88.3382033333333396 38.0420420000000021
-58274 -97.3832278390597423 47.5005201103074413
-74363 -94.7258771644571453 36.952419754128897
-46825 -85.1252956762213415 41.154649341530785
-01810 -71.158890226328225 42.6478767365656708
-03229 -71.6990641067161079 43.2042894450429031
-43940 -80.8190065438144529 40.0285578917525839
-25174 -81.4294318850225807 37.8515433865355817
-66145 -96.130138500000001 39.7187935000000039
-04945 -70.2138484023385416 45.595870056396187
-48628 -84.3355046547617917 43.805114743386234
-49896 -87.3508776666666762 45.6577616666666657
-82419 -108.040574499999991 44.3805832500000008
-19713 -75.7204082129877065 39.6677474667878869
-13027 -76.3233645629324684 43.1633121484875133
-73101 -97.6584894285714284 35.2151750000000021
-41055 -83.8747921949511976 38.5216758567203925
-68417 -96.0963962838652748 40.7295782433130924
-35953 -86.2382686698403518 33.8154474723233065
-55305 -93.4317550765233591 44.9528708014139795
-63534 -92.6413650697675024 39.7627682912790377
-40706 -84.1538177500000018 36.7171118750000005
-30707 -85.3381702379923155 34.8306342569336778
-28518 -77.7579596564075644 34.9005016400109582
-61539 -89.7724617616580076 40.5572962797927303
-68934 -98.1408901233479725 40.3457253303965047
-05828 -72.1208491263606817 44.4304000820703564
-06825 -73.240506829925323 41.1935152828574687
-12550 -74.0473283270822265 41.5306063809620198
-28532 -76.8565084752558221 34.895992907754156
-19229 -75.6698669999999822 40.9906291999999937
-72768 -94.49792581825578 36.4793095230738089
-11798 -73.3653574209444486 40.7541315550993133
-46947 -86.3712064335465044 40.7603017837938921
-96129 -120.341826986626984 39.7919422882614882
-63436 -91.5489548983563139 39.5052626933391124
-34298 -82.4273244999999974 27.0886232500000013
-95264 -120.466064830188671 38.2900200566037796
-60107 -88.1775254100359973 42.0223360788505218
-41537 -82.6205502994457817 37.2109803971978721
-54021 -92.792310039076412 44.7527121006511948
-22734 -77.8150398375686478 38.538774269363735
-70006 -90.1918106705740286 30.013964023039545
-04637 -67.738246264448307 45.1861463502626677
-56529 -96.7003145650811575 46.8788205044433255
-51014 -95.7068536857765082 42.7805686843250967
-04537 -69.6258023685616507 43.8966007200062052
-25036 -81.1760470166113208 38.3049272192691035
-91403 -118.46426240434154 34.1444441422998892
-30597 -83.9873523333333338 34.5284496666666669
-55049 -93.2303820444974463 44.1750156263158189
-38926 -89.7358743571428761 33.6924937142857175
-97306 -123.052630729932915 44.8609098510758955
-77949 -95.7676769999999777 29.755513714285712
-25304 -81.5905948871432827 38.3165411885453366
-45783 -81.8440149223300892 39.1716403786407596
-79336 -102.364873670037085 33.6188050107072698
-67053 -97.3462759183672972 38.2480890897958972
-22832 -78.7678393784688069 38.4514295162153914
-54946 -89.1445666470588236 44.3382508235294139
-97765 -119.124625999999992 44.4086976666666615
-17128 -76.8820149999999956 40.2658540000000045
-30805 -82.1845705178704691 33.2980760737155137
-26236 -80.2372903950617342 38.745872962962963
-61771 -89.1400289645852553 40.7173808070829821
-68135 -96.1910357188294398 41.2038610807093661
-81653 -107.181664212215466 40.9740309813664823
-39775 -88.9411889642857147 33.5865694285714227
-71243 -91.8040043342294751 31.9655747643369637
-15765 -78.9944534063295549 40.5960088715897385
-41568 -82.0719301291735803 37.5018638785834639
-38582 -85.735362623366143 36.0983133066445845
-94021 -122.295641648734218 37.2683604535864745
-33158 -80.3174647905632639 25.6372204935002586
-05486 -73.3120658603773734 44.6402841805515251
-75471 -95.38741037549255 33.0433750213560415
-95233 -120.33681577959932 38.2052911730418003
-30458 -81.8101532739183313 32.4169147868809375
-30004 -84.2971726139894315 34.1352456682399463
-56438 -94.8045647648014551 46.1568264769760788
-16504 -80.0504565595443864 42.1102930364795824
-53715 -89.3991618884547421 43.0617481657986119
-95422 -122.645265814101492 38.9628744941979051
-37706 -83.2997893333333224 36.3469863333333336
-29142 -80.5106582255201033 33.4658162106796198
-30175 -84.5182608672865996 34.5272352193073786
-54004 -92.1311401835574912 45.313730780866976
-51651 -95.0347625625000347 40.6573372740384755
-63882 -89.2226197068403906 36.915366133550485
-59532 -110.074657420353972 48.5440827477876198
-60565 -88.1282463806118841 41.7296703344107911
-81138 -105.61076568852458 37.0372942459016414
-71497 -93.0945744999999931 31.752774500000001
-61047 -89.4078238352190908 42.1458137331530267
-63852 -90.0193737533897149 36.3796660220338168
-88007 -106.844621166254726 32.363855992075159
-96848 -157.814474999999987 21.299675428571426
-23694 -76.554077079999999 37.2289682400000004
-60563 -88.1665229307076146 41.7909805946280528
-71432 -92.4179963360344487 31.7522162311725609
-44860 -83.0938304687499851 40.8446854374999972
-43450 -83.4801039845048791 41.404314478970754
-62643 -89.4574121561482656 40.2428932752115003
-21411 -76.4936067499999979 38.9796842500000054
-00740 -65.648887367724825 18.328153425925926
-36460 -87.3101784495296727 31.503925467978636
-83835 -116.744962896871726 47.7827165486303045
-70373 -90.3799063131696414 29.5684072344045035
-60033 -88.605997699412498 42.4260568749159575
-92770 -116.419876000000002 33.7370854999999992
-62479 -88.3147905793567531 39.0416155191908771
-47981 -86.9228825694108451 40.2430923678952652
-37849 -84.0429533213289233 36.0507243407081646
-21813 -75.184219558058544 38.4280466402694714
-13064 -76.7095785827814609 43.3206608741721482
-23440 -75.9929905721039916 37.8251116855792446
-42367 -87.1678817173732909 37.2527867206982179
-65324 -92.9818092131110205 38.1464212649818109
-96151 -120.091594697368407 38.9656150592105419
-72443 -90.4171146258452012 36.1871751536852102
-62688 -89.9072762893701309 39.9378549005905583
-97404 -123.136985281173736 44.1036530847235611
-61076 -89.6684644999999989 42.3546002000000001
-70728 -90.8929144999999892 30.2563274999999976
-67757 -100.577269075709651 39.5470957949526891
-75105 -96.3987852140762698 32.2588864310850596
-15618 -79.4598281196841469 40.5505868291322145
-47163 -85.6703863287179388 38.5420806466665979
-37767 -84.1429389999999984 36.1761172857142839
-13152 -76.3848185051002559 42.8903539215749277
-67105 -97.6687592430769769 37.2458529600000219
-92346 -117.188432922091991 34.1267520557093178
-80206 -104.952215473703674 39.7309527079163018
-06240 -72.2352862999999985 41.5048375000000007
-38609 -90.3526743333333542 34.2724759999999975
-38464 -87.3886159002929617 35.2675716173017619
-40002 -85.4444480000000084 37.8306071999999958
-66867 -98.7827665000000081 39.7769885000000016
-56654 -93.8743210973952529 48.5086065934314519
-44681 -81.6662353452050382 40.5054073935288628
-00664 -66.5902074703833051 18.2136434686411164
-72525 -91.5592653010752429 36.3020414946236514
-26347 -80.1337432011363546 39.2876918079545803
-29053 -81.1007216071615744 33.8288059564436168
-77617 -94.5056527923497072 29.5082248114753867
-63836 -89.6180327999999804 36.8521536666666734
-87043 -106.457083426405532 35.3168515072984022
-11362 -73.737406576470562 40.76472156470588
-35747 -86.2965438275225694 34.4946614021404514
-91320 -118.938949038522438 34.1770133354462189
-61324 -89.4124013717948145 41.7709879487179521
-61701 -88.9912246720540878 40.4776559612587405
-02649 -70.4844642460727044 41.6108127136055614
-63632 -91.0361653333333294 37.6802270000000021
-54637 -90.2718010333333467 43.8793774333333175
-95776 -121.742749468255298 38.6783898268031834
-66728 -94.7043808823529361 37.1720905294117614
-11219 -73.9970908296176759 40.6325842452229864
-74572 -96.4285796284986674 34.6337688600508926
-64506 -94.8022382926024534 39.7903743530000895
-48072 -83.1855984348174218 42.4990472494985525
-38606 -89.9134862554990093 34.3079853051889359
-64865 -94.582689457760253 36.8554793630799225
-34472 -82.0230561754681986 29.1232428211243715
-04415 -69.0569611186440824 45.3530625254237236
-78133 -98.2512396511145312 29.8789402401172062
-95596 -122.229557333333346 39.7623208333333267
-38378 -88.6881425862068937 35.7704166206896588
-34219 -82.4154017455626757 27.5552068182149945
-52739 -91.3728194281587776 41.3735189841155702
-67661 -99.3530231377113466 39.7907668241766359
-61856 -88.5755318438077097 40.0350327489850031
-47612 -87.7038001737739137 38.186545371002147
-52542 -92.0559394167448914 40.6463088748825285
-63383 -91.1763042448732506 38.7990287742006998
-24530 -79.6064523368254982 36.7964035879365809
-12540 -73.7413501372987952 41.6613440282247751
-62663 -90.330484760456244 39.541146307984782
-53168 -88.1224662277788013 42.565363306425489
-00924 -66.0125057681816685 18.4005497336898145
-82842 -106.902293277777801 44.5730616432748832
-34287 -82.2401674718848597 27.0503855506212894
-32618 -82.5338879624919315 29.5278378080924213
-38568 -85.4748709801825157 36.4219094080355035
-19103 -75.1739333543923038 39.9524674356197735
-35899 -86.6409251111111018 34.7316275555555549
-38610 -89.0048782201545947 34.6506886785449808
-10951 -70.8590017500000044 42.8008799999999923
-72532 -91.5882664260615513 36.087774293973709
-55979 -91.9571410794014099 43.9250223475258466
-40379 -84.6842260995816218 38.3140516813542078
-16912 -77.0506634413228824 41.6845824167398007
-24082 -80.1301800952045511 36.6250200303244569
-12523 -73.7673661404101182 42.0849658497613675
-23356 -75.4185478108882563 37.9998873401555102
-13746 -75.8308332205101294 42.2608759899129964
-17247 -77.5797095588235237 39.7990625392156758
-13679 -75.7731420761556791 44.32278287416014
-20502 -77.0410161666666653 38.8994697083333349
-39639 -90.6278984615384786 31.4118976153846141
-62236 -90.2065367568014409 38.4371897945457732
-89311 -114.173724958159028 38.9947256652719858
-08057 -74.9471485069850019 39.9732685059063826
-15777 -78.9588143496732329 40.6982840620914601
-49792 -84.3008931199999978 45.3526629599999964
-65320 -92.9474296363636086 39.070207188811203
-84047 -111.885668170630638 40.6152959763255907
-13699 -74.9970730250000344 44.6610538000000261
-55754 -103.785026999999999 44.3814842222222126
-56711 -95.0597663181818575 49.3451857575757842
-45103 -84.1709574701875027 39.0969268445434039
-10803 -73.80633848566724 40.9007330751235472
-61483 -89.8608052700555646 41.1043217783955868
-07703 -74.0457791013513287 40.3131181891891757
-83126 -110.912122001451294 42.6022308490565678
-86940 -109.780569999999997 34.2867825000000011
-46141 -85.7827809999999999 39.6947483333333366
-00706 -93.4213889999999907 30.7661233333333364
-58455 -98.7292003301814702 47.3039712305137172
-15260 -79.9580425000000048 40.4475265000000022
-27014 -80.5469110808882789 35.821885996827902
-45349 -83.9386803451777013 39.9920052284263861
-43228 -83.1261466244914544 39.9543435424345574
-94024 -122.089800123775206 37.3527279500038958
-21663 -76.2261168815329597 38.7859070714285323
-90555 -119.00640199999998 48.6353936190476261
-28366 -78.3661419452251522 35.2251333882994828
-26716 -79.5144636669224383 39.2726096397087474
-41262 -82.6045457993400021 37.8666369818481385
-14560 -77.5784614972918405 42.6797686275471051
-43830 -82.1326705395325405 40.0527800773462346
-35146 -86.4367787909820464 33.7898287574985048
-40939 -83.721539400000097 36.81346301524664
-40737 -84.1462024975843832 37.0098758085431214
-28090 -81.5571321029287049 35.4584208437609547
-61364 -88.8382896847891459 41.1179603934318791
-72951 -93.8704865910042372 35.3242095591004031
-02122 -71.0563541209358931 42.2970665727741917
-79027 -102.286737706590472 34.5247037292264238
-32805 -81.4041433819122631 28.5308734460392053
-44460 -80.8671044941652184 40.8906736255584065
-57523 -99.24164018741088 43.2756458283262475
-93429 -120.526259453488393 34.8492674302325653
-16858 -78.2105593674093882 40.990546852993937
-48825 -84.4804028783784133 42.7273374324324422
-18058 -75.4902560744568234 40.9013082026397043
-78247 -98.4096777857428577 29.5814384597414168
-83552 -115.951085010144951 46.0223054652172863
-47211 -86.7168197142857196 36.1235605714285697
-95365 -120.306741751695981 37.297394135685181
-33131 -80.1901283932136266 25.7665302175648669
-97367 -124.000379632395095 44.9423000579315044
-71724 -92.5395437345400751 33.3320916515836956
-52249 -92.2078722120656522 42.0091037349176588
-02915 -71.3539989000953057 41.7714585334076318
-98938 -120.099213774690114 46.3653118358993979
-72341 -90.7671932871621863 34.8909674290540508
-35182 -86.2983163333333323 33.65585733333333
-29717 -81.4371100339314893 34.9667153993759499
-27910 -76.9904452996482149 36.2880700297410002
-94301 -122.150497295853611 37.4440238668280401
-30289 -84.6352159909909858 33.3260656036036167
-59400 -112.039983166666715 48.8426485799999881
-99224 -117.488630451413641 47.6310015594938392
-62422 -88.8711115177865594 39.2417522661396845
-29122 -81.3252473770492088 34.2397266557377193
-79201 -100.234343662003553 34.4186721606217745
-85358 -112.785982789719682 33.9720983971962553
-51537 -95.2936891034001547 41.6447221325105374
-51004 -95.8932387127997146 42.3761716892809375
-45246 -84.4693555608497348 39.2872156462821209
-85566 -109.757828333333336 32.1914223333333354
-54750 -92.2780345797101234 44.5677800434782512
-31297 -83.6516062222222132 32.7071860000000001
-27525 -78.4815152657864985 36.1135933456586997
-84017 -111.399498026014001 40.8430922248033141
-73008 -97.6406686247618154 35.5057229608492193
-53538 -88.8447013305550826 42.9249751822313499
-83281 -111.997785671361484 42.3072606056338003
-65761 -92.7307752111298811 36.5779041618521461
-68128 -96.0519782187233631 41.18281060595735
-53535 -90.2657869999999889 42.9675470000000033
-13157 -75.7260753695976234 43.2035506110283194
-00725 -66.0335685126073741 18.2277272245624076
-53534 -89.069469319077669 42.844235206499107
-14752 -79.3244921353383461 42.3525818947368364
-42216 -87.194834539999988 36.9038376200000116
-81655 -106.681647942738934 39.7083643553719057
-33039 -80.3994801311475271 25.5073388770491611
-26440 -79.8953592949742983 39.3360777152221743
-15314 -80.0176360800576987 40.1382667858381268
-04759 -68.3629177500000083 46.5009197499999942
-04941 -69.3033860034511093 44.4653371601380414
-68828 -99.2326720094637693 41.5705179936908493
-02584 -70.0333922568807594 41.2613162064220305
-63867 -89.5599218314814891 36.7488753379629642
-13136 -75.848314805785094 42.6035736181818052
-20744 -76.9845039908817341 38.7542199578126372
-92696 -117.104781599999981 33.5955073999999954
-01075 -72.5825876320451613 42.2419316742915001
-30609 -83.379616249999998 33.9554087500000037
-44256 -81.8418212237313156 41.1405546718614019
-67441 -97.1077261916739474 38.8917880615785236
-21012 -76.4964648784802534 39.0466939127994053
-14420 -77.9272106200611603 43.217447905827207
-24580 -78.6752403563183407 36.5815471436818669
-50461 -92.81514753017575 43.2917186622669234
-50851 -94.5538168108817985 40.8947907518203593
-66682 -96.9202912857142849 31.4797405714285681
-82060 -104.4947518025363 41.2273810090579502
-49788 -84.4663626428569074 46.2699375547396201
-68631 -97.3492116425439207 41.7060586578947294
-24921 -80.6137124444444453 37.8990592222222276
-99549 -158.599861428571415 56.9287773333333362
-59498 -112.832155499999999 48.2820728333333378
-16634 -78.1776319191918816 40.2086280012625821
-29605 -82.3838200891714223 34.7865375089927227
-38329 -88.1202309826952472 35.5505747988849166
-78241 -98.5607723333333325 29.3807076078431493
-03273 -71.9304469226456575 43.3039372589685811
-13328 -75.4246574363277631 42.9822674461993941
-14784 -79.3788562752924634 42.322747012388156
-78744 -97.7440667127621765 30.1830725909148363
-39549 -89.3947237272727193 31.5165541818181865
-74107 -96.0342954991401569 36.1016135796217199
-64071 -93.8347484622973695 39.0259888386187939
-19463 -75.6554590000000076 40.2571985000000012
-63136 -90.2596958301355272 38.7427749124211616
-33943 -81.308394750000005 26.9610519999999951
-74083 -95.8274334909963841 36.9262944957983876
-43023 -82.5244075803449277 40.0689987613478706
-50254 -94.0638840210527007 40.9917217587045073
-14592 -77.8810427209302247 42.8708386046511762
-26656 -81.1664784027994557 38.2512083981336914
-54821 -91.1869176162838926 46.2221793152308749
-35988 -85.8020173993861732 34.5592702086803811
-75045 -81.3809729999999973 38.4728481666666653
-38485 -87.7410633506449642 35.3401146829631543
-36268 -85.9418530273272552 33.5102435787329895
-23170 -78.0662319999999994 38.0497850000000071
-30821 -82.7287952539804792 33.4721656209709337
-19803 -75.5330319708431546 39.7948575588994728
-33604 -82.4566397546246321 28.0167912545100748
-15201 -79.9521915592334409 40.474654531746225
-45679 -83.5616502584921221 38.9761652161457661
-23415 -75.5301075190240709 37.9664765007261238
-12449 -73.9966645119851165 41.9949004554394492
-19372 -75.7632009445215573 40.0009910513176052
-33460 -80.0573060368776339 26.6200027079097445
-21075 -76.7551969305115307 39.2015187965550069
-77346 -95.1766850682371199 29.9932994436345552
-62514 -89.059908840909074 39.7610038045454459
-50164 -94.4102334536330403 41.4998881006919191
-04674 -68.4052824270480642 44.2973122355791915
-43126 -83.1710755244754978 39.8106885419580507
-53813 -90.7070211173927419 42.8428763395229808
-36362 -85.7196781022981327 31.3486133061527248
-27937 -76.7823742016949637 36.5066396481260185
-41040 -84.3239624361855107 38.6570387319094309
-13361 -74.8604909666856884 42.8983826542217415
-43832 -81.5907863587495825 40.2781664246924365
-54547 -90.0866475445994581 46.1832088373569078
-76334 -97.3957409999999868 31.8733405000000012
-61722 -88.631533391208805 40.4262151714285309
-41730 -83.4104755999999981 37.2751606000000066
-76102 -97.329952164408482 32.7542628934056523
-43932 -80.7503698095684825 40.5205071017822576
-57552 -101.210853011337917 44.2474077165532833
-40319 -83.5288626176470359 38.1273137352941234
-11221 -73.9267407386995359 40.6919156613002926
-50063 -93.9552430882485368 41.6980966794696073
-63636 -90.5514228228140041 37.3223579455703671
-96762 -157.924710164179061 21.6482725970149268
-33063 -80.2104104781442828 26.2542457791698993
-33180 -80.1437250029263879 25.96287071404684
-19844 -75.2604556666666582 40.4282220000000052
-54498 -90.6031300828729087 44.9663309309392218
-84130 -111.822532999999993 41.2841651999999968
-62214 -89.603562004723841 38.3755516097383094
-73571 -99.9229919411764769 34.931319647058821
-01527 -71.7661361321548839 42.196316558080845
-87044 -106.667648087779696 35.6628274268502636
-39450 -88.8005249999999933 31.0409555000000026
-30627 -83.0035066563939949 34.0043753415759511
-98686 -122.62971588151845 45.7137384004164886
-44647 -81.5550064583521248 40.8004541253466328
-99323 -118.949564152035961 46.2092633257535326
-06071 -72.4493122210548961 41.9965966359540701
-44061 -81.3286051818181903 41.654369909090903
-02813 -71.6627174555400899 41.3917939297804764
-98606 -122.468079886906835 45.7336727853685971
-50840 -94.4979425839636633 40.7892769667171677
-01745 -71.5295492109704014 42.3121445147678941
-75849 -95.4712688846153981 31.4058187307692407
-73448 -97.1044826721355605 33.946243111718772
-73844 -100.051032484375 36.8479408906249901
-24918 -80.7590939850747134 37.500715944369027
-55344 -93.4322475012386491 44.8627201017344959
-30816 -82.1863616557088221 33.1735231279604363
-83629 -116.200321337094081 43.9314201692350821
-88031 -107.775513273255797 32.2381091046511514
-47530 -98.7745625000000018 38.3359889999999979
-40637 -83.9301431600000001 37.77610636
-49808 -87.7439676363636636 46.8248305353535414
-73115 -97.4427857574112437 35.4394364342742207
-78599 -97.9947783945549418 26.2052412860906827
-98247 -122.332281878229651 48.9020353751292447
-58079 -97.3433491648214613 46.8605502416973678
-99662 -165.581284893129748 61.8416239236641161
-55721 -93.6553254880562207 47.2356888798351875
-85382 -112.250205367317264 33.6698699508082981
-38629 -88.9809793979750339 34.8607104739158302
-98524 -122.839785427005722 47.3755861502243008
-71066 -93.1970883529411651 31.8736701176470589
-59914 -114.273203109048637 47.8627696879350424
-22576 -76.436588695073894 37.6863769177340018
-80741 -103.406238748970267 40.5359013093080094
-50310 -93.6722516524261124 41.6270662842172428
-01473 -71.9031099059841665 42.5496937173837253
-05778 -73.2194619419160659 43.8712634421326868
-83286 -111.988460755166841 42.0604263362480424
-79602 -99.6929336024826114 32.3719646835450447
-63339 -91.3597442325800841 39.3268274350282567
-37366 -85.8581266784629804 35.303672534144404
-15845 -78.6851021499640098 41.5001993507569722
-52031 -90.4786596873633044 42.2503447669549601
-68714 -99.4750571055693342 42.4249505822941799
-25156 -81.4647477425742181 38.3879347854785635
-06705 -72.9969167027113457 41.5502949407990343
-30568 -83.3962486311016704 34.9480975195102914
-74727 -95.8873766501678091 34.0521024354027233
-27706 -78.934274000000002 36.0067457500000003
-06438 -72.5047575976319223 41.4608645534817981
-19538 -75.6931702666666837 40.5434721999999965
-45719 -82.127402395061722 39.4005103456790025
-33634 -82.5524623390440837 28.0104429037421205
-46517 -85.9811167318411123 41.6416810054907458
-99769 -170.485563966666689 63.6936566666666764
-06016 -72.5436413863873781 41.9086977489527897
-78449 -98.4267216666666656 32.9396543333333298
-85263 -111.679767192351576 33.7383032118515018
-93241 -118.906305094151207 35.2637468487874415
-81650 -107.888983365559213 39.6101642158507588
-97630 -120.39900559647073 42.1967541110372224
-85624 -110.703575941583082 31.5202845903151641
-12154 -73.6054160361797898 42.9250725235955741
-50590 -94.300341097507399 43.4095557210410874
-10709 -73.8105006712072509 40.9548429187411287
-08742 -74.0632615492661301 40.0799811680849345
-14775 -79.6962217014613543 42.2385644046625046
-07044 -74.2433517707316781 40.831322344124132
-19565 -76.0906155087536717 40.3300474155319293
-38358 -88.7640743726210957 35.9170637306597911
-28684 -81.5976688523523279 36.327396464912951
-45388 -84.4757502166009004 40.323870517786581
-65283 -91.8461373737863767 39.5034362588996757
-68055 -96.494046532981514 42.0686163113456146
-53599 -89.8606814583333602 42.6491661874999934
-48471 -82.8454506918135678 43.4177945826644773
-33592 -82.2951245166980669 28.0665191362542359
-61438 -90.6527737818890671 40.5799718300877004
-63640 -90.406439535521784 37.7621819316502254
-43777 -82.0655890092508855 39.8144876167400028
-54479 -90.2952484617646718 44.754782899999924
-23452 -76.0932139237988139 36.8409232734747789
-90201 -118.172281077372361 33.9695268157595862
-36525 -88.0359196904761916 30.8869550079365425
-61325 -88.8114581919917327 41.2338337920944724
-57033 -96.9601890937792774 43.6307538796223255
-66932 -98.9221557486033447 39.7477601675977681
-48374 -83.5243015039377781 42.469871309671241
-60519 -88.2414492000000052 41.7803570000000022
-40511 -84.5107730375884074 38.1058560261664283
-13433 -75.3017011621406027 43.5895871956868319
-11975 -72.2479023115385388 40.9474578743589959
-58439 -98.7682257719918937 45.93181993832156
-89127 -115.256586333333345 36.2291824444444472
-14303 -79.036641573273954 43.086927408908771
-63141 -90.4585954294917087 38.6595906208844724
-32361 -83.9832388766519529 30.3561107753303929
-43216 -83.0269579999999934 39.9679521666666702
-77998 -96.438581499999998 28.4420234999999977
-29708 -80.9897658712379354 35.0476129188952612
-41740 -83.0470025759344139 37.3486520175234133
-16650 -78.2940299468289851 40.1232370792760946
-78475 -97.3975214999999963 27.7967724999999994
-12538 -73.8999453765229646 41.7886800660356883
-27563 -78.2271730891437471 36.4226661054375001
-60068 -87.8422101728008045 42.0125427353374832
-56336 -94.7547958419335856 45.8136563267387373
-32381 -84.5968979599999926 30.6251540399999946
-02638 -70.1927980558892983 41.7355670969550161
-85201 -111.848599344743448 33.4315583216667065
-96016 -121.559754987836058 40.9257406350832085
-95347 -120.305481524178077 37.7827243810444884
-39203 -90.200428653155214 32.3084886112391487
-61817 -87.7131785634459362 40.0654168455568112
-36609 -88.1637811496469794 30.6595812311654221
-88322 -105.676857750000011 33.4070494999999994
-15132 -79.8445643945143075 40.3407394210110937
-38222 -88.1530912529427439 36.4469588720058937
-79749 -101.893023497461883 32.2875213705583874
-12724 -74.9370996002358396 41.8528431426886769
-18960 -75.3189139842581739 40.3634617064870937
-26263 -79.4475647727273326 38.9725523701299039
-72058 -92.3873911874074878 35.2328737240456462
-28520 -76.3106465075238845 34.9831580998631892
-35097 -86.6285849001371275 33.8962505974605435
-06897 -73.4382416481863913 41.2042162202791999
-47426 -86.9091693750000047 39.1163540000000083
-41773 -83.03252330866367 37.22500834503672
-27053 -80.3491862955706893 36.4645087754239228
-77506 -95.2013032828258901 29.7036800274779154
-76363 -99.5306204827175094 33.484286336114458
-35962 -86.0468461801757627 34.3023983130387151
-72142 -92.0957817090015851 34.6844795541307107
-33586 -82.4856135714285728 27.6774014285714252
-55810 -92.2497953470500818 46.751502872959243
-99826 -135.728712376021832 58.4185291948229519
-66873 -96.6640955646878837 38.6323179208523655
-15754 -79.1540587207206983 40.5491715315315275
-17948 -76.1405442721675456 40.8149865058497596
-18657 -75.9425783471778857 41.5310365028398252
-12815 -73.7170171961519713 43.6965145828249604
-59755 -111.964401841698745 45.2920081196911184
-72166 -91.2460790117072378 34.0618184936585351
-33496 -80.1603058681158984 26.4076792134140774
-18038 -75.4812952869623928 40.7915520625000241
-68722 -98.8693889841897544 42.9198146337286204
-45741 -82.2505210619126927 39.0700455370804818
-77863 -96.5996729276729695 30.3688729748427804
-15046 -80.230810699082511 40.5562470500000245
-21056 -76.4312135988562318 39.0734710163398802
-26031 -80.7179564405241905 40.005073972782256
-10306 -74.1192985157385067 40.5688109222155049
-43227 -82.8897216221917859 39.9435860500098698
-53195 -88.1729641666666879 42.5476526666666643
-90401 -118.491352438999925 34.0164761580000103
-48614 -84.2909086876122728 43.2488649335727189
-04920 -69.9043378416619134 45.0636463405580443
-44683 -81.3325851064754772 40.3646328470935245
-45893 -84.1488579791666638 40.8821917708333302
-12836 -73.5159480206611136 43.750205643939367
-66584 -96.4635614999999973 39.9624939999999995
-18470 -75.5325920042949406 41.7332513991914951
-51005 -95.4167587308279508 42.7288513757669577
-11010 -73.6755893877976007 40.699075060802457
-34705 -81.7278338624761318 28.7062677878094625
-04070 -70.0126139999999992 43.7810635000000019
-54408 -89.2770599968355185 45.0493979430379667
-90020 -118.311439429884913 34.0659774934865709
-60525 -87.8772942905287238 41.788904043025255
-65436 -91.948906311363686 37.6102209886363852
-82223 -104.360552537484651 42.1330050979444266
-54913 -88.4111832985865931 44.308240547222546
-39846 -84.7508360240771168 31.5626258004280267
-41847 -82.9423414592445738 37.2114761222663972
-95966 -121.461900638322035 39.4868082892200789
-58205 -97.4511750499999891 47.9265746499999992
-62848 -89.1603257446043926 38.4378621187050342
-54748 -91.2719489704166591 45.073449734166644
-61912 -88.045264229335686 39.5257463956043793
-04217 -70.7976039218282693 44.3873889753839705
-56565 -96.2916627150537181 46.0481411021505451
-54027 -92.1945401734514007 44.9232533303834174
-90615 -87.6043850000000077 41.8050052499999936
-90270 -118.187589498659406 33.9887647045577168
-21042 -76.8721274515837791 39.2746319167019422
-88221 -104.329130018017977 32.4174674594594521
-32345 -83.8678304999999966 30.5483910000000023
-87941 -107.215857583333431 32.7068847317708418
-45326 -84.0970281593406099 40.1407074967032358
-62232 -90.0049614462140966 38.6351023855031741
-01885 -71.1308245454545442 42.6451883636363576
-40502 -84.4852544948003015 38.0106566818933373
-48897 -85.1180254144796038 42.7112237212669967
-39911 -114.065635999999998 48.0072585000000061
-80483 -106.915188647143808 40.1414929298625864
-52404 -91.6889572639141761 41.94111918843506
-49661 -88.6758285365853709 46.3862117560975662
-84109 -111.809341463893347 40.7034550504373911
-33713 -82.6785133314711373 27.7891651493045408
-48939 -83.5191129999999902 42.5370806666666681
-74106 -95.9855972247772087 36.1860834604969099
-21912 -75.8074797144540753 39.4315374654360653
-65459 -92.1022263864003747 37.9830959510235786
-00787 -97.7216037142857061 30.2285432857142844
-26173 -81.7276874444444417 39.0292432222222203
-91948 -116.434135689752864 32.8742333130742708
-02369 -70.2350136842105286 41.7029605789473621
-78071 -98.1717683557083234 28.4726573330791553
-25139 -81.2852663071428765 38.1387615142857115
-01438 -72.0338534857142605 42.5625317999999737
-40985 -83.6045772500000055 36.8032402500000018
-28328 -78.3378667755341525 35.0136115298261288
-98631 -124.04408327695289 46.3809872326172226
-85173 -111.103906044853559 33.2884738309373773
-53097 -88.0067328675075231 43.2395868387240583
-71105 -93.713824179790933 32.4542390913565484
-68883 -98.5945464258580699 40.8179739511442961
-27545 -78.4853534875516772 35.7840141498114335
-01432 -71.5744514767440876 42.5593512164580829
-97625 -121.534429046447997 42.2741504603825291
-55532 -94.2791995000000043 45.1528047500000014
-76273 -96.924944798703649 33.698751105448892
-76934 -100.660708303114234 31.6047712207612825
-05412 -72.0160597500000108 44.456626
-72683 -93.1100850000000122 35.9315826666666709
-80755 -102.34974147906803 39.9078862898895679
-05075 -72.2696987292691233 43.8380684653592425
-10950 -74.1964354279601537 41.3199976592738452
-83011 -110.593092113207533 43.649047353773561
-77578 -95.3711325052234002 29.5003846313737945
-80113 -104.960400656501093 39.6435601674156501
-91754 -118.142210632730837 34.0500754354341595
-08691 -74.6118475018710114 40.217596464963286
-49925 -89.33298589194915 46.5434950536722667
-35651 -87.4799011255724395 34.4656543130348254
-71033 -93.9793728169910736 32.435115021592857
-35645 -87.5031089426992423 34.89475475756187
-04237 -70.7215250073800803 44.4943704563345719
-34489 -82.0716908750000016 29.3753095000000002
-27611 -78.6214414285714298 35.7844044285714205
-80266 -104.896579388888895 39.7937971666666712
-03187 -71.2074539999999985 43.8535237142857142
-37153 -86.5438068257633262 35.7712252137653479
-50705 -92.3186149999999941 42.4711949999999945
-16023 -79.7537691456675617 40.7856531653407259
-13692 -76.0267205400942601 44.2881530353774053
-97385 -122.756913982640128 44.8531629108050964
-88001 -106.761256880790796 32.3039632417800817
-17582 -76.437935508764383 39.9903288674647825
-47932 -87.4006088902361569 40.1252001156870293
-93933 -121.791914624372566 36.6780820415336208
-94085 -122.016764169141524 37.3890865529824978
-55919 -91.3130312933669472 43.6473907946206623
-81154 -106.624471220353627 37.6785212458893852
-88753 -105.941192789473689 36.2104522631578973
-77018 -95.4250125403711564 29.8266949431353829
-80705 -103.827841942623039 40.2693512213114957
-97369 -124.059690140562296 44.7550539076304617
-37701 -83.983693404996643 35.7893190598291682
-28759 -82.5893939408706927 35.3889908854743567
-19004 -75.2346404347824631 40.0127801074953737
-95855 -123.762645363636366 39.9194928636363713
-50094 -88.7434309999999869 43.1976255000000009
-19559 -76.1871898071428291 40.4947516928571432
-33635 -82.6069734084767333 28.0310913396805397
-96011 -121.903164120160241 41.0248671495327315
-21856 -75.7912268406718823 38.3360824870630381
-43771 -81.942078823806952 39.8362511741121708
-75663 -94.8457844230769211 32.399723980769231
-23336 -75.3701008821568621 37.9293047405965424
-11958 -72.4596041193797618 41.0413263813953222
-78250 -98.6651909049875258 29.5032957989811315
-59341 -105.038437372449039 46.62339745918365
-08210 -74.8281681748014336 39.1023654042658109
-95826 -121.368918819407185 38.5533811033963545
-73173 -97.6309157221382691 35.3501997715582803
-32119 -81.0266388283773153 29.1620822107460782
-16101 -80.3076196053481084 40.9872027570616524
-81124 -106.19526473469395 37.3321605743440443
-19540 -75.9650262786103667 40.246116536514009
-78025 -99.268267422535331 30.0802663173061333
-45510 -84.2336950000000115 39.0960464999999999
-80524 -105.040524470820912 40.6261328258405712
-80623 -104.777436776243064 40.2853724806629856
-84330 -112.148855503055074 41.8604964786150617
-37918 -83.9197410515460263 36.0547247951982897
-93286 -119.103689825107836 36.4356912977161045
-30015 -83.8303353999999956 33.6053093999999959
-60423 -87.8403020895445792 41.4977606232826659
-57358 -98.4261576999999761 44.0696162142857304
-24378 -81.3956552360532015 36.6894723642049883
-85730 -110.807958315168619 32.1795410314566652
-02302 -71.0007874611909529 42.0879617575590075
-84781 -113.512655206427638 37.3916037348578811
-56314 -94.4283965256034463 45.8113110450265779
-92235 -116.297716666666659 33.713724500000005
-98053 -122.024111033527106 47.6719606638775559
-25111 -81.1396028306011345 38.3551370464480996
-00692 -66.3353570441962006 18.4412803603690563
-06423 -72.3962297245026036 41.4674534991038684
-62240 -90.201159600844818 38.5191483284055991
-02366 -70.6609914999999944 41.8502890000000036
-49869 -87.545968277310962 46.0747811764705801
-32343 -84.4700577546146292 30.4989915369163995
-43941 -80.8305326111110958 40.257232777777773
-65667 -92.5117725437981306 37.2935204655148524
-15057 -80.2355614391260019 40.3591208599997842
-64453 -94.4691513513513996 40.3355877972972863
-45682 -82.7150609714408773 38.8185057642438949
-32822 -81.289366862127082 28.4998612745429973
-10589 -73.6989572183663029 41.3336764073678964
-95253 -121.06227435714284 38.1935881285714558
-38870 -88.3597670224383762 34.0566518086572643
-78113 -98.0730548227906809 28.9848717638647635
-17815 -76.4402838033923047 41.0222541749231908
-35778 -71.8496406666666729 41.4798306666666647
-76901 -100.496432665940986 31.4877676140815019
-67206 -97.2258028797287892 37.7040310240304066
-39062 -89.9033552879376288 31.9845376128405228
-64850 -94.4043843078960805 36.8696397337184152
-71922 -93.4243139114754086 34.0272093081967171
-91767 -117.738886108728906 34.0817821971416564
-31065 -83.1553584756184989 32.5674321109541083
-37029 -87.2768888507193878 36.0417851436475871
-79654 -149.572038384615382 61.6591425384615377
-40907 -83.5092029000000053 37.0145827999999995
-70764 -91.2588111905073305 30.2549525474067273
-43788 -81.3330451649516561 39.8039674385362829
-24773 -81.3065920000000091 28.7329673000000057
-45686 -82.3602812052463378 38.9926509989141437
-23359 -75.5864359168304958 37.8735145795678179
-62875 -89.0825304627586974 38.7473512425382935
-90021 -118.239472142302205 34.0284926906264715
-21403 -76.4883310616527154 38.948046819510779
-79068 -101.447433039124491 35.3238726970190413
-89084 -115.175585807691974 36.2879262119756092
-95993 -121.658234579807427 39.1286102769243627
-78623 -98.2249336637301127 29.9574623735213414
-83802 -115.953669567213169 47.2685130885245997
-20624 -76.7362646620011475 38.3334742052877147
-07461 -74.5946565957413981 41.2327725886611418
-60472 -87.7087607120909212 41.6432509442388223
-73455 -96.7584484690722206 34.241027528350493
-50025 -94.934277805675336 41.7442008814980667
-75753 -95.4632136666666611 32.8681726666666663
-35853 -85.8839797499999946 32.7881025000000008
-70435 -90.0935381790986867 30.5546998247127455
-50426 -93.0124598828828937 43.4150665045044875
-75630 -94.567248157109475 32.856725220422156
-70090 -90.7038014909092283 29.9778954206611878
-98499 -122.509435091652264 47.1666063174384149
-60208 -87.6788403084112531 42.0542998037383313
-73947 -102.247023432653052 36.8058017061224518
-56701 -96.1741556755016518 48.1306516463457541
-59406 -111.220444199999989 47.5840702666666644
-02891 -71.8088504608245302 41.3553239843400533
-15945 -78.8700232116402304 40.3591672328042321
-61937 -88.6482395799116176 39.7288613739734018
-76869 -98.9722961803279304 30.8922961779859548
-30178 -84.9837865357021229 34.1212764898956351
-56649 -93.3784318273169163 48.5820268926311769
-43452 -82.9027543331257846 41.5328661807535795
-32651 -82.4817308181818163 29.9037458181818145
-55364 -93.6667261532711422 44.9354279763607281
-74570 -96.1186355302292981 34.8676728881167648
-92585 -117.167442566357337 33.734244852271253
-73097 -97.6513072061068783 35.399304725190845
-36064 -86.0773776757498439 32.3238766471933658
-88426 -103.311490675764674 35.4975653762746504
-72704 -94.2570334713983442 36.0980778191470506
-97029 -120.775096694915064 45.3158447363465271
-72524 -91.343298851754696 35.8377920216464787
-26681 -80.7050853159071693 38.2314198719839524
-75413 -96.1704525319148047 33.3992865460992903
-75659 -94.1155177523809527 32.505525047619038
-02762 -71.3304797551650296 42.0109179285714376
-32537 -86.8044530363636397 30.856097581818176
-84721 -113.079626908479611 37.7288718194802968
-94320 -120.459410000000005 35.1862673333333333
-81025 -104.222255050055111 38.2680113989694561
-60936 -88.3719443829849354 40.4679804966146648
-29566 -78.6485197874681745 33.877437257976176
-84007 -110.207561105401908 40.3223311805006759
-05472 -73.1551221710275712 44.1127788912940417
-99548 -158.745481622641535 56.253529698113212
-32641 -82.2733921556647374 29.643201538051386
-25958 -80.7334982889611297 38.0111210698052062
-61777 -88.956808880368186 40.2364134248466527
-74824 -96.8744536918367629 35.8991364714285837
-73948 -102.050067999999996 36.7102361666666681
-06119 -72.7279899706362016 41.7626103984503274
-40870 -83.1528867660943831 36.9298500107296022
-26292 -79.5040390157067662 39.1538591308900621
-15715 -78.8774928734177792 40.9667967341771728
-45131 -83.9664711890547295 38.7901628258706594
-17572 -76.1476023223609673 40.0079562406355649
-72587 -91.8272206122449006 36.2394329659863956
-35135 -86.2024831963852023 33.6165533536883245
-07014 -74.1365121927710504 40.832998504016075
-70739 -90.9955212898513963 30.546434547411689
-04953 -69.2479627349763689 44.8533140704713063
-59262 -104.465877806599622 47.4894178524290211
-03771 -72.0258192774108323 44.2808844933949999
-10022 -73.9682631388456002 40.7587533931357413
-79078 -101.55023832067512 35.709573987341777
-53806 -90.9307963783563906 42.7419960346165908
-33177 -80.4041111244214335 25.5947727958460014
-33472 -80.1589472330130945 26.5478419486244732
-44231 -81.0692004720341401 41.3001468849306121
-78549 -98.0137795511111563 26.4429237644444477
-51652 -95.6454475688994279 40.7524349770334808
-80453 -105.241283935275078 39.6685565938511999
-60939 -87.7846144999999893 40.5630044999999981
-59718 -111.127568576145165 45.6636765735455441
-38720 -90.7436848855072924 34.1175497753622849
-80650 -104.764222213767781 40.6362373737060167
-64114 -94.5969818740472306 38.9580570994703095
-63871 -89.8436544999999853 36.2831189999999992
-57501 -100.334173164388389 44.5498975393163832
-38927 -90.0016765175989093 34.1280518868636449
-45674 -82.3742281707317119 38.8892612770034702
-72373 -90.5723542292769679 35.2768630017635942
-48350 -83.5242352745312076 42.7463792871571613
-39189 -89.3993583247291213 32.6005723116934547
-22314 -77.0570407148155851 38.8080934188951545
-37909 -84.0263866597414903 35.9466050172960649
-57335 -98.812353316079296 43.0663391354625702
-06354 -71.8669020882139904 41.713758426428079
-93581 -118.508665923076947 35.2488409615384697
-49646 -85.0749179960076418 44.7310779697118548
-56634 -95.4103714068787241 47.6779282100255273
-03748 -72.112531847798337 43.5974674760690135
-47124 -85.9946691419970506 38.3671197983357075
-28594 -77.0319830454131136 34.6640742411248652
-81620 -106.523941401426143 39.632253899247452
-70348 -91.2280599999999851 29.7107327272727275
-44276 -81.8306614274809476 40.9432785754550395
-03779 -72.0556958042986935 43.9832576442308181
-33461 -80.0914898767285734 26.6186649619330069
-83433 -111.335177374613053 44.4963217894736829
-15759 -79.0354422223822297 40.7733064228306432
-56735 -96.6869562661537003 48.8833025153846279
-93754 -120.22082788235295 34.926970823529409
-13502 -75.2057942609860817 43.1207752839734582
-84623 -111.558974284313763 39.473752941176464
-85118 -111.417920818181926 33.3524737483860321
-90747 -118.255880782608685 33.8672532173912941
-40062 -85.4278965229357397 37.603939032110091
-49006 -85.6274568327585968 42.2951656511712741
-73063 -97.4133838807564985 36.0543408865131667
-99012 -117.201499758886314 47.3817536590325403
-61607 -89.6809199408780842 40.6419671517087551
-56116 -96.3729461651376198 43.6128114559632891
-71344 -91.4164849714285879 31.7503170285714127
-14072 -78.9537589780383371 43.0169730941636388
-52305 -91.3306809353951792 42.024604793127132
-62990 -89.409045944971453 37.2059307495255709
-69211 -101.241330725190835 42.9365708396946673
-74085 -96.7166942003091918 36.1008103348056508
-94644 -81.1743006363636255 40.6953342727272727
-35758 -86.7425858371478853 34.7183179962962143
-48381 -83.594671079406055 42.5689017938837608
-08544 -74.6578588333333357 40.3486983333333384
-23219 -77.4358951536966913 37.5418260629052654
-69333 -101.944171149200855 42.0741753765541731
-26160 -81.4239786872834799 38.981294793666649
-55001 -92.8123160559964049 44.9042043304672731
-81643 -108.134229383364428 39.1382891103706001
-43117 -83.2059420857142698 39.7678347857142924
-36602 -88.046462133746715 30.6899066970770988
-13468 -74.8632621316371427 42.840541642699101
-74730 -96.4466632112910673 33.9204015446244256
-99127 -118.507530199999991 47.8166877999999969
-04538 -69.627985088997292 43.852335150763686
-53185 -88.1943315983246947 42.794501792041963
-93249 -119.803260261261201 35.6416972297297221
-02767 -71.0427556063316388 41.9293828620088007
-26178 -81.0280421942568978 39.0639347491554005
-99985 -132.828325400000011 55.2078594000000038
-23668 -76.3393877777777874 37.0198421111111102
-35047 -86.3745215499999972 33.2832507000000035
-94588 -121.896908788334159 37.6870143920950724
-60432 -88.0528899291694103 41.5377411021276828
-90015 -118.265650771665065 34.0391280165531356
-54834 -91.4764344000000023 45.7420740000000023
-54410 -90.041717579403695 44.5405519518031028
-96067 -122.32599187565765 41.3169581517318107
-63966 -90.2965833761549703 36.9493088325635952
-16440 -80.1169198192567222 41.7837823153152783
-21158 -77.0289348951510249 39.6320048815055728
-43759 -81.0720436917808485 40.0639107328766926
-63829 -90.297816844866972 36.0440461992394745
-94702 -122.285689425462465 37.8656160078889314
-90230 -118.399210396007277 33.9964463319438295
-36130 -86.299860222222236 32.3775730000000053
-83901 -110.253467999999998 34.3224579999999975
-34218 -82.7132663043478118 27.503080999999991
-64430 -94.5688209441823346 39.8311636297170395
-07822 -74.6980987317282796 41.142764024935488
-97223 -122.783566088881017 45.440203955977168
-11758 -73.4593960222262439 40.6804050637518202
-74012 -95.8087341224551068 36.0506910098777382
-25401 -77.9685855052834142 39.4593629919064597
-28652 -81.9649677062147077 36.0903470169491243
-14870 -77.1240645312861943 42.1671323168986163
-42029 -88.3800292591159291 37.0037288555913619
-22444 -78.8301989999999932 38.2973666999999978
-32631 -82.1013797135134666 29.7236650756756831
-12579 -74.711328888888886 42.2259540000000015
-13326 -74.9118842097364848 42.7114578953561121
-12168 -73.3842682122109125 42.5573231853767595
-99066 -117.540521232142851 47.8245441249999885
-46796 -85.4996720735294247 41.3381670588235295
-77422 -95.5882940127109748 29.0127331878932715
-53156 -88.5876864547617515 42.877748564285632
-82516 -108.82202674036418 43.195228531584533
-32083 -82.2371003005335552 30.0815739140485974
-97373 -122.778762333333319 45.0583526666666714
-15940 -78.6284294600269078 40.5146655060746781
-66762 -94.7031766940490627 37.4040471752192403
-77625 -94.3248751210327043 30.3426405124788019
-73017 -98.1011183287958772 34.9465005780104576
-35453 -87.4029452880718338 33.1680596532442564
-33990 -81.9503028007264902 26.6307384492416617
-94924 -122.707972711951314 37.9184625658835799
-33176 -80.360096359418776 25.6564930357432139
-66041 -95.3102612465193175 39.5974796044225315
-61415 -90.4222526133719526 40.654912653262258
-61362 -89.216103354360726 41.3362856831540739
-02379 -71.0167558945860975 42.023613868090095
-62286 -89.7174994687741645 38.1182277558992411
-43065 -83.0870812542270016 40.1645458430157092
-70344 -90.6035165472950865 29.4388321746751522
-71864 -93.2936323166666455 33.516176449999989
-08604 -74.757238000000001 40.2237599999999986
-75926 -94.9898167986157347 31.2228789628696468
-62671 -89.5524129368668724 40.1764832579890268
-58651 -103.691018276243071 46.2424454171270867
-92210 -116.3406185863318 33.7135013665271188
-92086 -116.678760306263968 33.3200753719649541
-64166 -94.5436660986546684 39.2977813609865549
-15080 -79.7147677500000071 40.228643500000004
-82201 -105.09019679999254 42.0185731560463296
-46156 -85.4904015271459912 39.4824406162075121
-59024 -107.64098462617487 46.1704102929672473
-75251 -96.77230906437768 32.9183467360515252
-34147 -81.3610094444444485 25.9471072592592549
-99784 -163.404704555555554 64.6809212777777844
-88313 -105.6789725 33.4079704999999976
-33440 -81.027017558098791 26.6720204253362994
-14883 -76.4859928841869703 42.2418904161842335
-38039 -89.1716963157453364 35.0507563291457558
-84067 -112.049479498993378 41.1707562285409026
-56307 -94.5740303018888397 45.6355182406863662
-77937 -102.952623111111123 33.9889461111111117
-59702 -112.552128272727245 45.9868142727272726
-60647 -87.7017871194626082 41.920973139472494
-66045 -95.2549617034632945 38.9563062489177696
-31752 -84.5478384999999975 30.8031275000000022
-31319 -81.3649983421052667 31.4630321052631565
-17968 -76.6164024611162233 40.6389647703568073
-00807 -103.176770500000003 40.7776789999999991
-59333 -106.225372771084352 46.2639778373494153
-50857 -94.8719585667027587 40.927724023318909
-23592 -78.8842646666666809 36.7103373333333352
-25984 -80.6774439349215413 37.969914979662974
-61089 -89.8050490452029209 42.4741290207564788
-35005 -86.9674598900411979 33.5924495996708075
-03268 -71.7380173260748109 43.388394388609612
-39817 -84.5860400947175037 30.9272826877029381
-83805 -116.312319442918366 48.7597748151051391
-12729 -74.6034535637720069 41.4671742761194437
-37042 -87.4029109386509333 36.5840460944863395
-03062 -71.4941775808379845 42.7235018006669947
-28073 -81.4794686078193564 35.1962219209936933
-06378 -71.9183309268095172 41.3651455104462187
-28346 -79.7406430000000057 34.8828025882352932
-13244 -76.1344079305555539 43.0365327361110985
-65771 -93.2207593025918015 36.774148533322105
-62880 -88.8570288306122364 38.8639087469387903
-16654 -78.0809565624999919 40.3257019999999997
-13030 -75.9589222041307011 43.1623365864553037
-98620 -120.795310714360568 45.8520218211811752
-62435 -88.2434208863636371 39.3744662727272683
-13334 -75.6532771321644759 42.8398295866486336
-84672 -112.691654095238107 37.4548761904761989
-98623 -121.483167499999894 45.8205553626373785
-26285 -79.9654290372340739 38.9345031063829836
-80231 -104.887414590237285 39.6724335939691883
-49626 -86.2939505904436572 44.2436058737201279
-04355 -69.9544707681946534 44.3852541409560928
-97638 -120.947853103225896 43.1666994387097063
-59275 -104.175496913358671 48.8900597844644409
-02360 -70.6169987263437235 41.8872374285918525
-83204 -112.453409455666375 42.8368249119714122
-21093 -76.637132991265176 39.4369480278559763
-83439 -111.380213166666678 44.4176199999999994
-67872 -101.073211499999999 38.686376166666669
-23462 -76.151365462758946 36.8363245722231838
-24468 -79.6584999999999894 38.3127627142857108
-94926 -122.704915470588219 38.3463181764705894
-70721 -91.0997835159574407 30.2092809680850856
-73021 -98.6667605734767363 35.3558590931899914
-16751 -78.7382845416666584 41.7637270208333362
-93109 -119.721621631056706 34.4049914927969454
-25451 -80.4015552000000042 39.203466199999994
-36578 -87.7886953377623058 30.7426432678322179
-15290 -80.0205644999999919 40.458987625000006
-93430 -120.877342372247156 35.4678801809036273
-32686 -82.2473454447281256 29.368285518139988
-35956 -86.1346029032216052 34.1485722978600776
-31816 -84.6134434463479295 32.8684793932904427
-39440 -89.1376640982770709 31.7023100239340607
-33070 -80.5279754311212912 25.0041747998994168
-03980 -70.7510459500000053 43.2333683500000063
-21710 -77.4477907186515466 39.3047053994958304
-43416 -83.2775176112342734 41.4807115247598048
-07826 -74.7632953911658262 41.1814669065540784
-14559 -77.8064293797855413 43.1885589667264043
-23309 -81.8009092631579051 38.2980042105263152
-72689 -92.8712346176470618 36.4340334117647089
-84374 -110.707383571428565 38.3750484285714251
-44882 -83.142995931519124 40.9488372018140581
-04760 -67.8425915764354812 46.3197318135719769
-29501 -79.8202368599361307 34.20194213957096
-17972 -76.2038606649584267 40.5987576810350319
-02718 -71.0167890683227512 41.8684208342258231
-28621 -80.8367663537865582 36.2977327562565932
-43008 -82.4787802317518128 39.9335438029196794
-08237 -74.9503228461538527 39.2581485384615334
-81420 -107.781294100000011 38.7792121000000023
-83866 -116.438652803206921 47.1588354912536545
-29849 -81.2304194455898596 33.0956241672394569
-66843 -96.7734223005671197 38.2534784858223489
-38260 -89.2028297780451851 36.3666827831679456
-58260 -97.9564023662182137 48.5693080403587345
-18818 -76.0303730259217332 41.9161420146038424
-46562 -85.6991151620690204 41.2157430780400489
-51562 -95.5033820537027083 41.7230986172979357
-27960 -75.9776938238636035 35.1123419109848527
-26411 -80.697275466556377 39.1934773398018024
-31764 -84.1086377482104552 31.9610756947368486
-71466 -92.7598324663742062 31.2264887543860361
-89149 -115.288098203442644 36.2722205329660028
-72550 -91.7781859218118825 35.7130904865315486
-33336 -80.2607651428571529 26.1320687142857153
-56668 -93.3476082162162157 48.6132400990990874
-79116 -101.883927 35.2137010000000004
-98043 -122.302916725878504 47.7921458845309672
-06389 -72.1118030141843889 41.5612219929078179
-72930 -93.9822075607299894 35.4269926412838032
-04040 -70.6836565079797907 44.1041956251616867
-23974 -78.2344406887980597 36.983159957556424
-41250 -82.4555833779501057 37.7596416944714548
-80481 -105.464131612941628 40.1052383977245555
-11373 -73.8764637272727214 40.7351104545454561
-53035 -88.535824441501191 43.3973926578366473
-53223 -87.9878890546137882 43.1631321432370925
-29307 -81.8452627171207183 34.9808355864127876
-19966 -75.2276865919547078 38.6041675766144436
-63535 -92.6935621204187754 40.5732163141361184
-16627 -78.4995774072344119 40.7519212500000307
-84635 -112.691257256643809 39.368561962034903
-44033 -81.1155958000000084 41.5272173999999978
-70072 -90.1079585382294255 29.8654381328881833
-18070 -75.5390409144080053 40.4283264636234065
-95607 -122.101630064017755 38.7290219293597957
-16405 -79.54209049567298 41.9403940639423709
-59035 -107.897210660000027 45.322838080000011
-16364 -79.523662241762807 41.3654446987717677
-45036 -84.2071570462682359 39.4430980056049805
-65682 -93.9608139027681091 37.4006709496096477
-85029 -112.120875625882107 33.5966597497614359
-33607 -82.5001579149230508 27.9634097444210994
-29596 -79.8237384902949572 34.7398210691397651
-25537 -82.2727987400793523 38.5148329087301349
-38066 -89.5337687165263105 35.0843265622659359
-15745 -78.9817861920000297 40.5793373280000012
-28358 -78.9730712575945546 34.6196836710714138
-37608 -82.3019096666666741 29.6153686666666651
-97002 -122.794270266740412 45.239110924468541
-54010 -92.4669589999999886 44.7348264285714237
-71652 -92.3120661504381701 33.8725746874391049
-33126 -80.2934201660092413 25.7774790874051014
-28675 -81.1383861371565303 36.5071500717378328
-04029 -70.6663910629921475 43.8914977424072035
-02075 -71.0969340000000045 42.1211370000000045
-66440 -95.6877774227354365 39.2585316015393886
-73488 -97.5454388054054533 34.4990452054054302
-57070 -97.1594879115039163 43.1912360015817782
-74647 -97.0403239763125072 36.8940081601174725
-64138 -94.4747724791743479 38.9693091460913408
-27900 -76.0860400500000083 36.1594359000000054
-29457 -80.0877169999999978 32.7221279999999979
-78717 -97.7593984583728002 30.4969507794608248
-60021 -88.2190628643218702 42.1948048690511612
-40941 -83.7183535040984879 37.1360357254098687
-57468 -97.7699915081521453 45.4975508885869502
-37214 -86.6639462578983455 36.16649408369436
-66833 -96.1655040256888753 38.6715618533394903
-30308 -84.377669223417584 33.7720876860758992
-25284 -111.931216166666673 33.3487493333333376
-89411 -119.830049694842117 39.0108980694842842
-08858 -74.739584400304409 40.6708748706240684
-92110 -117.201058605514859 32.7660963671158925
-62922 -88.8314824549565429 37.6177443763849482
-92358 -117.540183227680103 34.2691944983864403
-56245 -95.6455699283887384 44.685068653452646
-45651 -82.5015195746249788 39.276210532542926
-18512 -75.6201499314442316 41.4288574024984939
-04973 -69.1877358085806407 44.3581216081607224
-91126 -118.123049000000009 34.1377345000000005
-46932 -86.2351947609359115 40.5959726362157838
-40813 -83.6089501991746431 36.7287594344685715
-87312 -108.31415280373831 35.4546121308410918
-75435 -95.3136404927853249 33.5069831145606045
-57528 -99.7509500294984832 43.2084046924778704
-08310 -74.9040312147368184 39.5218225357894752
-95670 -121.279334329572649 38.605942323748728
-12525 -74.1782845498905914 41.6842199314982977
-23453 -76.081526777114405 36.7861884659700493
-10041 -74.0095995000000073 40.7036085000000014
-77008 -95.4151615380372249 29.7993276490785952
-34266 -81.8708460512138174 27.2042233604304364
-44889 -82.3853260670174024 41.246976831310775
-17750 -77.455294081081064 41.0561346126126168
-37307 -84.6375573214454135 35.1770376654070063
-03215 -71.5076719332192283 43.9519356292808254
-21074 -76.8490792263846458 39.6171064512381932
-07762 -74.0363903561984102 40.1537023143252156
-90302 -118.354884528105032 33.9748061514641364
-12934 -73.8871057817929682 44.8544369999999972
-23230 -77.4894658007575003 37.5836926499052879
-49106 -86.5613561665186921 41.9442300431825288
-65322 -92.9564756808834858 38.9711052067234576
-73628 -99.6841007850720047 35.6096782365108311
-06831 -73.6582604396033247 41.0708966926948946
-08812 -74.480457563319888 40.5990932695378888
-57580 -99.9334721436711959 43.3301131945148086
-37353 -84.9843051255000859 35.1180188411877694
-94563 -122.176806813528373 37.8825394053968978
-61323 -89.3955776666666964 41.4350792682926894
-33420 -82.6116883333333334 27.469432249999997
-95459 -123.637437938154847 38.9812511107231643
-52649 -91.6052271479337463 40.8434063368095934
-26624 -80.7931258666869212 38.7052413011719949
-19735 -75.6046363983051037 39.809737220338981
-49326 -85.3287579796891293 43.2409897448427785
-01867 -71.1098326314582607 42.5296637088641063
-48659 -84.0234172279412945 44.0730545506055549
-34737 -81.7957859706332044 28.702565642639204
-39662 -90.2890372668724979 31.3929483415637876
-12754 -74.7368207725618419 41.7994319310211822
-78592 -97.8460660838323264 26.0778092455089876
-45813 -84.7320429576938494 41.1926921036993505
-55118 -93.1056144328159121 44.8998768453748482
-77585 -94.5185487205650219 30.2952705129512267
-36038 -86.4615118333333186 31.2414818333333351
-63838 -89.8099119999999971 36.045007499999997
-82932 -109.429683490776711 42.1380716932039263
-57241 -97.2174253704834967 44.7015325043256126
-59477 -111.935933338959259 47.4909845246132747
-49287 -84.089552737029706 42.0358365338614206
-04990 -69.5990350791556978 45.1459842427440634
-16644 -78.445826330985966 40.7054586830985912
-82933 -110.429033512473154 41.2734490434782231
-13640 -75.9680140683125842 44.3307619164608866
-28359 -79.0105994315789673 34.6440521473684342
-74070 -96.0432660622370236 36.380826704863658
-06706 -73.0270393148889809 41.5342605404443148
-74728 -94.7477670171804931 34.0458163577565145
-88056 -109.02682895278457 31.8524368692493489
-83833 -116.761308032130415 47.5456622696413262
-58530 -101.19246016516523 47.1246696576576696
-17888 -76.3800023520408189 40.8151842704081673
-49251 -84.4105461971121969 42.4646447226326202
-06437 -72.6991678718021177 41.3196257488096066
-47338 -85.3408590941923677 40.3391987572598651
-73552 -98.741069212876468 34.6130186064382102
-47615 -86.9629829383709705 37.9702846570204073
-21746 -77.7132119999999986 39.5624771250000009
-72642 -92.5332311214852155 36.3776590638067034
-49333 -85.4646218561793347 42.7007512921396923
-38367 -88.6165976132591027 35.0581655571977606
-53140 -87.8311545727702878 42.6064749043786293
-07162 -97.7946612499999901 28.5667372499999992
-23943 -78.4590710909091058 37.2426012159090831
-41001 -84.3967481503714794 38.9242467231769069
-40864 -83.4485037999999975 36.9922922000000014
-14145 -78.4325755325410228 42.7269184040746737
-24476 -79.2209791267805628 37.9670232336182067
-95654 -120.795526999999993 38.3665845000000019
-80544 -105.171979337349413 40.1039166385542103
-52771 -90.2393829789473898 42.0022080210526241
-00761 -66.7057479494949206 18.2644890303030323
-95629 -120.703167836210326 38.5113013047919992
-12998 -73.5476090469565378 44.0861489773913249
-12522 -73.587969696725466 41.7279311712291872
-25040 -81.2465035797101649 38.1261736135265821
-95488 -123.776178631850613 39.6786876331399796
-54212 -87.2336876825305865 45.1113016387114669
-68845 -99.1281435680492962 40.7181355393160516
-60930 -88.0072270952156401 40.8267228427286284
-52052 -91.1236101482232925 42.7460171052938662
-68433 -95.730285408662823 40.0604814350282581
-89142 -115.045266507006701 36.1492881392938443
-06414 -72.551452429319383 41.5671449476439676
-28430 -78.9363062293853943 34.2977238898051766
-30588 -83.7351496666666719 34.201385111111108
-88061 -108.286855234760509 32.7848131471827173
-45309 -84.4164762233984334 39.8430727817666934
-75157 -96.4520977887323738 32.4610815211267223
-24067 -80.0557263724196417 37.0292763855138176
-49615 -85.1968366682889524 44.9629878947131445
-14588 -76.8696040967741965 42.6827779354838768
-95458 -122.790098785298099 39.0895616368268151
-56227 -96.1702358317972426 45.3035242488479213
-54458 -89.3107629421487133 44.494858289256193
-02120 -71.0975489313146625 42.3320745701624475
-13682 -75.9038027383966067 43.8523257655213001
-42567 -84.6075998740802078 37.2633313382128861
-87752 -104.705053737306699 35.998331503311249
-15231 -80.459955249999993 40.224966749999993
-05056 -72.7225858618548813 43.5234299901047095
-55616 -91.6753767210727233 47.0969839956811924
-15275 -80.1346762222222253 40.4529930740740724
-87056 -105.996794826669358 35.1569729783594482
-13624 -76.0956339465240887 44.2283169125410538
-19136 -75.0254741659366289 40.0450615423860299
-38023 -89.906759395149308 35.4607716258208754
-10552 -73.8260077468897293 40.9247433453453127
-16260 -79.2294588160677193 41.4070088763213562
-46496 -86.6035205000000019 41.0667655000000025
-71425 -91.898151629464337 31.9035671502976186
-98257 -122.515522449644948 48.3948480617374628
-38426 -89.6317402380952473 30.6547795238095233
-32627 -81.6881989999999973 28.8513015000000017
-85732 -111.306337666666664 32.0882482499999995
-38393 -88.6463741333333388 35.0055502666666669
-61317 -89.2111416376404236 41.4266935421348421
-19645 -75.7068823333333398 40.2229423333333287
-29145 -81.7721275602235664 34.2179903570140738
-92677 -117.703761064673458 33.5276922206242389
-38940 -89.9899797682625291 33.7383853243426088
-12166 -74.4570904902998478 42.8442341860670055
-48140 -83.5916544725677966 41.8705857695684358
-76101 -97.3375395000000054 32.7505170000000021
-35648 -87.3914544764680841 34.9623938301209733
-47203 -85.8586683592420883 39.230738789661217
-10014 -74.0054291400587232 40.7341856758080354
-76059 -97.3298255148809517 32.3940535119047581
-67660 -99.1648425106382803 38.7106292978723374
-21667 -76.0502586849315207 39.3386763463796569
-30647 -83.3147591692307259 34.1672972307692433
-97009 -122.352690489662351 45.4222652261804996
-75773 -95.4657574867011931 32.6808350297706482
-95978 -121.540014491442633 39.9122491980439946
-30294 -84.2593819151573626 33.6374170937499883
-10689 -73.7478935000000035 41.3157580000000024
-38008 -88.991035083726473 35.2441821777922399
-85013 -112.08289652697637 33.5093068980891076
-91914 -116.959264172037948 32.6623138816758996
-67029 -99.3147579852320774 37.2432841888185493
-87505 -105.923880307958854 35.6310963284647357
-84542 -110.721194461960664 39.5459077898038913
-98947 -120.745819262311429 46.701396771189323
-95018 -122.059180549368747 37.0698155575220269
-33438 -80.6134659072165078 26.8992524123711405
-59826 -113.68546310580831 47.4937324029716237
-85922 -109.135992381355933 33.6829244576271236
-58531 -101.153776275494579 47.603869295281612
-75692 -94.0910023677626981 32.4616701589671024
-38451 -87.0054810994222834 35.471597629391141
-32776 -81.5389917240733411 28.8144756624197313
-86722 -111.738632749999994 34.6626004999999964
-69140 -101.746940314247738 40.8239832070572533
-74052 -96.5850375875543108 36.084449254703344
-06250 -72.2039361845897076 41.7637629729909179
-32801 -81.374655355726162 28.5423806979634946
-50680 -92.9201164837209745 42.4445426166112938
-02128 -71.0296436159034954 42.3795816304579702
-20785 -76.8848667161609285 38.9173061536958542
-29061 -80.8423712667726164 33.9345539978016006
-71485 -92.5184144289225685 31.1663875096272598
-48754 -83.2370856378048387 43.7278405219512081
-48083 -83.1144063904041843 42.5608828195285156
-04063 -70.3875841363636852 43.5021025499999752
-56590 -96.1293350793201995 46.0421678314446936
-33856 -81.4257462222222443 27.8561521507936583
-63471 -91.551557178160877 39.9166447262931143
-36065 -86.0318518571428541 32.0431242142857187
-38919 -84.7358329166666664 30.7674893333333301
-46063 -85.7268549761904239 40.2707691309523739
-92325 -117.275833966820883 34.2404943440690701
-20722 -76.9523416290450655 38.9400046661404602
-72010 -91.5588634770698064 35.3425579351593271
-92081 -117.241950782910436 33.1685387361755133
-06426 -72.4000545781625959 41.351710673881712
-04606 -67.7098857760786359 44.566299021026893
-84731 -112.745286485380092 38.2472590292397499
-39073 -90.1261246039966011 32.1225143771744115
-07630 -74.0275958660886317 40.9756614614643837
-70752 -91.4120382348336022 30.5843886457925862
-55738 -92.6508533807212018 47.2911794944521446
-15219 -79.9776761224005668 40.445334257934995
-91750 -117.769841998857487 34.1211548927823429
-59632 -112.08399283836448 46.2564090726825015
-48166 -83.2982795548780075 41.9855373464377521
-98587 -124.269250756152161 47.3246411521252597
-24920 -79.7517110924855359 38.5646044046242622
-47916 -87.055393974358978 39.983355897435878
-59369 -105.12566425 46.8376519999999985
-56101 -95.1336673468567966 43.8773860297817109
-14814 -76.9496211471545166 42.1465937463414022
-01602 -71.8453151666667651 42.2723242201005718
-27505 -79.0114500331676197 35.4122206856458064
-45245 -84.2758115892702193 39.0612639874239136
-57107 -96.8104336264806875 43.5803636071374214
-79092 -102.439138424625796 35.2241291542002202
-85224 -111.874355811072718 33.328235606649983
-87110 -106.578009131165189 35.1097237407744984
-30204 -84.1302707768543314 33.06139648573442
-50535 -95.1598367782390824 42.4579219177740796
-41743 -83.0917591030640494 37.3242948495821878
-17343 -77.3320027468354709 39.8687730253164574
-99743 -149.028381367346952 63.889164683673485
-02109 -71.0540857098445713 42.3613570846286578
-79097 -101.171582258809096 35.4305678748481299
-99402 -117.090274880341795 46.2346179341881083
-87151 -106.85583871428571 35.0066202857142841
-12036 -74.6763275391198533 42.5406093337408251
-36277 -85.8179090144965784 33.7563420614127878
-49610 -85.5019099583333286 44.7702497499999836
-37450 -85.3117749999999972 35.0489732500000031
-98827 -119.642329961360218 48.8774874502834038
-88025 -108.691440237288276 33.037156920903989
-95601 -120.826948666666667 38.4225185180953019
-16340 -79.4223796426147146 41.8167177587419943
-07842 -74.4902736874999789 40.9445358945312279
-37617 -82.3697520474036935 36.5323644457399155
-49653 -85.7307849269384974 44.9744544522742729
-10002 -73.9873850076857877 40.7163802596071136
-74563 -95.0690657754581423 34.9571335962322323
-17121 -76.8936674999999923 40.2943224999999998
-67058 -98.0445047607525311 37.3216358715651424
-49507 -85.653505417249832 42.9313666219027041
-32658 -82.4026780000000798 29.8442586036364013
-46747 -85.1554883961611893 41.5589662220300795
-67104 -98.5987820998037847 37.2904937477093981
-98539 -123.270360666666633 46.6357646282051448
-38856 -88.452529968545349 34.4850079453950187
-30444 -82.5692544000000055 33.1009546000000014
-63783 -89.6973349350347746 37.5929508039442766
-67504 -97.930383272727255 38.055958090909094
-70664 -93.3707551249999881 30.230062249999996
-31075 -82.9579638708157887 32.3647466626569056
-88051 -108.974711952978097 33.0364769921629957
-75701 -95.2939769766503275 32.323448571783679
-72003 -91.388448789587855 34.3961124483007907
-85213 -111.771953409254309 33.4444703105344701
-02375 -71.107080798730351 42.0235115790337375
-95618 -121.709479016839353 38.5514856518375026
-17253 -77.9944083872340741 40.1979699319148907
-25241 -81.8032923951909652 38.8006121954736969
-35131 -86.1858338001941888 33.7191750887254997
-58542 -100.039089351254489 46.0453005824372639
-30446 -81.4692696718563951 32.5793900674650843
-12027 -73.9033874046305215 42.9172816907386832
-43402 -83.6640646141464117 41.3927553936101376
-77577 -95.2636045199591877 29.2864826028659735
-04020 -70.8093668103266509 43.772895423076875
-04094 -70.574155277777777 43.4070341111111091
-02141 -71.0858270335516664 42.3703709582651626
-14901 -76.7786688299643174 42.0926446503546501
-30423 -81.835556700854724 32.1402815555555534
-27101 -80.2173314262840762 36.1066585760035963
-97374 -122.792725232827152 44.6936284837991948
-98577 -123.680781660992579 46.6593169018599667
-16511 -80.0086221414183001 42.1603923470273756
-36862 -85.4396654559749749 32.9179324964752311
-32511 -87.2880921481481664 30.4055251481481541
-79392 -102.827759454545443 34.284347363636364
-21021 -76.39122704761904 39.4300215873015958
-48047 -82.7801286864853836 42.6755077171535078
-50229 -93.7557177987014825 41.3803462867965735
-98552 -123.921619943478177 47.3144761119565374
-35740 -85.7377186695976263 34.9433066274873951
-97215 -122.599725995754397 45.5154903851413195
-84629 -111.443476706067216 39.6727966548314157
-62972 -88.8192759568791672 37.5430107581683785
-10526 -73.6581521427413293 41.2968622457420977
-07870 -74.8204930784313689 40.807160784313723
-87117 -106.579923223684219 35.0555843026315728
-54876 -91.474774457300839 45.838783564811358
-15415 -79.8539751363636299 39.9806733636363631
-13806 -74.9643326542055348 42.3753868247663235
-62347 -91.0967363497154281 39.8648420534132626
-83643 -116.451521456233408 44.6269308328912118
-88348 -105.358684609341893 33.41257838853506
-82701 -104.292237869484993 43.822739832133415
-16240 -79.2289020766373397 41.0439771038186478
-42156 -86.0456107148991833 36.8513296878488745
-75458 -96.2430109999999956 33.2129858999999996
-22649 -78.2469367000000204 39.0041843999999998
-61857 -87.8442190446429265 40.1156388392857224
-64769 -94.5819790215053615 37.486779567204259
-57451 -98.8901079493912505 45.4301560064686782
-85007 -112.089533530094997 33.4523290658767962
-73425 -97.5607265000000012 34.4505281818181786
-84037 -111.935493502215564 41.0282506141436016
-49120 -86.2397642151903909 41.8212117745708127
-95482 -123.233938532596298 39.1457594610967305
-42378 -86.8717689774195065 37.6570622776209163
-87026 -107.169615611248858 35.0445907568237871
-58064 -97.5958983283081523 47.141820132886636
-62884 -89.0495493346840874 38.0802921697731094
-13841 -75.8310908006953355 42.4091681610660416
-76182 -97.2099344807033532 32.8814720340463822
-72340 -91.017803774193581 34.9384468387096945
-97216 -122.559296914761461 45.5144021244708199
-35078 -86.4434049037059111 33.335156858921259
-08250 -74.7974111249999964 39.300187875000006
-87040 -107.407692804979234 35.1477740311203277
-77563 -95.0080368815895042 29.3395560018543051
-54130 -88.2650331230370853 44.2753672649930792
-79072 -101.79060482097718 34.1064023321761383
-83012 -110.731962732 43.6484791119999898
-28425 -77.9177647474455597 34.5513110292699395
-58521 -100.713082835739627 47.0244440901861793
-77558 -91.7296079999999989 46.360349333333339
-01344 -72.4373627909208153 42.5999815185421298
-69216 -100.906465864197529 42.9759001358024761
-29229 -80.8925816388111372 34.1490652790204692
-27551 -78.044685603207185 36.4557750335165949
-61442 -90.9192126303029795 41.1106642512820386
-56278 -96.428070153000732 45.3296568393053221
-88072 -106.648214423542441 32.1207618305830422
-18653 -75.823065780487795 41.3937992195122035
-58482 -99.9470073253454814 46.8299370771888732
-74152 -96.6859000000000037 32.4110610000000037
-48186 -83.3767800099598304 42.2946211885893533
-03222 -71.7594612600476864 43.6208602057031172
-25443 -77.8118189925683197 39.4400092524852255
-27408 -79.8142124380119071 36.1036262539595469
-43601 -83.544589000000002 41.6419619999999995
-99362 -118.328899134968196 46.059256933101814
-13669 -75.4971072135862755 44.662663614813269
-04764 -68.497045116417965 46.4194434179104007
-52203 -91.8523415786582973 41.8171469540996839
-01801 -71.1579813064610676 42.4837182675868945
-57522 -99.9345876947205625 44.5412912403726011
-57002 -96.6812150226243858 44.2849910349062341
-81049 -103.366753135823487 37.3856665502052365
-73965 -97.6354450000000043 35.2863981111111187
-33534 -82.3713482678867877 27.8305466569052413
-43338 -82.7614120370724464 40.5594026612181082
-30341 -84.2917302845354044 33.8891309447194402
-59259 -105.053447999999605 47.5917303701016223
-14533 -77.8834000929348775 42.8427599972826556
-74136 -95.9367033527848463 36.0611946209844874
-94903 -122.546297747092126 38.0135333920589531
-04238 -70.381300423525218 44.2024441052632042
-58043 -97.5316177982884795 45.9721925525671935
-54632 -91.207259063414611 43.5750850829268543
-19129 -75.1869602232619485 40.0124727292781657
-83328 -114.609413676573936 42.5691353604139593
-60437 -88.5463760048497761 41.1637418797284553
-16822 -77.6234546609662601 41.1151335163894984
-26301 -80.3514740074767104 39.2769831005215337
-56292 -95.434551542897367 44.4995545428973074
-84751 -113.052047697875807 38.3682303792289687
-44838 -82.2658552298850623 40.7789106091954139
-50042 -94.8904471088193162 41.5368030967283417
-30168 -84.5924336468241336 33.7912191807921758
-96934 -120.912336999999994 40.0941402499999882
-18454 -75.4249891435185162 41.8267845254629407
-20838 -77.3691059692308016 39.2250049346153915
-13760 -76.0649415457469615 42.1184848479199303
-79562 -99.85114771020163 32.2484095754868179
-63473 -91.7717828580968416 40.2295951978297737
-99504 -149.748622270764031 61.2025166287513827
-52047 -91.3567778650189553 42.9667704266702799
-32548 -86.6195092500566801 30.416644626558007
-29176 -81.116605000000007 34.4747706666666645
-83726 -115.468069499999999 42.9457900000000024
-56546 -96.7596002070956871 47.0903447920792217
-50863 -94.1848160236221048 40.8468014330708584
-98851 -119.447385419482856 47.3939704720836303
-17735 -76.867871923076919 41.5972183076923159
-29481 -80.8268138346534499 33.1088962529702755
-63957 -90.7073360787491083 37.1634776140195839
-95709 -120.675153054876745 38.7448399286272291
-13881 -76.1983752500000122 42.2530971249999965
-26153 -81.0980769285714302 38.989118642857143
-07407 -74.1192915595239157 40.9050952085033899
-84366 -112.951424153846176 41.9663021538461578
-30340 -84.249907582408639 33.8945074393679917
-04732 -68.3829357480863393 46.6141198893527502
-20690 -76.5270196821191604 38.1587525112582213
-78262 -98.4025483750000092 29.6511513749999978
-85266 -111.920934097504215 33.7709941010980828
-83539 -115.869921409445183 46.1065545541912911
-62090 -90.169890948795242 38.6710760180722701
-25148 -81.5758337535210671 38.0513562582159039
-12720 -74.8877290319410491 41.6802547199017255
-22623 -78.1402694195122507 38.8520321499999497
-34043 -86.6807040000000057 33.3078569999999914
-47247 -85.8886458823529182 39.0599794652406516
-71068 -93.3077234496948051 32.2966950826918549
-39654 -90.1490439298518851 31.5363688605140489
-77587 -95.2299525437637442 29.6610645361050551
-85388 -112.436112561541677 33.6203744978965844
-90740 -118.085983558787092 33.7591270794994216
-62553 -89.1388642481961853 39.2784207460317774
-59824 -114.197523478890474 47.4225205950944684
-12843 -73.9918867436144296 43.5794349802043115
-76803 -98.8669560000000018 31.753498142857147
-95350 -121.006401965630545 37.6726942124352249
-62615 -89.7443344353001606 39.5865167846791195
-50117 -94.8614462978889321 41.6674418029710836
-23357 -75.673818004158008 37.7574783461538814
-56021 -94.3236173138957241 44.274601550868482
-27880 -78.0875508263581111 35.7374656536063497
-20160 -77.6818257272727095 39.0901569090909078
-61929 -88.6118779159049836 39.8155720210237405
-67663 -99.2856251693974912 39.2262998119086816
-91287 -82.8085379565217181 37.9399184202898638
-89110 -115.055958135526822 36.1736665422139012
-26586 -80.1093606379309904 39.5261769568965491
-03908 -70.7613759108163265 43.2359438998612973
-30090 -84.5488930000000067 33.9542473333333348
-07410 -74.1174735236805873 40.9393538464140931
-43719 -81.0774920063086313 39.9955068846831523
-10922 -73.9908181437549075 41.3345925184603331
-11420 -73.8098159999999979 40.6681681111111075
-67475 -97.0600364981817734 38.5945977345454452
-03857 -70.9497517271009741 43.0727975121812676
-62248 -89.9870779810606365 38.3057966136363746
-03444 -72.0512124176642601 42.8976370384988712
-80303 -105.215115348973725 39.9938982255251787
-18452 -75.5876666541225148 41.4821986579281798
-64438 -94.4101105218578169 40.1694003579234362
-98407 -122.506687037773673 47.2845987531733201
-78903 -120.613145250000002 46.567005249999994
-86333 -112.162907957960726 34.3512405128313247
-46036 -85.8368934541443451 40.2831156644929251
-85135 -110.786784731800708 33.0045100191570668
-24375 -81.3923805219440908 36.7784978164671728
-55136 -92.1326810000000052 43.498818
-54652 -90.7557892592593163 43.4431889314814725
-63014 -91.3339807524252336 38.6431270624209873
-58456 -98.9665631498639158 46.2949326553133389
-43061 -83.1987816277518135 40.2798126359796242
-93606 -120.012120721238972 36.8032851504424841
-81101 -105.869795324206677 37.4695538207685956
-45764 -82.2498174284998953 39.4407510558291747
-18656 -76.1769542282634688 41.2991067696719014
-78409 -97.5308120234939082 27.8111761186747195
-99748 -158.730250438775528 64.3258083979592215
-62414 -88.8093258916436952 39.1720113691460057
-47590 -87.0959762128113653 38.3533482398576879
-19977 -75.5998368791398292 39.2868734709384526
-79410 -101.890790797624035 33.5689593744366874
-03584 -71.5554708762760896 44.4829820882352536
-47175 -86.5546398695988586 38.3560049166668406
-13033 -76.5672810674052187 43.1843833775940027
-32063 -82.1337864737926111 30.2805220019603318
-14738 -79.0838826941885742 42.0415056691449678
-72012 -91.9119208855441912 35.0963428879408781
-70464 -89.8806882200557311 30.5369120640668577
-64448 -94.8099752572817067 39.6028495812297621
-07501 -74.1695839780921773 40.9137092784116803
-39714 -84.1786431176470558 36.2917704705882329
-44235 -82.1216213412017595 41.0326824892703215
-79918 -106.392140499999996 31.8310549999999992
-21219 -76.4453622816337202 39.2308238110748775
-28386 -79.1185499851012963 34.8492525937129258
-52207 -90.8284614210111698 42.0925897027382874
-66518 -96.5593311079545913 39.9653643892045096
-72758 -94.1365053884302796 36.2998885260163746
-07702 -74.0592152568226965 40.3259923211500677
-96501 -122.085002083333336 39.8772935833333335
-75454 -96.5664966430655056 33.2852466286858757
-95941 -121.256253339244736 39.5055384416475945
-23841 -77.5632158445970674 37.0766020072041727
-61410 -90.3978640295327835 40.8041149281216491
-02260 -70.157399538461533 41.7352501538461595
-28042 -81.5030598333333245 35.4280826818181822
-16871 -78.053854147826172 41.1862190034782216
-17702 -77.0656928406204287 41.1977709124656997
-92694 -117.640057137682987 33.5527446154636735
-56090 -94.2155750636672309 43.955814689303935
-37281 -79.7241433333333447 35.2517143333333323
-77306 -95.3173797400398399 30.2782596309717214
-97737 -121.646458191455537 43.5096271534809773
-54501 -89.4100122738903735 45.6579481890734158
-11203 -73.9340007971193245 40.6494198716049624
-22327 -78.5708539347826047 38.3965251086956485
-38878 -89.1952749656291815 33.8884235139377594
-61874 -88.2498590099626341 40.0588333652968061
-02816 -71.5939288516458561 41.6926774981620625
-56573 -95.5703624151746141 46.5989069935723279
-77367 -95.3902932103173669 30.8464432301587124
-57268 -96.6868365900734545 44.5587137757353133
-23959 -78.8003775843579461 37.1052491398924289
-54832 -91.3129532090276825 46.3104357279612984
-50455 -92.6350455410142075 43.4525604176581268
-21036 -77.0003990585272646 39.2359183033354384
-59864 -114.111178578547879 47.538559661881159
-77893 -96.7243064999999973 28.4155675000000016
-45773 -81.2886639427279789 39.4513640143180382
-32009 -81.9530328504443304 30.4260060922464035
-27516 -79.1203594386774682 35.9093292237625263
-58759 -101.248974855089756 47.8298415625321383
-53947 -89.1406656575342282 43.7473823698630042
-67622 -99.7107637248158483 39.8965028624078784
-04282 -70.2497184081248065 44.2688801936560026
-72543 -92.0064647905504813 35.4728258942317822
-28508 -77.8208116740102867 35.1042017515964275
-48464 -83.4260361644927002 43.2164024405797633
-98925 -121.206492692454404 47.268515725883347
-29544 -79.1898953811700324 34.000031749315589
-20832 -77.0745422037083188 39.1535743153489832
-02188 -70.957797509313167 42.2090249305393215
-98133 -122.344237834147307 47.7421688098458503
-61477 -90.3113611853974305 40.4841696325459282
-03957 -82.0177716000000032 26.4528134499999972
-08619 -74.69110073550236 40.2403590424720434
-27935 -76.8570636329080372 36.432310080743548
-33480 -80.0385027870925825 26.7134775555556061
-15634 -79.6049605947368377 40.3246241973684434
-99587 -149.125421278672889 60.9578994348464107
-32803 -81.3526847896080909 28.5566125057588671
-52595 -92.6188426216215817 41.2863686531531329
-99726 -151.518606599999998 66.9133147999999949
-04917 -69.8344393523561138 44.491380991040522
-32639 -82.7247215993377267 29.2416168617549488
-57543 -101.498042184151856 43.7857954720982505
-22432 -76.3559553867188043 37.8679776809895827
-74459 -95.4925072045454328 35.5209460909090993
-50605 -93.0361410000000433 42.8435261252699675
-72567 -91.9046646133332956 35.8190271991666549
-72585 -92.0160833255814197 36.1721370174418766
-53219 -87.9926759492282429 42.9950809438888442
-67063 -97.2155082651729856 38.3409440281059517
-29729 -81.0129830130358926 34.6945046895901612
-23899 -76.9660468387776859 37.2254522455215806
-81073 -102.656644956412535 37.4102730282219511
-13652 -75.2106973689993907 44.4382063455754803
-11001 -73.7041944087695526 40.7221316403819813
-16248 -79.5066657721657037 41.033923561336735
-81034 -103.847824500000002 38.194358500000007
-06467 -72.898804245614059 41.5680532982456157
-39423 -88.905543669686395 31.188487567421582
-29556 -79.7872160912882578 33.6756629903460194
-39815 -84.4954721306559691 30.7426695551601057
-38621 -90.155234034759502 34.473532288153045
-17371 -76.7900300277777887 39.9047873888888915
-95926 -121.845470034537357 39.7441985156867759
-66508 -96.6439025051345766 39.8546148382331893
-75973 -93.9509247444912319 31.7184004964972388
-02905 -71.4029248194378852 41.7859925103046592
-75114 -96.4370428502751196 32.6329825354127223
-96027 -122.944383384681373 41.4215856246297633
-50043 -93.3727287499999932 42.417823999999996
-64874 -94.0536468357142894 36.7605589952380853
-45744 -81.5098587747864372 39.5311579077182529
-23840 -77.6654328851107039 37.061336168042196
-54986 -88.7266469549549583 44.1212956971744532
-54012 -92.3239209999999986 45.1273520000000019
-76952 -100.987192000000007 31.8326491000000047
-67484 -97.8080054591744812 38.9865428646788388
-62866 -88.9750901052631491 38.2132177894736671
-69536 -103.4936285 41.807478500000002
-94606 -122.243517132515734 37.7936233894223506
-12508 -73.962388496147355 41.504062207433023
-78609 -98.4483203302396674 30.7573340103119506
-24517 -79.2483127636264442 37.1394647857528568
-52658 -91.2441067498690899 40.7147091077609673
-76656 -97.0636930409555276 31.1882568013652239
-01331 -72.2051998664544357 42.5762327701658094
-48463 -83.5193178999467563 43.1676658531133626
-47230 -85.6234101443261011 38.7947701216311813
-43354 -83.760159250000001 40.3153594999999996
-48768 -83.5824451291349675 43.3652834823987661
-06340 -72.0477459554471125 41.3543789374929247
-41451 -83.2575560000000081 37.8708053333333297
-74369 -95.1640046660497205 36.9210148219136371
-48896 -84.9026638608695663 43.5220258434782608
-15461 -79.8988208536530067 39.846334218965147
-18103 -75.4743315256600624 40.5814979595855618
-54129 -88.17363559312831 44.1335997992766664
-48722 -83.8559618996783911 43.3497327974276487
-79604 -99.7333781250000015 32.4357690000000005
-70343 -90.599647910068569 29.5525990703811736
-59032 -108.848906004728562 46.9265454902269354
-91743 -117.585961100000006 34.0644431999999924
-04101 -70.2580663563609846 43.6610681315551048
-79774 -101.8942835 30.9126525000000001
-26802 -79.2219777848324895 38.6365746410935031
-53929 -90.3152349705402315 43.7490750687397281
-43456 -82.8258783892773778 41.6479616299533291
-78500 -97.7938604999999939 26.4892699999999977
-96049 -123.363948040293025 41.7896431941392095
-70000 -91.0771219374999959 34.0186259374999977
-31322 -81.2608720279441741 32.105083779550263
-55940 -92.7919276777141988 43.8901014338287396
-47224 -85.224229389743769 38.887385609829046
-58763 -102.522782212022236 47.9954864198509412
-26325 -80.8756571917403591 39.098619207472872
-64024 -94.2174811599607835 39.3372814187573496
-63868 -89.6896288322580091 36.8465185505376454
-49887 -87.78541619377161 45.4157576297577563
-56647 -94.6202829224648809 47.6673060063392811
-24839 -81.7771541367232118 37.5570570564971433
-99768 -155.464555449999978 64.7362690000000072
-83638 -116.093440791018836 44.8770767844393603
-71257 -91.1733468749999929 32.0275678124999956
-76107 -97.3844571467318048 32.7405572717316389
-53965 -89.773212265399394 43.6673137064219361
-78381 -97.0867535294117943 28.0319368235294135
-75420 -95.7222759412833568 33.0439230562953199
-05340 -72.9007931656870483 43.1521373865099633
-55959 -91.7563141966262492 44.0918300759093498
-03745 -72.3354720710755714 43.4752857865677527
-37165 -87.4694298400000463 36.2918407485714241
-07442 -74.287164788215506 40.9985776329966356
-73771 -97.9454255549738519 36.8692920209423889
-22011 -77.3789620000000014 38.6724563333333364
-96110 -120.106573453592887 41.3163160853293476
-00715 -66.5383088780487668 18.0090277987804868
-40403 -84.2646881864613704 37.5809327690871982
-73851 -99.7508791249999973 36.6161771250000001
-46614 -86.2534709747420152 41.6198088603126521
-63737 -89.6530263333333295 37.6628553333333329
-58235 -97.4688927483314984 48.0892797049571428
-46256 -86.0135832480173121 39.9046740900623931
-45158 -84.0882947058823333 39.1819393865546104
-08319 -74.8172210929367623 39.370575947955345
-20012 -77.0313344359552872 38.9805675389549293
-43209 -82.9275652594547665 39.9547964582625497
-36503 -87.5645543333333336 30.9983590000000042
-48137 -84.0569711495122078 42.4448943424246963
-97416 -123.673083889222312 43.0350922974072532
-34606 -82.5967510875521072 28.4677890260507418
-02333 -70.9432089890835442 42.0324085130768594
-24815 -81.6550844900989858 37.2531719183168306
-28671 -81.5286148754941138 35.757901391304344
-42731 -85.5782497283072701 36.8758696045519727
-66612 -95.6801740041971556 39.0411857282266439
-55314 -94.597293420978545 44.7524463410510052
-88023 -108.132485858683836 32.7638531089536329
-36442 -86.3531005864106902 31.0531734980461636
-37847 -84.2956403802072742 36.4529339480973036
-43155 -82.5108311168361439 39.6335694594334171
-30315 -84.3825584723750239 33.7051964896186291
-56481 -94.9491413486796603 46.4549774846534405
-18981 -75.3947305000000085 40.4867309999999918
-15856 -78.6456135158544498 41.0857607587007365
-84103 -111.874784411742652 40.7804313495088238
-57446 -98.1522080801242822 45.8649277260870463
-15636 -79.657881460747987 40.3629077640771925
-97233 -122.501809842392944 45.5133790631053827
-79634 -100.646996000000001 31.6115112499999995
-18901 -75.1415410868735876 40.3064318319532617
-75482 -95.5996511496106223 33.1269250497790466
-35552 -88.1404880405674476 34.0683910873759288
-37115 -86.7049949375937103 36.2627606943869623
-37922 -84.100108602648902 35.8685223296404203
-87626 -108.750003799999988 35.2508194000000046
-75796 -94.9386433333333315 31.485042333333336
-93434 -120.583928057330041 34.9576568353808383
-35633 -87.7689917434156541 34.8981817154333953
-04449 -68.8837026555721224 44.9893226297178117
-08631 -74.2120037499999938 39.8385812500000043
-30531 -83.5671917287069164 34.5158603709013008
-46182 -85.6690787999352352 39.4548003114277037
-82715 -104.168847491844375 43.9414181455458106
-62053 -90.6243193881117861 39.3010990909090836
-56342 -93.4452773968256452 46.1739196458770991
-45244 -84.3185290062218797 39.1154746999267999
-75541 -98.2391465000000039 34.8406774999999982
-12306 -73.9985656277862205 42.7905892528477878
-25022 -81.8112204152542546 37.8311152118643861
-56362 -94.7102581135273738 45.3952953002683017
-45720 -81.9233639999999923 39.0878122727272768
-43768 -81.4413045300752287 40.0381357368420723
-57221 -97.5188584453704976 44.5783039968733945
-00694 -66.3992709824561302 18.4756565789473761
-27536 -78.4070208943008993 36.3314525431151409
-38114 -89.983969593782831 35.0979346850233469
-75459 -96.6335556542677097 33.5207923357961803
-25507 -82.5596223843137835 38.3959350568627471
-98006 -122.148623961519164 47.5584652575192379
-99401 -117.142609976908091 46.1268057912124192
-53233 -87.9333827173662428 43.0402296884866615
-62521 -88.9259364772400005 39.8230396611924249
-84302 -112.027726219516722 41.5088302820955661
-17745 -77.4394381092665327 41.2217502741989108
-16691 -78.1422518241468822 40.0932474628171036
-93625 -119.675780411145141 36.6266976489470437
-42246 -91.5412125000000003 41.6551584999999989
-98630 -120.253987846153876 42.4507208461538355
-46885 -85.0628029090909052 41.1470040909090855
-78003 -99.0552978539216866 29.7261478947336428
-27216 -79.3666693333333342 36.2462310000000016
-53911 -89.3806617692306702 43.3218281068376641
-47264 -86.2685077601569361 38.9581151678544089
-97038 -122.560440088750482 45.1138097332916672
-29941 -80.8125478423091721 32.5747944854707683
-21215 -76.682108363446531 39.3467296197721481
-17342 -76.7122352653061057 39.8491784285714203
-49105 -86.3574492500000019 41.8791632500000048
-08045 -75.0313945424390027 39.8679341473171078
-55328 -93.8004430505099549 45.0343284632600245
-13153 -76.4574070790960292 42.9945247457626962
-17839 -76.4246780000000001 41.0365202499999953
-64437 -95.3549752599898568 40.1505926621692382
-61775 -88.3689605589028986 40.6473703529676982
-40930 -83.7307171388888491 36.908734333333328
-87531 -105.862734122806899 36.2437205789473751
-06524 -72.9991343266199237 41.4231314346958825
-11722 -73.1992024126373053 40.7853951310982126
-94573 -122.411839724637574 38.4876229033816628
-49316 -85.5518486034823837 42.8091585969006161
-28504 -77.6408806986902675 35.2545350267655095
-85237 -110.943937769987826 33.0150525153751957
-93447 -120.575218000000007 35.5846930000000015
-03602 -72.3418847629739474 43.1475418651030651
-41041 -83.7205457332718055 38.4073372444093621
-43047 -83.6416005964912443 40.2066361754386108
-39842 -84.4241524350109245 31.7614249865206411
-48849 -85.1345050493484621 42.7884875911823102
-28376 -79.1862590530372188 34.9976972071814387
-47331 -85.1576836546483094 39.6248367666066201
-07940 -74.4158965254675024 40.7565669938320596
-74358 -94.8805504628571725 36.9160676399999872
-63951 -90.2906992653778957 37.1028971335676445
-77856 -96.440851707474053 31.0562397662142118
-70782 -91.5284637436516988 30.9622187654171661
-08406 -74.4860238212159089 39.3431843627334175
-44867 -82.9890957561798075 41.1454485724718708
-90280 -118.196021606282898 33.9443700158861432
-54813 -92.0321124988682442 45.6424100516070794
-50480 -94.0444170812737923 43.2430060993346004
-38245 -87.8946983333333378 35.4555281111111142
-23341 -75.8831721606648273 37.580316609418297
-24382 -81.0945139742107131 36.9365979126250537
-35094 -86.5529721426466807 33.5187180816089381
-39771 -89.2766573593749371 33.6073094453124881
-01862 -71.2919213347090732 42.5713879702846683
-33705 -82.6434572961268685 27.7375578775559468
-80129 -105.009881470511786 39.5395001527956467
-88115 -103.354070625000006 33.9303773333333325
-19534 -75.8655039390992556 40.574776207696857
-60045 -87.8623464132835181 42.235736432562291
-59501 -109.691098489274083 48.5440447302936207
-22949 -78.8762514031704711 37.7871079906323075
-85363 -112.301894109425874 33.5861610379198154
-55130 -93.0808854487805917 44.9734972792683152
-26584 -80.3678949999999901 39.5383775454545443
-35572 -87.2754020538074542 34.1530859301367542
-87466 -106.070603199999979 36.0504046999999943
-63848 -89.9007964251968872 36.4537297732282894
-98329 -122.715641193998181 47.375534035483831
-22963 -78.2959205685378947 37.8738060606601792
-45548 -124.03601350000001 41.5240788333333342
-74523 -95.6222652342743373 34.2282075049530121
-01610 -71.8097206474523659 42.2484950808917645
-02347 -70.9605273363033433 41.8376476124171361
-05768 -73.228001435261703 43.2784243911845579
-14054 -78.1348545686403497 42.909331616135276
-58425 -98.1125969867568983 47.4553573173925187
-56062 -94.4167411829694032 44.0511293684710097
-18931 -75.0328796842105277 40.3489270789473622
-05904 -71.7117160336134845 44.4164026218487535
-33831 -81.9520490000000024 27.9547104999999974
-64492 -94.5533645232559081 39.4819561241860129
-04459 -68.3514521543998512 45.5437541184000594
-49508 -85.6257368251347231 42.8736351273249667
-27528 -78.564659674418607 36.4429903023255832
-28735 -82.3488230906418579 35.474402976482132
-81253 -105.10897710172928 38.1770499461197659
-13680 -75.3467347460707373 44.5782614420431358
-44266 -81.224732631874204 41.160363078542332
-38505 -85.5054916666666571 36.1745741176470474
-25672 -82.1152666590909064 37.5832151818181757
-32439 -86.1599131507324927 30.4798711931523982
-50511 -94.2232635846514057 43.07240728837116
-06277 -71.8373553285381661 41.9741814225491154
-25441 -77.9114548030302956 39.2215668181818131
-17565 -76.3268874883566895 39.9023217897539197
-92254 -115.979481942618492 33.5439675581395065
-61431 -90.2717927055125529 40.6006030332962595
-47456 -86.697049843246063 39.4717227182458998
-43160 -83.4383891847996182 39.5233139989334745
-45236 -84.3963890703678885 39.20851222662845
-16624 -78.607026986187833 40.5753187707182263
-98002 -122.215177007397301 47.3083751154034786
-50659 -92.3166494637059429 43.08419091587281
-41712 -83.1564657467350941 37.3662034416303825
-49729 -85.2844291689149543 45.1607311652360011
-50932 -108.802316250000004 47.0247317500000008
-85147 -111.756423490079342 33.1019534404762084
-73140 -98.1150480000000016 35.6239530000000002
-92656 -117.729539566577174 33.5798464023503627
-49617 -86.0333584359800767 44.6392399501689781
-95825 -121.405068237364318 38.5897955005832003
-40878 -83.3943134375000028 37.0314113750000047
-74534 -96.3550981951219399 34.6143033048780566
-23227 -77.4451124145727334 37.6110442224238781
-43001 -82.6097134796368664 40.0920956184985542
-47386 -85.3752561405119081 40.0531511492936829
-65734 -93.9396663167939749 36.7974481335878281
-74059 -97.0341149674944319 35.9762533898911414
-29476 -79.9668113333333253 33.3841788333333298
-76548 -97.6512599261373282 31.0592648496399164
-13626 -75.7130853237821952 43.86246713435213
-92841 -117.976239045627594 33.7879583944137494
-59540 -110.558766590163913 48.5404732688524376
-27852 -77.6496673409239406 35.7508501374864878
-45638 -82.6691090922807348 38.5508967263201114
-02650 -69.9688923768115387 41.7033667162764914
-65638 -92.3273912678571946 36.7845342976190608
-15341 -80.3491145463990506 39.8394859527050968
-63071 -90.8178175032405619 38.1525222878382735
-48505 -83.6971102483543632 43.06231761272646
-00772 -65.859477090140885 18.4285832070422479
-17880 -77.1252647142857057 40.8914254000000028
-37030 -85.9618996621159965 36.2694751220036906
-41018 -84.5964932974261359 39.0082075685340541
-89740 -107.070058666666668 32.6683115000000015
-15840 -78.8236444825855074 41.1635042717289963
-63034 -90.2907162882309819 38.8348814448740427
-98835 -119.296132666666708 47.2396294166666522
-28123 -80.8269227499999943 35.5462902499999984
-14728 -79.4349548763385371 42.2529316204496652
-29426 -80.3715930544745589 32.7845004883268842
-56020 -93.530969363636359 43.6142549318181807
-06481 -72.6984576608884794 41.5347791722643507
-55017 -93.4291441372656806 45.6702228257994278
-56225 -96.4718107399052371 45.4470786377671558
-86549 -106.033428799999996 36.3306560666666627
-80239 -104.827231710536992 39.7869650667424963
-13482 -75.1850365955055935 42.7031212134831364
-48416 -82.9899496896337752 43.2153764115456909
-98637 -124.037774583333331 46.5013165833333275
-16049 -79.6679815502999418 41.0921421286974038
-95490 -123.378782548261398 39.4556719951772337
-68777 -98.6942090837837043 42.8792153216216434
-41042 -84.6536548141330201 38.9859197761752085
-28010 -80.8968482142857113 35.7236180714285751
-97824 -117.826341055984884 45.3235373504333054
-50125 -93.5772438243844249 41.3481202476493763
-37503 -84.8260768571428656 35.3918915714285731
-35471 -88.1480721585366354 33.3852560487804695
-72048 -91.1516773547963908 34.2936780538764623
-49657 -85.1761086069707147 44.2154787654157033
-11956 -72.4761374532019715 40.9935368325123051
-49769 -84.8421352965075357 45.5570456739131089
-63447 -91.9091545813048754 40.1055223414475464
-48649 -84.1982139232631539 43.1504046486268109
-66416 -95.8610069688346442 39.51829243631434
-66422 -96.0634182750902568 39.3252631234657457
-37872 -84.6792005379640926 36.264072814512879
-77845 -96.2898952191652882 30.5663805480558928
-69212 -100.773819417475707 42.9382594174757415
-13165 -76.8781580847794572 42.9094635732935572
-97015 -122.533151925230882 45.4177344331631758
-13649 -74.7158369199999868 44.9269022000000007
-14066 -78.1813944603624265 42.6289190756539327
-61870 -87.6236927857508761 39.9058992824192771
-88266 -103.315725499999999 33.2641545000000036
-85756 -110.907886541430031 32.1077837165960958
-47862 -87.3478279981907946 39.7780179027589327
-60480 -87.8804245766546046 41.7352183342201712
-68627 -98.1536224406963811 41.5545096735582433
-77973 -97.0077687142857314 28.5454423174603171
-50673 -92.7104646923076814 42.5248157076922979
-75941 -94.7607946640369363 31.2057619528969354
-27018 -80.5230933535334259 36.1991120477786552
-80444 -105.70051738742761 39.7123515131493718
-52162 -91.5459704382603405 43.1024688540518781
-95818 -121.494185301079639 38.5555772224254127
-05648 -72.4965743205646618 44.3741989601814169
-47514 -86.5841343496113041 38.1400158557158449
-89460 -119.764506118704716 38.902049483632716
-22454 -76.8315151297405237 37.8460007860278438
-35643 -87.2031935768062567 34.6325745223113941
-78208 -98.4550725191048031 29.4431898422489375
-01440 -71.9898088110440426 42.5756703433233668
-30439 -82.059693724740967 32.4133057683415444
-28012 -81.0404459008687894 35.2204781131380287
-48324 -83.3969993498242133 42.597324075008153
-02467 -71.1630736031979865 42.3185110606507635
-90013 -118.242266576787713 34.0443384724501854
-71923 -93.0842252906355299 34.1045492682771894
-58443 -98.669346439247974 47.4385453215045416
-15734 -78.9940518814814965 40.7195150888888833
-99121 -118.512428784950828 48.9683650209491361
-36422 -86.2167120000000011 31.0193094285714324
-48620 -84.384240363636394 43.7948129999999836
-19943 -75.5876471735178797 39.0142022442661229
-04253 -70.2152480477802925 44.4129155727652218
-75891 -95.5571343333333374 31.7477703333333352
-20153 -77.438976750000009 38.885796062499999
-03580 -71.7499581179233843 44.19757813201484
-90212 -118.400952346126488 34.0618272878464552
-20503 -77.0379061818181725 38.8987671818181795
-05750 -72.763662615384618 43.6389892307692335
-09693 -66.3735922500000015 18.3756007500000003
-34887 -80.1992958999999956 27.1531273999999989
-62221 -89.9334589098484258 38.5282360856442594
-49679 -85.1586865618631919 43.8833800218340002
-95370 -120.330229745274352 37.994525127765975
-68142 -96.0980670077060211 41.3413392219368276
-28368 -79.1110351774193674 35.363029435483881
-76444 -98.5644547580016877 32.1168564503480241
-13780 -75.4795341059501226 42.4192788637787714
-57656 -101.100202194723664 45.4238270025125175
-38370 -88.237755927407207 35.3862264097777341
-62992 -89.1643959231722079 37.2770357403964567
-42079 -88.579132113274909 36.5600740948493268
-16411 -80.4293071898540006 41.9811882159877001
-82330 -107.119786399999995 41.7784656000000041
-53952 -89.6229313572108026 43.7908416358472863
-28570 -76.8826941774348285 34.7619257487605395
-44049 -82.3041267101449563 41.2666517971014528
-98228 -122.319780999999992 48.7139415000000042
-48801 -84.6677026936108206 43.3767821441934842
-68748 -97.4208182333334491 41.8408703215054345
-44425 -80.5759961197012302 41.1662942350372631
-31993 -84.9846566666666661 32.4808293333333324
-79550 -101.209046777777786 32.7487535555555596
-24309 -81.7447494999999975 38.3462095000000005
-95095 -85.9116165454545495 33.9351662727272654
-19802 -75.5323890195392522 39.757188202639739
-30267 -84.640710999999996 33.2704200000000014
-65244 -92.659860827375681 39.4671452327812275
-45771 -81.9019420240720279 38.9903181485182913
-35763 -86.4704417245577304 34.6362907917337779
-91711 -117.718111509350877 34.1156864279968488
-62705 -89.6125605000000007 39.7496662499999971
-28394 -79.2326836869083451 35.2213494327651873
-97016 -123.220922212077454 46.0930594716264892
-61951 -88.5982273168736185 39.5937400533028878
-79733 -101.367779154471563 32.1104630406503873
-45645 -82.5423475006268035 38.5642409236292067
-99780 -142.71374666666668 63.2401427333333359
-41056 -83.7666522821646566 38.6054475910948867
-14580 -77.4628848860887445 43.2188515663740063
-45883 -84.6336737344522732 40.4103921808982491
-56516 -95.9990375370369975 47.4434106967592797
-16848 -77.5734024976958807 41.0496913271889312
-75869 -93.6816479999999956 31.2278622500000012
-02445 -71.1347056254748367 42.3283446669079879
-48453 -83.055457714049453 43.3352128195041857
-25638 -82.0221471365188535 37.7371126877133207
-92590 -117.216250727606635 33.4858425683737124
-11557 -73.6921777464151688 40.6384840026414125
-61813 -88.565769725094782 39.9130301883144938
-51248 -95.6564651515341779 43.1953582917970564
-41559 -82.4009596928373469 37.3696261473829239
-20133 -77.6740314999999981 39.1959099999999978
-68023 -96.0398607842247998 41.4539745696585769
-07082 -74.3460918810445293 40.923145794729308
-11762 -73.4461881342226377 40.6823596258857449
-47104 -85.4261810242717701 38.5484206844660093
-71226 -92.447873756542819 32.2645607108399517
-18328 -74.9434371012330303 41.2366978347705242
-57130 -85.695375999999996 38.3151914999999974
-73005 -98.2504085091832451 35.0652134269567171
-19970 -75.0990241417303963 38.551323146111649
-78368 -97.8252842055621556 28.0760851663978173
-72178 -91.5983991249999718 35.2017795833333267
-10550 -73.8352663193490883 40.9061116260397668
-98109 -122.346493334855012 47.631766203276122
-15358 -79.9981183697605047 40.0551834251496999
-73142 -97.6338963286975741 35.6036000628319727
-43537 -83.6827038960168181 41.576282655919826
-74103 -95.9938815657052231 36.1560928060897027
-23110 -76.7663240414035641 37.5755578989473733
-38948 -89.9159582121918248 34.0689738564448916
-77412 -96.4593264736842571 29.5595357485380248
-93517 -119.299579245682608 38.2042334852367418
-19562 -75.7030922831168596 40.5014289675324974
-00923 -66.0370834916466549 18.4107339670644237
-30751 -84.7366761343283486 34.9852599253731213
-55450 -93.223399885057475 44.8745557816091818
-52653 -91.1683565671178684 41.1735759116177107
-39656 -89.9319155187644697 31.4530501707073427
-04000 -69.8740661935484013 45.4279443870967654
-04007 -70.5068581666666745 43.4559207499999971
-54806 -90.8971107941988379 46.5696211186228624
-31023 -83.1906458694080015 32.2046885672876471
-77552 -95.0014599999999945 29.163563374999999
-78337 -98.977643999999998 27.4672015000000016
-65479 -91.6488770137659543 37.3052125103245373
-68506 -96.6382252618802795 40.785857582906111
-78778 -97.7388449999999978 30.2767030000000013
-34603 -87.0203336000000007 34.5777163999999999
-40383 -84.7335450527502729 38.0128858892784294
-22936 -78.4936847777572098 38.1588939866431147
-37240 -86.8013947090908715 36.1465763818181784
-66112 -94.766461870535764 39.1158441024159842
-58601 -102.791552358742521 46.8728881364155541
-61453 -90.7324093291640423 41.0106532119815341
-77047 -95.379987522411227 29.6159748033229917
-30438 -82.0173166764705996 32.1518433235294125
-12747 -74.6647111087133482 41.765084375814304
-73437 -97.4371100966183832 34.3563177536231876
-57063 -97.6568194181567293 42.9171470618982127
-66418 -95.9422963475176545 39.2721115579195938
-57760 -103.362898692702728 44.7936868640250694
-70504 -92.0121818461538368 30.2048615384615395
-01033 -72.5135092546683921 42.2591849501391437
-77634 -93.7462103333333374 30.2969510000000035
-76061 -97.17591162264155 32.5088931603773617
-06372 -71.954754481481487 41.392643351851838
-74557 -95.6704436861314065 34.3696497518248378
-62225 -89.8650667555215534 38.5394638019802045
-44622 -81.4775105865631275 40.5415148445023519
-50544 -94.17867524069257 42.2483966787878344
-50255 -92.333857000000009 41.4548046111111006
-22622 -78.0615678750000086 39.2529598749999948
-52208 -92.2669806129118086 41.8882274635632825
-68941 -98.3096426247379327 40.4623174389936153
-60955 -87.9915560209625767 40.7020280345438437
-52586 -92.4696189768022663 41.3429394314774328
-39152 -89.5639660772155253 32.2377494617724878
-58056 -97.9703050461298517 47.2432399132133938
-70722 -90.9387876250439291 30.8456807595984159
-68152 -95.9991649912137461 41.3481946985468625
-58316 -99.7808101332556845 48.773558400349728
-01349 -72.4857965803857383 42.5753836229903584
-45121 -83.9185545621062374 38.8644557303528586
-98100 -122.304425499999994 47.6458994999999987
-81028 -102.309339399999999 38.1255238000000034
-02898 -71.6730406961063409 41.5186483228870244
-93060 -119.082767022261464 34.3594623245931103
-64158 -94.4802338580813625 39.2296930295663344
-26755 -78.739010425613543 39.1565935832054492
-32757 -81.6359804854260034 28.7959705137654183
-00998 -133.940257777777759 56.9723455185185159
-52169 -91.6481334702437778 42.8460323104660858
-10530 -73.8077358855331624 41.0223514149803492
-02646 -70.0728305750000544 41.6716292970237987
-44312 -81.4404434224501728 41.0255420701579041
-79124 -101.965816522192654 35.2335371171770291
-75707 -95.1913495867801345 32.3009202797347541
-71648 -91.7304688749999997 34.1699522500000015
-35585 -87.7959612927506043 34.4090091596569962
-29466 -79.7970531003430921 32.8803878997508718
-44610 -81.7966110975610121 40.5613048878048588
-95696 -121.907420500000001 38.3496980000000036
-04028 -70.8622347857142927 43.7542146785714365
-11735 -73.4441417995658838 40.7257270910569531
-66203 -94.7071677193384005 39.0208979346421927
-87365 -108.195706455830432 35.5658785300353273
-83329 -114.18041176190475 43.3622894761904831
-07871 -74.6364747964866098 41.0383685723264762
-24311 -81.4027083673790486 36.8634679887513386
-34491 -82.0216206033501294 28.9984241131654663
-10470 -73.8602148317503264 40.9010086743554737
-11516 -73.7279643809523719 40.6263211722223261
-21720 -77.5849817142857177 39.647030000000008
-07833 -75.0657837045454954 40.8907821545454482
-46516 -85.9591606042839089 41.673894975912873
-04367 -67.7698933913043504 45.1801205869565194
-06092 -72.8582189108182234 41.864502538155044
-28270 -80.7605488725807987 35.1098420736791681
-72030 -92.6878151454187957 35.4345388111516613
-80538 -105.138627767133585 40.457776399628429
-39433 -88.9667828064516186 31.724028193548385
-12170 -73.6678473306063353 42.9911200421078377
-38619 -89.838875689086052 34.5140687954003269
-85004 -112.069898074055857 33.4511637385973444
-10457 -73.8985399968926657 40.8471498514605784
-32701 -81.369260034030205 28.6647554855791853
-91732 -118.014284655630263 34.0745393459398187
-93636 -119.876892015867895 36.9684379018884357
-67849 -99.715989841463454 38.1364408609756325
-99359 -118.160677878260827 46.530528273913049
-75662 -94.8699237586077828 32.3852148621968752
-66650 -95.7887975999999952 39.6699178000000003
-93561 -118.549220671933412 35.1359390091122066
-55449 -93.2025028587555369 45.1763845509669935
-06264 -72.0900786999999781 41.6949048548387111
-50599 -93.8190280300676562 42.5791432856449887
-52593 -92.7307882778334545 40.7662327392176422
-80253 -104.364894666666672 41.1983188888888918
-78212 -98.4941052448716476 29.4619208461540367
-17767 -77.462312214285717 41.0848002857142731
-75167 -96.9212191217809931 32.3743114949493744
-35966 -85.6722396802050099 34.7951797166141219
-54301 -88.0197302218228543 44.4819799196293602
-06230 -72.0158132215908893 41.8487505000000013
-30554 -83.6574842750964081 34.3957226525339621
-11214 -73.9965868697053111 40.601275697053417
-08625 -74.748231863636363 40.2357199999999935
-32013 -83.2953336000000064 30.1900233200000052
-18808 -75.5875886666666617 40.7417249999999953
-23221 -77.488201886221475 37.5560400076051764
-97777 -123.529367620689641 40.1515959655172452
-12918 -73.6700542469879025 44.6863388334767748
-44011 -82.0182989284238033 41.443744535168598
-18037 -75.5335844506578269 40.6805997214226522
-41763 -83.1189888633840326 37.0687936853017561
-44086 -81.0735716223832128 41.6761369484702016
-19703 -75.4665215385223007 39.803120857339934
-98321 -122.080173666816165 47.1488164030711161
-94041 -122.075916074752982 37.388458159379482
-24238 -80.6657843888888806 36.6585415555555585
-01940 -71.0342988000515874 42.5329397636152962
-71427 -92.8871998708792859 31.3909205558607773
-70660 -93.4328827486886411 30.5829483981879449
-06073 -72.5718670169326856 41.6618390488910038
-51048 -95.8637721165553529 42.5664975018559772
-39595 -88.5789905384615395 30.3363877692307682
-29323 -81.8957943156651282 35.1273208068453613
-37027 -86.7745755411155102 36.0014800663838486
-13428 -74.5424565825946672 42.9193548154714222
-45776 -82.0223383127611783 39.187839750240947
-41114 -83.1716492000000045 38.6097037999999984
-02635 -70.4400548517268845 41.6268938983725079
-38873 -88.2508255348683406 34.6656735018352578
-16856 -77.6469610526315677 40.9294632631578921
-24425 -82.3181430232558284 37.2155177441860374
-07106 -74.2310118657895117 40.7414066763157692
-33872 -81.5095247198488835 27.5090471450783731
-32747 -81.324813000000006 28.8155313333333361
-56528 -95.7975677350700039 46.5370367134075593
-78050 -98.4880007922849074 29.068586988130626
-21722 -77.911904323716243 39.6636662742573307
-46835 -85.0548996096297287 41.1413412142824271
-12056 -74.0904340045325824 42.7704567745042183
-23139 -77.897826227319797 37.5438952243543085
-54325 -87.188074499999999 44.9816739999999982
-08644 -106.392031000000003 42.8471975
-37062 -87.1334619662135594 35.9774084172235007
-50174 -93.9575277492439795 41.0487325257019293
-66094 -95.3457433897801536 39.9663495323826581
-50499 -93.5989427142857124 43.0045641428571415
-68945 -98.777021976960782 40.560886461764639
-42322 -87.3960676846153461 37.617227538461556
-58233 -97.4877845318287228 48.2259218117211859
-52133 -91.674078803520004 43.1046475538273484
-12078 -74.3427923645434419 43.0843364961111419
-48210 -83.1284908396760756 42.3370825344763091
-97401 -123.081132123853962 44.0660355352933095
-41868 -83.382905000000008 37.1157768571428548
-75247 -96.8742146392960422 32.8166931686217112
-49309 -85.8713174532526295 43.7473463630271269
-74112 -95.9094730931710586 36.1476974235735824
-22735 -78.1637738176617347 38.4804151694602012
-59474 -111.693642963235419 48.4814393256634091
-53214 -88.0145965689542606 43.0200120631067904
-52638 -91.2639359047618939 40.8377589162561208
-66763 -94.6954591329516546 37.4551336399491532
-72139 -91.6512693428571055 35.3556810476190435
-56258 -95.7767820551867004 44.4447911400710751
-79046 -100.052504214843566 36.123568357421874
-44613 -81.5967181327968518 40.7129553883299664
-17126 -76.8797639999999944 40.2617345000000029
-95831 -121.529788578800606 38.495020537917199
-23423 -75.7421414116788867 37.5490397416058244
-39113 -91.0362832152466268 32.9090133363228787
-00639 -66.1565349268292522 18.1776883658536548
-30442 -81.9642958107357771 32.7893624683362646
-61764 -88.6254531789466142 40.8799514247819076
-52355 -92.174966983028682 41.4560887454307903
-43144 -82.165896331958777 39.5103565422680276
-90018 -118.316207886742717 34.0245255394434523
-81628 -107.104458513888872 39.4711093750000046
-13672 -74.7693779943534054 44.570461293619509
-03468 -71.9794572499999958 42.8882550000000009
-58704 -101.317950045901583 48.4212329659017158
-46206 -86.1618200000000058 39.7614379999999983
-77532 -95.0744928785633476 29.9293925411688626
-93384 -119.083436750000004 35.2266092500000028
-62695 -90.2232944475524903 39.6277893006992983
-42323 -87.0165110737547849 37.1670175795019375
-75115 -96.8642519931538146 32.5954573197917554
-36350 -85.4938058041201572 31.3335153264122184
-32578 -86.4452476930482163 30.4993608839474462
-73112 -97.5737704997624462 35.5189055601425636
-15012 -79.823366637509011 40.1544414987461948
-32601 -82.3242000429570169 29.6510364119310559
-04860 -69.2180312142858298 43.975559970122525
-35467 -87.5122436666666772 33.2141990000000007
-96023 -122.003191507454261 41.9408081035676474
-14895 -77.9374235657895866 42.0906407233959996
-79501 -99.8893241631790261 32.7342918649044776
-20611 -76.9868432816994215 38.465431191503292
-16647 -78.1047875123328623 40.4124748044576094
-99782 -160.031033629770917 70.6385112862595008
-56328 -94.5315737202073052 45.9539521865285252
-39360 -88.7570102990698189 31.8561333952558527
-48634 -84.0251576699943712 43.7461158419300205
-28765 -82.1134429420289962 35.9385469565217264
-23944 -78.120613095058772 36.9175658807058014
-96814 -157.844575981518574 21.2965996403595916
-84317 -111.724239843134015 41.2862039994520202
-78613 -97.8218146703245708 30.5029543704002002
-67752 -100.233890028936116 39.052917201702094
-13083 -76.009507248113664 43.644572428761613
-11691 -73.7576136678635947 40.5987339802513958
-19003 -75.2973975793689618 40.0011365513269297
-70508 -92.0306398748147387 30.1555320790053791
-46068 -86.1074834997330356 40.3792063003204049
-85226 -111.926296203567901 33.3098048585218578
-85017 -112.12386692048004 33.5116732849298913
-16406 -80.3540175185431877 41.7487578810909952
-90039 -118.261683582815749 34.1054927981537688
-51527 -95.3455958993161374 41.8270680826600554
-20418 -77.0473240000000033 38.8921830000000028
-20643 -77.1588024864864934 38.4898371621621749
-64035 -93.827318870980676 39.3108106327907834
-78029 -99.2087163636363698 30.1039274545454631
-17729 -77.7950647827203596 41.4668540883748165
-54411 -90.0258566467411612 45.0525622497001166
-87391 -108.956478666666669 35.625941333333337
-23427 -75.7217943453237723 37.9257110119904368
-10033 -73.9356418729560119 40.8498313698113336
-06067 -72.6705913157568659 41.6563499087177576
-68134 -96.0544300452957316 41.2969912831186861
-45860 -84.5094828922497925 40.3926607814273098
-74957 -94.6694858317421364 34.5220412613365113
-13654 -75.4515650395210287 44.5782162832333952
-37352 -86.3413521819135497 35.276245856242177
-10701 -73.8809297408160432 40.944511013106947
-54725 -92.0350926984351645 45.0433308591750148
-85347 -113.910538946652636 32.793744321129715
-80232 -105.090831735490426 39.6888889264509928
-46176 -85.7770477990397211 39.5225881537944019
-64036 -93.9399117004717681 39.2249918632075492
-61934 -88.0170379999999994 39.6648715000000038
-95410 -123.72453076891145 39.2090332504612959
-47330 -85.0159626346588482 39.7929935243811457
-17858 -76.4181854010694934 40.8428109251336835
-72179 -91.8753397863777934 35.4884265301857624
-48152 -83.3740863666507295 42.4257871026278366
-18052 -75.4961056971617097 40.6496159608514489
-80237 -104.901085586761667 39.6432740008294999
-61432 -90.157338837918104 40.6437689821561605
-63467 -91.2693035777777624 39.6485079999999996
-76854 -99.5815603791597539 30.5750401489362424
-59301 -105.837406352924603 46.404733053738461
-34685 -82.6971231821374033 28.1032108378663743
-85536 -109.977171234343444 33.0293775414141564
-21659 -75.7827668105523458 38.5870190318696871
-25882 -81.3865530086321911 37.5819236905710454
-08243 -74.7004865756938301 39.1445113399685667
-73028 -97.6062992021942648 35.9397640680699553
-54344 -88.1107761346153637 44.4240440961538425
-82730 -104.651728891759362 44.0580078902091188
-83821 -116.840942271575585 48.57269869101615
-72513 -91.6470906132721268 36.2526487056063118
-60901 -87.8738172500001014 41.1165751491857492
-65041 -91.4801416893989057 38.6433320933520292
-58734 -101.87130565716717 48.5048913356018971
-44691 -81.9614743102946335 40.8088498047403192
-56144 -96.4134748163260014 43.8670842353522019
-40177 -85.9107477613124928 38.0105669951640124
-00972 -66.4115863333333465 18.1640500000000031
-85349 -114.762171375685256 32.4947559664623356
-70118 -90.1237640729834766 29.9512944917775847
-73111 -97.4814144752616158 35.5100515766386451
-26684 -80.8491679820224789 38.1621523775281162
-45239 -84.5806413308256992 39.2044733335004523
-75799 -95.2541754615384804 32.311965769230774
-85432 -112.408623750000004 33.9983378750000043
-14133 -78.3667993829787122 42.4973458085106301
-97471 -123.437331414019368 43.2240555538874887
-75023 -96.7357488156525847 33.0566991289865726
-05663 -72.6753396152740834 44.1389670678412287
-21531 -79.4198006408133068 39.6568782534833204
-50247 -93.1548879016099107 42.0157447039355318
-46124 -85.9371922371509527 39.359084976392829
-65649 -93.6016602532713478 37.6211993579675408
-67744 -100.948388531250075 39.8686986041666458
-21658 -76.1456451753188901 38.948518633651986
-95328 -120.908102882568755 37.5573437036697513
-83846 -115.781088206823085 47.468891526652456
-48353 -83.7299206990743414 42.6431534065905069
-97449 -124.144007348197803 43.5815211905926958
-63385 -90.8610817383176794 38.8005938785330926
-34613 -82.533867672823547 28.5514453248783688
-73931 -100.824809615384609 36.5739232307692319
-23168 -76.8177848825758218 37.4074534106583201
-73003 -97.5115718365819504 35.6757168931367943
-97836 -119.515102679605889 45.3058623065739283
-98102 -122.321216314183744 47.6334762472267315
-26576 -80.2497381197411244 39.4962897605178114
-35634 -87.600816724998154 34.9064369945942303
-32432 -85.0764104523809692 30.7153190238095171
-12116 -74.9170779349658886 42.5395689073195911
-84313 -113.899753741127341 41.7146288580375924
-36804 -85.3327081948055053 32.5596672971495238
-58723 -100.630327141479768 47.7376600165738338
-58502 -100.781635499999993 46.9249115000000003
-34481 -82.3025176439966657 29.1136857973096816
-83424 -111.176523982044259 43.8777561795580127
-01930 -70.6789821784655885 42.6256864357589009
-33830 -81.8135153877040437 27.8992470152411656
-11222 -73.9474618157118471 40.7268745965741132
-30009 -84.3025738657116506 34.0803955299919821
-66424 -95.4057295578889608 39.6857637603661644
-96006 -120.932163887218124 41.2284925657894235
-33908 -81.9204449816817259 26.5040332070873816
-62691 -90.2204456298574371 39.9562713198273585
-47142 -86.2052587436155449 38.0662869878633572
-42049 -88.3398088557829197 36.5181357020451216
-71073 -93.3002634223582987 32.5221819445877003
-33834 -81.8713374023343476 27.6202317999590683
-99729 -148.908586717646955 63.3878747176470654
-85020 -112.05461580347432 33.5624097915249564
-34614 -82.5181535703807043 28.6284332148877283
-99350 -119.772570161250457 46.1827710608803272
-39868 -85.4902139999999946 46.5866260000000025
-54889 -92.1563028341199413 45.416602214534997
-54984 -89.2347907634529776 44.1880326760089872
-93641 -119.040584436100033 36.6891252974966591
-95404 -122.67748140378653 38.4586321205920356
-56152 -95.2740584216626729 44.2135286026612846
-95613 -120.89022529680372 38.8052791704718629
-41317 -83.2448599143746577 37.4602631925272718
-44662 -81.5377729112178713 40.7125233255330556
-57478 -99.7333425000000062 47.1255194999999958
-15924 -78.7871386145988026 40.1163519122858716
-56294 -95.212612583333339 44.3161276041666667
-20118 -77.7705128559463645 38.968462649916269
-52064 -90.3124416450509955 42.0911390507395495
-41203 -82.4522488978290085 37.8433440766283482
-33608 -82.486168603773578 27.9210038113207553
-40809 -83.1409586000000047 36.8930482000000026
-67630 -96.1026968749999924 37.0974505000000008
-08828 -74.4196982876922846 40.3791051615384475
-78575 -97.5453609053567021 26.0275277519130022
-47261 -86.1190010666666694 38.3450202222222174
-11598 -73.7120890426201498 40.6322011218535408
-80822 -102.651839940529428 39.6685276305500238
-52317 -91.6068225196441972 41.7538697292807655
-08360 -75.0177516900478452 39.4912735676555471
-49927 -88.5783062346785641 46.0481777204782787
-64486 -94.6561187681565883 40.5240475982309221
-25045 -81.3271932767652146 38.4851322092169497
-02080 -71.1255043571428587 41.9644953571428587
-13122 -75.858422854727948 42.8382390052825812
-80528 -105.008528908238873 40.4963671230375368
-41301 -83.4993976670192239 37.7223080084087741
-11769 -73.1287911193978317 40.7387284457283698
-24570 -79.3890958000000353 37.3150755809523673
-47920 -86.8226934018867667 40.5397328903302991
-87730 -104.261295147826061 36.0894733652173869
-37817 -82.9802374285714279 36.1135418928571426
-26320 -80.8159356195709933 39.4069764003140079
-30567 -83.6856370092107937 34.182965625706565
-03452 -72.0384966218586698 42.822937514319058
-42028 -88.3435190196479283 37.2360297299006717
-49871 -87.5770230399999292 46.429817418461532
-46366 -86.7662966806647518 41.2172294969931414
-30665 -83.069618181102328 33.533302169291332
-92280 -114.644521103036013 34.1746840807493655
-17540 -76.1914541127443385 40.0983041747119131
-53521 -89.3755926239682879 42.8630146423110929
-28513 -77.4117261691778964 35.4553173769532108
-15999 -78.6410484444444506 40.5117938888888887
-10128 -73.9579034086957421 40.7816468226086783
-29929 -80.9360709571754313 32.9359806389677274
-32011 -81.8219139346497002 30.5539357344173155
-60448 -87.8878979662387394 41.53533534213026
-29731 -81.0243859999999927 34.9367795000000001
-49091 -85.4377499958603437 41.8249957938771217
-76522 -97.9208274447942131 31.1390617092901323
-92233 -115.519739562708835 33.1387809427753837
-01071 -72.8579633764044416 42.1694075730337801
-14618 -77.5587620481660025 43.1151811826132487
-97392 -122.953112855250481 44.8060555821720499
-60927 -87.959989885834915 40.9392590787527055
-79925 -106.363834247012917 31.7824022006622648
-04252 -70.0596985250154631 44.0147387347127079
-48069 -83.1440870627802866 42.4713865044843288
-25559 -82.2327547220351818 38.3305443823419836
-59631 -112.298827085360799 46.2606213905249462
-68814 -99.4055580655892044 41.3070667832699883
-93953 -121.942986050071752 36.5858078919308056
-43442 -83.2217168259149389 41.424887707220563
-40988 -83.5353079137785244 36.8525936821639775
-98588 -123.027341978830108 47.433350223165256
-00614 -66.730795999999998 18.4459866666666699
-25521 -81.987304156829552 38.2442687712197582
-36471 -87.2175276122012662 31.6057582640028478
-72668 -92.7735781198988008 36.4211503644807664
-55072 -92.7126812990586444 46.1250150126718808
-33306 -80.1150995906095886 26.1655177018121918
-66741 -94.6600952276421737 37.7172868048780146
-21795 -77.8144401468220508 39.5919568767616568
-35071 -86.8356244958158214 33.6844679970363075
-70789 -91.0997507269407123 30.9265610858447459
-98244 -122.103432710651759 48.8387564751591157
-31714 -83.6670650665399904 31.7083508520912822
-67219 -97.3170112281009665 37.7724151252407694
-17103 -76.8629144981520653 40.2742240813071319
-99003 -117.299591319987158 47.924276193512064
-82943 -109.197921573863681 41.6712929431818111
-61115 -89.0377325703931604 42.3580443399913165
-49821 -87.6144192716533752 45.4772896377952591
-45807 -84.1756931985470231 40.7931492995433302
-67714 -101.37131149999999 39.7861699999999985
-08312 -75.084599540320383 39.6593117927502803
-85501 -110.788449017778262 33.399769904654022
-59270 -104.173803675723505 47.693328869296252
-62610 -90.4335652812500115 39.5609341749999999
-47890 -87.3873728333333446 39.7857866666666666
-91752 -117.535749237331459 33.9897698712420535
-44122 -81.5172437587530254 41.4734178040540513
-57553 -101.621557884083032 44.4856276643598818
-30217 -85.1370116188193577 33.3014756734287332
-82328 -106.535800999999992 41.8796770000000009
-92563 -117.151658590305473 33.5728166686884109
-59384 -98.4723219999999912 44.4060625000000044
-47636 -87.1769834285714325 38.2241918571428627
-73128 -97.6328717947548341 35.4474305513112711
-36048 -85.571208504944579 31.7829179139945843
-57028 -96.6047415012449306 44.0579112617173507
-36901 -88.1321563645038424 32.4523033816793927
-11665 -92.1907913999999948 33.9575254000000015
-95757 -121.434956261407635 38.3921489071730448
-60450 -88.4255746591905876 41.3673503932654896
-35175 -86.5219486857478159 34.4304610094062227
-89428 -119.637736284403715 39.2639202036697554
-28905 -83.936108251483688 35.1493193705268965
-54902 -88.5469218777218288 43.9865194145084573
-25918 -81.0414742969295361 37.726094677904797
-36184 -87.7472395000000063 31.914473000000001
-54654 -90.9701868277777805 43.2641664833333408
-62928 -88.574163986111202 37.4948667534722517
-58743 -112.6696940952381 45.5980821428571517
-04088 -70.7183028415707042 44.1953490135409339
-78660 -97.6116971383514311 30.4511481256282757
-55390 -93.977724391628513 45.0633586151070062
-39967 -90.2622968750000041 31.1687192499999952
-79355 -102.855902588532942 33.1825151073636633
-15140 -79.7759815524420333 40.4058360280223781
-37802 -83.9696847142857052 35.7613377142857161
-33434 -80.1680036827941507 26.3825327928715332
-66746 -94.9541546362379592 37.6552543609958263
-92708 -117.953871423648224 33.7095931028795803
-94872 -96.9517386666666852 34.7966949999999997
-12601 -73.9128398801425561 41.7053165607301466
-30058 -84.1180478814057153 33.7413289427095648
-55719 -92.8860996087803983 47.5249440846568305
-32266 -81.405686875309911 30.3164669543039871
-04930 -69.3027525020034432 45.0284836110476476
-77415 -95.7536442899999685 28.9269956699999931
-87724 -105.070480893442578 35.1883909098360519
-05463 -73.3427909914221487 44.8753025878103387
-22134 -77.317385030287852 38.5157232483593575
-19161 -115.420094250000005 36.1546372500000004
-30710 -84.9342530805762266 34.9430375992481075
-84782 -113.684700730893951 37.3573655868457166
-95681 -121.353468901075331 39.0023720924731236
-68332 -96.4060435909091211 40.3214373966942148
-95718 -120.697434571428559 39.2849510714285728
-56583 -96.3865678064515947 46.0186538387096675
-47620 -87.860557143292823 37.9476797100769829
-49645 -86.0182517430786504 44.367931985603569
-35754 -86.6106443109591737 34.5162529421998912
-25302 -81.6192477002199865 38.3787318846882854
-33710 -82.7242313603099291 27.7900042554186264
-48236 -82.8976659497565578 42.4245274149676206
-49096 -85.0082584137148132 42.6353693019982103
-17535 -76.0390082139246744 40.0067525869312846
-93428 -121.075791111770002 35.5739954096398634
-54175 -88.6139025377613905 45.3116416525626988
-61734 -89.5223479007549088 40.3797097910143634
-58201 -97.0715745641803522 47.8911383085003237
-44408 -80.6820413642589642 40.8837038392725276
-02902 -71.4158235000000019 41.823754000000001
-17002 -77.830943452503206 40.5084225821566122
-85297 -111.717323879317959 33.2740459787499816
-48470 -82.7545139745223253 43.7322096840764161
-53105 -88.2668853043054042 42.6454869926521809
-75366 -95.0717999999999961 36.3074020000000033
-57265 -96.8019569627017376 45.0040705181451202
-75966 -93.7515918820560188 30.8296488578021446
-08507 -74.9389398750000026 40.0152535
-05461 -73.093796963589341 44.329512845849564
-82221 -104.280958087477032 41.6494724106813834
-68110 -95.9314629593516059 41.2957142662708989
-16246 -79.1813171946902941 40.7928114336283372
-01574 -71.5170371578947339 42.120707157894735
-43004 -82.8004637784445947 40.0086601726886144
-97021 -121.179618772487132 45.4139496013177961
-53070 -87.780368496637351 43.6302245411278307
-29001 -80.1757019956230579 33.783641531153414
-54904 -88.6135021642540721 44.0263289776297526
-78393 -97.3086645145454838 28.2106347076363413
-29375 -82.111440084507052 34.8609823380281725
-79534 -100.219885230263273 32.7774790942982364
-55437 -93.345033307828885 44.8243326661517472
-57214 -97.2217370058139778 44.4684839883720997
-76310 -98.5504606019927962 33.8445688879601363
-27969 -76.8131696511628093 36.4643047674418739
-36771 -87.0123406000000159 32.5030847999999963
-19072 -75.2582403500000652 40.0187116688572004
-83630 -116.068942333333339 44.8527606666666614
-29905 -80.6733924324324505 32.3478814459459514
-05255 -73.0506195869619717 43.1769925716228684
-39323 -88.9211480041638112 32.3528864773450664
-68124 -96.0538811564652235 41.2345985790775487
-95621 -121.309044456959128 38.6944455157182716
-21701 -77.3682884378027182 39.4328782695089686
-16420 -79.5403229289159839 41.6961481195735075
-84006 -112.094570032338183 40.5658704701492709
-71272 -92.6488746341463525 32.5262046585365781
-07436 -74.234612555363185 41.03025265936202
-28105 -80.7153240969814476 35.117036077343144
-74851 -97.094325614664541 35.4083533360895757
-13034 -76.7015533360945341 42.9134955644969907
-45862 -84.5155326901700477 40.6676849738699033
-36321 -85.3017979613656934 31.2008182991913543
-25666 -82.2724820919999615 37.9212475119999866
-85332 -112.830331363320411 34.1731833355212302
-38603 -89.1597873029113828 34.8348013920509416
-00667 -67.0551469737518744 18.0298991996912186
-85911 -110.47265228481011 34.035691225738411
-23038 -78.1169163716549804 37.7839717281095915
-54759 -92.1482589999998822 44.4423067164329026
-85225 -111.828761662791209 33.3171409222715695
-42076 -88.0946889546325451 36.5474630240123304
-93224 -119.556496717013786 35.2030831822916568
-46167 -86.4569257279755448 39.867532716963467
-05492 -72.7386144296388295 44.7205593128891721
-54422 -90.4329003055555347 44.9523403472222469
-88757 -105.82024366666667 36.0468883333333352
-14043 -78.7019797324420693 42.9042178559714955
-79054 -100.804237256619217 35.4442014949083344
-33050 -81.0293604784767751 24.7305730806163773
-85389 -110.544429800000017 34.4180678000000029
-42283 -86.6517429285714371 36.8840920000000025
-10956 -73.9954307867509016 41.1503690121278041
-89052 -115.102714406275268 35.9774597223304085
-89169 -115.134235263710977 36.1269968638817929
-12941 -73.7262602055964322 44.3875679286222891
-06850 -73.4416736622904835 41.1249676082522413
-02826 -71.6448024194756243 41.9795663876404461
-30149 -85.1794802222222245 34.2727828888888908
-84649 -112.3294963721805 39.3768387387218013
-71435 -92.1448073124794433 32.0341010928048533
-34113 -81.7155403391251127 26.0809195711952633
-63540 -92.4174919508599402 40.1015067592137697
-28262 -80.7418206626974069 35.3248790519111537
-28150 -81.5570045103437593 35.3331690305579045
-44126 -81.8540576267457283 41.4431668145950241
-35003 -85.6919240520833085 32.0290786249999897
-58787 -101.828480563577301 48.7994991656257397
-98581 -123.051820944196422 46.3801043035714429
-40854 -83.3532257847358125 36.8494925890411054
-12997 -73.8113911067567869 44.3869462783784172
-48476 -84.0304928980581991 42.9391857669902564
-55935 -92.12246541473327 43.7550261931555013
-08826 -74.9079883598730163 40.7185157321645477
-33603 -82.4632932255986759 27.9844224628698512
-29847 -81.8556725433098649 33.6937422451726505
-22851 -78.5096354250324993 38.5640272602522245
-44411 -81.0527242662764849 41.0321798185808149
-27983 -76.9449623880453117 35.9987075517941975
-25650 -81.8128711891891811 37.6841485540540475
-94509 -121.811025984946141 37.9940631277008052
-17250 -77.5231097962962679 39.7362078888888917
-64623 -93.3263026412872421 39.4744969356357629
-08106 -75.0739718520000423 39.8911706308571041
-62062 -89.9645911404734733 38.7272701843380389
-42053 -88.8695378563323288 37.0871820454652337
-52562 -92.249164227272729 41.2641877727272686
-30002 -84.2615814420647382 33.7727476172432119
-63533 -92.4025379816668391 40.183068235416691
-16361 -79.334447499999996 41.38682513749999
-45884 -84.0835676463414643 40.5554729390243978
-29627 -82.4884205643899406 34.519673560377484
-21668 -75.8643978926054956 39.1878206324823779
-55924 -93.0054457296196233 44.0458067821559354
-81224 -106.971748119493185 38.8657056593405414
-30087 -84.1311751130883749 33.8081295357469784
-99639 -151.627149067989592 60.0323125088967586
-13317 -74.5847781014493734 42.8652558252174103
-30106 -84.6267422490833638 33.8348545897506057
-12086 -74.1164300820968549 42.9925250356083239
-55901 -92.5023171825648518 44.0619904852983026
-11727 -73.0043512653817004 40.8858661913320702
-75866 -93.8309008749999975 30.9274954999999956
-75208 -96.8396048286450508 32.7529024841066132
-79834 -103.234551996282505 29.3251144721189583
-20179 -76.7239349374999904 39.1274250625000022
-38920 -90.0320100349865129 33.886844187235603
-65433 -91.9380097500000062 37.1923381250000062
-12594 -73.5555572128454287 41.6562291884489824
-75943 -94.8807810127807585 31.6546785224631861
-84320 -111.84162975259035 41.9633971118939684
-09731 -74.2037410000000079 39.8483145000000007
-02561 -70.5364480754190311 41.7701963743016691
-47959 -86.8833262840422123 40.8635306436930748
-49756 -84.2855232433348505 44.8432358892832568
-61727 -88.9592182708826158 40.145629326777879
-93652 -119.903042860696573 36.5993540248756304
-41514 -82.3122659571981643 37.6637068202548306
-95948 -121.691318984302754 39.3568348625730593
-33873 -81.7949900861791264 27.550410094059913
-37729 -84.0368201012075389 36.5187437260870595
-72434 -91.1513382893168824 36.2228365735334208
-37831 -77.5624732499999965 36.4531254999999987
-34237 -82.5132907606632813 27.3384989487290611
-68127 -96.0552181454292793 41.2030862094874237
-75449 -95.9584400542832725 33.4301916645747639
-54459 -90.1857686190476073 45.440845952380954
-47528 -87.2719239860957003 38.8379804883203832
-42717 -85.3766116925123555 36.7628549609091593
-54564 -89.9716318384026437 45.6851643697496641
-46962 -85.7650512316080267 40.990757359127926
-47436 -86.3987790211641595 38.9659297142857639
-21920 -75.827893836363657 39.6578669727272768
-27305 -79.2095365383927401 36.5220965327158851
-54631 -90.8326648701877275 43.2901807573147508
-93542 -117.911358142857154 35.8345874285714316
-66227 -94.8672097770811149 38.9729155837413828
-29578 -79.015130428571382 33.6929944523809581
-30470 -82.5082747561930177 32.3170376427640207
-58448 -98.1944015325016863 47.3174799914640971
-33596 -82.2393933410385216 27.8909169163200481
-07046 -74.4405892915011123 40.8893790814137645
-29448 -80.4505106699769499 33.2295844106732403
-86438 -114.024612439517838 34.7451731143523901
-47038 -84.8520999184726037 38.8557773225577279
-74937 -94.6072829668771647 34.8664725084702951
-59021 -107.459540199999992 45.6003115999999977
-93596 -117.458821474999965 34.966726450000003
-51653 -95.6816461805053819 40.8898695595668116
-48475 -82.946649570142057 43.6836367502370138
-37683 -81.8156820274076182 36.46086258570665
-94976 -69.7116220000000055 44.7854765000000015
-45789 -81.2575952533214974 39.5568473857395517
-06867 -73.4982150000000019 41.287502333333336
-04417 -68.3799838141446799 45.2213771500822546
-24573 -78.9144548000000015 36.5421339999999972
-65644 -93.0401432767974796 37.5127095783469073
-12458 -74.4125241831539626 41.7966066239831804
-60097 -88.3562222111875855 42.3862540196131974
-64476 -94.8288931485199242 40.4480735340908879
-73012 -97.5537042980605662 35.659839029310433
-52777 -90.8557243492741122 41.8415006659990851
-11717 -73.244105422057757 40.7825640675185355
-79735 -102.878233115501672 30.8957747508781573
-11948 -72.5507672642104637 40.9678882200000274
-56079 -94.7650899999999865 44.0856748571428625
-17213 -77.77386185180886 40.2471818390739031
-16331 -79.5732241918976229 41.2913128592750169
-87422 -105.406716153846148 35.8194638461538446
-61250 -90.0975787447909653 41.659693282245513
-66090 -94.9651565529609485 39.7701420108424344
-87745 -105.291574449339237 35.7930910748898725
-08822 -74.8534529376444198 40.5195809808545704
-72223 -92.4881517029970297 34.7906664583816223
-14779 -78.7389551472300155 42.1741524748866183
-21715 -77.6583252999999871 39.381949800000001
-25665 -82.3249928214285518 37.7357082499999947
-60099 -87.8515572440578723 42.4532621198399838
-48815 -85.2419848516547631 42.8476473817967118
-48918 -87.1260979999999989 40.243941428571425
-42110 -86.2752046084337536 37.1667760060241292
-42325 -87.2494146014349496 37.3324149145466464
-25267 -80.93525191305622 38.8435004825216765
-20016 -77.0917906171564482 38.9387034972529236
-20242 -77.0296330370370299 38.8694308518518525
-15662 -79.4762529836957015 40.3328415217391409
-89341 -115.706659166666668 38.9292725000000033
-07508 -74.1822714530280507 40.9537359112929238
-38459 -86.8029759688385383 35.185288534601348
-13782 -74.9832546278016849 42.1739251856464819
-64683 -93.6197152231395506 40.0787803752849001
-66037 -91.3290190000000024 38.3984132222222243
-90827 -104.966944600000005 38.7265853999999976
-46304 -87.0587686057508279 41.6093244211967175
-67106 -97.7704442144873553 37.4711191420508456
-14139 -78.5440664969879379 42.7151647301204846
-50577 -93.9537993295019334 42.850958463601529
-64133 -94.4580239952245648 39.0155173661891368
-77446 -95.9933722211056164 30.0819408015074963
-68059 -96.1478492874163919 41.0646742122115853
-37721 -83.8181995877296799 36.1330355320187735
-01054 -72.4961767755162043 42.468916510904414
-32102 -81.5546161285337803 29.150967848990323
-39154 -90.4257145337989527 32.2320114254138872
-71840 -93.9144276000000104 33.3835696000000013
-51062 -96.5256265347850899 42.7132607770719801
-58418 -99.6625934572082599 47.4596283326541908
-71119 -93.8767589225126073 32.479818503200832
-30346 -84.3376757746781465 33.9255450579399209
-38581 -85.6441637240294256 35.7646264497211348
-07740 -73.9929148938513066 40.2974315856781473
-13788 -74.658538221236654 42.3588724513432098
-52315 -91.9698690298786232 41.9973524126984756
-12495 -74.2319978412190551 42.0765838147554447
-35631 -87.6714635263157902 34.7934254736842163
-93215 -119.23432123986133 35.776303037088482
-29584 -80.0516956812974598 34.5832889719397656
-76887 -99.1750592253520864 30.9994313661971717
-77692 -97.3534987777777872 31.9889465555555574
-97709 -121.419006055555556 43.8989811111111123
-72750 -92.7001726666666741 35.8670869166666719
-01252 -73.4553444787233758 42.2003310744680817
-36701 -87.0333668337681416 32.4294379842517273
-37862 -83.6009266711929655 35.7909643099984081
-60115 -88.7533572668592257 41.9304445490516784
-98166 -122.350151991913719 47.4530322708255383
-81080 -104.969942125000003 37.6094771250000051
-87021 -107.895736699663246 35.186100234343499
-92391 -117.234919297690055 34.2421188356043231
-68856 -99.805089261022971 41.486216671957699
-95528 -123.944972233272949 40.4955091749547123
-87746 -104.179468562189015 35.709000701492549
-64848 -94.0065732299779029 37.1747828772960887
-77639 -93.8711159333333143 30.0812851166666704
-00985 -65.9579178667600843 18.3915831570827635
-74091 -95.7464167058823676 36.3472533529411734
-79008 -101.493687750000007 35.6672905
-90304 -118.359428194022513 33.9369877427731055
-12992 -73.5212444769653075 44.8109039142791516
-12448 -74.1836375362537837 42.0758613580059873
-65470 -92.404329881846536 37.5370752883411853
-81522 -108.923593909917457 38.6974355024793937
-47577 -86.8054047021005744 38.1489520178230421
-24811 -81.7758635283018975 37.4076880000000145
-35775 -86.6873538085897906 34.541181008483548
-58528 -100.607013562937055 46.3714819265734661
-38547 -86.0079848545574634 36.1486030627345443
-79094 -101.52821580555559 34.7838482083333318
-41171 -83.1145038312948259 38.0993684193594433
-98673 -120.971036434367463 45.6609669379475065
-67745 -101.363775757255837 39.8261340316622423
-92878 -117.564751964285719 33.8753197857142894
-44687 -81.7216903278688562 40.5393514754098447
-19115 -75.0434422305976767 40.0937183050501176
-18353 -75.3717399538366948 40.9155458006187303
-40507 -84.4953636251710094 38.0460124363885228
-87519 -105.611688152018957 36.760311988123533
-70637 -92.971898786563159 30.7025856459948479
-34778 -81.7571002499999935 28.7831591041666677
-06776 -73.4120498734994271 41.5865883629260509
-49688 -85.4332837108244973 44.1188708038295019
-63049 -90.5238623051247799 38.4720304141602227
-39427 -89.8167488800253295 31.4992345872540227
-12943 -73.7834473320808257 44.1868084297792194
-78020 -99.0029120000000091 29.9898535000000024
-50678 -92.3376299999999901 42.6853100000000012
-97390 -123.865448163174321 44.3569573074907879
-96034 -122.637245221155993 41.448486327675397
-30803 -82.5311536238318695 33.161899929517098
-77512 -95.246311999999989 29.4019374000000013
-73125 -97.5057379473684023 35.4702147894736797
-49221 -84.0498465148160676 41.907296790447063
-14092 -79.0222497984640313 43.1718981292369577
-14209 -78.8654960456852336 42.9142704964467256
-17085 -76.383434482758588 40.2766734137930982
-64752 -94.567278466003458 38.0533883615257125
-66738 -94.7268240488070745 37.9974584164859479
-96859 -157.890095528985455 21.3605444565217333
-56173 -96.2343653611110028 43.5366708789682519
-98178 -122.24642878421173 47.4977043879913765
-60154 -87.8858995385034092 41.8514874057890083
-17017 -76.8899755292419513 40.6316775693679233
-41162 -82.7488845833333357 38.4484203333333312
-63389 -90.79980672290651 39.0072705420222903
-20147 -77.4855441467914545 39.0419443490105635
-84741 -112.421934131392163 37.0463508751771826
-35235 -86.656274171027647 33.6222294845795489
-27615 -78.6358760741656937 35.8950089387989237
-30533 -83.9822903297450409 34.5455650141145867
-16745 -78.4923062267135236 41.92783113181018
-46554 -86.4180233416274035 41.5568479186154391
-11950 -72.846925624743065 40.805185655569332
-88011 -106.707345854405702 32.3292743400844031
-23666 -76.4122671723684022 37.0512523878114166
-89032 -115.173702665422311 36.2256728441862421
-43002 -83.1752997692308043 40.0674002499999489
-56083 -95.1422079180681664 44.2103418164812183
-89420 -118.172886990566042 38.4950929245282936
-25202 -81.847124179429116 38.327891076121432
-46957 -85.4966281980519227 40.3877903409090777
-45373 -84.2105156439575495 40.0349962591774542
-53807 -90.4932511391245669 42.6007852801002187
-96069 -121.981520894848714 40.715791155890642
-83444 -112.167073012972281 43.7016254591088682
-89001 -115.232566397281005 37.3846496993958226
-06068 -73.4116271810563461 42.0107625881158384
-36605 -88.0872017426875402 30.6258431356540299
-30898 -82.0845144999999974 33.4883497499999976
-19352 -75.8873002006842938 39.7764670852653026
-99102 -117.250464360103621 46.7924202616580232
-01264 -73.2015359760956557 42.2363050737051253
-78975 -94.3830069999999921 31.9709632500000005
-64431 -94.9818302509076915 40.5294126969297039
-87038 -107.43588868248176 35.043924043795613
-45427 -84.2745545000000504 39.753968950000008
-87702 -104.908872584615395 35.6537025384615447
-46765 -85.0333650535387449 41.2254145789900335
-65463 -92.7716628842897393 37.8436285272811901
-90005 -118.313994178652464 34.0600127630582961
-91007 -118.051603665220611 34.131042680512401
-56473 -94.4429812360452416 46.3394827916268994
-85101 -92.01354228571428 38.4950680000000034
-88716 -104.219731999999993 35.3734070000000003
-13827 -76.2562872406623455 42.1100216878532621
-98243 -123.007961814482314 48.6202661723518403
-78601 -97.8216710000000091 30.0709875000000011
-36688 -88.1772294210526155 30.6973554210526274
-30152 -84.6485484247540825 33.9970157897278753
-49790 -84.956149413793085 46.4178154827586127
-64017 -94.0445205138888554 39.2091941535087543
-17846 -76.5173365248304549 41.1409167926046635
-20332 -77.0183661594202675 38.830311521739155
-88135 -103.073944746596979 34.4690520770278255
-11738 -73.0430339524630767 40.838029770311195
-79382 -102.015286606827942 33.488715780561634
-76805 -99.2542738888888891 31.1838249999999988
-52222 -92.3512130373504476 41.5710007729792252
-07660 -74.0228631831812152 40.8564081616688171
-57435 -98.9325165348837601 45.171103879492577
-43935 -80.7448953128504883 40.1142405058499847
-58479 -98.2106992105262435 47.0913818584987425
-77836 -96.6896502866095346 30.5296215936537294
-23503 -76.2516525870698274 36.9423057472360483
-21871 -75.7263547919051945 38.1011563719754278
-58202 -97.0759749711538404 47.921151028846154
-43146 -83.1494901923655334 39.770230538381746
-54772 -91.9084101633663408 45.0434881782177996
-96137 -121.105827454895305 40.2692193920059438
-07440 -74.2953300171428168 40.9468944978570946
-58038 -97.0346207051153158 47.2245513640922852
-96716 -159.591584297894855 21.9259461610526181
-46055 -85.9170278376908669 39.9067331341619678
-31544 -82.9846713062659092 31.8561547973145345
-07095 -74.2833705342009267 40.5578200375465912
-57349 -97.5104482007752722 44.0165619440597666
-78538 -97.986646584694796 26.344386907679759
-24578 -79.5449957917867039 37.6583539293949272
-44101 -81.673917354838693 41.4936918709677371
-57108 -96.7338033552575354 43.488551699039995
-04679 -68.3236228450881811 44.2767956429470146
-59867 -115.450444406959136 47.4056949198184228
-18917 -75.2029493160556086 40.3716717838180017
-05760 -73.2889545915407581 43.7996352412890886
-16616 -78.4443771229507689 40.765914193989083
-95218 -119.001448666666661 35.8704133333333388
-26554 -80.1365592469531123 39.4699873828773988
-43240 -82.9845385079973994 40.1476728202175082
-76230 -97.8548125266444231 33.5426387807156132
-62986 -88.9700447500000138 37.873576374999999
-79706 -102.05342133122052 31.9519429058464226
-90266 -118.402950315789752 33.8902775375765657
-49724 -84.4103238242092004 46.3314249874434765
-02766 -71.185454653404733 41.9662270072922894
-11693 -73.8167301374207057 40.5998935898520443
-94130 -122.371177908675861 37.8202335662100282
-49432 -85.2617808333333329 43.6831937500000009
-20662 -77.1952999101903998 38.4387992952160147
-72635 -92.4851482136909055 36.3073272715078375
-13063 -75.9820364864864359 42.8542181212241857
-23667 -76.3303649130434536 37.0206879999999998
-84001 -110.280027372250402 40.3479141912013546
-05662 -72.7166302105263327 44.43386134210526
-17267 -78.2402377020377457 39.7911037067486788
-80025 -105.287077350877212 39.932347543859656
-54944 -88.6293127652494803 44.3349818872458172
-26694 -90.4779252499999984 39.5495985000000019
-79358 -102.170054642189726 33.4476178685990746
-98051 -121.92061246976219 47.344919723839034
-73073 -97.3847442422968754 36.1504908711484561
-46980 -85.7420797058823609 40.9561992352941147
-63742 -89.4496064946236658 37.1591240645161278
-77396 -95.25403798745171 29.9502549751900631
-26810 -78.7674794767726212 38.9614472317848168
-41003 -84.3875021658621733 38.5333545073323123
-31654 -83.1898955000000058 31.0771895000000029
-61883 -87.6357198288132224 40.0424909842519199
-06422 -72.6823316644728834 41.4639012162855281
-95646 -120.072766743190684 38.6927970518806745
-82435 -108.851509741379175 44.7748943072044483
-35172 -86.6908901049300482 33.8451706155896019
-46582 -85.8134612353954935 41.2761414059770431
-99660 -170.242791516393481 57.1543307295081817
-51560 -95.4012824888517059 41.3171018219046999
-10123 -73.9904735000000073 40.7513654999999986
-80736 -103.042002399916541 40.79917013745861
-11809 -73.4427842142857372 43.2611372142857036
-19465 -75.6635511769484737 40.2038942986886312
-72436 -90.4683559986543315 36.2368021117091956
-51031 -96.1814331729727883 42.7989895847245378
-29180 -81.0973611174519817 34.3601957884698308
-31725 -84.7092854146341665 31.000863439024382
-74932 -94.5295697144313749 35.1540642346349728
-00703 -66.1200814205815988 18.2557666677852488
-33418 -80.1415571158926099 26.8433079246906665
-55939 -92.0432333935842024 43.5519483525601387
-00769 -66.3583108572099292 18.074976691874113
-95456 -123.750004767198888 39.2575351369779
-33647 -82.3486944576628304 28.1389085469242808
-93611 -119.679767182462285 36.8246459491277562
-41466 -83.4397774999999911 37.1863050000000044
-61873 -88.0352410639708864 40.1236374535068876
-78213 -98.5228471631966585 29.5127229441473737
-83614 -116.304276666666667 43.6774226666666721
-74438 -95.748830153846157 35.520591153846155
-27553 -78.3017588468842689 36.483956131862918
-50604 -92.9001876645961744 42.576694075155288
-59641 -111.62894881818184 46.1989256969697024
-61944 -87.6843841158627271 39.5900414010648731
-67220 -97.276347536967279 37.7480040769078329
-08003 -74.9698073857982905 39.8813623545000766
-77517 -95.128104301356629 29.3825553619186515
-41621 -82.7254694028571862 37.6248232514285519
-68017 -96.6597377959095923 41.0609045811674918
-73673 -99.5123338421053205 35.0779058947368441
-29667 -82.754779922737427 34.764410101545252
-42410 -87.5114510218499788 37.272634109978128
-13341 -75.395183178571429 43.0301689642857141
-99106 -117.177412500000003 48.135603500000002
-93721 -119.782381104790517 36.7327314251496517
-81215 -105.169188899999995 38.4871371999999994
-68636 -98.1216438133086228 41.9930055905729773
-67410 -97.2122744524408802 38.9629492865679268
-63378 -90.6925894999999969 38.7564922500000009
-37354 -84.3525416331027458 35.5018338552379333
-57078 -97.4392059991460684 42.8877316848485037
-37814 -83.3164369050118125 36.2275090614785995
-14610 -77.5449334189710413 43.1416956895628516
-20639 -76.6021198760947897 38.6123301074632934
-63556 -93.127228285082964 40.1934317277509265
-38240 -89.3172486781480046 36.2540160422419646
-35161 -86.0975922307691945 33.4079447230769233
-15357 -79.9920795480928319 39.9391108076285235
-90062 -118.309086750152218 34.0037562260816699
-32677 -82.2826831025641212 29.4599138888888703
-75204 -96.7896621099105801 32.8026539927280609
-25442 -77.8300240366247778 39.368947804863744
-95314 -119.76801966666666 38.3319636507936536
-62468 -88.2640635969796818 39.2783698957055094
-68766 -98.3944878998073023 42.4080230404624245
-15336 -79.9893837499999876 40.2553590833333388
-72856 -93.0952612355604856 35.6816931551529066
-62243 -89.9024475333467876 38.4272395640819227
-86409 -114.026804595655761 35.2716803355496893
-64738 -93.656180596168241 37.9051709459053683
-74741 -96.3189437998326099 33.7792530668616209
-78639 -98.4482616303576918 30.6614057017591648
-76648 -96.800970128584666 31.8519877839962895
-71030 -93.7971837319720549 32.1967635788130337
-75864 -94.7825365714285653 31.7919735714285778
-88311 -105.97091727142859 32.8298504673469296
-48653 -84.6406992048382421 44.4907686262578537
-43606 -83.609968069458148 41.6714893416417951
-46803 -85.103831159667763 41.0704189287636865
-01074 -72.1562621111111469 42.3782225646630195
-74020 -96.4163124593269742 36.267764744039269
-53172 -87.8648185660436951 42.9106230566978297
-46373 -87.4743891461125571 41.4473267017682829
-87891 -106.903688999999986 34.090291999999998
-55335 -94.5396923527709134 44.5361372789947012
-64069 -94.3798923749999972 39.3026044999999939
-03038 -71.2895035573991152 42.8884989564097694
-36522 -88.252896772499156 31.0873304522499083
-85272 -111.978537932950218 32.8785335287356588
-59874 -115.593016021116895 47.8096633986562551
-03236 -71.4246497500000004 43.421560999999997
-35060 -86.9298100149999868 33.5591175075000123
-67013 -97.2908314045643294 37.3942404266944024
-01035 -72.57183881398484 42.3558880515465219
-23081 -76.7842798000000073 37.2222223999999997
-97391 -123.914879866572619 44.6215740627235178
-16911 -77.1207783136985228 41.6632648342465544
-23838 -77.5928267727580163 37.3267645874944094
-04944 -69.6361976666666749 44.6861913095238066
-14207 -78.8978156104809045 42.9495635791943897
-95971 -120.921809603803084 39.9418913109668878
-48725 -83.2380289463362431 43.9527286807705337
-80433 -105.309952232578965 39.5031349109453487
-21112 -76.7085423749999933 39.0741595000000004
-43435 -83.3052772701370543 41.326708470136964
-33167 -80.230965318276489 25.8871891407227217
-57521 -101.278376278048768 43.8392612195121743
-01363 -71.5651198000000051 42.6675087999999931
-43610 -83.558903575119615 41.6768604880382796
-75558 -94.8607185381977445 33.2374793197844696
-57276 -96.6185904493137855 44.4232792217794596
-17722 -77.9979694999999964 39.9346680000000021
-64090 -94.1668064722222056 38.7583354583333204
-73114 -97.5248470168369863 35.5715495556144177
-37379 -85.1589968357495337 35.2716376257797535
-84512 -109.553552874999951 37.28289280637253
-64639 -93.2523800958646945 39.3851112838345685
-02643 -69.9495784467533497 41.7856988961038596
-24639 -81.8864413653452488 37.1460936646159041
-72542 -91.4937533911189007 36.3141176013821649
-04421 -68.7944402080137252 44.4149329215686137
-14103 -78.3830298713207725 43.2170283858949205
-67207 -97.2257350259628481 37.6666777762732607
-15104 -79.8612231629104627 40.4053338679974701
-15349 -80.0904628309857998 39.7550439374846007
-19549 -76.0111070631229353 40.6081975847175798
-78014 -99.2386565326266208 28.4326661974162747
-76877 -98.7189316269322177 31.1969936692035041
-56425 -94.2719405474887679 46.3486823129328585
-12878 -73.9616124719037771 43.4356949787844044
-26855 -79.2565175192582672 38.9688561212553282
-28609 -81.0540043953443217 35.6773137784142165
-63842 -91.0998804999999834 36.5208313750000002
-02124 -71.0721854129290165 42.287497766001735
-97207 -122.599781785714256 45.4804225714285764
-29588 -79.0104980854144117 33.6755034954024026
-57703 -103.133855650790963 44.0523082802839667
-26720 -79.3316729146341402 39.2793509999999912
-33914 -82.0048821501894736 26.5763197111672476
-92408 -117.274764672505441 34.0769712242233638
-01754 -71.4539238361480926 42.431682066900521
-33610 -82.4008021147385676 27.9941766882397154
-97498 -124.06985085999132 44.2963978612916094
-37656 -82.6277687706590314 36.3997820993810564
-77075 -95.2581426205665593 29.6201087897760971
-21286 -76.5803040251496725 39.404992549833608
-10981 -74.2842421029411923 41.3106745735294112
-36426 -87.0738213777271142 31.1278355370467636
-55726 -92.8672066574812476 46.664871407058115
-37760 -83.4748127974592933 36.1097260678784124
-03878 -70.8804747840569291 43.2541391369266321
-43984 -81.0288456969697108 40.4067377878787966
-54433 -90.871175781061595 45.1623593009650364
-35776 -86.2313811615534007 34.6540834008737306
-04613 -68.0363443503401584 44.3811303809524418
-77354 -95.6324552128153584 30.2050329834040063
-38632 -90.0028977034356785 34.8126766831145886
-79061 -100.453598468984751 35.5324314050751795
-31041 -84.1775246873416023 32.3768822164556767
-54896 -90.9035413082369956 45.8731067933283398
-33034 -80.5026641667111278 25.4403552627050296
-42784 -85.9112908094662515 37.450016028915222
-55985 -92.8929265985631645 44.1557123714347171
-28170 -80.0871383196637368 34.97903434394307
-32405 -85.6666187221801465 30.1969017913975009
-73950 -100.878057435567001 36.8953539613401773
-18417 -75.2048982495221168 41.8088055497640454
-35404 -87.489295384743329 33.2136372864526876
-92278 -116.0979632511945 34.261618828668901
-67119 -97.1705381017331291 37.2618570150716195
-15407 -79.7142510000000044 39.904303750000004
-79086 -101.814919187082253 36.1095478522643063
-51436 -95.0109048844553712 42.1764640465502296
-85614 -110.985163427932818 31.8730960321935335
-10989 -73.9415629974154172 41.1219568893770671
-28646 -81.8579591281644667 36.0885155588319719
-45896 -83.9475610918247241 40.6049720542062076
-23976 -78.5864341328021823 36.8482580398406085
-82633 -105.396314147186118 42.9068692055885919
-48878 -84.7716885098765971 43.712154161728364
-17372 -77.1062748222643108 40.010253426786818
-24826 -81.6274400581395554 37.2789271744185911
-72165 -91.4610046806387658 35.5724452075847992
-60088 -87.8529506898241976 42.3082825455660867
-04616 -68.5685597609252397 44.2797594768637097
-74857 -97.1898173900750635 35.3493357869633229
-36445 -87.4195012973416965 31.4514158249959443
-58703 -101.315734902477814 48.2679548054054237
-94923 -123.043572241211294 38.3404239195285825
-33331 -80.3677659441633807 26.0585378042801707
-76235 -97.8094217999999955 33.3831043999999935
-75569 -94.1251635078699707 33.4415977145855052
-40047 -85.5576058984314756 38.0427677846967427
-54407 -89.2958556638332794 44.5200665498886323
-36546 -86.7228952631578949 31.4831631578947402
-71847 -93.624039004358437 33.9262363975786414
-08901 -74.4453387112240961 40.4875861934100953
-97838 -119.283116775330029 45.8491415505920088
-08342 -74.8362091333333268 39.4919530285714302
-66027 -94.926848989285773 39.3455620517857838
-68360 -96.9560854600638464 40.9599881895632976
-43128 -83.5765829069621873 39.6579943502773062
-01082 -72.2662325879046676 42.2706517968599158
-11030 -73.6866971511863937 40.7966526507691611
-37141 -86.6966211117146344 36.6147865965864909
-75140 -95.7012991841097858 32.6437742048500965
-99040 -117.960728118347106 47.8777232233893741
-29324 -81.8235979393938919 34.984445231404969
-71245 -92.7132057903640003 32.5265726818683021
-18085 -75.2559679523809706 40.7405296054421413
-30317 -84.3161697080890633 33.7499362910316165
-71022 -93.8385513333333279 32.7233297777777778
-72921 -94.205940268651446 35.5088500100837976
-52329 -91.8453432956758036 42.3518080124324214
-25755 -82.426916200000008 38.4230065999999937
-57747 -103.518750950562477 43.4363019867160958
-72140 -91.137803790446867 34.3701303066255974
-55002 -92.7855739999999969 45.4924490000000006
-61911 -88.4557039431339405 39.7130768448636218
-11361 -73.7645395714285712 40.7661231428571327
-44721 -81.3335356072581988 40.8845506895245592
-78141 -97.6179006672904137 28.9154401333645126
-38465 -87.1443958461538557 35.3488069230769213
-85751 -110.742642250000017 32.304865333333332
-16837 -78.4758979788918225 40.9460533562005153
-81232 -105.588846833333307 38.2619610000000065
-12966 -74.413584633566515 44.8159884552446428
-92330 -118.77072461111112 35.3364388333333252
-23651 -76.3063303220974376 37.0102214082396941
-86511 -109.118766328611784 35.5843005297450219
-32726 -81.6779753760347518 28.8511339715412625
-84830 -116.445190772727258 47.1057011363636349
-47174 -86.4741908650518241 38.2243564256054853
-41528 -82.1393746469151296 37.5535884037874013
-06226 -72.2095710798871977 41.7123748227869626
-57590 -99.837522000000007 43.3727935000000002
-75058 -96.7240684226587746 33.4521307664652667
-68036 -96.9572529715519238 41.3375268069595734
-02119 -71.0854092890984788 42.3236877742926367
-49743 -83.9297944786537755 45.2828802452477177
-71935 -93.6758641310757127 34.3891798300407743
-94850 -122.317963636363643 37.9014788181818147
-65090 -92.3223005555555574 38.2579733888888782
-63839 -89.8138393400000012 36.0477410280000043
-65713 -92.7697455052297215 37.4058874274058439
-08863 -74.3124186919664282 40.5365874322326576
-35212 -86.7486773509622822 33.5408054621816163
-70631 -93.3906341716447486 29.7863843117375708
-85087 -112.102437020501924 33.906983418183593
-46170 -86.8638824193548231 39.5752104838709613
-87722 -105.244740903225761 36.1402701839581795
-57658 -100.581466071999984 45.6580568624000307
-34681 -82.7781412850082887 28.0875611845140156
-10006 -74.013478496688748 40.7083751920529977
-13635 -75.2453196784519065 44.3192201571906423
-27805 -77.0957226787179337 36.20952436921349
-57568 -100.068764712051617 43.8660004517020425
-32046 -81.9395678572759891 30.6867791458269252
-30734 -84.7071812972039595 34.5255949271127207
-76023 -97.5970811966770526 33.0447113693730188
-67541 -97.7748589999999922 38.2309659999999951
-70592 -92.0083801724968424 30.0950423421027367
-04430 -68.5749447415621347 45.6299645216971967
-33015 -80.3208365744838204 25.942891688004849
-33145 -80.2341477019544271 25.7535951319219301
-65629 -93.0247673151590391 36.8986024562163379
-55756 -92.5887348648311104 46.3747820296204338
-73041 -98.8704822310468927 35.0666456317689565
-25901 -81.1432992410012019 37.9790814907754211
-24502 -79.2285901976779741 37.3489844740310915
-38761 -90.5026990615942708 33.4444720498188417
-56553 -96.6707208838268741 46.4370697312073375
-81033 -103.829847193181777 38.2146914999999865
-30265 -84.710171365659761 33.403438378045152
-62319 -90.7243227122736613 40.1561558189134473
-02367 -70.8081141982271305 41.9621559133763569
-53942 -90.1566699166666581 43.4685483333333309
-00744 -65.7840069959016489 18.2162686680327752
-34682 -82.7755839999999949 28.0703892499999981
-43346 -83.8456059791666775 40.5710356666666669
-20131 -77.744583999999989 39.0460663333333358
-72316 -89.8824403333333208 35.9283591333333305
-56586 -95.8382731861670294 46.3229983114337855
-45050 -84.3647733796102841 39.4411745802912321
-97224 -122.794486930857644 45.4078005200776005
-60545 -88.5322625770481153 41.6689641846912551
-39553 -88.6433378240817689 30.4061766625760832
-50658 -92.5457720089404035 42.9550198735630318
-79326 -102.205613928571438 34.1032111964285676
-75142 -96.265146657899038 32.580936227842578
-33484 -80.134408590173976 26.4534859537413993
-55970 -92.8357252031533875 43.5994393829593747
-17217 -77.7070039366516454 40.2409337828054277
-39823 -84.9369923066197856 31.3357527508003209
-48427 -82.6914567453346621 43.5347816353032542
-76105 -97.2715303113312331 32.7229038225987239
-85654 -111.155208749999929 32.4150610526315717
-18240 -75.8664022781394038 40.8528047677293173
-82804 -88.8700879999999955 38.3926144999999934
-07423 -74.0988620488157892 41.0002600318994794
-18080 -75.6230477328212487 40.7304294300188729
-33109 -80.1416421912568069 25.7599393551912534
-88034 -107.874125142857153 32.6523537285714198
-72732 -93.9553059011493303 36.4262165775118518
-02822 -71.6029056944715876 41.5661309227812907
-41352 -83.3320836596044501 37.8214013778248841
-78254 -98.7028550298647502 29.5273985956163934
-75979 -94.377283726322446 30.7705303604768226
-55367 -93.9777080866301588 44.8924448854023481
-97707 -121.462718791735298 43.8474651240972122
-58357 -99.170434365196158 47.952348352941172
-36435 -87.4459150322119854 31.8811108282033153
-85631 -110.617184840425509 32.5656484361702141
-18706 -75.9181360774253164 41.2136183903331954
-16734 -78.8418393552631898 41.6196989649122742
-57724 -104.060045785714408 45.5770460500000638
-15215 -79.9147456041252298 40.5018024318030712
-43720 -81.8809657877621646 39.7971214232245174
-18921 -75.1733387499999992 40.5285900500000054
-24658 -81.9978325000000012 37.3671522499999966
-65759 -93.0221913429520271 36.7482203484245176
-18031 -75.6501894368244194 40.5521349455963787
-37208 -86.8049255390178303 36.1763135360164299
-35604 -86.9121049999999968 33.4841559999999987
-94611 -122.212327692096167 37.8307702217102175
-56629 -94.1057865517242789 48.6359433639162475
-12572 -73.8725218927993978 41.9254320666774447
-53919 -88.7984222433962742 43.7366080811320614
-16852 -77.525049425675661 40.9372903361486564
-59529 -108.627708527999999 48.7928383640000121
-18701 -75.8833416202860747 41.2447876566970137
-00757 -66.3973735184491716 17.9899473764596074
-14518 -77.0085472083333258 42.9327196249999972
-28410 -79.9892465000000072 32.9163050000000013
-57106 -96.8117255888862331 43.5164752473140695
-37061 -87.6683824108596639 36.3013646752287755
-72553 -91.4949900718391262 35.7061016925287049
-25854 -80.9868485866140588 38.1287639661416478
-01516 -71.7327088071361061 42.0560614827628783
-02154 -71.2593388421052651 42.3734497368420975
-68313 -97.2774016266439787 40.7844787961693385
-77360 -95.1103080299807857 30.8259305714613205
-20551 -77.0458069999999964 38.8921830000000028
-31768 -83.812154817790514 31.1791865767079166
-15568 -79.1625147333333246 40.2531279333333316
-95660 -121.375260376503576 38.6792821470194568
-94102 -122.418795003796546 37.7799045269552138
-65062 -91.632375336492899 38.4877108601895657
-17339 -76.8791363573535733 40.1443577026267704
-28457 -77.902864643943218 34.4334208646569095
-68816 -98.1209860301205765 41.2020380481927759
-96815 -157.820399537575469 21.274048622804429
-43605 -83.5098301152677891 41.6425254319514053
-59733 -112.950331126967669 46.5208103483915565
-46805 -85.1191276766256522 41.0987763218944835
-46788 -84.926603468706503 41.2645689142328322
-38362 -88.7753362870239187 35.7245662665726016
-26261 -80.5475991707610177 38.2235912947873544
-16403 -80.0281732011961964 41.7957707618849952
-96036 -121.501919706896558 41.086147000000004
-33351 -80.2735453797878478 26.1787234260101265
-30048 -84.1316957500000058 33.911503500000002
-25079 -81.4033349890109861 38.473974021978016
-80951 -104.675842820377426 38.8624817896354884
-46506 -86.1699549920239036 41.4580047446741773
-50139 -93.3502501897099251 41.1937185003175443
-44413 -80.5502600711833026 40.844416106973064
-49505 -85.6386976415996912 42.9998815585229437
-98236 -122.399789342534064 47.9551389735480029
-67876 -99.7197875955554878 37.8156049843478002
-49647 -84.2056721428571393 44.7251994999999951
-34119 -81.7190582125946179 26.2639977731823286
-08628 -74.8240001296104538 40.270085963627082
-59069 -109.55971869758298 45.7097079894903757
-45660 -83.3747112547114995 38.9872992895315562
-12029 -73.4296024504781428 42.4017754999999994
-38356 -88.8814495860288218 35.4474209685527555
-62835 -88.3289041422709857 38.0975943479252095
-63368 -90.7232137354444177 38.7535145700509744
-28107 -80.5287312807763414 35.2477910572468573
-56377 -94.2215204146559842 45.6317020048704478
-40063 -85.3493149393939206 37.5750484848484803
-04077 -70.5268920142856928 43.927469914285723
-80512 -105.415083025144298 40.6182469646361923
-04112 -70.26130225 43.6537020000000027
-15937 -78.9828841170732119 40.2074471999999972
-99202 -117.375194571910981 47.6610509090252563
-36518 -88.2790348961794535 31.469070729808017
-57470 -98.8767989570732055 44.8760835596747825
-15347 -80.2198744622356372 40.214486513595169
-84639 -111.878406565562841 39.5407227324502912
-44506 -80.6256369217686455 41.0953951332199523
-25847 -81.1766826650717803 37.7194939521531225
-18956 -75.0318180444444351 40.2643806222222267
-16740 -78.6171297399897782 41.7205535772935008
-41226 -82.9617725801241761 37.9734453614906897
-04453 -68.8144761583383655 45.1838017212522587
-01525 -71.640058585365864 42.1028585426828954
-97138 -123.797589810463748 45.9540485041826727
-54873 -91.6450231327734883 46.3587031176424773
-84332 -111.815493562011284 41.7037006445603353
-83676 -116.91126659284204 43.6507677802105007
-01092 -72.236640580048288 42.2045129227675204
-59479 -110.279018272464796 47.0748976071885536
-20144 -77.9335599076646446 38.9146181139765233
-01407 -70.2068055000000015 43.5880369999999999
-20307 -77.0266845000000018 38.976545999999999
-68461 -96.5302809174691845 40.7708682916093608
-90008 -118.345378377320728 34.0094404990899264
-73010 -97.6611531625609786 35.1404611593381304
-53027 -88.3615821781934159 43.3061831064618445
-47943 -87.2783104903225251 41.0559883182796455
-98383 -122.700561750053552 47.6645060379229619
-62207 -90.1297558650129389 38.5876084320232167
-59038 -107.246602001734999 46.2281413493348765
-59026 -108.849206663663779 45.4501776456456383
-16630 -78.5856698144256001 40.4644454444443582
-37145 -85.9161792720090745 36.3803772623186532
-85736 -111.272610600522739 32.0356010687570887
-40011 -85.1891567724920122 38.5461839420810577
-45306 -84.1839257866603532 40.4625892478713567
-26509 -79.9661149069767418 39.5501999534883737
-50162 -93.076158857041321 41.935612629089654
-98883 -119.378538644444433 47.3171744444444329
-40348 -84.1469011987794318 38.2991497480383529
-13690 -75.0331199697802731 44.1597822014651769
-98014 -121.912391099830529 47.663041543262743
-46120 -86.7956895933664896 39.5101082759535416
-57380 -98.3080698347689861 43.0291781697643714
-26430 -80.7544372998832785 38.8837390746791414
-01031 -72.190257232598654 42.3286188335266402
-51501 -95.8747269680028751 41.2453735064835101
-70385 -91.5162956666666645 29.7892180000000018
-95066 -122.01272714861841 37.0659579446278897
-56359 -93.6897046299385323 46.0865111663644811
-47037 -85.3062191637345109 39.1572672477297203
-72901 -94.4130318330515479 35.3683953834119151
-79714 -102.540104709337626 32.3349668448002348
-33903 -81.9102822300658175 26.6862471892475028
-74345 -94.7565573924050284 36.610782303797464
-47885 -87.4749517532603562 39.5019010037183875
-46785 -84.8824760120265154 41.3195780142538993
-16127 -80.0796928327027615 41.1668834880218384
-49057 -86.1692714143379277 42.1995563110570799
-16048 -79.8094964464285397 41.0485832857142796
-53182 -88.040209797211233 42.6916258474723733
-26544 -80.1605556220472408 39.6958377244094649
-47955 -86.881918930608478 40.1926920342205918
-59317 -105.491099110523706 45.3842916371937051
-98279 -122.804535013738828 48.6375620546306848
-29692 -82.2258884298092454 34.4162518814430953
-79077 -100.280534333333335 35.052267333333333
-95620 -121.819091078288821 38.4363062040282131
-65642 -93.0749567333333232 37.0525036000000085
-58636 -102.309360285714234 47.3999178629500975
-75093 -96.8064963286372659 33.0370898579823873
-80011 -104.807957274122529 39.740888383262515
-49008 -85.6112899416382049 42.263340447440207
-55013 -92.894107254798314 45.3546793337463185
-73566 -98.9501342246154394 34.6525469469231027
-98830 -119.588331560166068 47.8690916500691728
-37854 -84.7092386142048639 35.8629578033856546
-85250 -111.90804262499995 33.5225772587424018
-63070 -90.4147685132857788 38.2817760281623691
-17884 -76.6713848144330115 41.0457824742268045
-04460 -68.5209407143447891 45.5733360223879842
-12512 -73.9507573518518626 41.5825136666666637
-41745 -83.4191842749176544 37.3373979813800858
-14456 -76.9946325554250564 42.8538211199570256
-73650 -99.3992004110719165 35.6319723309776464
-67321 -95.703402666666662 37.1962336666666644
-47462 -86.6322556860499304 38.959408629438073
-79848 -102.142713702034058 30.2063726160405253
-76668 -96.9509332000000086 31.4301003999999971
-13758 -75.718822951612907 42.5617077419354857
-65018 -92.5507097534603531 38.6228310746275767
-65646 -93.6962446851668886 37.3045733736371901
-01270 -73.0369215536690319 42.5074142955395899
-95033 -121.984643326136862 37.1518068738565717
-64124 -94.5407247812652116 39.1070713587638252
-58369 -99.7569271818923653 48.9145824832789202
-04496 -68.8960202096675545 44.6582875480272037
-36989 -88.3141416666666572 31.7777676666666657
-95461 -122.650448526423887 38.7808181216969956
-05847 -72.4578386443871949 44.7952329781089631
-56575 -95.4257286297446683 47.0600885189775013
-29697 -82.5303327994155183 34.6257211137249854
-56308 -95.3934201614768966 45.8893131715251101
-57421 -97.9313248495684547 45.7565856757090046
-80757 -103.558939973480719 39.8356440276243333
-67438 -97.2609747511519913 38.5048991958525662
-34446 -82.5319556936422742 28.7494918972313336
-68757 -96.9133567911112976 42.659579257777807
-68002 -96.3372182173912961 41.4758871476113384
-24506 -79.161005000000003 37.3815707499999945
-77852 -96.756801095238103 30.4409486984126936
-55092 -93.0532402882392091 45.3288814614685478
-15961 -78.9380420558433684 40.4616860644790606
-80847 -105.796308025641039 40.02667425641026
-20782 -76.963334626482677 38.9649733926889468
-97041 -121.587247425495349 45.5169679725610692
-47963 -87.4481206432292026 40.9589853315304993
-55796 -91.7986090526315621 47.9298977081339785
-24131 -80.2384756492693469 37.5682642359081669
-60005 -87.9852496331221943 42.065654157448229
-75172 -96.6828320124482588 32.6017146520450822
-30130 -84.8408222799999976 34.0810591599999952
-44270 -81.7752587995414473 40.9703101581762539
-48818 -84.905899048611019 43.2705315798611494
-78605 -98.0622390870037037 30.7451713135527847
-77504 -95.1873966401825271 29.6465046678606186
-02405 -80.0239043750000008 36.7641489166666631
-54449 -90.1852989875734607 44.6496671967774503
-64668 -93.7161662173911907 39.3583377708884043
-99020 -117.496503454545447 47.5636090606060478
-14174 -79.0221565694314165 43.2462148925961074
-27885 -76.2863646524353385 35.4293923812386637
-37362 -84.7354212457067177 35.0415106147530793
-17266 -77.4125896698412959 40.0850317809524128
-84511 -109.474286361780528 37.6263529407165507
-15085 -79.733458232460265 40.385060883068256
-05824 -71.8687377220167178 44.4302550757639025
-72578 -91.8804622073643458 36.453880065245464
-81611 -106.851849594313293 39.2047728979972732
-60108 -88.0902261263255468 41.9498617167808803
-33179 -80.177689139093161 25.9594365392832174
-04699 -68.0017309999999924 44.4261087692307584
-26222 -80.414323453958815 38.6680283296042404
-13302 -75.9628656067154111 43.5012890355074546
-57264 -96.79504863636366 45.1136542878787949
-29128 -80.5162902004505696 34.0968632955277897
-57236 -97.5564411224103907 44.9779413709980957
-89426 -117.504729198581614 41.4967734586288159
-25534 -82.2605220031948647 38.0916423738019105
-06601 -73.1958178666666726 41.1617720000000062
-30117 -85.1193950876169083 33.5851975328508843
-33445 -80.1077272764888733 26.4566584957736204
-15283 -80.043334625 40.4511577500000072
-47923 -86.8851894427890699 40.6070636770081208
-62344 -90.8304712071129927 40.1756543117155047
-92366 -115.43522071428572 35.4581504375000023
-46038 -86.0118700947433297 39.9689325844048327
-76177 -97.3203417020809098 32.9435059211391348
-58363 -99.4191805930112338 48.7536941284686947
-33756 -82.78794435212086 27.9455144718188251
-33850 -81.7331708801884389 28.0996344648829499
-50578 -94.5392047796845389 43.303517334934817
-12208 -73.8068064857697692 42.6550764584141007
-73651 -99.0947523831167132 35.0253425385790891
-38787 -90.5222270000000009 33.8173643333333303
-49456 -86.1954829976988464 43.0890869107833723
-58481 -98.463041409977393 46.9455190345086706
-33316 -80.1278575782774141 26.1032741302503233
-04776 -68.362888681256365 45.8814981132852964
-26436 -80.7353949999999969 39.2907730000000015
-24963 -80.7819382586731223 37.4220701911138107
-61348 -89.0515676522463338 41.2888214262339588
-41736 -83.228238886713271 37.3435965328671315
-14427 -78.0493697607287942 42.634562263562799
-79084 -102.062695827209325 36.2624579280039399
-37014 -86.6523580805003775 35.87340865715192
-23702 -76.3272749355487861 36.8029494716347614
-59623 -112.260113399999994 46.2691063999999983
-28312 -78.7765077431776319 35.0153073652569304
-35905 -85.9168150196869078 33.9432554893051588
-12451 -73.9449095020556939 42.2962860721790506
-78070 -98.3909189427645856 29.8919582629259644
-13645 -75.446336347826076 44.3095461304347893
-87828 -106.919662619537306 34.2037512133676174
-05456 -73.2553593695226937 44.2093274970694949
-54139 -88.0645051313053955 44.9390120749258557
-58241 -97.780693766832357 48.7070492671864628
-91103 -118.165177043081286 34.1672089134788521
-34957 -80.2413295017442465 27.2461213600539836
-45368 -83.659739282754515 39.8452551789756768
-79043 -102.115037665384605 34.3653008487179363
-48144 -83.6264264954704259 41.7527897370405512
-19082 -75.2692255610916305 39.9593177206405983
-77059 -95.1177165651760532 29.5990948282588171
-76847 -99.9942295714285621 30.5036710000000006
-35630 -87.6640434979844372 34.8212331558590975
-25977 -80.9234294545454702 37.8107896363636371
-66858 -96.9547088693467174 38.4871261407035306
-40404 -84.285953400000011 37.5762220666666735
-99518 -149.884532405520645 61.158804548698285
-64676 -93.0458417320574398 39.648121516746393
-72041 -91.4565277578843308 34.7468024891590446
-33004 -80.1442201014025812 26.0500373153904441
-24725 -81.2995232142857134 37.3260574285714242
-96782 -157.962228583946654 21.4087230817390939
-35179 -86.9377838656481288 34.2659106650577456
-72134 -91.3639300863636663 34.6031225136363361
-64132 -94.547426178703688 38.9890062725326771
-29838 -82.1671614083012258 33.7311324629987084
-35540 -87.1631056485668836 34.2160384352118712
-67218 -97.2786028727639405 37.6688457145962801
-41840 -82.7138201296408084 37.1890448934874911
-29063 -81.1970642571437367 34.1271011295586533
-11964 -72.3303980357437126 41.0705605739523776
-75591 -94.0593481999999881 33.3690468000000067
-23141 -77.1518362150294621 37.5188165914846365
-56155 -95.9386782224137846 43.7709953114942181
-08805 -74.5391278173115808 40.5699796450269972
-79804 -101.1060418 36.1991038000000032
-78615 -97.3790540746210809 30.4708270643939514
-34988 -80.5103301709401649 27.3574745256410274
-18628 -76.3793070615241589 41.4630700174472153
-24846 -81.8597651034482823 37.5339778620689728
-81152 -105.431774340220457 37.137816818181804
-28456 -78.2717737645277083 34.3648079518717182
-62471 -89.1155127498229831 38.9720408898653616
-56281 -95.1716412031401973 44.9430029754661362
-64765 -94.4452587142857141 37.9966792380952398
-60002 -88.1027970738786479 42.4664689026947215
-02116 -71.0733373155633359 42.3488930206362895
-48731 -83.1674662386678705 43.8397241942645195
-64097 -93.9850666975170128 39.1121675141084211
-64478 -94.9459920000000039 40.3920860000000062
-30073 -84.7079806666666713 33.8841425833333361
-12172 -73.7382115566037299 42.2879416509433881
-92678 -117.569703050847423 33.6715253008474633
-65627 -93.0194705466013119 36.5620617916957755
-34773 -81.0529876800109292 28.1377041460643937
-37663 -82.4883996918306366 36.4665078452824432
-26337 -81.1679833570647133 39.251838043811567
-70723 -90.8621557091787935 30.0530554086956307
-06470 -73.318930872034656 41.3919150805177622
-13141 -76.1857600008986537 42.7695044887690727
-62561 -89.5260262474605213 39.8603238046250965
-47234 -85.7684118903323025 39.3754551997114035
-50569 -94.1407050297554804 42.4160447364505231
-01227 -73.1752403333333348 42.4811446666666654
-68048 -95.9138220399201487 40.9873463699451079
-51358 -94.8915009839655852 43.1306772631991038
-43321 -82.8286606481481726 40.4630331975308977
-08022 -74.706772215192558 40.0708251896612495
-15329 -80.2906189880343533 40.0363727182906928
-23027 -78.1321411391940188 37.6396794463229725
-23708 -76.3092690000000005 36.847749499999999
-93274 -119.346896851250861 36.1995053441517811
-48828 -86.2837553333333318 41.6859216666666654
-03824 -70.9202184363319788 43.123359213492904
-24053 -80.5413698519136005 36.6086984262667698
-57741 -103.473973355932202 44.4103975593220355
-87516 -106.441295666666704 36.1770877708333174
-63064 -90.3954077500000039 38.7265160000000037
-11760 -73.2324677499999979 40.7299314999999993
-30451 -81.9580982745098225 32.3905116666666615
-95932 -122.01202863895 39.2308828904083384
-39307 -88.756374654897769 32.3590992239493431
-46773 -84.8715472234968473 40.9819382114721122
-61263 -90.604780082004595 41.2603621890660222
-44132 -81.4999578036004948 41.6084448371521916
-19143 -75.2279140035710014 39.9442692118022009
-28631 -81.4081493210650962 36.5503301551988855
-70446 -90.3613725695246188 30.6274271402288676
-62685 -89.9944944102351485 39.1505773704086693
-79040 -101.525859801286742 36.3082420879199432
-96731 -157.946346675438633 21.6776468771929771
-66056 -94.8367263824267042 38.1571298420501464
-21209 -76.6707706597757408 39.3723142262731614
-01378 -72.3413989479231674 42.6740302707147663
-19548 -75.7009914615384645 40.2814936153846119
-70648 -92.8779825853017229 30.5055683932633244
-91106 -118.129187044901855 34.1370925821639659
-49934 -88.4423302389558472 47.1596085682730433
-97338 -123.333091565071143 44.9226760577437361
-71675 -91.9362260263541344 33.6103349627658972
-21088 -76.7093205454545597 39.6575333333333333
-06336 -72.1956398010204907 41.5781329030612241
-50064 -94.2289673755020232 42.1151759497991733
-73433 -97.3832422559244293 34.6150403857819526
-71353 -91.7655697715914727 30.7098725558965171
-62534 -88.7513271935484482 39.5186877772657326
-66443 -95.3970844000000113 40.241259300000003
-16512 -80.0682467500000001 42.1238932500000018
-92661 -117.897966942756966 33.6012416045560727
-99330 -119.063169123524546 46.4749984363406909
-32420 -85.3725766076579475 30.6376181375946892
-63334 -91.1848937841336777 39.3231514421228212
-29691 -83.0672845205839394 34.7765786799431638
-39751 -89.0868062258315661 33.7025392869295644
-27201 -79.4865451707316879 36.0341546829268324
-77001 -95.3579420000000084 29.7527332812500021
-14711 -78.1248017177640008 42.3246979845678553
-27809 -77.7711909162984227 36.0266418054736945
-32780 -80.8228223253406526 28.5632448076789061
-43381 -82.2742019999999883 29.0803975999999977
-50323 -93.8145973935046698 41.6329070630709523
-95648 -121.281045452836267 38.9097504536421965
-99009 -117.265533965876159 48.0295518493611269
-02743 -70.9057407758055405 41.7070517027399958
-15135 -79.8158310497387191 40.303329074608321
-49346 -85.3482757042768299 43.5848282626607784
-76434 -95.2150086666666624 35.8793930000000003
-80634 -104.76005064834645 40.4077840326525504
-02118 -71.0723962675069458 42.3390199733893695
-50124 -93.6022902177334117 41.8990922707240117
-70085 -89.7861083935084565 29.8481014268934324
-03032 -71.342065129396957 42.9927130155465704
-70740 -91.4110106435777539 30.3771088695359168
-65039 -92.2894347604384677 38.7152038176470938
-70342 -91.2259921383507191 29.6970603508577184
-04961 -70.0787628887774474 44.9700404711490833
-61258 -89.9297051564625747 41.4978095510203886
-02639 -70.1353609193068195 41.6632821984836426
-48211 -83.0443861821286617 42.3811095478087481
-85035 -112.192512730457693 33.4724090163499639
-85646 -111.048704615002237 31.6158198102123968
-63845 -89.3731751849444436 36.7714984895447188
-27886 -77.5370693593263809 35.8953545365384699
-50060 -93.3186063015828182 40.7620055293951111
-65632 -92.8300970714431202 37.4951040720589859
-85652 -111.071313836538508 32.3407521201923061
-33820 -81.71947188888889 27.8941975555555537
-83537 -116.565547919756597 46.6116349918854738
-16442 -79.8288746870472465 42.0334094314948246
-80016 -104.733158336075149 39.5914190955569865
-14872 -76.8565030259433684 42.2308683938679579
-01098 -72.940613720581311 42.4001648515738623
-46121 -86.6886950080265848 39.6992294520488969
-28164 -81.0525643028999667 35.3870772089933396
-31085 -83.629474563943603 33.4258445791549619
-55113 -93.1519049604623461 45.013767993552797
-16413 -79.7531219999999905 41.9005925000000019
-24134 -80.7373959651080071 37.2663014521025033
-72047 -92.2076437579946457 35.2236320628061677
-90066 -118.431307036825032 34.004051229359284
-65604 -93.598894893162381 37.2839730465336885
-12722 -74.3869392277227774 41.5886377227722761
-13062 -76.3840601460674264 42.4847995730336976
-17978 -76.652212500559898 40.6200238555430886
-57799 -103.870453636363649 44.4961820909090804
-76878 -99.3014259552049623 31.7077562566126403
-59344 -104.555152267291675 46.400992994724426
-18949 -75.1414809999999989 40.3935427500000017
-42124 -85.6646270708502016 36.8929354089068724
-75416 -95.3640966795846055 33.6739665141805204
-50320 -93.5746727608375437 41.5388803954811934
-10451 -73.9219498280318135 40.8204908240556463
-15448 -79.7460836388888907 40.1267539814814782
-48853 -84.6939653487395105 43.1070266806723055
-04066 -69.9686662528620076 43.7681612090591869
-42515 -85.6170327619047526 36.6623460952380924
-78630 -98.0677464999999984 30.5969231400000083
-78011 -98.7153238714090122 28.8589211901504257
-73109 -97.5240687004612568 35.430999993265921
-96078 -122.178131137931047 40.0779594827586223
-01360 -72.4460738603825831 42.6733959325626415
-73764 -98.1856534392523486 35.8701140841121457
-48141 -83.3138318118485159 42.2943322195594007
-30603 -83.4113374000000078 33.9501643999999985
-45130 -84.000327094962401 38.9117978973143579
-02903 -71.4142252231682164 41.8213624215395754
-66451 -95.6698054208816728 38.6152233874709623
-27810 -76.6099778366872499 35.5019449527559416
-58492 -98.4366022933688498 47.1529550283266659
-31051 -83.8744094871794488 32.149384094017087
-19020 -74.9368653888794967 40.1084198005627357
-70375 -90.5355452867647159 29.6889650955882267
-58758 -100.109544704796136 47.7454775181265205
-17985 -76.2120930706323634 40.9110802727986353
-82310 -107.832086364583247 42.487950604166663
-58258 -97.3698400674089157 48.001168983920806
-15035 -79.8076481967444948 40.3842675194621066
-77710 -94.0754339333333149 30.0404438666666671
-59925 -114.772127587417074 48.0879421440872932
-29482 -79.8381736945564739 32.7638032898185259
-27786 -77.5293742500000036 35.8588607500000052
-74837 -96.463875904458618 35.3424972229299499
-47940 -86.7522721625466886 40.1166317490636075
-63084 -91.006116280906113 38.4308588189746985
-23163 -76.3080419513444781 37.3545800435339004
-11356 -73.8458138095238041 40.7926886428571294
-12697 -74.864132111111104 44.3653485555555562
-57014 -96.9824510855778641 43.1350877619557735
-19936 -75.5862156103896154 39.220051285714284
-84621 -111.819500512110693 39.0548715397923942
-50670 -92.5971299550747062 42.6988989434275865
-72548 -92.0720717386363248 36.2440142159090897
-58031 -97.7140918189456755 46.7577171722689258
-76307 -98.5010805909091118 33.9083369545454687
-95120 -121.857683234350262 37.2143612673141249
-47470 -86.6422962969897839 38.8141154371237818
-20523 -77.0486960000000067 38.8959720000000004
-34203 -82.5098274918651668 27.4429261360494472
-42462 -87.8026570745046797 37.7379269852047727
-44241 -81.3475687004319354 41.247169660105655
-29052 -80.7467424089683021 33.8437765728253623
-59223 -106.291773915662603 47.8918473501505773
-77030 -95.4060520599029473 29.7060255218564322
-62894 -89.0430064231128711 38.2188141234854371
-72175 -91.7656258820157831 34.3479842611683921
-04092 -70.3563551829594473 43.6903650469356037
-92505 -117.489770528400769 33.9228149574468247
-78748 -97.8287926140441897 30.1637877939330252
-37380 -85.7192980744991502 35.0344048165571991
-67074 -96.7663030006411873 37.6752655488939325
-98665 -122.661184616560604 45.6826463638359286
-33052 -80.9224299333333477 24.7763444666666643
-63053 -90.364291672727262 38.3662993636363581
-59825 -113.702130144389955 46.7301032735808022
-35178 -86.4015729526818603 33.4106278951377433
-71401 -91.9577553631922768 31.7848938127035794
-38543 -85.1630887127744529 36.4083088069860707
-46459 -86.6990569999999963 39.0657156666666694
-26506 -79.9316389487179748 39.6542099358974269
-01062 -72.6843516987466245 42.3196559412188762
-84056 -112.002746753605734 41.113529939903863
-80540 -105.333186160149992 40.2535178092441015
-50314 -93.6320788516521532 41.6032344489942716
-79085 -102.514563606060591 34.7428468181818175
-12980 -74.5353418241510468 44.6198568183044699
-74701 -96.3832805773439674 34.0123133302336385
-23875 -77.2724060601892546 37.2338166059243107
-80515 -105.384070688612866 40.4506324737898453
-65026 -92.5805679068486285 38.3190288284450986
-53154 -87.9022958858092096 42.8823875991750469
-70836 -91.0883905999999968 30.3932696000000071
-08224 -74.4553536335877766 39.5977807480916155
-57342 -98.70692758514231 43.2633507491558404
-54888 -91.9019193333333106 46.0254432280701735
-85246 -111.337267153846156 32.5670269230769236
-81149 -106.255370952116863 38.098050844636262
-51576 -95.7156227893278668 41.3749958560869331
-10517 -73.866624717073222 41.2944019268292308
-97905 -117.448511575645853 44.5698427918819675
-12159 -73.8757727985685761 42.6465569187116103
-16312 -79.2932003444444433 41.9236510111111045
-26362 -81.0414843986610691 39.1767859549862152
-65035 -91.9428962211518694 38.3592493216755415
-77318 -95.549181392500671 30.4348986402975292
-72152 -91.9766988849105047 34.3474510767262728
-48860 -84.9159882231759582 43.0328916652359936
-67041 -97.1281171118421014 38.0539237039473619
-89026 -115.315049833333333 35.7753346666666729
-67546 -97.8197393062998231 38.2216926719767471
-28665 -81.3514463950037907 36.2067727979876111
-74952 -94.5842808000000019 35.213487200000003
-95934 -120.94662076794998 40.076985996878264
-80701 -103.810672618889768 40.2330825584845826
-87734 -105.146882784671504 36.2498578284671495
-50447 -93.7949956007256844 42.9259573246045463
-18106 -75.5858947653656799 40.5733276370370533
-39041 -90.4611174094507788 32.4044110415071813
-60538 -88.3624491182451806 41.7164644552787109
-98328 -122.300436154086981 46.8846766038521423
-38864 -89.1909333681130647 34.1527775875553914
-66846 -96.4857240597617221 38.6564985104524084
-15419 -79.8926206056581947 40.0637010819861672
-40448 -84.7576293684210498 37.4479686421052591
-77555 -94.7756728000000095 29.3112414000000001
-61451 -89.9506979281083829 40.9443783883323746
-84087 -111.911121565386907 40.8835303348655188
-66410 -96.3908519999999953 39.0529355000000038
-68975 -97.9492351245551589 40.6092247615658621
-18963 -75.0110044509803942 40.3880801960784481
-45767 -81.116299762001276 39.5542537236404357
-37080 -86.9197126470589438 36.3292188414196673
-82922 -110.300277481608958 43.1495933784806169
-86334 -112.486647977622397 34.9012652340326852
-14874 -77.1683883480277615 42.5326427401392095
-73763 -98.3185294126163711 36.1175076670113455
-88424 -103.616258371352814 36.4758493740053069
-98344 -122.227179030769179 46.9841059384615392
-25909 -81.2041411000000295 37.8341947714285709
-89124 -115.474700782165215 36.2226596411889616
-92137 -117.11857449999998 32.8559022857142864
-52655 -91.1975073196481674 40.8398642194081702
-92571 -117.206799822148696 33.8230062319369438
-48175 -83.5801276756756835 42.406921472972968
-13638 -75.7598072037036445 44.0206428580246794
-76943 -101.245561610227497 30.6575556090042092
-33810 -82.0094902093965885 28.122773761227176
-05143 -72.6252226284461955 43.2690654850426881
-31737 -84.7351678319326993 31.1502793193277334
-81035 -104.162302999999994 38.4051210000000012
-41173 -83.3053100833333247 38.2591766333333396
-86322 -111.857062953821057 34.5627348353362507
-40830 -83.3211152520324561 36.7831924024390347
-28009 -80.1177954192892798 35.4060425837563315
-37924 -83.8049770420396669 36.0324371677289221
-57237 -96.474586167523114 44.7628147029804637
-54985 -88.5252568333333443 44.0768189761904736
-72923 -94.3078830253124352 35.3314465049308808
-14130 -78.1572270949367152 42.5524336962025274
-54768 -90.9497244495694446 44.9897643570110262
-20765 -76.5581128303248732 38.8552633971119121
-01505 -71.7213394423833819 42.3429935011838978
-10913 -73.9605754401172675 41.0645563802345777
-38575 -85.6367240718700771 36.5698859713645277
-52361 -92.0074549010180363 41.6492590476950753
-68338 -97.2445860261410928 40.3137496003544911
-45114 -83.8596307922077955 39.3607379350649467
-71701 -92.8396138517356633 33.5676140874799316
-92843 -117.933711249337335 33.7637104724756867
-39057 -89.2790951804280581 32.4922748402589292
-39657 -90.4469088799484808 31.0256488239327872
-79705 -102.088955191854339 32.0329455481000096
-23760 -80.1049840000000017 35.8721463749999998
-83330 -114.717399407733822 42.9437003188602446
-41039 -83.8752032922361082 38.4125230770845292
-27714 -78.994507630434768 35.9109983913043607
-87586 -105.369339500000009 35.2647195000000053
-11937 -72.1919053559103787 40.9976453476503409
-64620 -94.090645188326036 39.9026465154184891
-13053 -76.2767583330749659 42.4843335179448047
-37824 -83.6304715555555589 36.4403150370370312
-49922 -88.490907496825514 47.1139355619047322
-38563 -86.0007781729677987 36.1901812555046902
-31143 -81.5089284999999961 27.7595054999999995
-06026 -72.7420361507402049 41.9343065768505525
-44842 -82.22561518358782 40.639419706515433
-74442 -95.7975435028409805 35.1421059744318214
-50256 -92.9136460615545303 41.2685237663015201
-22874 -83.2927314545454607 35.03476463636364
-84190 -111.88809375000001 40.7272942499999999
-53144 -87.8743917643793111 42.6105358298015773
-62313 -91.2254086642960687 40.3169311166429551
-49683 -85.9422563662913319 44.5301268310746394
-05442 -72.6943161687929376 44.7535218213935622
-18810 -76.5068060156564513 41.941703837878741
-42038 -88.0299109636997912 37.0356823047448813
-24208 -81.4113986428571508 37.3372374285714272
-72773 -93.8570430905855915 36.0164805850131557
-87535 -105.747393548690425 35.5811639384375908
-24129 -80.5940334271844279 37.1130680728155227
-68307 -96.137212488684554 40.7911301110325368
-41149 -83.0448716998834584 38.0512966864801783
-95814 -121.492301146341276 38.57981771202396
-41146 -82.9052277591339362 38.2757914357240523
-34625 -82.7428104999999903 27.9715190000000007
-71462 -93.7186638473411477 31.6556522538116951
-15437 -79.5901978459645392 39.7944289271180978
-70301 -90.8060740925214702 29.8086562602578447
-79711 -102.216716000000005 31.934700666666668
-25239 -81.842959738886222 38.8461222725940161
-07102 -74.1736032042586686 40.7356555985804221
-11739 -73.1598665605213654 40.7245300428305583
-75238 -96.7099289918769784 32.8761315324212262
-35460 -88.1550551564077125 32.6920518461150564
-54927 -88.6545910703517421 44.101616306532641
-22203 -77.1175579981295414 38.8738911627308497
-87624 -105.529877499999998 36.9765119166666665
-29081 -81.0365503429738681 33.0949956266432821
-52591 -92.2065075477826639 41.3284499435770201
-27023 -80.4301295723934686 36.0957917475281391
-33755 -82.7812416310087258 27.97961677102235
-14841 -76.8637424565358458 42.5155314668383326
-43414 -83.6122660000000053 41.4570085000000006
-36830 -85.4694738438600297 32.5801949276874936
-77570 -94.4251649999999927 33.479900333333326
-37204 -86.7805719664350335 36.1092974401041005
-01379 -72.3958295742045124 42.5458059757813913
-87041 -106.308701829604104 35.536842040447489
-62323 -90.7087644973753271 39.8110102073490779
-08001 -75.3561208755621834 39.5565856446776323
-11542 -73.6273529400283167 40.867264187350294
-57445 -98.1118688332438182 45.4569695024185947
-11576 -73.6475342840535632 40.7961692250116243
-92101 -117.161338005709183 32.7205815117744692
-66118 -94.6123286694214158 39.1062766570247859
-40940 -83.9457158117048721 36.625432659881298
-58735 -101.518830452701053 47.8282038440847543
-86251 -111.921636666666657 33.495472333333332
-21636 -75.802307007186954 39.0277811899384091
-15451 -79.8491403452855479 39.7441198452855744
-58718 -101.690171654524534 48.3449363520361572
-29814 -81.8989645000000053 33.5423159999999996
-54841 -91.7761910462428432 45.6074748554913256
-78473 -97.3969062500000007 27.7963555000000007
-07974 -74.4028289317916887 40.6987908293819984
-28450 -78.5221765388095605 34.339031882064873
-11970 -72.5738198896551694 40.9404849448275812
-81525 -108.901164881468148 39.2637990240674029
-52316 -92.0868226647522903 41.5355535786074057
-13241 -75.6443730000000158 42.9834567368420934
-01451 -71.5780617225666731 42.5013506584005327
-77072 -95.5916283671044198 29.6992039290277958
-71853 -93.997512283091055 33.591517387146105
-91015 -117.986385999999996 34.152648499999998
-29169 -81.0953075367757492 33.9950158683457602
-78076 -99.2233430803156153 26.9096495059386491
-36480 -87.5920883774321481 31.3362999988881938
-46133 -85.2941117720815782 39.5898910166769582
-05040 -72.2085193662703659 44.0643387347696418
-01223 -73.0829277911429074 42.2907217277078971
-65237 -92.77458055748086 38.7836202700760637
-95368 -121.086636492849138 37.7080431360469817
-31308 -81.4905704508192628 32.1866109009327559
-74010 -96.380192963771151 35.835048457216331
-11232 -74.0045154481566811 40.6547255092166111
-74501 -95.7576443605505858 34.9476813564489177
-15697 -79.5817978317504071 40.2378293536861094
-33916 -81.8432513521739082 26.6420325660535973
-23968 -78.5213566524950011 36.7235694452660013
-10607 -73.8107244188169602 41.0400905776101439
-65744 -92.8931539201140026 36.6166642610556536
-71825 -93.5604280564291031 33.8702246197964314
-92389 -116.211887152905263 35.8496427859327511
-04228 -70.1324369230769378 44.403716769230769
-94103 -122.412131251212259 37.7725448990744965
-95150 -121.970343999999997 37.3284795000000003
-17886 -76.8737991837749206 41.0182254387417373
-36091 -86.5208876342296094 32.7547621315242878
-24904 -76.118111666666664 39.6057463333333359
-67045 -96.3005565418864364 37.8224235892452825
-56479 -94.8072438661151295 46.3874585947043059
-28657 -81.9401784820508112 36.0399309378174806
-12961 -73.5416841332007323 44.0575189582505473
-55356 -93.5857315294584708 44.9892547567942955
-98007 -122.142849985247381 47.6117043101669637
-02111 -71.0608758780842464 42.3514133193033473
-06403 -73.0534804605570969 41.4370969541785215
-84723 -112.263064607645873 38.1711439195170854
-29519 -79.3551628384615952 34.029344899999991
-69167 -101.057041951682152 41.584465886850019
-27212 -79.2900234090373317 36.4600202099448012
-32025 -82.6140581719294573 30.1374969121065703
-16673 -78.3957796823097794 40.3179430373845946
-02345 -70.5965608333333137 41.9141085555555506
-13362 -75.5188190000000077 42.9917955882352913
-13333 -74.8194698389830251 42.830555245762703
-73456 -97.5905936514382262 34.1426646522842248
-39112 -89.7809866999999997 31.8951360500000014
-44493 -80.8991389666666549 40.8295119333333432
-18425 -75.0137055525097907 41.4180907799227995
-25502 -82.1016977053525352 38.6560828036542219
-98226 -122.444544440820351 48.7940853628181159
-50050 -94.5024511763363364 42.163874150586679
-13804 -75.3744312216494876 42.2261594484536005
-29682 -82.8381942238727902 34.8329982279124195
-07866 -74.5070008234502268 40.9266237265632213
-76068 -98.0863668260869446 32.8991108260869609
-95093 -120.896608375 36.5222528906249977
-17678 -76.5917479999999955 40.2690796666666699
-07879 -74.8059702033897764 40.9604643163841828
-94580 -122.131298003123419 37.67842618552163
-95997 -122.002916833333344 39.1581295000000011
-46229 -85.976352463458241 39.7928440400510794
-38257 -88.8731092922970873 36.4758849201091166
-31723 -84.8877131242937963 31.3466119378531083
-13860 -74.963361857142857 42.4457495119047721
-71957 -93.5631161457843774 34.5544307791887562
-62836 -88.810965890184093 38.0966075269938926
-05664 -72.6513493870967864 44.1709645000000037
-22427 -77.2758609193174806 38.0198819106097119
-58775 -101.899197762434738 47.6926332589144835
-18621 -76.1020262463630957 41.2557603175010144
-75813 -84.6800139285714124 41.2525887142857144
-21146 -76.559188566393658 39.0807466421217242
-84026 -109.861650301538489 40.2990120076922835
-27872 -77.2486758155667133 36.2008934187817175
-95132 -121.852858166229439 37.4041910884007649
-26617 -80.8293246789618252 38.4876094275956575
-58273 -97.7173566896131547 48.3018884004073428
-99929 -132.380200244835464 56.4698372364193446
-47460 -86.776425242617421 39.2860376608011421
-67078 -92.9828842499999979 38.4515263750000003
-33413 -80.1475148290058002 26.6623197985964673
-38740 -90.7783753145696153 34.0495074288079493
-10540 -73.725434945578229 41.337656353741508
-77450 -95.7468793117234611 29.7500021789881508
-89041 -115.994582228571488 36.1964755428571365
-47241 -85.9039445454545643 39.137891590909085
-14709 -78.0003238162817212 42.3305882086541629
-71405 -92.4096209426262192 31.4054925814141512
-69150 -101.55157411850054 40.8271729032648025
-02764 -71.1596697114509027 41.855959128565523
-76675 -96.811720666666659 31.4479460000000017
-74577 -94.849718820143849 34.6890122326139192
-32530 -87.034128194805163 30.5996211038961121
-83273 -105.487956571428569 43.7510784285714323
-01475 -72.0432767703612313 42.6748107275629636
-40407 -83.9335590000000167 37.393351999999993
-53092 -87.9507416090217475 43.2210559052887575
-08244 -74.6014252046295923 39.3197426756172845
-24435 -79.3012713941965046 37.8721954557836327
-26410 -79.825919371472267 39.4021972006157526
-14223 -78.8441902666459811 42.9722069855116828
-25320 -81.6325390820076677 38.528897380215831
-94547 -122.263489827681298 38.0070150836188319
-33156 -80.3053126545212592 25.6672895014145581
-78935 -96.4375545127386431 29.7145033333333188
-27873 -77.7761927567567994 35.6526573166023013
-34229 -82.4829735835106703 27.1922597290983354
-91006 -118.029402563399643 34.1385402508209452
-64726 -93.913033216528774 38.5250096322314093
-97908 -117.88374213657265 44.3453162632961835
-80029 -105.165312142857132 39.9604627142857183
-36466 -89.4682822500000015 30.4798342500000032
-06614 -73.1330682169038369 41.2229834016507368
-91734 -75.6883527500000071 39.3965040000000002
-34785 -82.0206723099778827 28.8555749662720373
-19040 -75.1064801172770586 40.17852490134878
-72581 -91.9787704581430035 35.5437297805175092
-80652 -104.301856446132746 40.0895303176795821
-34238 -82.4765150126437874 27.2398935224840137
-50206 -93.1905281038922624 42.2638577615132007
-68720 -97.9964708367952682 42.3387454421365135
-45620 -82.1424836013985527 38.9508002110063671
-18107 -75.3713082999999813 40.6445541000000006
-20008 -77.0599432370689925 38.9367340352011055
-61562 -89.5010428775510434 40.8809430816326511
-40517 -84.4878279526805329 37.9833267457534944
-70442 -90.350215894456241 30.693891944562921
-19403 -75.3837113619606072 40.1458168601009788
-12066 -74.2884455419501677 42.7759087203325947
-78064 -98.4637209185059135 28.9828362402881581
-66948 -97.8485103387979223 39.5679853096539205
-39828 -84.2176690242857973 30.8365439655237843
-60441 -88.0360984306998802 41.5886207494355986
-48838 -85.2792402060501615 43.1800477910565235
-30222 -84.7396658632350039 33.0558793960383142
-86935 -107.226191466666663 33.1959240666666631
-43981 -80.9950999230769355 40.1851769615384882
-78594 -97.7938728593529305 26.3438509873417495
-30240 -85.0917730980895897 33.0415389418268219
-37059 -85.904844478153251 35.9857704983512363
-02401 -71.0209874999999897 42.0801084999999944
-13814 -75.5304971052631657 42.6205936315789486
-40202 -85.7512209436620765 38.2524672018779128
-19130 -75.1723140895701079 39.9682732587579679
-86434 -113.485802980498363 35.5263264507042109
-62392 -89.6779889999999966 38.2113841999999977
-26818 -79.0203202335024883 39.0724870926395695
-72163 -86.1255796875000215 37.071087312500012
-13140 -76.6490895166714665 43.0493760928427633
-59457 -109.401462005897272 47.0653554704179911
-18214 -76.064875175327856 40.8065709858727814
-85643 -109.806865804105612 32.2441262596188096
-99756 -150.612589522875766 65.0140831568627249
-65609 -92.1483609090221449 36.5259149226686972
-49963 -88.6471364139942466 47.0676921224490172
-29694 -81.4295739499999911 36.3700457500000027
-78434 -97.3533860000000004 27.6713170000000019
-93664 -119.288386461011171 37.0892603493363282
-64083 -94.4606972296586775 38.8045260096936033
-73020 -97.2656482276827603 35.4605971351845497
-22304 -77.111209973703069 38.815001741693564
-32356 -83.4200018441064941 29.8843039125475123
-62501 -88.8085540860558922 39.9315431402389791
-36846 -90.944231000000002 33.9435140000000004
-84062 -111.741895015051782 40.3833773159206331
-39631 -91.1004419939035728 31.0801573949323746
-87279 -108.115809949999999 34.3378271499999954
-45157 -84.2367518922963541 38.9579037971505073
-98609 -122.864089499999992 46.0715444285714284
-71726 -93.0161361137037801 33.6730475419476249
-66936 -98.3240857441253411 39.9032587911227452
-79389 -105.846435999999997 31.2995449999999984
-56304 -94.0813132938648096 45.5336721908816529
-08215 -74.6021479730054722 39.5515346823329921
-75638 -94.7333416436457156 33.0229363071672424
-25905 -81.1817648571428521 37.6668534285714358
-70787 -91.4621971570247752 30.9635233595041441
-02751 -70.6932806428571467 41.7558779285714294
-03598 -71.6302509888909498 44.3777762656750809
-45207 -84.4699122741807003 39.1412452318145156
-30310 -84.4233988936606039 33.7260440923167408
-67487 -97.0630209256136141 39.183576689585891
-04027 -70.9141671502827506 43.3970623284592065
-75254 -96.7972945391782815 32.9459223277017443
-76364 -99.0137544923548205 34.1179827392966502
-27876 -77.4049154686091612 36.4828147443677153
-40972 -83.6162904042273283 37.25282181356134
-16743 -78.257034316068939 41.8098554897050079
-36869 -85.0644123890802746 32.4335566722115018
-72065 -92.3038529982171809 34.5323525143842645
-38454 -87.3464744631669134 35.7299914099829223
-63446 -92.0004861469328858 40.1551037275320795
-63820 -89.3545014644809044 36.8088252404371516
-73099 -97.7337387849830037 35.5048902328622589
-18326 -75.2668069444969774 41.1483340088301262
-02019 -71.4755912472484738 42.0713289682657887
-21048 -76.9124711744373428 39.5050571765283536
-43557 -84.4004144374565897 41.4895178054597409
-69043 -101.234962524372193 40.1606324918759157
-68147 -95.9562432556193414 41.1795162617894448
-05001 -72.3724355527151317 43.66443769803994
-40069 -85.2246943909701145 37.7136876952102611
-55736 -92.9246257570784309 46.9399248357465098
-58341 -99.839225691008977 47.74263798519587
-64505 -94.8364076754974263 39.8145738211188132
-74447 -95.9782763696455419 35.6385875070120832
-11940 -72.7516760397877391 40.8095481299734857
-92337 -117.472938221160845 34.0452257802274474
-49738 -84.6265675284812033 44.6776429397074679
-28758 -82.4970509285714115 35.3693455000000014
-83342 -113.387115075834174 42.2215287694641219
-95363 -121.164965656436138 37.4672646410183958
-19503 -75.5843566748465747 40.4060242719836822
-16833 -78.5545645509924526 40.9457504997753503
-91915 -116.952138581947665 32.635395307996788
-60089 -87.9661465436156647 42.1640018293925465
-48185 -83.3784356042166195 42.3377564315223083
-16920 -77.3072362948051932 41.9886589649350412
-54174 -88.3806709658431089 45.0470642977062496
-72838 -93.6739056587677936 34.8951993507109108
-22583 -77.4910504782608456 35.4503617826086952
-17730 -76.8772026875000023 41.1090480156249853
-37890 -83.2914464766371339 36.081669785685655
-58467 -99.3249333704040396 46.8716136374661048
-72843 -92.9605097686055899 35.4772717444760701
-27231 -79.1721078283047461 36.1992295766718684
-37072 -86.7331885561380744 36.3535140743173741
-63069 -90.7352789047867674 38.49080285089331
-83354 -114.329565088235285 43.6728635490196027
-36360 -85.6276664834590377 31.4509780812540605
-43148 -82.4971586434536022 39.8210577217578958
-22974 -78.2650792507518531 37.9684621063651377
-23505 -76.2830950774021659 36.912945590527805
-35052 -86.3541016136363595 33.3631573295454515
-68521 -96.7111074054511448 40.8587491429589988
-14884 -77.8853488983957476 42.4743359946523711
-57331 -98.1310316778883447 43.4814847339982293
-16057 -80.0536884318667887 41.0363389946875259
-25637 -82.0221514950494566 37.8428769554455755
-49258 -84.6597719583333514 42.0603378333333353
-23303 -75.5082433267789668 37.9013021825842529
-62046 -89.8490562743363341 38.887135946902653
-12504 -73.9080428985506899 42.0231334637681044
-25932 -81.3122464794069373 37.7584670724876759
-80204 -105.021354216094579 39.7347544200337097
-64724 -93.9878552476462943 38.153095829717607
-28018 -81.8069306980901274 35.4464386084359049
-23235 -77.5643638552906367 37.517326504921769
-61037 -89.7604878130841257 41.7890851401868986
-38006 -89.0890275597013783 35.6917548115671792
-78121 -98.1218815099763617 29.3364841437510719
-03308 -119.213764999999995 35.6019089999999991
-30108 -85.2567877085986368 33.531099158606068
-94939 -122.53624182686778 37.9364335502874965
-65212 -92.3236668695652298 38.937862434782609
-27707 -78.9419094422201226 35.9586401776149316
-75497 -95.57434048367206 32.9252910558781338
-49636 -85.9814830808572168 44.8853498675109748
-30807 -82.648046803921531 33.4526427352941198
-49129 -86.6929862336710499 41.8253686103603783
-63566 -92.9814718761221002 40.0598633770198091
-75806 -96.1445604375000045 31.3710912499999992
-71722 -93.1836852699275227 33.6998036829709946
-95833 -121.50534722142396 38.6167419574037396
-04478 -69.7912690061033629 45.6938257605634632
-66035 -95.2477185647145035 39.8675116225596469
-62640 -89.8143706600238261 39.437150013351939
-20850 -77.1806453697401196 39.0903792767170515
-48074 -82.5543532828721567 42.9539281007148404
-54241 -87.594462720819422 44.1907126265522336
-62854 -88.8235086956260744 38.771657913873355
-48417 -83.9293670529903579 43.2568944231642689
-12124 -73.7893521686274738 42.4437202764706143
-54548 -89.7968451739707945 45.8701709131885096
-81332 -108.051130583333418 37.6929515215054067
-97023 -122.295815796963467 45.2676565704468103
-25562 -82.1033847450980261 38.3362530784313833
-05356 -72.8638651811703966 42.9540139969993078
-28658 -81.2380782778051866 35.6453771095908394
-35057 -86.9479423507029594 34.1374806243968862
-15681 -79.4527986211626569 40.4953034395592368
-46219 -86.0459454670977379 39.7844203788079156
-06111 -72.7298084629941854 41.6860760703616364
-37757 -84.1615991402422026 36.3138589403175729
-22214 -77.0722904 38.8687293999999923
-00927 -66.0716577272192609 18.3891911704879867
-50259 -93.0884404583333236 42.2909555416666763
-68198 -95.9781263333333214 41.2556730000000016
-37626 -82.5338847999999956 36.0459579999999988
-36371 -85.5471817738853275 31.3129446735668573
-37328 -86.3707781401053296 35.0264672852138759
-93950 -121.922845005282724 36.6183069017804925
-63751 -90.1121584868421621 37.2737040614035067
-27406 -79.7698448081086013 36.0124038315537831
-54858 -92.4549057419552582 45.5200152995049905
-11239 -73.8770046587678024 40.6510271800947507
-76448 -98.7964289319458118 32.3960656771365549
-76874 -100.071346785923822 30.4744623401759434
-67850 -100.67389365454541 38.6272384670454301
-28613 -81.2137560455107206 35.7401512844163136
-56162 -94.6757436621848143 43.8384438235293956
-37372 -85.0797136666666773 35.4335728888888895
-28334 -78.5794218995136475 35.2875972957224064
-62294 -89.8851037101120056 38.718681712022466
-58566 -100.915583504488481 46.5929401418312139
-16859 -78.0118093505383712 41.0316534819903751
-29306 -81.9268259804361918 34.9077828423717946
-22114 -91.7074253333333331 46.633151666666663
-17360 -76.7504183304298522 39.8543989984002351
-24581 -78.8105950280898639 37.6438921011236118
-96863 -157.752405127272709 21.4421455454545473
-66608 -95.6690753530498341 39.0777528983363709
-02066 -70.7555755915770845 42.203332957156789
-50126 -93.2596534150296321 42.5136797944991258
-24957 -80.4032637922794322 37.8740491856617822
-92283 -114.633044813366354 32.7825605269801699
-43913 -80.6321127537814846 40.2660689075629961
-58331 -99.1048812378753894 48.6426793775982063
-56579 -96.2752454788584089 46.4750312246299586
-27572 -78.8817793366259394 36.2521754916194752
-05826 -72.3983326725933978 44.6423772178758185
-21501 -78.7918619166666758 39.6770666666666685
-16321 -79.397171139751606 41.5801646801242484
-29117 -80.8475899999999967 33.4974814999999992
-57631 -100.286470044160311 45.5737084671702704
-57058 -97.3917970987816375 43.7461028173734832
-17545 -76.4214007740375223 40.1720715188018076
-85627 -110.278650687116411 32.0086306711656263
-91874 -117.674930000000003 34.1254908888888906
-17724 -76.8267539384199409 41.6463216580931856
-18249 -76.1032245859717165 40.9910424523350869
-99687 -149.660814541710977 61.537071354010628
-28077 -81.2019361019107748 35.4044096592356539
-84101 -111.89964679800832 40.7552313655760585
-51040 -96.0775351049065449 42.0248306342309164
-41837 -82.7534671633398773 37.1299483789089351
-01298 -73.8941788214285822 44.569561607142866
-89154 -115.137472500000001 36.1075992499999998
-96113 -120.143136692098153 40.1416719700272324
-97499 -123.2509542253853 43.6101899894723957
-32720 -81.3447811711674973 29.0266331171554981
-39301 -88.6226832913194045 32.3143088379628551
-72760 -93.7166093212435101 35.8276956796200494
-61541 -89.2385395111111137 40.9796511333333129
-14856 -77.3697674583333423 42.3783163750000114
-47725 -87.5255128631095118 38.091685606034531
-47843 -87.1329819999999984 39.5213674999999967
-14712 -79.3709326347059942 42.1661470396102374
-61488 -90.3134755154303122 41.0266635116404501
-39703 -88.3483793333333267 33.4461619333333431
-98155 -122.299471167300823 47.7587449420840571
-71259 -91.8237965895038855 32.2898130183320831
-02662 -69.986727645454522 41.7432749613636105
-53544 -89.9079822886041171 42.8790536850191728
-32948 -80.6109116764876319 27.7760586694866198
-64112 -94.594806707668539 39.0368775846628324
-69038 -100.655704917282165 40.635218415066511
-28729 -82.6035946073661194 35.3188864564288849
-25564 -81.8803982948979581 38.248154891836748
-36764 -87.9892141188119439 32.0907508514851472
-08092 -74.2863588567913666 39.663994348425291
-25914 -81.1436871875000065 37.9336009999999959
-87325 -108.724224242857105 35.7302655657142623
-51015 -96.0794242619047765 42.3396007380952284
-03458 -71.9433198497121964 42.8784478050820042
-65034 -92.8207041499290852 38.5225587703914414
-67492 -96.9634241958224692 38.8093035822454695
-15743 -78.347002785714281 42.1508841428571372
-13693 -76.2540247837962681 44.0227819467592383
-29952 -78.9426443333333339 37.9394925000000001
-62694 -90.4558035105605143 39.6219875505603554
-15767 -78.981555348363699 40.9608441581400697
-24701 -81.223394757361703 37.2894263295206585
-18122 -75.7917714285714368 40.750555999999996
-87356 -98.16261066666668 34.7495806666666667
-91367 -118.62086121009844 34.176408939390619
-18957 -75.7648335172413852 41.1187444367815971
-15207 -79.9325776761809692 40.3980252295109494
-13068 -76.3491030062233165 42.4966155455075523
-45214 -84.5406658639434312 39.1214065356265337
-01572 -78.985036000000008 40.7126075000000043
-68331 -96.7106872821661767 40.4777090675894584
-04576 -69.6664182918804897 43.8190426054935642
-94576 -122.483612585227178 38.5541936519886406
-61433 -90.1393436500000149 40.5693944749999886
-04476 -68.7069060889087524 44.4722775931746668
-07758 -74.1061864140715016 40.429264377162653
-98521 -123.126871666666659 47.3131256666666715
-67056 -97.5194532548121771 38.0094930192484952
-97128 -123.229342332490404 45.2089709550199643
-61244 -90.4245377152114997 41.5112079341181257
-14757 -79.4920445493109185 42.2326894602334164
-93208 -118.603911054528751 36.1418797347505034
-78622 -97.7680142883211261 29.7614294781022011
-65830 -89.6507504444444407 36.1842483333333291
-67332 -95.2235597046263393 37.0494870355871839
-37885 -84.208193977236192 35.5521478060433367
-03780 -71.9861540982659278 44.0331285375722175
-28364 -79.3085140685880674 34.7243713553529787
-31567 -82.715391786137161 31.6197401563820506
-15712 -78.8575630000000132 40.7768270285714252
-85121 -111.902750978260883 33.1233691666666701
-35125 -86.3017222948552103 33.6138568132171969
-38673 -89.6150622792792149 34.2920554837837415
-63787 -90.1145517933426561 37.1149382330096671
-65557 -92.1342175420560636 37.5140029976635958
-99737 -145.633812881554263 64.0633661991701615
-76053 -97.1790662586975174 32.8191554752946146
-16938 -77.3297652376618601 41.5595481026881828
-92037 -117.254849230103204 32.8393477993584781
-37919 -84.002577383395959 35.9191638079383466
-65072 -92.7243933090132231 38.2572203133047637
-08850 -74.4393050654166046 40.4496440179167109
-11215 -73.9842766633858844 40.6674331286088986
-22305 -77.0658486152413786 38.835935821561371
-14735 -78.103509778837946 42.4619953935685643
-88128 -115.259147499999997 36.1874995000000013
-94104 -122.402106290540502 37.7917146621621498
-30246 -81.8371080000000006 30.7853509999999986
-65068 -92.5962673384161548 38.8265457629119624
-69735 -102.878171999999992 30.9150378000000003
-79930 -106.457210018456067 31.8040323886515992
-72654 -92.3760843589743814 36.357085000000005
-47337 -85.4382287065217554 39.8023527880434713
-66251 -94.6605221999999884 38.9156693777777818
-83125 -110.204137500000002 42.253815000000003
-72110 -92.7587190384618339 35.1622924858842083
-10921 -74.3601506413748581 41.3271708128615103
-45042 -84.3971455527840959 39.5360829918397769
-30001 -80.8313427142857108 24.8106533571428542
-62827 -88.0466985647175022 38.1656018305846914
-57103 -96.6909124067685894 43.5329621174054964
-23399 -75.6572135000000117 37.9293759999999978
-80023 -105.028568252502183 39.9671888505902189
-75462 -95.4855515851296417 33.646837569504271
-55955 -92.7389468778134756 44.0776218002411611
-19122 -75.1448409056952471 39.9775362015533204
-38756 -90.8915709537828178 33.4009378629312792
-16313 -79.1370927082184323 41.7477920117667622
-28672 -81.3231462732166648 36.4756280148048688
-93438 -120.492995499999992 34.6958747500000015
-81422 -108.570849096446779 38.2586321551043369
-49855 -87.3880275884751825 46.5202409602256211
-04954 -70.0883613493976156 44.8827494879517985
-00778 -65.9798276232925787 18.2462773634076392
-53597 -89.4523774065575736 43.1825447747014479
-86412 -113.891489505376327 35.3232297956989285
-63068 -91.2310310648883132 38.5566168535751075
-37189 -86.8295994401734248 36.2756859745927471
-67639 -99.3106403180328812 39.6553635770491724
-48661 -84.2171420896300305 44.2954406129456331
-79071 -99.2318255555555453 28.7314164444444415
-06896 -73.3967551132735281 41.3039683762164671
-19539 -75.6911020216207504 40.4880153654822905
-93101 -119.710651111111019 34.4193467239551083
-15935 -78.9610809876577662 40.2143245094976365
-53960 -89.2582182597864175 43.4518102147093828
-08023 -75.4897783063583176 39.6844685549133018
-29464 -79.8559538367988182 32.8190276382036927
-59102 -108.575297247667649 45.7794815885517323
-36723 -87.2894305714285252 32.0715073714285523
-45229 -84.4876730451075559 39.1514239434419764
-95917 -121.688276953967204 39.4155500950049387
-58324 -99.1946580232230133 48.4620329206026952
-23313 -75.9540638472222298 37.2075712361111144
-39109 -89.3560485476190394 32.6838775952381013
-15206 -79.9167541865092232 40.4684607445218418
-07836 -74.7081254747809567 40.8488664947550006
-97458 -124.081411048625355 43.0675572801895044
-06513 -72.8730904325183246 41.3179429806603764
-41009 -85.1309143947368341 38.6171748947368343
-47853 -87.0730863007518678 39.5372501203007758
-55971 -91.7444776156891351 43.8145604926233929
-61336 -89.244936740549818 41.1144757268041303
-99922 -132.825141275862052 55.2079796275862265
-90501 -118.31564830127482 33.8274575950819951
-88116 -103.680006410687625 33.9255505341707249
-78552 -97.7512825628117241 26.1858297877004809
-93225 -119.032257373587555 34.8182933708004398
-50562 -94.648316944476818 42.9534173565167166
-16210 -79.510844119470903 40.8981143661650748
-31046 -83.7763586046792312 33.0365504012521924
-61613 -89.5892859285714138 40.6942747142857186
-60604 -87.6284032232142636 41.8726468571428327
-54463 -89.2051015944529269 45.5016399387754333
-36109 -86.2429164626456526 32.3829615375351807
-54550 -90.2537965147479468 46.4132153948620996
-53202 -87.8997326774357646 43.0471589020605094
-65669 -93.2975747251171015 36.9157819541342533
-98225 -122.492509931476548 48.7475752987179831
-44657 -81.0941058993901436 40.7380049186559816
-17319 -76.7937286226056415 40.1562748748922971
-68952 -98.6694508604650906 40.0875660523255917
-25838 -80.9956618000000077 38.1957468142857195
-15030 -79.7818277399703817 40.582949600297205
-28056 -81.124824041977206 35.2206000257862897
-71960 -93.6995940576140498 34.4721756017914203
-43464 -82.9214627323353142 41.4081567688623835
-37110 -85.7836082771795816 35.6897975179720888
-14086 -78.6571654233077595 42.898056013536916
-25158 -82.0191061382979001 38.6626968085106384
-62332 -88.9805319999999966 41.1908619999999956
-83452 -111.158290359256711 43.8232422539069546
-62796 -89.1903858571428572 37.2543297142857099
-38352 -88.5339054366425273 35.5327171152841146
-59018 -110.598390314322032 45.8900927709126165
-29816 -81.8726410836653571 33.5011055258964134
-14590 -76.8320120142753069 43.2456696240018132
-29680 -82.288142528910285 34.7038075183970989
-68516 -96.6469208757874014 40.7457412601401785
-03862 -70.8267589653310523 42.9829719585901415
-84730 -111.991571947368286 38.7650760789473239
-31010 -83.7737455833333371 31.9364797499999931
-13137 -76.4467773749999964 43.1571848749999987
-40873 -83.4074159162350384 36.8267186366128314
-63363 -91.4664714206793263 38.869077789069415
-07801 -74.5509654795950212 40.8937646842678859
-94023 -122.118053625000002 37.3976242499999998
-88338 -105.377163234987023 33.5046379660574161
-50858 -94.4245062434738855 41.2070408214010087
-72450 -90.5362049798236228 36.0644086950711724
-89425 -117.895944393103406 41.5675505425287142
-58649 -102.914439731281831 46.1228345471451391
-46961 -86.1930213582089522 40.7650634029850778
-67861 -101.385287082212429 38.506716768310902
-49876 -87.9922734915014786 45.8020511798866607
-11224 -73.9922494556041102 40.5764788762736686
-06712 -72.9777001384708655 41.5026135927100839
-12604 -73.8921698426966174 41.6870496404494446
-26541 -80.0893621031193419 39.6775087389230592
-65074 -92.4542894069915917 38.4823024525547766
-94030 -122.403864253873707 37.5985115467856019
-41083 -84.9808306296470022 38.6810514787099677
-79854 -104.594987795454514 30.5879419068181768
-22732 -78.1923548488576898 38.3104709332161733
-61057 -89.3907196279069893 41.8315137441860472
-04043 -70.5518274528915299 43.3889348057833857
-10030 -73.9436737399999942 40.8183828000000091
-45730 -84.0038019166666601 39.6251893333333314
-17345 -76.7267548395576142 40.071021036117962
-60401 -87.6165748615147493 41.350229577816414
-72948 -94.4045373287341931 35.6896058339650892
-61706 -89.1197905000000077 40.5129104999999967
-82952 -109.969000333333327 42.9374056666666704
-33312 -80.1809232244409031 26.0920061932940364
-70516 -92.2958190680851658 30.3695088337153081
-15739 -79.1679494117646811 40.6772395721924909
-01503 -71.6360138851852355 42.3839001846152996
-99361 -118.125687770433373 46.2117281465885412
-46501 -86.2491771191104135 41.2230334937807967
-17834 -76.4713871384206954 40.7916843141082879
-76225 -97.6825304740939657 33.3632677110361442
-50466 -92.5460635667669322 43.3696130294060254
-33023 -80.2124906424071753 25.989018183994876
-36045 -86.3555042500000098 32.5061949999999982
-53181 -88.2518484204925784 42.5196826196826407
-54850 -90.7331946286920186 46.7890544219409037
-79528 -100.591881713950883 33.2209626934349913
-06488 -73.2242922560601812 41.4721596056017034
-76300 -99.2277683750000108 33.9747067500000028
-95126 -121.917501732133246 37.3272509453889185
-71452 -92.9709940736196359 31.6017766503067428
-87943 -107.673449209677386 33.3894648817204214
-33301 -80.1307139448818191 26.1213143083989863
-12416 -74.2925248142457804 42.1012696270949576
-77057 -95.4892482310438311 29.7470203169788867
-72611 -93.3115081595631892 36.2758125733239964
-08804 -75.0935137553112213 40.6427594533383356
-54149 -88.4977179542391212 45.2154421519002554
-78416 -97.4347652253445631 27.7530062987805586
-72386 -90.3496695425014167 35.4625182984855343
-33187 -80.4692201042852986 25.5996392442169309
-79560 -100.197060502358497 32.6884334999999879
-96091 -122.726878993126377 40.9860856878408271
-49861 -88.1302919900630286 46.5368591323220357
-33329 -80.3249022500000081 26.1004359999999984
-38585 -85.4378697560384666 35.705928602256165
-04344 -69.8034309000297242 44.2552106947493442
-16727 -78.5398295059665799 41.9840026300716005
-84121 -111.809004430043302 40.6255554243681658
-38635 -89.484898612551774 34.7764586253816717
-80610 -104.714244868243199 40.5993783921989859
-55114 -93.1977397440904127 44.9667080719424845
-14760 -78.4204997897984128 42.0783391106164544
-98372 -122.268092552023234 47.2040614463509485
-70571 -92.086738249999982 30.5464574000000013
-89178 -115.278031040387376 36.0121608595853004
-86024 -111.143129380836115 34.6406411425083505
-92036 -116.559977021875326 33.0379186568672196
-87311 -108.529378112656616 35.5844653124710106
-50049 -93.3035749008166846 41.0381797695412729
-79079 -100.278047384035247 35.2440988904656862
-86535 -109.84377389473687 36.8472653157894712
-81658 -106.729811625000025 39.5122119166666508
-79009 -102.757889287258038 34.4732453691936414
-80805 -102.436306786692711 39.337266985322934
-91980 -116.630071170839429 32.5905639837997185
-27882 -78.1275829585219554 35.9453478552639538
-14512 -77.3926334717793054 42.6451654005458707
-53579 -88.8433244538259146 43.3084789050131533
-65692 -91.7156229202160773 36.5552774220156422
-98444 -122.448169976663536 47.1523529903207645
-80476 -105.811471793969858 39.718121569095473
-34984 -80.3423492149013043 27.2648893580665934
-74058 -96.7781573415330314 36.3366178199643812
-30018 -83.8000724411764395 33.7167542647058838
-46998 -86.3480718214285758 40.5707647857142817
-63065 -90.4822612499999934 38.2488278750000035
-13437 -75.8102767955843859 43.5595108123334214
-14551 -77.0486179147097801 43.2182563218110758
-76208 -97.060868530159965 33.1961844050061146
-71326 -91.5786749175674402 31.7569337804054257
-72301 -90.1809085487288655 35.1484752305670014
-28552 -76.5812271752432849 35.3073653310152977
-75644 -94.995169741957838 32.7719666405705112
-97118 -123.906297867729862 45.5669124756097261
-13408 -75.6613474807469117 42.918321051925389
-66959 -97.5433142999999205 39.9361802789473828
-58267 -97.608732607657231 47.7615124770291359
-72438 -90.2409491113612887 35.9440421680077549
-03604 -72.3903150000000153 43.1272731948051913
-61013 -89.6356734908424642 42.3742523772893804
-74869 -96.7699909035769252 35.589103860031102
-52149 -91.6742737499999976 43.4554303088235159
-13155 -75.7757343908256331 42.6575201785931597
-15832 -78.192428134783782 41.3753944054817921
-26729 -78.7275579999999877 39.1849915000000024
-55710 -92.6740771429646344 47.6515153801094797
-66611 -95.6981824426076315 39.0141852987717854
-88246 -103.406445916666655 35.3706812500000112
-31624 -82.7355035814779143 31.3153003872216757
-12989 -74.0548068126853991 44.5042324543569663
-86002 -111.977996615384626 35.2463231538461557
-73159 -97.5571761480045865 35.3862531754753107
-35091 -86.7921475338809785 33.7758676627309242
-08904 -74.4244379865880603 40.5003619093346856
-08753 -74.1584358502199734 39.980261646649808
-77844 -96.3743194999999986 30.6619165000000002
-58385 -99.6654754075122185 48.4999161509567998
-95470 -123.216527354327255 39.2925481073316618
-87192 -106.516063333333321 35.0996680000000012
-08556 -74.9848971326530886 40.4304667448979558
-19104 -75.2009031668862917 39.961108608695632
-63935 -90.8201670642704642 36.6279419509595172
-46958 -86.1163224044117612 40.8225988676470521
-72357 -98.1910070000000132 34.0687245000000019
-76484 -98.2767700486457016 32.6907502841348645
-92322 -117.325438302266079 34.255165169730617
-64139 -94.4087219637979445 38.9608267739071294
-11209 -74.0306178120162741 40.6241737164314927
-83705 -116.224222589862492 43.5822061924264545
-53941 -90.1403719753266444 43.5518641843251402
-37643 -82.1810088219371693 36.3537586559738344
-54649 -90.3806922222222227 43.9599463333333489
-55411 -93.2983865467518712 44.998461583552519
-00775 -65.2886049017633212 18.3028177254407929
-75962 -94.5906846304347226 31.6010467246376763
-63302 -90.3437508333333312 38.9258998333333253
-29178 -81.5842178238625593 34.4796986076150631
-04284 -70.0578463499620483 44.3500159389719002
-95441 -122.918575594109114 38.7239278394909263
-62440 -88.2635874077216016 39.3962840657615558
-65635 -93.7026439551357129 37.5098213978748305
-18616 -76.6291016834410073 41.5274413007429004
-68040 -96.7375876543951279 41.2734807678436937
-27964 -75.8000584902997758 36.0871276084656074
-26639 -80.7975242857142888 38.575837857142858
-56431 -93.6818744424242453 46.4927978336246284
-62951 -88.9266918260506287 37.8209679802330072
-93529 -119.093146133616898 37.7728873293617013
-33966 -81.8358109946899788 26.5745909287311406
-83178 -114.937283000000008 44.2159674999999979
-48118 -84.0361848023960505 42.3226162104419146
-73528 -98.6620151068182309 34.4284458772727646
-73089 -97.7552560533667929 35.2776988440897199
-87210 -106.782940800000006 35.0022577999999953
-20186 -77.8293773448486235 38.7049298382603979
-49705 -84.4570860554710521 45.3461978837385544
-55123 -93.1332710078026054 44.8070215299089654
-57022 -96.7177039468199951 43.8323437731072332
-21005 -76.1361192877030817 39.4874365537509462
-17512 -76.481689674028587 40.0443746294200906
-27889 -77.0309295225221007 35.5607431469477646
-86011 -111.655112770642248 35.1863230550458823
-76117 -97.2703098549414165 32.8084619031053109
-06118 -72.604333246263991 41.7466362826373754
-50034 -93.6413361440674663 42.4997167063809158
-69028 -100.036381564162468 40.6827514955670466
-21090 -76.6605080595990813 39.2090493944375567
-45693 -83.5321452576243644 38.8047586956185455
-50212 -94.0461343854031071 42.033827593469816
-16689 -78.0865920813307213 40.1010784722734641
-68372 -96.6194385289492885 40.6197220207291423
-87364 -108.7197125 36.1394210555555588
-55974 -91.6388322606909185 43.5778617842897447
-32233 -81.4121617480490727 30.3468391346289934
-35959 -85.6073010283674307 34.2398330091221794
-99705 -147.372519347995251 64.7812019167526643
-49453 -86.1831315881201618 42.6626159957572284
-56147 -96.0416708220857913 43.7556116574642076
-75149 -96.6071192213860286 32.7655949172367329
-23180 -76.6324694567900622 37.707572040123452
-33454 -80.1375323333333398 26.5894226666666675
-99114 -117.81583014813674 48.6025426813720642
-94578 -122.124865477059373 37.7037534726406705
-66617 -95.6389876168773014 39.130273393922792
-08833 -74.8222405788001339 40.6522745943210353
-78412 -97.3541511861845379 27.7090155605006885
-70661 -93.6714135279871414 30.3492929355155709
-45750 -81.4398297535437479 39.430019468970869
-55709 -93.3849799222379033 47.3951752231365759
-25306 -81.5223153205204909 38.3109986501085018
-10706 -73.8731236868328125 40.9897801400841146
-49837 -87.0603095717453215 45.8592245002220054
-02155 -71.1092545026294118 42.4212266484135228
-47630 -87.388506350577245 37.9676968902831078
-74035 -96.373891166548745 36.4048705366831911
-99760 -149.040920761038848 64.5498421714285939
-76367 -98.6787034482102143 33.9470249848746377
-15868 -78.4653776244078074 41.2849510909982413
-78945 -96.8862291613155548 29.9202613071599046
-39309 -88.609332474999988 32.5519428250000118
-57928 -112.419576666666671 46.558817833333336
-88215 -104.773055857142865 32.7126098928571452
-95961 -121.556016365965874 39.0577009354177349
-48401 -82.6329023567347178 43.3578588326529939
-37351 -85.2637343095238407 35.104323129251739
-88357 -106.046589999999995 33.0385343999999961
-63104 -90.2158929124833691 38.6125597873570854
-30912 -81.9890751176470474 33.4703476470588228
-50002 -94.6471352201438094 41.4990277422404716
-31719 -84.2703019208931323 32.085702962941042
-79407 -101.99689052273061 33.5596497775029192
-48612 -84.4103515739233501 43.8733186541794637
-98942 -120.565892835027356 46.7026882913035593
-34347 -85.5977304285714098 35.0567302857142877
-08050 -74.2638635198729133 39.711069046814238
-05748 -72.8812624043244597 43.9258277778377604
-98023 -122.363221226757901 47.3085400182366129
-49877 -87.7849510000000066 46.1044839999999994
-22930 -78.9683656923076853 38.0763657307692327
-66759 -95.9375064500000008 37.5685760000000073
-21861 -75.720445251604616 38.5375683465982135
-39038 -90.4749804264318129 33.1760519298090628
-63942 -91.0169778166667101 36.5565574333333174
-55847 -91.5537499999999937 43.9597706666666639
-95562 -124.105992289934463 40.4942576805251591
-06525 -73.0149053293894639 41.3528431139373183
-51533 -95.3675436152345384 41.039103240625046
-04686 -67.6532174202899625 44.935624499999939
-08348 -74.9573866018518657 39.3087855231481242
-57477 -98.1943102158673753 45.0461487905904718
-95651 -120.920569924010408 38.8112645957814593
-66743 -94.8690826326142655 37.5049563717778156
-63774 -89.7723130701754428 37.0958204385964905
-57576 -100.282135866261342 43.8435289817629297
-53931 -88.8677370161290128 43.7421116532258125
-59828 -114.073425003248943 46.3194081556087554
-54767 -92.2151710000000833 44.8676180780984808
-33029 -80.3983279316673247 26.0022000334952743
-41605 -82.6273449927095811 37.5541002065613156
-73444 -97.370301685975619 34.4799390792682914
-74839 -96.0496012273475941 35.2532903031301572
-85337 -112.764275973941309 32.9693819486970909
-11779 -73.1130731416394894 40.8204219908040997
-80203 -104.982563157875433 39.7315207451124337
-97820 -119.05427901134172 44.2815096408318496
-32806 -81.3601147178189592 28.5136580289060539
-57255 -96.9336851350648772 45.8579519974025942
-57053 -97.1409440237978998 43.4089851542222505
-02631 -70.0737843002391969 41.7495910108723081
-29406 -80.0351330496392279 32.9325992105536614
-57571 -99.076981254901952 43.1033215098039335
-78836 -99.6134395465116427 28.3482928255814137
-01151 -72.5063451564405739 42.1525957728739371
-68309 -96.5726983706896647 40.0471421465517139
-12502 -73.6530898595767241 42.0753273959878626
-62584 -88.701257499999997 38.7232863999999992
-59710 -112.089588788959233 45.2346815388155008
-35050 -86.7295546666666723 33.2048786666666587
-61833 -87.6447952877292522 40.098042241889992
-15857 -78.5452149629885099 41.436361843423974
-28611 -81.7281143988793133 36.0082629717422122
-84079 -109.39889226666665 40.4743063333333311
-72722 -94.46343857541234 36.3360144390411222
-01224 -73.1973723804878347 42.5070259268292858
-82723 -104.389125989443386 44.0545137888675669
-54810 -92.3989727379860568 45.4612926338673873
-37891 -83.1381228728110102 36.2783151585040571
-12638 -73.9084436666666704 41.7524183999999963
-10974 -74.1901068797118199 41.1592554711751646
-08353 -75.2994107362636811 39.4589031501831329
-28733 -83.7742611472392014 35.4281064723926349
-33498 -80.2165173815102435 26.3913373169226553
-29488 -80.6627707281141824 32.9115450673516392
-55317 -93.5485097956672149 44.8630380676780334
-33871 -81.5152929999999856 27.5210829655172411
-14135 -79.2199679729730235 42.4980667432432426
-28213 -80.7352992275909713 35.2856410225155628
-95644 -119.648621529411756 37.3114347647058864
-49838 -85.7088047692307811 46.0975436923076956
-97920 -117.723223666666712 44.000797374485586
-16242 -79.3580681202229243 41.0226023570484628
-39071 -90.3100437870306365 32.5398911052900814
-99703 -147.662096669609127 64.8350657490542375
-02125 -71.0624199554778784 42.3156350506327925
-79770 -103.902667792207779 31.8887249350649427
-27009 -80.0783174636606532 36.2298551750222728
-22443 -76.9873201085696905 38.2125117037608675
-53596 -89.2634231666666693 43.1928386666666668
-13202 -76.1504530094548642 43.0440903542825168
-92631 -117.688342500000005 33.6318800000000024
-04644 -68.2525829999999871 44.4141148000000072
-68402 -96.8458111988072261 40.9044015417494933
-05055 -72.3056130194381552 43.7468242303719492
-25121 -81.9017599882854199 37.9306675804046947
-46050 -86.362229414862739 40.1976874269135465
-41547 -82.094412370395716 37.5405993799454052
-78626 -97.6341013834665716 30.6506260293655259
-42059 -117.103572 33.3621449999999982
-05751 -72.7880182180919633 43.6533857760109072
-27214 -79.7067067880205826 36.2048998700614746
-79025 -102.208324985294126 34.9248478235294186
-67012 -96.5323558917525872 37.6608625309278295
-31827 -84.5468161818665465 32.6815354137469285
-52242 -91.5472692708332687 41.6593664427083397
-69142 -100.297140349397637 41.9688989759036417
-58579 -100.789926216805426 47.2301607759262794
-46071 -86.6027015404649916 40.1205698950710499
-65689 -92.0872041781239403 37.1607053822182039
-34233 -82.4732688848340985 27.282922951436209
-92123 -117.137376108831475 32.8031813628082674
-75764 -95.1652951609194702 31.9035242471264588
-30313 -84.3973039639888754 33.7606525955678194
-63830 -89.6725496369506772 36.1689469496124332
-73852 -99.1988513425414595 36.4453508342541497
-12784 -74.6241698832487401 41.6723126802030563
-27540 -78.8392497257949145 35.6346352738314849
-36738 -87.6130429019867591 32.4301338874172203
-54437 -90.5996121537132524 44.7657464110535628
-43106 -83.4194849185318787 39.6395632452999891
-79741 -102.602694949238639 31.9932551218273851
-32839 -81.4047400473305629 28.4880874358054115
-72584 -91.8675780401459292 36.1401345109489256
-61743 -88.7872978758991422 40.8712374460432102
-59402 -111.189774333333332 47.5147586666666726
-79366 -101.682855208820769 33.5321119531952476
-79508 -99.82379857641304 32.2795733377529928
-55388 -93.8474382476724713 44.9539553489933539
-17022 -76.6111768375822777 40.159972269454677
-72324 -90.7492743066310652 35.3896242921308328
-27925 -76.2447317880394735 35.8959551350924713
-57541 -99.9008224208144213 43.5465352036198823
-40258 -85.8651391703687352 38.1445288631783441
-39737 -89.3282317668268462 33.6601503413461529
-82052 -105.353183768392384 41.1231365395095096
-19721 -75.6086791818181752 39.6831009090909035
-64081 -94.4099058021768514 38.9091148178859143
-32792 -81.3007411211368378 28.6094308964771997
-47640 -87.482912272038277 38.4756933925009363
-68318 -96.6656442466870232 40.1465299633027115
-54763 -91.9085980762852017 45.2148822537313393
-31519 -82.8814558016462115 31.6576563603693479
-70535 -92.4167431165976581 30.4830643555566532
-55124 -93.2004110015152065 44.7441660201597031
-49094 -85.1309071589921729 42.0563640738487976
-96818 -157.924340636658854 21.3502779573794754
-16258 -79.2752806972168713 41.2212874088595314
-26838 -79.083690121951193 38.8269994634146229
-45673 -82.8136146275071212 39.202955661891103
-22842 -78.7166865206344255 38.7840936043932061
-66956 -98.2113572448718202 39.7889705782050598
-38917 -89.9626689812096743 33.559406700690829
-49873 -87.5260208589743485 45.9463142692307613
-24438 -79.822594590909091 37.7554153863636373
-28815 -82.2923572727272727 35.648178999999999
-35610 -87.2424268443739095 34.9502577640893506
-29138 -81.7602412753424659 34.0340975261989769
-60918 -88.0256460378787011 40.5994311076554553
-68929 -99.0412576547618784 40.1076360833333254
-31215 -83.5297053999999974 32.7220858000000021
-77876 -95.8540979956140404 30.6327769692982415
-48312 -83.0024741549865013 42.559525235144271
-24175 -79.8984992226357917 37.4246328211462469
-95387 -121.256692840048771 37.5326640915750858
-75477 -95.7425451139534971 33.5445196372092909
-23703 -76.3828717007219353 36.8661839519500418
-41219 -82.9036063898151383 37.9245870330779837
-39330 -88.8396302862899034 32.2035187253320458
-75242 -96.8028110000000055 32.7790073333333396
-32650 -81.9359710000000092 29.7793344285714277
-32326 -84.3679506634146463 30.1810054926829245
-28553 -76.5171186583333309 34.7274172020833092
-17801 -76.7568942213924714 40.8454949552585234
-60130 -87.8102433669696012 41.871669614545489
-99841 -135.237631673913086 57.7859730000000198
-14889 -76.5823484436571533 42.2154844601889181
-98675 -122.421246599098794 45.8593722319632633
-15784 -79.1329344606741643 41.0271698932584457
-79544 -99.8534997055554641 33.3119631477777531
-04992 -70.1555063893805482 44.6617313716814124
-77395 -94.9258853333333263 29.4783309999999972
-43319 -83.5780476389856091 40.303434095972186
-89703 -119.78800992936651 39.1723626814723644
-13205 -76.1444448114855703 43.0079748567414697
-13402 -75.5025481532614009 42.9027739415766405
-87530 -106.189122357945422 36.3225057736757933
-43234 -82.9413935000000038 40.0867915000000039
-86529 -110.849233666666649 31.9610239999999983
-12570 -73.6797202351639982 41.6155844740140921
-15687 -79.3310107757268952 40.1402310630170831
-27301 -79.6678739686248463 36.1059948464064959
-15670 -79.4390590385824851 40.4071742224760015
-50481 -92.8914875806451761 43.4425909677419355
-40442 -84.7295665800713209 37.348095525869148
-74764 -95.1035680610412726 34.0245688456014292
-23836 -77.3477375634387556 37.3448995944664048
-26547 -79.8034706267040121 39.5088871558533299
-27249 -79.5754268618755844 36.1375063201279403
-37075 -86.605408573167324 36.3198713089350562
-56257 -96.4114641656276063 44.9849035761353306
-47654 -87.3902089599999954 38.2547006000000067
-56120 -94.7991935493458584 43.9675995969084425
-21921 -75.8551598980590285 39.6268285928036903
-89826 -115.431251774999993 41.876881449999992
-95571 -123.91526821330288 40.3199965665137299
-47558 -87.0430937590469966 38.6626130691380681
-63780 -89.5200292705291076 37.2019333575166016
-14903 -76.8651437529686063 42.1257236491269609
-17110 -76.8757773985298343 40.3145344259648226
-98310 -122.625486512538643 47.5914856044329966
-43078 -83.7677795770419635 40.1090823686453319
-72802 -93.1011646230256815 35.3107582848414125
-55323 -93.7406720000000035 45.0821109999999976
-77879 -96.5566748885934629 30.3699815212076274
-48313 -82.9967007369018575 42.6013083527903689
-39470 -89.5667471579968861 30.8142005196604956
-41821 -83.0047535087929589 37.087612533573207
-58042 -96.9184138144221805 47.0031445683988025
-21528 -78.9022842631578953 39.6532963157894685
-89447 -119.155382760068363 38.985839193724857
-86315 -112.311463898726046 34.6789603249836489
-37391 -84.3533893504700814 35.093755200537295
-83860 -116.539612170947848 48.2058031449950661
-72472 -90.5268167206523202 35.6464364450193685
-30580 -83.4386240903614436 34.6726268855421722
-08098 -75.3299608327068029 39.6410403750000953
-85210 -111.838725706006926 33.3880377493354175
-49652 -85.7731085000000064 43.866849000000002
-95258 -121.309205687913831 38.1573535943708961
-05731 -73.3240094668050375 43.7183250228215883
-93453 -120.34913956805697 35.353407666896139
-55347 -93.4606492681727161 44.8348423549302879
-18643 -75.8237787808285333 41.3492235385202278
-56652 -95.2355805683297945 47.7088236811280098
-03456 -72.2063567733990936 43.1368487850985787
-54630 -91.356121711693504 44.0841500473790617
-56243 -94.6792929192507984 45.1613986361159192
-67740 -100.415846796694268 39.3571709892561472
-67583 -98.3831472341819051 37.8132785696955054
-55783 -92.8147459407089315 46.3829047885482737
-22603 -78.2056125737443608 39.2713724050704229
-25565 -81.9392497502971935 38.12568430915573
-45302 -84.2054869732191804 40.3995480125871822
-61234 -89.9231441852091393 41.4142755353697893
-75785 -95.1669147287468462 31.7921049302339398
-25862 -81.0636585744680787 38.0808563404255267
-99460 -110.501458499999998 47.9359704999999963
-27235 -80.0058899330852284 36.0971141548062064
-98761 -122.198645500000012 45.6031305833333249
-01452 -72.0003001562021723 42.485517212098074
-55312 -94.3433614234998856 44.7201906414999613
-76636 -97.2817952872082259 32.1703854223652073
-24301 -80.7628089770560962 37.0562289726612519
-40508 -84.4984391141979501 38.0500021579161185
-63563 -92.0412178134328798 40.2759257835820819
-53586 -90.2353811432535196 42.5715560701133597
-61072 -89.0852964602707544 42.4499131815718798
-17020 -77.0411534583708999 40.4134514099191549
-03440 -71.961871938022 43.0580097303708129
-73537 -99.6588140501731061 34.4798231885812854
-18629 -76.122674552990091 41.5494736230128652
-49880 -87.216198341297158 46.0744505882718371
-72103 -92.381531551336721 34.5939898954545129
-49448 -86.0851965870544262 43.0841576526012915
-97375 -122.63569012981938 45.009354431325292
-76933 -100.296316531099095 31.8499739384057463
-06357 -72.2115284952214722 41.3227702022153736
-62692 -89.9348417350936842 39.579842386428183
-65334 -93.2415197049032258 38.8231310071974463
-95837 -121.597495682269653 38.6842807361702228
-57219 -97.764833221690651 45.3134979282297081
-38351 -88.4085899932094605 35.6558921231979937
-91943 -116.197549999999993 32.6127073333333328
-93599 -117.736374450980378 34.5619446176470504
-41232 -82.7500526967431398 37.9244508163373553
-63549 -92.5170968308663646 40.0206591142926982
-92266 -114.757830942065524 33.3741880277078309
-14516 -76.9172136383047587 43.2008698747978315
-97078 -122.875954275525515 45.482169562187245
-62802 -89.0860476000000006 38.5396543000000023
-62091 -89.6047625238093985 39.0564367567287292
-59648 -112.205226686130402 47.0611571332934346
-17347 -76.6902275955184365 40.0562118055157086
-66052 -95.0394482300776247 39.0115734478952731
-41046 -84.7998962408742472 38.7180480467332302
-96751 -159.366996730337121 22.0861469550561829
-99632 -163.734998267441824 62.0870018372093071
-36786 -87.5107278775113855 32.4492519196370921
-67342 -95.3567841452991303 37.0543836818613599
-15479 -79.7141289007424376 40.1516836971367042
-32689 -83.1377795000000077 29.3347671249999991
-95321 -120.158607102008219 37.8421253201992158
-13809 -75.3953601250396446 42.4052755232667806
-08562 -74.5920947624462372 40.0671653824713871
-94064 -122.238655499999993 37.5357389999999995
-40964 -83.3309048434782511 36.7847781304347805
-60639 -87.7553561110442359 41.9208170406796512
-28707 -83.0823727583480149 35.417993685413002
-53148 -88.3576938666666791 42.6497372666666621
-61567 -89.9030401033164281 40.3613485012755433
-29419 -80.0218259999999901 32.8595937142857153
-13290 -76.171053999999998 43.0683618999999993
-99551 -161.429149200000012 60.9081600000000094
-12850 -73.9755521247989378 43.0973804104803619
-29218 -80.5195530000000019 34.133050499999996
-12089 -73.3485259767441704 42.8610240697674385
-78374 -97.3290984920808313 27.8876281454578745
-12758 -74.7925386604606643 41.9098774755139516
-77414 -95.9033282770283506 28.9380254361332092
-44137 -81.5597878851062887 41.4114976419453029
-35128 -86.311046736065947 33.5523729243226185
-56082 -93.9842125730984748 44.3331621532100755
-63140 -90.3239913165888453 38.7394083200935242
-63784 -89.6869957660818642 36.9916526725146184
-55431 -93.3128301555619828 44.8293787100230645
-77069 -95.5241672441026708 29.9859606564646093
-98550 -123.930889799538221 47.0448448514482536
-61462 -90.6439149500080106 40.9194658769796717
-21009 -76.2994328790852165 39.472818939497067
-16373 -79.6967496014791692 41.2021263288427022
-72451 -90.5208264999999983 36.0765744999999995
-94054 -122.250773500000008 37.5240964999999989
-60407 -88.259497050174275 41.2324781637631332
-11223 -73.9729072713692801 40.5981150149377257
-66554 -96.7853412733978331 39.47905586198425
-97358 -122.562980424225543 44.7797757127740113
-75051 -97.0041334404871947 32.72698039196937
-49004 -85.566116846648967 42.3367617675402812
-36868 -85.0201647499999922 32.439831875000003
-32169 -80.8868181497453804 29.0161279534805914
-62006 -90.657236422077915 39.025223392857157
-27566 -106.096405000000004 36.069650750000001
-60453 -87.7526921230304566 41.7140572480530238
-74941 -94.8630127213114491 35.2696931092895696
-57423 -98.6741925999999978 43.3151665999999977
-10466 -73.8465331777873359 40.8915525733964884
-45716 -82.1801866374999435 39.4612082520833454
-19057 -74.8615962160238126 40.1435757649852007
-20617 -76.8457853085031388 38.5444481152495086
-80639 -104.698146799999989 40.4067944399999988
-28409 -77.8721631131174092 34.1595647430806864
-35768 -86.0769388512440656 34.7181792452446984
-29414 -80.0659578961241607 32.825995952075921
-29082 -80.9364567341773409 33.0316352675489426
-32746 -81.3479947839405639 28.7613591236898962
-62916 -89.5666937041147122 37.9291024111690547
-57550 -102.002728500000003 43.7193719999999999
-64741 -94.5618693493976679 37.8247698373493648
-43457 -83.4291545473681992 41.268107033436479
-43071 -82.3530355237106306 40.1830494232817728
-41835 -82.6722385099832309 37.2118640873544351
-71001 -92.8970357903683777 32.5907286915438945
-74962 -94.9569786864549314 35.5575914009197689
-17567 -76.1224744705882301 40.2147347058823499
-84003 -111.795963499941351 40.4064642433042565
-47807 -87.3999514952460856 39.4712267335651532
-24136 -80.6036015063185118 37.3236652180512607
-94626 -122.305093666666622 37.8180545952381024
-24946 -80.2528061639703338 38.1064187752514414
-71802 -93.5742772906976796 33.7544393953488324
-21865 -75.8448350805300038 38.3016550224261181
-57072 -97.1395018851028738 42.9501028019017852
-16877 -78.0898413890628689 40.7261700703503848
-62386 -88.5378455000000031 38.3595600000000019
-27946 -76.6159535073756643 36.3495579013521706
-18334 -75.426374087812448 41.0800443130536621
-97462 -123.37551833750193 43.4831923488095313
-43434 -83.4447986000000128 41.6939416800000089
-65216 -92.3237632499999847 38.9564131249999974
-18216 -75.9193832670025159 40.9312313274559259
-56025 -93.9048862062938383 43.7563118331669187
-52248 -91.9234860366729407 41.3472831474887812
-71740 -93.1808555738021767 33.0827247667453719
-83209 -112.425453184210497 42.8596375263157867
-60613 -87.6619691676413026 41.9536309392927009
-93240 -118.44032691116935 35.6243384317841105
-48472 -82.9595396284257873 43.5102968980241798
-55920 -92.6295519054858403 44.0234694656684837
-76861 -100.203196555555834 31.5860893006906203
-50277 -94.3523068204879962 41.773039139512214
-55987 -91.6423025524729553 44.0202043810753736
-64788 -94.003009206829276 38.4447256502438535
-60950 -87.8592517619481299 41.2507497816122068
-57532 -100.481597825195138 44.4053422177736081
-96104 -120.157215346797997 41.5116677083743397
-67110 -97.2367009258320394 37.4789388024601209
-19054 -74.8233466213578851 40.1693112679493467
-08242 -74.8780181708470849 39.0173448712730746
-10532 -73.79717754359244 41.1019423566176627
-46041 -86.5023940505304552 40.2910178249359987
-29101 -80.2446998343741171 34.419671053999167
-99155 -118.973361588120682 48.1708714079844569
-26674 -81.2225592727272669 38.1797720454545413
-38954 -90.2033356744445598 33.4126370966666713
-75429 -95.9392274285714137 33.1852092857142864
-86427 -114.590353126984112 35.0055137301587251
-48721 -83.327207218446631 44.8045820995146045
-56517 -96.5168000314961034 47.5494862244094421
-11580 -73.7036988581248096 40.6754960338190088
-26719 -78.7783726860572671 39.503703879963048
-93722 -119.87826954064721 36.8068790470195069
-65764 -92.9640642453543222 37.8143057869924775
-68316 -97.6108339497607744 41.0118045023923372
-21023 -76.7264528461538333 39.5341846153846106
-63627 -90.2694188262620116 38.0341207073885528
-62078 -90.4836874242424329 39.4798917575757571
-08034 -75.0004145695459954 39.9070315449348172
-23056 -76.3709785356511901 37.4179265397760545
-64751 -93.7066434000000044 38.5606429999999918
-50716 -111.42071528571428 45.2590052380952415
-28789 -83.3248329642409544 35.4111032280499742
-07110 -74.1577264782399794 40.8196714882081366
-49884 -86.293809560885677 46.3976811771217399
-71674 -91.2635169689971519 33.8766611890577281
-21648 -76.2344151531165153 38.4965020406503768
-56001 -93.9875482930715549 44.1499531723367085
-13057 -76.0547189877803191 43.0748770062556048
-78702 -97.717372565974685 30.2653385963195625
-52646 -91.0291498916668615 41.0624890887095688
-49912 -89.189707895342039 46.4767613703277078
-04858 -69.1357565907209022 44.0413676852836389
-18051 -75.6624694614975084 40.5933666240340969
-33732 -82.8044967499999984 27.9166560000000032
-21782 -77.75445786402517 39.4491298008378308
-93741 -119.796408593023216 36.766336895348843
-92026 -117.111106249612149 33.1962095933815036
-38774 -90.760890553267771 33.9561044180841307
-74016 -95.4491859262726905 36.5214629033323988
-95956 -121.114250127305368 39.9076176612685742
-01462 -71.7191520753306975 42.5873745582695307
-78528 -98.4607525000000123 29.6286022500000001
-24215 -82.7965052499999956 36.9218313750000036
-50026 -94.453835103109725 41.8573531931260305
-39320 -88.7384966350589082 32.5374554373051268
-51343 -95.0954952370518072 43.0201954561752871
-03605 -72.187088787420322 43.2315759129512145
-72583 -91.9973141256255644 36.3937369242714226
-50108 -93.9592486386138575 40.8598167541254185
-42046 -88.1011139636363367 36.6029551636363735
-90293 -118.441234510269794 33.9566175062424307
-29547 -79.3291249730594643 34.4796454079792625
-75937 -94.3712155735368157 31.4863303353690078
-71306 -92.4960476818181832 31.2954397727272777
-47131 -83.096638139534889 37.0698400581395546
-24849 -81.5652517964601316 37.673799061946923
-66062 -94.7716594007613509 38.8595615563793899
-47552 -86.9959236220095278 38.1210806889952067
-56007 -93.3604889997161251 43.6553167697759221
-28146 -80.4161491458572613 35.6157105256359827
-59846 -114.403267384364014 47.0693431385256957
-87124 -106.687456138486567 35.251423700450637
-48458 -83.6973260098858987 43.1164729130360271
-38769 -90.9917016344388543 33.8476487769936227
-10065 -73.964020189753299 40.7648806755218374
-24315 -81.075827697940781 37.1204273884501603
-37764 -83.6132137942881712 35.9705858129507519
-01069 -72.3150463053021042 42.1785043300356364
-63962 -90.2668659166666316 36.7730187916666651
-13830 -75.6181308782879569 42.4336571840027972
-55803 -92.1059317559850683 46.9748786523817117
-89148 -115.29672946158766 36.067159103283295
-69071 -96.4821017500000124 42.248444125000006
-70551 -91.9798068285714265 30.4697167571428338
-14714 -78.2429469642057711 42.2916135760626588
-16317 -79.8493037108247705 41.5273389308219123
-99869 -139.697452999999967 59.5392100000000042
-72073 -91.6708371962331086 34.3891854831361599
-00687 -66.4119468265209179 18.3386563307985071
-11933 -72.7445686145588866 40.9432032533831674
-31705 -84.0790963288599471 31.5402079296254421
-81228 -106.2914219054054 39.0612867702702644
-16546 -80.0512035999999796 42.1059816285714277
-33449 -80.2223271707383105 26.6079884781773046
-93923 -121.855608587551657 36.5072651247274607
-54081 -81.1847884166666773 37.6536609166666665
-64649 -94.0905848089711014 39.771191089182004
-43436 -82.8198400164834965 41.7134242252747427
-32784 -81.6895962399129019 28.9423967905011104
-03462 -72.4141610951157162 42.9091537979434889
-92879 -117.538044658903786 33.8828060154494182
-39144 -90.7850013079987264 31.820703784600088
-07107 -74.1879764189799715 40.7604060903809753
-73626 -99.2744897381578539 35.434501098684251
-77484 -95.9265339175730389 30.1058954644039005
-36250 -85.8934375484115549 33.7658626507380077
-81433 -107.661441938392727 37.8224151125000034
-51654 -95.7501701575650088 40.8357257439570134
-54163 -88.2525430000000028 44.6693889999999953
-04346 -69.7574337072350517 44.2351846247896461
-08618 -74.7827506619982785 40.2419257106413113
-85532 -110.834930595141714 33.4071177651821714
-86040 -111.474698468565606 36.9256962195206668
-31082 -82.8511417510769377 32.9920846648787105
-49301 -85.4882797739254841 42.9628568752395239
-58490 -98.0318645618768585 46.3799860991202806
-06459 -72.6560361428571468 41.5575694285714263
-97127 -123.11150960147053 45.2480110475490349
-43164 -83.1258029601986266 39.6026604363575316
-05775 -73.2351199443006635 43.3553796955958859
-46710 -85.2511850528158561 41.3537929514393738
-43430 -83.3719051305637748 41.5269447200790935
-48108 -83.7368218229449326 42.227290733885134
-28792 -82.3788865108571002 35.3798532847935618
-76060 -97.2110552112170723 32.6431551727326621
-60459 -87.7688044751726721 41.7447606613117017
-21210 -76.6348801101113111 39.356829662772995
-77388 -95.4689957755034015 30.0585504532299197
-50201 -93.4408106714876681 42.0185231382575921
-56041 -94.5155184999997999 44.1502401195218823
-37407 -85.2860560014598121 35.0007583419304211
-37826 -84.590365175935105 35.5550102877871481
-77826 -119.225692499999994 45.7323282499999948
-78165 -97.9317289285714452 28.5661701428571462
-49001 -85.5632739624848853 42.2715779128190192
-75275 -96.7902123714285807 32.8378991285714363
-18247 -76.0014422786885433 41.0321684426229609
-13115 -76.4752638735632075 43.397434540229888
-71111 -93.7040979479160256 32.5648704101696609
-01605 -71.7933187403347972 42.2909367526291717
-58104 -96.840951785216717 46.8094816467824941
-36487 -88.2986672499999941 30.8142552499999987
-32502 -87.2230731989960617 30.4100097332377821
-15757 -78.7292416652344116 40.8835869354438302
-12848 -73.5216568823529428 43.1032313529411795
-72375 -90.1480059999999952 35.5060710000000057
-01545 -71.7159851321372201 42.2849052648879322
-65260 -92.3933583023049749 39.5840579547872125
-57340 -97.8367516854990953 43.7726448418079244
-52574 -92.9662955863412606 40.7892320035772826
-55381 -94.1942878162854953 44.9208464997994383
-38471 -87.9225173782983092 35.0793893648357766
-18836 -75.7534507837837623 41.7906691351351327
-70115 -90.101900548238163 29.9272641831425226
-65769 -93.7964271436781587 36.9318226368860181
-76705 -97.1052267705824761 31.6231917770844788
-40422 -84.7877862556469637 37.6431497690135046
-15203 -79.9780595699932064 40.4251674601506963
-76537 -97.6066340837272719 30.8103791190636969
-00962 -66.1302722318020955 18.4373395632508661
-59851 -113.871789159999992 46.8731323866666685
-99301 -119.075864993742996 46.3089012712826289
-34101 -81.5419859347826019 25.981173217391305
-65733 -92.8295697298400171 36.5251576227726886
-14175 -78.6066239999999965 42.2575177692307662
-87523 -105.844891716311949 36.0126339243499061
-11801 -73.5224084488843488 40.7620159769778283
-02763 -71.3087066531574862 41.9671355221489506
-49938 -90.1551360383567157 46.4591946361349386
-59243 -104.623874826397184 47.7496225326992274
-37552 -83.4572995000000049 36.5941431250000022
-77339 -95.2157476371281462 30.0542501459055202
-15922 -78.8743331717171685 40.5178016868686797
-71725 -92.5673192028122997 34.0671667203894017
-18077 -75.2396834653000894 40.5650865873054443
-98366 -122.594360725686926 47.5309141852473971
-40222 -85.6153597111899956 38.2687398844101594
-60190 -88.1443336250000016 41.8886792500000027
-33020 -80.150064656130283 26.0172830933529902
-73756 -98.1199150960452187 35.9751949265536908
-61737 -88.7208386459676603 40.4487587056451261
-27041 -80.4884924840310845 36.4173480862112768
-65522 -93.1223780000000119 37.5971513333333291
-63030 -90.7368180963731277 38.147246904663227
-52161 -91.7563682069749973 43.1190802043214703
-27713 -78.9221464265515067 35.909839423761305
-38305 -88.8134874338850295 35.6928338520273982
-37810 -83.0998352655289096 36.1808387111140135
-46374 -86.8840499915513504 41.2087754281851488
-84340 -112.03825530058451 41.3948749397370719
-05043 -72.2087592161904581 43.8080108066667009
-52730 -90.2944793781587833 41.7832744331906838
-20473 -80.5127875555555619 37.0779457222222177
-47588 -86.7862632077789016 38.0446784882292235
-37923 -84.0766862853210455 35.9276909205912887
-05033 -72.1627660720949109 44.0029985911515169
-99581 -164.52712283333338 62.7782689999999874
-52121 -88.1320719999999937 45.8984544999999997
-51010 -95.9129776099766644 42.0909708952126635
-53448 -99.3494771999999955 45.5928107999999952
-05050 -72.0645663050847389 44.2626189491525324
-20620 -76.5231768841309474 38.2317655205709528
-48635 -83.993236721866154 44.3900860826210604
-26147 -81.0771858409593449 38.9074285573473375
-95348 -120.498240910845539 37.3398435246365921
-66212 -94.6833173635051395 38.956710195715047
-95436 -122.910398266545329 38.4924226362291719
-72120 -92.2209000020372969 34.8656204535158452
-33467 -80.1744230643140128 26.5899306481546986
-67905 -100.930602714285698 37.1008485714285712
-85053 -112.130731904186291 33.6295949979409414
-61850 -87.73832410007644 39.9263113644003553
-15921 -78.69723493500004 40.3193946150000002
-16365 -79.1600197722951009 41.8550975841892026
-70431 -89.9682140877831955 30.6067836988895365
-80744 -102.382796217068702 40.8887280482374962
-17101 -76.8783164572980553 40.2626192111801302
-32546 -86.739191500000004 30.6865129999999979
-62439 -87.6798199504858218 38.7268116358507868
-69052 -100.954811772727311 42.3412866931818144
-24501 -79.1574286662677338 37.3683209888190859
-34479 -82.1117414581593721 29.23880709424526
-46302 -87.1300423260869508 41.3544262391304329
-55748 -93.6044972651532134 46.9931434946281499
-57787 -102.639795458945514 44.6909545636889547
-02537 -70.434699998295784 41.7304575157949884
-77967 -96.9661927500000047 29.2034956250000022
-25123 -81.9170370659390983 38.7397013349935548
-64149 -94.4671276318681379 38.8655869890109713
-28391 -78.6940147473157054 35.0264670313170612
-80134 -104.767047221282837 39.4893698777103452
-41733 -83.0586576206896439 37.2036967816091817
-18229 -75.6887516102058839 40.9249004671328791
-72445 -91.0156123409090867 35.97061034090909
-72828 -93.5263537863248615 34.9210042547008328
-63770 -89.7094220924731758 37.5943829526881927
-61010 -89.2644905004804627 42.1306730613589906
-36037 -86.613300381946118 31.8014349844769519
-71009 -93.8919127593984655 32.5821209135338208
-66044 -95.2287591257548485 38.9932163864187515
-34686 -82.2516140000000036 29.4046689999999984
-17023 -76.8083014613163897 40.5766976327944278
-71770 -93.3138518907917529 33.3671728649575527
-22115 -91.5536930000000098 46.287907666666662
-29059 -80.4204303402337217 33.3364568024031911
-92320 -117.04022464295268 33.9932679672482934
-67901 -100.91691511541417 37.0666457196291645
-19344 -75.8867889538259419 40.078627043332709
-45325 -84.4263615683587574 39.689623163764324
-68445 -97.0880707495395114 40.3962162394107054
-03846 -71.1828983243416502 44.157804957289585
-34116 -81.7063652715594344 26.1833568328053801
-34731 -81.9012022826982786 28.8647771664629254
-62448 -88.1692675744531016 38.9717637983453997
-84715 -111.547494958904167 38.3280622442922123
-08105 -75.0876614682988759 39.9496553198453768
-05070 -72.3602072149321174 43.8411286900452666
-24593 -78.9105175405243671 37.3262825830066873
-15142 -80.12368363541664 40.3833624615885753
-16327 -79.9567180902683674 41.6268158062836946
-64065 -94.4042919999999981 38.9360473750000011
-78588 -98.4420618938052741 26.7206695132743342
-92091 -117.185088278365271 33.0230825544871749
-17003 -76.5489557712218414 40.3449141813894343
-48503 -83.6911660783787141 43.0120962941619638
-32542 -86.5530837340229482 30.4683619184418468
-32399 -84.2369413351351568 30.413399005405406
-66021 -95.0072041915953207 38.7690182034835544
-41142 -83.0763795352112595 38.2801987042253629
-65706 -92.9081885630728692 37.3272774636008435
-13833 -75.7769497208185498 42.1929780042950782
-02857 -71.6268793030653086 41.8408052520723643
-36323 -86.0683076182316285 31.430424976598438
-28762 -82.1691266571959602 35.6032085464099026
-53581 -90.4110911375187811 43.374034611340484
-46536 -86.2821018056668692 41.5167584040652073
-96962 -121.252458500000003 39.3286170000000013
-97904 -118.453583449728271 43.845960154891344
-43014 -82.2554826993254977 40.4675848441277921
-79907 -106.32793900122752 31.7079669514919757
-48760 -83.2536762138775401 43.339892030204112
-98360 -122.181727608009737 47.0831093665247735
-02861 -71.3551407750880742 41.8808523964148236
-60920 -88.3106931070495307 41.0153399242819958
-79765 -102.312726149671548 31.9148754930640202
-89158 -115.175402315789484 36.1081719999999891
-28543 -77.3771059672642991 34.735012667965762
-72834 -93.2076533720416904 35.1947060806856911
-39629 -90.4555391808174107 31.4388044140117557
-42743 -85.5274593904625391 37.2298083671250666
-70328 -91.2682810000000018 29.6932735000000001
-54208 -87.823202555715298 44.3542674100145433
-93297 -118.65579141176471 35.8860072941176469
-41845 -82.905688352941155 37.1365338257631876
-28350 -79.3128131852942033 35.2432338441176256
-17029 -77.6201389481706627 40.5523373749999934
-37058 -87.8650161660627731 36.4816058927445681
-43716 -81.0087362988587643 39.8438688981070115
-70732 -91.6198515646500766 30.5993158244365446
-75767 -95.2340900555555123 32.6684900000000056
-49067 -85.8104856229201118 42.0280884782202335
-16225 -79.2561470670103034 41.2546242680412121
-17752 -76.9140569924743573 41.1745419698962962
-92801 -117.951475326747769 33.8452794411151743
-24318 -81.4209707932430717 36.9594459924710037
-21529 -78.7758894452829708 39.7181163232704364
-29046 -80.158871082474235 34.1101547216494865
-99515 -149.89487131439617 61.1186889971595164
-95634 -120.795261224532965 38.9256188486080603
-57472 -100.066905155448907 45.4763580272437054
-55042 -92.900776078892207 44.9961505815487968
-97022 -122.335642702596942 45.3480417359924104
-79242 -101.445921499999997 34.1180035000000004
-82711 -104.458339818897713 44.7105239055118062
-60156 -88.359359417439137 42.1871269055859557
-56535 -96.0427592209064329 47.6421705688035999
-05302 -72.5661500571428633 42.8927735142857216
-04046 -70.4832351089876283 43.4070223426082151
-88341 -105.686943545938803 33.5048186125166154
-04607 -68.0580574074537878 44.4634523684342184
-43518 -84.7578989838171282 41.5879021231095365
-56237 -95.4301268198038031 44.6271448519179827
-19025 -75.1654244846725135 40.1455495453372251
-71972 -94.2601672568769402 34.3783168895296427
-81426 -107.886629162790584 37.8708256976744053
-98841 -119.482116428457076 48.4047127877713734
-43942 -80.8408893462784874 39.8684100148573251
-18813 -75.8060647102803671 41.7517459719626274
-65456 -91.2031509961762907 37.7846945244468486
-43811 -81.9240491508948878 40.1850156767903641
-48080 -82.9014065157947471 42.4627050233904413
-33037 -80.4083595604008821 25.1374607158545089
-92061 -116.955033082129617 33.3127667274144414
-21797 -77.0656126059539019 39.337036204374094
-79777 -103.127273695999918 31.5397591639999781
-44481 -80.8629988948548259 41.2076589796071175
-18039 -75.2234972987013037 40.5809785974025914
-65084 -92.8517601801230796 38.4149849982462257
-32277 -81.5899078062355017 30.3673706547343087
-21157 -76.9829473503627639 39.5495546653246706
-77328 -95.1814679790321634 30.3821847560199245
-40206 -85.6968850264586877 38.2549707778921189
-41134 -83.2858265416666939 38.3264255625000061
-70532 -92.7017990079308873 30.4714657788896055
-59088 -108.109337085834824 46.0419148948186532
-51430 -95.0311924550466216 42.085553483036513
-31561 -81.3320011856539224 31.2017838846695099
-70611 -93.2148744818607184 30.3262538389583334
-53955 -89.4024844276094797 43.3919376969697126
-25115 -81.2176963036649227 38.1199344502617947
-48224 -82.9422635331087008 42.4110766100690313
-22315 -77.1477210345587991 38.758124698471569
-32350 -83.3387877878410137 30.5947537280398052
-89813 -115.947349675000012 41.7852967500000005
-47449 -86.9691281248206423 38.9274830760401898
-52135 -91.6632781291138485 43.0158336195298361
-45420 -84.1320319975324509 39.718981259099337
-62707 -89.6441335507605288 39.8234643937297577
-74864 -96.7063952178107513 35.4843998141715602
-31747 -83.5869415585585926 31.1764540720720866
-35983 -85.7631750239593202 34.1824207563640954
-78257 -98.6065665200862043 29.6463563011953788
-72544 -92.1862540177079666 36.3939644948213399
-93074 -97.4256416666666638 36.3168459999999982
-63359 -91.3407517918377749 39.1547398857801738
-18317 -75.025957187500012 41.1598134375000058
-86433 -114.384515725806352 35.0249597499999723
-91724 -117.857386475908797 34.085122203294965
-94115 -122.437280579918152 37.7855569159836406
-35548 -87.7534052215346918 34.0550667472772872
-74352 -95.1850758716591514 36.1568839000931845
-80117 -104.436479848981932 39.3442537877907981
-83340 -114.436083666352786 43.7113729237185069
-75088 -96.5451083792061553 32.8947207015549949
-76945 -100.531257917159778 31.9137797401829957
-74832 -97.0085704628975094 35.8117683533568965
-60030 -88.0303594779699949 42.3448091866246443
-06828 -73.2541573333333389 41.2204150000000027
-67473 -98.7222806036938607 39.4187032295514257
-78852 -100.475757880366729 28.7041900915858434
-67573 -98.4077259827585635 38.2807463156498784
-25028 -81.709420000000037 37.9456631979166801
-42206 -86.7199442328490306 36.8783084810214419
-59901 -114.303515796127499 48.2073720673413746
-97370 -123.41307230319471 44.5635847665712532
-32362 -84.2395743846153806 30.3238941538461582
-66622 -95.7248539999999934 39.0267654999999962
-56611 -114.038001461538471 48.1395599807692207
-75137 -96.9131376618575473 32.6347091546447672
-19959 -75.5659694999999942 38.8233324999999994
-41562 -82.4687755436893042 37.40271273104171
-21915 -75.8489966916832543 39.5032210425688177
-17933 -76.2460765999999808 40.5957031733333196
-72128 -92.6419197426809404 34.3275782788906056
-23060 -77.5337945466487639 37.6588795962319622
-98535 -124.166440659326369 47.1247686476683825
-30517 -83.8037022443001121 34.1282395439308246
-61863 -88.2902137596954475 39.9054849459834458
-30336 -84.5552932633146668 33.7465849991478635
-66724 -94.8356130807019184 37.3497036091228054
-68957 -98.2573820857741964 40.2947149497907802
-45870 -83.9532191311475486 40.5557403934426191
-78049 -89.5315629999999913 35.4144375000000053
-51571 -95.620316714934944 41.1505775681818378
-20680 -76.3681439049930617 38.1128267170596118
-31324 -81.2907346006638107 31.8883911346457296
-27855 -77.0994052856770793 36.426276726726627
-36317 -85.388894607258834 31.6587245119176828
-75121 -96.4262247368421157 33.0780384736842166
-65056 -92.6410805454545425 38.1389866363636401
-17050 -77.0054723947660307 40.2512506664373362
-06604 -73.2024863039084437 41.1812555618261058
-78391 -97.7542197325173561 28.1760784178321657
-97910 -117.366533185803505 42.9343766850045157
-25625 -82.0664026537468487 37.8275625426356328
-39397 -85.1368186666666702 35.3199769999999944
-66939 -97.8898491342281716 39.7754236979865539
-65070 -92.7252183333333306 38.174077666666669
-63124 -90.3793474110206603 38.6392645354846991
-32908 -80.6892112545741327 27.9679777824324063
-96128 -120.424290461538476 40.3753741923076959
-64498 -95.3288128472013767 40.5390624209530586
-18102 -75.4789818510136143 40.6074471902459422
-23284 -77.4523153035714103 37.5478162678571366
-98266 -122.117168106657658 48.9544167644915191
-95661 -121.251506911018481 38.7359028473984495
-95612 -121.5631487230972 38.3925800048119115
-12785 -74.5699114866496302 41.5194073040482081
-21561 -79.2296332213398529 39.4912393114497533
-30107 -84.3487118872737085 34.3303066190583834
-10060 -73.9205437500000073 41.0608337500000005
-59873 -115.363223270182701 47.6420038396196972
-07201 -74.2008434464815139 40.670170933767011
-98377 -121.878815084835622 46.5285696700366884
-70411 -90.692838166666661 30.8372805000000021
-35619 -87.1213982038406556 34.40247503001833
-96148 -120.05551394887317 39.2445588894997215
-60176 -87.8705964015076546 41.9576104244510262
-12575 -74.1512576087823589 41.4716852327344796
-93291 -119.335476410165938 36.3466109971274136
-60173 -88.0510499647219262 42.0443853281643953
-31007 -83.9141127315068047 32.2032490347031981
-20667 -76.4399153442622321 38.2194551590163911
-74721 -96.1505873749999864 33.8945301562499921
-53580 -90.3779055247387078 42.856037211149804
-62359 -91.2084636822916082 40.0260713125000009
-45363 -84.3989053026217277 40.2385546719101868
-20036 -77.0421423229427376 38.9059839364089868
-61043 -89.096961681818172 42.0640824999999907
-96120 -119.803155573030182 38.7717505639986797
-16695 -78.3699301888981523 40.2161801135045351
-75418 -96.1809423044945646 33.5801530140431836
-54840 -92.6643220933926131 45.7563125175971663
-49911 -90.0449906251048446 46.4741453221757368
-98074 -122.043393800415558 47.6246833801416969
-95658 -121.148008309930404 38.8771792416945274
-36441 -87.2474159997981928 31.0275117977391588
-51458 -95.239744965121389 42.3100337192683966
-12872 -73.7176631030927894 43.8811765360824779
-31836 -84.5473093355544449 32.8017721327938716
-41073 -84.4764504403535739 39.1012749646538893
-28649 -81.205607597444768 36.3154832596980981
-51563 -95.5937587956730681 41.5736007187499581
-97424 -123.06464204617204 43.7674358685625293
-56255 -95.4258402344397894 44.3918310539419139
-12760 -75.099424708468959 41.9007226007736264
-35745 -86.1835199466764408 34.9260348108108332
-30284 -84.2901945925926128 33.3426971481481544
-75081 -96.7077863078102524 32.9491418654142549
-78573 -98.31090256201459 26.2816359004471529
-23398 -75.9339477656249358 37.5116948343749925
-27574 -78.9503883927172581 36.4220296593335746
-59903 -114.182752417475697 48.2762910679611679
-68825 -99.9389312924028559 41.290090218197939
-48044 -82.9268435083611308 42.6474031581291939
-36078 -85.9198346807735476 32.5543214075105993
-95215 -121.197784090026801 37.962958630038969
-65673 -93.2117967000000078 36.6247257500000032
-28151 -81.5923502500000097 35.254281749999997
-99731 -145.739204833333332 63.95325858333333
-24258 -82.4239305377416542 36.639014509354773
-47991 -87.4179124574467181 40.2732893161702421
-99694 -149.766167134009549 61.6140197156531286
-95722 -121.027801078075797 39.0038648871859195
-60803 -87.7293246101713748 41.6738183727901372
-66358 -96.0600799999999992 39.8285714999999954
-17824 -76.5141880872681952 40.8581536678910595
-58784 -102.368637163760155 48.4564535877383236
-17602 -76.2619835174990754 40.023097474955641
-80224 -104.911965810691242 39.6874814652706789
-14027 -79.1060818214285604 42.5796786071428528
-17578 -76.1621004631271177 40.2220395557194408
-49892 -87.8373562777777721 45.7923482222222162
-23092 -76.5085671563255119 37.5992650934730435
-61942 -88.0052380989426979 39.8028432746727319
-06517 -72.9092525881696929 41.3492668540773209
-24602 -81.6437282082555384 37.17641547882819
-52556 -91.9448450375157194 41.011364120834024
-60143 -88.0165886797658032 41.9761989983277246
-35816 -86.6258707317014682 34.7396319268061404
-66020 -95.1002540922762023 39.3362437758031831
-40075 -85.1115730599594826 38.5669086181404026
-56023 -94.0151735401886839 43.7732556825326569
-93244 -119.012195862434012 36.4244942186949388
-49845 -86.7810124545454471 46.141329090909089
-76305 -98.4350046341350406 33.9748401221063858
-69129 -102.403419589239491 41.1185507523242961
-96051 -122.350351420267245 40.864467949774621
-30434 -82.3927755464658134 33.0212267948952984
-42021 -88.9941653090931482 36.800501060477977
-55706 -91.9612306325188058 47.7282495660626012
-79063 -102.119337785340292 34.5127474371727914
-05640 -72.4940747844521667 44.3487551289752346
-95058 -121.2247105 45.6259500000000031
-03875 -71.1826970904072027 43.8787000607315392
-26704 -78.5934742624424416 39.2945216419636196
-53573 -90.4595286721280161 43.1926868617295057
-42558 -84.565708316831703 36.9777324356435741
-48830 -84.8351371071428559 43.3643418214285745
-54558 -89.4884484047082793 45.9269262973067001
-64456 -94.4025392008273201 40.4938519774351491
-73039 -97.9858619999999974 35.2037419999999983
-55951 -92.5165971643615848 43.531146565425594
-65762 -92.6671222211809322 36.6889208912839422
-55055 -92.9989436868463883 44.8719520159603462
-56379 -94.1242635477599379 45.6152069267999565
-64057 -94.3485658668273004 39.0693223084996148
-63557 -92.8767612524773511 39.9773611029729707
-59425 -111.972189549295521 48.1751445015902178
-71269 -91.7661576216599002 32.4557539718639632
-05042 -72.096253961129932 44.2308918469338579
-32754 -80.8922774730275194 28.6994855531332718
-72433 -91.001901328474375 36.0411084873664507
-33776 -82.827544687121275 27.8532997335857324
-25951 -80.8654629110278762 37.6729028652336098
-36446 -87.7232734033412527 31.7890903078759202
-63373 -90.3746244567532244 38.9255432807839838
-72766 -94.1770405000000039 36.1969330000000014
-57056 -96.5725408034187893 43.5163132222222444
-34760 -81.6300520240274494 28.5563772494279178
-75951 -94.0400121889749272 30.9209521582681646
-54494 -89.7836672038120724 44.3650625288499825
-38122 -89.9245837111412385 35.1563549202404815
-68663 -97.6834915342282102 41.3157157919463245
-05476 -72.6582388388484048 44.9676142980551532
-75129 -95.791650599999997 32.6991957999999983
-88331 -105.982704499999997 32.9810590000000019
-81507 -108.633593415920828 39.0697901667578051
-46731 -85.0999543153050126 40.7947434844649024
-55918 -92.8530421833871742 43.7380748586838379
-43711 -81.5753560153846564 39.8361588615384505
-96146 -120.218685651506505 39.1891762259560394
-47924 -86.7635981849314817 40.4877279931506848
-58794 -102.761665002747222 48.2569765961538977
-32668 -82.4881463440469815 29.2632811788394882
-35098 -87.0347526903290856 34.1293384648057341
-24281 -83.3328845607949233 36.6494018048389734
-65601 -93.5710919541804458 37.530586855928135
-64073 -94.292192 39.3155634999999961
-43003 -82.9626844347294679 40.4088818816592408
-32128 -81.0443219592640816 29.0818549066322447
-08510 -74.4168426191196488 40.1915914736342685
-68458 -96.4998096842105326 40.2345570637118541
-96821 -157.755523455304257 21.285836975194325
-56670 -94.9101528890274579 47.8755484326683387
-63051 -90.5629591129450517 38.4077190594906952
-03077 -71.1928067715148245 43.0302692712227781
-49459 -86.1038028439144796 43.7396597271599745
-97080 -122.41690703653083 45.4819820406896227
-99643 -153.298079222222242 57.2079835555555363
-82725 -105.70584857290325 44.8775032777420151
-72119 -92.2925152807017355 34.8349996578947199
-46917 -86.4758895390874187 40.6183508238415456
-18970 -75.3804093495146077 40.4132778155339878
-01543 -71.9554624743393276 42.381014324712261
-16640 -78.5664720769692195 40.7039656406110026
-56327 -95.5859737704886356 45.7915459765563995
-31096 -82.7168370954566825 32.718801910276639
-21874 -75.3540145596783049 38.3960791097711791
-67138 -98.4208824750000844 37.2382991359375382
-89317 -115.05411980172407 38.620322021551722
-58520 -101.547876892934468 46.6559788977026884
-00754 -65.9651296801801692 18.1877330574324318
-28572 -77.7411225981291665 35.023729233479358
-34946 -80.3536944092167573 27.4859748969162041
-21719 -77.4880717899159777 39.7093106974789976
-25529 -81.8399299770213133 38.1480702782978938
-74119 -95.9892597059843524 36.1426093148308851
-41007 -84.3087950193321944 38.8944996418196283
-64469 -94.3586200318318475 39.9092327192191831
-11213 -73.9362518618951583 40.6715794334677625
-64165 -94.562708381604736 39.3221311291585209
-04984 -70.2427234240588376 44.6962126001731406
-28137 -80.2671759547784802 35.4885956231101432
-84754 -112.13040716653704 38.6386220171406976
-72055 -91.3772858444149421 34.1095238756648413
-50594 -94.0335192994652971 42.5843775811052083
-47648 -87.5624148930677109 38.2459460199115
-51104 -96.4020277733175561 42.5294589906732057
-01129 -72.48749667754835 42.1197701305795462
-65619 -93.3788487607385207 37.1276039294461242
-17040 -77.3001344202875202 40.326773778163961
-57745 -103.658057128803279 44.0051329425882258
-98346 -122.522012620949099 47.8135479292724384
-42441 -87.6556428710963331 37.3765884707552161
-37625 -82.1769430384615589 36.5945429615384654
-71744 -92.4927377560787392 33.5215483029718158
-51561 -95.8016877351599874 41.0424455692542125
-48084 -83.1817145931103141 42.5642701862207034
-68315 -97.5591236582914973 40.2439498140703549
-27127 -80.2675943034309256 36.025364795408926
-07946 -74.5159219663944583 40.6742381488237612
-97602 -122.105328999999998 42.4706120000000027
-72628 -93.2809804388753179 35.8382051907090755
-45123 -83.390195454639084 39.3460551556701077
-35759 -86.5684567627077257 34.8582869621212552
-19608 -76.0302618246172273 40.3103553886762782
-69171 -100.071756385964903 40.9035862456140293
-53816 -90.8507300895149541 42.9831420281772196
-01960 -70.9723088373534523 42.5346736928138114
-48334 -83.3506170177280552 42.5062513417467756
-79383 -101.918935706989302 33.3370574596774176
-92117 -117.198457744091911 32.8236359376098505
-60926 -87.8195107083333255 40.5731909722222071
-79081 -101.209730102120446 36.1894744776785089
-12031 -74.4756626446281302 42.7626146404958618
-26136 -81.1186639807400667 38.9674439031930575
-17976 -76.2063859618031074 40.8198047508603779
-95379 -120.238687211561682 37.9728838107459836
-33185 -80.4430744781755038 25.7324950178117113
-58381 -98.7612646475196527 47.8161442908615371
-83628 -116.953790469754665 43.6077807096439045
-99125 -117.743472905043291 46.9406551449959295
-46236 -85.9648302769920036 39.8935627190648319
-71858 -93.2943675242541133 33.5818176798507793
-47275 -86.1284111666666803 38.9723956666666638
-97733 -121.854006040876612 43.4487415644211978
-58265 -97.5366201893203453 48.9490511053187802
-25837 -81.0442451854545283 38.0631668945454535
-35647 -87.1162464730887507 34.9625090037710109
-34761 -81.5313738309127984 28.5757821432661068
-44711 -81.3851956666666609 40.827103000000001
-67036 -97.8836562231759757 37.2932499828325845
-17951 -76.2431765884773824 40.6803158148148114
-20197 -77.6191354936495941 39.1930174491979457
-30719 -84.9274143333333313 34.789617166666666
-50261 -93.9297690558425131 41.4840746278244765
-14885 -77.5612171534545212 42.0447910872727917
-74756 -95.3748064163089992 34.047360175965693
-75268 -96.7690214285714347 33.6289878571428531
-70655 -92.7255223749707085 30.6284615555293875
-74026 -96.762947826086986 35.7086852874396357
-10032 -73.9414646163683074 40.8380065959079417
-38554 -85.1590094511307996 36.2557395908723592
-67841 -100.210968526717707 37.6493161496183149
-88109 -104.249221999999989 34.4762933333333308
-43528 -83.728225012535205 41.6246776901777196
-26377 -80.669155765441829 39.4686714276779185
-92234 -116.466298066155801 33.8095336599563154
-65263 -92.223794972404562 39.4728783604905118
-67028 -98.8863513418804132 37.4675387384615064
-88352 -105.999054716494044 33.1009169427725283
-22026 -77.3110675991829481 38.572573969152181
-43533 -84.0747141601285648 41.6903942868166837
-76528 -97.7514966776445959 31.4214590769826394
-36852 -85.2801773732452517 32.7573836015689821
-04987 -69.2522809122352072 44.6743757523244014
-49033 -85.0969219299400095 42.2243649221556794
-76171 -97.4283629999999903 32.7393505000000005
-08824 -74.5549162728119512 40.4213918310056712
-02038 -71.4050072486526943 42.0873391442290057
-57584 -100.063343850622417 43.4986186887966753
-30032 -84.2651146677431768 33.7385304388836218
-21160 -76.3190631661902756 39.7073984135097007
-25612 -81.9841938709677436 37.764023451612907
-87420 -108.690202242105485 36.7773126473684258
-47527 -86.7776985833904178 38.4705808898421537
-52068 -90.8132089934201474 42.435319656004431
-07009 -74.2298478055633524 40.8581575028917925
-58785 -101.114351352125752 48.2682332273568306
-41339 -83.3885534706146956 37.5235938668991835
-38318 -88.2692607460465553 35.952834728372018
-69154 -102.353716149547651 41.4096790324640551
-11217 -73.9794045625000507 40.6824915301339303
-21814 -75.8872352467192002 38.296501219160092
-70397 -90.7928137870230785 29.3970260320610279
-59463 -110.830265420988837 47.0656271990349424
-23523 -76.2715898258864087 36.8303327521277382
-77085 -95.4823324326043092 29.6245800131212391
-17233 -78.0052511643532256 39.9490098379258143
-93302 -119.082857500000003 35.4460106666666661
-06373 -71.8041662500000228 41.6889955041322651
-77433 -95.7221188032269623 29.9497994163697108
-09594 -120.952089000000001 40.1395143333333309
-76524 -97.2320402527573293 31.2829551231617877
-67062 -97.4336586104048621 38.1389475696128528
-14831 -77.0564530000000047 42.1436269999999951
-40056 -85.4861242826701329 38.3055718536637499
-57054 -97.2444046061256557 44.1275468393336396
-66281 -92.8462674999999962 39.3593104999999923
-44859 -82.3345242853994392 41.0132297305784803
-98364 -122.585772397849425 47.8523732688171961
-72074 -91.1223543821989779 35.0548359005235639
-66337 -95.6808879999999959 37.0367373333333347
-33559 -82.4128888535465336 28.1625325098900774
-54177 -87.955366120521191 45.3812284267101376
-40029 -85.2960846279070068 37.7777826046511649
-07924 -74.5828079104156529 40.7241424314186702
-37851 -83.8786462409638744 36.5783161325301123
-88043 -108.106431022556265 32.7078994017185636
-94131 -122.441998558466381 37.7446811898461547
-91950 -117.089922691949624 32.6729461568788366
-56186 -96.0831010445344589 44.026992955971636
-38744 -91.0443797542018984 33.0213902804621995
-65075 -92.2692250538354699 38.241416668898168
-28215 -80.7074501105557403 35.2464705632651487
-28420 -78.5143598916930898 34.0502431347150747
-36106 -86.2625713669444139 32.3529555434695837
-92067 -117.199565942946336 33.0164857250855377
-63552 -92.4616046399527818 39.7485733623264466
-73001 -98.4088947999999846 35.2335031999999941
-62513 -89.1470337193279505 39.7229131092436916
-49638 -85.7436635878832902 44.2870631437919968
-24250 -82.5930207062165209 36.749786598926498
-84937 -110.088353999999995 34.4916185000000013
-62049 -89.4894210524736309 39.1419394512903125
-46959 -86.1082605725190433 40.6144062442748037
-92285 -116.459327202776407 34.3114987782292289
-25063 -80.9458213042248076 38.572417836688409
-40358 -83.686225292715946 38.0628195616064886
-45785 -81.6376873333333322 39.5419006666666633
-51648 -95.8108744704723136 40.7382761889763785
-62885 -89.0559662680964692 38.863358160857878
-65618 -92.3843639308176137 36.7516109937106847
-32751 -81.3625138146237248 28.6311289915494065
-03854 -70.720499461128 43.0676070800304771
-25253 -81.9747735699227462 38.9145589280502264
-11793 -73.5102295739994673 40.6885084851170546
-56727 -95.5122683384673792 48.3178233870832017
-99757 -152.2227313076923 63.9114223461538487
-67476 -97.4269928214285841 38.5504160714285717
-55423 -93.2824501635478924 44.8760362525195475
-72072 -91.7604042368420352 34.5328720290858584
-77228 -95.2515060000000062 29.8592110000000019
-02330 -70.7669794032836279 41.8845226013413594
-39641 -90.1764598617537416 31.3622175845210087
-64062 -94.1730386773933077 39.451598220008016
-28697 -81.1757300175929259 36.1368589555983135
-33967 -81.810565681958181 26.4709921508200878
-04051 -70.8881515125922022 44.1922832825721699
-18946 -75.0271244025974084 40.3196351948052012
-32662 -82.0994239285714258 29.5046239285714265
-34715 -81.7428657454799747 28.6048140713954808
-31717 -84.6394345307692788 30.8480482615384517
-89821 -116.530767847987931 40.4398737839046092
-49235 -84.2120575951219621 41.8661058044715659
-37644 -82.0202513636363761 36.4592189090909073
-22485 -77.1696018787323794 38.2826800619551975
-65806 -93.299833305926569 37.2050388275943149
-58440 -99.1469132918985139 46.2642932888064919
-96136 -120.032341500000001 40.248228300000001
-06753 -73.3262955241379473 41.835422924137923
-47857 -87.0901097607655572 39.5261551291866127
-01243 -73.0161296028106648 42.3455841383136402
-76091 -98.9282014062499826 33.0521477812500066
-30457 -82.5799156590618537 32.3926918911933797
-39350 -89.1254174103978301 32.7874450911382382
-53530 -90.1040386241257352 42.6910136125624859
-53083 -87.7592518232804508 43.7907706904286869
-63057 -90.4061500499999937 38.3425523000000084
-30338 -84.3197953674839766 33.9455983838483419
-15520 -79.0958526440129646 40.0716583527507879
-49996 -89.2298942558139458 46.6915777674418564
-92308 -117.17792380141384 34.4486088565620463
-57439 -98.0974778749999956 45.3310521666666659
-83303 -114.517272800000001 42.5521415999999988
-28699 -81.0039375423728956 35.8286010169491504
-65739 -93.2756229632714877 36.5223047391767537
-42404 -87.8360688243157313 37.4784612425149959
-56378 -94.9632334807298548 45.7333085007898177
-60626 -87.6697373802561657 42.0090680304691233
-97302 -123.053185356105885 44.9040585346822354
-90621 -117.991033247475727 33.875213981246965
-95351 -120.996147974794454 37.6229690127931633
-90124 -104.677796999999984 39.6026864000000032
-79091 -102.106228678571441 34.9544953035714201
-62239 -90.1969149328389648 38.5220027919240948
-52075 -90.4926876848874855 42.1699068424437513
-70114 -90.0327801007024959 29.9374818153793747
-24831 -81.4170605000000052 37.390757615384608
-25305 -81.5865973599999847 38.3083246400000021
-31038 -83.6067543897080299 33.1339059907488718
-57467 -99.1338994135669225 44.8141382319475454
-72522 -91.4637287743165786 35.8124219040050562
-02179 -71.0621197499999937 42.4625420000000062
-04006 -70.3457612960000063 43.4445189639999683
-86540 -109.434569500000009 35.878631687500004
-13126 -76.4803739840982786 43.4393977715063784
-96090 -122.123202954545391 40.0240878636363604
-46994 -86.2495817335764059 40.6676427751825855
-55415 -93.2591983460898604 44.9749225457570816
-88402 -103.895640666666665 35.5659759999999991
-67344 -95.9531822359156195 37.2726259866196727
-07666 -74.0112399271900472 40.8919625959895185
-49886 -87.5006053636363532 45.693721818181821
-53590 -89.2261484953921808 43.1923932237580743
-88866 -89.8333091111110917 44.8005357222222358
-55441 -93.4282174789587287 45.007548711386427
-95117 -121.962324868057053 37.3099100704406865
-33930 -81.4279323473520265 26.5448744719626433
-15021 -80.4380086327465307 40.3917578364400924
-59312 -106.242840562500021 47.00923768749999
-79772 -103.622822868410168 31.4072023044210269
-55362 -93.8070414788845568 45.2975447656525461
-56743 -94.5020583333333235 46.3234679999999912
-55382 -94.2028817184482534 45.3047658769779389
-39166 -90.4894278904110649 33.06752047358124
-23120 -77.7503014650465047 37.426215176859543
-72458 -91.1523813187335321 36.0739448437994312
-53577 -90.042714047021903 43.2755549357366647
-23222 -77.425682978502806 37.5741470728184765
-72956 -94.3456404083110982 35.4793132463856367
-66765 -94.7404751428571359 37.530534857142861
-85323 -112.31964931456406 33.4383278598973845
-49321 -85.6663497810669128 43.0652442693558513
-71377 -91.7742841015624577 31.5989093203124867
-04849 -69.0416364924423362 44.3177538381183993
-61731 -88.4772963317581258 40.6083874357277921
-97071 -122.843564674328405 45.1424295940549882
-32206 -81.6466028713882821 30.3520039901338556
-97044 -121.520455153846143 45.6312416923076896
-86033 -110.256867739130485 36.7141967863893939
-13158 -75.9744258436827096 42.7152645377607456
-45806 -84.1352334789639968 40.6777442063200496
-35469 -87.7875588136300991 33.0244513129346231
-48435 -83.3598569551056272 43.2479409823943186
-63138 -90.2104922663891244 38.7908385527942841
-28072 -80.4498093819163671 35.6014709325236325
-66258 -89.7955915000000005 38.5097120000000004
-92382 -117.112162745387906 34.2084925230914081
-85021 -112.091373525506995 33.5584686228330114
-47427 -87.0106038431225244 39.2404150294940806
-28205 -80.7879683389173664 35.2215077622203339
-84327 -111.989725274815399 41.8655819073011202
-81146 -105.752837766507881 37.6216494553836256
-98271 -122.218199584773402 48.0979430939926971
-26626 -80.6719023750000019 38.5384651250000019
-59417 -113.026624494915325 48.5814077436054177
-12474 -74.5743594450846956 42.2899720124361949
-59022 -107.455809776536285 45.6065908687150525
-43021 -82.8996233486902554 40.2037627114286664
-74954 -94.5190667071188955 35.4220922704251748
-54217 -87.7224372632009874 44.5951493589847558
-95127 -121.81479265647711 37.3711305934361206
-34853 -80.3606746999999899 27.2603191999999979
-08090 -75.1512366237504921 39.7992539909117724
-12484 -74.174038384743298 41.8687743945124566
-21651 -75.8643552249068733 39.2494443969729119
-55358 -94.0014524523037238 45.253875944103612
-97641 -120.668566714791751 43.2534718981117976
-84654 -111.801417052455491 38.9498797555802909
-84773 -111.430158295395373 38.2649645873153972
-75689 -94.9516941702127468 32.176036744680836
-54213 -87.5153718766054851 44.7021474701834833
-93031 -119.160163499999996 34.2011587499999976
-27849 -77.1994578824909468 36.0843772050541745
-45111 -84.292633418128645 39.1970152514619983
-95415 -123.392277348069939 39.0191506733751368
-56311 -95.8735437014802727 45.8972630411184781
-74920 -96.7784939999999949 34.7821864000000005
-92054 -117.362367239273496 33.2054456557047004
-32777 -81.6117107352940963 28.76094970588235
-47880 -87.4190232352941052 39.5991924117647045
-06351 -71.9567076067515217 41.5930919582158012
-30088 -84.1798525235446391 33.7576481740823837
-53589 -89.2181759141206214 42.9279987420411402
-42649 -84.4284222181583743 36.6342269417708835
-28636 -81.072253480433659 35.9342907867161045
-94507 -122.009720102609364 37.8559166428147265
-60536 -88.5537188750000013 41.5963799605263276
-34607 -82.6232911598949471 28.5052672352940384
-35501 -87.2756606287202743 33.8212912315716139
-99824 -134.397390905466722 58.2775524339407127
-33992 -82.1312075000000021 26.6403919999999985
-33144 -80.3094979157429094 25.7629012929600911
-47226 -85.868742768749982 39.283234043749971
-40291 -85.584204489676992 38.1376108268082064
-70762 -91.4772765695971231 30.5924563278388248
-11753 -73.5366074309024924 40.7895520464048786
-41721 -83.4818346051042539 37.331891829582041
-63851 -89.7572688860165755 36.2377287417743972
-68031 -96.5321380332545544 41.6303426582547615
-14476 -78.0406324419735284 43.3337139986101008
-41144 -82.8836762382444192 38.5412506351938902
-48727 -83.1799220810812017 43.3130789189189045
-43085 -83.0146004893508263 40.1015044338511117
-75839 -95.5512089548135748 31.6296299305010074
-17005 -76.8111516027874472 40.6027329198606282
-66523 -95.8299705855170885 38.6293396429252383
-64689 -94.1489192147525813 39.8838041279178057
-25153 -81.7370912857142855 37.9942075714285679
-52727 -90.3362501018002604 41.966731667908121
-05744 -73.06998439574771 43.6919893304736462
-91304 -118.628466378743752 34.2218556936760763
-22554 -77.3986046395828282 38.444621640539367
-60532 -88.0865506930736188 41.7857032622291982
-16825 -78.3087700628272074 40.9850465130890029
-31528 -81.6033215000000069 31.1649515625000006
-15644 -79.611365422717796 40.3375347367548969
-46508 -85.9702504249999748 41.1551888166666728
-35650 -87.2915347898343157 34.4763312323875297
-03910 -70.6127753955375397 43.1709682454361001
-38826 -88.8307690701669515 34.3007857077760718
-35554 -87.6563982953124849 33.8928947395833546
-34112 -81.7437279962787926 26.1232471854448569
-18837 -76.3066436520742144 41.9117532152551249
-84628 -112.133172096514699 39.9574980723860875
-25845 -81.5090926577016859 37.6932992787285599
-18244 -75.6816295995203632 40.8324325995204163
-08252 -74.8613193333333413 39.0393945686274435
-73042 -98.2415408057143935 35.2110161520000204
-08080 -75.1013064723242536 39.7511299673004714
-72738 -93.8916543618130532 36.1644056945667742
-89144 -115.324327132827861 36.1794356262436452
-93813 -116.637405363636375 48.0710910000000027
-14740 -79.1831635116994761 42.2185751083743952
-50066 -94.2214564258555214 41.8307215152091771
-50574 -94.6846749324082708 42.7198892227948193
-75166 -96.4428663625390357 33.0175501904512316
-23025 -76.3640235809523347 37.415607866666619
-71940 -93.5184346786224125 34.0232216800524085
-01020 -72.5706981869903416 42.1774699860365345
-60602 -87.6290590035461037 41.8829583368794616
-50568 -94.9910988848186122 42.6236593567214754
-14864 -76.8422634881847415 42.2751719828141432
-79517 -101.157166197387511 32.8798257968069834
-39168 -89.4130499774231851 31.7996558318543663
-10914 -74.2041205838150262 41.4165403078034586
-28580 -77.6883602352582869 35.4423183881406558
-75005 -96.8795565000000067 32.9878114999999994
-32506 -87.3314438162142466 30.4043341194444459
-49252 -84.7625491920314005 42.0413044702808492
-84129 -111.962695722734651 40.6516277920923699
-22831 -79.0573234788547126 38.5117949814978147
-98944 -120.002419085776708 46.3300460430107961
-82624 -107.686194333333333 43.2679800000000014
-08218 -74.8255646818181788 39.1499027727272733
-61060 -89.635468904939998 42.4770831656287839
-37606 -82.2939592499999861 36.2670120000000011
-85296 -111.752589860877904 33.3310427273241245
-40935 -83.7262036841494108 36.8978690912459086
-04004 -70.5470213793103653 43.6100193275862225
-37688 -81.9139277691586898 36.529753896207275
-29479 -79.9119605693874036 33.3845041977679244
-43951 -81.0147726387434801 40.1017815340314314
-15465 -79.6411678202247089 39.9431240674157308
-67574 -99.4014144453125255 38.1976784218750112
-94210 -80.6983711428571411 37.7302627142857219
-53014 -88.1488105859827016 44.0399728475434387
-99636 -157.320828083333339 59.4514250000000004
-95229 -120.45679653448272 38.1121899482758622
-31532 -82.7590950561436642 31.7284936870685463
-46072 -86.0540285508458993 40.2836774369046324
-27870 -77.6911782691169748 36.4408824486797513
-31316 -81.731412906820708 31.7668949422288129
-55607 -91.5261078999999711 47.6393046044714055
-30105 -85.1661605933051362 34.4533156400079577
-36016 -85.4277169481690777 31.8379158628632979
-85991 -109.992564999999999 34.3486946666666668
-48160 -83.6791984869339274 42.0930559529297597
-77861 -96.1038098571725214 30.7072561121475545
-36580 -87.7365669554262269 30.4795737659345178
-76385 -99.2502794999999907 34.1172745000000006
-98187 -123.180124454545464 46.7945776363636412
-28447 -78.2324370292428171 34.6026624835508727
-71640 -91.2804483942891665 33.1151540789793302
-45859 -83.7863548065476351 40.691863383928542
-21911 -76.0501833700857333 39.6892336363551053
-74865 -96.8367523059624489 34.6348152115843106
-06058 -73.193703122422221 41.9778619760356477
-68817 -98.7783990701070564 41.2488023904576409
-13323 -75.3781977349665766 43.0495219248329377
-66402 -95.8283981512903864 38.9151481509367301
-24245 -82.4911131528511703 36.8279564610798218
-83347 -113.835645795266046 42.6619049704142128
-46181 -86.1653225249807235 39.3733557859338603
-02542 -70.5669569323528805 41.6601843970588916
-18042 -75.2208739699185713 40.6677552154917592
-70521 -91.8394255820895324 30.3358258507462679
-97086 -122.535083719534057 45.4449842158522443
-07980 -74.4946880894039936 40.6757727110927405
-68872 -98.349335336606444 41.0914407992362527
-18955 -75.3181720186047983 40.4801717364341158
-08011 -74.7106158387096713 39.9734194193548618
-51541 -95.3952875314553665 41.1432899849764979
-89527 -123.590412999999998 39.2525759999999977
-20009 -77.0381682149395601 38.919490228520722
-17140 -76.8466899285714362 40.3092905714285763
-33557 -82.3802895000000035 27.7021242499999971
-23521 -76.1568738780487564 36.915336926829255
-36759 -87.2499685546104047 32.4137695362367211
-60481 -88.1484996790977107 41.2948051265342073
-47201 -85.9766131589953488 39.1737409416337385
-49042 -85.6725666955616134 41.8504408255894376
-29836 -81.4831936525108915 33.1026125186905205
-35294 -86.8080516438355971 33.5007219589041227
-70758 -90.8603191999999922 30.527662399999997
-97633 -121.56102887553665 42.0288582886266155
-38553 -85.0096554711556536 36.2065130636246124
-04143 -82.9371129999999965 38.3254555000000039
-65332 -93.4055288412927922 38.6213143912204586
-03588 -71.2313640354216062 44.585496486506031
-40444 -84.5979901152606857 37.6805294087770974
-59076 -107.096128849624051 46.2895136240601488
-13224 -76.1039706647123353 43.037297604616974
-38231 -88.4283380390205593 36.2106268296863618
-13832 -75.6529838364261451 42.6468192591064792
-95112 -121.884283892443705 37.3449772139312017
-31698 -83.2873349999999988 30.8478157500000023
-38327 -88.3059047621915596 35.2229252600842528
-91381 -118.586019832011047 34.3896038265698962
-28432 -78.7651980851590992 34.1787127089706573
-46637 -86.2375981103696319 41.7328891275386553
-04001 -70.9206635613222574 43.5417127997445519
-85618 -110.659271086111119 32.7160420465277966
-85527 -105.804911000000004 36.1643486666666618
-14617 -77.5975459388077979 43.2236952805560151
-27054 -80.59432003701518 35.7871890601741853
-79042 -101.83388951615126 34.7675619670103728
-32137 -81.217561990131955 29.5786455285314851
-49918 -87.9379220093809835 47.4663431876172339
-05491 -73.3103208734899852 44.1293155505717465
-79237 -100.662117694410014 34.8570734832297902
-18012 -75.5923733684210504 40.8122641578947309
-57717 -103.862009444461705 44.6792400790728479
-61602 -89.6033665009745874 40.6842929876543238
-75155 -96.4874605693047442 32.226816715347546
-94535 -121.946801397222202 38.2773839152777384
-03858 -71.0461367320549186 42.8696536074110952
-97818 -119.711965130004131 45.8187273321442419
-85199 -111.480061199999994 33.4211169999999953
-92109 -117.240702162053466 32.7941089775701542
-10307 -74.2414243937360538 40.5081750520134918
-74325 -94.8568320000000114 36.9718572499999993
-44437 -80.7312240676490092 41.1568704172806292
-80862 -103.068954405511761 38.85562485826771
-33572 -82.4033702163712434 27.766941706117553
-38115 -89.8612367757210819 35.0538678589450186
-15615 -79.7354501160949951 40.3589244802110798
-70403 -90.4886148387923015 30.4815450312073395
-28318 -78.6101480840297171 35.0282820348025581
-03224 -71.5481664900990495 43.349210439603965
-97753 -121.017770461188107 44.2300369976043726
-59084 -108.611211428571437 47.0381091428571381
-57025 -96.6856125994358138 42.7137418345111755
-49440 -86.2512458859857958 43.2341102874109211
-78072 -98.5459886987295874 28.420501647912868
-57041 -96.8714082671009749 43.7221304723126991
-19408 -75.4128895714285648 40.1513204285714238
-24986 -80.2769645773321798 37.8195721867479904
-06035 -72.8006829434604157 41.9613924819073034
-04110 -70.1986581901527842 43.7604129694397983
-85621 -110.927183472396777 31.3710629589254886
-67784 -100.847566 38.0036075000000011
-91362 -118.825882472756561 34.1927570653568367
-02181 -71.2817548333333377 42.2915856666666699
-29114 -79.931266803962842 33.9517428135695667
-43229 -82.9720225265648139 40.0843833362635849
-79721 -101.410645071428547 32.2571692142857174
-49862 -86.6530375887542306 46.4113179558985465
-86111 -108.953917357142842 35.6361917857142885
-36010 -85.8195668976424884 31.6701305966709334
-06443 -72.616964724268513 41.3165219631674674
-33043 -81.3614585482665973 24.6854677850666455
-66406 -96.4142807988123138 39.8848036043059153
-49127 -86.5156589791351394 42.0158099059180472
-14140 -76.6237349999999964 43.0343469999999968
-29732 -81.0623883852070719 34.9699127485363803
-02117 -71.0723045000000013 42.3524400000000014
-55321 -94.1902555269543029 45.0933854866575743
-83803 -116.526678129295433 47.9918000708762662
-43748 -82.3057541429213302 39.7005237696122748
-25150 -81.5341583529411622 39.1544494117647019
-36270 -85.4790427970296776 33.4313567772277267
-54836 -92.1901521487580169 46.4508218998046374
-99505 -149.687932742408378 61.2534905246073365
-74633 -96.8136869360851762 36.7009089067908931
-81157 -107.064276937499997 37.3929531249999911
-07921 -74.6546205782919685 40.6595887013641999
-13028 -75.9294081512379506 43.284143941334726
-80737 -102.223394112240413 40.9260464914183117
-61533 -89.8325435583701761 40.5908303896401392
-59527 -108.692064063897931 48.020425636847726
-14418 -77.2067256657849583 42.6097281841322442
-27916 -75.9053280160818957 36.3210215774853822
-96733 -156.528197500000005 20.8831814999999992
-92066 -116.54625336756753 33.2269409256756845
-19466 -75.5759033999999872 40.1402564000000055
-99103 -118.959249765275473 47.7549007259528366
-36582 -88.1850051898199467 30.5354887805135213
-99109 -117.711515230555378 48.2803061150576696
-18235 -75.698974779221615 40.8296105507803944
-02894 -71.7053693743693543 41.4426180746719837
-52049 -91.1947872016394996 42.8787880738894742
-36273 -85.3721662562212344 33.5363705972472701
-95665 -120.657119661554461 38.4026790876274191
-23851 -76.9524171345866534 36.6700452447809013
-06479 -72.9014362205821413 41.5785844634048161
-31746 -84.7305283928571527 31.5971252142857182
-63313 -90.2942120000000017 38.6734310000000008
-24482 -79.0017716377173684 38.206617883126512
-93519 -117.975097397905813 35.2948938429319483
-99785 -166.490454921052645 65.3333438771929877
-63020 -90.5487330030290423 38.1159621157574264
-61560 -89.4346196084015048 41.203423826628665
-64480 -94.7131254508991418 40.0574208340248958
-53020 -88.0062780032949945 43.8426936079078047
-82718 -105.54662343827367 44.137747337158352
-92553 -117.241031225209028 33.9224267831542434
-07950 -74.4836078797930128 40.8451599360513882
-18049 -75.5022420454003367 40.5256383244186225
-55330 -93.5829348831517933 45.3211756125548106
-02081 -71.2537019932767777 42.1484552224713482
-72087 -92.8245322485992119 34.6000990615453219
-65082 -92.4398729315491181 38.2211174831832494
-75287 -96.841111577724476 32.9983507307822848
-35010 -85.929137420905505 32.9274419581028184
-56352 -94.8013860162907633 45.6578736963044562
-47872 -87.1520484762397274 39.7505368308882012
-16415 -80.2279987020267242 42.0383801861222679
-37313 -85.699498607576686 35.3650533496241124
-14557 -78.0644295000000028 43.0463358571428643
-28114 -81.762423228464371 35.2350536033633688
-15521 -78.634487915312917 40.193798294849536
-26503 -79.9039346296296316 39.6292678518518358
-47129 -85.7695110587797132 38.3102032795297092
-14224 -78.7487733890975079 42.8346078170023787
-04050 -70.1529256554174623 43.6929510746003373
-82036 -105.881549615384614 40.8341386923076897
-14012 -78.530830883377277 43.3363219065962966
-78654 -98.2575696758125616 30.5666017199071192
-38625 -88.8316497754499892 34.614441550062871
-08060 -74.7903604574970444 40.0050041993021352
-22841 -78.8990741788089736 38.3420988427715272
-34679 -82.6615760958904104 28.4305868150684944
-36349 -85.5273864999999631 31.1315989404761844
-51544 -95.1126824316493753 41.3109219160475831
-39567 -88.5437062270184754 30.3696128661131866
-14734 -78.3443144999999959 42.1510402500000012
-68029 -96.2687863206872834 41.6531143693629033
-36093 -86.1361379066676704 32.4963533112315659
-33463 -80.1308257669692097 26.5999691677474814
-42066 -88.6378138001297771 36.7351995678866388
-06091 -72.9869458247191858 42.0094031505618091
-41775 -83.3451850240549987 37.1082584776632274
-64487 -95.0607604496422738 40.3178130427218093
-80910 -104.772956837193647 38.814468342221133
-04278 -70.5042692777777802 44.3237278888888895
-36264 -85.527508278347554 33.5816838220945115
-55990 -92.2686548920903249 43.7273817807908571
-27818 -77.0330882986029906 36.5043843753255146
-49430 -85.8989033809523761 43.0055999047619011
-49458 -86.1033652074592624 43.9409242913752536
-56212 -96.3275473182750375 45.1466916765913169
-99536 -121.151063499999992 37.4655279999999991
-29120 -80.30423054545453 34.2415422727272656
-65633 -93.5181945641184029 36.9010182421393935
-12746 -74.6433956099162828 41.4324895471922972
-77304 -95.5093799030073569 30.3390733911922297
-67672 -99.8877495165055365 39.019993626811619
-36886 -85.7360976666666801 32.5818510000000003
-73718 -98.1680218263157798 36.2307457894736729
-80262 -104.937523199999987 39.7309522000000044
-03917 -71.2059884999999895 43.8557600000000036
-14715 -78.1569344650106075 42.0750971972774011
-32335 -85.0090472592592334 30.0008800370370352
-82601 -106.324172460033679 42.837859912403168
-48022 -82.8019900510121118 43.0260677805667981
-50134 -93.6615096229674293 41.9397967347560723
-22947 -78.3375782817417985 38.0315064954262567
-62693 -89.5289201839315751 39.9508958250407815
-47946 -86.8833407007005007 40.9886808485070731
-71679 -91.1984301111111222 33.9242924629629528
-18234 -75.9611377139303841 40.9928188059701526
-41836 -82.9105458179060406 37.2614965508345932
-76704 -97.122906804569439 31.5731660994166887
-23958 -78.6545453260156791 37.2694739241355322
-53832 -90.8865434999999877 43.0831505000000021
-19952 -75.5970175032620659 38.9205648771058677
-62677 -89.8573065573922349 39.8582508647077773
-56728 -96.9447704897400797 48.7774495868673128
-78058 -99.503060161462173 30.1893117589637221
-20615 -76.5471078820960571 38.4185198908296712
-27915 -75.5078035204854814 35.3473446196256802
-08230 -74.7128253543382215 39.2167893885370304
-60622 -87.6774183843897958 41.901677113228331
-64474 -94.3705882737729524 39.7574725766872135
-84735 -112.438337630508428 37.6451935050847979
-83421 -111.554773978102176 44.0052855401459766
-20676 -76.5374277408059811 38.4910787860284032
-63967 -90.4636701972439425 36.8871932488518084
-88829 -99.5464830000000092 28.912547
-22815 -78.8061856043931357 38.6228649824274015
-95442 -122.518313772470933 38.3713210136464653
-80466 -105.492410817609823 39.9742623736896121
-28639 -81.5879572727272802 36.4677286545454535
-55128 -92.9655771368374246 44.9871539642984644
-56678 -95.1078809087651962 47.4355174364493593
-89433 -119.772908092433156 39.5973858032843324
-19717 -75.7553902571428921 39.6805379142857149
-19018 -75.2977054304647595 39.923472823519532
-37275 -85.8943207586206796 35.2541897241379303
-84042 -111.711649660475999 40.341605708357406
-05767 -72.8213244842222451 43.8723483403812224
-23021 -76.3663093014048258 37.3935380804597344
-97014 -121.883512540106921 45.6695282465241377
-52140 -91.5261881100757506 43.4411829715730207
-12073 -74.2325090000000074 42.6621908333333337
-28210 -80.8565756343646456 35.1287374827982859
-50530 -94.0403686973280912 42.2667013068702246
-29460 -77.472999999999999 34.5373296666666647
-37025 -87.2954735570481688 35.9489886066606985
-92403 -117.459445842105239 34.2689463947368438
-29901 -80.6490946666666702 32.3733826666666644
-65280 -91.7456539078341962 39.2326196474654623
-18820 -75.6195441379310012 41.7799973448275921
-71082 -93.9835581731213239 32.8545492838498134
-43406 -83.4340445748824635 41.3333739543318046
-52223 -91.3370281368067936 42.4130153044347367
-44314 -81.558563548154325 41.040623968926937
-97214 -122.645778538608724 45.5145467100954093
-91331 -118.422360305912079 34.2551950302565515
-07026 -74.1075298992442413 40.8793789093198825
-44510 -80.6683329721628866 41.1198358458243689
-18661 -75.7782276272656645 41.0757825063919384
-97676 -150.02951758333333 62.2283590277777918
-21863 -75.400035866677996 38.188635913752492
-21647 -76.2724944348659903 38.8097577298850425
-58702 -101.292545599999997 48.2311136000000005
-54657 -90.9206207235583292 43.1920956497528863
-79369 -102.134301788732401 33.9497005915492949
-47537 -87.0768414491462295 38.1176630066815179
-23226 -77.5170796258017418 37.5800999793299084
-66071 -94.8696217606010208 38.5819036381077609
-14507 -77.280029427192801 42.7010709125745365
-34981 -80.3619588977403652 27.4005793248587466
-56151 -95.9204777322214142 44.0211348860919003
-73130 -97.3482791133639722 35.4597710820538552
-44901 -82.5135989999999993 40.763954499999997
-03321 -75.2621369999999956 39.6326095000000009
-42453 -87.5930955036993879 37.157707984063741
-25408 -81.436766333333324 37.9439886666666624
-07641 -73.9901012521223009 40.9609017062818097
-12025 -74.1467080966438772 43.0823477280629561
-55355 -94.5335458280605536 45.1050383600909726
-11378 -73.9183042941176609 40.7363505588235313
-87112 -106.517456796937608 35.1010340785635648
-37753 -83.0960493627232637 35.8265748198343061
-75601 -94.7286156563518205 32.5079683873894609
-48820 -84.5817417490325454 42.8421508891653176
-99633 -156.918118350168328 58.7337733602693461
-31754 -85.1051692790697842 31.8543818604651179
-42420 -87.536446464252478 37.8157817280514124
-46916 -86.5108814915254669 40.6755427796610221
-76652 -97.5422695793331229 32.108011148666705
-01032 -72.8183724983949361 42.4445192560192837
-88254 -104.394203097402553 32.6267951818181743
-13110 -76.2832437571011894 42.8911190688272868
-30327 -84.4211487502529678 33.8664540527986162
-71854 -94.000517862200752 33.4291997722841572
-25808 -81.3342640000000046 37.8280659999999997
-27325 -79.5795491441710965 35.4591150485893962
-48234 -83.0445375538042754 42.4334467146793415
-95409 -122.631707347699603 38.4592034832751892
-45348 -84.658243310199893 40.3261863701366892
-43787 -81.8102753056085845 39.532077561507748
-50023 -93.6303732588914386 41.7225184212071127
-68741 -96.5883759710052345 42.3549137860824203
-35583 -88.0533812222222139 34.364216666666664
-17067 -76.3184143924016212 40.3855684528093946
-68771 -97.3412560011820034 42.3769655768320774
-92122 -117.210649426927603 32.8551914199578619
-79739 -101.528506940832827 31.7766843586559524
-46342 -87.2603255918723733 41.530898157604959
-18928 -75.0396999130434779 40.3385692826086952
-05304 -72.5748847499999954 42.8243222500000016
-45333 -84.3363351863192463 40.2537719596091677
-55339 -93.9574670723154952 44.7263503360116488
-99789 -150.998791749999981 70.2171972916666647
-38111 -89.9451195121479543 35.1103947481074385
-77013 -95.234223793606148 29.7884024950634121
-75705 -95.1091395472771097 32.3612517812686988
-05660 -72.7826302592547876 44.2483646061202478
-33931 -81.930433737667812 26.4522172778120854
-60514 -87.9558657960030104 41.7928953174962032
-66046 -95.2286385587931647 38.9287152847614166
-98092 -122.153467538366044 47.2941414797148241
-27048 -79.903708662717662 36.472054609345939
-99158 -117.242917087562745 47.1298649665366085
-62056 -89.6509121030953793 39.1815187253411494
-52728 -90.7256897321101263 41.4579159192660214
-19108 -75.161760000000001 39.9599825000000024
-06112 -72.6963169350725309 41.7926019698551627
-70753 -91.7388316141649227 30.9417277589851771
-04131 -71.8579645000000085 42.7051211250000051
-72402 -90.5757156666666674 35.9220796666666615
-38772 -91.0474958918918844 33.5762541351351445
-20654 -82.3668668333333329 34.3940091111111101
-91001 -118.13737290495169 34.194109462834227
-88351 -105.18555095527158 33.5203042108626121
-56717 -96.5340681153846276 47.541118307692301
-83804 -116.987605456669812 48.0241208641107207
-96065 -121.919595164112039 40.8601617423861327
-37766 -84.0684947770834157 36.3781869411110179
-05071 -72.5406425611511168 43.5615030199840447
-72118 -92.3074735538148872 34.8254257672517511
-48874 -84.5932348260869418 43.1887468913043406
-72086 -91.9215273150671095 34.8153742727497857
-19451 -75.3610869999999977 40.2489345000000043
-06631 -74.4735473333333431 40.3341409999999954
-80183 -105.112241588235293 39.1525828431372531
-18101 -75.4694707437838161 40.6037061513514033
-29591 -79.766544747261463 33.9326937881424229
-56369 -94.3410695673469206 45.4700117428571176
-27584 -78.4265100804597353 36.4933881195402279
-15537 -78.355785156377749 40.0080757873747004
-36695 -88.2499351795289186 30.6407498543247669
-33066 -80.1780196529949762 26.2500884190500905
-97050 -120.715741267666061 45.6861478115631598
-32901 -80.6206396702925332 28.0723552849663278
-80465 -105.205653222087307 39.5963403442508834
-30726 -85.1324756222222021 34.9767385037036931
-30075 -84.3893563030050728 34.0503312321321232
-26323 -80.2893522345971178 39.2587589644549908
-90255 -118.217225396909498 33.9777831623623356
-60112 -88.6895527670766626 41.9244177725410267
-52742 -90.5278605176056459 41.8325151175602628
-64722 -94.5462782093862586 38.2788956606497948
-99627 -155.569464641304336 62.9445094673912919
-24479 -79.2050209469839217 38.1641031447118664
-41168 -82.7691960464477461 38.3101985779251137
-73855 -99.8757385476190507 36.8080814761904733
-24112 -79.8606813051909654 36.7039142114597752
-31407 -81.2118597805146152 32.1852844730888847
-27022 -80.2253366222276867 36.5118803614582106
-60474 -88.2779347611241292 41.173656829039821
-78019 -99.3839498172043534 28.0444212795698533
-00704 -66.2260710918163511 17.9659847964071808
-01887 -71.1716279620209917 42.557974165960033
-36540 -87.6971596612693389 31.467339875647685
-33305 -80.1264135775328441 26.1507876623348032
-72424 -90.7290792781954991 36.3925661353383489
-59065 -110.731802638679071 45.3186601952830728
-93960 -121.325496068655369 36.4243473108137295
-22903 -78.5719563210774936 38.0250942143859376
-95037 -121.655758795070156 37.128685865817566
-70816 -91.034113870764827 30.4282472567835569
-12973 -74.5699002371134156 44.2432522439862765
-32092 -81.5122622552551235 29.9711525689581428
-39611 -91.0693254999999908 31.5042074999999997
-10567 -73.8890741671376077 41.2929009600621697
-44094 -81.3903673829989458 41.6189007087483134
-17865 -76.788863468085097 40.9976625744680874
-87459 -112.443968250000012 37.8226697500000029
-24149 -80.4314024504914755 37.023777154693029
-91364 -118.599145991971653 34.156333653619015
-61338 -89.6780556428571316 41.4647108277311176
-66962 -97.0858956234498436 39.5872392006764073
-77449 -95.7288712694916342 29.8331080152187766
-38949 -89.4253549074675789 34.1871330016233799
-52660 -91.2973478201873405 40.9901898196359511
-58057 -97.2434745776306215 46.4279161640912363
-95452 -122.554546835971223 38.4168418799999998
-70805 -91.1505324988241767 30.4866187921784437
-08876 -74.680829256342264 40.5817492216332525
-58563 -101.446222042688575 46.8538975802616875
-07933 -74.4660324895288284 40.6856150628272673
-52028 -90.3828484444444626 38.9691139999999976
-23558 -79.0175642857143004 36.7996044285714348
-74632 -97.3504094541858223 36.9393903546472302
-44017 -81.8650338412235357 41.3705399987859934
-49815 -88.1316912490272983 46.2402555291828889
-92378 -117.223772261904699 34.2331899305555396
-15678 -79.728362252485141 40.287035554672002
-05471 -72.5926900539829063 44.8604402847972992
-64866 -94.14365408624802 36.8691721595924733
-13121 -76.3016132999999996 43.5127845999999963
-28676 -80.8594544865880636 36.3281660160251434
-77510 -95.0873729892906709 29.3707120348059121
-33952 -82.0967685057534453 26.9891521030936623
-21214 -76.565413831337608 39.3513028320318199
-71646 -91.8231922439912722 33.2366634211337413
-57226 -96.7130890180877856 44.769986124031071
-64622 -93.5511126001353261 39.489444120433042
-58370 -98.866287649028024 47.985549217062534
-18964 -75.3265830223649147 40.3025933578357893
-78642 -97.9286598672976396 30.6905769014665211
-78579 -97.9592840050125346 26.0958163333333601
-58503 -100.771934053468371 46.8702166546713528
-54517 -90.8981806417003355 46.1465526639675545
-66541 -96.3597368788426394 39.9588751121157628
-98050 -121.914499876262752 47.5402201616161975
-61848 -87.7011908697183173 40.3052670352112656
-64831 -94.4461490190977884 36.653303212565838
-22830 -78.9508985204543023 38.6411977700002254
-48637 -84.3368038397626805 43.4157717462907087
-43060 -83.5743065063386865 40.2167432826248969
-56274 -96.2007194438775599 45.8891521632653436
-53143 -87.8300613358440927 42.5636744297896783
-48529 -83.6703659167413321 42.971328319158431
-10012 -73.9977588532258466 40.725446266129012
-02703 -71.300744645106505 41.9283326962136584
-53128 -88.3123082440573199 42.5246811179079813
-70148 -90.0627240000000029 30.0306114999999991
-72469 -91.3215548801715613 35.9678393731459565
-72117 -92.1732729209229547 34.780082993538521
-38680 -90.1229767011204359 34.9642968267002558
-36025 -86.3416514449599504 32.5385238173766282
-14461 -77.125424333333342 42.7978362777777761
-81334 -108.718577946981895 37.2000014575856142
-47176 -85.7615265999999963 39.5232864000000035
-52170 -91.300540961740225 43.2137426440446504
-10802 -73.7875251428571488 40.9133944285714293
-62823 -88.4474896194939362 38.5147388284910974
-37185 -87.8216699690298555 36.1001728405177715
-01339 -72.8770148581927941 42.6214022981551537
-56289 -95.2087120755696787 45.340150673941352
-38913 -89.4012150255318687 34.1318221382978919
-97830 -120.149040294051218 44.9393633698900175
-75948 -93.7621624291801794 31.3218876602465919
-24120 -80.4128964214795872 36.7250615525212964
-42302 -87.1171996666666786 37.7748259999999974
-27822 -77.8593480311995307 35.8158928858284824
-34480 -82.0876697012328975 29.1255940311904347
-43222 -83.0296411746280256 39.958308360219192
-74017 -95.5898139989844395 36.3548577704085147
-68344 -96.4029001848375913 40.573129044765345
-73757 -97.4516192315789169 36.277963889473682
-78964 -96.7809671999999921 29.5689963999999961
-45874 -84.6878040355682344 40.7929318878523048
-62519 -89.4017594040404333 39.9351005959595895
-71063 -93.5218382177777983 31.9027536393650664
-68178 -95.9466505641025833 41.264397333333342
-87529 -105.613163348739477 36.4569542763224206
-45863 -84.4523295064638262 40.8970352536627146
-16045 -79.9166352114882415 40.8509014090513034
-61369 -89.1491166913875048 40.991884582775036
-68328 -96.8394596470587601 40.4738314368872594
-27697 -78.6229194999999947 35.7797957499999981
-32603 -82.3484429643916229 29.6551179977745143
-62949 -89.1396830897009238 37.8313409734219519
-63880 -90.025464093750017 36.3288942499999976
-31797 -84.3317594883720716 30.8549258139534821
-58353 -99.6028825169081529 48.6356951545893637
-45211 -84.600735082259277 39.1547016630105915
-54746 -90.9227430000000112 44.5101879999999994
-47639 -87.5752832334736269 38.1813346808616032
-01536 -71.6953844397884836 42.2294662393029938
-55309 -93.741215433864312 45.3663487710549731
-70599 -91.9534830000000056 30.5595739999999978
-53120 -88.3973518026692631 42.7876773999046591
-42533 -84.6051316205356869 37.0737760252976258
-70706 -90.9268450040825371 30.5867108380065922
-37914 -83.8246335250839678 35.987950166935839
-49090 -86.2469986542220539 42.40769012566237
-97731 -121.862779870786454 43.1666243239700762
-33442 -80.1452911936319623 26.3122443370495525
-57242 -97.3893871258685806 44.7662254058030911
-76565 -98.336690322727236 31.6555899909090996
-16105 -80.3406329059004776 41.0458275306845835
-47260 -86.1972410246700775 38.8395191861451323
-10034 -73.920901372434102 40.8658681319647528
-43103 -82.9341783769018974 39.7253637042984593
-37659 -82.4962794211451182 36.2967968524396909
-28556 -76.6562241966260274 35.1278716128563886
-77078 -95.2578937388908429 29.8491335280940646
-33626 -82.6136817436653388 28.0596643210724075
-59560 -100.291790000000006 46.6784344444444486
-19017 -75.4638715924369734 39.8877107268907594
-23111 -77.2912182980514899 37.6084759699004252
-78724 -97.6305895350571404 30.2889083155128027
-33946 -82.2813592843589987 26.856766188717863
-95717 -120.838453395757099 39.1723148163862476
-67155 -99.11655933591733 37.2106099741601994
-58474 -98.0864945760119866 46.1133419769114568
-04988 -69.3324440735857195 44.5960227972195895
-43201 -83.0018563108398695 39.9915500045466104
-95221 -120.568349243536275 38.0548817931609307
-56748 -96.0329662474747323 47.9222209507575769
-24538 -78.9629648135040441 37.3451940075365343
-41751 -83.1333316477986699 37.213389696016705
-55705 -92.2528291334997022 47.4714358042731703
-83449 -111.333708650154762 43.4467253962848687
-95323 -120.698160541130093 37.6267826174429985
-95433 -122.511788879999983 38.3116877199999948
-47841 -87.1124190986848959 39.2805215975149125
-47145 -86.3028130136506206 38.3315204022750891
-50075 -93.5637463030660115 42.3268875640723294
-41234 -82.7425100461638863 37.7956248719116132
-73447 -96.8789223329312534 34.1949995765983275
-83857 -116.809379057835699 46.8976417151742098
-07059 -74.5153087940031185 40.6286225127150331
-52352 -91.7680785044141061 42.2838304373995868
-97051 -122.861142798634418 45.8672341738264961
-77960 -97.2380673357271093 28.6947400807899804
-28370 -79.5246281499999839 35.1892202499999982
-04691 -67.2597698714455277 44.7588528228672615
-32721 -81.2991674444444357 28.9978087777777773
-39167 -90.0491774545454717 32.0949233295454377
-85311 -111.981773615384554 33.834933969230768
-52533 -92.1672272744150263 41.0156632768361931
-02115 -71.0940775888446836 42.3411867776892095
-44004 -80.7899012366270881 41.8651168432497514
-45779 -81.9729157386542084 39.0012153192488427
-19014 -75.4340488690142053 39.865536792518121
-47859 -87.1732539724962976 39.8848308998443173
-07002 -74.1188486393625254 40.6662774333240833
-59937 -114.397730058826355 48.4108850731514337
-01827 -71.4980243226309256 42.6732105355629727
-83401 -111.966662112487342 43.5344170090716531
-03076 -71.3191611030375583 42.7344415362593821
-84335 -111.8573225181308 41.8335666853931656
-11939 -72.3422925106384014 41.1276926966115468
-18944 -75.248913761694709 40.3795748300781909
-70810 -91.0843331933798197 30.3565636835433494
-36542 -87.7531642257801678 30.2698440122892656
-99745 -154.257528673913015 66.0468826956521724
-98025 -121.906340793103425 47.4309198850574845
-50522 -94.1982864129996358 43.1946281308034585
-89047 -117.635377381147507 37.7578189631147652
-12206 -73.7773795913212354 42.6702750200777103
-80542 -104.99144087120338 40.2333322410612055
-34972 -80.9045772248573627 27.404951991002342
-07112 -74.2119024501245974 40.7119627899002694
-17857 -76.7851394489720462 40.916286971916243
-16360 -79.8842850094906538 41.6841668911736392
-22650 -78.3889353678425067 38.7612109348158995
-72156 -92.6841574994283945 35.276476420571484
-59214 -105.908542199286742 47.244337522068669
-82433 -108.906166200071539 44.1603438238656594
-00794 -66.3075564249012217 18.2103783761528817
-99766 -166.768037968421169 68.347591831578967
-92014 -117.250125804688793 32.9632218192652573
-80648 -104.781641316077597 40.7350596854156422
-28630 -81.4222876263676056 35.820173503133887
-53526 -90.3433755659008995 42.9723122539299069
-19950 -75.5917485830227207 38.8202107786462918
-33479 -82.0685840000000013 29.2204493333333346
-71039 -93.2872773890157134 32.4327527966247118
-44813 -82.529570569420045 40.6058860396893877
-89816 -116.347775909090927 39.4061884545454575
-49043 -86.2902712955413591 42.2956970488322668
-59714 -111.160237826569627 45.8497802828645007
-04267 -70.7817601820331106 44.2194200023640818
-72944 -94.2211402044930679 35.0505354363285662
-67001 -97.6268892305180032 37.7754134549696658
-12203 -73.8417499041511007 42.6797605873672268
-18929 -75.0889300666531625 40.256738976451885
-55402 -93.2714633405797287 44.9756951594202832
-14039 -78.1731305378788193 42.8316198143939459
-73255 -98.7558635000000038 34.6191589999999962
-74078 -97.073469750000001 36.1268044999999987
-27342 -79.6280781176470498 36.0753138039215813
-30528 -83.7643037029424988 34.5948980082824846
-04107 -70.2305320867580889 43.5973541901925685
-29579 -78.9380624342025357 33.7442436878407008
-00730 -66.6125183340594731 18.0237540999757826
-59472 -111.170503827267197 47.4037158494756241
-69143 -101.016599036791931 41.1769698490944904
-36107 -86.2775135435272205 32.3792106605425971
-22724 -77.9113734674924103 38.6325098001160967
-33476 -80.6612758308457671 26.8173016915422835
-60502 -88.2558802224459527 41.786150839504387
-65754 -93.302068501378443 36.8532985502166284
-26343 -80.4003892612681454 38.828059507257386
-08077 -74.9949108207110413 39.9980793063412392
-25033 -81.9224593132807968 38.6034205631164937
-24869 -81.8260781052631643 37.5518690175438579
-72615 -92.9721912695035826 36.3241590638297822
-20623 -76.831099408536673 38.7449474728381844
-62846 -88.870438995260713 38.1508719123221951
-31779 -84.1682185817155926 31.11404132729621
-46542 -85.8527022190687461 41.4055286734637846
-44866 -82.1912696916425176 40.9139144569782189
-93618 -119.387458946161843 36.5331821144899891
-59315 -104.860249531222678 47.4244899204250245
-02702 -71.0583985139899568 41.7961288382765588
-29404 -80.0659509147663471 32.8954857839252384
-31762 -84.5047255744680967 31.4312801063829852
-27844 -77.9485748061924681 36.2510265776949652
-12304 -73.8992377053077405 42.7754854805913496
-10588 -73.8301550634595429 41.3315247932445828
-27814 -76.9401324740994852 35.4135219449926311
-90022 -118.154871981434027 34.0235146920455733
-68736 -97.3612063722979286 42.7330853787029028
-16613 -78.5475861063448519 40.5552689296246882
-82210 -104.800207280728344 41.7463821274658216
-45228 -84.4176980000000157 39.067600169811314
-84323 -111.864018999999999 41.6971029999999985
-99568 -151.398157914325054 60.2248597210419874
-87851 -105.544942399999996 36.4400019999999998
-98199 -122.399930158159265 47.6474988590942488
-30415 -81.6131459368035479 32.3324123742804161
-15870 -78.6204231169346031 41.5838582437958948
-95663 -121.176817409929157 38.8540039588653059
-67109 -99.4718185507246773 37.5819329565217117
-40503 -84.5376800308615657 38.0040107375752143
-06490 -73.2972243333333324 41.1412093333333289
-10174 -73.9754520000000042 40.751457000000002
-72466 -91.3294645779085812 36.055106385883029
-20731 -76.9117047499999984 38.9003360000000029
-65655 -92.4036233830088349 36.590220089885058
-72080 -92.8072737668529157 35.5006928771650294
-30320 -84.4286096363636318 33.6552197727272713
-42288 -86.6343914210526265 37.1835217368420956
-03595 -71.5305177464408928 44.2825419077965989
-36703 -86.9476511668701164 32.4403027169675298
-50875 -114.236105714285699 46.3748000000000076
-45304 -84.5220881456393869 39.9887702298428138
-76905 -100.349836451893111 31.4729469784403761
-93426 -120.956106341434477 35.7944869768924079
-16332 -79.362180957317122 41.3692614857724053
-04411 -68.6241642170542576 44.8891324772287277
-12464 -74.3290168610895279 42.0691317642024316
-97117 -123.249431530163008 45.6000005689123924
-26270 -79.5555690076335651 38.8885967366412331
-07420 -74.2985279856719671 41.0299841368576068
-35111 -87.0941477111728233 33.2807599620690979
-91330 -118.525751 34.2498333703703679
-52071 -90.5151110944206607 42.3617887167381966
-20866 -76.9361493938996688 39.0994600033889981
-64082 -94.3984942026025635 38.8544103925926407
-97502 -122.927354613725612 42.3861519580335369
-76265 -97.5369384481817434 33.7179409489499591
-04083 -70.8024329286658087 43.4670603378468101
-49327 -85.851374344049475 43.3428368929548711
-39443 -89.1073901397885066 31.726143347246694
-43360 -83.6397587295712697 40.324567768046883
-47448 -86.2349955730663709 39.1989270716535216
-16930 -77.1314783963692037 41.5571490771867929
-29638 -82.3354975121125392 34.3660945808122378
-38541 -85.340377952010499 36.5110673150669811
-76564 -97.3515446666666691 31.1998386666666647
-75123 -96.4409445000000005 33.0254219999999989
-59043 -106.715367108459859 45.6035909392624674
-89705 -119.788001347147372 39.090782420948095
-84118 -112.008577716154008 40.6516100387232129
-81003 -104.627275548096435 38.2799789467240856
-43311 -83.7539244580517703 40.3602995058334173
-15647 -79.727014628770263 40.3437771020881684
-98343 -123.767315999999994 48.1328644999999966
-95447 -123.213305666666656 39.2867040000000074
-24151 -79.8818873462484333 36.9779911984756353
-99140 -118.687861036919287 48.104728594680445
-68377 -97.0267958404221531 40.2156030867642613
-84360 -113.517747909090929 34.9167738181818166
-32640 -82.0360043068716749 29.5998207357211314
-48050 -82.8025452191082678 42.7840942815286454
-15272 -79.2994236666666694 40.5577403333333351
-90242 -118.143043114964797 33.9211875966660017
-36311 -85.690828006232536 31.5979185837111203
-39116 -89.5459320507027599 31.8740047630522909
-10035 -73.937569838323256 40.8019485314371551
-02343 -71.0060532923178727 42.1481151901042139
-55108 -93.1798424138860639 44.9811322814289909
-07626 -73.9611410630042343 40.9407915136560447
-79107 -101.814342277736074 35.2292284700564835
-29405 -79.9865268458934935 32.8610716886549881
-97134 -123.963704389969323 45.4535662845444435
-57243 -97.4405313302604412 44.8991732011930935
-80922 -104.70045815779126 38.8932422570021856
-33064 -80.112329495684989 26.2785222810140695
-32818 -81.4854029400273276 28.5821690468211465
-49735 -84.6798960133714473 44.977879450063277
-29540 -79.8768095637575755 34.3790090732174534
-33920 -81.6499089374671172 26.7112675906464467
-69201 -100.575911423823754 42.8515943267364108
-98380 -122.876579182030881 47.6009500981738753
-72947 -94.0605250595786089 35.5488091167618734
-94520 -122.039941494599915 37.9850070275990319
-61723 -89.2573251673506292 40.2591952306870127
-30019 -83.8953283702249024 34.0030134251754745
-07860 -74.801478571674977 41.0601748132359674
-86515 -109.05779508688515 35.6739788950819516
-52158 -91.1835835767195277 43.0457710661375827
-49895 -86.6393541761206478 46.1413175827052697
-78526 -97.4784855694017978 25.9738028411743223
-31321 -81.6524052987487607 32.1865103237776395
-02807 -71.5759918958586638 41.1733090422195573
-88592 -109.63447124999999 34.4415017500000005
-93405 -120.710320902814829 35.2667712538999396
-58222 -97.6969847080265055 48.6290402114084088
-78634 -97.5560428660095056 30.5460164194961834
-27258 -79.3296530558231154 36.0407969338288865
-49271 -84.455743883576929 41.8389830528683007
-80747 -103.128308772357641 40.9539872962398661
-33166 -80.3021866219369258 25.822567576368197
-75669 -94.5583132177309409 32.0311366450407604
-06611 -73.2102140644295361 41.2584118903072365
-60586 -88.2248097656110701 41.5648205673405684
-82334 -107.099342258741288 41.8039556503496783
-58535 -101.215039441540654 46.4823527942665038
-48418 -83.9829245127860418 42.796611982503407
-70775 -91.3680574767412992 30.8773598747104963
-96021 -122.279462033901822 39.9497337307540334
-24824 -82.6946128148148176 36.9538308518518477
-99659 -162.04029700000001 63.4784195000000011
-48158 -84.0353232144871498 42.1545576933070123
-62931 -88.2934449520958395 37.5326350558882211
-70459 -89.7741745999999949 30.3161586000000014
-48761 -83.8628449970510985 44.5009944108781497
-94614 -122.212745450000014 37.7326126500000001
-85123 -111.674333508044796 32.7491051677230445
-98565 -122.931742024038371 46.5985164663461191
-88944 -117.739188999999996 40.8741136250000068
-10676 -73.8608547500000014 41.4798408333333342
-37687 -82.0907440719686292 36.1826349231790729
-75792 -95.099318275510683 32.4586912416996825
-69003 -101.936111333333329 40.0133563333333342
-23848 -99.9046620000000019 36.7096769999999992
-37785 -84.2523663333333417 35.6380351481481412
-41368 -83.6600841717171733 37.5864548181818137
-76244 -97.2830419052645112 32.9316950979040612
-98280 -122.905005416247363 48.6047046150869946
-05153 -72.6262596138904399 43.4260358730708518
-26575 -80.4511728448275676 39.6899653374384087
-67952 -101.168952173054507 37.3112083495935494
-48235 -83.1952019783838921 42.4277004491512812
-65275 -91.984202451011015 39.46551926594082
-97473 -123.800230504510139 43.6606416378865845
-75652 -94.7670337109472456 32.208040977630688
-14508 -77.9964016250000043 43.3241394375000084
-57460 -98.616312450422825 45.2712485245966505
-53506 -90.275049870447063 43.137381996411321
-45203 -84.5300139192545998 39.1033344645963012
-76052 -97.3843781439676519 32.9653153684802405
-95118 -121.890872294961142 37.257048292003347
-04280 -70.0684793133444117 44.1132550521450284
-62833 -88.1469463054187514 38.3679894581280863
-71419 -93.7157648555249665 31.7891603915842929
-78080 -96.7561425000000099 32.9859539999999996
-62082 -90.3632740299050568 39.5004789941095282
-31087 -83.0626118215427169 33.2402636179826985
-80456 -105.745335859878566 39.275849210027765
-46211 -86.4936797142857188 39.7312814285714282
-62083 -89.1892972507432944 39.3542164549058455
-42083 -88.2797705644504305 37.1576449874680605
-16845 -78.0145625664222422 41.1375821885900308
-26155 -80.807587593143765 39.6380406135429766
-24805 -81.6795824999999951 33.6800420000000003
-04750 -67.8463064799627205 46.9271194599256063
-02720 -71.135234876818501 41.7207787785782571
-75423 -96.1995803715285405 33.2825027451574869
-12739 -74.5989629999999693 41.4469915454545372
-29348 -82.1339122857142883 35.0767264761904798
-61458 -90.1834449379777539 40.7847069611992978
-52344 -91.6841358750000097 42.2924917500000106
-67831 -99.7664536008146428 37.1871891384928617
-40464 -84.918454792455492 37.5745458475250942
-50167 -94.0453745458787438 41.7454177939346138
-60464 -87.8483042218696255 41.6645254924646622
-69220 -100.107503666666673 42.8708860000000058
-14863 -76.7122783529411976 42.4570996666666645
-41204 -82.6871380359777675 37.8255204827797158
-98924 -120.567932833333316 46.6895455000000013
-84343 -113.419792000000001 35.5394927500000009
-04574 -69.3865475887469785 44.2743204499226835
-62237 -89.5906767158594448 38.1924954589963335
-98312 -122.721949275548397 47.5774355992667566
-49289 -84.1002665000000036 41.7704100810810814
-53545 -89.0254284373548046 42.7045968102006626
-46067 -86.5176918571428502 40.4167790000000053
-67120 -97.3694020706180225 37.469913353720024
-04652 -67.0573727046673582 44.8275888256625237
-79839 -105.82721964128929 31.284631564471848
-91741 -117.84801338719825 34.1418457635658257
-72365 -90.4258509642243382 35.5265980343447012
-58421 -99.0765562057207489 47.4425189557888274
-19079 -75.2692533631284277 39.9036989201915517
-50141 -92.9485851629244166 41.8741229221932443
-78501 -98.2389162766697126 26.216021399639974
-49080 -85.5863499975593811 42.4613761322759302
-28610 -81.1372460893738321 35.72826106724537
-08037 -74.7838310903882615 39.6374585274491622
-59538 -107.831422974914915 48.2531382558722655
-92303 -115.738509833333339 34.4456894444444472
-33160 -80.1358410845796385 25.9425793929860689
-30824 -82.4968355042094998 33.4973774633377559
-44121 -81.5337971287788577 41.5278404570739212
-52032 -90.8292031105534647 42.2920440970478282
-12148 -73.851153780946234 42.8407726320027038
-21208 -76.7275048651502232 39.3801841395039816
-36912 -88.3090311229819918 32.2308072619094474
-19707 -75.6877663933086922 39.7806541112472658
-62702 -89.649130681826307 39.8181135419602725
-70547 -92.6280762499999923 30.230254249999998
-30030 -84.2923974930025395 33.7726047563118073
-17751 -77.5023419494172572 41.105185657717719
-59075 -107.743365670329666 45.4306768461538439
-15621 -79.4844735000000071 40.2129490000000018
-75783 -95.4289005239646144 32.813896884402304
-29003 -81.0226545898941026 33.2536440573428322
-20879 -77.1810065851520761 39.1705124833002216
-48161 -83.4312195401464862 41.9058895008991996
-63347 -90.798319699405269 39.0619442814920816
-83610 -116.74060407245031 44.6534832217107791
-61435 -90.5668910848861088 40.9892993022774164
-25466 -79.2672484999999938 36.7123246250000008
-54702 -91.5134547647058838 44.8123071176470447
-67867 -100.463146444224989 37.5736016722606863
-53719 -89.5033854567888625 43.0260345981983008
-65728 -93.3358190773809611 36.8722534583333328
-96702 -159.308710000000019 22.1606590000000025
-47598 -87.2077641668126233 38.3796718899123803
-77344 -98.8370074999999986 27.4273227499999983
-13409 -75.5929030291948436 42.9709605709230118
-31416 -81.2471993999999995 32.0020398999999998
-30753 -85.2946532828021731 34.5695383713400943
-28282 -80.8458329999999989 35.2251837499999993
-15217 -79.9237092952161561 40.4313804719135064
-24828 -81.6540597434782285 37.509522643478256
-93649 -119.349325468926594 36.8423374689265657
-81244 -105.165021170700598 38.3650609872611525
-04911 -69.9484386420077442 44.7787949534367584
-65723 -94.0304778612359371 36.9605303961638256
-28316 -79.4280325000000005 35.1518599999999992
-29125 -80.4523809330939912 33.705044749344701
-76852 -99.4363973326402828 31.3518644781704978
-33327 -80.4109419344887613 26.1163403919414776
-13661 -76.108611895418079 43.7081532931095964
-34423 -82.567846000000003 29.0230682500000015
-30606 -83.4283959814162586 33.9393386177552259
-63626 -90.6885578238683365 38.0673033658437063
-61520 -90.0213325666573212 40.5562350285797422
-69023 -101.84107552812489 40.4714083015625334
-69039 -100.389293400696843 40.6984993658536141
-67579 -98.2299825692869462 38.1616304309955581
-39045 -89.8147373168951333 32.780950754123964
-38736 -90.5381505598504219 33.6353697680798476
-04747 -68.2672993171003952 46.0200421044610479
-87820 -108.598750583333342 33.8536227708333328
-29845 -82.2242298002382768 33.838508309892724
-76804 -99.4323825769230609 31.6193089615384579
-36339 -82.5929973333333436 28.3418549999999989
-13345 -75.3329928821752901 43.6876951238670586
-25437 -78.5732794107317289 39.4321953619512442
-85138 -112.011611680669333 33.0486673849668477
-74750 -95.0128213782607816 33.9879745217391118
-75716 -96.7574385000000063 32.7436725000000024
-24847 -81.4130641724138542 37.5631063667711231
-30655 -83.720050081128889 33.782018219231901
-46513 -86.4443999333333153 41.3610263500000102
-48883 -84.6645582316979954 43.5452722118240132
-41522 -82.4119912173950127 37.3138808847857035
-74229 -96.8380945000000111 32.9037605000000042
-56510 -96.5388385231253494 47.3663532320407725
-24059 -80.1279284183324449 37.1538537501063431
-31640 -83.4371955000000014 31.1600457500000019
-71322 -92.1689317191761859 30.9230695707837988
-74346 -94.7795949007244332 36.4526975293795488
-07734 -74.1339147674623433 40.4431871271826537
-87732 -105.252095249440629 35.9393240447427829
-81649 -106.371545113043553 39.5046107420289729
-78752 -97.7034134416701505 30.3314601706917735
-07751 -74.2626177308722077 40.3584705241397188
-10461 -73.8403438964300562 40.8451249603765589
-60124 -88.3653786954565561 42.0274314873552299
-01001 -72.6235600691788932 42.0680364945164413
-76351 -98.625929361137338 33.6000815706161617
-92274 -116.072673220509927 33.4600669976425138
-14423 -77.8407520213988562 42.9491311877588515
-19085 -75.3444666706694051 40.0408998514565582
-25805 -81.2045258181818213 38.1657847272727366
-55956 -92.5266073235512039 44.2589204297918783
-68320 -95.9290438183161598 40.4865180236337068
-39710 -88.4456472499999933 33.6265592499999997
-68960 -99.1340410477706797 40.0783858757961724
-45310 -84.6429798139535308 40.3525542790697926
-17066 -77.8626465536122794 40.3685228729907308
-77418 -96.2860288323025912 29.9756456876351614
-24813 -81.7320667210884295 37.3397083877551097
-54730 -91.63721634056607 44.9960327750000602
-12210 -73.7577468241985912 42.6576192678387116
-80615 -104.702929338891821 40.5335429381842118
-33194 -80.444535616319385 25.7552574184028096
-40216 -85.8327098069149201 38.184814099405294
-18842 -75.6185819649806348 41.753480071984427
-51347 -95.3186883338824913 43.4209204411764631
-35228 -86.919501613132482 33.4580470540366477
-92134 -117.144580333333337 32.7246366666666688
-21133 -76.8013164225840939 39.376074448207504
-62330 -91.1402220018222238 40.5891269957482166
-24551 -79.3088139228315185 37.360614367147079
-02145 -71.0915407158897636 42.3908354008165631
-46942 -86.2467838749999913 40.8577551250000042
-61231 -90.735976147115565 41.2130360221550305
-33017 -81.8611268571428496 26.6867259999999966
-25060 -81.4338862319391268 37.9502733441064919
-54932 -88.4812866000000042 43.7844366000000065
-58623 -103.406371218162889 46.1711761852818015
-76627 -97.4017333030301273 32.1197287888563423
-46901 -86.1529473899940399 40.5039843398741013
-56630 -94.4930716635623469 47.7138303393231951
-35440 -87.1773333461538442 33.2925089923077095
-71822 -94.1346462506748907 33.6772429946043772
-63031 -90.3389099585406399 38.8072842550665342
-17748 -77.3413764885993231 41.1564572671009969
-26075 -80.6598317760618073 40.1938518223938388
-15936 -78.9125683683050738 40.1573583193025883
-36736 -87.7688627599298883 32.083554525408907
-68717 -97.2145561087963728 42.3989271805555674
-97527 -123.372023182329329 42.3992118891648389
-18357 -75.2361897487437119 41.2265584723618375
-68071 -96.4702371557285119 42.2332117497219812
-23605 -76.4368543050533589 37.0190582925531402
-71457 -93.1023893722911566 31.7513897779953211
-13688 -75.8229906666666693 43.8961853333333352
-12732 -74.8868319124473061 41.5314256202532377
-18840 -76.5438763797418176 41.9770960299353888
-75649 -94.7510910000000166 32.6958743333333359
-18338 -74.7468967619047646 41.4130439999999993
-24449 -80.2563293999999985 32.7152129999999985
-38924 -90.1547778844686576 33.2970201683923861
-94954 -122.613467965735637 38.2551229803801363
-05667 -72.4129762795597998 44.277914188965859
-52328 -91.6638479068510037 42.0727699483172799
-04532 -69.9950096250000087 44.5160819999999973
-01982 -70.852661899911638 42.6208513122466215
-02151 -71.0067445536860902 42.4161902284143508
-03768 -72.1451546212078654 43.8069005229702952
-13678 -74.9775501891891736 44.8348382702702608
-68335 -97.7956905839693889 40.2874121424936433
-24621 -81.8337989999999991 37.0909978888888929
-53557 -88.816493766666639 43.3382620238094916
-40997 -83.6959846281779392 36.8908904375000049
-35082 -86.1391962145749517 33.137216461538479
-78736 -97.9264857210975777 30.2441408652619437
-32228 -81.3978250625000186 30.3927318124999992
-16438 -79.8510626413963109 41.8867479618832022
-13486 -75.350563211630714 43.3412888153476956
-99141 -118.089674355574473 48.6981134558148909
-60069 -87.9188143490935943 42.1951099842394584
-82649 -108.192445658462788 43.2030866721616178
-56073 -94.4679050797627724 44.3116646868178208
-13042 -75.8474310493516555 43.2508997331661007
-38344 -88.4226586491418942 35.9809203664651065
-23315 -76.8397774835405158 36.7430680951590531
-49818 -87.2469263415978844 45.9222226902356709
-57709 -103.277896578947377 44.0264699999999891
-36741 -87.0535887999999716 31.8981108571428642
-68978 -98.0702768669528382 40.0317536456843186
-32357 -83.862428838709647 30.345374677419354
-56659 -94.0141803753894862 47.6669570607476132
-13124 -75.8156882037037576 42.6428454074073997
-42236 -87.6160124963378451 36.7230678281907998
-82073 -105.863763949152641 41.552500903954801
-49079 -85.8984773811177291 42.2316673919810341
-07036 -74.2568788892576634 40.6348307083583862
-16250 -79.2289430241692543 40.7778475377643375
-30552 -83.4401300400873822 34.7741203514739325
-46280 -86.1326440348314719 39.939378934550561
-01464 -71.6471202474319426 42.5689420901620394
-28643 -81.5313757185681851 36.5282731897936159
-56436 -94.6933780819672251 47.1534333606557396
-07438 -74.5089051229145696 41.0279735657106031
-48347 -83.3665097500000201 42.7152393928571428
-79029 -101.974433716120146 35.8724883132309174
-80024 -104.884012479452039 39.8464951506849374
-51363 -94.9459353054393489 43.4317335606694144
-08087 -74.3717253962085039 39.5942187426800771
-54015 -92.4505373671495931 44.9807189148549753
-62258 -89.7929472919131229 38.4801575429442053
-73117 -97.471520829891233 35.4775079212264259
-15638 -79.3996051576087041 40.2625105163043528
-70518 -91.9494121172054406 30.1323391184336487
-28574 -77.5820352848555501 34.8611432818472551
-74454 -95.507961478937176 35.8686528175632162
-32828 -81.1725753488394446 28.5373354183532371
-61430 -90.3128499901719834 40.9439189631449665
-79698 -99.7349188571428584 32.4755787142857102
-26184 -81.3734185027370103 39.3005863288009252
-93432 -120.493393283817838 35.4754321622419937
-67564 -98.9307580353333549 38.530095305333397
-37522 -83.4560611999999935 36.5928863999999976
-61284 -90.7395251512836865 41.4079106268338677
-49952 -88.8319156930894138 46.7227386991869196
-68643 -97.2583188123527833 41.7315662000000316
-97640 -120.777895208823608 42.9206906705882147
-22204 -77.0995093219713681 38.8602047184060453
-06876 -73.5847590000000054 41.0324057999999994
-64096 -93.5709563903448753 39.2074291579309673
-15648 -79.8460946363636168 39.9354522727272752
-04706 -68.1114096666666597 44.4656960000000012
-29160 -81.0474682187516891 33.7435764917416279
-68443 -96.3740202264678913 40.4654959934762104
-54304 -88.0688379552025253 44.5011823979684209
-84742 -113.195896584507082 37.5309865528168913
-62991 -88.8925824000000233 37.5273015600000193
-72322 -90.8108519477612219 35.0758894402985035
-18220 -76.0695195692307493 40.8386964923076832
-06093 -72.734698120792757 42.0102972943156274
-49348 -85.6063104704170996 42.6736526161081784
-66876 -96.0133401999999876 37.9207833999999977
-11554 -73.5557474039542853 40.7135238874786083
-74939 -94.6408139294806432 34.760376550901448
-97325 -122.860180896625792 44.8364626063201612
-78143 -97.848572558823534 29.2503957647058712
-15563 -78.9428695968119172 40.0977357864676023
-07979 -74.7257874210526865 40.7129893222079744
-50118 -93.381680351960739 41.4541565852941503
-61274 -90.2700712000000465 41.3739318019999303
-53554 -90.4503019699375272 42.9005264699377378
-60641 -87.7476611703579152 41.9462139549403759
-49247 -84.3390370655215094 41.8516917731940765
-04259 -70.0059871078797613 44.2270026160845262
-39175 -90.6068148459733322 32.1016184962496851
-56532 -100.726483500000001 44.211017499999997
-38380 -88.0285814071287547 35.78676450065403
-62667 -89.983959919003027 39.4842768868119975
-50460 -92.6996064686129699 43.223395041605869
-07844 -74.9673398786127194 40.9144949132947957
-77545 -95.4714425226859049 29.5273471569048098
-98122 -122.301796070464306 47.6104615128692075
-34243 -82.5155359713612739 27.4048865775751018
-10990 -74.3682725562086659 41.2623475273463427
-19106 -75.147101118964315 39.9498475388382985
-74512 -100.868425294117642 32.3868339411764694
-74029 -95.9257855551312133 36.8102062681338538
-17320 -77.3814514286663666 39.7613816013686332
-36604 -88.0672716613342601 30.6819216844792493
-76824 -98.6779096799999991 30.7443428799999978
-32819 -81.485034988553025 28.4651654969243531
-29673 -82.4586452853789922 34.721318433172037
-36549 -87.4605000031936868 30.3960290112740168
-99688 -150.015667539215059 61.8447920659105961
-46347 -87.0191143463005261 41.3068519196541928
-44883 -83.1750109886419722 41.1184957301240104
-80290 -104.987276500000007 39.7435979999999986
-18934 -75.0634153221153468 40.3582140576923223
-24248 -83.4956836655137948 36.6225779282906672
-04933 -69.2190003999999988 44.8192264909090881
-64778 -94.4927376397260019 37.9250437260273827
-03287 -71.9122282222971734 43.4414775476350883
-85343 -112.692391682819391 33.3436713303964964
-38937 -90.4716197500000021 33.7817709999999991
-31029 -83.9319319485370414 33.0363949827119754
-43152 -82.6092328891087959 39.3979743469719565
-37840 -84.3686282151097515 36.0350289631870311
-84604 -111.649715125117254 40.2799111788384181
-80740 -103.406684230623881 39.7497572079394956
-55718 -92.4864618815624198 46.6300347041811634
-47451 -86.525117625698357 38.8947925061452224
-49685 -85.7081785149217268 44.7066361344321521
-76650 -96.8675488846153598 31.991623185897442
-31018 -82.6169885204339067 32.9504002038345831
-37716 -84.1580211173472321 36.0961949423836188
-60048 -87.95019556804057 42.2930436572963941
-50576 -95.1729034894778323 42.80711616757592
-82602 -106.306239522123875 42.8322300088495567
-62417 -87.7594428367485762 38.7107861161202322
-64018 -94.7321313434141814 39.4531162930107442
-29834 -81.8455022388663025 33.5129480283400838
-49056 -86.05360973333309 42.3949200097742818
-75455 -94.9760222138980765 33.1859670384146526
-82411 -108.429701461995307 44.4342920950118625
-99631 -149.455942509615284 60.5099925206044134
-50586 -94.435440916718278 42.3872827905532148
-49509 -85.6952157323269006 42.8997743262151019
-56157 -95.9345576519028214 44.3966898016219815
-65287 -92.5162169292624128 38.8769775435307992
-66859 -96.9380374539876755 38.5527105214723846
-17408 -76.8024052173739733 39.9468819870982159
-98320 -122.928990284390451 47.6796900679983082
-95219 -121.390458180160522 38.0108316304471572
-08048 -74.7998127782618525 39.9647228068934197
-48867 -84.1825125416589657 42.9977148583763693
-80802 -102.198097891148237 38.8480352296650366
-47010 -84.8382112760417328 39.4958994913194346
-27608 -78.6471942377817612 35.8084258114202925
-56542 -95.719177111302514 47.5752398739227544
-03892 -71.2939843000000053 45.108306799999994
-01853 -71.0884046666666762 42.7621139999999968
-74466 -95.4356658571428653 35.8370678571428556
-54943 -89.6398268380878989 44.1384477224364176
-43056 -82.3518096568747779 40.0162183655560568
-17361 -76.675440397653972 39.7649832917888162
-76453 -98.3261053494452568 32.57480571473846
-53901 -89.4640380528177985 43.548953204485116
-71389 -91.8148962500000039 30.9864069999999998
-13092 -76.4211689564048839 42.6512607113501261
-54112 -88.1094043737372346 45.0494007417027333
-93675 -119.17900272999357 36.7094288084618796
-68010 -96.12962316139226 41.2567298939873055
-91020 -118.23031130501262 34.2112126584536398
-61329 -89.2137927877846977 41.3810955434782244
-39481 -89.2444288116617628 31.8654946197110291
-14847 -76.7253616018238773 42.61385231914889
-98952 -120.733810397639189 46.3714390900037472
-68974 -97.8643229550173572 40.1379806020761336
-47519 -86.9871446595745539 38.597614693009163
-07727 -74.1724067370638807 40.2045068535899972
-24326 -81.1958085679029864 36.7250773466364819
-32525 -82.9777315000000044 29.2192280000000011
-78824 -99.5253965833333467 29.9485460000000039
-51558 -95.8636533208293713 41.9097443543764001
-04640 -68.2784675173936364 44.5198150789927638
-49674 -85.5819332684563676 45.0587205033557225
-98204 -122.253835202418642 47.8960324085350422
-38080 -89.4739261965836477 36.2272656270990083
-29124 -81.3121751666666626 33.6276569999999992
-37771 -84.3043012564861129 35.8248079496991139
-90712 -118.148035029385753 33.8492867582368291
-93234 -120.09938528362882 36.1992490406674037
-48462 -83.4267405136203308 42.8402451530797634
-55025 -92.9857843300864602 45.2676885222299319
-74754 -95.1050978809523855 34.1847422083333186
-28904 -83.7690068259743015 35.0414848223987434
-59927 -114.636232255884607 48.5248133287775687
-15658 -79.2308758932895216 40.24868330039466
-41831 -82.9483000555947427 37.3825471861365912
-48414 -84.0756189332444137 42.8686341682242968
-53968 -90.2384058911798093 43.6497844192439715
-72943 -93.8010502746862898 35.1914894318671827
-30629 -83.1168932969206935 34.0879888922947671
-23037 -78.1906035624999873 37.6232049999999916
-92657 -117.832235672908851 33.5973493231674709
-46204 -86.1561783118456503 39.772549585674895
-48870 -84.9850782857142946 43.1085712857142838
-28202 -80.8437212623854293 35.2278951897247126
-51020 -95.4082689119330496 42.509452792602417
-14813 -78.0005488406580128 42.243028055512795
-11803 -73.4785210064327572 40.7790580665838007
-51565 -95.5144613198508097 41.6463032190417266
-50861 -94.2646033462282134 40.9176018510638286
-75206 -96.7698693120772333 32.8289680849481087
-87939 -107.407320234848541 33.398967272727262
-04562 -69.8279911717193045 43.7892623303826909
-30557 -83.1797828859145625 34.49071099211519
-45867 -83.5396363394010137 40.8966442395772987
-30730 -85.4180983258699342 34.3815498579492527
-34787 -81.6030365143114551 28.5211836517798254
-16670 -78.5100640526315772 40.2628215614035199
-61039 -89.4752925208480718 42.2025157286219326
-46409 -87.3274238772312827 41.5422434686548385
-07507 -74.0643809999999974 40.9377075000000019
-50546 -94.7143600150322129 42.8425747637794672
-49634 -86.1779867433628652 44.3366203539822905
-95005 -122.088214316686546 37.0873217136768218
-34772 -81.2794087288591669 28.2005818080899147
-24150 -80.6486452608085784 37.3724239689180351
-24372 -81.2483341249999995 37.4189997499999976
-64123 -94.5253949275521563 39.1142863710208175
-37181 -87.4851765788857421 36.2403838696669993
-41008 -85.171579026800373 38.6599015848677254
-06088 -72.6008575593583174 41.9112884417111644
-33170 -80.4110207263559147 25.5586502124607691
-60478 -87.7230547063498989 41.5600967751958095
-67334 -96.1814538829787296 37.0199938085106339
-01832 -71.1218221488684463 42.7841075254180296
-63341 -90.8245226426105603 38.6726475899725841
-38580 -85.3349037673483508 36.2756351007374818
-45212 -84.4521165029328387 39.1636554756439139
-76637 -97.7991064488847002 31.7690148912640069
-30527 -83.7940609697070897 34.4772707352219641
-62661 -89.8481682888411086 39.6654102333538887
-16683 -78.0905466187407313 40.6448190897371973
-28538 -77.5729656056734456 35.4225197314081512
-94575 -122.098534217948696 37.8458335256410194
-83525 -115.430900865537296 45.8012351074643362
-73654 -99.3580383653845729 35.8442020360577231
-67135 -97.4385072081827275 37.916387716094043
-69161 -100.806665112094379 42.0470303805309769
-89314 -115.704755815789426 38.9313425877192927
-34223 -82.3651284130017132 26.9749562434120058
-41238 -82.9475114557033777 37.8283357572578751
-03838 -71.1998213693951953 44.1163631299876258
-23846 -76.8406362907424239 37.0643811573498922
-70041 -89.5187448674739414 29.3615272004709134
-45770 -81.8059470171298955 38.9926274737433616
-15705 -79.1575574999999816 40.6177490227272813
-94957 -122.560353012516359 37.9645936141561862
-40067 -85.3651402645344888 38.2225237138962157
-03873 -71.1838772093119161 42.9307046382209307
-13903 -75.8998966552601644 42.0648567515231804
-35031 -86.556541942595544 34.0998576766246018
-97008 -122.807152558911255 45.4606010775532283
-45311 -84.6373519751813177 39.625404197931779
-43035 -82.993337057622 40.1777160754732776
-92676 -117.634670359270388 33.7485309288648949
-64482 -95.5275876709765441 40.447156481227438
-15548 -78.9409435249999945 40.0991867250000098
-19074 -75.2972355923821368 39.8876242654916879
-88250 -104.974558315727975 32.8298240912620827
-77656 -94.185861945112876 30.3924422193660995
-94074 -122.365645720725993 37.3233591077282654
-70819 -91.0144109153227561 30.4659836310483634
-67559 -99.466990074626878 38.4396776865671583
-85746 -111.027644912928238 32.1377776280152929
-51003 -95.9971347956340253 42.9836978805337253
-85640 -111.048969261818144 31.5993108109091025
-42343 -86.69587854999223 37.6387277092087018
-53598 -89.3415193580419214 43.2121710664335126
-54601 -91.2245015448014698 43.7960748936620945
-62608 -90.2268456363636346 39.4881129090909155
-39750 -89.0667143172745455 33.5559460538194401
-78351 -97.7497336166665889 27.6708537166666559
-05766 -73.0078313349414003 43.9878649949459515
-05062 -72.5651215587447496 43.491956848980692
-73106 -97.5361760203658434 35.482298571108096
-37780 -84.7619041538461602 35.653597769230764
-42788 -86.0319904439024299 37.5366530292683009
-64052 -94.4503912446030114 39.0732235357023825
-71833 -94.0223747401244054 34.1377820894486632
-72006 -91.3567508248231235 35.2721084837867878
-56143 -95.0028827290709046 43.6193034749204998
-18950 -75.0884914974358679 40.4582889589743644
-75840 -96.129461462406482 31.7211231180872311
-00970 -66.1065587499999481 18.3184008202247028
-65024 -91.7455235339916868 38.6188983675600568
-38733 -90.8329229019608135 33.6834833823529394
-49411 -86.24259106658549 44.1138539123312441
-55125 -92.9425228361541969 44.9170483081614051
-28577 -76.3890625222222326 34.8733060361111029
-78352 -97.6638761186440405 27.9713156779660999
-49961 -88.7250133755655384 46.469742038461554
-47161 -86.0994388375097373 38.318348295296957
-64723 -94.5660417678572003 38.3639804413265324
-24087 -80.2554284545457364 37.2280566604325287
-84074 -112.295982055793758 40.5653670098515704
-41527 -82.2905201397850306 37.6334634318996422
-81324 -108.952711566692784 37.7432789757300284
-30022 -84.2434737189940535 34.0293337314783955
-78848 -100.955569499999996 29.3675320000000042
-26050 -80.6022466325966889 40.613223360957555
-88042 -107.591666555441449 32.8271733069815568
-74132 -96.0235135201245811 36.0536392946815241
-46392 -87.0770391608225225 41.181035412973749
-75633 -94.3310037254607607 32.1363206536724846
-19555 -75.9550346293552536 40.4967414529756269
-55764 -93.3023412450593383 47.3208536403162299
-02863 -71.3932562920696085 41.8895653520309637
-76228 -98.0334534182231607 33.5965219366742929
-46544 -86.1545814582995746 41.6446869061241856
-04260 -70.2986192730027426 43.9599666528060737
-02825 -71.7252839844798018 41.7818553526900729
-38782 -90.9857582499999893 33.4513562500000035
-19428 -75.3032318893294814 40.0795311721897676
-58240 -97.4526880821194652 47.6661314496688675
-06234 -71.9492358775126775 41.786791214824234
-20610 -76.6133237906976916 38.5327941627906938
-13369 -75.3802178749999996 43.6530414999999934
-84403 -111.945262183073368 41.1836985547144536
-92065 -116.85700693689185 33.0361936309125568
-31749 -83.3379000749670098 31.41976325594446
-31821 -84.9858813619246405 32.1349990700836514
-48410 -82.9360352000000063 43.5645088666666638
-22504 -76.7080454695511094 37.7676441963140732
-93257 -119.005939039838282 36.0466314194283086
-06095 -72.6700448305385436 41.8619522041550951
-56340 -94.4465980654349551 45.7528861015219377
-85220 -111.576378293032775 33.4145886608605949
-55371 -93.5878131919669443 45.5661360642253186
-66943 -96.9703994541004306 39.6955684467564467
-34560 -88.2192209411764594 32.7061034705882321
-48642 -84.2229375567305283 43.6588845067081266
-41701 -83.2034629115821076 37.2903820471264638
-03870 -70.7611330168153358 43.0102352475196241
-35020 -86.9519814582707227 33.4044946787522719
-56029 -93.5125422093315848 43.5183819999999457
-06518 -72.9131143176335712 41.4169581639772844
-69337 -103.00154823832483 42.7857585361619712
-98272 -121.939335337873743 47.8508730528192814
-76574 -97.4006319062573596 30.5788343016134938
-06377 -71.817923277192051 41.7247338174249904
-87073 -110.463985333333326 40.3648203333333413
-08525 -74.7832974321844972 40.4010546253357177
-16619 -78.4150905865102743 40.6792335161290382
-50146 -94.2646126760406844 41.6554428031495974
-13839 -75.2521910340445572 42.2546470969213033
-18242 -76.1251577763157883 40.9062649934210398
-24716 -81.3632988863635944 37.5233849292929023
-61001 -90.1119812572882921 42.4712155122628374
-65355 -93.3562532207808857 38.2373018481147895
-57057 -96.9234488120611388 44.1023496545668507
-05301 -72.6432926900787805 42.8451670076561868
-56140 -96.3676169387755266 43.9096535102040946
-04016 -70.8882920236220997 44.1901422598425171
-02574 -70.6340625999999929 41.6063082399999971
-35129 -86.4223396250000064 33.7172899999999984
-62396 -90.983226375000001 39.9230533750000021
-79849 -106.265739883831245 31.5810982601903341
-77763 -97.3980619999999959 28.6496921428571447
-53119 -88.470253221153925 42.8771740510355031
-97003 -122.87677836396162 45.5048437448168741
-26456 -80.767218970592296 39.2954759889206713
-37916 -83.9330291081360116 35.9557079515963522
-30724 -84.8045175857143079 34.8372952571428627
-62476 -88.0184389992950287 38.5308669978858802
-29918 -81.2102965723961887 32.7404342129846526
-31730 -84.2598269614419024 31.2104666424060682
-40109 -85.7458865327185578 38.0582885763434646
-38879 -88.7204001252796957 34.1893364809843447
-49461 -86.3306812504563368 43.3862819719434754
-69914 -114.309671076923067 47.8645836923076828
-57066 -97.8634708477390092 42.9922916931882995
-84631 -112.361278729917686 38.9803907637571356
-33019 -80.1235130174362666 26.0204694073577656
-34744 -81.3467987580386165 28.3084639952623043
-46118 -86.5111698068742783 39.6615905516814919
-29526 -78.9983595750401264 33.8580036998404879
-25756 -79.2966595000000041 40.57273
-60559 -87.9752638197203396 41.792510591380875
-60118 -88.2939727250335267 42.0971372147391207
-62256 -90.229585678571425 38.2257791249999954
-62233 -89.8012330266627714 37.9292754821446039
-52320 -91.149594935612285 42.0007294875539969
-58061 -96.9224397273716676 46.2739745856052807
-14105 -78.486174335278406 43.1962342692306649
-77473 -96.1028632416666397 29.8016772583333243
-98242 -121.596615571428558 48.2455114285714259
-65654 -93.8973075616437995 37.0204442328767058
-94582 -121.925418146700963 37.7681313525083056
-82333 -106.804359000000005 41.448439999999998
-94708 -122.261138025640889 37.8937055521600641
-65274 -92.690449103187774 39.0149474169462991
-37271 -86.0450644999999952 33.7589945
-35586 -88.1413846174367848 33.8699799544287146
-18916 -75.1356459354838933 40.3507946774193584
-24076 -80.4226203910165367 36.5847882580708514
-53711 -89.4458742832411104 43.0294992005259616
-08109 -75.048642833362976 39.9520964742744127
-17069 -76.9704632477064479 40.454087697247715
-17078 -76.5906012385884765 40.2996977426945477
-67468 -97.2103568492307204 39.3998170948717856
-84404 -112.007974802168377 41.2731935853788983
-42544 -84.8235365235927361 37.0220906150348199
-64740 -93.677297014963429 38.2303964134246712
-12565 -73.6479205647208062 42.2492600139593151
-78750 -97.8011169564537823 30.4247340256010723
-04257 -70.5326591621237924 44.5648010903056715
-38931 -90.0997746000000035 34.0433589999999953
-20129 -77.597577050375989 39.158656614285789
-98856 -120.126891336390187 48.3556366473592476
-93932 -121.093539264797457 35.9677332056074732
-92145 -117.04984708738958 32.9121004336283463
-17929 -76.1929952765765108 40.6305199216215414
-74337 -95.323429274365779 36.1426110611810074
-16620 -78.3522912094972384 40.8379747178771026
-75202 -96.8041765118870501 32.7804985148588273
-48089 -82.9974547467021893 42.468765003506455
-14859 -76.5377980554721375 42.1185316495501922
-22124 -77.3299665341481557 38.8890649591580484
-10353 -75.3132275999999905 40.9019978000000037
-75603 -94.7000366948676202 32.389523497461937
-17228 -78.085560429858802 40.000373138644278
-58359 -100.163070000000005 48.0893680000000003
-89801 -115.757905839795455 40.8597084341097485
-02882 -71.4644978012142928 41.428595091312026
-91605 -118.402433599013477 34.2080991664050629
-98125 -122.301657668543712 47.7166568859691509
-24747 -81.2133841034860495 37.4002423380537437
-20882 -77.1639210482265838 39.229232987382467
-08350 -74.8704023822714362 39.492378556786683
-17836 -76.607431111510806 40.7143278525179753
-26055 -80.775129085799847 39.766950712251699
-02575 -70.6577962505625976 41.4069514637232103
-67427 -98.3897776368195309 38.5141928044412936
-82242 -104.119350443786971 42.6870725266271762
-80448 -105.682850569611389 39.4579785102473863
-14607 -77.588268842721746 43.1504406497490933
-47138 -85.5998968996534018 38.6789698730912122
-59103 -108.73042375 45.8274027500000045
-43960 -80.816193950000013 40.051444900000007
-43791 -82.0970074366196911 39.8726200704225349
-67451 -97.117035539943231 38.7131175161473635
-45696 -82.4490454876542316 38.5968410127865127
-97722 -118.728708037610573 43.0328491703539839
-17562 -76.0937874557698422 39.9761535674931352
-73735 -98.0368498054144908 36.2933985668358119
-70578 -92.2628694174500907 30.2402169577329119
-08042 -74.6666776403508834 40.013810798245629
-76578 -97.2387539627909234 30.5244099354309064
-70130 -90.0717346962984351 29.9371373037016433
-47467 -86.3439651000000055 38.7675576166666715
-35127 -86.9774009536011903 33.4879186161127222
-87317 -108.76096095400186 35.5851547019318986
-48228 -83.2178088621160015 42.3557447841989756
-35587 -87.4526959058632372 33.8134611244298284
-40575 -84.4180462977527952 37.8434898258426742
-20653 -76.4466657119988753 38.2436651467810265
-22840 -78.7378907300228263 38.3861721500469031
-48728 -83.8231705794790258 44.7548005225943228
-26142 -81.4633587164760797 39.2126220352364641
-25863 -81.315605000000005 37.6325167499999935
-25667 -82.2764860348837601 37.7042937732558201
-04294 -70.2320800421193212 44.6088176996646837
-45384 -83.8840264066389523 39.7116217302904531
-15723 -79.1573355849056668 40.7075135566037645
-71919 -92.9527913333333373 34.6708473333333345
-98277 -122.645578939402796 48.3046069885941023
-44233 -81.7391168227990477 41.2403978830700879
-65656 -93.4653142420290806 36.7808054621799911
-37397 -85.506080840185362 35.204553172639578
-12118 -73.7212634434345091 42.9087493319953595
-74733 -96.4918252204323181 33.8403402225519301
-19947 -75.3826774675782758 38.6748644083762372
-31549 -82.7428316277162139 31.9453673882739224
-83436 -111.459376647590389 43.8811132093373146
-67232 -97.1618756554621541 37.6344340399159449
-42001 -88.6829306516470126 37.0488933206830851
-71439 -93.3812002193086386 31.3310761699688669
-58018 -96.8952051591022894 46.4286414997506256
-36075 -85.8989897530044715 32.3849873719164734
-97493 -124.046283459511699 43.8952067188018091
-73848 -99.9071990720267848 36.7001448341708212
-60160 -87.8578684968997408 41.9001918117248593
-48881 -85.2120661343905255 42.9250864449081746
-45032 -84.0082245232067493 39.5018916624472638
-11712 -147.500232333333344 64.888575666666668
-85060 -111.878773833333327 33.6117879999999971
-21536 -79.1693604212480864 39.6700857765263137
-54568 -89.681743304739058 45.9287397345562667
-39401 -89.2954260626936787 31.2805929642148968
-28578 -77.8716244959324086 35.1988848440392772
-41015 -84.4923448951826543 38.9938271323966248
-04103 -70.2886679636067271 43.69241852166477
-14472 -77.5717992909020353 42.9676246134323065
-24351 -80.7654441204768005 36.580406689761638
-85833 -121.482395499999996 38.6078015000000008
-56533 -96.1468433541365357 46.4068845921625339
-94518 -122.022640640976178 37.9511797882238895
-58325 -99.1160799756810746 48.2933570894942008
-37064 -86.9131398661705248 35.8967602826976915
-75852 -95.7673646215994125 31.0246766515526318
-71747 -92.2076907982194456 33.0532454675238867
-97620 -119.908234969696878 42.1851513200757822
-82442 -107.395569383763842 43.9986492644526805
-04464 -69.4973821890755517 45.2884045976891372
-58464 -98.5730657305060163 47.597022701231154
-64624 -93.7881713136411861 39.5723541410669597
-75215 -96.7681367636067904 32.7595919997332672
-87569 -105.315796984409772 35.3757954276169286
-60083 -87.9246538726749378 42.4302064525408085
-86949 -109.737207499999997 34.2862854999999982
-97479 -123.257393988165717 43.3984952472672987
-84779 -113.172419369595303 37.2373994714086933
-11374 -73.8599816571428534 40.722936028571425
-79305 -102.697589666666659 34.4210486666666711
-05772 -72.7283604333332363 43.7637495402061774
-36758 -86.9054947909404234 32.6410084043055875
-47878 -87.2643057692307735 39.4949103076923009
-29301 -82.0003546881640375 34.93508218099808
-62537 -89.0857435263157953 39.8589215087719424
-20705 -76.9130349219520184 39.047755345190609
-49829 -87.1059267141840792 45.7544956142651102
-28120 -81.0305103953220254 35.3213967257529546
-93103 -119.686928078778266 34.43489841095721
-62272 -89.6184868485839132 38.0017223257080872
-64764 -89.9891452500000071 37.4526617500000043
-77862 -96.3433569999999975 30.5653742500000014
-73532 -99.5683370984126697 34.6674025492063649
-37829 -84.6009725908545818 35.9862479670992386
-74037 -95.9843589039343215 36.0018754115373625
-21015 -76.3064497317635926 39.5316193767658106
-68064 -96.3453863502824248 41.3337125241681989
-97058 -121.181356876459759 45.577180584472984
-30601 -83.3572254206991943 33.9871121459637138
-27801 -77.7622600506485924 35.9217958727095947
-29477 -80.5730277604339875 33.1817188724040619
-58626 -102.624465385585736 47.3668083729729332
-34226 -81.8538269999999955 27.2144364999999979
-56150 -95.1972093541164952 43.6473485323739894
-84729 -112.601780907986083 37.3254954427083234
-47468 -86.4011793834051218 39.2634769536733117
-77054 -95.3990047560543104 29.684168473124636
-33875 -81.4680695790584224 27.4288549105033788
-27875 -76.4784300716440129 35.464190858220249
-62061 -89.776678650728627 38.7810520173041766
-98405 -122.468542313085948 47.2477192133484181
-72573 -91.793008250000014 36.0841782968750024
-90024 -118.436466612518672 34.0658047026825912
-03281 -71.7246301629928809 43.07895460092805
-73032 -97.0555384187500181 34.4095209875000165
-59741 -111.33103646409576 45.804408756417061
-78834 -99.8581440734285763 28.5313502976424225
-56181 -94.6221755805298699 43.6777618937008185
-25049 -81.6083594385964659 38.1249547350877407
-21660 -75.8802386529680462 38.9501408310502342
-12007 -73.9321036692111448 42.4776912442748298
-63073 -90.7577135353845392 38.5849202876923059
-46815 -85.0623437309630077 41.1060764412207647
-75035 -96.7739768572257901 33.1565896941102096
-57017 -96.8345172677147588 44.0058917350300192
-12832 -73.3142079588153308 43.3739572662036323
-04097 -70.2367789166237628 43.8475249821948054
-41347 -83.6025904920634559 37.5195407936508047
-73522 -99.3764281052631588 34.7221938684210585
-92147 -117.221234439999975 32.7246940799999919
-86005 -111.674664582239501 35.1384149259994629
-85933 -110.549218298987967 34.4076469764313586
-55109 -93.0211819160007281 45.014681888541304
-08868 -74.9439203846153816 40.5666960384615365
-97708 -121.437602066666685 43.9055643666666597
-13041 -76.1731592462563896 43.1775650419670782
-85299 -111.910537227272741 33.6774534090909086
-65790 -92.0776376492370474 36.6904876752402842
-17083 -76.4244278709677332 40.2778169677419342
-72212 -92.4164832177704625 34.7825723125229302
-32808 -81.4475042623518846 28.5812964184644898
-31920 -83.7372325000000046 30.8913480000000007
-48304 -83.2339971797442644 42.5884537865230612
-80222 -104.92813440293493 39.6702437214142662
-66968 -97.062112028571363 39.8182225116402151
-30218 -84.5946988423215913 33.1400059874165436
-60654 -87.6356550716417644 41.8925780611940439
-39088 -90.7140304707483693 32.8225137020408368
-99763 -161.041888130434785 66.8351376086956321
-06107 -72.7567201077895334 41.7554006349638414
-62033 -89.835660416959584 39.1291364820800496
-02027 -71.2073327500000062 42.2648524999999964
-04451 -68.2258878223349825 45.5829018045684791
-50321 -93.6640613388225489 41.5462412442185993
-29572 -78.7966712589420979 33.7660083938078088
-57731 -101.631273600000014 39.8436897999999999
-48043 -82.8826334110534901 42.5951911278065793
-20020 -76.9705319749289743 38.8609589362157308
-68439 -97.2146152706793458 40.9959497782471303
-66522 -95.9395090185185495 39.8661115925925955
-31418 -81.1913679999999971 32.142282999999999
-61866 -88.1503002462064273 40.3087057760919123
-67008 -96.7745707656515748 37.465779842639634
-86045 -111.23283885205268 36.1339922308287953
-68154 -96.1199051061123129 41.2645949175225368
-05669 -72.7358494889251546 44.0697397122642727
-45503 -83.7805454219679007 39.9584240595193165
-55127 -93.0834910928245023 45.0811241939317568
-38618 -89.91657358181034 34.7025863387192146
-61012 -88.7491405784784178 42.4025143481837006
-81237 -106.606015037854945 38.5829009400630838
-61412 -90.5683908834986795 41.0757166871658086
-65239 -92.4329618324653097 39.5337342547743091
-63666 -91.0694152280701985 37.3983857368421013
-78667 -97.6265010000000046 30.4218705000000007
-18969 -75.359996492030831 40.3258620154204834
-80103 -104.159840946869593 39.723561527580415
-37091 -86.7760362062928579 35.4760913453819171
-94122 -122.482515019160786 37.7607114183847159
-30648 -83.0570761627196248 33.8798361325222075
-23897 -77.2837745921272727 36.8406093883305772
-90035 -118.38609955655609 34.0515659412824121
-31295 -83.5692876666666677 32.8101377777777756
-73570 -99.1303547705479247 34.5027933544520522
-26293 -79.9171399032257881 38.7766659892473413
-72928 -93.9287400795897014 35.3028607177733846
-90019 -118.339782526834966 34.0492980736239232
-80929 -104.612468854392333 38.8158761708784183
-41558 -82.2092958723038265 37.5443490371009219
-02688 -70.3639489395973214 41.7329828590603853
-95356 -121.022706269885191 37.702128316317058
-14011 -78.2897419092168576 42.8326720266298082
-42259 -86.1885383400695844 37.277310691289351
-59311 -104.469657892703978 45.1144525600858515
-92232 -115.465256999999994 32.6796509999999998
-28429 -77.9081376536311012 34.327361321990864
-11951 -72.8453864138025153 40.7644601903866004
-35649 -86.8776697916667047 34.6263467777777905
-99604 -166.099979437500025 61.5263665625000016
-06108 -72.6177527033777608 41.7813402655143662
-93212 -119.560475755862655 36.0846152839196108
-02035 -71.241754170023242 42.0626185777218353
-21754 -77.3013489136508412 39.3386943119561323
-27585 -78.0300940000000054 36.5427569999999946
-95616 -121.762133145776275 38.5560751851970664
-70076 -90.6365312105263143 30.0549574842105294
-74531 -96.2476285327256704 34.8987434258491831
-32821 -81.4629392400288879 28.3970023569009946
-12990 -73.5302254838709786 44.0525008387096833
-32140 -81.8658752062892603 29.7685338389937009
-68362 -97.4151143749999875 40.1460570000000061
-12453 -73.9512868352490784 42.1009665670498379
-45685 -82.4493230833883501 38.9306448569856371
-15538 -78.83993225174477 39.8722501420484647
-74845 -95.8811031055900855 35.2182655838509291
-83826 -116.180279222222225 48.9892060000000029
-26159 -80.9324356759411643 39.6045800679214466
-54937 -88.4610090667189155 43.8010903015376485
-60707 -87.8093402173339115 41.9227412598842335
-67665 -98.8641118792037332 38.8658563525693594
-50148 -92.9931520486841379 42.1808374611841614
-05846 -71.8533926602304405 44.8161253178324728
-98013 -122.212578500000006 47.4160724999999985
-39149 -90.0064763723004688 31.8325664634436407
-76155 -97.0504712054319043 32.8246266664345185
-21714 -77.5042369999999892 39.4203344761904759
-65055 -92.4764032857142837 38.6095672857142844
-56270 -94.9898121147347467 44.5690092817287606
-88335 -105.753590526315776 33.0982576315789458
-95061 -122.02901700000001 36.9759169999999955
-84758 -112.640868198682782 37.2653204050493727
-23337 -75.4897071560061903 37.9243477051482074
-92586 -117.196464995779394 33.7051952363393852
-50628 -92.3943962565751349 43.2667409721411929
-08352 -75.1293088155339888 39.4737741067961139
-10003 -73.9893443560371509 40.7319229411764709
-29047 -80.5708662200210313 33.5367431840992793
-83672 -116.939339788426651 44.2853808907549578
-79234 -100.954067172473756 34.2216782543553819
-60093 -87.7546188577679658 42.1040195769978709
-80451 -106.084221256743206 40.0676563426573225
-61943 -88.0297997937284293 39.6565523073170283
-97732 -118.524643260273962 43.4092402328767051
-52172 -91.4772435363220069 43.2730450956954726
-98146 -122.357600691357447 47.5008061404545714
-87105 -106.686560682739653 35.031749955298281
-27654 -75.6803924999999964 35.9240020000000015
-03403 -71.8391805471697893 43.002791056603769
-95469 -123.077202876063211 39.3656702437424642
-15483 -79.8505678496932489 40.082781966257663
-10579 -73.8409143956253331 41.3822547826701523
-28668 -80.9891908964548861 36.4035083088803475
-43448 -83.3414210000000111 41.6022636666666656
-98233 -122.34149668515353 48.4919741079064011
-71023 -93.4010528771249255 32.4746642634884992
-19733 -75.6518903663366302 39.5578491980197811
-28342 -78.6511971588234928 35.1927156058823485
-83002 -110.775561418831174 43.4645833409090727
-73644 -99.4151365222369634 35.4099728238158278
-73638 -99.7747249593024037 35.8116005639535189
-52209 -92.0941293450355687 41.898939130005445
-40943 -83.8535267238735287 36.9489666184083987
-89833 -115.140908158273362 40.6590407985611577
-81414 -107.988648409090942 38.7930312727272764
-76259 -97.3039603006934755 33.1984702022191485
-22172 -77.352576360447344 38.5481219539575051
-91207 -118.241338205400709 34.1679050410800969
-43206 -82.9797138059226995 39.9439955323151423
-84737 -113.307456715061662 37.159528783458164
-11237 -73.9199701765163013 40.7032218856920949
-76708 -97.1969048955508299 31.5966529909676588
-22952 -78.9516841010994739 37.9783961866219073
-62887 -88.3598882698413348 38.179736099773244
-68015 -96.6311730501592479 41.3904657189490806
-77096 -95.4799187473095685 29.6743554801484315
-96223 -120.254423199999991 38.3149999999999977
-49434 -86.2057312575757919 42.7670107424241976
-97760 -121.239277134759192 44.3971302633169458
-05091 -72.5461065606253044 43.6287789580119281
-53072 -88.2483686418205338 43.0846950452644819
-38366 -88.7483534306377919 35.476553398615323
-19933 -75.59668045696354 38.7333333258428425
-57034 -96.5304615511976323 43.1252995390488678
-45153 -84.186035403446283 38.871886587582523
-24292 -81.5802080618374106 36.607094442579438
-56592 -95.9935378801571915 47.5325131552062743
-12437 -74.5247986250000025 42.352478375000004
-50468 -92.9687320349312216 43.0451309478066833
-45882 -84.6656241979940347 40.6794086343945054
-04950 -69.815080249565213 44.8220091269564165
-45268 -84.5112005000000011 39.1355735000000067
-31595 -81.9577639999999974 31.7513875714285696
-47516 -87.4225374489240892 38.7676888412070397
-40827 -83.4545250900343376 37.0521156453608356
-23156 -76.7129410193787749 37.53736771967084
-68972 -98.7619793414634159 40.1019440335365545
-38019 -89.6471079034512002 35.5585720863912655
-48030 -83.0987317822417708 42.4608600681970572
-16229 -79.6581399461047823 40.7099843910341903
-06790 -73.1144003656105639 41.824642294609383
-87047 -106.297517924409959 35.1890648061541924
-12431 -74.0174088051568049 42.3545962443597901
-40031 -85.3903016318410693 38.4120845409288592
-55121 -93.1507485061649305 44.8455491430888245
-07029 -74.1556522334884392 40.7463003990697175
-43756 -81.8178741200727586 39.6732955906766804
-04622 -67.9670261528099076 44.6865208551884194
-94086 -122.024284284078178 37.372613937173945
-18416 -75.5521548190476153 41.3792783428571482
-16724 -78.3856969944903454 41.7571217052341694
-82636 -106.174547945385854 42.8838915812906691
-89414 -117.465331140625082 40.9761270156250106
-23148 -77.0614210763522465 37.8426638382000888
-86025 -110.102111623936921 34.9275160425223703
-32775 -80.8727329285714234 28.7634634285714235
-18076 -75.4846776657115726 40.375009894937925
-70580 -92.4270777999999922 30.6743336210526323
-08817 -74.3953422173912742 40.5154403746801961
-78256 -98.6265625001782382 29.6324256688056913
-74355 -94.8572460526315808 36.9198825263157886
-49276 -83.7897428531140065 41.8008483948296217
-28174 -80.4400529920103651 34.9732035559279026
-35061 -86.9591653386668355 33.4651993511110675
-92021 -116.896256572905898 32.8272339655397474
-40536 -84.6224917391304388 37.7762489565217408
-27376 -79.5382219093407059 35.2571468371040879
-80777 -102.260296749999995 40.7633967499999983
-06350 -72.0626670062499244 41.6437741281249743
-51058 -95.4689560812824567 42.9769568199770404
-38745 -90.9958403626373951 32.9884398021977958
-10952 -74.0784807589208896 41.1145791414437909
-45150 -84.2401911630840061 39.1746281794537339
-87012 -106.656531255172453 36.16196649195399
-43027 -82.5410280487805039 40.1913217317073048
-98541 -123.407464046557408 47.0476424677012233
-65054 -91.9453528226039509 38.4875362370051946
-14029 -78.2395903333333251 42.4744951568627513
-82959 -110.317266857142869 41.2530797142857182
-81640 -108.418505911356021 40.6222584587418822
-65605 -93.7010940098655709 36.9336297850854862
-74923 -94.4434049166666654 35.1381355833333302
-66314 -112.186847050000011 34.6661921500000076
-80309 -105.22602642857143 39.9955962857142779
-74636 -97.5161653456090676 36.8020158441926455
-65766 -92.2621059469026648 36.5350827389380441
-24938 -80.3713092373147333 37.9173798688524926
-53571 -89.3586425779220406 43.2696269805194547
-65555 -91.7956213942969015 37.3573049896755336
-97758 -119.758427614379102 43.4246502549019695
-04091 -70.7499953145413798 43.8293898545861467
-27040 -80.3802958499629341 36.1687352665673743
-90048 -118.374369066847223 34.073242551038895
-74056 -96.3016854695608941 36.7151217863553967
-26425 -79.6836028414487316 39.3149209474693251
-14485 -77.6048566300277827 42.8887775970873477
-57345 -99.4508258855788938 44.60335679485447
-01225 -73.1497523925558255 42.5568854680805586
-02733 -69.9685595789473638 41.7011635263157814
-56526 -85.8046372499999848 41.5589494999999971
-21610 -76.0642527657342526 39.3671596888111779
-16201 -79.4926890766049894 40.8041753149084201
-33073 -80.1846110062212176 26.3019876450393788
-97522 -122.593932599137915 42.5222042025862663
-25801 -81.2126680819194746 37.7954986545392231
-49245 -84.8143919386704113 42.1445620295793759
-43224 -82.9687936496539322 40.0416859612812246
-24706 -79.6925644000000091 35.9696568000000028
-73857 -99.3223598152171974 36.2791721304347661
-00693 -66.3984105904322348 18.4414921077559768
-42039 -88.8124174567663118 36.8042673731555965
-29617 -82.4549538299235678 34.9047208409341039
-16749 -78.4386970189284796 41.7856317710358525
-33527 -82.2206430664381855 27.9825367121004831
-22380 -78.9447713333333354 38.0862933333333373
-24673 -81.7311494545454593 37.0147619090909075
-95249 -120.634398295065083 38.1927392063861078
-59922 -114.222477203408317 48.0065739998636616
-71004 -93.8439997184391927 32.760377785003854
-41667 -82.6987873180380433 37.3135561107595066
-39441 -89.06970585106383 31.739311553191488
-98438 -122.47560208777422 47.1433013009404362
-61078 -89.7371010210096358 42.1607579997083377
-21798 -77.2993835953228796 39.5355317154181662
-56628 -93.5667952011613551 47.6648815626925852
-37034 -86.6939596351649016 35.6350754251289104
-54760 -91.2091004356435633 44.4239061485148383
-96771 -155.102858954081597 19.5534290918367368
-62862 -88.3002015179339423 38.2274041147776131
-77362 -95.6720996310896652 30.1581198765340197
-46154 -85.7699529036144384 39.8564557710843417
-68370 -97.573909890892395 40.1611561507165931
-89706 -119.730615619377701 39.1960106842044596
-77399 -94.9620850666666882 30.6121913333333389
-21826 -75.6204306351201296 38.3212828329021349
-99923 -130.031315117647068 55.9206241764705894
-72328 -90.9897009569892816 34.0729467634408465
-39663 -90.0084881914941093 31.5898680006543309
-04751 -67.9134881999999891 46.925442799999999
-80455 -105.402429973866518 40.0987144837333531
-60917 -88.2004607529258067 41.044848686605981
-50519 -94.2670114123768599 42.9007777305585023
-18912 -75.0519924946236472 40.3201570430107665
-96738 -155.785286400000018 19.9452323333333332
-49975 -84.5819249999999982 45.8173424999999952
-45621 -82.6105591016260377 39.1106023089430792
-75232 -96.8405840826486326 32.6679012411686287
-23224 -77.4677075865721037 37.499607020327403
-96031 -123.277500874434182 41.240033508295646
-37714 -84.2072538316926398 36.2816637673464939
-11710 -73.5344345597303573 40.6770194643689535
-72645 -92.5388682927451498 35.8136032155939787
-78359 -97.2803820233181682 27.9242891757847573
-80649 -104.163120650953957 40.3439508810325904
-04363 -69.5806167687341457 44.3121807763647055
-41777 -83.2331598338252689 37.0595310691692035
-23955 -78.0703250508474724 37.1260116949152419
-25075 -81.4419665489362075 38.074162051063837
-87731 -105.350148502835495 35.675286676748577
-16699 -78.5276093766233885 40.4282972987013096
-22739 -77.6010483008130478 38.521825715447136
-72568 -91.628210060600253 35.5654187228868679
-60404 -88.2154831833150723 41.5143894540208933
-68235 -106.2468425 43.4111924999999985
-94946 -122.687222566443694 38.0575865587953999
-30806 -82.4418739166666654 33.4336700833333325
-51637 -95.137942684931545 40.6446799424657357
-04544 -69.590205772445259 43.8411000770486226
-48856 -84.7323926618140462 43.1947809081747067
-10910 -74.1380957110266365 41.2784557148288869
-26275 -79.9491542877551353 38.9788700040816209
-89085 -115.197450325376849 36.3094370402010611
-95357 -120.918713481335345 37.6706206971608708
-41542 -82.4800703090908769 37.312290072727258
-11973 -72.894640913461501 40.8603038269230723
-61801 -88.2088731996081918 40.106309046434454
-24060 -80.4326648836206601 37.237793804032755
-94854 -96.7736730000000023 35.1283054999999962
-22437 -76.7897820838216063 37.7834343208651759
-69146 -101.803064432886956 41.3445552838997443
-23001 -76.4264598999999976 37.2893545000000017
-35221 -86.8948910219814366 33.4511465628483649
-51350 -95.6273380835843341 43.2972931874999887
-38749 -90.754471666666646 33.4458243749999937
-58639 -102.566354357709784 46.0787866583473189
-61201 -90.5698012039509734 41.4851405048475073
-68647 -97.6085830895521838 41.5006065537313731
-77330 -95.3491473333333346 30.854022333333333
-70445 -89.9261053814490054 30.3291779890915265
-23123 -78.309916361890572 37.6595687067844835
-38665 -90.1571485471561118 34.5800150717063133
-79024 -100.326984618834004 36.4440711659192758
-64079 -94.7768012213063713 39.3532202741393391
-45712 -81.6650295999999969 39.398069999999997
-42240 -87.4686770703297611 36.8839783253069342
-04274 -70.3882683986051205 44.0450927061584778
-84093 -111.830557579536418 40.5943885087477483
-20024 -77.0188354671083601 38.8801531206814843
-69356 -103.467408122602038 41.8760452540467796
-31814 -84.7866486686390317 32.1707462485207074
-97701 -121.245728095248666 44.0876135003686969
-79780 -103.61998181132077 31.0375570660377562
-94577 -122.157473238425908 37.7210061499728084
-52647 -91.5454429834710623 41.1286673884297684
-52307 -91.9003792135921884 41.7959556213592194
-08102 -75.118543815937926 39.9503868660085004
-17963 -76.370747284802178 40.5599237603597302
-18223 -75.9438140759493763 40.9840562531645602
-90710 -118.299664062263304 33.7992072051201262
-32628 -83.1192864403944611 29.6338607037544648
-48114 -83.7560066242896539 42.5665260226604332
-14261 -78.7919980322580642 42.9989789677419338
-01770 -71.3781011759109987 42.2320734038461865
-80260 -105.005658484448389 39.8693461742223718
-73660 -99.9260131309013389 35.6328814184549216
-32407 -85.8040435119642098 30.1949742187745507
-63382 -91.4890322988105709 39.3040442069044218
-69033 -101.669726422210985 40.5284388735926697
-50839 -94.8230546515151786 41.0498781666666659
-23420 -75.817992733390227 37.5922372427597793
-78618 -99.1470790781432214 30.4701310840187816
-07627 -73.9582629187037668 40.9545283138146985
-11947 -72.5816787560975598 40.9473002865853744
-67347 -95.9445021831502203 37.1171385934065441
-42349 -86.6814835830220574 37.4339844354503839
-94389 -119.574945 37.7391874999999999
-57260 -96.735019720812204 45.83203868020302
-38256 -88.1338003173269726 36.3200394083914588
-47666 -87.5745523251028004 38.4210001249999422
-32160 -82.0070579625000278 29.7653984874999935
-72852 -93.584702334471018 35.6633769959044002
-95939 -122.583294560605808 39.5772551634954652
-59801 -114.014497593205036 46.857054891695114
-13740 -74.7565645093708611 42.2747874621309023
-65069 -91.5886511740086604 38.7554407096915909
-74403 -95.3295521673479556 35.715205807125173
-24790 -80.4713139999999925 37.7503706000000037
-91902 -117.022255765182024 32.6651544680382528
-41815 -82.7971893088335094 37.154687451786927
-84336 -112.781478716791923 41.9665370125313117
-08329 -74.9965989175257306 39.2857554020618664
-95626 -121.446755388746809 38.7239575302642791
-42456 -87.5277490861313083 37.5070400959521493
-95202 -121.288103196168962 37.9597290885073377
-31558 -81.5745557964691272 30.7691299157802085
-66610 -95.7819365882520088 38.9848272686712605
-97365 -124.039604917095957 44.6424429080121783
-12871 -73.6114487945316966 43.0964455736328489
-07506 -74.1601717904233624 40.9585980714921547
-05651 -72.495318536268158 44.2747956079735729
-49632 -84.9756306335467997 44.2346487790011551
-75493 -95.1743656528926181 33.1731421859504039
-15018 -79.7988458241844256 40.265479066030295
-68966 -99.4651822989044518 40.1438790485132913
-59729 -111.746437594926974 45.3224980710698091
-19367 -75.8848074477611618 39.9646117014925224
-18301 -75.1880608041472414 41.0328254964520625
-25364 -81.6660213333333189 38.3025310000000019
-64029 -94.2138419019635194 39.0130087219048463
-97034 -122.685492658705641 45.4084052296657603
-12501 -73.5600553665828443 41.8613467422111114
-24078 -79.9156723106517859 36.7232652258531829
-91765 -117.814894809819251 34.0008915674847643
-68803 -98.3956577507803587 40.9292614333080707
-17742 -76.6014677156862973 41.206281176470597
-99668 -157.171163250000006 61.693212250000002
-49450 -86.0761716648299 42.4806968461922949
-97686 -118.836682333333329 45.4790380000000027
-52635 -91.7490749293376098 40.9954758555205316
-45618 -83.614514166666666 38.886709500000002
-95824 -121.440459072714376 38.5178492484605215
-80503 -105.184180551536812 40.1593312595033041
-48026 -82.9511934686018151 42.5381700812665215
-27230 -79.7522911428571462 35.7663552857142832
-38226 -88.6663982049821442 36.4836668790866199
-92262 -116.544143142431679 33.842013592200523
-40217 -85.7391600019775666 38.2168075695452174
-54114 -88.2289028793898638 45.2415649418232704
-95537 -124.199305154135331 40.7287334060150314
-58716 -101.118827704793134 47.7520559934640687
-61815 -88.3698634999999939 40.111510619565216
-56544 -95.6509959495360818 46.7499655967615766
-39176 -89.7644588605341198 33.3121893207445794
-65742 -93.0957689193846818 37.1237796726727751
-92344 -117.401626910019701 34.3961603078647045
-12527 -73.9319226557376936 41.5206774918032764
-96103 -120.633553404979736 39.7869788917054095
-68669 -97.2241954894825255 41.0796959368947441
-67649 -98.6959316689418813 39.1181231313993436
-13639 -75.133635765402758 44.2578901350710723
-49817 -86.4755793139013065 45.9389288049327504
-68847 -99.0535508534757838 40.7323607599599526
-28602 -81.3782040478659354 35.6843588648140084
-57737 -102.533904855828112 44.5557754846625613
-84734 -110.748311832142846 38.3526075178571304
-65652 -92.9487632285533181 37.1478254389480469
-07502 -74.1942092887788789 40.9196760082507964
-74551 -95.7172649999999976 34.9222900000000038
-50503 -90.0217803333333251 43.1725173333333316
-88418 -103.716222103448288 36.7531584750957379
-10996 -73.971702014138998 41.3908243464010113
-16645 -78.5007746724890865 40.7988823187773306
-50876 -85.3150475714285648 33.7312588571428549
-63489 -88.7522764999999936 38.5190169999999981
-54210 -87.0493389019607093 45.2575386085192903
-02738 -70.7528359869003793 41.7082968440144128
-58352 -98.9285274496644007 48.7212653033557501
-56216 -95.0558146474081838 44.9417321760981991
-66038 -95.2058351999999957 38.0987012000000078
-85012 -112.069756844608747 33.5109297563425059
-52056 -91.0729680274725411 42.6022708846153648
-18518 -75.7397151827005217 41.3701340759492453
-98845 -119.899384376119428 47.4181328626865621
-65732 -93.1873872173912901 37.9417772173913121
-14781 -79.6064933554311978 42.1627450790734457
-76937 -100.154404789473617 31.3419706289473652
-10304 -74.0909745291777284 40.6083066002928064
-57442 -100.083982185481617 44.9843447493568078
-46130 -85.8374773959460668 39.6769182469595236
-56063 -93.8197407941959653 44.2200070932652238
-19506 -76.1198116553537005 40.452222066912185
-17521 -76.3467561249999989 40.2028189999999981
-68623 -98.1147496272189699 41.4545199053254336
-56484 -94.5240360450763291 47.0916191740336458
-36303 -85.4090411321037237 31.2527103241450384
-04289 -70.5351657117956847 44.3221731733582871
-53560 -89.7613582316998162 43.1854116229709533
-40515 -84.4536132010310041 37.9436836895479388
-83615 -116.084234877686157 44.6970400044076399
-65752 -93.8192218139879941 37.3224564657738043
-48451 -83.8015849019688375 42.8067405583618168
-64070 -94.1586997645130879 38.8887113427353555
-75658 -94.9107896890243836 32.1807905975609714
-54859 -91.8441827893652913 46.1585536902229592
-72663 -92.3256438584580508 35.9205293993095864
-39213 -90.2164109074426364 32.363837530867599
-92535 -116.748208199999993 33.4697977000000009
-10925 -74.2990150598884469 41.212474144011253
-45011 -84.496629560987401 39.4014792485334553
-35967 -85.7083761524641972 34.4130688661686222
-62367 -90.8969814782244327 40.3199897721943756
-75415 -95.7483382071269347 33.46814887305122
-90822 -118.224351764705901 33.7640499999999975
-62544 -88.9812854607038162 39.7121844034857006
-29803 -81.7122908960266585 33.480205114765262
-16001 -79.9230558000945734 40.8917907605767752
-05676 -72.7887713983726314 44.3378510965178307
-59337 -106.681021771817498 47.4717264683746265
-44484 -80.7525806271928417 41.2356861719297498
-16507 -80.0859105767353867 42.132634588742981
-45053 -84.7801261246176381 39.348464215596394
-49627 -85.3599986584269743 45.1048174606741838
-37349 -85.9904483076923185 35.456100846153852
-24558 -78.9541557577929467 36.7775067279766219
-28287 -79.3788773750000018 35.1822347500000063
-47950 -86.6490255643658713 40.8055478032104091
-40982 -83.6961822355028602 36.9283582437869882
-25555 -82.5614487903991119 38.2491771203516535
-57680 -99.8709504999999922 43.3690144999999987
-43135 -82.6984192260855053 39.4725431025782001
-53570 -89.5936900372928022 42.7473731325966781
-55972 -92.0620900764532735 43.9791851505942688
-91978 -116.95169609314982 32.7289737116651693
-49220 -84.326052201472848 42.0034292067333794
-49053 -85.4205998864864853 42.2940834867710009
-15946 -78.6645264636380261 40.3855587982037818
-26180 -81.3845979198247278 39.2071504250566321
-55947 -91.3488567577192185 43.828104827339196
-80105 -104.136979128792106 39.5341520623277134
-84728 -113.956183280898898 39.0980500337078638
-68197 -96.038305793103433 41.2320761379310312
-88430 -103.251646070143877 35.5915987482014131
-71371 -92.2186232283806646 31.667194291151862
-07305 -74.0896647832305746 40.7023782466688715
-59452 -110.090807646207637 46.9055043767465705
-13531 -74.7987801249999933 42.1828893749999949
-37848 -83.6967430430107413 36.2371741175627164
-50161 -93.3847538137256379 41.8582360406161982
-84745 -113.275266947176789 37.2070850145719518
-99163 -117.189708919170343 46.733848058869583
-04745 -68.3852722951318555 47.2924002251521713
-64857 -94.4383791573034017 37.2441176067415611
-43731 -82.0721829123392439 39.7338396903707149
-09606 -122.368294714285724 41.3750537857142859
-34755 -81.7517532727272709 28.5763150909090875
-15843 -77.6576330000000041 42.3155450000000073
-74051 -95.9727204250572186 36.6110467728833413
-62312 -91.0399103054342902 39.7101074996559689
-50155 -94.1970090736647023 41.2122755469613722
-22802 -78.858274537314017 38.481403139134386
-52132 -91.9115129906185331 43.203004067755451
-87882 -119.324734199999995 45.9058921999999967
-06430 -73.2672281538461476 41.1288346153846263
-73601 -98.9769236394013348 35.5072141785590247
-67018 -97.8700206788079328 37.084332086092715
-63304 -90.6278675603628727 38.7302713017601405
-75804 -95.7190568125000141 32.0396543749999978
-19123 -75.148596564731335 39.9644818294265605
-44850 -82.6811719532710754 41.0341904953270884
-84028 -111.39728727360442 41.9112921549897308
-30113 -85.1967029392503719 33.8485897001974152
-15730 -79.0703781746575203 41.0258597671232863
-42170 -86.5732690272935912 36.8416905375284003
-65248 -92.6640979455588507 39.1435511317644256
-48206 -83.1077906219716454 42.3756683750415277
-14091 -78.8891108014887834 42.5408383622828694
-75453 -95.9379772239234541 32.9919626629983398
-52202 -91.6405868161765227 42.1566051862745326
-03593 -71.2997871469388258 44.3745721768707284
-15923 -79.1572988773955188 40.352977043869906
-49866 -87.5715532250847275 46.5012296293218554
-82947 -109.850980466666684 42.8837432333333268
-70126 -90.021236108698119 30.0165001373505511
-53016 -88.7200097411764688 43.3123999764705658
-46225 -86.1606404349947752 39.7450280341727407
-36611 -88.0858275930004737 30.7669190680299494
-52302 -91.5868159312359751 42.0464628453813987
-48819 -84.2827644958891966 42.5393608814366075
-32062 -82.9695593554972248 30.1371879327000727
-88046 -106.791974590163903 32.2631187540983575
-38802 -88.6337156666666743 34.201513242424241
-27310 -79.9910719067104878 36.1693490036413507
-49648 -85.3573136537344084 45.0153472315353937
-62366 -90.868846034786074 39.4695079992003386
-37725 -83.4003863900398699 35.9984870862367075
-58569 -101.212611740930157 46.2776180117526792
-15720 -79.0638631694915404 40.5261537627118642
-28001 -80.2032738410637904 35.3443689927146707
-93223 -119.207607500572792 36.3039559988545122
-94710 -122.297963157372095 37.8677332012820713
-73078 -97.7470707629834124 35.6593483371945368
-26615 -80.7244847280898767 38.8297366674157374
-92507 -117.333545851102599 33.9744455233642597
-45147 -84.2993760441176221 39.2129586029411854
-78922 -97.7788500000000056 29.7574244999999991
-68760 -97.9945136221570863 42.7661244930300768
-57042 -97.1282178049830804 43.9889166261747349
-99152 -117.388104431111117 48.8720427377777611
-59932 -114.241016557521831 48.0725999602849328
-07932 -74.3903755297108802 40.7756710307262225
-28903 -81.764687500000008 33.5228924999999975
-04429 -68.6357384691388006 44.722930189118685
-61548 -89.4252268744041743 40.7960890984372213
-15462 -79.3917230453333218 40.0581142826666863
-94973 -122.639964502176227 38.0066943547334475
-08096 -75.1308022930497259 39.8285645731649041
-15713 -79.2561862413792966 40.5483972183908037
-61328 -89.4655660000000097 41.5046713333333415
-93945 -120.867055083333312 36.1571782499999941
-00783 -66.3167289050000761 18.3237259737500118
-31795 -83.6735164150897361 31.4677177743918008
-53937 -90.2064820105959484 43.3715373390728303
-16353 -79.3983463840716865 41.48209388335016
-25688 -82.1476410634920455 37.6284578571428625
-96076 -122.94709399103138 40.3718241535874824
-80463 -106.791139660780729 39.9063641384758228
-26551 -80.9894436666666593 38.2584129999999973
-70434 -90.1224706666666719 30.4523036666666691
-14718 -79.2907174865986519 42.3456191981880821
-41636 -82.733755941044592 37.3959474373134455
-55103 -93.1258010931175448 44.9653097692306574
-94542 -122.04187532127284 37.6586777275500921
-59646 -113.109181941176459 45.4549904705882284
-74014 -95.7107143937495835 36.0560550066082683
-79530 -99.7765909637635247 32.1196358028243978
-43037 -82.3299796503856243 40.2771812879177418
-28744 -83.2141996470588481 35.1521557058823504
-80229 -104.959365389977876 39.8618482089169532
-65468 -91.7999499595959634 37.2535199696969812
-44847 -82.7074045257515991 41.2283780995937974
-76561 -97.5417709473912424 31.414268252608764
-22046 -77.1809426770158495 38.8864949074596353
-25653 -82.0017142507837065 37.8296554137931125
-03046 -71.6029986332488448 43.1013734408875067
-43515 -84.0101995280408573 41.5910001240951104
-37188 -86.6704545511577322 36.4711371895280081
-31179 -81.8469425000000115 29.1318715000000026
-41254 -82.730378753959755 37.8779562518478983
-39760 -88.8156548461538335 33.4559009999999972
-75132 -96.379257453257793 32.944798348441914
-95418 -123.204426333333345 39.2428857500000063
-29436 -80.1896146783133048 33.3427298521039503
-59444 -111.438537309674885 48.8285037743854673
-98821 -120.564105654117611 47.5581878023529114
-49717 -84.6919704301075171 45.4350344086021281
-55357 -93.6628102421019264 45.0939920365813194
-59217 -104.240499667475717 47.5771833956310459
-58344 -98.282377683916323 48.015941542257913
-26676 -80.6721251699437403 38.1580470294943481
-58224 -97.9185738793102729 48.179045887931025
-52557 -91.9648433043478377 41.0211548260869563
-01367 -72.9020805762632449 42.6988895085766984
-02043 -70.8894604546209877 42.225705638561891
-36919 -88.29838757056676 31.7736683451949915
-61745 -88.9725927131087388 40.3288029073656915
-48367 -83.1409668553675942 42.8416443827664111
-59353 -104.205487673429445 46.9903185538988382
-29703 -81.3197366666666568 35.1032123333333317
-44127 -81.6502551093140596 41.4713454244284208
-73958 -99.8739575000000031 36.2778339999999986
-25002 -81.4273818918918977 38.1792282702702579
-17517 -76.114348812196809 40.2340847901062801
-23451 -76.0059258400521287 36.8653663348430669
-80112 -104.882048255662284 39.5790021198266686
-38564 -85.7493018967516036 36.2764137455191289
-11977 -72.6745441511388321 40.8186203695652523
-49504 -85.7087314171586314 42.9805623428766026
-12063 -73.6334983752913672 42.5637106759906629
-63748 -89.6303995664961803 37.6669761827719327
-08865 -75.1617271345907056 40.6987245261115334
-27434 -79.1217751200000095 36.5106183600000094
-40769 -84.1648773400390837 36.7241280543406035
-05446 -73.1987500082986315 44.5447647813545018
-83212 -112.559729743621418 42.5181840954731598
-46570 -86.121642325301238 41.2055697853230569
-62816 -88.9221352560455358 38.1940261770983085
-48201 -83.0600872629643163 42.3453038664761436
-28385 -78.4975803094154116 35.0426009943543235
-92111 -117.170798725456009 32.7993414339468998
-51028 -95.970580160546163 42.6057925935394763
-70240 -90.0141679999999837 30.4888146666666735
-39348 -89.0420768223686849 31.9965941728468302
-73945 -101.234246975949318 36.8438798734177126
-13845 -76.3484181249999949 42.0589538250000174
-66051 -94.840557000000004 38.9088800000000035
-55375 -93.749572021059322 44.9026628144937519
-79740 -102.45488850000001 31.1281592499999995
-82003 -104.857078972222212 41.3375452870370381
-64021 -93.6314837493573293 39.1071536426735094
-89823 -115.2770217948718 40.9941821538461539
-85638 -110.042805971487553 31.6956720881634695
-07003 -74.186531357827576 40.8100706814509451
-18488 -75.176668333333339 41.487035166666665
-95435 -122.87449570476187 39.005092552380944
-16839 -78.1137521701246413 41.0033532790456547
-39029 -89.9765059090909176 32.9743523636363705
-62432 -88.1430389813434374 39.1318558221393289
-11377 -73.902678913043502 40.7427447391304369
-45858 -83.8006915426431647 41.1064646369077593
-93593 -117.368625499999993 35.8930766249999991
-64131 -94.5761529812816946 38.965300668296706
-10465 -73.8180350049114935 40.8265389993451464
-47369 -85.1431954480445086 40.500712962054962
-64834 -94.5579481011370149 37.1699437582869976
-68628 -97.8651027042252508 41.2103656165883976
-26638 -80.9866742593036975 38.7572638187274947
-53178 -88.588695431266899 43.014246832884119
-48033 -83.2886183677790086 42.4646933696203135
-61940 -87.8141265112473945 39.7726826339468715
-25848 -81.435773501831477 37.7165010549450557
-41659 -82.6198130382262974 37.5685639113149676
-71266 -91.4800159944988707 32.7031797441931715
-03851 -71.0035920012909969 43.4279641335054336
-90291 -118.464912381576056 33.9919187643807348
-99343 -119.14150823861803 46.5693933697124933
-12583 -73.8705766822314871 42.059723711983473
-22901 -78.5369000302587068 38.0793250730732993
-10553 -73.8219543396077285 40.9090559717647722
-61418 -90.8621624891040938 40.8466661670702109
-68508 -96.7063277213041061 40.8139220192050374
-07040 -74.266890998679429 40.7292045258848674
-45713 -81.8118609189189243 39.419646486486478
-18601 -75.9555763720930344 41.0483543488371936
-32807 -81.3026528703512099 28.5490606624678769
-47383 -85.2657911127964496 40.1586268638661181
-14546 -77.7682581778577173 43.0310207362109551
-03583 -71.4669330931945836 44.3984330684870301
-96783 -155.108687279411754 19.8288260000000029
-78010 -99.0363613376449194 29.9186031471899767
-40078 -85.1411431866239639 37.8409419386836205
-17986 -77.1104033999999956 40.6892923999999994
-71827 -93.4108329185959292 33.4322107528006143
-62872 -88.803227282674797 38.2735560876392782
-50112 -92.7268307206517619 41.7289301824503767
-57027 -96.5083543740157666 43.1828747874015662
-12427 -74.1248216749238225 42.1569902277270927
-95065 -121.985308938364113 37.0225099367799402
-20112 -77.430373109290116 38.6813078682159599
-28086 -81.3656806274622255 35.2477263137702579
-38317 -88.2748447221881776 36.0480860805471863
-72085 -91.8283884940476298 35.3620982023809276
-92211 -116.319707628278223 33.7610305873891861
-50880 -97.0019790000000057 46.2676595000000006
-69351 -102.39915939749838 42.0742409339819048
-57069 -96.9652473588812285 42.8177548338944547
-06810 -73.4545721951035517 41.3854880136022771
-16861 -78.5242521256755879 40.8751290297297203
-67751 -100.362487492063465 39.1179566626984254
-89028 -114.697506200000021 35.0906824571428544
-70441 -90.7306982478988857 30.8591259980536456
-78757 -97.7332762547231226 30.3499728217154967
-67544 -98.7818005325630679 38.5628597106952853
-30822 -81.9178664044117539 32.9125128823529423
-65717 -92.4213704608033595 37.1431583180668312
-20140 -77.8675412127659712 38.9187198723404251
-99219 -117.516680769230774 47.6338289999999986
-33905 -81.7672792772327597 26.6764207304449528
-14511 -77.8604162567900744 42.994463629629621
-92887 -117.742005858000979 33.8811655669375824
-30179 -85.0137867964834868 33.7785270325518638
-84068 -111.501539666666659 40.6644829930555574
-90660 -118.089341298590924 33.9893454360313427
-63730 -89.8872462706003006 37.1116977310954042
-25177 -81.8357792075066186 38.3759615326780903
-67566 -98.0905498515731153 37.946165364338114
-48120 -83.1716206076960276 42.3060732238386166
-56585 -96.2765512201834781 47.0849363873599103
-17030 -76.7400753714902493 40.6084701684665177
-76617 -97.4867713333333512 32.0126031666666648
-98506 -122.868798890189254 47.0871059992344101
-73067 -97.9398410107238249 34.928106518319872
-71929 -93.1656422686576775 34.3009691303488111
-81071 -102.285559631849623 38.4410361713593431
-52701 -90.2514317750000004 41.9813821500000088
-74755 -95.1564350833333492 34.1101122499999931
-74120 -95.9775578739635051 36.1495312027362843
-63013 -91.1544851344414298 38.4206926093863359
-66111 -94.7874215184155418 39.0800484665953718
-42286 -87.2735118323989809 36.7167294974918192
-49285 -84.1990602238318218 42.4637599672745694
-49420 -86.3176257292825824 43.7096705986497795
-48343 -83.3083023750000109 42.6365432500000026
-48153 -83.4060699999999997 42.4109344999999962
-69022 -100.172678767795418 40.30319254733935
-74165 -96.740972499999998 32.415417000000005
-61077 -89.3569413934426393 42.2375368524590016
-32735 -81.7423136066493896 28.892517537578982
-72501 -91.6501522211782316 35.7837588731961915
-62828 -88.6260994431089273 38.2031955745191993
-67323 -95.7188136666666765 37.3282206666666667
-02184 -70.99957529282716 42.2071474961411042
-43749 -81.5588454182976363 40.1676344494494799
-31408 -81.1705684701442891 32.1064428625328659
-69125 -102.831409148325335 41.6198995765550066
-91405 -118.447848253731223 34.2005125903377944
-31027 -82.8137396736675555 32.5575852767271172
-76426 -97.8159743601546126 33.1855227132816992
-77987 -97.072576365145224 29.3426916473029209
-89013 -117.247836056451575 37.7103844798387016
-97604 -122.137830609090912 42.8942646454545482
-99019 -117.08385712571949 47.6580123504076667
-54623 -91.0153442149999989 43.7022051750000173
-76601 -94.7002498571428504 32.5211977857142784
-40955 -83.8127890124999908 36.7291982749999875
-44454 -80.5369532754035902 40.9164915963912463
-26705 -79.5645118978544019 39.3191430326382303
-94061 -122.235469803803156 37.4618789916107389
-72350 -90.1480052582255809 35.509594952103356
-66432 -96.2484011066873251 39.4681202330887189
-02726 -71.1473215062001145 41.7577894375256093
-53153 -88.4022036849917612 42.934586332600297
-68588 -96.6971306578947321 40.8249156052631506
-47381 -84.8671415303030159 40.3825618737373802
-63953 -90.6085899480250987 36.6166879085239287
-93283 -118.308261259259098 35.6005562495974459
-19554 -76.1170610720720902 40.510843846846825
-29742 -81.3726195904578162 34.8884262183684015
-95377 -121.456106016359115 37.7200817208378041
-60520 -88.6485533007641635 41.7770669071171241
-12725 -74.5463549504651724 41.9357363224257398
-68864 -98.2295857437223248 41.2401884039882347
-77035 -95.4785180878622413 29.653716538949304
-73583 -98.2916332000000068 34.7940602999999982
-50165 -93.301541764705874 40.8489105294117536
-97267 -122.611989694559995 45.407627101564934
-54739 -91.6305511556051329 44.8918641773563394
-36535 -87.708333219157808 30.386991560237977
-50009 -93.4689199102709267 41.6432223177024028
-79738 -101.441912977707048 32.7720077707006112
-54557 -89.7385956872105623 46.2189356995174663
-12514 -73.7626804246499006 41.8718673962785033
-12835 -73.9791536668637093 43.3030174860946033
-03823 -70.9422497674588044 43.1749997594149377
-22469 -76.6458624028735471 38.0751583091953805
-78054 -98.6931339333333142 29.3256560333333383
-90703 -118.06658223161358 33.8667344192044482
-58013 -97.4127635300889381 46.0895624495029352
-21224 -76.5491972188757757 39.2861747226681999
-89042 -114.397184057291781 37.8069376927083312
-75703 -95.3153241900791386 32.2535757667008411
-15235 -79.8269986927316211 40.4606860976146692
-91377 -118.768110102369803 34.1794979182463763
-43780 -81.4479156979633956 39.9250463749007594
-74331 -94.9261036391985016 36.6056175314919656
-05745 -73.0398337222222125 43.8389759444444564
-90262 -118.201012520868161 33.9238200675367665
-27874 -77.4384290112180338 36.1267180594728998
-04287 -69.9700036520581818 44.0583240151021087
-79406 -101.870781803921616 33.592510058823521
-52069 -90.4179804608751425 42.0587166647983821
-29143 -80.0827772500000066 33.832462249999999
-66842 -96.671319404797643 38.0208090299849459
-75082 -96.6608204550493468 32.9909609892315956
-25986 -80.7981454042553366 37.891056276595755
-73604 -97.75458430434783 35.411022260869558
-61858 -87.7545313712464718 40.1228568980892177
-51232 -95.8162101404763007 43.3029037029761597
-53575 -89.393877905222439 42.9248943451682408
-85390 -112.780859931930522 33.9484182312542444
-91008 -117.96592345316175 34.1497971569087042
-28720 -82.2459936749072824 35.4389808788628002
-09795 -66.5313746000000066 18.0261126000000012
-39437 -89.2191996333796169 31.5883047934345527
-26531 -79.8924437636363649 39.5938823454545528
-48122 -83.180902316818262 42.2804868804544824
-35824 -86.7323966608009442 34.6486870822208317
-71595 -91.7057539999999989 32.112527
-97848 -119.586055309634347 44.7046786254507609
-93513 -118.281858678988385 37.1627621157587598
-13622 -76.1200458652580778 44.0816879490820455
-03241 -71.8123103055262817 43.7032539493136909
-89510 -119.591250550308104 39.7787448097895151
-86326 -112.006872422548 34.715654312334685
-66838 -96.798243632804116 38.5494975693121447
-66727 -95.9116202499999986 37.734611000000001
-39056 -90.3331931007617186 32.3509169313284985
-21677 -76.1844804980793811 38.5093293585147123
-58855 -114.119029499999996 47.5996370000000013
-61471 -90.8258250816326722 40.6959513469387772
-64075 -94.1410761929850821 38.995719559627787
-92461 -116.441841875000023 33.5985301249999964
-21740 -77.7398797056779784 39.6348220502887116
-69122 -102.084722716392889 41.1094957586974488
-02341 -70.8652478956704073 42.063917202747362
-59228 -104.516436666666664 48.1455368888888842
-99634 -161.983448382978708 60.6923322340425742
-47714 -87.5218476059555996 37.9575989412866548
-59735 -111.835007840144129 45.6689281249999723
-44431 -80.7519653618750795 40.8541637016087265
-33016 -80.3326513731768728 25.895128380040088
-41080 -84.8276083177831168 39.0542947779726077
-74880 -96.1088167031383449 35.3653189508058219
-30277 -84.6508060288927169 33.3969699969771057
-29743 -81.3969442758733237 35.0309193140362325
-14708 -78.0599877917570808 42.007986707158345
-45248 -84.6577690403977812 39.1630472931826858
-99354 -119.289355982244828 46.3036966045593346
-30447 -82.5084957096774474 32.4260289032257987
-67033 -97.6650225000000063 37.2709454999999963
-15948 -78.7647550838323554 40.4909883832335495
-56650 -94.5605076300516174 47.9900430855545821
-98255 -121.989524821917755 48.5224166164383703
-54847 -91.3984448143761483 46.5678302041299901
-10045 -74.0087410000000006 40.7082240000000013
-32227 -81.410294224967501 30.3816389180754065
-49795 -84.6376422205685088 45.1554570526048593
-36265 -85.785255256229604 33.8333675064856294
-17090 -77.1767164413566462 40.3309221413708627
-21229 -76.6913659424220526 39.2843146914314616
-74460 -95.9565765930231578 35.5125824341085305
-81602 -107.312598720930211 39.4789835348837101
-86044 -110.821424472868216 36.818466829457364
-95521 -124.066797768444161 40.8724785929777923
-06811 -73.4719748074424928 41.4244672568984242
-76308 -98.5360481373522532 33.8646355898913072
-55332 -94.715753264787665 44.5227056983586067
-14025 -78.7301148464072753 42.6309216094349992
-19457 -75.5852144324324087 40.2004795945946043
-56145 -95.1775734459222917 44.0566736573328797
-20127 -77.4744573333333193 39.0556869999999989
-98612 -123.354222626849804 46.2003141721816988
-56570 -95.3680523927549189 46.9053866114395461
-49286 -83.9455548280235888 42.006980426148175
-64648 -93.7941267196738266 39.9696528481142224
-03247 -71.4555212727272675 43.5776024545454632
-55019 -93.2353897113190726 44.4190010439739495
-97132 -122.976491147016802 45.3183776771521281
-26462 -80.580574458333345 39.3029430416666727
-21781 -77.7600275000000067 39.5664952500000027
-55011 -93.2663714518772338 45.3412593892347218
-13090 -76.222406006981231 43.1524529856168471
-93927 -121.301852743916513 36.2975722807122239
-62477 -87.666429212655359 39.2346356925743791
-77025 -95.4338770429221626 29.6884114337742169
-50163 -93.2344189109729911 41.2268908550724618
-72403 -90.6581285000000037 35.8770300000000049
-35079 -86.7571222528988102 33.9322629203253285
-24242 -81.5391027499999979 36.5985595000000004
-04266 -70.2559756249999907 44.3015841250000051
-21047 -76.4349173167741895 39.5270353704208262
-99169 -118.397836108009173 47.1245084297481185
-66536 -96.0778206692951358 39.2277909864834982
-46408 -87.3601967931995915 41.541661870795302
-14854 -76.6102837999999906 42.5050085499999994
-17721 -77.3174749710907037 41.1855892483574237
-23187 -76.7191150833333211 37.2715125833333332
-33304 -80.1258096889614251 26.1393529791953263
-44815 -83.2355776413043458 41.2453575000000185
-85014 -112.056422483855698 33.5123649127710692
-52560 -92.2600933104396432 40.850640337225272
-52534 -92.682045943181862 41.2759618484848971
-44826 -82.4805434911189792 41.2385116909414009
-03536 -70.5649360624999957 41.5587519375000056
-22369 -77.9926776249999989 38.8385693750000058
-31374 -101.302847999999997 47.1148775000000057
-05666 -72.4690793389355861 44.2847637983192968
-59431 -114.176032571428578 47.9024938571428578
-14108 -78.7135878477834297 43.2747583832875051
-75249 -96.9568877745785329 32.6463070514982334
-66449 -96.8475606518088625 39.3882589479974499
-57564 -99.9925299191037738 44.7142392541526732
-32185 -81.9578744545454612 29.7393779999999985
-08816 -74.4079033902225433 40.4265537142946911
-55749 -92.4373543699541642 46.4402810324594597
-81617 -107.542792750000004 40.5151834999999991
-48005 -82.9155357471084073 42.8475613906413884
-16801 -77.8457884300063228 40.7905258449157628
-35903 -85.9061461360235086 34.0083738782694738
-46061 -86.0180024999999944 40.176801999999995
-17810 -77.0153400301089164 41.1207177229604923
-58016 -97.4209473411765288 47.3474105999999964
-76635 -96.6537002069273541 31.7336154103019723
-43902 -80.9708684265497283 39.8878651856468878
-38501 -85.5288207957499935 36.2046612022589898
-54738 -91.4701030700637432 44.5802470254776892
-59526 -108.767614763905641 48.4819085758302606
-35470 -88.1173577417897604 32.5513663720243827
-30045 -83.9424088094417584 33.93460523312649
-48809 -85.2658849995661399 43.0800231982647688
-75613 -94.4576911666666774 32.2428486666666672
-27569 -78.1624618424853139 35.4586591902858146
-19109 -75.1638345000000072 39.950451000000001
-12482 -73.9598507684069517 42.2722669946452783
-12410 -74.4533072285396997 42.0700675094760399
-78249 -98.6131680349050868 29.5648794815517526
-56755 -97.2141776532257467 48.9614300564516114
-35750 -86.5958163402508205 34.9504321099775481
-14585 -77.5537443255813912 42.9061044651162788
-77565 -95.0336723995305164 29.5413410483568128
-23005 -77.4800980784708173 37.7530514138285227
-68107 -95.9539521638713211 41.2074202051185381
-90680 -117.997070362313266 33.8009944490644116
-33896 -81.6030605661573532 28.2525460227967038
-69127 -101.934151776834184 41.1139658451503962
-90095 -118.443328410714315 34.069340571428576
-95222 -120.588943411299311 38.0662573074237756
-29373 -81.7472724444444339 34.9129741388888775
-61753 -88.8019424305748686 40.6407300795933182
-67150 -97.5180034067797123 37.2645187542372796
-49046 -85.4014390468849314 42.5141388212512794
-45866 -84.5492241639344115 40.4891137459016406
-35958 -85.6337232751960187 34.9168920630580928
-06786 -73.0112801735492809 41.6741791243023485
-47471 -86.9785806960918961 39.1437970147582135
-70552 -91.7116429359534777 30.0631851746724834
-02642 -69.9862969898792073 41.8411969945885858
-87006 -106.798156444902276 34.5226362358393501
-91718 -119.669202466666647 45.8380280666666593
-78415 -97.4275449468041046 27.7215275104331873
-36775 -86.9968813414596838 32.2254440471132781
-16666 -78.2988962381729152 40.8659138423736508
-89238 -104.886336 39.7657999999999987
-31028 -83.6861340971706937 32.6311223536857469
-08869 -74.6403432366512192 40.5725896301911604
-97018 -122.813889624223933 45.8926666813664781
-70087 -90.3064248957814897 29.9614126736972395
-12996 -73.4029461297842403 44.3735842437411705
-98177 -122.370540022608736 47.7435299460869942
-54560 -89.5129503896629899 46.0043463950562597
-47165 -86.0021292219551299 38.4977905811068339
-14094 -78.6885245189097304 43.1572425551402787
-72429 -90.9491977705241226 35.4953010618199798
-82441 -107.810834326448941 44.5998351352431754
-99521 -149.635827384615396 61.6301537692307804
-66606 -95.7168355244766644 39.0592909824268233
-60913 -88.0647995626301139 41.148955023304211
-04295 -69.9954378181818271 44.1866500909090902
-49283 -84.5520253586447126 42.2101473066588397
-11372 -73.8742697500000105 40.7532712500000045
-18828 -76.1055395735981648 41.7967409999999688
-16027 -80.0107542031249466 40.819897355468747
-51646 -94.8793653521448022 40.7413021950983989
-35987 -86.2513538948784344 33.9216387963033625
-47524 -87.5621730530504863 38.5083350380194886
-44441 -80.5680816260276771 40.7662177646726107
-20619 -76.5271141883067969 38.2997781585673067
-59011 -109.921631687806993 45.8605956796682577
-71454 -92.8433220195638427 31.6747207680863312
-72045 -92.059762087061074 35.1225076815776802
-16508 -80.0919051056279443 42.098189805982706
-50216 -94.3774998532853999 41.7014196321752877
-06062 -72.8646362171276536 41.6745701203962611
-36082 -85.9565443309352446 31.8020282517985464
-50052 -93.4499630427046384 40.636840526690392
-98642 -122.691023570876339 45.7986745929416159
-66614 -95.7665778329426729 39.0140428158725001
-04412 -68.7511742891216926 44.7873482789190547
-08343 -75.1660046700270925 39.6465345097124029
-29809 -81.6902043144947925 33.4167473470744767
-49279 -84.1010641875733285 41.7886143915592072
-13941 -75.2105732708333079 42.8437593749999976
-18230 -75.939493000000013 40.9257622238805681
-02876 -71.585860865470849 41.9998286053811825
-13346 -75.540804902683675 42.8227595334971909
-74074 -97.0671439383688437 36.0916425533620782
-95486 -123.275877650485398 38.9749754951456353
-37144 -86.6472676924856415 35.3012924509915678
-59635 -111.846740955040815 46.586726350525467
-88343 -105.126087565217389 33.3509644782608774
-28551 -77.7776270020826956 35.3222366691387961
-31318 -81.3783227536764571 32.1441296433823354
-99377 -102.128845666666678 32.9332286666666718
-55117 -93.1014084957802766 44.9954469231078846
-21161 -76.5721325581319263 39.661026856954237
-07012 -74.1590860997329031 40.8486209719502114
-95386 -120.720767092746129 37.651938245847191
-74565 -95.8426964899999518 34.8267731600000019
-21060 -76.5894648112766419 39.1622752441187529
-55387 -93.788766384753643 44.8478355078628681
-01952 -70.8645371198252434 42.85030071849134
-74546 -95.5773982204726167 34.8528612299213165
-62268 -89.5133218473985295 38.2652099371869028
-52601 -91.1231232270149434 40.8275860221862601
-20175 -77.5917564994428233 39.0671001835583809
-80015 -104.770594895290301 39.6225051295372381
-67202 -97.334059609615295 37.6861440163461552
-53553 -90.2873194376469712 42.915689556470582
-92399 -117.033392319227772 34.0316630034676351
-55927 -92.8690180903658131 44.0347111032751144
-89704 -119.800148592789895 39.2761205345563198
-42060 -88.8285045000000082 36.9681238364485907
-48051 -82.8280422439747355 42.6767362354468034
-77092 -95.4754419073289569 29.8318080981325267
-93312 -119.126048960654288 35.3931008205364606
-67734 -100.902758034334767 39.4673709742489152
-59316 -105.03218415517243 45.1786554310344854
-78116 -97.7782317266377277 29.1143311344978208
-57383 -98.7196918597669395 43.713598347580529
-24270 -82.2543300972575508 36.7234728083546642
-10963 -74.5377973746982718 41.4672735374011125
-80536 -105.4239900627814 40.8149215336564524
-26321 -80.6837743310344564 39.0492393600000014
-34114 -81.6673498690911686 26.0522043404959014
-72360 -90.7995701220723106 34.754646850958153
-01330 -72.8100145590144905 42.5222004480788698
-49055 -85.8544555141509846 42.3705298160377026
-04487 -68.0984689704396402 45.3832797604903391
-96071 -121.450469394812544 40.6648715770893716
-41061 -84.0712791040723602 38.4852218325791995
-07878 -74.4779128469387217 40.8710439999999977
-27517 -79.0346015322340207 35.8615284730450057
-78632 -97.462821912479896 29.6866978087520828
-35577 -87.6034354625000162 34.0985907124999983
-22500 -76.4150330769230521 37.7680841025640959
-25608 -81.8827559163346592 37.5689699442231131
-39459 -89.3027686085750219 31.4999354376928338
-98362 -123.362375555243943 48.0875306769410003
-48823 -84.4674001180590608 42.7518298271678603
-68108 -95.9331939343119586 41.2382186222942408
-13332 -75.5659759332606171 42.7579779512035287
-28726 -82.4185888319932047 35.2825768831992619
-23464 -76.1774255995231613 36.7987607657591553
-39161 -89.855420160493793 32.493842740740746
-72329 -89.9770183401360413 35.6480808979592112
-03415 -80.9877216000000146 39.2814386000000013
-49836 -85.9170410122850541 46.1987124324323872
-33763 -82.745932601011603 28.0029824736685846
-47334 -85.5346766231101725 40.1179847026638825
-51355 -95.1371702632979037 43.3874948040780168
-76654 -97.0444584999999762 31.6670995121951186
-81624 -107.882659208362114 39.2321215316192422
-18040 -75.2243456263047108 40.7314898496327658
-46571 -85.5477259685197282 41.5620540672148522
-45871 -84.301778545582124 40.4920953309958591
-10027 -73.9537713980000291 40.8118110830000447
-53267 -87.9095857499999909 43.0440522500000071
-75668 -94.6921218791290187 32.912636982732721
-30305 -84.3863254625017021 33.8349887158485387
-01039 -72.6924561796065802 42.3941572934781519
-07114 -74.1792741810971989 40.7082327217449205
-79902 -106.49414235848009 31.7792275991189079
-95822 -121.496748224354221 38.5122157718790064
-02663 -70.0031077243242663 41.9066356666667232
-87581 -106.121962826271059 36.5221339512711651
-75078 -96.7900889122004315 33.2454578756972623
-71900 -93.0392336818181747 34.6351497424242467
-44112 -81.5736161174097845 41.5358379134874838
-61036 -90.3731838235693772 42.4085186013580824
-29720 -80.7430800574392435 34.7342801411153843
-24651 -81.4941253720690071 37.0975973821062155
-62674 -90.0152785659376491 39.4313063379721527
-49720 -85.2373539165804175 45.2877412555489158
-93282 -119.515167291666671 36.1383493333333305
-48824 -84.4900684761905012 42.7232659047619023
-50525 -93.7305543345005105 42.7289428267646088
-61749 -89.1147440732673033 40.0991737676567581
-23010 -78.1813487209302167 37.5127896744185989
-95867 -121.892397000000003 38.3414403999999962
-73141 -97.3840127669746778 35.5041507842506974
-24951 -80.638217515951581 37.4781633894389188
-62572 -89.685567528240739 39.3615296546296207
-08820 -74.3626368691638078 40.5780401662171784
-79743 -102.696288050377859 31.2722780201511341
-26047 -80.5793438779063393 40.5235695592163481
-67423 -97.9833526037735254 38.9831137830188794
-79316 -102.30583111379805 33.1579863800743695
-59802 -113.960053310517395 46.8872046644973466
-83622 -115.96453640088896 44.1350396020280584
-48811 -84.8526718236073378 43.1839550711759088
-55425 -93.2481308932461133 44.8453548981481234
-69132 -101.01079774611398 40.7971001364421468
-83822 -117.011482599170733 48.1683088614253663
-06455 -72.7178023017314956 41.5138667121769984
-96763 -156.924711845975224 20.8129336160990626
-98250 -123.081524844728364 48.5421067439714946
-12071 -74.4156874387754357 42.5521512959183639
-72653 -92.3762833564347403 36.3426753935175313
-32694 -82.1449611444776906 29.7809699211939751
-60940 -87.6350099692399738 41.2439085096125382
-03257 -71.9916233717127909 43.4158270686337531
-19442 -75.5843607083333495 40.1328716458333261
-49969 -89.2310958674032833 46.2342915469613303
-13602 -75.7790316562499982 44.0459102596153969
-46940 -85.7024377212801056 40.6857015697328919
-68144 -96.1197698214668463 41.2353632484098966
-03816 -71.247220353814356 43.6735303741801815
-88113 -103.163315490566106 33.8927204377358464
-53225 -88.0376153488510482 43.1159923143159247
-24225 -82.1338451779697607 36.9546716191813545
-95623 -120.843537098491709 38.631554779765537
-31031 -83.3216733039941033 32.9030502459319365
-01966 -70.6172734165559035 42.6577297017254651
-55150 -93.162268344497619 44.8861575311005154
-11366 -73.7980768571428456 40.7267442857142825
-36722 -87.5766640582385634 32.0819987911931719
-20109 -77.5189032810255867 38.7876441161227277
-12743 -74.8493363263979603 41.5295158556566548
-84304 -111.999406516447337 41.8349475065789989
-50636 -92.796820108320901 42.9029698238380277
-03894 -71.1971433063004184 43.5972694736211395
-07055 -74.1303325797832571 40.8572987688429592
-47679 -87.5750354999999985 38.348825000000005
-41723 -83.3006468585054307 37.2670518284556707
-14504 -77.2266864983534731 42.9736225938529159
-79058 -101.936731300000005 35.6126337399999926
-89450 -119.991917260869585 39.2591318840579717
-79532 -100.719341399477912 32.4097078835943506
-46615 -86.2112492780506727 41.6746254171667303
-84080 -112.442417113402001 40.0900515846833585
-90004 -118.310273761349322 34.0761189769861375
-06903 -73.569024356775941 41.1344937698932327
-45601 -82.9713307549468055 39.3144644074905187
-12701 -74.7037534928563076 41.6484818658286287
-37103 -86.6058955000000168 36.0548326666666696
-93728 -119.811899892790635 36.7582381600000048
-24064 -79.7842436740299803 37.3673748514025377
-52356 -91.8392265988677963 41.4731570103456164
-35087 -86.5865964047792005 34.3081940590099705
-92118 -117.169890581957361 32.6773115167584649
-50482 -93.4784863898950817 43.1317526849380286
-71424 -92.6915410789543159 31.1758288283357388
-28471 -78.1191594499999979 34.5324933499999958
-61007 -89.5928659723953302 42.1968554550311694
-28444 -78.3019812973512046 34.7011408760618636
-68860 -99.7730111284722057 41.1344343055555512
-00777 -65.9113289837133038 18.2261434267101059
-59834 -114.262772196680672 47.0377566334745012
-77882 -96.3945759000000066 30.9009867000000007
-98388 -122.594017121509012 47.1694895871004931
-64429 -94.2340849003000045 39.727203491582685
-49713 -84.8738244540747928 45.2008888957959627
-58782 -101.79510326305595 48.9277691358265017
-58200 -97.1684580000000011 47.9162074999999987
-31401 -81.0930534971852097 32.0675422965147732
-23889 -77.7729513118131592 36.8990748743131434
-72079 -92.189611745508941 34.3909318323353332
-92120 -117.070284552770659 32.7936410557627909
-13784 -76.2226106366459817 42.4390134627329161
-42729 -86.0990692642252355 37.3074047140980412
-27965 -75.9003016814516087 36.2794700947580537
-85352 -113.920542911764699 32.713385168067191
-62906 -89.2041480267763518 37.4578879644258436
-63116 -90.2649969379505563 38.5789757491902634
-61050 -89.7320955749751619 42.4400308440913889
-05037 -72.4892180466959388 43.4632456414096922
-98943 -120.952402645833317 47.1864174062499799
-95913 -122.195175910112283 39.6253873932584355
-34108 -81.8042993644311025 26.2450742989008639
-03221 -71.9625871615322126 43.2659639022249891
-83849 -116.005531440959487 47.5100364926199603
-28091 -79.9416980585426984 34.9782648226130846
-44705 -81.3408121182156947 40.8262250092144114
-98586 -123.85405779641664 46.626833333951204
-02571 -70.706641387602474 41.7512416493073601
-49847 -87.4412677500000086 45.7045044999999988
-05058 -72.2608789756756522 43.8729914459459209
-44654 -81.8720781794779811 40.5387138947883017
-81439 -108.945178271929805 38.392832526315793
-62631 -90.3604432599620253 39.8298283851992565
-43005 -82.2822522645739696 40.2833056547085206
-81007 -104.740847122372088 38.3344087940871532
-13744 -75.9082068799582288 42.249521830897713
-57227 -96.7084982375297386 45.3628459548693286
-38773 -90.7407429760116884 33.6005361439305616
-74560 -95.812627888888926 34.6749342592592882
-90520 -118.377772500000006 33.896597166666659
-54751 -91.9196042119961305 44.8820953325209899
-32610 -82.3413715000000082 29.6402333749999976
-55717 -92.4450129132896166 47.0847975821348896
-68111 -95.9637666176434578 41.2947962199560052
-35186 -86.5195153466598583 33.2496245676450641
-93262 -118.743112974619279 36.6067002944162354
-92105 -117.093350719710784 32.7386106763532538
-68780 -99.1313567176566863 42.5940398689992321
-47384 -85.5580915106077242 39.9133371887809929
-57105 -96.7339405871318263 43.5227746123462751
-95692 -121.395808740760117 39.038372716382689
-15488 -79.7477277236181266 39.9881241306532687
-87190 -106.666009500000001 35.0685169999999999
-97812 -120.239515151968391 45.5598327288677893
-04230 -70.3841998000000046 44.0695153333333351
-99692 -166.523041462562588 53.885094547420934
-56776 -96.5436323333333348 48.5436356666666669
-63367 -90.7896700524082405 38.7824834018987019
-29475 -80.8212408578769441 32.9497042259579231
-30363 -84.398737512000082 33.7905648720000116
-31788 -83.7019106822591965 31.1180231386033235
-61434 -90.0381902249068276 41.1759298534376015
-58105 -96.8947496170212617 46.919358808510637
-35575 -87.5591573417055855 34.0499093992407182
-56522 -96.3724498333332633 46.1346644962406174
-67228 -97.1730958391135999 37.7357252206165228
-06387 -71.9107777446808143 41.7453691205673962
-34240 -82.3822573965482832 27.326131540926113
-59072 -108.506959574305057 46.404897866555757
-54246 -86.9064532349680974 45.3685022034440308
-67143 -98.9280756199999587 37.3639124100000046
-42003 -88.5913280874678009 37.0267493755749513
-15901 -78.9142114104224532 40.3262152444764723
-10472 -73.8690626449415788 40.8299126391050606
-14857 -76.9394632558139477 42.5082317441860482
-96717 -157.905952069767409 21.6025128139534814
-88030 -107.735716925145169 32.2218264275953103
-28217 -80.9030224744141577 35.1679231321060399
-81148 -105.984744705521422 37.1719912699386583
-57364 -98.6074670506328772 43.4321009113924106
-99807 -135.459738200000004 59.2357046000000054
-95552 -123.429270089999847 40.3706017515150606
-04940 -70.0704814531250122 44.6210528750000037
-32428 -85.5731952527137736 30.6268492411461324
-14203 -78.8690545771879101 42.8816591071779882
-62446 -88.2267324394364891 38.5081965267605639
-97352 -123.019540193532791 44.745749006917741
-18034 -75.4088696121537367 40.5417497227281061
-17054 -77.725012731578957 40.4912596631578765
-58776 -103.319767171783568 48.4040514831870965
-92231 -115.507959397932112 32.6820155618538166
-94116 -122.482887459674672 37.7445318537665102
-15763 -79.1493793652174134 40.8981236434782716
-05488 -73.115036486757333 44.9224259765580811
-34235 -82.4812766787330816 27.365608849822614
-01945 -70.864776440329635 42.498706710855771
-92056 -117.285009589263225 33.1975461162704164
-86304 -112.491765250000014 34.596377750000002
-48553 -83.7237100000000112 42.9736079999999987
-87235 -105.573078111111144 35.4728481851851853
-60644 -87.7570939175103462 41.8824910639069827
-77380 -95.4708291369055928 30.1406722041430299
-33897 -81.6714984139313458 28.3020793866747447
-83435 -112.548609357735799 43.9793486083018905
-88382 -116.557249999999996 46.8027654999999996
-49807 -87.2623991257515286 45.7012256876252749
-48624 -84.4631394294623306 44.0606127870567406
-57773 -103.617392540037216 43.5925140856611293
-15433 -79.9530427597281061 39.9703424928968332
-63369 -90.7862743724082151 38.9401441451356121
-95307 -120.951486821148066 37.5878675681018493
-38040 -89.4345544620330912 35.8877578899090821
-92881 -117.543436356950764 33.8369549590236005
-15014 -79.7416743650486239 40.6082789038834591
-60073 -88.0996089698294043 42.3588597713016455
-40051 -85.5816166791812236 37.6590285212051157
-10917 -74.1203205228146942 41.3272321445848902
-27012 -80.3691365986477422 36.0069738960854195
-36584 -88.3785217023227005 31.204662852142576
-35444 -87.3046667423250966 33.3198762816127783
-17552 -76.5088166297751968 40.1081662941976873
-08214 -74.8151014117647151 39.2025956470588142
-21547 -100.884748200000004 32.6779165999999961
-24221 -82.9581823140095196 36.6436784584843167
-65076 -92.2096735125660842 38.3793681054893696
-59412 -110.893979906194431 47.3586164023548193
-11725 -73.281576309860597 40.8421902110584725
-74566 -94.9484755000000149 34.9500322499999996
-22435 -76.5708151211640882 37.9702083630371661
-70040 -89.956065932942991 29.7684034257583185
-48893 -84.9881555109216862 43.6659315814436155
-54640 -91.0446586290322841 43.2451767741935598
-79731 -102.3537459329321 31.3915621543421679
-06820 -73.4830852404808752 41.0778314114897398
-47458 -86.507343259259244 39.070179666666661
-83133 -110.231379909090919 42.5659906233766279
-27970 -76.5599332093937477 35.9124992737159019
-54180 -88.1689872647058479 44.3267839276017881
-03284 -72.0518880482807162 43.4841354268843361
-04220 -70.355903918705792 44.3219261598050167
-22902 -78.4722949893267696 37.9785656951968988
-94619 -122.180943018667577 37.7903426873969579
-78522 -97.5132036666666835 25.9492039999999982
-12194 -74.4482543292905063 42.5321453123104689
-98831 -120.144204858989454 47.9043181990503513
-82213 -104.954490328962621 42.4727667990215423
-49953 -89.3170015480733781 46.8451047137613514
-53810 -90.9925141902256911 42.8200034488720434
-67834 -99.643679646660857 37.5660722707804808
-55119 -93.0041223363014495 44.9445552979789511
-15671 -79.3195472703702791 40.3512052753086223
-36792 -86.9003518154981407 32.9235717326772033
-29935 -80.6922974973645637 32.3841398720651128
-78335 -97.1445202738095048 27.901289916666677
-76463 -98.4047742815252207 32.4749691622678114
-52066 -90.9531488588235817 42.6800824676470327
-20733 -76.527946967862178 38.8036784038193332
-25266 -81.1684287674417249 38.5984496681850544
-11206 -73.9423883579766823 40.7030936464702222
-53517 -89.8253897338903897 43.0203270980500605
-20230 -77.0327894285714194 38.8921701428571467
-76078 -97.4681741137059561 33.0852842433222278
-77614 -93.7440547105665445 30.299931323124067
-38332 -88.4294525294621252 35.4193559390783221
-37929 -83.916430599999984 35.962287400000001
-32095 -81.3759650275988378 29.990000710373689
-42166 -85.7145764606554366 36.8849014525722296
-76401 -98.2066918409365002 32.2521415415346553
-63056 -91.2248135775029141 38.3984714380279115
-46816 -85.0857359503786057 41.0129193988902259
-08223 -74.6552957165803974 39.262627486528487
-92614 -117.822901510207672 33.6779949222525303
-76660 -96.8999524336569351 31.9220594368931714
-05764 -73.2042903541882737 43.5280784648819647
-90650 -118.082305567150712 33.9063894772528869
-84306 -112.070373178104518 41.7960487336600508
-54962 -89.0328021313559788 44.452996563559303
-74372 -94.9217657619047515 36.479250904761912
-70639 -93.5183323580298094 30.9746863394039558
-49234 -84.366065203131825 42.1189769172259716
-14823 -77.5712239979592795 42.2484502392476529
-44077 -81.2352610202547112 41.7061904023158547
-45220 -84.5202287095682294 39.1469054855534182
-29639 -82.4112547289300466 34.3193832810457948
-75090 -96.5781385174394842 33.6258691262186957
-77379 -95.531953510140255 30.033059246999926
-26426 -80.5439690539299846 39.280091201621417
-18420 -75.7146788888888977 41.5995696666666603
-58632 -103.955947862564443 46.672983334605803
-83619 -116.916814523093336 43.9939908690947448
-63344 -91.0066894283277321 39.2289105446529689
-26866 -79.2368834264799631 38.8074183717378318
-78568 -97.5343877777777806 26.1843293333333413
-45642 -83.0523519999999991 39.0473794166666792
-13321 -75.3704629206798984 43.090381249291795
-72051 -92.3091390267056227 35.7949324189857094
-58438 -99.5738632928035372 47.6698944348542355
-32622 -82.3229466478822474 29.8931037778176005
-59324 -104.517005757184421 45.8384363120235179
-24620 -82.0218686677503683 37.4100728973525776
-26589 -80.3375529999999998 39.674741333333337
-32042 -82.2293388181818017 29.8714190454545339
-85292 -110.734602142857355 32.8998917785714866
-99708 -147.904844059171609 64.8826237278106532
-72839 -93.2887802232961292 35.6477563322015385
-28764 -83.3853142727272711 35.0765103636363662
-75657 -94.3493762048193787 32.7830148189833324
-68779 -97.212715579507659 41.9606749452206458
-15043 -80.492363999406578 40.5483375327398434
-81328 -108.331377320612887 37.3630146951853632
-18166 -75.7507736666666602 41.1744566666666643
-78749 -97.8622061434703596 30.2137677892091681
-97454 -122.820090621388118 44.2142812904422371
-57067 -97.4511759200523926 43.0463419633027229
-54718 -89.2631680000000074 43.0848735000000005
-33568 -82.2926711666666648 27.7816585000000025
-74953 -94.6186987469903755 35.0579058469001481
-31711 -84.134373683878934 32.1824947921914273
-01118 -72.5272217422138681 42.0955902571548393
-08758 -74.2056892622079403 39.790508934182526
-26070 -80.5893462449651423 40.258149251203001
-77302 -95.3795592093505604 30.2336269732320808
-61360 -88.6041914956011141 41.3218245227272192
-39952 -89.4189908333333392 30.2678295000000013
-63370 -91.236945553191461 39.0771613617021387
-58355 -98.3711808947368382 48.5810857631578941
-44050 -82.1302262254264548 41.2416599171405309
-22463 -77.4608967500000034 38.4684662500000059
-44810 -83.2861938000000066 41.2535617999999928
-46977 -86.9519175909090904 40.7011903636363783
-97622 -121.05508315596947 42.3990979302967688
-78502 -98.223337086956505 26.2564949999999975
-58218 -97.0603517048301256 47.5986195134168426
-54665 -90.8919228477751346 43.5319071479312498
-95464 -122.848255137146126 39.1323414543287669
-01588 -71.6683561058149508 42.1185783839371268
-26062 -80.5640812877207821 40.4199576367683591
-92626 -117.911967875552264 33.679241091533946
-98031 -122.193246042596314 47.4020044030633514
-63873 -89.6870159041351798 36.4231423825187193
-77336 -95.1079508624224133 30.0648320255096984
-35767 -86.7334504166666562 34.7824099999999987
-72127 -92.6096540144030769 35.1761372927689209
-81089 -104.794992618959057 37.6099556338565293
-33847 -81.82259479766536 27.8228409571984621
-83325 -114.229552781829966 42.582991953294858
-55046 -93.4228657358655141 44.4596942829820065
-76839 -99.848085999999995 31.2207824999999985
-41166 -83.1002885543847469 38.6351895065863289
-55434 -93.2499802263037338 45.1672602171505133
-83324 -114.273309297052265 42.8978546916100001
-85935 -109.90868562190326 34.1141735995964623
-71643 -91.5723078589965667 34.0034184956747652
-90506 -118.328789999999998 33.8862456428571548
-66781 -94.7391230585125186 37.2933378593585445
-10595 -73.7770491517999147 41.0875686161972098
-60193 -88.0970602930439526 42.0140038397309112
-71762 -92.7389693417176773 33.3462961996047227
-43217 -82.9429067969822 39.8241295761316536
-32341 -83.4333092727272572 30.515738515151515
-02873 -71.7686002357723538 41.5239892703251812
-19114 -74.9991750981169218 40.0636765604559599
-06078 -72.642610485007566 41.9891903571921645
-87036 -106.268758639928791 34.509897983363004
-57738 -103.181722829990775 43.6651056819484396
-14732 -79.1102231320754754 42.2260325283018858
-10115 -73.9641259999999932 40.8110039999999969
-74760 -95.3443338045976958 34.1578448850574716
-30144 -84.5985891305951156 34.0423047476063658
-71430 -92.5249603209054214 31.0506510834050857
-03849 -71.1326875214180205 43.9203556254062875
-07790 -74.0212385000000097 40.3713704999999976
-75075 -96.7405635990978965 33.0249505860555601
-06085 -72.8877298935305902 41.7453545274150599
-60408 -88.2223910913465375 41.2671186458333565
-17368 -76.5224406688459311 39.9894324050479497
-73079 -97.9733928133333336 35.2080422495238494
-64628 -93.0543465276433466 39.789371461796641
-46307 -87.339525963385725 41.4191285057794403
-58049 -98.0032023508715469 46.6727982627575457
-15502 -79.2559701447513589 40.0524438265193794
-87402 -108.141544143622539 36.775527462897486
-38059 -89.2467301287509258 36.113265077395944
-66031 -94.9009286343284231 38.8321710820895163
-93251 -119.698529124830515 35.3695341519674145
-39824 -84.8801725853658979 31.5159913849416427
-45695 -82.3436670039492498 39.1552107424541234
-99173 -117.815200371355232 48.0372894030790576
-33181 -80.1586027466815807 25.8984987057522567
-26884 -79.4101531444866993 38.8287912946767833
-19030 -74.8490401840984561 40.174917682397961
-05658 -72.3574082602087287 44.3580127701938451
-32053 -83.1517610578283666 30.561739435403144
-03108 -71.4614657500000021 43.0022332500000033
-29687 -82.3227610803846659 34.9540103105746311
-06025 -72.5331230000000033 41.6897752142857243
-83422 -111.118456229567286 43.7278124404648096
-48434 -82.6100949761904673 43.6610125595238046
-24612 -81.8397089983135828 37.0950393895447093
-36313 -85.795880727659565 31.1737732978723336
-74723 -96.0229390815656814 33.9873584700812046
-26632 -80.5187245000000047 38.7570570833333363
-42463 -87.8657483791946277 37.4870233624160889
-39562 -88.5026753571098226 30.5507491272370473
-66945 -96.8818587130045188 39.8971770252242024
-14532 -77.041726486417005 42.9621452330210403
-43824 -81.7599339920256512 40.3635353539937398
-17878 -76.3234800786741943 41.1720578355801692
-77058 -95.0985467738007486 29.5595002966789941
-93616 -119.594826034372971 36.6566375875238961
-80621 -104.807319340797463 40.0950293330503342
-31068 -84.1000042392286247 32.3130237797529887
-78674 -97.588316452380937 30.6752534523809501
-60406 -87.6821443008410171 41.6574168799940097
-77830 -95.9864643931394284 30.5107482733477298
-57759 -103.579106650390216 44.2388237003756686
-62378 -90.6578418701657682 39.8845376685083082
-19056 -74.8847740137502313 40.15150288116957
-20664 -76.9221377408368596 38.3460252591632411
-27834 -77.4022393376965852 35.6305231304834535
-41512 -82.4735708385694153 37.2546805466407918
-91501 -118.29824240461538 34.1902031903845227
-88121 -103.956735495011287 34.7074166097467653
-26201 -80.2091075367573012 38.9847639165738684
-44709 -81.386112052147098 40.8416345176687017
-78004 -98.5592563389201928 29.8642576219739269
-52806 -90.6030775756670579 41.5760228714655184
-77440 -96.1527630909090902 28.8854444545454498
-58483 -99.3842204449429687 46.6660167214243273
-85028 -112.008957869200202 33.5832347516976029
-86533 -112.85342 34.1703394999999972
-83312 -113.642740123711377 42.1362136391752742
-02114 -71.0658141306533082 42.3618170442210626
-62675 -89.8408806218779006 39.9988460255763272
-56158 -96.0544847738852354 43.6563348747346396
-43721 -82.2560776465517165 39.9469886206896447
-73729 -98.4446300394511979 36.4075571543739684
-56736 -96.1706704276354571 47.6666687391304649
-63732 -89.6151694811501187 37.5796348095846895
-30224 -84.2482053695834736 33.208449751749491
-54009 -92.5854715434164035 45.3521149676156412
-60634 -87.7965252110325451 41.9449273239011973
-40484 -84.6763955631867447 37.5075389459494204
-47406 -86.5153902461538422 39.1745244861538637
-43202 -83.0100577702779532 40.0204327039138974
-92339 -116.919885056353323 34.0783641923904739
-14432 -77.1416456875851964 42.9615827989996149
-43154 -82.8363615738470713 39.6013989528948116
-33026 -80.2953970054261248 26.0288368230506677
-28705 -82.1627042357963688 36.0228422294586466
-00609 -66.2690826779660966 18.1398487881355948
-48184 -83.3802741717921236 42.2781377059745367
-36089 -85.6910976681658099 32.1485959787986815
-68420 -96.1612031641574134 40.105958560951855
-60026 -87.843193036385486 42.0939171675762722
-62898 -89.0575264545119438 38.3470060191529001
-27282 -79.9322783789125566 36.0078861874308984
-17255 -77.8606289407406678 40.1616684974814788
-72069 -91.1384593482287073 34.5734665471013543
-30752 -85.5304942874187617 34.8972132936652528
-73564 -98.9866848868777538 34.8426067714932444
-01302 -72.8161460000000034 42.6817330000000013
-03868 -70.9475926068332399 43.3275869326565726
-73015 -98.5983149658886191 35.1059984434470778
-81047 -102.179149787347455 38.0746817710872776
-01364 -72.2962284134293895 42.5968900532456516
-49116 -86.6675432867756399 41.8502030965824261
-17221 -77.8194057409638162 40.0674268012048245
-18084 -75.4540233650793652 40.3265489523809535
-94551 -121.762317956280683 37.7092274671018188
-92242 -114.364516751135113 34.1431685833596745
-84532 -109.502334352600826 38.5512999431078356
-30548 -83.7873972143267451 34.0945489652976832
-95667 -120.790752180118801 38.721975684608644
-55723 -92.781451143417911 47.8620365107604044
-29039 -80.8999075378376062 33.4235181860360342
-43413 -83.6523389705681808 41.2396313538672459
-16416 -79.458871112244907 41.8189412040816535
-77086 -95.4926963096546615 29.9221353185682517
-27358 -79.8874490119001308 36.2203258475056131
-97108 -123.736241493273468 45.2775507248267459
-45383 -84.3312067920534929 39.9560246394355758
-32608 -82.4151263935779497 29.6026616112876297
-62852 -87.867261672413818 38.348798870689663
-79220 -100.796010791044807 33.7587973164178905
-23314 -76.5368571888772067 36.9477985672313309
-85023 -112.095590834425352 33.6328415782478984
-76938 -94.4281991290322793 30.9657736451612955
-30288 -84.3200442788376279 33.6531560686414579
-16641 -78.5620058738129217 40.4963522733632857
-10302 -74.1375861350681333 40.6304251883518717
-16316 -80.3042294971191097 41.6137807693754667
-44265 -81.2550646874999813 41.033033875000001
-49335 -85.665951021276598 42.7407824468085238
-32515 -86.7058530000000047 33.6345545000000001
-39854 -85.0787496076636103 31.8492629845897852
-99725 -148.026998198529583 64.8508074387255391
-51555 -95.8749266617289919 41.5533714207664389
-61759 -89.3250591370061926 40.437054763111469
-65591 -92.6002095297577341 37.9828081114961833
-81092 -102.737804594246782 38.1719624314912949
-60968 -88.0999694071472987 40.6753896107211332
-12138 -73.3704254029217822 42.7456165262627934
-02881 -71.5279234629442584 41.4772989304569037
-25880 -81.2100904251783646 37.8714045475017542
-33837 -81.6127399577700317 28.1975819963345948
-42123 -85.9913824640771338 36.8197307889314871
-83448 -111.723312157480322 43.8680274155058427
-45209 -84.427450594474621 39.1522844543660256
-60042 -88.2036320830539182 42.2780165160780896
-97457 -123.26697780885344 43.0356392445159628
-72021 -91.1865651586389845 34.8685646840476977
-75757 -95.3703370207641115 32.1255091717918688
-37206 -86.738156992546962 36.1806289068825535
-45698 -82.3963610202702625 39.2797726756756518
-24888 -81.5072808250000094 37.3612194249999945
-12912 -73.7237762420633658 44.4572983948413025
-31792 -83.9931089066944025 30.8249650211648571
-81052 -102.608943535335698 38.0771934956510307
-56561 -96.7415823112582274 47.4448775430463385
-59081 -109.974473390715701 45.0097498704061891
-30189 -84.5664146320806225 34.1242663645618407
-74368 -94.8608344565217436 36.2134398260869617
-72149 -91.7250250714285897 35.2482044285714338
-93642 -119.04792715555557 37.3174936755555322
-59640 -112.301692688034109 46.7496626324786106
-78007 -98.3589258591548656 28.4609471173708926
-93303 -119.083457500000009 35.2240995000000012
-08515 -74.6477337704381938 40.1263791663830673
-24823 -81.7384232289855248 37.6573868115942005
-12429 -73.9691112943723112 41.8231296969696871
-24533 -78.9274017587412402 37.5483654860139993
-81069 -104.929303689299104 37.9320247323899125
-11720 -73.0807594789300055 40.8721613129351979
-32007 -81.6301922430555464 29.7760673333333301
-41749 -83.3946769712460281 37.1832733487539642
-68836 -99.3758543345998078 40.7392398120250121
-44274 -81.7105061718750108 41.1232053749999977
-33190 -80.3503081147388656 25.559096651119436
-97907 -117.268241108979439 44.4326242551021053
-61882 -88.7583489405772639 40.1228664541594995
-71355 -91.9058202276352745 31.070008726880733
-48864 -84.4184600738888093 42.7029935344916467
-71772 -93.1025494152046917 33.82337136842105
-52773 -90.7570780254967957 41.6201283644545441
-21672 -76.0653315831683869 38.2752102821781719
-56137 -95.3226549767100977 43.8476862750591252
-74071 -96.2675559907407461 35.777262499999992
-15222 -79.9888428695435607 40.4469478090277761
-38868 -88.7434702932238935 34.1209951386870571
-73747 -98.3433342222222109 36.2704658888888858
-31310 -81.4915303999999736 31.7858001250000015
-85231 -111.59846245750137 32.7234843562471269
-80903 -104.815381481973773 38.8345883921393025
-67072 -96.6319867713787772 37.5511150575915877
-78021 -98.8244938979592291 28.4717849693877589
-04768 -68.487315491202196 46.7737079171554626
-88324 -105.436212285340233 33.4096904136125659
-82214 -104.779015111269331 42.2753456728483101
-86340 -111.826085199999994 34.871682799999995
-72107 -92.5450898646288209 35.153767384279476
-56332 -95.5003116850261904 45.9506249098207604
-52321 -90.9861918865689034 42.1462199593679827
-29331 -81.8566358148148225 34.6472957111110986
-23995 -75.4741110000000077 37.9752049999999954
-26152 -81.1983240200000154 38.9840836299999935
-21853 -75.7157309829901095 38.2075968833378212
-48747 -83.7611018502455664 43.5208479549917939
-26753 -78.7828317962424478 39.5829885060211311
-19809 -75.4953432381154101 39.772792369694379
-54844 -91.2258661239671227 46.8227998005260062
-43962 -80.8842561311475663 40.6796521366120274
-08251 -74.9369245901920493 39.0210491478053285
-41849 -82.7330667213823148 37.173298174945991
-92022 -116.965161500000008 32.8224777500000044
-67355 -95.9961653327948312 37.0370822568658724
-12839 -73.5673795534993502 43.3291877922274011
-17309 -76.4500263899336971 39.8733714731126128
-64863 -94.5873848550654088 36.5435969476490783
-32446 -85.2085077031608478 30.8056640028695412
-05657 -72.5209966157760562 44.5289181068702149
-55054 -93.3526272209142434 44.5705796551246323
-57537 -101.111040592715241 44.5764739370860994
-23140 -77.0369288523449569 37.4450025633830563
-50140 -93.9434878772681401 40.634154669531938
-99207 -117.388931031706036 47.6908454959541146
-65613 -93.3947891084382036 37.6211977634796142
-13113 -76.5831006599999853 43.1218887999999865
-87539 -106.027393341346141 36.4080067163461436
-59720 -111.572725763026028 44.9407068449399816
-86332 -112.668339924259627 34.3698902559349122
-62205 -90.1274066816536106 38.6158517103198662
-72109 -92.8520704166666775 34.2092580833333315
-62538 -89.5131438298004696 39.3556092574813547
-63005 -90.6282180977874248 38.6358838438720014
-10547 -73.8484731550034326 41.315613191042651
-05462 -72.9777304660394748 44.3028047836163594
-25816 -81.1368581904761896 37.7376320476190443
-66552 -95.6239082639860527 39.5877607849649777
-81247 -107.310472500000003 38.4501970000000028
-25071 -81.4714607860320683 38.4563587371322839
-87501 -105.93240825381649 35.7021708647224685
-29851 -81.8166371077337971 33.515678486100704
-67351 -95.5714874395604994 37.1344359423077321
-37860 -83.1922254864066275 36.2494514261302498
-14031 -78.6208952497635352 42.9816871370738838
-16345 -79.106751665983893 41.9507524750404599
-21122 -76.5116074840442479 39.1252003703724469
-50653 -92.8775009232968642 42.9678776069556747
-99414 -95.9607905000000017 29.0935780000000008
-49315 -85.7060223158257344 42.8164485387887055
-73523 -99.2841234210526267 34.5524816315789494
-57732 -103.676895851262813 44.290408767071952
-74025 -96.3068309999999883 34.3167310000000043
-04034 -70.1361694285714208 43.8449558571428568
-62959 -88.915249392629562 37.7169898513421415
-11732 -73.5365994342105438 40.8449213587257631
-71069 -93.9808498833992019 32.9715462262845165
-84667 -111.635947364130502 39.4869069402174091
-30549 -83.5925889578318078 34.1062575340982832
-15072 -79.8546751010101161 40.1390310303030375
-58741 -100.832673154036755 48.3389020574542201
-25512 -82.3227511314307776 38.1934984421222197
-31630 -82.879489806629806 30.9599648052485996
-43018 -82.6825534772727195 39.9570501818181967
-84073 -110.421411222222233 40.3585535231481529
-15960 -78.8645849047618981 40.5017674069264189
-34769 -81.2899448416007715 28.2479969901727124
-08854 -74.4626983249319068 40.5538698767904293
-91321 -118.515877222843955 34.3804992347162255
-84733 -113.732752302857136 37.3072886285714347
-36529 -88.2954370814093465 31.2832787089914852
-12833 -73.8516350196803302 43.1316657269372072
-37819 -84.1881829568801123 36.5517072200380611
-69366 -101.52084993526303 41.9865965326315944
-93004 -119.169991579734571 34.2790345785640866
-46039 -86.3149982087543606 40.3697369711399432
-19023 -75.2662621245858077 39.9166802319416973
-35268 -85.9978945000000152 33.4390492272727258
-18850 -76.4931752742262177 41.8569732432681221
-95723 -121.152272833333328 38.1613366666666636
-52160 -91.3407102750379494 43.4626358223903324
-04096 -70.1751773955054716 43.7941822952099358
-38829 -88.528359395105241 34.6531164302704084
-30834 -82.2498159999999956 33.0376849999999962
-68922 -99.8970895301311543 40.3301303895196597
-41719 -83.2498863226706334 37.2968404984192787
-23014 -77.9080705977010979 37.6650699770114983
-12803 -73.6400430709503979 43.2862346609772501
-65338 -93.2446106942342965 38.327999732867454
-65583 -92.2122124053708916 37.8144399850131592
-89448 -119.94518341768385 39.0016437657539683
-75604 -94.8090118691549151 32.5304178531849857
-54136 -88.3378568766518129 44.2674252613803176
-31058 -84.4363215226835706 32.4993716897763392
-16249 -79.3155492006641367 40.7679615633301751
-44562 -87.4412220000000104 30.9251077500000022
-61473 -90.6556000281078269 40.7150604750593672
-99039 -117.231646937931032 47.3357063034482692
-11756 -73.5158642654083394 40.7254009475081489
-76001 -97.1499584037430566 32.6335427148662802
-54653 -90.8987496637554528 43.8402922612809789
-39345 -89.1470482844949146 32.3148156276910328
-27108 -80.5701229999999953 36.2319334999999967
-17201 -77.6575887807534144 39.9420182453660289
-20689 -76.5847972089696896 38.662145754956093
-11218 -73.9767040655272297 40.643668138461635
-51630 -95.1937633771273255 40.6033715282504915
-25506 -82.195909185306121 38.2211834101613945
-27455 -79.8133514125976831 36.1633162984758982
-25093 -81.6839157413792805 37.9761699137930719
-47166 -86.1677840072258334 38.3068610943396308
-24733 -81.2044763471809432 37.4413498550233115
-37770 -84.690922727919201 36.1366375292480697
-20723 -76.8619163080330026 39.1341288248162229
-18853 -76.2760412111738759 41.7090477049717876
-95624 -121.359003587216279 38.4247143457678391
-25938 -81.0451476636893773 38.1437984063895854
-58081 -97.1311971398732652 46.3025353282237901
-17835 -77.1875186960784845 40.9559395924369412
-77494 -95.8113910569627052 29.7348338834803272
-64856 -94.2712181422126321 36.5626599036193838
-26591 -80.2870227199999107 39.4548084921738891
-97327 -122.958549282209745 44.3855599713517393
-16025 -79.7639948856678416 40.9433596558461872
-26529 -80.1245273636363606 39.6736714772727339
-45039 -84.2458444013523575 39.3248744730806692
-44862 -82.5917846842105092 40.7678725263158057
-50456 -93.2109010931575312 43.2861442877163256
-76108 -97.5085977074603107 32.7763950022170789
-82059 -105.210605017093982 41.0563533447293523
-03856 -70.9591543652604599 43.0372542545905219
-66725 -94.8597439764768353 37.1605437160217988
-31787 -84.2458366746527645 31.8840441090277267
-60451 -87.9615045604658121 41.5047201007767939
-20878 -77.2419738048264719 39.1107376849785027
-39746 -88.4066675021809232 33.7581263055115102
-95131 -121.887526078359556 37.386140786373204
-06238 -72.3356266959653169 41.784644639146336
-75766 -95.2602334828707313 31.9523164817135132
-06608 -73.1808988034699723 41.1884030895897908
-97917 -118.127754999999965 43.5250356774193463
-00634 -66.2454030774193541 18.0980169903225807
-25671 -82.1952229239582834 37.8911037916666729
-29119 -80.8389874615384656 33.5142404615384564
-38961 -89.9035767621408723 33.9702813860257109
-26699 -81.1465655000000083 38.2315300000000065
-67142 -98.1320395980141313 37.4651982028368309
-26504 -79.9859811111111298 39.6434743333333302
-66550 -95.8071658025211121 39.6543929397758887
-36467 -86.251839270732944 31.2899285972193013
-36858 -85.3003012480972416 32.287246181279869
-46553 -85.8404290465867916 41.4873794762000756
-08884 -74.3951696551437038 40.3951607471886192
-75001 -96.8401177907843334 32.9563180921590941
-57020 -96.8226118271428078 43.6732530692857921
-76707 -97.1588481564622555 31.5525792638179645
-42551 -86.9159795000000059 37.9279174999999995
-85302 -112.175423133920873 33.5691909062236462
-42103 -86.3565668005718692 36.9547690532109101
-22562 -77.9563775000000021 38.2359009999999984
-39819 -84.6067917288748674 30.8320564320765484
-96161 -120.188787138041718 39.3328589205301142
-64402 -94.3268221888209979 40.2504953065581503
-29057 -80.6794788461538559 34.6025546923076917
-78152 -98.2100407378143245 29.4248620282196462
-24415 -79.3227754475524307 37.9209449300699362
-86020 -111.499782204545468 36.0600104242424351
-97333 -123.286798182846184 44.5201790479804913
-48116 -83.7894011475854796 42.5059841540043664
-45636 -82.8773773316582805 38.6288698341708781
-79835 -106.594230452523419 31.9282262922725941
-32702 -81.6277553646081202 29.0263066588054812
-72845 -93.3615542688989848 35.3770562937595088
-89532 -119.323290624999998 39.6068678749999989
-13475 -74.8312773291925737 42.8911208757763944
-42164 -86.184955179517118 36.7704360003665158
-69147 -102.050163948745322 41.4184186921174202
-65789 -91.8907023507547365 36.8577269479011136
-11743 -73.414835632635473 40.873165840595675
-62245 -89.5608264382533008 38.5580633549197316
-18709 -75.8948025364742165 41.2852783723404215
-21842 -75.083729764060152 38.3802970832400803
-25312 -81.6588127790813871 38.4512168434252857
-61414 -90.1558087373484369 41.1300332831452025
-60912 -87.6116453526219203 40.9684493001809003
-72082 -91.6866864381845517 35.224621925925895
-15377 -80.4469620998885659 39.9955259465241042
-25544 -82.1098258524590108 38.2210109672131182
-49444 -86.2164338558985719 43.1844875572216438
-95687 -121.953949404470649 38.343575670806608
-84338 -111.942299215058483 41.9157147998195541
-95693 -121.21943805726211 38.4092197927229364
-95254 -120.958203356666573 38.1943129077777854
-85194 -111.657055571067232 32.9128363216997855
-47147 -85.5536003784413595 38.5937102597015169
-37095 -85.9699836966386073 35.9650240539660757
-01537 -71.8930791610824684 42.1692750070876627
-19512 -75.6751558596695872 40.3480967787350835
-46140 -85.7805621432650156 39.796841193636638
-01508 -72.0789438000000047 42.1081836000000038
-51038 -96.313095448264292 42.7061747425793428
-88356 -105.251079833333336 33.3932015000000035
-29924 -81.1084607867109071 32.8740009695897157
-75043 -96.5981254783107488 32.858030329750413
-60612 -87.6876402934155834 41.8796855219903534
-81425 -108.029470889639157 38.5803972790277712
-47954 -86.8092439952644241 39.9028964992107333
-38967 -89.7201047890532521 33.4774541695660091
-81657 -106.38507566279705 39.6360886614866601
-39218 -90.1534611467004652 32.2184804446700355
-58737 -102.420079849136528 48.9056189331127769
-67632 -99.4988704628662504 39.3651907567991444
-16733 -78.6029907008087179 41.7123946442048137
-76126 -97.4941315605719154 32.6581939901168852
-41764 -83.256283367578348 37.1226755016677998
-37301 -85.7864797369117866 35.4294017817539526
-75935 -94.1884830325697067 31.753616195038731
-02543 -70.663854714207929 41.5274014910179616
-58372 -99.0573647557252741 48.937465952926118
-57783 -103.873883505060036 44.4852415125799538
-77091 -95.4384364167266597 29.8534944442033954
-60410 -88.2256592072794348 41.4308587796001788
-56097 -93.7255355136226598 43.7274172577482503
-13662 -74.8949498906790581 44.9281257778961702
-84309 -112.097254736211028 41.7184006762590514
-23147 -77.0249016081081237 37.3598261081081162
-14836 -77.9225146483265547 42.528787404401605
-17579 -76.1803082387206985 39.9631696610887275
-63558 -92.7684986224533361 39.7545684902287348
-19139 -75.2295933349526962 39.9619511236167497
-96010 -123.28081246210283 40.7558036564792232
-68981 -98.9059039461538418 40.3023222051282346
-28763 -83.3927535513968223 35.0466733505822319
-38483 -87.3325551113965872 35.4313816653910791
-72421 -90.9694319797768003 35.7661563723849554
-83812 -116.262604656250005 47.019218281250005
-93823 -118.333397545454545 35.636047272727275
-11116 -78.310694600000005 42.2382173999999964
-21037 -76.5411657246489767 38.9206935964184879
-44013 -84.7143225000000086 39.3755749999999978
-60661 -87.6438524936387324 41.8826377875318059
-13668 -74.9884654888993936 44.7508298781295295
-08846 -74.5015987746523223 40.5761172948593014
-98857 -119.06065106639366 46.9948323905764056
-84049 -111.480209686108196 40.5241055998305981
-38860 -88.7606223403760026 33.981381255552165
-97227 -122.673539600691427 45.5436510738979905
-11423 -73.7673194814814792 40.7156728148148304
-66017 -95.2720644442565998 39.7144247728040938
-67352 -96.0716880709676673 37.3656957364055344
-59062 -106.245669316628593 45.1931635489749581
-68791 -96.9269294784447482 41.9824453595554914
-69021 -101.533900714076751 40.0833608183145529
-75871 -96.6615251333333276 34.5942846000000088
-68961 -98.0510776521073382 40.2064312758621227
-49464 -86.0034159551036623 42.822716677713494
-32748 -81.639310615384602 28.9436818461538472
-23129 -77.7757550150326722 37.6993421725490592
-55016 -92.9395600246859175 44.8330045867745568
-14860 -76.8474900951296576 42.5935103363677712
-20137 -77.7253532899652697 38.8011319024221066
-40815 -83.2443333842310267 36.7757211493614662
-37936 -75.5813885999999968 35.260844199999994
-44221 -81.4781900117382349 41.1390800077223844
-05838 -71.9431572173913167 44.4483703478260921
-98294 -121.791540150245993 47.8704557496428578
-34136 -81.8099716249999886 26.3841318749999978
-71339 -91.9256448524589729 31.0223018934426094
-43836 -81.7187926612903226 40.2030680161290448
-92128 -117.068623561161388 33.0056736425152053
-37917 -83.9159879241697695 35.997470745848851
-20833 -77.0558977172265571 39.1921675307618997
-33585 -82.05834976545259 28.7412921462472895
-68742 -98.5262356256982343 42.3708052374302113
-12866 -73.7550499205845114 43.0777136004694654
-38233 -89.034967366377856 36.1901099578835499
-46920 -86.5066829843526648 40.4688481763868211
-13032 -75.7613957827055486 43.0837031526459953
-44402 -80.8588818737411685 41.3817369883810855
-77990 -96.8905317347497999 28.4642296093214355
-35751 -86.2723570902325889 34.8191638465115503
-11792 -72.8364749562232561 40.9465602992274924
-81327 -108.655903838430859 37.5047494793882237
-05489 -72.9091480919449708 44.5541118146529342
-90744 -118.260136362132968 33.7840230471943528
-59055 -109.840373677581795 46.1040053060453801
-25076 -81.926358789883281 37.8574749494163214
-45380 -84.5128852389953522 40.2404282255657648
-04756 -68.3167459637127337 47.3154147012987494
-88119 -104.288604183188269 34.5010164259879915
-22801 -78.8731915152367407 38.4188019063853616
-34684 -82.7273091810276355 28.0768946695652453
-63343 -90.8351038893917178 39.1471411273501886
-24631 -81.9990766682223295 37.2143105462451658
-02556 -70.6274530111507346 41.6403871523193914
-36071 -86.3821438074111114 31.7206129687957166
-40040 -85.0506071912210899 37.7755644102563863
-88601 -103.78181585714286 35.172186428571429
-62373 -91.3613099879397481 40.2585325663316667
-69034 -100.443317877980363 40.2572769032258577
-71834 -93.9511429209302378 33.1148190818604888
-33032 -80.4023547821795432 25.5272735533616952
-03278 -71.8251229639752609 43.281035141792259
-62019 -89.4495722343980759 39.019783547911544
-67005 -97.0257233530573302 37.0652936917948495
-75445 -96.5730775000000108 33.4199430000000035
-71766 -92.4926563215258852 33.7739448869209795
-31968 -80.439795333333322 27.5868203333333355
-65556 -92.402526703734253 37.8625246758688832
-94586 -121.871362891915112 37.5854758158236493
-95797 -121.440803499999987 38.379413999999997
-89029 -114.623913129521341 35.1318415447260648
-61356 -89.441826852647722 41.3779444752046501
-40020 -85.3834540340136101 37.9338742653061161
-50325 -93.7985649385828708 41.6120707632052742
-70444 -90.4563503418653738 30.9057657721675945
-41017 -84.5644485820814964 39.0301172030698567
-41033 -84.4548830093591505 38.7709562315090537
-12975 -73.4118017777777823 44.5254048412698964
-48742 -83.4302465247525191 44.7278695130511892
-24014 -79.9268341034922827 37.2314777325053612
-12742 -74.7213123344156003 41.7119399318181721
-28127 -80.1592212749792736 35.4575426594900307
-74983 -95.8091838333333357 36.9155510000000007
-21240 -76.6786617653061029 39.177712943877566
-73029 -98.206863247206698 34.899037224860308
-60652 -87.7140155298166633 41.74483036424202
-76262 -97.2143416286015452 32.9940623728199967
-51640 -95.654073985109676 40.6237606849529271
-07074 -74.0550512605364304 40.8390547356321747
-88130 -103.338395408003919 34.1667363178718659
-53528 -89.6349182193038132 43.1185126435502468
-53926 -89.1379277500000171 43.6912557380952222
-78658 -97.603665352941178 29.5986190588235267
-14539 -77.8792720740740521 42.8348558240740687
-97833 -117.984813348121534 44.9331351751923549
-75052 -97.0265596641500565 32.6695288165816962
-59057 -108.877180656988997 45.8318406082205456
-13628 -75.6853354516129144 44.0184310967741865
-10994 -73.9766660691887807 41.0990148504794135
-30907 -82.0948050980665016 33.5183966817835781
-51011 -96.5157706689188899 42.9163524256756759
-28682 -80.9615777739465585 35.5850215738611908
-98275 -122.30371061181377 47.9117042534756621
-54157 -87.7490274099926211 45.0527091043350367
-02648 -70.4162696888374029 41.6667325078629176
-22311 -77.1231914335328668 38.8352377920159597
-79506 -100.290565407695723 32.0945901279723387
-21237 -76.4980977279249572 39.3405736685737608
-49051 -85.2346812262130982 42.1875161146817774
-39183 -90.7992839533048084 32.4114676686007925
-17042 -76.4260163372419044 40.3098186013116973
-03246 -71.466241986447983 43.5597804131962576
-31902 -84.9812459999999987 32.4647982500000012
-60455 -87.8062567027519094 41.7415935711007506
-34734 -81.5232338559783898 28.5397502803441405
-30123 -84.8086303333333262 34.0285188333333295
-12569 -73.8044021210981924 41.7383780546590657
-79563 -99.889414291966105 32.433262075114321
-01257 -73.3624865729759534 42.0980977390725357
-63132 -90.3744003075306495 38.6729924478906852
-98834 -119.990059727058735 48.1627908005882475
-04420 -68.8017016666666592 44.3893853333333297
-91934 -116.193819450354496 32.6299665381205557
-64638 -93.6032123545455335 39.6365692387878283
-44028 -81.9291948334931419 41.3199541824863417
-47122 -85.9740075662273 38.303274776690678
-97355 -122.857618294786761 44.5252480326400715
-52079 -90.7242088614769102 42.2813141229086611
-01731 -71.2832136603054067 42.4567109618320941
-51051 -95.9709550781670089 42.2177900754717115
-72840 -93.6183161786281204 35.4709990761935003
-05262 -73.196999772434225 42.9769615715280437
-64164 -94.6318654635762186 39.3332755496688904
-32210 -81.7507760117994025 30.267049139690215
-05404 -73.1836680600835763 44.4958108678161537
-08079 -75.4357701844484154 39.5534197706828579
-78729 -97.7673180249142888 30.4532602233142313
-89822 -116.115272426681358 40.7081891719955919
-52624 -91.3341691449275288 40.7423081913043319
-92683 -117.994483813230957 33.7520723565198608
-33786 -82.8384484608294542 27.9213386743471688
-13617 -75.1345397149191285 44.5795092667463564
-93216 -119.603328545454545 35.7875911590909084
-53962 -90.2644960000000083 43.6853556470588202
-72801 -93.1351136325500875 35.281250712666079
-56320 -94.4232399685984518 45.4645186819483342
-24529 -78.640045103675007 36.6332196502899166
-59520 -109.942030862030549 48.0596849777862758
-45843 -83.5343802007439393 40.784995283241706
-06260 -71.8859022872639173 41.913100688616673
-76845 -99.4971425253862094 31.5597089036055856
-17335 -77.1636623333333347 39.7876300000000001
-25102 -81.3634290952380752 38.1846350510204289
-24855 -81.3321325000000002 37.7933670000000035
-45002 -84.7251680982652005 39.1859748759294888
-46750 -85.4943901902952774 40.8843062327633788
-52318 -91.899960115356734 41.8858979834174434
-57382 -98.6224256392909098 44.0807985936095434
-35203 -86.8111047693602558 33.5180239284511927
-02144 -71.1219527621316132 42.400627550693244
-11050 -73.6950546746573707 40.8376612566130532
-92324 -117.311841952069344 34.0548869770411002
-12153 -73.4811078751610296 42.6406037069926569
-68833 -100.095990933491706 41.8644707214964598
-12164 -74.3702068624863131 43.5065389174917669
-73982 -97.9561506666666588 34.7397463333333292
-25428 -78.023583744270212 39.3679327132833592
-04408 -68.2910503396226005 44.8887462859980459
-98941 -120.997798671628559 47.2235523266199522
-98737 -145.742047749999983 63.949620000000003
-26662 -80.7685566147713701 38.2612214192349072
-47956 -86.901423090909077 40.8722913636363572
-49853 -85.7323773272800764 46.3292514991553901
-73129 -97.4897809282098819 35.4319730343301913
-95645 -121.743448066744563 38.8503836604215635
-95493 -122.974140540358647 39.1899529775784714
-80467 -106.913368409807035 40.2841237781795058
-56201 -95.0434757624696402 45.1195487381282803
-89039 -114.873440942982441 35.2616016929824596
-27901 -83.8339315000000056 35.194566833333333
-12828 -73.5854726336890366 43.2652764444763349
-62025 -89.9433282776305134 38.8225467716134531
-40856 -83.5430856533883173 36.7128756483516199
-71021 -93.4436004763948063 32.9590455321888314
-78956 -96.9326592622281566 29.6833928043530868
-90292 -118.453596749077363 33.9768325266209885
-26282 -80.1148284548286966 38.5385582024922329
-62098 -90.2934226184210473 39.3760061184210599
-73548 -98.1106991268116246 34.2465863478260886
-94516 -122.169004659025859 37.8338336962750503
-31820 -84.8411578827108883 32.5750738659794976
-27523 -78.9231153245334554 35.7696060750600608
-94569 -122.192756905956045 38.0459392319748986
-78597 -97.1686454472308725 26.1154155256008274
-96015 -120.824007176954737 41.4629221316872005
-32333 -84.41688309483078 30.615913636395419
-76888 -99.6031697291065967 31.5774819524495847
-53548 -89.0770060363204692 42.6872234004473086
-11718 -73.2645476556212429 40.7194621479289935
-87548 -106.190088518599524 36.1838873391685141
-16262 -79.6469268684587348 40.8370579053146159
-24881 -81.686707966666674 37.4459986166666781
-92543 -116.972689371713528 33.7331521910536765
-39061 -90.5064039999999892 31.6111533333333341
-54758 -91.221996625880351 44.5612855325704516
-95206 -121.317937306586416 37.9174815404085166
-19507 -76.278291516623554 40.4876147311687475
-98240 -122.636898620128022 48.9433755066900034
-60139 -88.0809376146973051 41.9195341607084302
-52206 -91.8783281078946459 41.9895354072368647
-10029 -73.9450376784946286 40.7920482279570109
-45034 -84.248288903165701 39.359473810055853
-35032 -86.3352545909090736 33.2613202386363653
-95633 -120.83885061674988 38.8459133215056838
-96040 -121.495542577914762 40.7982271474216205
-77561 -94.7531235376343943 30.1655547204301087
-06031 -73.3375168658891994 41.9538622379009922
-62997 -89.5895672305344419 37.9824934045801257
-99740 -145.279108459459451 66.5496413243242984
-20618 -76.788220467008216 38.2838096995515684
-79229 -100.811502190274908 33.6272664312896481
-46795 -85.3420465581991863 41.5508224638837476
-63801 -89.5846210147931146 36.8926614236216039
-50606 -91.6655517564171447 42.7538588578510854
-60643 -87.6614506561602838 41.6993153754346366
-66770 -94.7097077661989459 37.0813872899131454
-13111 -76.621660566844966 43.2611769163483402
-48009 -83.2187230326108818 42.5449895300722432
-98004 -122.205435119404143 47.618325778741962
-68182 -96.01462522222225 41.2533115972222149
-97121 -123.952896140549498 46.1957114959612198
-16836 -78.2630206347806165 41.1233891097150277
-78375 -98.1474598263589399 27.3606030414548655
-09219 -116.827651166666683 32.7921180000000092
-41504 -82.9924930000000103 37.1388849999999948
-70715 -91.7218379054754962 30.8324258841498526
-50236 -93.4919594320921874 42.1681529837441857
-56684 -95.69160590938003 47.8458709872814367
-87024 -106.734307011936892 35.6488132392837542
-72013 -92.3741580321048303 35.4594645184249302
-18248 -76.1244038387095827 40.8945743123939351
-29543 -79.2649789262160454 34.2875649454053146
-50567 -95.1037722595574166 42.5273303943661816
-92103 -117.169049196883819 32.746457495883817
-60074 -88.0222513055159084 42.1287823406816955
-76435 -98.8433532158012582 32.2527406866816548
-23834 -77.4012371361846476 37.2789348524666408
-51341 -95.0398761702127644 43.0155125957446742
-41052 -84.7760421983986987 38.6544777962633361
-97624 -121.764509329367812 42.5589405310642945
-99755 -148.945788639344272 63.7156695409835976
-37329 -84.469589562626723 35.4030322694853368
-58620 -103.389738173611136 46.5226689236111
-19135 -75.050379604210633 40.0268555103759596
-52314 -91.4470208696233868 41.9314898269929444
-38962 -90.1840636042553712 33.9125033744680806
-07834 -74.4875310043826317 40.8865053172636124
-04997 -69.6869009999999918 44.7765773333333286
-43070 -83.9592000731707344 40.2182334878048735
-05601 -72.410914921568633 44.3560514705882341
-58310 -99.6286880833682602 48.6374560854575932
-95565 -124.044997622950788 40.4563485469448594
-37873 -82.8470922455106376 36.5139324137100942
-76550 -98.1807914198449652 31.0812299810566408
-31406 -81.0902803475971865 31.9883589893017835
-65608 -92.7387740147698878 36.865134684503623
-00613 -66.7038290740740791 18.4650650370370357
-68522 -96.7532833311733924 40.7929163796496184
-76518 -97.1549738000000787 30.845008186612521
-05345 -72.6688399228812187 42.985340014796023
-61956 -88.1505171233507951 39.8574610960986107
-27263 -79.9507513228282534 35.9102397961294528
-45440 -84.1043408626455147 39.675537825432464
-58238 -97.3989146254272384 48.7827850886752472
-43611 -83.488600161545989 41.7077154818633176
-18924 -75.3558147000000105 40.3095579000000015
-05701 -72.9537356572826212 43.6243160670056085
-00758 -66.364970789473702 18.1204701052631556
-21702 -77.4458317690343279 39.4560718320573258
-65336 -93.5631361059710542 38.7675451066112799
-85227 -111.729251500000004 33.2124409999999983
-93628 -118.91507416556297 36.7836151615894025
-59740 -111.782100410919682 45.4856783351293004
-98605 -121.587185639735765 45.7434500995934243
-42211 -87.8671510317212778 36.8318112315971575
-74532 -95.194806066666672 36.0613528000000088
-57776 -103.450943954545437 45.3341532954545485
-58203 -97.1028054891808523 47.9452089496136011
-20728 -66.6334390000000099 18.0114654999999999
-75457 -95.2124528224923523 33.1354223534759385
-52334 -91.9448559599198489 41.733306501002005
-73007 -97.3251354791167245 35.6843783963801044
-75070 -96.6935700631514692 33.181948543738784
-06968 -73.4696055454545416 42.0049850000000049
-42176 -86.9331070909091039 36.924300499999994
-43208 -82.9330762499999992 40.0584661249999954
-97107 -123.881486614356234 45.5385621900069779
-76031 -97.3457178929970013 32.3614231833812127
-70129 -89.8985261211461193 30.0526672063837488
-48866 -84.3706867213709728 42.9974053157257288
-90063 -118.184143388581248 34.0470962553675847
-23858 -78.9733448888888887 34.6423362222222195
-74843 -96.7336789967320101 34.6632569215686104
-52309 -90.8854910081768992 42.1206910825838818
-35139 -86.9762612378049056 33.711644030487804
-78166 -96.4542959999999994 31.8913626249999993
-18814 -76.6061647126436895 41.7807373103448398
-07869 -74.5738422256518874 40.843691875793688
-14525 -78.0068538299608321 42.868839812336752
-41714 -83.5078950398969653 37.1727871673101475
-75495 -96.5547786882614218 33.4276589147588652
-95705 -120.642516607843163 39.3131544509804058
-55775 -93.1819060574508597 47.3186388348294784
-39083 -90.421936592950459 31.8473684198614926
-63964 -90.4246394598213925 37.2373987633928678
-58732 -100.662514000000002 47.839567333333342
-64748 -94.1105793286148469 37.382996210819087
-68073 -96.403708283120622 41.2463482978409886
-19047 -74.9137802312785084 40.1806338547096331
-49030 -85.33176952287576 41.8557738660131378
-61320 -89.1871438590380592 41.354412606965127
-67483 -97.1889507921478355 38.5476079745958344
-20906 -77.0592829835517392 39.0820021963430193
-77701 -94.1038587073953323 30.0733160258521259
-61482 -90.4272788347702061 40.3785746364943137
-97467 -124.012487238613744 43.6923329718111262
-54721 -92.064336499999996 44.6762404999999916
-66370 -96.0125285000000019 37.9811064999999957
-55429 -93.338852943480461 45.0665573122116001
-71076 -93.163475888888911 32.2523545555555557
-89006 -114.902144444444446 35.9681035555555511
-38313 -88.6255078530001157 35.5981892510318474
-09692 -66.331041600000006 18.4064364000000005
-50862 -94.6537692364706373 40.8140361564705785
-15224 -79.9458155208845795 40.4638671839681123
-58009 -97.2468049642857011 47.3408810952381103
-78040 -99.4997926521384954 27.5144039967976113
-93033 -119.166461253383872 34.1673603159022861
-50623 -92.2190983333333065 42.528737518518497
-67584 -100.154308766853902 38.6740373370786514
-91740 -117.853326786580254 34.1184187113970196
-91310 -118.623422190082621 34.5849740082644743
-76798 -97.1209085084745425 31.5471244237288175
-24126 -80.6822655212766051 37.0701537765957596
-72207 -92.3428575241702276 34.7725167457094315
-03435 -72.2801803225806339 42.9255928387096759
-33062 -80.095252679601856 26.2386981521849023
-31516 -82.2645461439267507 31.2936041867300752
-67443 -97.5242128798218886 38.3725398301186686
-07032 -74.1432014024434096 40.7644629310097031
-85286 -111.837152012905619 33.2713148205467064
-99021 -117.27737508635461 47.8073638807645693
-99322 -120.222771612807932 45.9564444339107823
-00986 -65.9776701279069755 18.4040821627907007
-57231 -97.580067906053273 44.3753202272013425
-20892 -77.1071278734176957 39.0035582278480959
-92347 -117.178480395665446 34.95121647034712
-48658 -83.9328027075627574 43.9771215856909876
-41632 -82.955044359223308 37.5642812233009735
-65037 -92.8368096345857765 38.2292711390353617
-12529 -73.542192395531444 42.2066749406085862
-14202 -78.8790589877641963 42.8875668286986027
-15412 -79.8489985810146408 40.094904936170181
-22620 -78.0256822409099158 39.0619374393062984
-72431 -91.0773110026109549 35.6521167650130693
-95130 -121.981945771983291 37.2874599667128734
-31025 -83.7447184135722722 32.3373065473751566
-12595 -74.246642941176475 42.0848144117647038
-43766 -82.2615899581948042 39.5955850132596723
-80535 -105.178410173096196 40.7044802022087069
-38671 -89.9940551564491642 34.9678169194393931
-30038 -84.1505745993654131 33.6729146173337313
-27850 -77.9123707263045162 36.4566422981160869
-96764 -155.244777666666664 19.9808541944444471
-74584 -96.6477779999999882 35.0539018571428542
-19609 -75.9959194648873506 40.3270589364473793
-99919 -132.514367576677301 55.6678721054312788
-70801 -91.1879050761420871 30.4493452335025339
-80654 -104.073389895038062 40.1663115125953709
-61515 -89.5829804999999908 40.7518685000000005
-32970 -80.4561030851063919 27.7489787730496431
-66115 -94.6183231020833233 39.1412200895833067
-75602 -94.6925486213859529 32.4711942608778017
-53961 -89.9161012745097565 43.4782311633987106
-36115 -86.2451400258823355 32.4086546188235118
-03220 -71.4784546259895279 43.4702806859444379
-02090 -71.210420218681989 42.2175651944511756
-53093 -87.9368737822878188 43.6779427564575684
-33013 -80.2708402898298914 25.8601032221261846
-72157 -92.5681271861152197 35.2767796589778371
-83660 -116.938677548087767 43.793651551884146
-87018 -107.521880738095234 36.2166545952380972
-22703 -78.1771292500000072 38.3683805000000078
-30427 -81.9527028665774964 31.9376144463935567
-40219 -85.6759077877008934 38.1402616302330344
-39335 -88.4981290341211775 32.5120793594968944
-45312 -84.0851955867420173 40.0600046396332914
-36922 -88.1699880828843732 32.3031919204309048
-95305 -120.282248679028143 37.8892157787724102
-00680 -67.1244764492685704 18.1920060231566083
-78266 -98.3180370664877756 29.6444432135798372
-95463 -123.522161497017748 39.1620485695825025
-62345 -91.1455182974079037 39.7041223042292089
-44237 -81.4822640000000007 41.2545166666666674
-44064 -81.0425666903073676 41.6093971276595624
-18333 -75.5007334645161734 40.9065517397849732
-14785 -79.4058072890624658 42.1557028984374824
-03885 -70.8962589966331791 43.0159503057238126
-28560 -76.9991081106049364 35.0930832252861009
-06371 -72.3150240879367914 41.3434305930707353
-70817 -90.9974040469717949 30.3857490651814821
-04972 -68.8116531190476195 44.5210555000000028
-11359 -73.7745739134615235 40.7920665480769316
-37190 -86.0457056505667452 35.8236957357118939
-38126 -90.0430862113885837 35.1272774824066971
-85301 -112.179511647034815 33.5317325439183094
-53125 -88.5634254799562513 42.5437610809994098
-22927 -78.2379131999999942 38.2627609999999976
-07997 -74.6663459999999901 40.7333756666666673
-49920 -88.334411552580562 46.1138285735281173
-31565 -81.6409948579183151 31.0840459016602182
-18854 -76.357461378006775 41.7868144994272868
-38371 -88.2968518862673903 35.4309067254874108
-57384 -98.4834038018397848 44.4157256489487438
-29410 -80.0129914724248152 32.9331962403351923
-35064 -86.9181582038531815 33.4761902063171419
-97841 -117.943096949230579 45.4681338046153911
-40245 -85.472310935552315 38.2679794313269781
-66007 -94.9406732408859426 39.1340091987454954
-29828 -81.8274174353392709 33.5239219974391958
-26675 -80.9546400659340577 38.2366170109890362
-46774 -84.9992156015031526 41.0774214761105654
-04048 -70.7794404610904451 43.6865038563944239
-44612 -81.4511800774913297 40.6346298961254107
-97001 -120.757705943396189 44.8701227471698303
-91401 -118.43367659981908 34.1775664128662058
-25699 -82.3169402135922326 37.9620257928802474
-95402 -122.549536666666668 38.4166669999999968
-83677 -115.49379286769225 44.963747523076961
-82929 -109.744699115942055 41.7600750289855114
-30820 -82.7046169066664874 33.238286202333363
-85206 -111.718781539307543 33.398945656399178
-39745 -89.4422858524516187 33.3073038196114055
-68664 -96.7878179760478901 41.7023026646706612
-30154 -85.0733993636363834 34.009678090909091
-47133 -95.8696495000000084 36.0198915
-76389 -98.442010367737538 33.5499619712918573
-59031 -107.398051902439008 45.5166601707316971
-83636 -116.641810026315781 43.8851894210526439
-83848 -116.899850083054332 48.6388898834560734
-71019 -93.2771407030626989 32.0436647938093202
-56313 -93.5512657719297778 45.7850636666666873
-93666 -119.339018374999966 36.5455531052631812
-92129 -117.126424340938399 32.9622412191957892
-31568 -81.8055510747883403 31.0216441815615873
-25952 -80.7271579999999886 38.0312376250000028
-45613 -82.8415837937057944 39.0318358235048066
-38103 -90.0526242498966241 35.1510798853002555
-58339 -99.3474497888198158 48.9456876645962922
-85923 -110.306986499025257 34.3606077914229786
-64835 -94.4383584529462894 37.1485884098504613
-79044 -102.364379471816335 35.8799571043841183
-23220 -77.4584571995162463 37.5498403434820247
-02452 -71.2200734218887419 42.3942086716720254
-83661 -116.858207382256822 44.0722937577318632
-21412 -76.4881157500000057 38.9838642499999963
-30642 -83.1984665845776163 33.513617443576166
-54662 -90.5678975714285741 44.00637714285714
-19529 -75.832120669150612 40.6308974669252692
-72456 -90.3094005789473471 36.4438786166103199
-71072 -93.3104296717879151 32.9487037804838465
-93437 -120.524685856344277 34.7482449256567278
-68423 -96.9476403541535063 40.8108196898813134
-48609 -84.0870830375234419 43.4127384162757153
-47858 -87.2390089439406324 39.2628263326462772
-05158 -72.4685193621673278 43.1000689805133348
-08031 -75.0932113378186301 39.8680951143767999
-63143 -90.3196556926905743 38.6126395589425258
-85747 -110.757655878864441 32.118606232736127
-30908 -82.0419034999999894 33.5084765000000004
-42638 -84.4702603268156622 36.6790869720670258
-48041 -82.7955228843360374 42.926595320539441
-38572 -85.0987942837695783 35.851540096870707
-63376 -90.6231267884471947 38.7776548847237805
-35089 -86.0372018837485228 32.9549678036635783
-94940 -122.89622022550553 38.1762819720062154
-56185 -95.8355913613887509 43.7936920284062126
-47057 -85.1396390000000167 38.8562376
-43978 -80.8889954999999929 40.1816307499999965
-96048 -123.061822777450729 40.7435558895425416
-62223 -90.0527036438335671 38.5514942557581151
-19508 -75.8422995471100023 40.2624630445033134
-33311 -80.1715956472779681 26.1422228578157636
-13220 -76.1305385000000001 43.1231195000000014
-81601 -107.316441220385315 39.5143608899212708
-33141 -80.131086209359637 25.8570432775040793
-40489 -84.6420104273359328 37.3674272440412167
-95361 -120.818239038235134 37.7823507763197455
-49791 -84.5956341222493791 45.4859937139364305
-13084 -76.1023832066759525 42.8913848910654281
-86436 -114.478623509052113 34.7781029249201126
-44212 -81.8332050729717935 41.2472380068938662
-72167 -92.6618022652629065 34.445420101520547
-26630 -80.3188007500000083 39.3472004999999996
-61373 -89.0063000361629122 41.3810450277884883
-40419 -84.4959244097989597 37.4390846314081429
-32744 -81.2304395829147126 28.979858511907377
-37209 -86.8688736301615023 36.1481708671454385
-25829 -81.2655578846153901 37.7305051923076888
-26386 -80.3896581768964609 39.3873112465826125
-05260 -73.2584890426829247 42.8131558926829143
-64645 -93.3543606149312666 40.2961064970530387
-17825 -76.4964978999999943 40.7715132000000011
-79540 -100.046542106976759 33.1588024372093031
-00636 -67.0790551904761827 18.1638155714285787
-31778 -83.7287500391665702 30.9779829360802275
-31089 -82.8205962464708847 32.8824242767391439
-87011 -105.816967028169046 33.9699492394366231
-14723 -79.1402792602739567 42.3062041748589834
-80614 -104.959707999999978 39.9254195000000038
-52045 -90.9330872072813889 42.456989292829995
-10013 -74.0040219726594586 40.7200094026512289
-10280 -74.0331068513513486 40.7668825810810773
-85378 -112.313940494198604 33.6418740010548518
-71220 -91.8975488011054011 32.8229998454475265
-20902 -77.0462650006072494 39.0422988073263326
-28304 -78.9790586955570433 35.0260769456272811
-24830 -81.5406292307692127 37.3320461442307874
-53167 -88.2281945921787809 42.7410358268156401
-39358 -88.4414132472527257 32.8530100242673058
-11709 -73.5498105150666248 40.9005423772599386
-85714 -110.958730117783773 32.1692436622858864
-42252 -86.5065952661871194 37.2490705971223264
-19954 -75.5198156659694035 38.9025138249651263
-33054 -80.2490241595302223 25.9114860655247874
-61074 -90.1226619547448706 42.1124058930139924
-62975 -89.3727655729359753 37.6341959698944279
-78363 -97.8586646252658454 27.4909035298640703
-56446 -95.07290084491963 46.1259473320368798
-07058 -74.3477469496090322 40.8733005291050233
-43449 -83.1405734106065779 41.533126693226464
-83870 -116.856067936407982 47.1395811597087615
-45648 -83.0009280006178614 38.9103827910998703
-42541 -84.8046598103925362 37.366653095080153
-20904 -76.9772243803577396 39.0689614169703461
-73441 -97.4335335595238377 33.8764338630952722
-36785 -86.8436855571308968 32.2925072691493682
-56443 -94.5986638521137877 46.1824520807256107
-72348 -90.4241486492366704 34.9416710182785479
-72540 -91.9089975577557396 35.9417523003300161
-21299 -76.7116900000000044 39.2993194999999957
-13146 -76.7595783968397285 43.1016458090293355
-17237 -77.5560336786653579 39.8375808305530867
-79019 -101.410323068156373 35.0823815938547767
-04566 -69.6528575000000103 43.9711396428571533
-22716 -78.1034993714795007 38.6209837414363832
-94599 -122.361787227053085 38.4056958444444732
-93258 -119.057615793814477 36.0490099845360703
-84657 -111.969480300751869 38.8623644887217949
-55929 -92.1435849174526851 43.9821335247641514
-96050 -122.872485209763369 41.8527449562803966
-28731 -82.4022896843172816 35.2839797078751047
-37031 -86.2906975480661487 36.3717084118316691
-19383 -75.6514611486486643 39.9602923648648698
-53703 -89.3765067235570996 43.0792170424337542
-62086 -89.5782675459459909 38.9852862779279192
-07060 -74.420956974460438 40.6169217212434219
-27709 -78.8307487135922287 35.9541139398058576
-36241 -86.4963986249999977 31.3211341249999968
-14887 -77.0189110204081686 42.4228443061224425
-19971 -75.1077893513004824 38.7148098353706729
-59420 -111.040486317343024 47.9271322872957626
-45167 -83.806529478607402 38.7663889117734612
-50571 -94.5748786906607393 42.6337227799925316
-04489 -68.68855495774649 44.9124760845070412
-79847 -105.145052804635654 31.9187164205298401
-62340 -90.7269520985400391 39.7178507788321795
-19347 -75.4416930344827676 40.7291407241379275
-84633 -111.902097474698849 39.9489928698795183
-36343 -85.1381217396106962 31.0569436370405754
-33841 -81.7586464556202941 27.7469755910479492
-90067 -118.413514950166046 34.0560640863787185
-62375 -90.8713266796116841 40.0021734660194141
-46394 -87.5008755315603821 41.6787141624478537
-99022 -117.68576768518534 47.5959036004822309
-49101 -86.4825451229462629 41.9465276521246722
-32066 -83.1958853684831894 30.0805766736258775
-40110 -85.6526308903225555 37.9341984064515856
-68970 -98.5226080955838484 40.0879860483968926
-22548 -76.6933354044943627 37.8293085168539491
-53040 -88.195129147876429 43.5124791753780684
-92316 -117.395820965680613 34.0635242068882391
-49525 -85.597175551381369 43.0253873201451427
-35310 -87.142477027027013 33.6651650000000018
-60137 -88.0618826272337856 41.8695593632769771
-11514 -73.6122587361531373 40.7509044370594111
-27594 -78.1800388132779887 36.4993614522821659
-17847 -76.819763584480441 41.0102242727813007
-95246 -120.529768274972156 38.2370068205769371
-56316 -95.1390439696283323 45.4989863093112987
-75009 -96.7456615214815656 33.3322748069663817
-82677 -115.490930399999996 44.9649495999999971
-89316 -116.005489628884703 39.5492946023766407
-72735 -93.977593359999986 36.0731419000000031
-83604 -115.894994693563063 42.8172114714414391
-11787 -73.2085149137199807 40.8533481583327287
-51239 -96.1419734968245052 43.1968854561279016
-82152 -105.538229749999999 38.0935665000000014
-17774 -76.5450208012380529 41.245037082088615
-30162 -85.1709457499999871 34.2538334999999989
-47958 -87.1482835492227821 40.1645111295337003
-90603 -117.991685056116935 33.9447968458659588
-45787 -81.6329897692307611 39.4676186923076884
-53950 -90.1638988317055237 43.8788052854996238
-43344 -83.3310715076893871 40.4178137410293346
-05851 -72.0255817284181603 44.5429841118077334
-93924 -121.705472587110364 36.4675902736135811
-02715 -71.1467573350636826 41.8178016040585874
-43730 -82.0993471240584256 39.6302047471265126
-81230 -106.996591911792123 38.557595121395849
-73478 -96.4809079999999994 34.1433655000000016
-74361 -95.3135911985943238 36.3029064380235482
-17860 -76.6271925643489169 40.8337091289505736
-54934 -88.8276574539877402 43.9948655828220652
-38450 -87.7601298473427676 35.175465059780187
-22507 -76.5035763478260691 37.7805874347826034
-06497 -73.1098337499999928 41.2664974999999998
-60945 -87.587317363636302 40.8299247607655644
-28344 -78.6199209318984913 35.1627029343685109
-53925 -89.0464722751883642 43.3161940200948266
-40729 -84.1250463203739969 37.2359345586573696
-17868 -76.6305222831541073 40.9558584193548256
-05155 -72.8490644551562667 43.1585400508279804
-98563 -123.603369372025668 47.0126774898432203
-00764 -66.3883409379845091 18.4475355658914921
-59061 -109.794271225611652 45.4447005954879018
-14304 -78.9604469912423781 43.09201105821505
-65013 -91.7519368731809237 38.2826867532385009
-76252 -97.3793441878606956 33.6703830791598833
-44056 -81.4994824553333501 41.3148934226667279
-54805 -92.0176342603650852 45.4169425704809342
-48862 -84.5439156666666776 43.2476354444444553
-11575 -73.5866837944045074 40.6804664815599821
-29030 -80.6588949873508767 33.577788994867106
-83608 -116.707730800000007 43.7262649999999979
-62067 -89.992525549211507 38.9246522142468621
-15214 -80.0149069531574781 40.4832137215982186
-38840 -84.7330273333333395 31.8807744166666645
-28926 -82.6954709999999977 34.5022996666666657
-56741 -95.0598116249999947 49.345478
-34947 -80.3641050362695495 27.4484453740436543
-49426 -85.8699439819534831 42.8741137644885058
-12564 -73.5954199525654218 41.57437434344358
-80546 -105.597275845238187 40.876075803571446
-07066 -74.3088285902728387 40.6203881568209226
-06418 -73.0809927828700694 41.3239244707590032
-67301 -95.7159801938110917 37.2190297851326761
-68936 -99.7790234222221954 40.3147708555555795
-73025 -97.5326364827684671 35.7286489757901933
-54103 -88.4876964276465401 45.6616071827875061
-63637 -90.506797642982562 37.7296816789474292
-18660 -76.0610301404480111 41.0993745123092609
-48440 -83.4027694531250177 42.9566689062499947
-24843 -81.6937797181818013 37.4755739363636522
-18032 -75.4692900613181052 40.6563362893982898
-62853 -88.9136924964854671 38.5178475303162529
-98057 -122.214697800482469 47.4786143849069617
-05362 -72.6780091974026021 42.9444239415584335
-56125 -95.5531780666666606 44.0528113111111139
-07079 -74.2618102052065723 40.7495750367533418
-45506 -83.8388830685144626 39.906329990532079
-71328 -92.1956997232773006 31.3571337703675077
-39776 -89.0427352915550756 33.7919621416403118
-63351 -91.3157582268877235 38.8528727657459072
-08221 -74.5760436714909787 39.3501735412318396
-07650 -73.9950233238679544 40.8459575149654839
-68410 -95.8746797923172949 40.6556543639774546
-68653 -97.4822217929154533 41.5493468555858101
-53019 -88.3666545616943466 43.6918516537753021
-19701 -75.6958752117967038 39.5986987417285121
-08404 -74.4409016666666616 39.3649673333333396
-15110 -79.8515370421754938 40.3701678499127183
-37047 -86.8365603043328775 35.3204530651645783
-71104 -93.7333503491446294 32.4837931245155005
-71937 -94.3900028448241102 34.402765235676668
-18462 -75.4210937031077577 41.9016082283575386
-60037 -87.8118652700730138 42.2188277080291883
-72762 -94.2087183935399253 36.1883782131229026
-04448 -68.6723174390681379 45.2567167891278075
-02865 -71.4396429355600446 41.9050163612662914
-76843 -98.8541729126983881 30.6976327857142977
-12444 -74.2961579767260645 42.2583507017067532
-94027 -122.200132910335881 37.4572664112491935
-62037 -90.4518369554189974 39.0083435055028147
-02131 -71.1277059153674003 42.2833109678073029
-57232 -97.3793913678008494 45.6255259995637132
-24228 -82.4438415967478875 37.1636619282362588
-41655 -82.7332517361206925 37.5151169636737194
-33129 -80.206599167464077 25.756950059808613
-32305 -84.2808095432874751 30.3464106247442373
-71450 -93.4133205688931838 31.7767761609563699
-39406 -89.3384449603960462 31.3295056138613752
-29369 -82.0230354011589924 34.8777528567096979
-92268 -116.522001870980731 34.1903608697443886
-54119 -88.186907779816579 45.6693405091743188
-91768 -117.77751662388286 34.0688596668263202
-03033 -71.6692361779235085 42.7400848986883162
-97736 -118.98489832000007 42.7275486755555249
-59923 -115.47896496773977 48.3594741801418238
-16335 -80.1533716014900364 41.6309457800088296
-36569 -88.0679750535291106 31.5343642747512973
-64468 -94.8771843754700512 40.3441534134272999
-70737 -90.9271785105469519 30.2422496233373721
-72404 -90.725166685776685 35.7906943403136921
-47441 -87.1706391551450253 39.0409353816503213
-59077 -107.577445861623701 47.2132116494464853
-26133 -81.6772014019347949 39.1224697540647171
-71291 -92.1824034684403415 32.5328062509404319
-32534 -87.2804725992198769 30.5323797768112293
-43948 -80.7810088609022898 40.2669645620300258
-15028 -79.8027636755952585 40.2985954702381051
-90077 -118.451555939268331 34.0999007150909819
-52159 -91.3656857567407457 43.0697368690256326
-21078 -76.1284941404805267 39.5573554866912716
-72902 -94.4196196000000043 35.3885585999999961
-03230 -71.8701823052688127 43.5195378259097723
-16055 -79.7485138883595823 40.7165117092472144
-54413 -90.1333293626465633 44.2837898232830582
-95330 -121.293433693646392 37.8173212274382209
-60435 -88.125752335868043 41.5445046259177531
-13840 -76.4002048999999772 42.0354140250000015
-92868 -117.875122914103358 33.7880729898249896
-95614 -120.977199436532999 38.8939224703712085
-07605 -73.9858807206875753 40.8628626347451842
-82219 -104.437446705882351 42.4859231764705925
-71630 -91.2059928688811397 33.6117986206293722
-24290 -82.5636834049209654 36.6156400309840819
-00961 -66.1674679829457091 18.4103372434108721
-72370 -90.030316063197489 35.6925814964368087
-04974 -68.9392363306315872 44.4917529537115541
-03844 -70.887841087471827 42.9273708098194575
-19037 -75.4432935714285833 39.922147428571428
-35478 -87.427119999999988 33.2305695263157972
-03667 -71.2624140000000068 43.8252608000000023
-19702 -75.7166470486573218 39.6288736537047228
-38676 -90.3428459438357834 34.6857015436240843
-84061 -111.391829559840232 40.754293837189465
-31906 -84.9511621961945735 32.4690006870261385
-34623 -86.0755382142857286 39.6742356428571412
-75944 -94.4126691571364347 31.3524772138540797
-89508 -119.947012746867614 39.7367485629949329
-25621 -81.895656643971634 37.6292786836879927
-62443 -88.6107069516643264 38.9537818814410031
-16693 -78.218718409584298 40.452049869828798
-37013 -86.6442399148028954 36.0497880883052986
-35974 -86.0117783870079933 34.363752212598456
-53094 -88.7235635205724549 43.186808108924609
-24873 -81.8682815617433448 37.3544723801452605
-65532 -91.6902103000000182 37.779104199999999
-38010 -89.5630762500000088 35.3780551666666625
-16223 -79.3594216810810735 40.9716331459459511
-32033 -81.429389731483127 29.7974208008597898
-87728 -104.565452456730867 36.5574562427884686
-05737 -72.9371545392600353 43.7104620640793726
-45630 -83.1019961428571463 38.7028942285714166
-95300 -120.625593749999993 37.3528290833333259
-27732 -79.0953499999999963 35.4109967500000025
-98422 -122.398327122795436 47.2941270277137846
-00738 -65.6604496456694164 18.3253779825646816
-29563 -79.1970074564303133 34.347344295734473
-16879 -78.1448671658291687 40.9666485879396944
-72719 -94.2891856370837473 36.3663265594294742
-68926 -99.8389574111373861 40.1250198815165859
-87310 -108.698990750000078 35.7355163124999962
-13043 -75.7368219999999894 43.0424335000000013
-97143 -123.947390609195423 45.439903413793111
-07843 -74.6605121191331449 40.9403446767502928
-84318 -111.814538785133578 41.8003200859466091
-25474 -87.6552680000000066 32.9778514999999999
-31807 -84.7907703696099446 32.6352580694045002
-05762 -72.8218328534201902 43.7710355237061108
-94556 -122.124904393856426 37.8410138792311699
-48832 -84.7701167334234356 43.4063243315290848
-48219 -83.2520941120084359 42.4250607661515673
-28070 -80.2722839999999991 35.5605836666666661
-00907 -66.0765771153055113 18.4491497220315495
-68442 -95.7749660844747979 40.2369636347031872
-19511 -75.7307059482758689 40.4704274568965658
-39811 -86.2305284999999913 36.0038669999999996
-13655 -74.6621100180135358 44.9797874915079845
-32221 -81.8154495285750301 30.2900039434426311
-99928 -131.759225945054965 55.4178729890109807
-52405 -91.7166087657264484 41.9818435468048037
-49305 -85.1646879366059579 43.7426963244473157
-80123 -105.072287893384612 39.6147270125999782
-56545 -96.2630346571156394 47.4066773352435362
-68042 -96.4331366103896386 41.0948998181818226
-12978 -73.7968407030812159 44.6156745434173345
-50441 -93.2191386266238311 42.7416030646944591
-71101 -93.7491907373567983 32.5057113720782596
-76020 -97.5594768708807578 32.8963475163027965
-95662 -121.225717855732853 38.6835404669985081
-70401 -90.4720747325214916 30.5219815755696224
-21120 -76.6806379687128441 39.6440801910867933
-01515 -72.0467425185184851 42.2121206775067037
-63655 -90.2120824770345138 37.3934353861253612
-44068 -80.685736230769237 41.9050724615384524
-34286 -82.1789187092277444 27.0741335658396203
-57646 -100.062923626131962 45.6810938984476067
-76465 -98.1983642777777561 32.4021073888888935
-83545 -116.424392114191718 46.4528193805708867
-27278 -79.0871542161435173 36.0758870314782101
-71110 -93.6580961976864188 32.5070988580441664
-59916 -113.600038456594376 48.3069500083472008
-71950 -93.7268491860540109 34.2492835526991755
-67144 -97.0139216824583457 37.7988855941101818
-90701 -118.078798131794926 33.8674724625640664
-32244 -81.7623978033645642 30.2161296280904352
-62573 -89.063159946601786 39.935347060679625
-76482 -98.7987407142857279 32.9645107857142889
-71763 -92.8056076876025742 33.9034583550633002
-38786 -87.5076365000000038 32.4494490000000013
-45241 -84.3912693141855783 39.2805563816055852
-26036 -80.5389213210831514 39.9969837891683042
-51055 -96.2462724953774114 42.2160611248074105
-07514 -74.1452652220421982 40.9245351564019444
-30135 -84.7277720903161082 33.6870394228586747
-29685 -82.8513729326572275 34.9469385139675168
-44026 -81.3393735172411567 41.5331456039869948
-94572 -122.257843929045606 38.0284124418072338
-40104 -86.3316685247951483 38.0717669064133304
-12246 -73.7501553076923244 42.6456609230769246
-73139 -97.5259666307046729 35.3859826454076867
-33446 -80.1710096648704535 26.4519807123813173
-54559 -90.4513783520822585 46.4913652395890296
-54950 -88.8931391408047205 44.6718468089080503
-17872 -76.5972844548296905 40.7851713037654733
-64682 -93.4774521917990029 39.54464620502646
-76687 -96.451329575735798 31.3673876360373498
-49965 -88.8634955947156158 46.9608355615763742
-55289 -94.4607985000000099 45.2533750000000055
-92587 -117.25240882917852 33.6903051540969329
-45840 -83.6384126933313041 41.0422571087973651
-22601 -78.1744782410939223 39.1748362556342684
-71341 -92.1457077623305452 31.0627206382113386
-62849 -88.7722721408820519 38.5896317107307638
-24000 -80.4653983333333258 36.7120931666666692
-61232 -90.7239042081218656 41.4370622005076257
-63026 -90.4668397025078264 38.50100584527857
-07207 -74.2169106666666636 40.6625200000000007
-70511 -92.1798201777777848 29.91465888888888
-97899 -118.208846199999996 45.7904814999999985
-39341 -88.5570153166820404 33.1115268863636913
-26205 -80.6490323764147945 38.3242727532413525
-07837 -74.6365610714285737 40.9726694464285615
-78140 -97.7661632551565702 29.3192454748552507
-83235 -114.027809702857112 44.6698234457143002
-17310 -77.3573734999999942 39.8840382500000032
-93521 -119.765107999999998 35.4418885000000046
-69214 -100.059189646723652 42.5736823304843384
-94613 -122.186200470588233 37.7815961764705861
-30534 -84.1073338507572288 34.4146434912331856
-57426 -98.4959133484848621 45.7313230075757744
-56209 -94.8043454313869915 45.132344048418318
-65570 -92.1144208898304981 37.4559385517891457
-27571 -78.465321116266793 35.9214995934615473
-28179 -80.6878059999999948 34.9918069999999943
-73949 -101.78542214570561 36.5003552423313025
-72730 -94.2590087412193327 36.0320607097646786
-48240 -83.3021487441199184 42.4246826523094995
-62356 -91.0783360087242784 39.6180842137404454
-57273 -97.2914486688788287 45.3596751247511705
-28088 -80.6117515009579222 35.5446388738824552
-15611 -79.6535819006771533 40.3064678306997877
-52076 -91.5029510743003414 42.7095738421354554
-08212 -74.9650618062826624 38.9369962931937366
-84108 -111.805685932178136 40.749514224088486
-64137 -94.5412660190229985 38.9302238060760359
-26059 -80.5978318599690482 40.074837212134554
-43045 -83.4476236457970941 40.1730592927536208
-25245 -81.7382158921821116 38.6936232057561398
-60430 -87.6654762084559138 41.5559612560050411
-65753 -93.0762931095409982 37.0020010138609408
-74950 -100.876245823529402 36.9613101764705902
-22743 -78.337320943375957 38.5091389903846277
-04479 -69.3117170492766377 45.1321722953134596
-72639 -92.5032796608956431 36.0090858170869126
-15422 -79.786831101694915 39.9838376101694948
-08097 -75.1537308990347555 39.8146113192278861
-44401 -80.9495851707443705 41.0333669429153431
-62292 -89.6841360449437417 38.2126221488763989
-06793 -73.2922208247293838 41.6311060110620019
-67021 -98.8878271034483163 37.7671647241379347
-77519 -94.6048161606216524 30.2232878593065237
-17053 -76.9925359603910096 40.3296634200234578
-00719 -66.2567459556737361 18.2834406134751575
-23294 -77.5440436521887619 37.6317828255833149
-85341 -112.776475578947341 32.0819145263157921
-62551 -89.15796072463759 39.8465383904518902
-55304 -93.2797680309312511 45.2522270742422776
-68821 -99.8338583622047935 41.9761755065616882
-77350 -94.8305057236842543 30.7983830921052331
-05777 -73.0450537642766022 43.5652844576460083
-62014 -89.9631139560564321 39.0373053492712856
-04609 -68.2807441924831409 44.3968667180233965
-36022 -86.4005615290356985 32.608695205236053
-73162 -97.6394286695169598 35.5814142064499279
-53074 -87.8805365068117936 43.4014779114477633
-35035 -86.945815891964088 33.031059938979574
-95460 -123.781036027007161 39.316262297810276
-43912 -80.7835145811066013 40.0829265200423421
-75643 -94.380238073229151 32.011911632116437
-26845 -78.9632822695652976 39.1778286038646684
-17223 -77.9629418807587768 40.0659246436314262
-76538 -97.8942171005395352 31.6186489400738147
-25811 -81.3126804778761567 37.5889927831858088
-71351 -92.0750815848237067 31.1507914918088389
-65756 -93.9663779084315252 37.1024291223934952
-74129 -95.8665521012734416 36.1260837823511451
-68436 -97.73914347087387 40.4192885177993375
-10023 -73.9824441886447062 40.7758656025641102
-45701 -82.0901070323702697 39.3122602515731856
-84763 -113.04154283880591 37.1607117641790836
-76995 -100.387295333333341 31.4438518333333299
-11369 -73.871008125000003 40.7654242500000024
-48504 -83.7321773885784495 43.0439761767838149
-65747 -93.5793169142259416 36.5878478374153886
-05150 -72.5275713089700531 43.3347806821704964
-53002 -88.3553899664802458 43.4402492054146734
-36319 -85.1534475313979584 31.3328995406792608
-85544 -111.479382374042885 34.3965411777899064
-49266 -84.5486103580157504 41.8531755279525797
-15539 -78.583865550913842 40.1284210522193234
-35446 -87.7464421809644364 33.2096442350883905
-78543 -97.9961250805482535 26.299910036712312
-45845 -84.3786912824690347 40.332358461637341
-14751 -79.0114260243902464 42.3006812195121924
-04766 -68.2219147445393617 46.8847329078822028
-12886 -73.9199381900268691 43.6453586805929845
-28526 -77.3997710234375518 35.2540748991072732
-32563 -87.044718772046437 30.3914680390376617
-65236 -93.1089879012119894 39.440533878787825
-60172 -88.0869494575404133 41.981343518324536
-03466 -72.5125486057142581 42.8988145114286539
-78239 -98.3625120254768319 29.5186368014338321
-56010 -94.1848268115841307 43.8865946057221663
-13407 -74.9567043848459065 42.9754300756036116
-18509 -75.6476600764751623 41.4283114101319256
-30084 -84.216308991029635 33.8561744503342581
-02072 -71.1050131770776233 42.1234018550960556
-28714 -82.2967118803531861 35.8998271277534968
-05757 -73.1170801878320873 43.4796681955366395
-28133 -80.2730842355212957 34.9902501235521299
-22627 -78.0872528366296734 38.7660661068037982
-16146 -80.4986447245390906 41.2328168055318969
-17723 -77.4507778813559185 41.4104018888888774
-30668 -82.7075153680024755 33.8970927189900877
-54659 -91.1177364857143175 44.3237399404762087
-75963 -94.5771371551723945 31.5477095689655229
-50021 -93.5870886741064254 41.7344924327715745
-90715 -118.079283427811689 33.8408715100205342
-59756 -112.791042911949702 46.1851813144654315
-79699 -99.7099096842105155 32.4672613157894716
-71658 -91.565510324558133 33.3084030707033065
-58266 -97.8554846215192384 47.9831764703974031
-29842 -81.8656810362216163 33.4526239123474269
-38253 -89.033926142459805 36.3181001449638785
-54495 -89.8845946510678857 44.3961237715847048
-61104 -89.0759467947470114 42.2548015033850035
-57071 -96.8923148286807105 44.2773499937194686
-56577 -95.8034887704918106 46.9759856721311451
-11796 -73.1002248855071741 40.734377166666647
-57239 -97.2933569985776074 45.4944381991465079
-29688 -82.3608805333333436 35.0507070666666607
-90742 -118.071684816578525 33.718328527336844
-38865 -88.5770274692282698 34.7760883117775563
-31313 -81.6253378631170676 31.8264795614515457
-84356 -114.263560666666663 33.6133370000000014
-43007 -83.4142702307692332 40.3405979615384567
-26968 -75.4666337499999997 35.598386000000005
-51525 -95.4133906069687754 41.2315623474658963
-05081 -72.0878374835762088 44.1439306278205947
-65309 -92.6972956923077049 38.2391236153846137
-58250 -98.0282232061302921 48.2757245652417666
-26801 -78.7920185615787716 39.0532942881573604
-42455 -87.5477878715694544 37.5899257290302629
-60960 -87.8884220594143102 40.4383806797769338
-10308 -74.1501124906628348 40.5512214311010908
-27010 -80.3387889444444454 36.1828532222222137
-98846 -119.957448043557818 48.0637041377421852
-70443 -90.525915751999392 30.6292795537986251
-17982 -76.0382402600422012 40.7712197188160417
-27613 -78.7117847223318847 35.9130835662876535
-23860 -77.2777393915813491 37.2841480579229199
-30563 -83.4678829522334382 34.5667137968713618
-55732 -92.2388365735211124 47.6684889765880868
-93272 -119.307341518353041 36.0517796150654064
-32427 -85.7891652620212568 30.7312064828850886
-56028 -93.7030158337819046 44.2200650090848129
-44875 -82.6522772624806663 40.8851975467711313
-98012 -122.202818735294684 47.8418649798415601
-33411 -80.2087872399842752 26.7082745597542441
-39253 -89.5164442500000064 32.0161510000000007
-54151 -88.0730682925168793 45.767928506046907
-71090 -92.944407499999997 34.6604675000000029
-40361 -84.2315097745724159 38.2124419887806326
-62935 -88.6331226713738687 37.8401185672570151
-04893 -69.078875333333329 44.2205813333333353
-44449 -81.0299236151122102 40.9891215436836234
-49637 -85.7085570286898388 44.6368646375518381
-40946 -83.831086265917591 36.9708745730337185
-93254 -119.736880644351345 34.9442714058577479
-68366 -96.4209192380953368 40.9654020792282054
-78589 -98.1508810632274162 26.1977190417268808
-35592 -88.0972061472124324 33.751743369868457
-61311 -88.8650357293366397 41.043428811408539
-43032 -82.9582905714285772 40.3289979285714253
-19560 -75.8990813262723236 40.4001193067932078
-92244 -115.521943749999991 33.1212657500000063
-92055 -117.454518701846922 33.3256291899736681
-99550 -152.879857548936172 57.8641131617020932
-50629 -92.0625877352862716 42.6404204601098726
-40807 -82.9757931861861664 36.9677523033033069
-11968 -72.4086744434074632 40.9097203009515269
-92236 -116.183438577628081 33.6780520519843094
-61417 -90.5480389254079228 40.7784096270396361
-90810 -118.217315001683858 33.8162417543900418
-74644 -97.1087974718310107 36.5532221302816751
-72364 -90.1954478740523058 35.2154526213987324
-18797 -75.9152964000000168 41.1402104000000008
-29365 -82.1614855017533898 34.9771622775182109
-49950 -88.1437050549175467 47.3999729966376222
-07077 -74.2586373229508467 40.5551787688524641
-58318 -100.381526711145284 48.8901469793207895
-84337 -112.188126688117507 41.6979193528505547
-76474 -98.7789488328249519 31.9714778517389639
-79120 -101.906160538461549 35.1793476153846143
-15750 -79.1858724838709662 40.4828086290322418
-14550 -78.0874605431269231 42.67500643531001
-99160 -118.207764360128579 48.8650514790996766
-26169 -81.56194344915518 39.0731614107320482
-47986 -87.2077858428571204 40.5136842142857105
-19541 -76.0240449579663107 40.4748481893061935
-68993 -99.7768355000000042 40.2754819999999967
-97423 -124.181541295560308 43.1771176272768713
-66503 -96.650486874593355 39.2301905106327808
-13211 -76.1325374098360612 43.0985287370744672
-18325 -75.2333408734456555 41.212364841252068
-77974 -97.293219783547201 28.8980386394398394
-36925 -88.243796375962944 32.4694525975837607
-57641 -101.361545006901963 45.8814032960123512
-47549 -86.9214599999999962 38.4007222000000041
-82930 -110.922712196066286 41.1895920102148452
-67221 -97.2884154363635929 37.6188991999999942
-42047 -88.3888793238434118 37.293808073716356
-56435 -94.4514175065116319 46.8218596650257908
-51246 -96.1679096694297755 43.4328975400259338
-98645 -122.777145384116679 46.3143357612101028
-53520 -89.3529346852739081 42.6098831390411092
-30680 -83.7039024718784361 33.9971488960165686
-01220 -73.1185571270211483 42.6156285623429341
-07005 -74.419629627073661 40.9194031559043196
-13820 -75.0375305181216419 42.4641497636506102
-54682 -90.7576839999999976 43.4517719999999983
-49793 -85.0330917936345543 46.2051048285420336
-25134 -81.4683816574585791 38.1739076298342752
-58402 -98.6882939999999991 46.8828146764705878
-48356 -83.5887517085924117 42.6674868015807007
-18055 -75.3110619766480909 40.5822614397765804
-29541 -79.7663545443376734 34.0838402350663898
-01585 -72.1635932854603084 42.2399072101586128
-36576 -87.7630670560331083 30.534250863737693
-32447 -85.2299245454545513 30.7510410909090872
-82834 -106.719663114398529 44.3141090536471722
-02190 -70.9483308182832388 42.1705341457238916
-56169 -95.9924543574465901 44.330424071276596
-42051 -88.6398690229283801 36.8527794348445212
-00953 -66.2296627089792338 18.3769007294530766
-50657 -92.6740363728813321 42.3433126610169381
-55318 -93.6168467448177353 44.8130163176289926
-98104 -122.327089470916292 47.6031689603960402
-75938 -94.3655427490277958 30.9152954178403583
-83210 -112.830830020102923 42.9746954639743919
-95726 -120.58200138736116 38.7457975709983202
-16701 -78.6660379473566849 41.9465246284923197
-52726 -90.7653639199414073 41.4943023622163167
-23310 -75.9687690359931622 37.2657263011636459
-82727 -105.232579557559959 44.311134103737146
-31648 -83.0014599332591274 30.7096804749721741
-93940 -121.865931288737926 36.5831882036102911
-38542 -85.1964312005347466 36.3228468315507982
-12930 -74.5564441370280946 44.7209238099878092
-07063 -74.4464453444511776 40.6051575263796281
-97827 -117.868241840449869 45.5932900269741097
-19504 -75.5925284765218493 40.4048235902609036
-03109 -71.4087802467638255 42.9682694942007473
-19525 -75.5920271658831098 40.303385110224319
-83013 -110.405506136255923 43.8488828945498028
-33125 -80.236393536047288 25.7830103031612659
-44214 -81.997713549865253 40.9497432798742409
-98022 -121.941838327802657 47.2075708976130173
-00760 -65.8970896315789503 18.3873103508771862
-44203 -81.6198504115009342 41.0189078765777282
-58711 -101.28903803800074 48.9259783147460254
-47346 -85.1624408967728215 39.9342395566245472
-62361 -90.6382134735395226 39.4743042082474176
-86036 -111.662080931677025 36.820163739130443
-67864 -100.307107883660294 37.213241689009223
-97201 -122.692502075081165 45.5060838405100085
-96770 -157.240352391806596 21.1621064411764621
-15550 -78.6394189658708314 39.9939731275436827
-15330 -80.0939227070012123 40.1865966187195269
-25142 -81.7346351820448547 38.15693354114714
-41822 -82.9775645898818652 37.3305071987672434
-76631 -96.9721072865275318 31.9802355218216299
-31833 -85.1079092807729722 32.8593886397508825
-38846 -88.4019813489931181 34.8562927158836615
-00968 -66.0991864210526501 18.4053808771929788
-26621 -80.5889702210041037 38.7233742169648067
-68333 -96.9610414868277104 40.6220179255367029
-45408 -84.214590992831603 39.7436336845878273
-53594 -89.0001608821850709 43.1914710937627149
-10456 -73.9086434811530069 40.8300421655580266
-13747 -74.9900489999999991 42.4864747142857269
-08070 -75.5133582758085851 39.6446593288785891
-83203 -112.374313343750032 43.0641983854166384
-49228 -83.8750154428682748 41.8214300593242356
-88044 -106.709559751435805 32.1261495290603776
-51461 -95.4748391123250286 42.1639053955420806
-39108 -89.2841636713012861 33.1288777095372424
-23828 -77.2770806073394709 36.5903197807339993
-36044 -86.2701146666666858 31.7127537222222209
-20670 -76.4346402479998943 38.2770292500000338
-31832 -84.6144139625935594 31.9634825486284129
-50859 -94.5981397504835826 41.0673423389748393
-87106 -106.618180410464191 35.0774035615327051
-46144 -85.6488457318840659 39.6608564202898677
-72440 -91.2481617643504848 35.9983045951661538
-18927 -75.2468544999999835 40.32120946666668
-36256 -85.7183554379289063 33.045738520931053
-20853 -77.0932837887072395 39.0948044970753372
-15841 -78.5184097022058438 41.264252930147066
-93449 -120.650931831315333 35.1513584212988235
-71384 -92.6537456666666657 31.9509196666666639
-50076 -94.8631965786911309 41.588309664004754
-41640 -82.9057214156570552 37.4850257586207078
-24255 -82.0991868300971106 36.930371621359221
-23887 -77.8330351241203147 36.5703121058861313
-30631 -82.8768106040546115 33.5744039342941392
-11703 -73.324064924811907 40.7336467064983978
-84701 -112.05115592878343 38.7510634276120172
-93560 -118.240113005080943 34.8609546093999043
-24013 -79.9244206608186687 37.2673083351940448
-21031 -76.659150022321441 39.4868272098214206
-67648 -98.554070871415334 39.0668098445883274
-70116 -90.0651034842106952 29.9680727183158453
-86341 -112.308933866666663 34.6240827333333385
-71949 -93.1510684026496563 34.6984936299904376
-84725 -113.711533748258077 37.5766940548779971
-71316 -91.8256505481927832 31.2883843253011875
-59325 -104.552903124999986 45.8879349999999988
-11791 -73.5013150996828415 40.8199256496640217
-43926 -80.6247379199999727 40.5108947100000094
-38382 -88.9617688693895303 35.9725311952113813
-99136 -117.936825416000005 46.6854554879999881
-16218 -79.5966986897759341 40.9236589404762867
-64767 -94.1978979464981734 37.7476861361867506
-97136 -123.939287150816895 45.6148438473077036
-57473 -99.4960435798319054 45.0149604117647328
-30477 -82.4037124531057685 32.8693023536337989
-76167 -96.8720209999999895 32.2960199999999986
-21051 -76.4501549411765069 39.4710611838234868
-18426 -75.2699795762267598 41.3439989957164187
-78610 -97.8391293564126556 30.0798612554798552
-64092 -94.7915487064220486 39.2229867431192645
-75790 -95.6294389353535053 32.5340349195959888
-39356 -89.0110257318370373 32.1464907527577424
-45166 -83.6769777261904295 39.4808510000000084
-56064 -93.4517086666666614 43.724647333333337
-30180 -84.9205157860498332 33.7273591264652808
-92395 -117.296596568095623 34.5004373612995536
-04617 -68.7373006715867092 44.3673267285187123
-34222 -82.5005956404583429 27.540268388309439
-42141 -85.9142244669217092 36.9564416711834127
-28207 -80.8262769844418045 35.1954895036386546
-32082 -81.384708230860312 30.1927266567518515
-56762 -96.7536878786914798 48.2243877846935689
-55741 -92.3904350800000032 47.4633426772414566
-89802 -115.745845205128205 40.9007329230769159
-85628 -110.942077181818163 31.4980769545454571
-60462 -87.8353993699345921 41.6230192629498106
-19052 -75.4456540833333094 39.8945637500000103
-36457 -87.4294152631578925 31.3793771315789449
-24720 -81.0709190000000035 37.4376949999999979
-75728 -94.1223948000000092 31.2640280000000033
-65671 -92.4017938750000098 37.0991302500000018
-10546 -73.7962845339266664 41.1980363837597139
-72061 -92.3269522935780174 35.3233913715596657
-53898 -81.5285622500000073 27.8942724999999996
-28155 -80.7832379999999972 35.6700633333333386
-35209 -86.8058916319965164 33.4689970199976941
-24724 -81.3096873008848888 37.3310599070796414
-71910 -93.0700865652173803 34.6722938586956815
-90267 -118.191268500000007 33.9114665000000031
-92648 -118.00383438795761 33.6770194369741844
-27976 -76.3108113211309416 36.458148071402654
-99005 -117.367460660713746 47.8359360143079826
-06510 -72.9254181213115089 41.3069139081967407
-68434 -97.10812543919495 40.915058523477164
-80817 -104.689551099643168 38.654635419830754
-49852 -87.8161676666666722 45.7778419999999926
-57003 -96.7569108401616376 43.7461490095208987
-85223 -111.669967495391845 32.7419226705069022
-08009 -74.934318424034899 39.7718463242520883
-45814 -83.6192160837367027 40.8999080948693887
-80461 -106.312540647048451 39.2303770751933243
-37150 -85.8259547902458166 36.5431428384972534
-43934 -80.7828569041096216 40.0828254999999842
-46797 -84.8617144760917199 41.1330258185741826
-51245 -95.594655390161634 43.0675617759434601
-28025 -80.5487235905246024 35.3851680694139006
-79938 -106.181693325920335 31.8182843256841927
-95936 -120.827666138471187 39.5661946466166015
-12952 -73.9317775604681913 44.7214193446033832
-12084 -73.9010435787915725 42.6996754123223141
-98929 -121.301524136363653 46.8720126818181839
-85137 -110.974001893907641 33.0887473718487897
-59432 -112.486272593038919 48.1874389317269589
-14755 -78.8064122898690442 42.2547049578284017
-29650 -82.2621743949105309 34.8944962488796193
-30673 -82.7340836704768066 33.731638310189588
-79968 -106.504794916666654 31.770239583333332
-38730 -90.767538517184903 33.6968830973813382
-67565 -99.0303889398496722 38.5643471428571445
-30008 -84.589443386104179 33.895636811320955
-70757 -91.5208296309649967 30.4764147359491098
-00666 -65.9161624864864848 18.2266911081081133
-81424 -108.533163807157081 38.2732337220013505
-75571 -94.766188145708 33.1773065422870062
-38251 -88.3507484775527416 36.4426226127822801
-15716 -79.1914066830601229 40.4712025300546472
-39169 -90.2693718035200874 33.1508412076148744
-06382 -72.1141723098415781 41.4606542856159379
-39622 -90.1413620000000009 34.1736729999999937
-59929 -114.350667047088038 47.9180782825278655
-27821 -76.8722235072992248 35.3267511843065947
-62886 -88.5393006601562149 38.3773052382812594
-98855 -119.262327147950828 48.674323239828901
-48450 -82.5299100932296312 43.2417748390649521
-78038 -99.1110793571428559 30.0577956428571405
-19007 -74.8642935190707135 40.1106852582593163
-56111 -94.8789981129809945 43.6309992055288305
-37861 -83.5096425379608291 36.2429925858758821
-12475 -74.013130708737819 42.0155836427184752
-77988 -96.8769584776119643 28.8360082260127832
-19127 -75.2234262354167669 40.0270294479165969
-55397 -93.929000442502641 44.803360390423002
-10603 -73.777424297048583 41.0538351158950263
-91702 -117.90394155814235 34.1342720555370605
-63332 -90.8850015449549744 38.6019407234432492
-13135 -76.3159689809082096 43.2462277720565993
-65285 -92.0160184581416729 39.1940198396197772
-63357 -91.0481557920792 38.6574655586828442
-30104 -85.0717813857513363 34.0860119744562624
-83645 -116.62961084816915 44.4155461105139224
-38943 -89.8598876703363345 33.5404559516819774
-28485 -80.149486500000009 33.0098561666666654
-29372 -81.734121199526399 34.9049907685234615
-68381 -96.4889446835749567 40.075731342995077
-77345 -95.1627192713722536 30.059441033088671
-76853 -98.3761216907740277 31.2451878696429262
-37998 -83.7502028275861647 35.9354216436781613
-44688 -81.2620335111857912 40.6844872431767328
-26815 -79.3598899361942216 38.5104386205532876
-24471 -78.8014370930333428 38.3113293414106622
-99516 -149.784946274185472 61.0992236415492016
-24966 -80.357496937620752 38.0072791694728025
-47601 -87.2590647145992477 38.0405481745475953
-93907 -121.662332160959011 36.777847117508621
-70589 -92.0594066903765622 30.6726547375427963
-38048 -89.504715085714281 35.1496192285714173
-48438 -83.4869388706134572 42.9089754922184667
-46044 -85.7824271364196704 40.2163284170421846
-73768 -98.2615330814606409 36.3763704775281198
-39807 -83.7652104999999949 36.3021065000000007
-28584 -77.1114580603708077 34.7084133461944901
-95506 -124.19616918518517 40.7400541111111139
-95977 -121.277474005832659 39.1963055124601425
-56226 -95.6644831065293033 45.4149600412371228
-61752 -88.7592442401137873 40.3414568254795469
-47870 -87.4757010000000008 39.3711861999999968
-45886 -84.5986279671253953 40.9872792339449745
-76462 -98.0147342121207288 32.5423289023982392
-21043 -76.7991341728491221 39.2538545759423698
-46013 -85.6796817234782253 40.0606653329191005
-20608 -76.7072680447672468 38.576907500581342
-74011 -95.8109388926937555 35.9934349222459957
-62481 -88.024579013736286 39.1278953983516118
-07020 -73.9766930461672416 40.8270138144600097
-65440 -91.2031168269580803 37.6055709981785355
-42733 -85.1790824045110355 37.3370262985557702
-73440 -96.9048723132968775 33.9851348816029244
-48871 -84.6835798012199348 43.1510892906350563
-12546 -73.5316266916988042 41.9532277432358001
-45148 -83.8884344931071695 39.287200931071105
-36558 -88.3407709393263048 31.6164859020099449
-65023 -92.4012141116526919 38.6404926489122857
-87527 -105.857355295932678 36.1849171697055141
-11731 -73.3159347348715471 40.8650628226731243
-55976 -92.4923443115767583 43.864799572898221
-56085 -94.7285746219511395 44.2986363371180474
-23874 -77.0999580098560671 36.6073350030325884
-93825 -118.467740000000006 35.71787475
-14510 -77.8716452434659203 42.6967169318223796
-25922 -81.1130945738894127 37.459999715321878
-32680 -83.0110589880578118 29.6404761520663449
-51045 -96.0590172432432752 42.8203218108108103
-04441 -69.5565662268584362 45.4992269689688769
-86571 -105.587332250000003 36.4037522499999966
-14480 -77.7106032693111075 42.825293486430013
-64847 -94.4489183261944021 36.6045828418451151
-76867 -99.9210125000000033 31.509247000000002
-39217 -90.2094980000000106 32.297655000000006
-37870 -83.8321889070438289 36.4645759027287539
-52142 -91.78683194152525 42.8306272301102666
-61485 -90.097305524836969 41.018290400903183
-62843 -88.2084364901960782 38.3725391568627572
-77489 -95.516688472786214 29.5988877521654707
-54771 -90.8015148192389603 44.9592782632135126
-71921 -93.4245820490310592 34.2561319811873304
-13651 -76.1903752851239773 43.8665743305785227
-07001 -74.2787021182907665 40.5799100000000408
-05353 -72.6620126572240252 43.0609822465704966
-00623 -67.154055589398979 18.078307949234766
-62379 -91.4065514324375386 40.3260426944921591
-77106 -93.2780376000000047 32.186436999999998
-68438 -96.7631366836734657 40.6413026428571342
-08225 -74.5567120909380634 39.3717848264199546
-13071 -76.5438326853116138 42.6675799483347902
-11550 -73.6184938949576093 40.7029599599088812
-32183 -81.8906873333333181 29.0585585873015866
-39074 -89.4726083916107484 32.4347338450728415
-33570 -82.4332020863272135 27.7086629073085753
-59068 -109.295826161672707 45.2041787535504653
-45428 -84.2556094285714323 39.7454248571428579
-09355 -118.319053600000004 34.614134
-35017 -86.8426234666666659 33.7523205999999973
-25426 -82.0075070000000039 38.4413945000000012
-48859 -84.7761208571428426 43.5872674285714226
-89521 -119.719906712510408 39.4057035368540127
-11548 -73.6242856012396913 40.813026464876053
-86413 -114.244357101094252 35.1765039391446237
-62899 -88.6462306417220276 38.6678003585669572
-38347 -88.4989532913579922 35.4739683530864198
-11931 -72.6183428446601766 40.9471915922330041
-80214 -105.070913983484417 39.7423723350535667
-39159 -90.9308875991921184 32.8474997064631893
-33594 -82.2445508850562987 27.9354383136583664
-19120 -75.1204992895462027 40.0344858126717256
-14379 -78.1148824444444472 42.2147693333333365
-44575 -81.4005171999999959 39.3919110000000074
-44104 -81.6280875149168139 41.4827842343686157
-72471 -91.1188739790978701 35.8230566567656581
-46221 -86.2427914660006394 39.6967536254003122
-71846 -94.13327750208731 33.949533339266118
-60008 -88.0246322313395808 42.0764023070236348
-59052 -110.167679779703221 45.5069538579206707
-83855 -116.914263359967251 46.9448733242432965
-49403 -85.8507399734287588 43.1345625212059929
-57632 -100.073266988342397 45.8286248418944169
-70462 -90.5772728472828419 30.3856405484825949
-05829 -72.0954716071069441 44.9489169059156097
-74558 -95.1612994467213582 34.4885214098360677
-50014 -93.670631469796831 42.0314514280522147
-60706 -87.8171844977219109 41.9645234862400258
-92223 -116.981207624614484 33.9523882507711434
-39058 -90.3316899999999947 32.3376542499999999
-29072 -81.2589328610840624 33.9948060347883541
-57217 -97.6417935337956209 45.081601888503684
-48025 -83.2693480106422044 42.5209112717120234
-64491 -95.3689707831953655 40.4509759224260463
-30061 -84.5231085000000064 33.9301952999999941
-71078 -93.8032612650144273 32.2794441705737398
-39069 -91.0477724543003575 31.6897280157535981
-99647 -154.169065199999977 59.7690654857142647
-55713 -92.6299714093567275 47.573635578947318
-73057 -97.4191922533651677 34.8422537798891554
-80443 -106.103841952176069 39.5687546663083936
-47432 -86.637288422210446 38.514934176294858
-15067 -79.9551855901639641 40.2078957295081096
-54868 -91.7302893527557615 45.5178782082318278
-51231 -95.7447645195954209 43.0989749683944083
-43015 -83.0721483691325773 40.2819922686667624
-54981 -89.1231312348338065 44.3509350354697247
-92302 -117.555016333333356 34.720007333333335
-56662 -93.9569272402265341 46.8417065486708211
-46057 -86.3787504544264948 40.3299067387701058
-08554 -74.7813274646065906 40.1141822015810021
-13665 -75.4746622857143166 44.0571745186075034
-16947 -76.8049951733919869 41.765265664902131
-75492 -96.0052050568334892 33.5780647442489624
-36310 -85.1920922254042665 31.6229483339883082
-04683 -68.7127324032698112 44.1822230408719321
-04568 -69.5602184814571558 43.8708650072201962
-43943 -80.7239596058212641 40.2234515685240623
-44609 -80.9878432860209188 40.899076812499942
-42202 -86.8528130741671163 36.6807565133654805
-32909 -80.6469706921607212 27.9511373119043682
-87326 -108.805553461723918 35.285798197709461
-94018 -122.474452782934208 37.5067885958083735
-79791 -103.395634065573802 31.4622196229508262
-13460 -75.4593527868308769 42.6850968073807167
-45422 -84.1997089999999986 39.7597647500000022
-96062 -122.143801279860043 40.5518774185638193
-95407 -122.73475587601412 38.4067901053493443
-68130 -96.1929081040909324 41.2347441788004829
-28635 -81.1164064903023956 36.2869933560167368
-17506 -76.050669523809546 40.1173862857142822
-15301 -80.2522611742214451 40.1661183910294142
-35702 -85.9810212000000007 33.0891960000000012
-62282 -89.7014072151394259 38.3599920159362568
-64465 -94.2896889813309542 39.5330369337943068
-73501 -98.3624821505496811 34.5911674328969454
-94429 -95.6546909999999997 35.9728649999999988
-07823 -75.0367352041592284 40.828746661216222
-97122 -123.834306228231 45.1940599431713395
-73727 -98.0246419123377279 36.4912736753246989
-07016 -74.3047148977959466 40.6551620529385929
-78382 -97.0568251488056433 28.0503471937973003
-37323 -84.824182442373413 35.1130089182925929
-38036 -89.616405295081961 35.3257941420764752
-96761 -156.667140456726145 20.9276981615373749
-75704 -95.418713128041702 32.3936035553789452
-57249 -97.3585133971684229 44.3801105581222046
-32829 -81.2593507669603667 28.486239557240733
-79262 -97.1452720000000198 32.9851493333333394
-43909 -80.8167930243902504 40.069649097560962
-44618 -81.6943890217758053 40.7742984109937581
-54443 -89.7323687658296194 44.6101668288854825
-31766 -84.5497639999999961 31.5753082499999991
-13305 -75.429300821052621 43.8876951684210539
-12147 -74.1578447904474274 42.5134507144298439
-44139 -81.4366823623897602 41.3841901044861586
-06332 -71.9067600923912664 41.7252181222826053
-02745 -70.9376598772024636 41.6973968339114265
-88823 -99.0498153749999943 41.8356427499999981
-43077 -83.340900246753236 40.1365895324675179
-24216 -82.7783455752566368 36.9265138336008363
-47403 -86.5898150065132342 39.1086113386510448
-65560 -91.5285819659737996 37.6298260903975219
-70638 -92.7982104880954211 30.8696233377976235
-07719 -74.0605741943912363 40.1714084139474963
-12433 -74.1532056206162338 42.0048028140276841
-44637 -82.0255375256527373 40.4842449375453839
-66069 -94.8358336363636312 38.9097163636363561
-77401 -95.4607980551068209 29.7049320175500036
-23443 -75.9564022333333355 37.1707466666666662
-13404 -75.4833539155844022 43.7341862207792218
-04357 -69.8278590193333173 44.1150940646665433
-56477 -95.0102291398104057 46.6340418297474457
-27256 -79.2888729623287674 35.5658277328767483
-60424 -88.3201097687055352 41.171947529160704
-36762 -87.3170190000000019 32.009208000000001
-44844 -83.2537128341276826 40.9896368379408642
-34228 -82.6405114303587709 27.3909098808034344
-43205 -82.9649773423280408 39.9575511866959516
-32463 -85.5854269647058885 30.6230042941176492
-58553 -100.393197833333332 46.890757166666674
-90290 -118.606588752444821 34.0999449890935864
-71006 -93.6714661885015687 32.7030724835095654
-31410 -80.9867063713319624 32.0185924399161053
-48320 -83.3389482775284449 42.6109095620328659
-00652 -66.6096576949152706 18.4525109915254326
-33951 -81.9838937499999929 26.9709417500000015
-55768 -92.6669301920916269 47.4821916508147908
-24574 -79.2212381710891265 37.5565643374914657
-16865 -77.9676391654235204 40.7185415423431323
-04002 -70.6714740771461578 43.491723417991345
-44142 -81.8159041142656349 41.3997823333333415
-95205 -121.261698804656135 37.9629842046791524
-48848 -84.3595086210712424 42.8874635503063644
-14227 -78.7405103098116541 42.8791439304012272
-98282 -122.475032294158851 48.186931601466263
-96714 -159.510581479338924 22.2070002561983415
-46237 -86.0735555004287249 39.6748648381191416
-15482 -79.7630991576354091 40.0634362093595939
-78373 -97.0773534615621259 27.8178954017358819
-05303 -72.6299550370370355 42.8302452592592573
-17853 -77.0086006674001169 40.6897784631176762
-77466 -95.9967933990267426 29.818370467153315
-50268 -92.3654779547737803 41.4096241206030484
-11901 -72.6483277584654417 40.9383565539740104
-15234 -80.0189049888077477 40.3681529495539877
-27381 -84.7524003333333411 35.735316333333337
-96712 -158.047793350000063 21.6155989041666636
-21545 -78.8717695863552564 39.6998439771690386
-05643 -72.4966432857142706 44.5605687142857079
-94552 -122.027495128838197 37.7035660739658169
-34145 -81.7150268792154861 25.9403150529038022
-28666 -81.4720565690607827 35.7226744364641036
-45232 -84.5150862183137548 39.1825570614182013
-71820 -94.2781909356436358 33.7727790247524808
-95060 -122.059300493208724 37.0029651594757922
-95385 -121.261746787671228 37.6114058904109925
-21635 -75.8467554591489659 39.3476441374468067
-82335 -106.812809214285721 41.7261305714285768
-31001 -83.332975839285524 31.9587297548262406
-26241 -79.8474769597092973 38.9177229350143179
-64129 -94.4964861756461545 39.0463940162134122
-15559 -78.6751957128727497 40.0614219795162114
-17232 -77.6405765408804882 40.1013309182389861
-99749 -160.43472627777777 66.9737707222222411
-80320 -104.891999999999996 39.7249069999999946
-70075 -89.9235750815166597 29.9330584298578621
-28315 -79.4403379623709611 35.1218411941524309
-67482 -97.259083072289144 39.0143496626505879
-70652 -93.2551711189475441 30.5902596523065142
-27807 -78.0938653080965395 35.8033848300258342
-59446 -110.138192818987179 47.6437580918904047
-73838 -98.9013511415094229 36.221135924528312
-94038 -122.507950454634326 37.5258294229268188
-79520 -100.113928575353796 32.8681881940050005
-24354 -81.5440207085868707 36.8276339010231197
-99677 -146.677560166666638 60.8651226515151578
-35204 -86.8359869530859356 33.5208858063550323
-32768 -81.559059285714298 28.7031084999999955
-74131 -96.0697698892109742 36.0535959198067886
-80739 -85.1771982400000098 34.7800055999999955
-45101 -83.7491547793803335 38.6834213918379959
-78745 -97.799434353655144 30.206490604891993
-04262 -70.3463950555555613 44.682803027777787
-20236 -77.5596673749999894 38.7466865000000027
-56449 -94.287444234858043 46.1749459816131349
-72415 -91.1607598869284317 36.1178040712792807
-70719 -91.2546500786461365 30.3879995455450427
-23316 -75.9662697518072036 37.2841008843373203
-40760 -84.1485751875000005 36.7433656249999956
-77342 -95.5543545769230462 30.6609616153846183
-28641 -81.8838518290322384 35.939872561290322
-57016 -96.9540204029075028 43.895485233991046
-37219 -86.7833684779583194 36.165043208816698
-30852 -83.8695379999999915 34.9585266666666712
-13752 -74.9061275399879065 42.1801116123473108
-80603 -104.729511047392236 39.9870462214813998
-81225 -106.969909202191602 38.9046490312328501
-43920 -80.5822797089212628 40.6563359580882349
-85145 -111.343439683561797 32.5665396671232656
-93638 -120.046746900389877 36.9977352618447668
-14626 -77.7085568632297026 43.215860239995699
-73648 -99.4777244375000009 35.3762811562500019
-69025 -100.513479728960505 40.6507955061882313
-98858 -119.91197235207413 47.6955212033795206
-73667 -99.0300402465373537 36.0323333767313088
-76039 -97.0847981529070694 32.8593388516527654
-90245 -118.405659457882265 33.9221200419434368
-12533 -73.7943217574703141 41.5710384152199239
-28082 -80.608349000000004 35.4621925000000005
-28031 -80.8842744302744023 35.4739187362412949
-62421 -87.9460180225466956 38.7451826018567189
-78001 -99.2855473333333407 28.2835989999999988
-43526 -84.7435270213395171 41.3113392346096191
-47373 -85.1521903152740549 40.3451153823079025
-57633 -101.414643351239761 45.4235960881542624
-27947 -75.8634009770491247 36.1802489879781177
-61075 -90.2575426817365951 42.4613398583946307
-20737 -76.9138553562843725 38.9604524907313632
-66042 -95.092788647864225 38.4374391916757716
-40012 -85.1805446434277513 37.9037912389252156
-63740 -89.6687580674799563 37.1759202829037534
-47370 -85.1376703437499884 39.8130172656250068
-96097 -122.641834138055401 41.7430521251944953
-45070 -84.5541677078651759 39.5892721573033839
-71286 -91.1982445692056132 32.6551095896805492
-43443 -83.470200017241396 41.4576748653016907
-58799 -89.7356815000000125 44.7883631666666702
-41612 -82.7397163089005261 37.4588582408376922
-53210 -87.9756582753519183 43.0688495113677945
-56353 -93.6253261501454119 45.7688973533755288
-23159 -81.7472132500000157 38.480971833333335
-22640 -78.1158561833332499 38.8074112505049911
-52465 -88.6177697999999907 39.3495846
-04276 -70.5897898801231776 44.5358290908552164
-23883 -76.7667129195351805 37.1298158256125816
-95480 -123.371994289902219 38.6726604267101095
-29903 -80.7505786250000028 32.4783113750000041
-66083 -94.8363696440757877 38.7399938232885859
-65571 -91.6950477008086438 37.1688980365806785
-03450 -72.0908780723282234 42.939302114587548
-27326 -79.5703068199210577 36.4629004083952566
-21629 -75.8289831432358739 38.8693094817292817
-69343 -102.193182069066566 42.7763162142230584
-28689 -80.9411015610172626 36.0382065174945438
-54416 -88.981277371428618 44.8657521015872831
-33165 -80.3581545020339547 25.7344207654852113
-38650 -89.1396110971391948 34.52864318266775
-78159 -97.5991847422202596 29.2591026562935426
-40211 -85.813019464592557 38.2396740078258404
-68132 -96.001204600150416 41.2653275983955439
-68314 -97.0387758373895508 41.0153910199115188
-10960 -73.9261446163631319 41.0896036647543781
-97230 -122.502492636924373 45.5382090594571238
-77554 -94.9661895839152521 29.2008653848929889
-25928 -81.3108006678900068 37.5488782495413176
-62444 -88.7748507446808475 39.2787857021276565
-15321 -80.1881697517156056 40.3234063599501482
-38801 -88.7507657099401399 34.2452844657834632
-97062 -122.766510893889517 45.3696689421557338
-85031 -112.170774361899817 33.495183316047985
-80459 -106.436163493870069 40.1446264742734087
-60040 -87.8134813319417447 42.2060580396660043
-65001 -92.0173479877350076 38.2939670253475271
-92119 -117.027553956240908 32.8032506447040859
-02176 -71.0609307144320326 42.4581060847741512
-26660 -80.6977536946409799 38.3480826248736406
-27028 -80.5684599778145696 35.9192364590700777
-23589 -100.884877666666668 32.6729643333333328
-87004 -106.558470526451657 35.3072330572331268
-76241 -97.3818607272727235 33.6538652272727248
-49668 -85.7073422086005934 44.4037846128116769
-29730 -81.0077596771905917 34.9028990162832429
-36606 -88.1035369260529109 30.6722964506756526
-36581 -88.008845755102044 31.3740572478134183
-65246 -92.9974276114649854 39.3890392993630556
-80471 -105.441179231707366 39.932879975609751
-71360 -92.3813113604704341 31.3379634672707539
-79718 -103.730912416075711 30.9772715945626089
-79518 -100.690777190550023 33.3503033764523593
-65707 -93.8263843465211096 37.2235594693042131
-05083 -72.2561438078431593 43.9261863777777748
-95680 -121.537019000000058 38.2538103963964033
-50107 -94.2271998273244549 42.0234833791270219
-02896 -71.5528172103188069 41.9799942865162805
-65202 -92.3166763917585058 39.0047420621910703
-82622 -105.385655200000002 42.7470105999999959
-43320 -82.8916583471861372 40.5859876683983813
-95044 -121.988933250000002 37.1538889999999995
-15139 -79.8357194213058676 40.5200243254295245
-11433 -73.7928986499999837 40.6955723499999991
-26237 -80.1606699653680295 38.8556274230055223
-41746 -83.1012882100962145 37.2122797514423951
-71644 -91.7324429542079827 34.105778199876184
-14120 -78.8559626991960982 43.0559226198691789
-71480 -92.2936905035261361 31.8639932849083287
-07838 -74.9228752356262788 40.8811183814807322
-93277 -119.329249832906314 36.3095897064563076
-40214 -85.7847433053836994 38.1542723312283059
-02719 -70.8791699909698423 41.6365345712602988
-18294 -76.0692025000000029 41.0047257499999986
-61523 -89.52146996909552 40.9093788016230988
-10708 -73.8320187147322713 40.9389707116058119
-80521 -105.111267326224109 40.5851858376457031
-81046 -104.348999913043471 37.2977517826086782
-46781 -85.2622366889030729 40.6378606407954877
-78047 -99.1834807499999869 28.6671975000000003
-12422 -74.2055746699801801 42.3914878151093362
-52772 -91.1482587816413741 41.7467317541550784
-89060 -116.042789110993922 36.2649278940411293
-07030 -74.0327996002251183 40.7453481266892439
-70079 -90.4135554416402982 30.00656222712934
-34450 -82.2899101360017085 28.8366080350972496
-72953 -93.4726643870967848 35.2477551935483859
-84665 -111.686321043301774 39.1961441055480861
-44890 -82.7222609003936924 41.0759626709144356
-72811 -93.1273740727272923 35.3245361454545375
-35006 -87.2231176608916172 33.4581100179962334
-24531 -79.4529002402310027 36.8400133205605442
-06279 -72.2631158718176607 41.8845282739353948
-46173 -85.437670712085918 39.6108132812298024
-50434 -93.4406579598278881 43.2678380286944133
-13066 -76.0099401935212597 43.0285278895774894
-44440 -80.7699906287250542 41.1411697967757419
-45826 -84.4931655975609459 40.4366229695122072
-62943 -88.7502518656717285 37.3516370658900456
-85241 -111.527179542168611 32.7904242088353541
-72749 -94.4314947167630123 35.8682989768785845
-68116 -96.1615070415710278 41.2958914079665007
-28032 -81.0805275828926284 35.235068803459896
-44288 -81.074604118128633 41.2391988327485848
-67108 -97.7165467764369708 37.8015826534907546
-33976 -81.6855948309888902 26.5922984014271009
-16870 -78.0313260499028161 40.8035479844274889
-15747 -79.1475119224201222 40.7644734884116673
-30808 -82.3963460186114247 33.3946887310528808
-68832 -98.3711009102232197 40.7656533520563826
-05151 -72.4956798721436968 43.3894284397180243
-96753 -156.443807445396374 20.7252840185721006
-10549 -73.726531263097641 41.2027237322223812
-13132 -76.2378017306410385 43.2589523164030894
-81122 -107.594761482666584 37.2987671366903015
-99105 -118.108677570967728 46.9010762612903136
-48738 -83.3271233251504242 44.5535636340898478
-29545 -78.9610555981087714 34.1596171845942465
-02877 -71.5150731578947472 41.5308652631578994
-53061 -88.0859786734150845 43.9490773148640841
-72569 -91.4592815863717021 36.0712947166765758
-66436 -95.726258785190339 39.4612785054139437
-04428 -68.5873705921279537 44.8079695055667315
-12053 -74.1765476279885831 42.7436159039262904
-47137 -86.3832328558970062 38.1830207252407021
-74462 -95.1930624995231227 35.2627166998092747
-85212 -111.625342241893406 33.3389595846302527
-05747 -72.836791097143049 43.9901281102519661
-30541 -84.4324221716921528 34.9248946527691473
-77756 -96.522137166666667 31.0145865000000036
-54540 -89.3530719280932573 46.1498569110131172
-52035 -91.1664909571973681 42.6786233862128697
-16066 -80.1116292412712028 40.7086589549143198
-54922 -88.7280223421052767 44.5300035639097089
-25086 -81.4228734786585875 38.2133359695122081
-80122 -104.954042261946469 39.5809480179864082
-97006 -122.855438856506552 45.5264533776068703
-62681 -90.558490370987613 40.122110852295819
-27595 -78.4712993333333344 36.0853159999999988
-45740 -82.0765722444444634 39.4712305388888893
-67852 -101.206576500000011 37.3261640000000057
-62341 -91.3266472763214097 40.4211188322929615
-28732 -82.4679098795154033 35.4487296903966254
-74135 -95.9235062690303266 36.0982120474759327
-14522 -77.2196324854833165 43.0616611072252908
-16347 -79.0526460598457845 41.6672075481095661
-64858 -94.531213530054643 36.9004750710382652
-57574 -101.381170999999995 43.1138667499999997
-32204 -81.6851297987610536 30.3211498582403678
-21718 -77.6218037456140308 39.3926779824561493
-50627 -93.1008869814152717 42.3555854996182433
-14627 -77.6307086666666777 43.1291070238095173
-59857 -115.026314153846187 47.9168652692307759
-30153 -85.04900617453508 33.9575582243123435
-15612 -79.5985947739627449 40.1363204406294756
-00911 -66.0576364321294847 18.4509891133250221
-14132 -78.8801115040985366 43.1487685190015142
-17771 -77.0394912375592469 41.4237504544518274
-30701 -84.9300140319795247 34.4952705114130893
-10504 -73.7007524468480142 41.1387043752672028
-28525 -77.7044860678912954 35.1253772594293423
-15233 -80.0255258554034015 40.4556041014714367
-62438 -88.8702131826922965 39.339065961538445
-83845 -116.144756107239203 48.7166898014836534
-31451 -88.7692228181818166 31.0617883636363636
-48745 -83.4515337251442162 44.572374712175737
-49425 -86.1042258674190748 43.426448135754633
-89138 -115.349470238224043 36.1676658095560697
-76420 -97.234002666666683 33.550058666666672
-13750 -74.8271307828242271 42.4743707462803286
-19437 -75.2609134132230793 40.1834552954545288
-14489 -76.9961138151484334 43.0848803479550639
-19124 -75.0882681738981432 40.0170958869150653
-13850 -76.0217775560599165 42.0659300242547403
-50037 -93.7037700952380987 42.1127150476190479
-25024 -81.6287563052209606 38.1485444738955835
-79920 -106.45408968421053 31.8243257894736864
-23517 -76.2924070885324284 36.8693680742721526
-05832 -71.9210971243493447 44.5923443047657599
-85364 -114.64706156206806 32.6987800701794313
-58251 -97.6909571405710153 47.9344968157261064
-92253 -116.279652068409533 33.6745137700367607
-21673 -76.0458068215739615 38.6604883860318793
-48238 -83.1424253134744333 42.3968241961769152
-35989 -85.6461572514045741 34.5932181123595939
-47030 -85.1375998530313183 39.4286053542235848
-39359 -89.3427655705764892 32.5712079145128968
-02061 -70.8176050809727968 42.1581249099933899
-03274 -71.361456666666669 43.2888664761904778
-04095 -70.9131116330736262 43.6344481814526546
-48910 -84.548557896527214 42.7019724202252107
-53206 -87.9338108421523401 43.0754089771183146
-03864 -71.1105212128944544 43.6901301830086766
-65715 -92.5741908754325777 36.7236665986158997
-59803 -114.021700614999233 46.8132726976485074
-33127 -80.2061480858922522 25.8137433923009105
-49929 -89.095073544303844 46.7800017215190067
-29642 -82.5597581427062295 34.7837435477213148
-77458 -96.219072188679263 28.9391215786163443
-78413 -97.4033102721668627 27.684886647390119
-06266 -72.1707313634993 41.6741175565610789
-21329 -76.5850009999999912 39.3479103333333384
-96862 -158.070378333333338 21.3146766666666672
-89119 -115.137495245118771 36.0866946043024015
-12038 -74.2547505000000001 43.072601750000004
-53808 -90.5938863312883313 42.628731842535835
-62876 -89.1953419030837296 38.2797104140969182
-99846 -96.5550113333333258 38.672263666666673
-92159 -121.923058137931037 40.7386548965517221
-60010 -88.1466329249075926 42.1545866955798303
-70809 -91.0732939218506914 30.3995874705595028
-55407 -93.2538430253167547 44.9358683452243781
-25511 -82.3956209499351928 38.0288646007768492
-71045 -93.1713661744876731 32.3473808282460524
-25419 -77.8822712588754769 39.582969369253199
-24867 -81.4763051338797624 37.5932832732240385
-54207 -87.9614372080536953 44.1341096644295305
-52346 -92.078587566204817 42.0101017883656525
-00952 -66.1809180294117994 18.4295926813725366
-38683 -88.8666636124189324 34.936754738836818
-38858 -88.5493240498676073 34.1023592497791341
-62017 -89.3718530719187072 39.0696077773799004
-61452 -90.6755274960158886 40.2377946792828993
-48188 -83.4823184141653769 42.2925109439845457
-75861 -95.8556970404482342 31.856215319688129
-61019 -89.4041903833295635 42.445058315801333
-43334 -82.8006865915371009 40.3976610853195552
-36458 -87.3986018571428644 31.5066772142857268
-50007 -93.6087427730263499 41.8021764243421217
-75412 -95.1547533279060787 33.7778071017639476
-75456 -94.9673774000000037 33.1548313999999991
-48127 -83.2820034637858129 42.3372234443108084
-75687 -94.9547535416666761 32.1573572916666706
-28710 -82.2800475000000091 35.4631148636363633
-31815 -84.8137884371332689 32.022798803212865
-64743 -94.2295927569061007 38.6681162762431043
-53927 -89.950602333333336 43.9750958333333344
-72031 -92.4892960532772435 35.6059377907786114
-96980 -122.231892183908045 40.2983574252873709
-89745 -81.5550982500000003 27.755736749999997
-04069 -70.1847606248971516 43.8959351688579034
-01301 -72.6020366829425399 42.6131131120696978
-95564 -124.194504449122846 40.802115305263186
-41456 -83.1759876896551589 37.7422627931034569
-55428 -93.3803921444958291 45.0617351003173212
-39643 -90.0076666768374736 31.2394899581292869
-08315 -75.1085734242424365 39.275423838383837
-80522 -105.523323218750008 40.5966275312499931
-35769 -86.0893404465858367 34.5917656132257676
-48949 -87.6972632647058674 46.5344211176470495
-78647 -96.9639970000000062 30.2844679999999968
-72116 -92.2461598597265038 34.8029342879888901
-31333 -81.631771191176469 31.7750231911764622
-41124 -82.851452578438483 38.0227678027556593
-59345 -105.054679980952386 45.7730398523809328
-28713 -83.482234912356887 35.3930805183920114
-45629 -82.8128187242455027 38.6481907630940142
-99337 -119.117618381266595 46.1752165287029541
-48034 -83.2893029623485575 42.4916124923643963
-79330 -101.137736562601788 33.0436742552845573
-53916 -88.8360672634731969 43.4609090356978811
-72426 -90.0409612043343373 35.866874061919475
-32566 -86.8866208538669298 30.4222771569894874
-97037 -121.185163056058656 45.1508039064251321
-12902 -73.4795620000000014 44.7199674999999957
-11421 -73.8670140000000117 40.6895511499999998
-46702 -85.6130812588456678 40.8449645144257047
-04106 -70.275652244288807 43.6293240528475863
-12914 -74.5889946711409664 44.9342529164802542
-00662 -67.0236922935449257 18.4793659147189331
-13739 -74.7880586009715955 42.3719179738064753
-75092 -96.6557986630601675 33.6470537198608142
-36203 -85.8403915454214683 33.591093634865814
-41607 -82.8426510974359047 37.6222645914529892
-14226 -78.7985762859967167 42.9684589968104476
-88038 -108.55912283761819 32.9831728788903646
-15826 -78.594278999999986 41.0876039999999989
-29430 -79.7977479459459715 33.1967977567567587
-23011 -76.8155385956191736 37.4709109427126421
-21721 -77.6348127500000089 39.6422620000000023
-22079 -77.2154239924696952 38.700005798403069
-46048 -85.8040748221941669 39.9565064476670884
-37327 -85.403921114660406 35.4015350849407042
-22846 -78.80084596514385 38.3825209453603975
-63430 -91.4616712500000233 40.36005161249998
-37782 -83.7692463333333421 35.664574833333333
-98207 -122.212622580645174 48.0139436451612909
-28660 -80.8587235502728987 35.9707971894904404
-57315 -98.0531500069072024 42.9961996224097902
-39043 -89.9687830625000231 32.2391029375000002
-27952 -75.5391860000000008 35.2590733333333333
-38258 -88.6228678487965738 36.0192379064854578
-81055 -105.060345321451493 37.4721898941638187
-58263 -105.420652250000003 48.8278786250000039
-62781 -89.6547020000000003 39.8104555000000033
-44695 -81.1826024928600987 40.4358899228350452
-99670 -156.99740946428571 58.713646035714298
-78614 -97.5913452875775675 29.4201487757763722
-47579 -86.9219656537273409 38.1129600661667425
-84759 -112.504432576249016 37.7874080138934687
-66966 -97.776241857142935 39.7784208353511062
-55327 -93.4617312336010144 45.2067977777778154
-87051 -107.895197049738144 35.0939387539267145
-45459 -84.1685664915440128 39.6470239874225356
-84663 -111.595630709693324 40.1639440002492449
-39836 -84.877448300399351 31.653973304391215
-49036 -85.0126799642830662 41.8993069429353966
-67431 -97.0187318759527813 38.9837730661815414
-56653 -93.5602282887545869 48.3504464517153494
-27968 -75.4665166871794924 35.5948316602564105
-71944 -94.3394518200040437 34.2452444068177542
-83215 -112.754053249999998 43.2945144999999911
-04854 -69.0846749509400695 44.0701280840187337
-68725 -98.7602053559748612 42.1974115194968036
-19033 -75.3289454300772832 39.8905971883344463
-07072 -74.0817306507293551 40.8362200218801377
-85001 -111.306409800000012 31.5868010000000012
-30560 -84.1928740151358568 34.8960627501821179
-87802 -106.891565333333347 34.0521966666666671
-44851 -82.4112723128195626 41.0991481404057595
-72842 -93.5885572824525269 35.1071383746299759
-80436 -105.620365894046515 39.7664127780020067
-08273 -80.991288499999996 35.1049694999999957
-29162 -80.0098116145148737 33.8823343368392926
-75832 -95.8575523846153885 31.7951769230769266
-56527 -95.324866006392071 46.3852614644886501
-10993 -73.9794377842919459 41.2080608042035053
-79083 -101.474808487499928 35.8464961179687052
-53585 -88.7310247474576528 42.5022151915254085
-41464 -82.9927949443099067 37.6722734721549344
-77022 -95.3779651541434959 29.8293248682634804
-36539 -88.403761627949109 31.339299075620076
-75762 -95.4023338975478623 32.2070752144079719
-19941 -75.419070318713338 38.8034648797921378
-36030 -86.8484073160270071 31.867897290632115
-38778 -90.5386628986690738 33.5502697466724058
-46601 -86.2530122810951383 41.6723006377432625
-04074 -70.3559148202773059 43.5852587162498466
-18631 -76.30367305476193 41.0305490976190441
-98387 -122.388221039890752 47.0698429123406825
-24702 -81.1432165000000083 37.3120507500000045
-05652 -72.5625463031831117 44.7194093186259778
-83336 -113.787947796128051 42.5606819612810412
-12924 -73.5895434244898183 44.4689601551020388
-43150 -82.4105214065509131 39.7718524640334081
-70461 -89.724919991354426 30.2683138775646512
-73120 -97.5665145396352074 35.5822073358754167
-20839 -77.4128978842105369 39.1762892842105188
-63466 -91.6266195000000039 40.264742499999997
-15951 -78.7696189251700645 40.3352502721088584
-31513 -82.3445240985311244 31.7929539390335805
-40111 -86.6269189282540992 37.8111395965152042
-59832 -113.198736770420936 46.6829561001137918
-16623 -78.0433966442200955 40.2779356599326874
-78553 -97.7305193333333335 26.2449280000000016
-76077 -97.7009017947976304 32.2739965881502613
-36373 -85.1138037139037777 31.5291360363636137
-46938 -85.6327945886680624 40.4586758300220026
-58571 -101.396544217934178 47.3071091316685681
-19462 -75.2921107266623721 40.1176666461256559
-40337 -83.8528850020811944 37.9548288493812933
-48135 -83.3409059217296431 42.3243530802772838
-35901 -85.963319991302555 34.0230881740669346
-04910 -69.4383149915015423 44.5162302570819151
-34949 -80.2980248236494702 27.4751348557664095
-15440 -79.6032042312253196 39.7317822569169934
-57555 -100.681085577530098 43.3049118152275199
-48139 -83.8029281916666662 42.4509590999999773
-73149 -97.4947549262295894 35.3942775399999974
-30044 -84.0659329506899411 33.9227015770627247
-25639 -81.9720801382114388 37.8855334390243996
-02675 -70.2245440443948041 41.7046652013121104
-49269 -84.5796725318092655 42.282470604373728
-76466 -98.7479614291338379 32.4227896338582937
-85926 -110.01322659259263 33.8147411587301718
-67466 -97.4847763443560638 39.3221530938365333
-49959 -90.0006789230769186 46.4763105641025618
-90605 -118.030663084741718 33.9444495029470801
-49727 -85.1229093555485576 45.1514378020558453
-11784 -73.0423310481862416 40.8713066426637184
-07092 -74.3595220921670119 40.677828822976565
-50835 -94.3617413423423415 40.7028792432432525
-31649 -83.0043724078835368 30.962161104541579
-15776 -79.0860266735751196 41.0047297823834072
-78662 -97.4396866834095476 29.9533891851851735
-07716 -74.031321685508729 40.4066289194674937
-55414 -93.2285708324604627 44.9786306554319282
-19573 -75.3447032692307914 41.5336035769230776
-80571 -103.402226599999992 40.7516523000000035
-01560 -71.6841773591897038 42.1735093656126168
-26560 -80.1471299242424635 39.543775863636391
-28139 -81.9909935352483359 35.3587326085686584
-48627 -84.7564879685714345 44.4520916771428389
-14809 -77.4415016320865135 42.4193475546930614
-78738 -97.9783654544822298 30.3216096264767927
-98188 -122.277963238073497 47.4486159475844431
-31014 -83.3262098491581469 32.3998066294309695
-75855 -95.8719743780345084 31.5625362824872724
-19142 -75.2336517089769927 39.9222362350992981
-15554 -78.6191661374254664 40.1242172538475046
-12041 -73.9687632889447571 42.5679736105527766
-44643 -81.3054065128522865 40.644763249823967
-68963 -98.7810284444444306 40.4456556666666671
-35640 -86.9417177419530134 34.4466497779988146
-62955 -88.4526398043478395 37.5485281521739154
-15090 -80.0656784921801545 40.6216675190331102
-29585 -79.1328662754494445 33.4558598438656816
-90046 -118.368300030912948 34.1112471810305138
-24474 -79.8481065510203507 37.8043647183673528
-03777 -72.0868985976736667 43.8987075470406722
-60546 -87.8206319786280289 41.8370361768356034
-13756 -75.1005841926338178 42.0030277845785633
-12531 -73.6707163208974833 41.5350858261807829
-18455 -75.3599550440806354 41.8847677644835628
-22309 -77.1062985210370755 38.7227333113258894
-72205 -92.3458765265195893 34.7523207180461569
-76908 -100.412538923076923 31.4314477179487213
-98352 -122.232840500000009 47.2160674999999941
-32091 -82.118532159312295 29.9477661804790962
-30157 -84.8382436425465158 33.8954865750962426
-36352 -85.6103574493081823 31.2611470651753223
-06040 -72.5247532863885311 41.7648434083516165
-65008 -92.6516134999999963 36.9522185000000007
-16878 -78.32259581392087 40.9488629637004777
-59404 -111.351152515047815 47.5107239023510388
-78644 -97.6615107327203589 29.8762131983383767
-63352 -91.6541776217907369 39.2426346310679577
-85042 -112.031343512350986 33.3771079675299802
-50427 -93.2212147647058913 42.8357249411764656
-42054 -88.4388778888024802 36.726737427069132
-74718 -96.4781019999999927 34.1433683333333349
-74145 -95.8867837347661975 36.095129508723133
-53533 -90.1413227801783279 42.9889590268786392
-39210 -90.1771552499999984 32.3230672500000011
-54754 -90.8347854493244284 44.4506006711711308
-23801 -77.3318359406392233 37.2343663584474669
-62536 -89.6578526401733598 39.6334624190751228
-79159 -102.070017500000006 35.2095225000000056
-24712 -81.0142372757562299 37.4542552009225531
-67209 -97.4481331187631525 37.6686320089633142
-40058 -85.0850729154929724 38.5430382676056382
-21014 -76.349681527973857 39.5363531021047123
-22843 -79.1041358915914969 38.3321643772255456
-25270 -81.4376028555928144 38.8706371345993134
-66008 -95.1814069922978234 39.7158385712451434
-15846 -78.6066961846052976 41.3489025140013098
-85362 -112.75362826883925 34.2268155980991295
-90056 -118.371293826744932 33.9866036100536917
-74844 -96.5917721011235813 34.8739148089887436
-19570 -75.9909229999999951 40.2366124999999997
-15420 -79.8666175217391014 39.9580597584540982
-07724 -74.0720886261278793 40.3010336265623579
-04626 -67.2680814999999939 44.6620015528720558
-24534 -78.7665193057019621 36.8641532573596749
-61872 -88.368357583815154 39.9441531871388023
-99605 -149.592734458298992 60.9002941090008463
-74820 -96.6828817546280845 34.785434398486899
-01951 -70.846097598645585 42.7865007069867218
-65588 -91.3175065352467925 37.0084194546828513
-78563 -98.2910982237961122 26.6246576402266193
-71765 -92.3520317032543971 33.1303310276740746
-04493 -68.5516131375215423 45.2520116188474049
-93206 -119.476259650709366 35.4327884104609794
-04065 -68.4224509999999952 44.5409089999999992
-20685 -76.5195105431884315 38.4485917181099097
-30547 -83.4606255623565687 34.3676846996726937
-52054 -90.6275385529750821 42.3061668697190925
-48182 -83.5785782429715454 41.7634583916758828
-44230 -81.6918176615522071 40.9615161015343858
-62320 -91.0810956196089307 40.0144281584754253
-01103 -72.5897314638783371 42.103628944866891
-27244 -79.4948067603710626 36.1789477589322956
-94803 -122.289152492348308 37.9700732446745164
-56715 -95.9552136279569226 47.8121029892472933
-74330 -95.2640336360543643 36.4365852687074607
-13287 -75.6728148750000003 42.2454336875000038
-17070 -76.8707104931049656 40.2103594044087345
-42023 -88.9792848862615386 36.8684164150846456
-37082 -87.1218638891038211 36.0855557829050113
-32922 -80.7434211085255953 28.3678671490665977
-64145 -94.5962499004452724 38.8944395540712762
-42091 -88.269834000000003 36.6213232500000032
-52348 -92.3826729777777871 41.9888547925926119
-97438 -122.750196085287484 43.9527400654470526
-60616 -87.6314974413450045 41.8453571227337022
-45729 -81.6051241670611205 39.4143198066729568
-40741 -84.0839376374440945 37.1411975239614378
-95901 -121.506600152098329 39.2136541574807609
-72101 -91.1689316948848045 35.2521741142686551
-12186 -73.9628559520911608 42.6327432231338364
-27577 -78.3539304080965024 35.5074755568381164
-67654 -99.9039268081728835 39.8350909270516809
-41735 -83.0923094283295711 37.0230879046276016
-12911 -73.4664568400000064 44.5237463399999953
-58461 -98.1991522357939459 46.6686586128518996
-65402 -91.7669850000000054 37.9533971935483976
-75933 -93.8273364503347835 30.5920320887276205
-03901 -70.8487384947549543 43.2928684953812706
-56648 -94.0294032000000044 46.8036599999999936
-55742 -93.1501855074380813 47.1891533134985011
-73050 -97.2540908357016889 35.9417076767317738
-32952 -80.6735800588022727 28.3291474742846887
-76758 -99.5818000000000012 31.1966639999999984
-99144 -118.490581045553057 47.3454515965292941
-91101 -118.13974745650043 34.1468092531769187
-52229 -92.1585905185182526 42.1436177289830951
-16550 -78.2934492999999918 40.1300205000000005
-15853 -78.7588796415778205 41.4086616111435575
-78606 -98.4092127803592973 30.0960654482064776
-55106 -93.0485981804301474 44.9663804794967419
-26208 -80.5835906951871692 38.3659390701128444
-91731 -118.038197620735673 34.078579936490172
-88260 -103.341334753600293 32.9620280348791823
-46965 -86.1014389310344939 40.4176689482758533
-87513 -105.674828484496089 36.5343852775193767
-28748 -82.7232963789632549 35.6495376950509026
-46278 -86.2914678391815073 39.8931292992728999
-20862 -77.0199697844522859 39.1821064946996813
-12887 -73.3659117819077409 43.5486077611732014
-15849 -78.571180129548722 41.1873026104803159
-65611 -93.3541631476747398 36.5457333013551633
-76605 -97.0852659999999901 31.6666404999999997
-46546 -86.1872539999999958 41.6444616666666718
-45381 -84.5287892635529232 39.7352906577703351
-21221 -76.4459969493708087 39.3044579051073484
-95227 -121.052274930615084 38.2107898776824015
-87010 -106.137357200206083 35.4029681460441807
-43718 -80.9984647552858377 40.0120044498005569
-31804 -84.8988748389962069 32.6506031474123972
-28080 -81.1150561585714769 35.4528753997593853
-74737 -94.8958738333333258 34.0315674166666682
-08036 -74.836132157715852 39.9770055698807809
-28378 -79.056123333333332 34.8587180196078492
-92318 -117.235175020408207 34.0500438775510119
-83642 -116.39313589293306 43.5920023379218264
-61008 -88.8608007795666168 42.2700250550757346
-62548 -89.2906046407957206 39.9902500885182093
-11507 -73.6521156920616562 40.7708455061268324
-65066 -91.4890436167262351 38.3332500043009787
-54135 -88.6108990392156812 44.883195392156864
-16224 -79.2966817679217115 41.0627914181250233
-95023 -121.378369626614173 36.8513969318606414
-49013 -86.1083785609889674 42.305485009508395
-51632 -95.0439110640198095 40.7440455556830585
-56065 -93.9306756899546826 43.9337923187311006
-28830 -103.466690999999997 48.582296999999997
-71227 -92.4811500019247035 32.5560147089036107
-25802 -81.596872542857156 38.1021020000000021
-52640 -91.2820842280341083 41.0931364450855412
-65059 -91.8844815818370364 38.7027158187154896
-74033 -96.0054780100145706 35.9524923888071939
-64804 -94.513372343668749 37.0328540226381477
-49831 -87.7270223112033278 46.0880952800829746
-60164 -87.8947962850015472 41.9183458824408461
-31548 -81.6707982064114191 30.7975163698262087
-80939 -104.678201220339005 38.8796689830508413
-33521 -82.0673329014868926 28.8003214591077814
-20889 -77.0915295000000071 38.9993280000000055
-75426 -95.0466225323911971 33.6408005357609525
-95929 -121.848968499999984 39.7257965000000013
-17261 -77.4915223650793763 39.8494441269841317
-77341 -95.2175235789473646 30.6231674736842123
-60609 -87.654909870967785 41.8117083640039269
-77080 -95.5236092888367949 29.8161785163934745
-90044 -118.292458616007551 33.9508497195855909
-15677 -79.2497788390340645 40.1753900995975783
-48633 -84.9378274649681373 43.9582578407643396
-07632 -73.9532272250938973 40.884264596334539
-23407 -75.5573169914040506 37.8423138882521499
-52228 -91.7848901109813937 41.9063454404204307
-29518 -79.8428239440528671 33.7849994569816658
-54121 -88.2450186435751931 45.8722824140279712
-52141 -91.6249519056957809 42.9399788130803799
-44665 -80.9859662666666793 40.8447291555555623
-51574 -95.444183333333342 41.5930726666666715
-48507 -83.7005915383387702 42.9725843293516476
-55936 -92.581569224535869 43.7269893220916117
-89509 -119.8303186670164 39.4971411454696124
-66081 -95.2318645217391122 39.7844019130434816
-84084 -111.961862890887247 40.6217793478695839
-13457 -75.0269754062499885 42.7860428437500175
-40218 -85.6521065403781847 38.1914622509230384
-23322 -76.2321620253681829 36.6777085859589391
-95980 -121.317561316666641 39.926024716666646
-35965 -85.9285110000000003 34.3418260000000046
-89511 -119.802341118904849 39.4042079886254442
-33473 -80.1867801699101221 26.5147107747005997
-17008 -76.5835652500000066 40.3286455000000004
-81039 -104.090803906615392 38.0312914723336419
-03848 -71.0657354196882523 42.9143002481271338
-73705 -97.906912343749994 36.3535141875000036
-92301 -117.476364346383789 34.5980448577939939
-42502 -84.5873913333333292 37.0517593333333366
-29446 -80.5849847638120025 32.6867958563535694
-31552 -82.613477780048612 31.2899401211678558
-65616 -93.2421224876771646 36.6587700041391855
-99352 -119.28391527483916 46.2509026973881205
-97350 -122.069381134680157 44.69106752861952
-61834 -87.6301929886534339 40.1562576298706162
-70128 -89.9556164932512843 30.0497517916173429
-39939 -88.5759324999999933 33.2324290000000033
-57436 -98.1132524279176295 44.8433022487741226
-30731 -85.4784511686005715 34.5693706542742731
-15541 -78.9785449615772848 40.044779674033478
-37137 -87.4855737930113548 35.8797529422071335
-59523 -109.231506122940843 48.4920362677303416
-01229 -73.3393551428571442 42.2833374081632769
-18362 -75.3032183125000216 41.0907718750000015
-77037 -95.39700426746235 29.8899943920954705
-74549 -94.9265729612068867 34.5391947456896631
-98144 -122.299939711297483 47.5850578029576496
-24637 -81.7150891196016147 37.0649979757586152
-30173 -85.1471208539683033 34.1444379223986658
-96792 -158.15556917811702 21.4322809236641199
-68925 -98.4244002894798911 40.4201939255490501
-53139 -88.1194819873866209 42.6863136337034348
-30577 -83.3090638376212098 34.5592704476684034
-37317 -84.3931936191151806 35.0199376442237238
-61371 -89.0210164666666799 41.4801043111111056
-97410 -123.170093658030609 42.8027975192176413
-78587 -97.537000374999991 26.0085458749999994
-70057 -90.4188288406192981 29.9724928724954722
-21810 -75.7061839360730602 38.2998303013698518
-96768 -156.318789210683207 20.8401452643115874
-62617 -90.1429143971412969 40.1583682557428148
-16112 -80.4964639072079819 40.9703482369511036
-35999 -85.9680068271604796 34.121807049382717
-72395 -90.0319509518143377 35.5755287614515581
-80832 -104.101529139169926 39.1078960127312456
-39556 -89.4068919058602916 30.4630864865920472
-72955 -94.4473764160246105 35.5972949083205705
-83404 -112.013734848534426 43.4580165127951759
-76530 -97.4535789137562034 30.712910642248815
-12008 -73.9010332605041924 42.8549600336134446
-01340 -72.725483221325959 42.6852365203531789
-16565 -80.1005471249999914 42.0705102499999981
-82428 -107.583354742081525 44.2457140633483803
-95405 -122.670597033742652 38.4385759149537805
-12161 -73.8492647307692209 42.5156306346153769
-67214 -97.3163406871169059 37.7057870757751559
-70058 -90.0647930566602355 29.8742904374830225
-81223 -105.556085689418964 38.3759762582137043
-51023 -96.4846412212369984 43.0075162618604594
-25652 -82.0368647522727343 37.8059322579545167
-42215 -87.6615275307969881 36.9933160906194587
-54232 -87.9160850458715402 44.0122168776758684
-33811 -82.00851512022777 27.9694260849465159
-20912 -76.9993649737936892 38.9825448123927885
-78201 -98.5277381918708812 29.4683186729530284
-55074 -92.7324668874998679 45.3741324452205745
-91206 -118.217955946839609 34.1612568493319557
-21750 -78.1991433283543529 39.6938543981035679
-76118 -97.2155014702946403 32.8053764251124207
-64739 -94.0839755229303876 38.5086746003573026
-45865 -84.3820055806306186 40.3936808840090578
-37218 -86.8570696027273641 36.2117269232731829
-34216 -82.7361490131579131 27.5307506751011744
-58458 -98.3042203937073822 46.3823343864796342
-79538 -99.6603813948771489 31.9811162251867565
-74042 -95.6352699647576827 36.8537338414096993
-25447 -81.9523476666666681 37.9383811111111129
-54983 -88.9345760291776628 44.3225663642794174
-46539 -86.0080891459747789 41.1703979199806653
-59274 -105.434156016269071 47.8383523327004809
-53006 -88.4927890680272782 43.6171401972789212
-96014 -122.816285438514058 41.3253955012809655
-87712 -105.205679545454529 35.8928109545454461
-92880 -117.588194362268922 33.9416813430283213
-80510 -105.521369449114431 40.2214007081681331
-24263 -83.1426804163663888 36.6807786518868397
-90305 -118.327458479034419 33.9596455023295718
-50669 -92.6007627030258789 42.3206498961524886
-98281 -123.056833305227727 48.9890758600337008
-80012 -104.839415231784614 39.6979203015306865
-59633 -112.322162304946502 46.8203252656808004
-57247 -97.4410758607641441 45.7108187736112086
-74849 -96.7416558931658699 34.9812429126917905
-62822 -89.0548312617691948 37.9741914976720452
-04414 -69.0089927873928559 45.3578875285341923
-39366 -88.9106148723406591 31.937858419662458
-68759 -99.3354158627086719 42.6014545269017049
-30037 -84.0886314999999911 33.7029744999999963
-78065 -98.6200005624534697 29.0853652029614693
-39474 -89.8527458590231447 31.6183340288292456
-41145 -86.1300404999999927 38.9730504999999994
-39525 -89.364942080434119 30.3894315349685193
-22807 -78.8700463687499962 38.4349429708333474
-95652 -121.398902485981438 38.66250218691588
-28653 -81.9020813725489916 36.0610966176470598
-53406 -87.8608468754546834 42.7322109477851129
-15476 -79.92126864406778 39.8703642542373018
-31305 -81.4122182642628474 31.4213627236422042
-73546 -98.6995158906031094 34.2395217349228602
-78013 -98.8949573648992413 29.9734570481718521
-24127 -80.1644379168132701 37.4870834240396036
-93833 -120.424492187499993 48.6025631874999959
-50119 -92.9399877872558875 41.3112032194244847
-62454 -87.755574370458973 38.9989052382888488
-76750 -96.9717169999999982 31.081059800000002
-95311 -120.173352528080386 37.7280657271109732
-47022 -84.9509440950189259 39.205564189578503
-04548 -69.7465043482430929 43.8124266080146469
-97417 -123.24327717378543 42.9499889077372785
-92675 -117.656405642710254 33.5027928078453741
-16950 -77.5210588077484317 41.8869920940286491
-82222 -104.634722125203268 43.1468297333333339
-93703 -119.762318589463661 36.7693475967089185
-94562 -122.431370418111698 38.4256946416184917
-83607 -116.724505895938108 43.6670975388922145
-65529 -91.9814884817518106 37.923457784671541
-12058 -73.9248287318193462 42.3493721254393165
-43945 -80.8519383993572092 40.6276521077559281
-14907 -77.5462525000000085 42.4104434999999995
-53101 -88.2718188372092953 42.5333653139534889
-71050 -93.9458930684931772 32.1060751643835545
-52757 -90.3637978333333223 41.8026193627450979
-64093 -93.7294556116579116 38.7757392636257663
-79927 -106.278847839741474 31.646773795427535
-37560 -82.0052215000000047 31.4939210000000003
-55712 -92.6249619440269782 46.2541405390683238
-46567 -85.7303084332435361 41.4075007323970112
-56470 -95.0410970827142734 46.9784358846409305
-12420 -74.3848160896414612 41.6694512928286471
-67037 -97.247916409861773 37.5601648856593613
-91801 -118.130499559704958 34.090955404103255
-18372 -75.3195698108984288 41.0504045575846206
-33065 -80.2573682422718235 26.2731337932044404
-87421 -108.465446818087315 36.7662773326403496
-60911 -87.9635692582858866 40.8813845204539064
-04669 -68.0165993807860758 44.4116308069868282
-48532 -83.7767111453269706 43.0136806015062518
-31049 -82.5198930505797676 32.6779676971649025
-39652 -90.4440333072667499 31.1138825173516054
-47344 -85.4646542461538274 39.8777778153845972
-01844 -71.1830639255444169 42.7311269158785478
-56215 -95.5770519364688909 45.342879619482666
-91945 -117.033612339442243 32.732018166192006
-62808 -89.1959233511803546 38.3090550503771041
-67502 -97.9195936889028644 38.1055881833522321
-37213 -86.7664915480349208 36.1644353842794786
-84107 -111.882117584419319 40.6578261465703008
-63878 -89.821902188235299 36.5097168823529259
-68826 -98.0110156088460371 41.1445463211241247
-56235 -96.0044817170513909 45.7001787468354905
-19342 -75.503530012957242 39.9017348450589822
-46277 -86.1310490000000044 39.6649370000000019
-48858 -84.7855776593058579 43.6011667309149047
-26209 -80.0043082264705419 38.4196625294117524
-53150 -88.1080778333333825 42.8817837848484871
-31409 -81.1523950628931061 32.0208026918239028
-56296 -96.4929923353984407 45.81571654395281
-44234 -81.1615056248282514 41.3303975639028707
-76513 -97.4851581123653546 31.0795845586926518
-78751 -97.7226169270990397 30.3099442683206739
-53402 -87.8034382618856739 42.7847278735517378
-75225 -96.7904377770140059 32.8654290966824547
-53085 -87.8135459739397817 43.72611102197245
-48215 -82.9534444339623889 42.3769177756432853
-76302 -98.4943441103060451 33.8651899025764962
-58071 -97.7067409676841976 46.9451698043087688
-43463 -83.5087321739130459 41.5088167826086902
-43604 -83.5407414655730349 41.6535541248169707
-76384 -99.316101497369317 34.1595414380839628
-85396 -112.559798022273228 33.5104392983934503
-93427 -120.207536019411762 34.6197268149833661
-41180 -82.8545602283432885 38.143800825107526
-82420 -108.467019038732346 44.8834926502347002
-48432 -82.9888711056338195 43.8994103225351822
-88439 -104.451893309484277 35.5455611081530947
-61570 -89.2938103756765571 40.9146061164909725
-58228 -97.3469347148088247 47.89601642554927
-40927 -83.0428438755364482 36.888957135193138
-49958 -88.6428674336398075 46.8366901467368209
-63365 -90.8825796354166755 38.7173974166666781
-49200 -86.5037710000000004 43.561862000000005
-30630 -83.1562503018868 33.9063324243275588
-75110 -96.4843806474848265 32.0850487511193663
-93701 -119.788973256204756 36.749462268423116
-62882 -89.1174493921571127 38.616556952941238
-63945 -90.5446049966810165 36.6458055894456578
-70534 -92.4643300792767775 30.1829499721836036
-04653 -68.345149745022951 44.2432566439510282
-21776 -77.1020474219738645 39.5158621915638193
-61326 -89.2289051655781833 41.2696204300373637
-44124 -81.4696394640115216 41.5041187404778213
-62244 -90.1939843630126461 38.1974427363852271
-39475 -89.4253303683460814 31.1749884647852085
-84408 -111.948644999999999 41.1953570000000013
-98253 -122.573619437119731 48.0848039213995477
-06106 -72.6968872917797881 41.7466951475380128
-99026 -117.605396428874585 47.8063824003007767
-50264 -93.7102702364567648 40.9090256178623406
-99132 -118.227317333333318 47.3474053333333345
-57764 -102.758096352941166 43.1798018823529404
-37310 -84.7730446834948879 35.2608452035754851
-48678 -83.888611950000012 44.8505758500000056
-06023 -72.7198448155487114 41.6141940121951279
-50630 -92.2107232461846138 42.9598631868702014
-64644 -93.9799913161742069 39.7302460073171133
-89815 -115.610924641661953 40.7419819919076573
-44644 -81.1833192085895945 40.6795366608682585
-29332 -81.9805312233905568 34.2665390264126941
-05252 -73.0881613481893595 43.0546086095636156
-68982 -99.1306185486936755 40.3558019513064181
-68517 -96.6076893900619638 40.9309599354037843
-59919 -114.039355690078054 48.3470556064660357
-27046 -80.0992129445675118 36.4849306160963494
-44924 -84.6849615454545415 41.928264636363636
-53032 -88.6325378160603634 43.4484101530542404
-60646 -87.7632798077436291 41.9941901683456535
-51103 -96.4351984331595702 42.5088826044088037
-10620 -72.9199910000000102 41.8526328000000021
-20019 -76.9374963909608738 38.8904595495226246
-48616 -84.115064411809044 43.1922979964973095
-70767 -91.2755326289321403 30.4798093474319742
-01096 -72.7728417357359376 42.4085480298298307
-45483 -83.5650955714285857 40.7095372857142905
-24011 -79.9412750000000187 37.2709278668730732
-27820 -77.2427321248745358 36.4127197582971078
-17019 -77.0237358053438044 40.096790169914712
-60653 -87.6110704900357149 41.8187863559018851
-71366 -91.2976265021856648 31.9464512603205222
-78417 -97.4490909600457798 27.7285139646118672
-83757 -110.959303666666685 32.4565429999999964
-32820 -81.1158595515415612 28.5725871138978462
-31636 -83.1635762355286232 30.7058855058327929
-61931 -88.3670986262886373 39.5913616836339415
-16160 -80.3639685474453671 40.9296431824817404
-45504 -83.8505438007418746 39.9431070813559259
-98181 -122.338124499999992 47.611616749999996
-48850 -85.2510869305521339 43.4402166250312831
-62352 -90.6482430000000363 39.5642227035175793
-40114 -86.4099346666666719 37.7043786666666634
-14213 -78.8908737567327876 42.915725967328946
-37308 -84.9944711010257379 35.3439886076599521
-50593 -94.8987624871794822 42.6581295128205298
-44442 -80.554777811550224 40.9653885060790941
-61853 -88.3968285169093377 40.2027001818508154
-47274 -85.920048686123053 38.971819915975928
-01053 -72.7034027059735735 42.3513159557796754
-58231 -97.8227945816992701 48.2075798248365928
-47424 -86.8602181693123896 39.0279477904491188
-67741 -102.016850922839666 39.3687085848766003
-47933 -86.9124874285265179 40.0307245835568466
-45659 -82.622335557183888 38.662413198033633
-29594 -79.5882483613138447 34.6375475218977869
-92139 -117.051016887257134 32.67954883347128
-29432 -80.7988460939173621 33.2337418955415842
-47840 -87.0475359354917373 39.4180237061829857
-55301 -93.6616963691231774 45.2410066606474572
-62859 -88.5341626898659939 38.0861319760170645
-73013 -97.4930067015308879 35.6220646880217302
-44781 -82.6863740000000007 27.849640499999996
-58757 -102.618138387291978 47.7146236096823415
-99137 -118.10972323131449 48.1582510216083008
-04982 -70.42245958264634 45.1293637985865601
-39179 -90.103756693153656 32.8124253620109414
-28110 -80.5526762986454088 35.0482759599632914
-01034 -72.9492319489530558 42.0744687064039624
-24556 -79.404598252717264 37.3767372037036907
-75685 -94.0876315999999946 32.3662499999999937
-50433 -93.0425320230906578 42.929686095914775
-75802 -95.622759333333363 31.9173676388888978
-80104 -104.841756115679743 39.3618635969012161
-32953 -80.7036532376217792 28.4104163854685758
-78650 -97.2235131018002079 30.3026524641571555
-34505 -87.5524078571428532 33.1365014285714281
-83229 -114.249441441176444 45.0834108823529434
-94019 -122.430191018996993 37.4603246408803798
-21523 -79.0749235173745149 39.4782118918918528
-03047 -71.8643333785192624 42.9418822114180827
-41465 -83.0674999501539872 37.750081934506845
-56256 -96.1932431860638246 45.0202028625915887
-58277 -97.8461973957218731 47.6048873636363652
-22044 -77.1568459356102778 38.8574909204926513
-27350 -79.8918969105690309 35.8062554624391183
-29904 -80.7181805499999996 32.4596710499999901
-59871 -113.874728512252162 45.8540977357059418
-73540 -98.5504283809523542 34.4728312130325705
-48667 -84.2409326249999992 43.6098851249999981
-72137 -92.0378600625985399 35.3408245094488436
-38235 -88.5773755437956254 35.9877569452555193
-25530 -82.5634599188530274 38.3694790412253042
-72351 -90.0960612279203161 35.6794277507122928
-65615 -93.2457736894976819 36.6738159269406339
-54979 -88.579569421800926 43.9101530805687261
-38916 -89.3315841466515508 33.830499758842457
-10536 -73.6903592441531288 41.2698844098690074
-85350 -114.690519790832809 32.5934349446786484
-46365 -86.5455510702818742 41.6040866286334179
-66949 -98.1577000519187379 39.6703498374717753
-04843 -69.0839411904104423 44.2185274084182751
-56447 -93.9361487759513949 46.7287143776817331
-55724 -92.4113499059784687 47.1729631670925045
-50227 -93.4504097826087303 42.5916585869565196
-20063 -91.408495666666667 34.4077716666666689
-56688 -93.9308565225763203 47.7356149296149184
-48755 -83.3033271858518418 43.8617824683967754
-30523 -83.5341613878665044 34.6883836225593356
-83468 -113.635497973902801 44.9403386322657283
-59844 -115.982544344656532 48.0531142926399255
-93161 -118.670317374999996 35.8097537499999987
-18625 -75.8497183782235567 41.5121079656160532
-71823 -94.1166438308080586 33.8301235909090536
-23890 -77.1020240682848339 37.0184870327591184
-93203 -118.850478607736662 35.1703230932301523
-98070 -122.467993257726249 47.4171693956709177
-62249 -89.6712241876738858 38.7515820463566243
-63025 -90.6288916081359446 38.4880868285017428
-83032 -75.7769678333333445 43.168638499999993
-58835 -103.446374163440794 47.7807443139784667
-73450 -96.5486597817150738 34.263974353649914
-88029 -107.64373211598749 31.8403400517240946
-22904 -78.5089684966443002 38.0364773557046973
-35058 -86.7409162552859101 34.232862942654684
-71106 -93.7378948227279238 32.4090891801615086
-14486 -77.9188584915730047 42.8902686629213505
-91710 -117.685218197340063 34.013841189790476
-17063 -77.5132531220725554 40.7355892147897762
-32334 -84.7804677170529573 30.3442371227948975
-42503 -84.5696430612739931 37.1273206335456507
-95967 -121.728523846153834 39.2360891538461516
-77026 -95.3322787344063158 29.7945837345502724
-12928 -73.4919836455494959 43.9501215438236841
-29610 -82.4793513749999931 34.9321776250000013
-37926 -76.5757984999999906 36.5482554999999962
-24105 -80.5830267759866246 36.9001831410009018
-60610 -87.6377888179784321 41.9034066076090852
-60194 -88.115171414470197 42.0344498234265984
-49915 -88.6294808008753137 46.0639156849015663
-08014 -75.3509977087628613 39.8050065927835561
-63821 -90.2267670757303364 36.0456439236732038
-43123 -83.0826988426222925 39.8760019323484514
-75567 -94.3182342417848218 33.3414772161882027
-36559 -87.9033304841269967 30.5702778650793547
-72601 -93.0903443785223601 36.24930131292993
-47994 -87.0578767747036011 40.1772150619235475
-15467 -79.910077546012289 39.7870794355828181
-74761 -95.2010388260869576 34.0229186666666763
-12419 -74.1040887154087358 41.8583923647798599
-19602 -75.9182423840716325 40.3306911350949591
-95443 -122.746609870528118 39.0344406609880821
-57716 -102.094667181818167 43.114382681818185
-70374 -90.5146292506569097 29.6296658561733786
-75572 -94.148279239303605 33.1974845210975289
-42254 -87.6547769743150127 36.662148258561686
-48436 -83.8844140838150594 42.8667421252408332
-76010 -97.0847646880144737 32.72196616847976
-49097 -85.5162628315069639 42.1194532523801612
-37462 -82.7697569999999985 36.5127195000000029
-30094 -84.0492892650839281 33.6113669537858399
-68322 -97.556190592356586 40.3356501337579587
-37902 -83.9201796326053682 35.9627228790952103
-23047 -77.5001185690054655 37.8388363332813853
-41302 -83.5669987142857025 37.7465307142857114
-81335 -108.781324287085496 37.5001781867364201
-60402 -87.7902262897620744 41.8389195417715314
-80526 -105.129647717087323 40.5409323046335288
-79405 -101.851578833333335 33.5750310833333288
-33785 -82.8456134953400323 27.8910577861136773
-51033 -95.2506384306829688 42.8847477439073543
-04221 -70.3010444364203408 44.4552490196959482
-17820 -76.4356437195766887 40.9085419808590487
-64830 -94.4169696969696872 37.2358821515151348
-27298 -79.5578895709912786 35.888038968556387
-46324 -87.5042678426081437 41.5838761794546201
-32958 -80.4805832018552962 27.7866428775920582
-07856 -74.637898531938518 40.9212939531937963
-17123 -76.88457864285715 40.2670926428571434
-25628 -81.8565195219124035 37.7559443266932391
-78253 -98.7577360949494647 29.4602807323456979
-24459 -79.2788448179885421 38.0262571026912966
-95360 -121.092747282023367 37.3419691560038842
-61605 -89.6260047017961483 40.6789619433132259
-65720 -92.970013547128957 36.966827911520447
-26750 -79.0546605341505426 39.4768861260945414
-23084 -78.0934334448714083 37.8867643989480243
-44483 -80.8103993533227367 41.2572738542559776
-12017 -73.4643277760759474 42.3154074835885936
-85015 -112.10166399243171 33.5080193242516273
-18104 -75.535936861728544 40.6023521405458396
-24412 -79.8459658985507588 38.05402907246377
-24827 -81.6707581840276902 37.7469559055555308
-48101 -83.2126432081090712 42.2540175599538372
-44031 -85.4052722727272737 38.443450818181816
-35715 -86.559866333333332 34.4255876666666651
-62629 -89.7008524168829666 39.6793412057851
-82647 -106.744541999999996 42.5432969999999955
-78349 -98.2872937760988492 27.3986695144231049
-83420 -111.398274511215973 44.0626593791718761
-11570 -73.6364914112094624 40.6653999592919817
-16939 -77.0079494528925181 41.6845068975206061
-76487 -97.8705167778512646 32.9719124849587928
-69368 -102.916751333333323 42.5108883333333338
-93551 -118.194369001269138 34.6035326002538568
-23487 -76.7223145931182984 36.8471877748989769
-36322 -85.7306164803714381 31.2798840453248381
-61028 -90.187278579535672 42.3110541554874331
-60566 -88.1457263124999884 41.771754187500008
-28782 -82.1871924540471355 35.2279014415846987
-37912 -83.9794529705615247 36.0075602712612906
-54566 -88.6961243202900391 45.4381430107715047
-55772 -93.0887488135593344 48.1117086101695008
-73132 -97.6380201948604451 35.552015139785702
-97239 -122.694825009799246 45.4884750719139817
-83533 -116.241689871559686 46.1135978990825564
-08823 -74.5580688597367782 40.4373835351792721
-29689 -82.8798660140233494 34.5374827154823052
-46033 -86.0883536498123334 39.9764404487101572
-15439 -79.8252954594594968 39.7459142702702692
-63750 -90.1355584036697195 37.1339640183486352
-39665 -90.2176954177484589 31.6438583731413985
-98840 -119.626872696441211 48.35939443428137
-70451 -90.4723989465021532 30.5449407736625531
-31303 -81.2941517400000038 32.4870399306451176
-84248 -111.868681428571421 33.2699397142857123
-16132 -80.4965791070559646 41.0125641484184911
-26907 -81.0547703333333374 37.8592828333333316
-94108 -122.407891445205522 37.7919927043379147
-26331 -80.3042050476190354 39.3308702857142904
-34234 -82.5346886249713094 27.3674067179576177
-67868 -100.694833943004966 37.829281966839396
-07307 -74.0505199940083401 40.7478993115638488
-49946 -88.356738080224531 46.7699870555555819
-78837 -101.170781696236574 29.7601217096774207
-49310 -85.0675281864904633 43.5185300168868707
-78161 -98.0633717720125873 29.2795235880503455
-62877 -89.2093280428041311 38.3854716060794345
-52561 -92.4435654854425053 41.2257379655377392
-65276 -92.9557501309927403 38.8546228304951811
-91210 -118.286840347826086 34.1484895217391369
-12094 -73.4941368318565367 42.8935523868936812
-77534 -95.3331447968667902 29.2233640583468244
-77615 -94.0784628376205632 30.3429656591639905
-40071 -85.3730478948253477 38.056575840060141
-40810 -83.3220867452543104 36.9230077194380684
-88321 -105.460015093841648 34.7286964926686252
-67554 -98.1914676983706016 38.3648414286218795
-21130 -76.2013183924050708 39.4663470126582254
-85365 -114.556759580037394 32.6805439378046572
-19153 -75.2405748776897241 39.9032188816535154
-38463 -87.6340790904562965 35.0613443236999487
-06702 -73.0406315521471896 41.5570457472392789
-12965 -74.6797125930902865 44.7029923186179943
-60482 -87.7919610330189926 41.6892835985324695
-68792 -97.1504661276595272 42.7392733451537268
-10507 -73.6913668914558571 41.2317109497616912
-29102 -80.2151525408006165 33.6472565055298389
-58442 -99.1759150528148297 46.6118820474383995
-68179 -95.9351824999999963 41.2587285000000037
-43330 -83.419249899999997 40.8122088571428492
-15049 -79.8047179565216567 40.5540825008051087
-56075 -94.4365933066666514 43.7350927466666661
-80928 -104.450809804060995 38.6622825627749052
-63840 -89.8843986666666552 36.1913610303030282
-37772 -84.2237973308577921 35.8027074505191578
-33855 -81.356179275689243 27.802352303258143
-28777 -82.0703363909523489 35.9002378357020362
-25205 -81.7740383244837687 38.0299260530973484
-24714 -81.1627372497939774 37.4656098516076312
-99786 -157.857098833333339 67.0891050000000035
-68739 -97.2597964472085721 42.6325397933014116
-54942 -88.5281975172413809 44.3053549310344934
-64433 -94.6861503846154022 40.2445049871794964
-06461 -73.0720356999638341 41.2384404708148011
-54026 -92.5436239331531993 45.2269285034775237
-50860 -94.3574693046874273 40.6205250416666743
-63630 -90.7372534878012971 38.0173999326922356
-61865 -87.8036790339049276 40.3028277419226058
-76519 -97.0776649616970246 31.0046592999411246
-19138 -75.1576012790543757 40.0567939553780334
-80866 -105.167110257966783 39.0654015068285219
-13625 -74.9288208780967437 44.5360749764533779
-37743 -82.8618087127111806 36.0952075644059533
-49849 -87.7110383726086837 46.4778700189128529
-17936 -76.3384617387387436 40.7506619519519333
-35063 -87.0042614864486836 33.8150628502374673
-98641 -124.040675489406794 46.5535210508474933
-54732 -91.180684080552922 45.1468440047663009
-74966 -94.8085864077857821 34.9432404189631498
-72577 -91.7041691037249365 36.0222755054441208
-35808 -86.6443460842541526 34.7001746657458767
-46125 -86.6421350384615323 39.5224331923076946
-59050 -107.371447070895528 45.3096446268656763
-16672 -78.2542301939394207 40.158956054545456
-33172 -80.3609878081048805 25.7857918001589255
-48746 -83.5364139388372706 43.2754048497675399
-45439 -84.2206219731850041 39.6941022801896821
-31503 -82.3700152979356375 31.228309706207277
-95551 -124.219862218114443 40.6586406817005752
-01581 -71.6164818301610637 42.2645579890270255
-92655 -117.984903959867864 33.7342641185080296
-43822 -82.1631972307597351 40.1646598999216096
-66420 -95.9418881666666721 38.9644625000000033
-76306 -98.5244569724527253 33.943365659191528
-55433 -93.3201740851327628 45.1664244678195388
-33780 -82.7174945000000008 27.8767645000000002
-62622 -90.3541749318181786 39.9825737500000074
-47930 -86.7335754791922824 40.2450413739288848
-70558 -92.0747604948453784 30.0996794226803956
-56069 -93.555575961161864 44.4301875502611239
-63538 -92.6685162071005379 39.9610835835798497
-57356 -98.5223572600373529 43.1385937306256153
-32218 -81.6653410556726129 30.4594103933583078
-01531 -72.1283714138843237 42.3190079067980278
-28214 -80.9620922767706475 35.2807502182282064
-74427 -94.9294508552631839 35.701834724547048
-54101 -88.0540730395922111 44.7867203556187903
-36861 -85.8345790552517229 32.8722785334418433
-46301 -86.981044329733038 41.6880494286526115
-42328 -87.0258102331003585 37.4087448149184212
-07620 -73.9298827414246205 40.9515203060685948
-73051 -97.2657544162769057 35.0428021764133177
-85045 -112.096598644163947 33.2998572725552151
-62092 -90.4022777735959409 39.4380083503185261
-20138 -77.6810430723684817 38.6326588421052506
-93730 -119.756339401331317 36.8907204032334377
-44881 -82.8747790857143087 40.8695835142857078
-30021 -84.2385820374648091 33.8101854252262939
-25651 -81.9555769947916986 37.5810700416666847
-13080 -76.4776417413716274 43.0837956086955671
-98647 -123.442345111482055 46.2920710133511122
-10933 -74.5166356572238584 41.3645081643059243
-58638 -102.088890719650607 46.6397876333667512
-11766 -73.0113824523126311 40.9310482485175839
-98267 -121.408493528352437 48.538106544746249
-12485 -74.1436171806140862 42.197780511137843
-32591 -87.2153004999999979 30.4092240000000018
-50625 -92.9914903885541122 42.7540872720883556
-78746 -97.8114381892023346 30.2996007874973685
-33030 -80.4885955455982298 25.4798139293407218
-69813 -98.7987449999999967 42.6096706666666662
-53212 -87.9096469069562971 43.0686294503961662
-83252 -112.342843504344515 42.1925730021720682
-11358 -73.7978121249999788 40.7583302500000002
-04345 -69.7980070489310549 44.2057576248213309
-56178 -96.125570794488155 44.2786237338582751
-64647 -93.9792537670249999 40.0197783500597239
-24851 -81.8315582615384471 37.5885804615384629
-69151 -100.554266074729682 40.9902802043264529
-03052 -71.4535201788669241 42.8449513422665262
-99036 -117.278472263848769 47.5253293997774833
-80527 -105.294082833333334 39.6481263333333303
-73098 -97.164427977368689 34.6386190893746857
-29424 -79.93718145714287 32.7839864571428734
-97503 -122.868245233903636 42.4763771080594665
-61318 -89.082870067333161 41.7058750813334314
-46549 -87.4374680000000097 30.416223249999998
-00731 -66.6171542776332331 18.060818139791941
-28277 -80.8187708433156473 35.0509465639908058
-52220 -91.9970978639455836 41.7311491768707228
-43623 -83.6496548211062816 41.7061757367597039
-88262 -103.39033506349206 33.1437064761904807
-05039 -72.2940683831117781 44.0302850714099137
-41034 -83.8929729420960939 38.7122264850416684
-42518 -84.6295685868644796 36.9395768748853897
-57039 -96.8911400569449341 43.335909748172341
-19543 -75.8935907618116659 40.1673072481349891
-35136 -86.2931852993675506 32.8431001749825171
-83343 -113.451335540983621 42.7034753442622943
-14471 -77.5004766225598729 42.7589588423716407
-84071 -112.372752406233317 40.4369627721655078
-70759 -91.6000604532578819 30.7263550609065135
-14413 -76.9789138571428566 43.2119115714285726
-00721 -65.7716755699999851 18.3702049000000045
-38472 -87.0422908606079062 35.3779445265359485
-99258 -117.406146333333325 47.6671526666666736
-25421 -78.1641029344978051 39.3793901659388652
-40006 -85.3196544337384779 38.5978686599342069
-43524 -84.0368057635725876 41.2270185748685378
-62032 -89.2830251584414327 39.1154442141414975
-56382 -94.6049414203699399 45.9065549865389144
-12852 -74.1472400198530011 43.966418351470594
-15938 -78.6233228757073164 40.4262819412934888
-32411 -85.6148855555555741 30.0760398888888929
-87184 -106.610914576923065 35.1341209230769209
-65659 -93.30115985416667 37.7374498333333364
-16917 -77.0746763976031133 41.7425101448801286
-98406 -122.504258074019063 47.2631862834399286
-03859 -71.0616878275862121 42.8662385862068973
-40979 -83.5089893538461467 37.0275259948717803
-23093 -78.0350448715278162 38.0001862406943189
-54622 -91.8533869329445452 44.2313202142857449
-31535 -82.8643347585779679 31.4660698349887404
-51234 -96.0118304686668864 43.196185176604601
-27157 -80.2711501999999939 36.0892891999999961
-41619 -82.7493734642856111 37.4836260229591929
-90745 -118.267481973038016 33.8222030245753515
-61724 -88.5580258115798955 40.3531800019627482
-22624 -78.0941850052909956 39.267198481684872
-98528 -122.889184514923087 47.4341346230523442
-75152 -96.6851704557844158 32.4427707516657691
-98538 -123.135848708950803 46.522189883224641
-24508 -79.8524725757575737 39.5599033636363657
-25403 -77.9996731799683687 39.4842173671088901
-46205 -86.1330597491015197 39.8278211020277197
-15455 -79.6524264028777083 39.9929750647482365
-33877 -81.6142501265822062 27.9826764113923971
-40867 -83.368032023255779 36.7075300232558206
-57650 -103.085692097561022 45.7788741219512048
-44809 -83.2832455877862117 41.1327716564885506
-53076 -88.2282384644572772 43.2679229413102462
-59634 -111.981692426151994 46.4958644267131191
-48032 -82.5945385355451123 43.1331862769125891
-72688 -92.6932197619047713 36.1401292857142877
-26444 -79.7648897034421083 39.3694291870583513
-17934 -76.2123347849589408 40.7991484007050715
-49320 -85.2944710821918619 43.7505906849315096
-03097 -70.5981634999999983 43.2687614999999965
-66546 -95.7237424637627612 38.894813900925179
-68430 -96.668065544697356 40.6645788961686563
-77088 -95.4535478116986837 29.8823932937353938
-12151 -73.7892923800474989 42.9285823800475086
-58374 -99.0400106353036591 47.8176151141701524
-90301 -118.357197986271501 33.9570304605304116
-78641 -97.8754832706267592 30.5543982690473754
-84345 -109.155666699999983 37.1965965000000054
-49063 -86.2036494150943327 42.3960594528301868
-56519 -96.5063935702479938 47.1453512796143315
-25183 -81.8293270495049541 37.9139430099009687
-62556 -89.3953177504780712 39.4731586118546076
-26030 -80.6499964285714555 40.2235695329670264
-90240 -118.117898862552906 33.9564133615503252
-84122 -111.632265142857136 40.7445941714285738
-25523 -82.0718011999393156 38.2753448634709343
-51242 -96.332266610038559 43.4379273861003909
-42002 -88.5996862500000049 37.0515940000000015
-98238 -122.220062577235765 48.1357130650406404
-52003 -90.6826804048303359 42.4547923796439832
-19070 -75.3237026427130161 39.9066240908356633
-40025 -85.6480426493055944 38.3019750555555518
-51340 -95.1555392564102931 43.2412028461538469
-54435 -89.4185280806451601 45.4444174677419355
-05077 -72.4790895155261268 43.8988969870844628
-26164 -81.7303350601721235 38.9784582626487506
-93630 -120.076929045884299 36.7378066789350157
-92336 -117.464583623022193 34.1281978218322877
-06480 -72.6017285686739626 41.58938709331116
-33192 -80.365555999999998 25.8042890000000007
-02637 -70.2731153277108405 41.7051504915662434
-71440 -92.551840563829785 31.9385462978723247
-63353 -91.0896108767483526 39.4355303652471818
-18079 -75.6572862166666766 40.7439744249999976
-81812 -105.227451277777789 38.5648219444444464
-51333 -95.0044577209846892 43.1520361570926241
-56160 -94.7734708088804041 43.842611888030909
-64221 -94.9773198999999977 39.920690300000004
-12788 -74.5963194582942748 41.7958375732800178
-28103 -80.3576172634741397 35.0002621416882818
-87100 -106.644822500000004 35.1087689999999952
-41826 -82.9211771787021519 37.1711608628951922
-62901 -89.2190736745550765 37.7258686768090996
-33556 -82.5889504792957752 28.1405379666293634
-27944 -76.4067599014321672 36.1600137777899278
-31716 -84.1207312841502812 31.3686780875840903
-59743 -112.709405579235082 45.6329131657559017
-49786 -84.4523783750000092 46.2550283750000091
-44503 -80.6496452106060815 41.0999508090909274
-14041 -78.9756361925465598 42.4174243354037515
-64832 -94.5796226604570904 37.333117189669828
-56329 -93.9085759067380081 45.6930644900341534
-23952 -78.2802794163822568 36.9251262457337504
-39464 -89.0745269980705956 31.4814134069072473
-77837 -96.6697623008252691 30.9988472580645364
-44313 -81.5686999142811402 41.1249461478861136
-85205 -111.714494792675069 33.4335585765570116
-03923 -70.779711500000019 43.1072841249999996
-59241 -107.037148410120068 48.4546555046604226
-73022 -97.9924797499999869 35.6146521250000063
-66535 -96.4289563041521518 39.2332330433747103
-10040 -73.9296654612737001 40.8583821118761037
-28805 -82.4899085145653288 35.6050536390082684
-78357 -98.5981862758423659 27.8855312924043623
-22805 -77.3902764999999988 37.2128665000000041
-27549 -78.2525013489204042 36.0912024875259263
-78954 -96.7001557121451469 30.0501770780757234
-53537 -89.2090179559748435 42.6697176226415209
-54819 -91.2720453648293244 45.4610555354331467
-59028 -109.657217331365374 45.4162155228782751
-14037 -78.4557150896862368 42.8146450832799133
-54303 -88.0502507190371659 44.5329818107972315
-12824 -73.6999724855354827 43.5158295790982166
-59522 -110.993702956912244 48.5749211508078815
-13671 -75.6371254999999962 44.2877085000000008
-73835 -99.2299215329669977 35.9889466923076711
-92385 -117.181144505694846 34.2392022517083845
-03911 -70.6371798058510763 43.1350333058510813
-11579 -73.6447488367345358 40.8456412520171099
-13119 -76.4444631643835351 42.9762853287671192
-49032 -85.5087253083111705 41.9208917667560073
-72764 -94.0752748056440424 36.1782318090681443
-55075 -93.0464686178898575 44.8899405322160874
-36314 -85.7718268921329354 31.019606895377148
-01541 -71.8836987288534317 42.4528407049448191
-42078 -88.270594428828133 37.2833017650282699
-21250 -76.7140549615384657 39.2590849230769194
-60964 -87.7298318623358853 41.0575148279647593
-56465 -94.1213261712093754 46.5273410511300369
-20103 -77.4522569999999888 38.9960235714285659
-01843 -71.163096907600476 42.6887336773473152
-62511 -89.7465950000000134 39.3316001666666679
-79783 -101.964571875621928 32.3310516865671431
-51249 -95.7249317279169816 43.404400070337978
-29080 -80.0813222582657573 34.0149586350058186
-04680 -67.9412270056059953 44.4919136862555291
-30818 -82.3226334718445685 33.2533921294497361
-62362 -90.7466885862069006 39.8042762440318114
-18821 -75.7401770709939655 41.9799535922920199
-24079 -80.1460305503992316 37.0649654824907415
-16037 -80.1256286429453723 40.8455036879210311
-45361 -84.4178775714285763 39.9638433571428635
-78547 -98.6912482671755669 26.319366213740448
-66006 -95.2213382966911013 38.7974574580017944
-17051 -77.7724455524839868 40.4685419087470137
-51041 -96.0660966132315224 43.0163088749788187
-71280 -92.0773430085448013 32.70204751538094
-19450 -75.4093406956521903 40.2610419565217441
-97005 -122.804393958067422 45.4920240409687437
-49715 -84.6550066567252486 46.4195038186845821
-44030 -80.5857825503051401 41.920898316964383
-24504 -79.0782641801820887 37.3729954585160087
-62983 -89.1121214921815437 37.8972923574087446
-38824 -88.630352523651581 34.5156051151113132
-75223 -96.7487060993976655 32.7921449033407058
-27934 -81.1889746666666525 35.3344192500000034
-45210 -84.510694249999986 39.1108673965517397
-76957 -100.217316023715298 31.3600411936758654
-03263 -71.3165075936963433 43.2960064898607015
-20743 -76.9022873176586899 38.8861554845502866
-85424 -109.730176 34.3696654999999964
-60974 -87.7312189440559962 40.713834006993018
-73599 -98.9485486666666674 34.6995850000000061
-76348 -98.2609103333333422 33.3503969999999939
-07444 -74.3034049268703001 40.9665192986831457
-44685 -81.4205090247130983 40.9638150841808297
-83832 -116.932006855544984 46.5489096587448969
-72181 -92.4507581645569303 35.1762644388185706
-06338 -71.980038091836704 41.4592682142857143
-71002 -93.1153882184036519 32.1215083713969207
-03086 -71.7662135528476881 42.8336248892836409
-96064 -122.392400807033539 41.7277058666816814
-98530 -122.868894394578362 46.7986713162650787
-15627 -79.3143577897258183 40.3459087631420132
-98326 -124.357688192123547 48.200762633315712
-56249 -95.8954321776408705 45.3212971536350864
-76822 -99.9610555000000005 31.7233170000000015
-50144 -93.741383344705369 40.734504979257629
-92093 -117.233092253968294 32.8797234603174573
-36374 -85.5045830269687883 31.5782926037397118
-17854 -77.0411142500000068 40.7216329999999971
-33319 -80.226018082497319 26.1838057594761047
-61031 -89.311569353789082 41.8380832046951099
-18341 -75.2098284047619074 41.2358433809523817
-68330 -97.3562481369862525 40.7168824109589096
-29709 -80.098150578906484 34.7230908354713819
-77384 -95.4998143249645892 30.2300160151852459
-36271 -86.0112153062260631 33.7921537139419854
-41626 -82.6291703157894801 37.6532533684210478
-40212 -85.8020586879620453 38.2654573194296788
-49012 -85.3456545412415863 42.3650261748761423
-95815 -121.444295680591068 38.6121990120336847
-36773 -87.3879527681161221 32.2899734055236891
-27879 -77.2791795821918157 35.5744063082191673
-46032 -86.1663292500000892 39.9710034628205619
-68456 -97.3142400179752087 40.9181510190324644
-35149 -86.2027110728813568 33.2585902898305292
-95326 -120.862411704175884 37.5973240923076943
-17837 -76.9245420648724547 40.969957823654596
-90073 -118.457038499999996 34.054013249999997
-80651 -104.827524149818487 40.2366303658205453
-15112 -79.8386510753993548 40.4046691373801323
-92619 -117.766061750000006 33.6691767500000054
-49765 -84.2245225220222409 45.3513311003412269
-45358 -84.4713936402439032 39.9771756646341458
-81504 -108.486894556140399 39.0833220378888555
-67669 -99.3447534862913386 39.4534863100791497
-96088 -121.870890399063228 40.5124117229717697
-55085 -92.9670073870967713 44.6742695591397734
-00983 -65.977743455882333 18.4189215196078386
-24603 -82.1843509325369155 37.3638898780745166
-52341 -91.728581516060089 42.1028224568165896
-02191 -70.9439147033996846 42.2433693097889673
-28746 -82.1786999934534919 35.4512613644544032
-80132 -104.847104333643955 39.0985183690285893
-17864 -76.9040799328195988 40.7012792595713222
-71667 -91.8499845865797937 33.9301269632397506
-63859 -90.0296529999999962 36.2747113333333289
-06405 -72.8051302996272369 41.2807326933152581
-46819 -85.1458335044983841 40.9985022350883597
-64867 -94.2335550369270436 36.7169886393687008
-07631 -73.9740332869474031 40.8926902446316092
-13029 -76.1349229925718589 43.2244250932375564
-32217 -81.6177377325800819 30.2390501571158339
-10462 -73.8580813107797383 40.8426624392202697
-40007 -85.0060933261364511 38.4485364477272782
-48028 -82.5934632049847721 42.5833203067140857
-24646 -82.0350996698166881 37.1267093078464328
-94508 -122.448409275934509 38.574184260687538
-96734 -157.741317706758508 21.3933033238287358
-61423 -90.5072892911447013 40.8920671779964167
-47354 -85.201627301582576 40.0426362468046406
-43556 -84.5597294502024681 41.3057362658569716
-62034 -89.9683972353479504 38.7607555253884613
-26610 -80.7464217691408379 38.5001098320311854
-03905 -70.6911007699042528 43.0924273889120926
-25978 -80.9370243641509006 37.6335661113207607
-15459 -79.4661703916470969 39.7521360811662916
-16637 -78.4566968027619396 40.3468681539701208
-28357 -79.07279344620882 34.9003146033396803
-18457 -75.0550637594936205 41.4700145316455533
-33928 -81.7861398021295116 26.4332193706119583
-04047 -70.8982934014100437 43.7407944170744685
-31903 -84.9454787405582721 32.4240919598613928
-49451 -85.9600309617664919 43.2044992142386945
-15486 -79.6979368685690019 40.0259004950280968
-62869 -88.2909539159277301 37.9656660947454085
-38922 -89.6567132860493956 33.9538776265971265
-62547 -89.2508127207489252 39.7677852501299753
-24340 -81.7690061872525291 36.7587412940907754
-50244 -93.6745866068564368 41.8742237410649665
-50127 -93.205131303571406 41.7781369999999939
-30987 -84.1232454999999959 33.815321499999996
-58744 -100.663305890214886 48.1114043579952266
-93201 -119.481316916201123 35.8861732718808071
-33337 -80.260180826086966 26.1279331739130534
-07051 -74.2350679999999983 40.7566839999999999
-77048 -95.3355722696596075 29.6289925755102495
-93660 -120.186255571428731 36.6016772705810496
-87412 -107.788151709527057 36.7339520646235371
-84013 -112.096450795161431 40.3032908209677387
-61413 -90.3719022033463091 41.1925624478765471
-36436 -87.6807126920245139 31.7648786601227258
-84659 -112.663403758620674 37.7143903103448253
-15861 -78.07550612355206 41.3266365399889253
-39352 -88.489141814833161 32.6518192470530479
-50266 -93.793253407971207 41.5750678661164557
-21562 -79.0313715477549863 39.4888887708844152
-10979 -74.3165307185185355 41.2011165333333267
-16748 -78.1689107055979377 41.9502633561189029
-75568 -94.624994200435026 33.1846445234526257
-84630 -111.860011506451613 39.2288338483870902
-07930 -74.6820888180245959 40.7838521336323581
-05441 -72.7825066525323194 44.7826152020023969
-26361 -80.3172232500000405 39.3687814761904775
-65727 -93.2978920413792139 37.768409970114952
-80720 -103.201493146345058 40.1006510441766935
-19946 -75.4654488171674274 39.0332790185979945
-53050 -88.5489774597760118 43.4988729745417544
-44512 -80.6658088756900327 41.0285782014244944
-01936 -70.8596170499999971 42.6317195000000027
-75443 -96.0993682400000182 33.4682851199999973
-38639 -90.4503694444444761 34.3183500024691241
-63111 -90.2525272194316983 38.5587825825112844
-64633 -93.4848876034996152 39.3683088590124797
-22302 -77.0822353221988834 38.8276798793783655
-66010 -94.9783518616726212 38.0959133432422021
-48445 -83.0089970020518706 43.9535267879617564
-43054 -82.8155391265596563 40.0805954977797398
-99008 -117.907161519523967 47.512430430457492
-94002 -122.295759171987001 37.5165503629016683
-65286 -93.2000613693181492 39.5010765397727326
-57344 -98.6101553382856508 43.4379834807619218
-28433 -78.6361795563156818 34.4843568005718311
-44804 -83.533640506898962 41.1119598641975301
-72536 -91.7688808232143884 36.16099757857139
-30243 -84.3881469999999894 33.7051548000000025
-45202 -84.5072785557686359 39.1091955221731311
-50585 -95.1424349663094517 42.8932705715161404
-16244 -79.2820446699999906 40.795325990000002
-28327 -79.4033014914630115 35.3280610379642823
-30139 -84.6958207312802642 34.4364667498069181
-97435 -123.33566097220546 43.6946088712342018
-21202 -76.6073844897504443 39.2976679030748457
-84326 -111.819575930624453 41.6824464340931797
-79760 -102.376455749999991 31.8031859999999966
-72164 -92.2430247352941137 34.6864691176470501
-24934 -79.9118362240185718 38.3346356050808694
-32778 -81.7321940115121777 28.790483594237255
-52212 -91.1003779915581049 42.1094642409823834
-01081 -72.2284047026900851 42.0619817876356308
-28092 -81.2387669802731978 35.4799752499738261
-18510 -75.6458353469346179 41.4082122179021113
-75972 -94.1409880331728033 31.5027297527969239
-80723 -103.607499974042582 40.222524628723427
-04068 -70.9285517221158699 43.8343730135319234
-24821 -81.6770662666666283 37.3374278249999918
-55952 -91.8485050607286979 43.950386374677997
-58059 -97.1011409920107269 46.8523171318243783
-50028 -93.1599537251551908 41.8143005874741647
-84660 -111.647465409247246 40.1013214561930411
-83852 -116.538233217155224 48.308272109663406
-68380 -96.3907564917355728 40.2203900206611493
-97741 -121.129934644561388 44.6467578425202163
-61542 -90.1483218780513056 40.3991866529154677
-97869 -118.677886359791003 44.4542453802281159
-74872 -96.9317029965089318 34.8037805523660779
-30150 -85.1660182499999934 33.6595864999999961
-42130 -85.7769539280185995 36.9225268978328671
-78251 -98.6731735130197478 29.4616910128825502
-30079 -84.258339479233257 33.791530049201242
-04864 -69.2482680658315246 44.1292604810660052
-76541 -97.7280606801950995 31.1161084221848405
-68452 -97.8406839708028997 40.4013538540145944
-30513 -84.3364645592419038 34.8563914735346074
-96133 -119.520730549999968 38.6310253812499838
-77803 -96.3765394571941414 30.6794051832395134
-46226 -86.0546391468279808 39.8401904210905471
-45432 -84.0883519418048451 39.7405012630805103
-70569 -91.7772761111111208 29.9410290000000003
-16921 -77.5493013458030589 41.6947577883864753
-95864 -121.376891059366116 38.5867577758138438
-97211 -122.646204538858129 45.5682953189740445
-85381 -112.230724915189981 33.6095645231354112
-81527 -108.460949886909759 38.90348893086
-63453 -91.8818291333333406 40.4553680666666722
-91905 -116.31522380191781 32.6781395707875291
-95345 -119.956952170508075 37.5704450218676484
-92116 -117.121870725062891 32.7636051237707662
-47040 -84.9345111995734214 38.9255447167721371
-65612 -93.5394247620560577 37.2222104737678379
-83246 -112.039043917988479 42.5994341828794489
-91931 -116.554091806306317 32.8478648468468322
-64061 -94.0809004342247164 38.8040995813903606
-33444 -80.0793100437310414 26.4569910816441904
-92861 -117.80938254575463 33.8184334570754004
-58562 -102.017434039748082 46.2453930998543683
-32604 -82.1798942999999866 29.6155745999999951
-14524 -79.4712586666666709 40.3617829999999955
-60053 -87.7908189189473092 42.0427445439618737
-32667 -82.2933917114235385 29.4892158680140497
-97751 -119.824912663885598 44.1435953504171437
-97447 -122.881469110540706 43.3185893924324077
-37044 -87.3572065454545594 36.5180625454545407
-03060 -71.4631464918643218 42.7470100418584309
-93450 -120.875520120481966 36.0059601686746902
-06877 -73.4996557760888862 41.3019822897828703
-55981 -92.0417819134002144 44.3670665040016203
-79505 -99.7880508218029121 33.5820613249475741
-72631 -93.7771058340211994 36.452887412079626
-78754 -97.6422023079166195 30.3537357952083653
-03442 -71.9098902841966066 43.010883814962547
-74421 -96.0459528519265859 35.7619140494767791
-50633 -93.1201876216988325 42.6686475053532561
-57752 -102.146570687500002 43.4173527343749939
-50649 -92.9140114117647045 42.6626626764705961
-18056 -75.5514465881104798 40.4510171167728032
-05342 -72.7988154537736989 42.7787958954227534
-99033 -117.096280562499928 47.2324043760964898
-28617 -81.3822417523319928 36.4875407323943222
-17551 -76.3686216345125501 39.9884394302403905
-36728 -87.5915352738371809 32.1784102261627325
-85192 -110.689397586677558 32.9147512263136406
-37619 -82.3910094999999956 36.5713730000000012
-76821 -99.9570298873350822 31.7402224337505814
-55073 -92.831712818529752 45.2714610074522597
-84034 -113.999254931451674 39.9326855887096812
-87933 -107.265309086956492 32.7643115652173833
-88021 -106.62496975796067 31.9975321711644369
-02655 -70.3862955120240201 41.6347145801878114
-35503 -87.3003951167777785 33.9304409743703204
-88126 -103.335496969538013 33.8476298897058925
-16110 -80.3800809974059831 41.4983436913099837
-53118 -88.4782856032504554 43.0120444913957769
-38852 -88.2103997920962826 34.839086125874914
-66861 -97.0157322312066412 38.3521673101704366
-12865 -73.3407511468892039 43.2101619123292622
-24077 -79.9045271432038788 37.3707350509708434
-53122 -88.086569620890387 43.0484833169846013
-99610 -151.282015028524711 60.3255214889419307
-94597 -122.071938967467617 37.9188566324735703
-18881 -99.4711994999999973 29.3150800000000018
-18860 -75.3626182857142766 41.0138822142857151
-45351 -84.4950022879999807 40.3401483920000103
-26058 -80.6732857777777781 40.1846824444444479
-64420 -94.2889548666666713 40.4851699333333244
-15472 -79.7159218270676746 39.9189374661653957
-18245 -76.034411270676685 40.8505502556391065
-78305 -98.2639938333333447 26.3257080000000023
-49073 -85.1205296201192283 42.5845292947396601
-13618 -76.2955076480807577 44.121860547772485
-41669 -82.7180786926286089 37.3348063296244561
-52163 -92.0925980343137098 43.2170601421568463
-89019 -115.609375463318386 35.8125288194825444
-49201 -84.3814828467642286 42.2436640797719463
-55629 -92.7027488333333167 43.7190391666666685
-24599 -78.7182289999997806 37.6219366597736098
-27293 -80.2766964137931183 35.7792568620689693
-77702 -94.1273075541706987 30.0865394650048259
-72650 -92.6196782278625079 35.9135302549520503
-39632 -90.4750529523809348 31.0580795238095284
-27410 -79.8845886928566529 36.1144547696531717
-76268 -96.7578248256880613 33.6261071834862335
-46543 -85.6773169463525335 41.5301714910588515
-29223 -80.9207584402507081 34.0933942798009184
-14905 -76.8414217589448185 42.0878465222263074
-18212 -75.710727568292711 40.7733504341463515
-29938 -80.8132605806451778 32.1347563548387143
-75688 -94.2327051607142749 32.5413985535714403
-04928 -69.2534461555315346 44.9462439810657912
-44666 -81.6239681161740975 40.8417369901478438
-87550 -105.611293399999994 36.375365599999995
-15780 -79.0459226086956619 40.9177466739130509
-29321 -81.7127936567247559 34.7223743012568278
-04285 -70.4377122048851021 44.7031663163792459
-11749 -73.1707824742968 40.8054825499514635
-02192 -71.236471333333327 42.2801709999999957
-78401 -97.4136198605132648 27.7890853089817114
-90786 -158.000415500000003 21.5028195000000011
-62957 -89.4367340641711337 37.3123236325439152
-76366 -98.7321326079267578 33.7508676445121552
-55991 -92.4294157530380005 44.2450925762445308
-14141 -78.6996587734259521 42.5161423314423175
-97366 -124.059627727500086 44.5723655128571323
-70065 -90.2538808483269435 30.026210021187147
-02210 -71.04336447520663 42.3481014876032447
-48203 -83.1032421541981279 42.4220254648072981
-08730 -74.0650245301387145 40.1064625746910721
-82841 -109.898736199999988 42.8973534000000001
-15145 -79.823440342361792 40.4139490237585761
-43074 -82.846607272566402 40.2678597611661431
-47355 -84.9292762043224201 40.0398621155860965
-97212 -122.642201669101226 45.5441314999999349
-24870 -81.6090589066003673 37.6998156880447581
-50430 -93.944461763493365 42.980103887181464
-65087 -92.8144209534883657 38.2712677906976708
-71225 -92.3394937449406683 32.5122996959807011
-11021 -73.7286330269612193 40.786959846850614
-75476 -96.2281812238656755 33.700324449950692
-69724 -97.8750990000000058 42.6082804999999993
-68624 -97.2375615848157508 41.3413214250316727
-43441 -83.4583483333333334 41.5263718333333358
-73716 -98.5336050928383287 36.5128279867374061
-12222 -73.9612214117647113 42.910622411764713
-54928 -88.8900848999999909 44.7200365000000062
-68028 -96.2479060284253762 41.1322479143888202
-71860 -93.4864099905008885 33.3295929504893493
-22729 -78.0148931591737522 38.3682896075334128
-24176 -79.6897773282481552 37.0232722069086222
-65610 -93.5274422055727257 37.0474130323736901
-14769 -79.474156698189077 42.3786102203219599
-47980 -86.8967333652845326 40.7500509322075644
-43724 -81.5048738670270723 39.7364700873532399
-97124 -122.949363706453752 45.5458707349572407
-18261 -75.9088276666666673 40.9301461666666668
-66538 -96.0578487870612605 39.8405848239916196
-71479 -92.3669683154662664 31.8368574226689205
-68765 -97.6107771894272958 42.3460784211453856
-18436 -75.375737155908638 41.4299130676510003
-30511 -83.4911262227279565 34.4621855214686477
-13082 -75.9562887803093929 43.0988361999139826
-84624 -112.604400749699977 39.365429334133907
-37333 -84.3225236888631144 35.1465516012461521
-62974 -88.8052863598628051 37.7870053241852659
-49039 -86.3727238333333247 42.2210693333333396
-59003 -106.205890867584714 45.5322858283897816
-72066 -91.7360220408163087 34.8981875102040888
-02657 -70.1686406667847251 42.0458008426090544
-21676 -76.2984299199029152 38.7892745582524228
-23691 -76.520741297297306 37.2266092342342318
-75673 -94.3627968823529386 32.1382503529411778
-98276 -122.321057431599215 48.9263817533719134
-48415 -83.7957602561502171 43.2666208917067721
-81062 -103.956979452767513 38.2521755909279193
-54615 -90.8417814084582744 44.2842138859741752
-94612 -122.269520992153176 37.809135885788983
-13310 -75.5702284692503241 42.8872359856781813
-28701 -82.6369489469124829 35.7020424046094291
-74829 -96.4837550090908422 35.5013164204545504
-94925 -122.516882143699149 37.9221691980470581
-68838 -98.6600980532340515 41.2165492409845058
-75431 -95.4670609454143744 33.0181886746987701
-73014 -98.1525059748547761 35.5770682817536894
-77039 -95.3369051358531294 29.9088202943230286
-54619 -90.7803328250938364 43.768177142283534
-67227 -97.4918715770833728 37.6292983708332969
-63438 -91.6893533569923136 39.9627899107519511
-74852 -97.0323969317916806 35.1350362653860913
-12510 -73.7603996666666859 41.6724539333333368
-08044 -74.8841469999999987 39.6036830000000037
-77060 -95.3961093454107782 29.9277933162055021
-51049 -95.6612643826219511 42.6321459664634048
-21230 -76.6272379671257937 39.2690295388910471
-45854 -83.9495691896551648 40.7583377206896813
-95380 -120.849128838395274 37.4860542805944519
-50315 -93.6197700618499766 41.5473154442944548
-15737 -78.7523108152173705 40.6081111413043416
-53218 -87.9950270666523693 43.1123416041510765
-63115 -90.2399649739347467 38.6761602673135982
-54651 -90.557134257046684 43.7441802452671595
-93905 -121.612721548036987 36.6836759391955525
-30555 -84.4020107311543626 34.976602954313833
-93928 -121.239187590909069 36.0343040681818181
-34669 -82.6199078176319404 28.3511051548179083
-12751 -74.6685135693950599 41.6840406761566626
-30360 -84.2739048126926775 33.9367174276621455
-49684 -85.6779685500029018 44.7818596151848283
-49943 -88.7706296842105189 46.3524117631579102
-23324 -76.2687189626266644 36.8033987369891946
-66047 -95.3056165449395536 38.919790520252441
-29609 -82.3906819716978447 34.9041714417643618
-92304 -116.153396805941753 34.4618405537294592
-31982 -82.932179000000005 32.9719146666666632
-58457 -109.12809255999997 47.0598405199999945
-32047 -81.9932627500000137 30.7742992499999986
-06801 -73.3970651633931368 41.3797173478098514
-74541 -95.5943142000000137 34.8118940000000023
-77975 -97.0868936538642373 29.5663436551341867
-32567 -86.4609737277919663 30.9314494706862249
-42371 -87.2898017220085762 37.5021663196455037
-92261 -116.418264103448266 33.6585187931034469
-60025 -87.8140947036035868 42.0737822833870183
-89122 -115.044556620005082 36.1096723183449342
-26341 -80.591745064516104 39.0027239838709789
-13865 -75.6430766589196679 42.0623439870711664
-25868 -80.9668669383013508 38.0803842732371365
-60017 -88.3063444999999945 42.4728759999999994
-41718 -85.4164134000000246 37.4739184000000023
-38951 -89.3031048967565511 33.9675260315212739
-50001 -93.4356140014430565 41.3622148737374147
-98037 -122.289270967946123 47.839283798263196
-54001 -92.3880042495044904 45.3250419233987358
-33827 -81.5351388608371792 27.8354708860837938
-48237 -83.1820453731764928 42.4670370947093119
-87562 -105.675262596273257 35.492306878881962
-24165 -80.0425315976048068 36.5909135414730216
-44906 -82.5697299677258911 40.7607069355523493
-04085 -70.6350017573817439 43.7655645167322831
-39157 -90.1459912619152561 32.4218094246481243
-79033 -100.967230450000017 36.3156413999999899
-56253 -94.8853117294252826 44.9605339723787978
-03064 -71.4743830895855723 42.7760654992200955
-01562 -71.9889633563301885 42.2467468888074791
-82412 -108.51486487528868 44.7954987598152243
-32455 -85.9612730516354304 30.6982256922676839
-68376 -95.9429343306079119 40.1690424557996977
-34610 -82.5366213214818885 28.3831757914550842
-73372 -98.5721741666666702 35.7251378333333278
-37705 -84.0099304891685534 36.2216494583418083
-95465 -122.983498461479982 38.4047739433217643
-55315 -93.6648828596445497 44.7353013012312957
-28579 -76.5174915263974924 34.7630479673912731
-15211 -80.0129213473472163 40.4294963523524302
-54520 -88.9120191854666189 45.5369881211546996
-36084 -85.4257989122807118 32.2730106491227957
-46172 -86.8179024540867914 39.8283396220988593
-12456 -74.148070622047257 42.0793981496062983
-98278 -122.677732823529425 48.3376625882352968
-03785 -71.9613350836666541 44.1218666640001445
-29704 -80.9318338604267069 34.8326017567049959
-46183 -86.282315883333311 39.6537368833333588
-65537 -92.7002315714285743 37.9049289999999957
-08322 -75.0466833718320174 39.6151742249952932
-91778 -118.107521533333326 34.0969239999999942
-61314 -89.6760871346983777 41.3114760298132282
-36301 -85.3999141481702821 31.1743541747003441
-38015 -89.8136687966306368 35.5499511873816729
-04662 -68.2916815507086312 44.2971349591059038
-92467 -90.6705704999999966 35.8414484999999985
-28402 -77.9220261578947486 34.2595372368420996
-33854 -81.4103654758620507 27.8564527310344836
-46974 -85.9319179458369149 40.9462028728738829
-01109 -72.5477609149907323 42.1172958869359064
-87549 -106.073277328204995 36.2153186730769292
-54247 -87.7922835950460865 44.188765507609773
-72835 -93.3469961663579255 35.2936602867728624
-63855 -90.0851183843284673 36.0523436119403158
-67464 -97.9179504945653179 38.5883878947629171
-96029 -122.455521131790746 39.9584794175050604
-33922 -82.1360095917132469 26.6604129385475339
-75631 -94.4482400437080827 32.2460889333197898
-60007 -88.0065740097417262 42.0063706444764193
-80101 -104.09389574231372 39.416317647249187
-18843 -75.8798738787878904 41.793113696969705
-32614 -82.4036581428571537 29.494295285714287
-55780 -92.6947799793005061 46.6917642019985664
-50707 -92.2804868063325472 42.4753155551799964
-94609 -122.263338393814664 37.835888835824754
-31771 -83.6563938148272541 31.2465833505415915
-04773 -68.2355938181817976 47.2451752610121289
-37614 -82.364527808219151 36.3012752876712383
-22037 -77.2270525263157879 38.8614879473684312
-99198 -117.775331000000008 48.1833734000000007
-90241 -118.130754708360641 33.940691143206962
-47865 -87.3895903829786818 39.0461513723404252
-59405 -111.26137086249129 47.443589543066544
-73702 -97.8898555000000101 36.3741190000000003
-97344 -123.442591845436297 44.8666644783477153
-76110 -97.3383632538544106 32.7074915446789518
-63551 -92.7371699357799315 40.4885385963302724
-68429 -97.3400965833333203 40.0569439736842128
-13491 -75.174323508668607 42.8626189255607315
-06334 -72.1725524377653187 41.5424322291371837
-43109 -82.8307568529411782 39.9167977941176417
-38503 -85.5057809999999989 36.1633824999999973
-56482 -95.1300736577009474 46.4521386531735345
-14867 -76.5983283889704012 42.3532807171033525
-15466 -79.8962771941392305 40.0758049267399201
-25641 -81.8102055000000092 37.092777500000004
-25309 -81.7441661838850138 38.3202040481202246
-94105 -122.395583733443829 37.788909541390737
-33491 -80.0752381666666508 26.7102186666666661
-67961 -101.353041500000003 38.4819894999999974
-41236 -82.7717489999999998 37.9028940000000034
-24597 -79.1099614004986762 36.7856237332977329
-43028 -82.3166172104025833 40.4206281742819087
-30329 -84.3230051976023844 33.8250081554362083
-05856 -69.126467571428563 44.1805612857142833
-29598 -78.8349864999999994 33.746975291666665
-33558 -82.5155949912983715 28.1564497136881968
-13065 -76.8145057391304391 42.8156987391304327
-16204 -79.5441355000000101 40.8839112500000041
-77706 -94.1658634284612219 30.0950091867098095
-01072 -72.426356751533703 42.4680811775307134
-87302 -108.761784999999989 35.3658107500000014
-57461 -98.4251797737540386 45.1523257508306202
-44005 -80.7429755 41.8802400000000006
-38076 -89.4272648376337429 35.1436954348647461
-12781 -74.4627002972972747 41.6262236756756892
-57450 -99.8307947824822719 45.2542205616436419
-83842 -116.58366241736249 47.460476696160292
-05773 -73.002082209389684 43.4487421552432735
-90034 -118.398651785476517 34.0324174676552715
-15701 -79.1625175106777448 40.6308607126023915
-46771 -85.223522640000013 41.6396362800000119
-68066 -96.6255124219706403 41.2008442437145561
-15365 -80.3783828461538263 40.159141435897439
-47842 -87.4428279459845612 39.6715334353964195
-15665 -79.665670994296633 40.3357938222432821
-37306 -86.2330059594521998 35.1273304698621516
-22968 -78.4035047529322924 38.2371521966808743
-83425 -112.22792704796494 43.917362127907019
-15221 -79.8674668335562501 40.4362102472136087
-50643 -92.4635695157648172 42.383959069676834
-44669 -81.1588132421052251 40.7904890509338216
-65240 -92.1296131305970789 39.209739152245831
-43607 -83.6032476085806309 41.6506531854091264
-53943 -90.0374645957447086 43.4399210372340505
-50010 -93.6176980867911084 42.0376765126966916
-70871 -96.5240521999999999 34.6476430000000022
-92780 -117.818342658168731 33.7383647740045376
-72040 -91.5173173123553028 34.9758782538610475
-70453 -90.7731806921577657 30.692418835849967
-61758 -88.9335202000000038 40.6056365999999969
-41135 -83.2881449969325587 38.3661642263803628
-85610 -109.794018249635258 31.7350299161073934
-83337 -115.194236062499982 43.2584525624999898
-27556 -78.321266878571393 36.4024520750000136
-26273 -79.9772188690648278 38.6787919956834472
-78343 -97.7523322236690291 27.6063840265054523
-78258 -98.5006973515336881 29.635478197710821
-55043 -92.7715609876149188 44.9395851776363173
-59717 -111.049572749999996 45.6815856562500073
-61957 -88.5905770719505767 39.4353580534008259
-68404 -96.7549543626901709 40.622432495596442
-55076 -93.0383052822794809 44.8399249365221451
-74521 -95.1595631746031927 34.6567812063492084
-31783 -83.4572933632870786 31.7531877107160128
-75103 -95.861483747683323 32.5227751568604972
-33028 -80.347346809193084 26.0187064561605972
-29752 -78.7502338333333398 33.7977792499999978
-99739 -162.263860826086955 64.618247652173892
-73119 -97.5623308922618833 35.4221835057715637
-57117 -96.7564475000000073 43.5331350000000015
-37171 -87.3080749428936116 36.3568491960659372
-37730 -83.9760659419524131 36.5586933060686263
-71253 -91.3115493195266481 32.9949851834319574
-95968 -121.548785313993079 39.4356685802048403
-41555 -82.2608523081395617 37.5457176591570061
-17104 -76.8578506686374681 40.2596817945837699
-33150 -80.2065248718998873 25.8511867474403481
-49329 -85.4879338419107171 43.4086889845040815
-18251 -76.0771520581395322 41.0056766627906839
-72624 -93.3540983575419432 36.1192350279329588
-03056 -83.3910143333333451 34.9032924999999992
-64651 -93.1706400801393784 39.7787635696863546
-68704 -96.8410499999999956 42.2788740000000018
-65258 -92.1350795956284401 39.5012148729508539
-21587 -82.0320629999999937 38.7601074000000025
-34654 -82.6309853352162804 28.2978110678642807
-61802 -88.1768016947215187 40.1157138661095516
-50833 -94.7069447832938351 40.6681713698164273
-65351 -93.3997172975177676 38.9750513609928717
-83706 -116.186755513544014 43.5864965787840148
-23134 -81.7417389999999955 29.3726177222222233
-10158 -73.9755145000000027 40.7491330000000005
-98284 -122.201228972625927 48.5444221102876767
-65757 -93.1113660028664611 37.280043703547129
-48554 -83.794644500000004 42.9725415000000055
-24715 -81.3226892368757746 37.3373539974391235
-57791 -102.468414843509635 44.2813984459520711
-58281 -98.5936672783504093 48.8658604690721958
-73082 -97.9338023671660238 34.7806040987243392
-32096 -82.7523478030045965 30.350640492367333
-04087 -70.7402752743504522 43.5564478282468102
-37303 -84.6289913348151828 35.4373850732943509
-99179 -117.093333574380125 46.5270441394628307
-50616 -92.6770556889810422 43.072234147064151
-45623 -82.2701899996342831 38.6416259353657807
-75904 -94.7819025644891866 31.3453896551267448
-35803 -86.5469801086693593 34.6086834267960057
-38849 -88.6838807866461281 34.4502651506522639
-64028 -94.8267620813008136 39.2875689918699322
-08086 -75.1872345677277565 39.8402398099251158
-74114 -95.9457379288694625 36.1268579332716016
-95842 -121.347405436903287 38.6891454339872851
-29471 -80.6616147181301812 33.191108146297104
-94705 -122.241347135817165 37.8582504756180711
-47126 -85.7726526638747657 38.5445832208666204
-10984 -74.0177542334494944 41.2051019782230199
-22511 -76.4991804112764129 37.985499486336991
-61046 -89.8161859321114946 42.1019812205934088
-48193 -83.2104013356365613 42.1725986375233219
-21220 -76.4112726092152172 39.3415442717671269
-95046 -121.60129788431702 37.0905111053374696
-14858 -77.1236968308560336 42.0306802190844664
-28167 -81.9864579635196549 35.4981962124736938
-78646 -97.7772594999999995 29.9634762500000029
-90265 -118.785108427768705 34.0561467800624911
-45723 -81.8253664078862784 39.2235412464793143
-39851 -85.0288020827477737 31.6522621038250449
-21830 -75.7020668410216473 38.4057821155753984
-52768 -90.3860850841929562 41.6898834242674212
-83635 -116.030079787878776 44.7176773030302996
-73642 -99.8925900521326753 35.8119130947867319
-47348 -85.3529249504661607 40.4497137423861659
-65262 -91.9274653143556577 38.9463043014319936
-00795 -66.5004247985046817 18.0342986190815431
-49802 -88.0842928685323869 45.8002135307516198
-13365 -74.8521877631802113 43.0620720532475829
-50449 -93.5679488185529635 42.9983456563594117
-43469 -83.3656342827639065 41.4565664952342843
-78874 -99.7489646428571461 29.705431499999996
-12169 -73.4416959710144681 42.5791603888888659
-29669 -82.4278908260974248 34.6459314465489143
-65254 -92.8372661478837529 39.1967047412036038
-78730 -97.832159168262848 30.3631215331455167
-84767 -113.009126008026996 37.1783367531772058
-59460 -110.501724615999876 48.0509616540952038
-50309 -93.6186156193695354 41.585929882507493
-13642 -75.4696835256298755 44.3336977075864596
-31098 -83.5943794914689704 32.6058406163129746
-55533 -90.142776000000012 42.9818163333333345
-27204 -79.8310346666666675 35.6275584166666661
-29592 -79.4766291382068744 34.2959488186749795
-37073 -86.809616742714411 36.4287423849318088
-01128 -72.4882981155637793 42.0960671388629208
-42084 -88.245098750000011 37.4336404999999957
-95975 -121.155679821882742 39.2259433890738833
-63377 -91.0909266103863899 39.1065564934758427
-26041 -80.7125071385704871 39.9066539290902327
-14519 -77.3105676871985423 43.2340304468372878
-80901 -104.952495249999984 38.5923758333333353
-20317 -76.9805702285714375 38.9395553999999962
-53044 -87.7864927947053104 43.7410800534465452
-34689 -82.7595832237726512 28.1477397149546391
-98373 -122.325148621417881 47.1470907104071131
-24571 -79.3751564411397368 37.1338617101664497
-66935 -97.6306331367713227 39.8225723264574469
-78067 -99.434111445744648 27.0533226297872176
-24954 -80.0454198675899988 38.2308226226918961
-47574 -86.5699312732475335 37.9452990608011618
-96860 -157.939305574359054 21.3542823743589771
-65711 -92.2878209956680422 37.1878241457797856
-73432 -96.4275309810756056 34.2557472260956217
-78238 -98.6161479691425455 29.4804758965262401
-53593 -89.5661906211370962 43.0066397965368736
-49343 -85.5185920299105362 43.2948028674107519
-63450 -92.1479021920529675 39.6827867152318063
-35981 -85.6431096372999718 34.7242520753590753
-71043 -93.8818377443945309 32.8977783754003497
-91706 -117.968957377849776 34.0860926990115942
-13489 -75.5352738317184134 43.4660244023456528
-40963 -83.9559845555555739 36.6962847407407367
-68632 -97.1165922641619659 41.2533210791457989
-99540 -149.534087930711536 60.989236599250944
-01011 -72.9685659787179759 42.296784347435846
-98241 -121.574382617396822 48.2795638707847132
-90250 -118.349721481637957 33.9135828608876508
-54127 -88.2689950000000039 44.7953784999999982
-45769 -82.0386361646893363 39.0973788085321559
-49768 -85.1001102621971768 46.6466991843152172
-10977 -74.0474226052395181 41.1180896739485959
-00695 -66.1112705000000034 18.4274185000000017
-84086 -111.159391908172495 41.4815665941230804
-85222 -111.732752190082763 32.8688435873043261
-94025 -122.182853280749413 37.4497753238738724
-65042 -92.5927731428571406 38.4839792857142839
-43162 -83.296594807778007 39.9426510723623238
-08318 -75.1672005492452087 39.5544993728490866
-98592 -123.080258173739082 47.3361088020108127
-43548 -84.1642283726041001 41.1859131407199897
-76054 -97.1771152247077623 32.8628305856327003
-40801 -83.2452911662869894 36.8599823621867841
-27891 -77.7598127755987605 36.1040753661011138
-77659 -94.3857629360326058 30.1519583785300505
-15909 -78.869968799117089 40.3913946851851264
-13314 -75.3283605310077178 42.8123681608527207
-38577 -85.0185127442600361 36.5682629627550781
-95817 -121.458803594514293 38.5505397673496333
-52233 -91.6872464833837455 42.0457634302977183
-37853 -83.9214792699536218 35.8349520351586008
-16501 -80.0866241189759336 42.1233189096385345
-83856 -116.883079884763035 48.2500710567400333
-30449 -81.5281074776119539 32.5266604776119266
-83609 -116.327210999999991 43.5305569999999946
-77546 -95.1915202291417302 29.5154803192482085
-32208 -81.6867178229277897 30.3951547261352282
-31419 -81.2133424575267782 31.9920099807629654
-89146 -115.225231890500908 36.1415619146279496
-28683 -80.9141258030347501 36.3786777060411453
-41817 -82.9049091455399179 37.3604516502348361
-47335 -85.207796244444495 39.8117091333333022
-49967 -89.0077141515870665 46.4621436371387873
-14009 -78.3934651260601925 42.5733931085195749
-23509 -76.2618351644023562 36.8799612801177474
-29686 -83.0391304267412664 34.892466578849259
-97305 -122.957128133510778 44.9915437007862664
-76372 -98.8475878876852789 33.2190795957810465
-86445 -114.390076863787286 35.7476934418604273
-52555 -92.8123709313674112 40.634168683109948
-67107 -97.537244645074793 38.1873199609046949
-59703 -112.540540649999997 46.0322476749999936
-75894 -94.7561927499999967 31.3697482500000007
-55757 -92.9200926842234054 46.5109884848634394
-17214 -77.4677864894158432 39.7313612692633598
-71107 -93.8452966624832072 32.5746880698397518
-43223 -83.0478617029686461 39.9349048582246624
-30628 -83.2237351517633783 34.0377026124687205
-51465 -95.203930727114539 42.0731700261050889
-65281 -92.799407458057118 39.4366475612567839
-32030 -81.7633353333333304 30.1004066666666681
-73520 -97.9661239803921404 34.2416855098039292
-17322 -76.5523999232434988 39.8464431327270532
-33812 -81.9009406640073223 27.9663585953954836
-15086 -80.0873321373092892 40.6606021262135897
-29827 -81.2332993859527477 32.9807848094576244
-84775 -111.38166753780429 38.2947991275476056
-40118 -85.7581081416616229 38.1016809788659359
-99355 -102.824463916666659 33.1859095000000011
-42161 -86.7357886249999979 37.2940797500000016
-12727 -74.9840596901408389 41.6500268450704283
-42223 -87.4491811940411026 36.6369424095203229
-55722 -93.4324276155038689 47.2891725193798393
-24604 -81.5527518750000269 37.2034291640625128
-35421 -86.6796726153845896 31.2263231538461561
-02868 -71.4222876666666622 41.6899054999999947
-80845 -105.593300250000013 40.8050637500000022
-72143 -91.7656309604085294 35.2517589902290993
-71956 -93.1718166932198386 34.6244199093645832
-12441 -74.5016685682772533 42.1516679684874234
-58041 -96.9011903623935638 46.070759080411527
-10932 -74.4662201824324086 41.4799187635135524
-80005 -105.119903951092255 39.8431993231924721
-03106 -71.4430316591355279 43.058622865299526
-91203 -118.26422583800624 34.1530321100726937
-29634 -82.8328930679304705 34.6763165481832587
-46703 -85.0248511614284155 41.6584518763665201
-55111 -93.1953960603112534 44.8837438190661473
-22530 -76.2801081744186433 37.9080140290697898
-68301 -96.5293537501805758 40.4563687362214992
-05853 -71.9761149231616031 44.89386307309546
-60506 -88.3533299497496216 41.7671681768574672
-45320 -84.6654910308632225 39.740509912930861
-04472 -68.6816802023677582 44.5607962489586598
-46001 -85.6643184316586712 40.2508220619159829
-58778 -100.937821824215845 47.7665469285879425
-54816 -91.0763969166666811 46.5022530833333292
-59752 -111.501071421712268 45.9139270656048879
-46356 -87.4167460463519177 41.2860621573505497
-13312 -75.2645850544652291 43.6938721702650099
-93640 -120.413565713360839 36.7377699870484804
-54493 -90.7404432777777856 44.7370781111111171
-30316 -84.3331761748622455 33.7205822028914426
-78633 -97.7481391619425608 30.7178519067366729
-65559 -91.6081314735970125 38.0135345657817112
-86547 -109.479871000000003 36.5137009999999975
-33142 -80.2361126007045442 25.8128407406730993
-36049 -86.2859523276037947 31.7592632593105755
-99704 -149.193920281250001 64.3161237187499921
-75161 -96.1705933423412063 32.7269627290951206
-71034 -93.305315037174708 32.1758782193308477
-01354 -72.5156004760928994 42.6303010252733046
-56000 -95.9181049999999971 45.0428868750000007
-27405 -79.7445837564381605 36.1184421027437139
-80812 -102.88715736202542 39.6589904113924234
-34431 -82.4879971396198357 29.1184693427450298
-86321 -113.147962657863005 34.5681888367346914
-87713 -105.386478367713011 36.1216424304932815
-41051 -84.5477212763708224 38.9448762596437561
-77622 -94.303378894403366 29.8597540813093687
-01566 -72.0779855435122556 42.1092508343002407
-18073 -75.4754971232493972 40.3890367098369225
-78742 -97.674382610921441 30.232803027303774
-91912 -117.090589499999993 32.6383849999999995
-52053 -90.9688692778617565 42.6222985990309482
-39201 -90.1855259032078465 32.2942754142699329
-32211 -81.5852703217392019 30.334601121640258
-42501 -84.4957909645191876 37.0702460497080537
-85329 -112.288371442196535 33.3991806820809245
-64127 -94.5392714938018059 39.0886212564291498
-74850 -96.1077664864864687 35.0953269385749493
-83223 -111.401649426315828 42.1865960631579071
-92802 -117.926769316712694 33.8081604971689487
-49654 -85.7538026976203298 45.0261935043528325
-79836 -106.208124846089035 31.5672711578358083
-76067 -98.1088532262397592 32.8074042995280379
-22043 -77.1960415371480195 38.9016161418769713
-49085 -86.4714514620851844 42.0635957154146709
-43465 -83.5018390763147949 41.5726957461447313
-72465 -90.8629042604166415 35.9780808749999963
-72936 -94.246483909232083 35.1994212414902137
-58311 -98.6024446697248038 48.6472135963302605
-24563 -79.2901445260474134 37.0715525904143632
-94560 -122.033214095951649 37.5372348666570304
-73090 -97.9186831326397424 35.405481296488901
-03855 -71.1456542516911838 43.4613173199364553
-49814 -87.9014272797823253 46.4913880483962672
-39115 -90.5823891910112309 33.0528310674157453
-45319 -83.9447017540322662 39.9187850604838701
-18427 -75.3870920898203707 41.4114198862275558
-23354 -75.9040155085713053 37.4737447295238297
-23827 -77.2033787501652711 36.6114105481383945
-18231 -76.005357456521736 40.9007713423913017
-30251 -84.7062399827081975 33.1886927885807594
-53524 -93.9448375000000055 43.7605130000000031
-76084 -97.0911603924049444 32.4323308846468663
-68831 -98.5582768470421087 41.1178333202660653
-15685 -79.5197267096774141 40.3254054838709592
-06083 -72.5127789999999948 42.0147419999999983
-52620 -91.7979546091900716 40.6954161621214539
-32562 -87.1844618888888903 30.3591432222222259
-97232 -122.640617807932045 45.5287568317735278
-59820 -114.51378089639941 46.9759727070848641
-15474 -79.8989344334022888 39.7466098416148341
-15332 -79.9883296639479369 40.2476909297552723
-85392 -112.311444820532415 33.4795239133080571
-18567 -75.910369555555576 41.4594039999999922
-82215 -104.729513268116094 42.3354020434782683
-66869 -96.5252063215614413 38.4108734144981412
-55733 -92.3605957237853517 46.7134798118377574
-37737 -84.1209262851775179 35.7594507457381425
-23844 -77.3404891956682263 36.6823261310572448
-52232 -92.3351484885204741 41.8034357385204203
-78002 -98.7376792737160116 29.2820535579052859
-24647 -81.8702409333333065 37.1326198666666727
-92544 -116.916968842964891 33.6903448729259765
-31086 -83.7585576857143081 33.0359571428571499
-25007 -81.4260528975069491 37.82686398060941
-36013 -86.0029376848692522 32.2999897042092812
-98602 -121.28413486959299 45.8448507275661896
-13483 -75.8216126496211587 43.4020484280302981
-49891 -86.9905071111110999 46.2006886666666645
-99013 -117.836477405723926 47.8966566969696785
-80423 -106.597970144736905 39.9218597845394925
-21287 -76.5994299999999981 39.3002848571428558
-26280 -79.9627066137565947 38.7370735573192135
-90502 -118.293056380452043 33.831312838449108
-80131 -105.0055991239999 39.476002231999999
-06052 -72.8021031191633909 41.6575247642884179
-02332 -70.715084213910913 42.0421966755822325
-65674 -93.6085598039567657 37.782840719938271
-23866 -76.8699346926362779 36.9154916818851504
-01845 -71.0960994508576078 42.6762353244581476
-97141 -123.824687008054354 45.4513575639590215
-24433 -79.4634637588654442 38.4132848042552837
-56952 -85.7565973333333318 40.5731731666666633
-80302 -105.340206169620757 40.0402334644693596
-15205 -80.0846388823417499 40.4364513341078293
-18634 -76.0060469611303517 41.1986049162363273
-28663 -81.3121652766260894 36.5400450443293963
-19006 -75.0596026006038102 40.1313312081689659
-07450 -74.1134795421526178 40.982705607324327
-45434 -84.0359645376942552 39.7181272572295896
-75135 -96.2328703278746787 33.0680818162386956
-75755 -95.0873348680557058 32.6434870767642167
-56567 -95.3777341699647536 46.5375817375546674
-95007 -122.108900791420055 37.1061338210058764
-19805 -75.5861362452452425 39.7443257811814945
-17045 -76.9992974995215604 40.5986403190369884
-68955 -98.5312474329282821 40.596444297408901
-13862 -75.9446882315281329 42.3278676087040751
-78406 -97.5244508719008394 27.7762836590909146
-79241 -101.441703775438569 34.1514509518341782
-48662 -84.4129527839115639 43.4005626876971817
-82712 -104.127041504706042 44.5077680988235471
-17885 -77.3084326105150694 40.8545997832618255
-05633 -73.0216226518518567 43.9960364370370343
-02525 -70.8120210833333346 41.3430447500000042
-31812 -84.4205996111366659 32.6343205899677287
-78636 -98.4049568834689694 30.2836922338849845
-62621 -90.5268657984440352 39.7354812437940481
-33328 -80.2741233343041216 26.0664126404657637
-27708 -78.9343440909091072 35.9990236818181799
-98597 -122.56686966355592 46.8961945433934915
-54703 -91.504647606815567 44.8285650802079019
-35546 -87.569125624097353 33.5984122081236123
-52221 -92.3354241255556047 41.6456141833333149
-18068 -75.5196971111111139 40.4848268888888825
-60959 -88.1972567248372172 40.7853353446778399
-42753 -85.1731954698690146 37.2347285621543165
-68861 -99.2906853010754133 40.7097996155913862
-22556 -77.4953661667518361 38.4798819727288972
-61928 -88.4974490266496758 39.4500812664975129
-67114 -97.318648927434694 38.0507924365795986
-92564 -117.237476600000022 33.5763781333333284
-39638 -90.9856452797061053 31.218250845460652
-29037 -81.8854787260669781 34.1903435857836584
-66528 -95.5166948318339024 38.5940118408304826
-97442 -123.397059518263546 42.7600221168159536
-46312 -87.4610653940950158 41.6364827829221085
-11103 -73.9111641666666515 40.7628543333333369
-49421 -86.0706701514570796 43.5967204449752543
-35947 -86.2738356666666704 34.4662039999999976
-87119 -106.665028500000005 35.1635810000000006
-87613 -105.699069999999992 36.5222557499999994
-98811 -120.36125455172413 47.7413294741378991
-42104 -86.4487062939044932 36.9048836061044483
-22827 -78.609637689969432 38.4087953082793661
-60012 -88.3101990659836957 42.2694098935368388
-65360 -93.5195381741288116 38.5311525864660993
-85914 -109.639453200000005 34.4412901999999974
-22811 -78.9707947126709371 38.7821950529447435
-33801 -81.9129231036532417 28.0434108319927091
-45836 -83.6399535909439749 40.7890558234842402
-62326 -90.8061344922924434 40.4238971793470085
-61747 -89.430372234258428 40.4197776096687917
-28260 -98.4503899999999987 29.7047515000000004
-71945 -94.3727208715979486 34.494378120197986
-80914 -104.7039166923077 38.8252960384615449
-38722 -90.8551634088785249 33.2818318971962555
-03812 -71.2692985771169703 44.0867429168346874
-61480 -90.9136573027523411 40.7468565948012085
-28790 -82.4613396045282627 35.2105365509055517
-25047 -81.8046810341462987 37.9398753219512272
-55612 -90.6614585841761595 47.7192079154867983
-98274 -122.253946285338273 48.3733861426424809
-96337 -113.039455285714297 35.3533521428571476
-51001 -96.5508075230019926 42.8434460957134462
-04746 -68.1175381654020384 47.2677463110774241
-66441 -96.8465691022833397 39.0202847987931776
-02108 -71.0641438766355265 42.3577971906541464
-13478 -75.5799090116569516 43.1457822905911712
-66901 -97.6431968821641334 39.5442769384700128
-07023 -74.3855317519485482 40.6424773801008072
-98229 -122.407093352079272 48.7108107195333631
-08053 -74.9016281125666126 39.87715611267393
-26808 -78.4429717918551717 39.2127452598577406
-47180 -86.3485459999999989 38.27403975
-15065 -79.7266599657910575 40.6380690813469982
-84139 -111.886797000000001 40.7670930000000027
-59486 -112.284771236934674 48.3054051736180341
-95573 -123.634710207209807 40.932332806119355
-92393 -117.394522499999979 34.493709535714288
-83466 -114.034823764142558 45.4126509469102899
-78963 -97.0282800671868557 29.9241177789336597
-25636 -82.0032910000000186 37.8203138749999965
-67131 -96.9549932072072949 37.4338977891891602
-45064 -84.6082809317986175 39.5623333185612012
-07439 -74.5981761738382261 41.0775304604131009
-27247 -79.7595748469388042 35.5332563571428821
-36009 -86.2907067486917612 31.5814160272088884
-68858 -99.375327423671763 40.9621371111111401
-78850 -99.3006347544482821 29.3304032626334994
-02174 -71.1695877826087013 42.4187893478260847
-97231 -122.837898518411706 45.627774297813481
-61878 -88.1689008982188369 40.2399907022900862
-02363 -71.0301274999999919 42.1709949999999978
-20121 -77.4447461047561632 38.8239260252860419
-99503 -149.89277303281861 61.1888666210646122
-29511 -79.1245430861746968 33.9804969796906065
-22066 -77.3058955883322056 39.0057586390643323
-21132 -76.4255610489331474 39.6955596620199387
-11367 -73.8158384651162578 40.728966744186053
-99656 -157.337731066666663 61.7825342666666515
-61322 -89.3046457841059862 41.3263491721853811
-58077 -96.9931525181700067 46.5229779331575486
-37690 -82.5555249240795206 36.2508756940337946
-33961 -81.9550873999999965 26.4648721000000009
-84645 -111.849041503272034 39.8232128534031062
-32809 -81.3865251293440082 28.463617008078117
-50837 -94.675909059073021 41.2351204980417023
-48655 -84.1585608162332619 43.2896790098747317
-29073 -81.222776136585793 33.9198244175025181
-80241 -104.950270385297983 39.9308035713329659
-59419 -112.378684924922311 48.021504638827281
-62028 -90.3567642565322444 38.9627721781472331
-56159 -94.9352795662492497 43.9589318286830419
-77070 -95.578341985744558 29.9778960315493173
-22567 -77.9222136998332644 38.2397279409478585
-20736 -76.6172155552521872 38.6946734703014101
-11790 -73.1251019223529539 40.9030807839447803
-91505 -118.344974755399079 34.1702998636052513
-62924 -89.2090640349355937 37.8178082768584503
-61841 -87.8129256330936698 40.0487197158273176
-52553 -92.6422260418027292 41.1480645902460793
-94804 -122.336860809461584 37.924409958901883
-52576 -92.1088599705263107 41.2101200568420438
-07885 -74.5830016459459415 40.9213383016630203
-39501 -89.0984698811649025 30.3817494354786675
-22570 -76.6034837272727458 37.9471514909090999
-61101 -89.1237925909665307 42.30092221226856
-50536 -94.695969394821347 43.1155037100736251
-01742 -71.371640727810842 42.4576962422316413
-03896 -71.2233950304877652 43.6073063658536668
-84184 -111.95790375 40.6730235833333253
-61027 -89.7608628888888802 42.3335220370370422
-59535 -109.362367512934256 48.0749476977088861
-12956 -73.5150245183099571 44.0831200685446376
-98991 -120.315307500000003 46.429404500000004
-33056 -80.2483776212491478 25.9476618761340205
-13846 -75.0533434637826673 42.3566462494969542
-78591 -98.5427555667807979 26.7040888989725893
-80927 -104.676359374823193 38.9288338359264543
-50682 -91.7080901611815733 42.453149353867758
-76051 -97.0952031523119814 32.9327758580167966
-48473 -83.8138153686497276 42.9495864188520144
-13118 -76.3955196926988123 42.7552405097523263
-15146 -79.7614648913955762 40.428272659308341
-74574 -95.2615867241379135 34.6695975862068764
-65704 -92.5858215906064004 37.1401027194529618
-71932 -94.0906871470588158 34.5467893529411754
-74001 -96.0611789655172998 36.4744024344827551
-60133 -88.1448794785124647 41.9859844039008223
-19731 -75.5790336642336058 39.5148851678832074
-74465 -94.9273267692307599 35.917408769230768
-72111 -92.1362638565636161 35.2380506475755837
-20004 -77.0239373141890411 38.893220361486506
-33326 -80.3775228539282267 26.111022986816554
-00735 -65.6615342034757958 18.2574742157856313
-59034 -107.609104773907163 45.7313434472094116
-24202 -82.1980238246619308 36.6517209237987132
-71663 -91.4809913624917641 33.2453828893307204
-92341 -117.078491095061239 34.2405375811363513
-98040 -122.224334283532201 47.5604283487956039
-25039 -81.4254437059858986 38.2278640915493
-94930 -122.598033107521076 37.9879358451253708
-41861 -82.8191040854197098 37.398056468335831
-52588 -92.1609272333769098 40.8698950697522463
-71279 -91.8597140431034944 32.4691572327586115
-55779 -92.4228233914303843 46.9004487549789673
-97222 -122.616096140749534 45.4420663168035972
-38324 -88.403582863636359 35.8651018484848692
-62360 -91.2657457862709123 39.824003626345025
-77463 -95.7706335000000024 29.1058099999999982
-83214 -112.25277420023825 42.548038117997649
-76682 -96.9167124238698108 31.4678518108274154
-68531 -96.7114420956521457 40.8976213652173826
-54829 -92.0401236890394898 45.5535692181923721
-06355 -71.9771076895101629 41.3650579992060159
-12473 -74.0338857549140954 42.2636931142506498
-55814 -92.2066595000000007 46.837313800000004
-36206 -85.8322580968261235 33.723350685683755
-95685 -120.753736411182643 38.4209993486236954
-49819 -87.495361747474746 46.0616200606060673
-56639 -93.503588012661794 47.8521084364095586
-18088 -75.5566261076735799 40.7617902681225033
-07070 -74.1112813608247905 40.8277103406357043
-08030 -75.1157790837454797 39.8907325265760022
-68347 -96.4317440729029158 40.805116307922809
-43010 -83.6204868474575989 40.0003886949152445
-74402 -95.3425912500000123 35.7165906999999976
-32602 -82.3194434666666552 29.6317522000000011
-42326 -87.0208865109034093 37.1946411121495615
-84407 -112.298284166666647 40.6360711666666674
-45835 -83.6953372965642046 40.7647385027124827
-42058 -88.474475055641733 37.0525903697627683
-06090 -72.85811702340186 41.9519584948630211
-63782 -90.0272168596491014 37.0978691447368476
-57770 -102.561345712121195 43.0332719898990064
-49341 -85.515287386246257 43.1206610824280219
-18624 -75.6048777356040773 41.0600406551966159
-78737 -97.9668781172424019 30.1912749353402035
-82833 -107.024826141342658 44.6255074640754401
-84102 -111.864569690528342 40.7601352653954336
-23333 -81.9219453939393816 38.641163848484851
-64151 -94.6329958878668975 39.2156110206390665
-69217 -99.6985134845638044 42.5222886348993399
-31840 -84.8887394999999998 32.6320782499999993
-98595 -124.109302784565983 46.8806612754555374
-61427 -90.1865093747004778 40.5009201198220765
-47665 -87.7082868282756891 38.2714817993102798
-77021 -95.356307508097089 29.6974262534873148
-43746 -82.1732331874184752 39.9691723727485311
-51549 -95.4489383209767652 41.1978050130833608
-81024 -104.720238122641362 37.2185881886792416
-17534 -76.1067356521738958 40.0371658695652144
-12123 -73.6057421903922489 42.5257209457165146
-20816 -77.1154338719984764 38.9588332992274431
-79240 -100.773797257142832 34.898001428571412
-87719 -105.113681142857132 36.5563377142857107
-85264 -111.645862959475053 33.6329063443900793
-53007 -88.069901428070267 43.1070700128654991
-65620 -92.9614727078723035 37.0197565953258803
-55313 -93.8591402316697838 45.1753377588442575
-57785 -103.44592890063592 44.3959523607644897
-50168 -93.2702198808510872 41.7777306762918101
-27602 -78.6406010000000038 35.7725840000000019
-48733 -83.6004802065913566 43.543286784554887
-24139 -79.4732140346069826 37.0036811625037672
-66769 -94.8924878944766732 37.8455674212695286
-27524 -78.41291362793838 35.4122803903799763
-99111 -117.37975267158852 46.870805659368699
-46792 -85.436966071686129 40.6871416584298942
-61847 -88.0163583272589278 40.3035514320425463
-16725 -78.7538411674008927 41.8636075022026475
-15001 -80.2987863109446778 40.5984934257189565
-29728 -80.4010992118056294 34.7733559224035815
-87125 -106.76002986666667 35.1126501999999974
-29678 -82.9450600350009921 34.6463776005847492
-07624 -73.9565732793692234 40.9718202117798072
-75479 -96.3403948489332009 33.6189775971550162
-08948 -119.643364571428577 39.2669241428571425
-10535 -73.7964215172413702 41.3370612695924393
-85251 -111.919867056373548 33.4950583953054633
-67353 -96.3118201256408923 37.3366023346154066
-28395 -78.7155538487845803 35.1335258238073465
-78842 -100.945672105263142 29.502162236842107
-25617 -81.8008781099744056 37.7316911432224913
-72183 -92.2184040500000037 34.6021920000000094
-21520 -79.3079532863561241 39.6357660143417263
-55932 -92.2982573720081234 44.1269298892495669
-07462 -74.5078200774877359 41.1915124090221738
-71964 -93.2359312819886554 34.4270918626246214
-47553 -86.9074408264040414 38.6651194638947899
-27827 -77.5126478644067731 35.6984350847457748
-85370 -120.258534999999995 38.0323285000000055
-76628 -96.9678240086206813 32.0430097241379173
-35115 -86.8611649119682596 33.1119212156598053
-50846 -94.5624184643619259 41.3092956799378968
-79066 -100.956312400000016 35.5008323999999931
-67737 -100.471555017857128 39.1334200928572145
-03449 -71.9908608759152173 42.976712338579766
-75250 -96.7689960000000013 32.9286364999999961
-92263 -116.397545692307688 33.8045417692307737
-45885 -84.3953398965105066 40.5608721127893048
-18972 -75.1232239142476885 40.5369748700367509
-98336 -122.121233928167342 46.5257051985294794
-32763 -81.3019832509429818 28.9451960123832706
-31510 -82.4548092859658226 31.5447832830279395
-51546 -95.7797164546798712 41.6415042827587598
-42458 -87.4344238640088065 37.8562704063353976
-37387 -85.7372704772176917 35.2724625742387943
-54828 -91.2701072175731412 45.8609742451883022
-66509 -95.7463364873282643 39.338907674149155
-74604 -97.0215988192149723 36.7129747098345192
-29461 -80.0215191848181036 33.1609156765417197
-10458 -73.8889855647306462 40.8623901063680606
-44074 -82.2288644176991852 41.2866395805310091
-45401 -84.1800523333333359 39.7402910000000062
-98220 -122.194627988445276 48.6849537647058384
-24017 -79.9898681559316174 37.2939018579525126
-35062 -87.0202141308273411 33.7338759433445219
-80916 -104.740076474822501 38.8064714176466055
-08701 -74.2070444336762876 40.0784108271081436
-12019 -73.8482245801112924 42.9235171848805663
-50147 -93.5358229814815019 40.6031459409171021
-47050 -89.1960420000000056 36.5685754999999943
-74084 -96.3459300756648105 36.546631938650286
-53946 -89.0076033154033581 43.712108942542784
-81045 -103.165699294254523 38.4896444549689321
-79312 -102.397763044763579 34.0214916148648641
-59403 -111.295304759999979 47.5188319999999962
-08530 -74.9149824696042401 40.3718555820723424
-45850 -83.9282815350134257 40.7131419759522188
-04666 -67.1995162884084891 44.9671552852299357
-13204 -76.1756049347543325 43.0487151478903769
-94005 -122.404056140243711 37.684029437740719
-32615 -82.496576109187103 29.7919624536722942
-21840 -75.8991161379780834 38.267113297814177
-04660 -68.3394800970891794 44.3480434077019225
-25243 -81.4822291296663792 38.6891691768300561
-19736 -75.6616282469135655 39.8018085185185342
-98531 -122.958182821529192 46.7340752421023566
-05363 -72.871781583025026 42.8837959860439071
-35420 -86.5288949999999915 31.347650999999999
-07013 -74.172663561095419 40.8692808382398951
-24171 -80.2400708142984342 36.6573412507366996
-14650 -77.6196669999999926 43.1614620000000002
-95310 -120.388507740654873 38.04365673420984
-17960 -75.9527593330548285 40.702361127508432
-73409 -97.2407545000000084 35.5670669999999944
-34449 -82.6563445039832345 29.0497551002810752
-07604 -74.073801316111485 40.8620857593474511
-96118 -120.259236924141504 39.6658695320348968
-54669 -91.0896831852755611 43.8994638044855421
-95589 -123.999467130703948 40.0654955764099441
-90089 -118.283085453488383 34.0229454011628079
-91763 -117.697568556112586 34.0710218976686647
-37326 -84.3860976576453936 35.0352742760487601
-24316 -81.6597205159705908 36.9500831572481658
-41801 -93.570265666666657 33.5111589999999993
-67547 -99.4151212012229877 37.9228713429683495
-20609 -76.7527565670434768 38.2705600258481908
-18953 -75.1582388333333142 40.5215822187500052
-24464 -79.1173859446977161 37.8595335444698051
-91462 -116.393887000000007 32.700539500000005
-87130 -106.73948213333334 34.8369552666666635
-62530 -89.6508365916483001 39.5701786821978061
-01105 -72.5781269976360051 42.1009633607565803
-60949 -88.1127077897489102 40.3722916433054237
-62825 -89.0689328805970177 37.996476470149247
-37806 -83.7366565394946747 36.0822092732558843
-98115 -122.296131161495808 47.6849760186383023
-55442 -93.4294814594069436 45.0463613120131683
-35016 -86.4945791295366746 34.3309835729317712
-83725 -116.204146699999981 43.6028550000000052
-41654 -82.6399801428571692 37.5689848928571521
-97388 -124.029070982928559 44.888027946158843
-05743 -73.3021657698337634 43.669405383610183
-52645 -91.3906029747958257 40.9165884347723861
-96079 -122.34875319999999 40.6975828500000105
-75556 -94.05847588612572 33.14909130431937
-23876 -77.8307459709678113 36.9538627383512477
-46011 -85.7412747814563119 40.1172709307034978
-48821 -84.6447137642703069 42.6493027451404956
-72721 -93.8011963714837123 35.8341120131021214
-81626 -108.036233035087704 40.6183898333333104
-26202 -80.6143479098901139 38.2265363875457709
-59338 -105.643154763819155 46.5721345829145861
-77240 -95.8439929999999976 30.0255137999999988
-36545 -87.8778865982938981 31.546355274104755
-29902 -80.6951226129911561 32.4198519046582589
-95341 -120.476025051136105 37.2748754731266274
-02368 -71.0509241414540327 42.1736369289783823
-16238 -79.5209498186813022 40.7868864560439803
-49706 -84.7909977839540261 45.4411764552976507
-83127 -110.972090760920935 42.9509811672455797
-37220 -86.7754416127335304 36.067169166746524
-44084 -80.8720827367348676 41.6612064328290401
-18477 -75.6039935000000014 41.4783834999999996
-81029 -102.48143201107014 37.1007539876998749
-01756 -71.5506264177017357 42.0933365502887256
-89193 -115.127668749999998 36.0097459999999998
-62425 -88.0917648107707691 38.8277528332719442
-73859 -99.274179601827683 36.1417773407310534
-64154 -94.6352248029815541 39.2611737077741907
-77012 -95.2779400795352558 29.7190019722965921
-56171 -94.7406662680954668 43.6675107102381688
-67022 -97.6032668379865385 37.0495485434526302
-98036 -122.279595462178307 47.8106166685105052
-40014 -85.4374615119400715 38.3389760890009512
-37135 -86.6662283398588045 35.9465612454008721
-19145 -75.1817369793355397 39.9227211659237966
-46545 -86.1612164367700615 41.683897755330932
-28512 -76.7836461018697634 34.6984796850418959
-75565 -94.116310869158923 32.9528445451713239
-80110 -104.999835311845445 39.6455181118157398
-01540 -71.8668881897074385 42.1160602211151343
-85188 -87.1369833333333332 33.196521666666662
-38611 -89.6809767126150206 34.8641360915402601
-62807 -88.939923142045302 38.7466631752840698
-08085 -75.3304669813598764 39.7453710499844846
-11705 -73.0549735299947542 40.7447014428794816
-94567 -122.421591229331852 38.6674339170098662
-95242 -121.332898163925051 38.1274655251509245
-39324 -88.7023738731343485 31.5819531865671728
-11211 -73.9514588517396589 40.7123325365607585
-58087 -96.8899643333333387 46.8623770000000022
-23119 -76.2871841602209457 37.4505351314917192
-04740 -67.8601847913042775 46.6412963269565282
-85721 -110.947055074074058 32.2315977407407388
-06907 -73.5204432937657515 41.0982492065490774
-47850 -87.4189724639327181 39.2476839495267456
-82605 -106.400564622222234 42.8156488222222293
-65745 -94.0073443735948047 36.5275277034203256
-27537 -78.3917028498449326 36.3464101307660385
-61350 -88.8500603050358109 41.354119076655401
-14216 -78.859612928018592 42.9489334744582152
-50459 -93.264526976772288 43.4520660663895057
-08502 -74.6468663059569906 40.4475982294676797
-76432 -98.8237957036081127 31.8165238862757889
-60544 -88.1914815528397895 41.6213000674372466
-42262 -87.4222196502490192 36.6703697483997217
-34139 -81.3815251736401279 25.8557365711297145
-02908 -71.4378386438952191 41.8388285537789955
-94928 -122.696434330859844 38.3464534123981338
-34104 -81.7364095243062252 26.1523540782618191
-22834 -78.8704396272168111 38.557137416938069
-93380 -119.097058500000003 35.5660854999999998
-36863 -85.2320426229533155 32.8739462136145875
-57730 -103.635016893948105 43.7383963531477988
-95301 -120.605108598204865 37.3437293442399394
-46514 -85.9724458021245965 41.7134572918183579
-24871 -81.6467883947368307 37.3478138999999985
-80310 -105.260036175000053 40.0023525374999878
-44452 -80.662004019408144 40.9506090693838374
-33027 -80.3429321710311513 25.9832341169620804
-66850 -96.6816157843512514 38.3663858664122088
-21111 -76.593848196260268 39.5776463827568108
-50533 -93.9040847762173456 42.6547674534714716
-64744 -93.9871533210242092 37.8284650544419208
-64497 -94.2160131684587867 39.9162987419353996
-22191 -77.2718678957460412 38.6280676111292607
-32868 -82.2286491999999924 29.4104956000000008
-77663 -94.4327163651068986 30.5220699514732203
-28340 -79.1320622166494303 34.4799215476145022
-97738 -119.104500744706428 43.5557273980642563
-84023 -109.448029624489791 40.9073440285714014
-48110 -83.6625747391304486 42.0165001304347854
-49443 -86.2323765000000009 43.2229765000000015
-44807 -82.8636710109928458 41.0641103682666753
-56572 -96.0533169159509015 46.616024922653061
-76370 -98.9215222868853203 33.4512615532786981
-84031 -110.808277010638392 40.4310557845744754
-36073 -80.5783050000000003 40.3197130000000001
-63452 -91.7746430198309753 40.082764027308194
-74008 -95.8948750287291602 35.9593659752122505
-60447 -88.2876608122430468 41.4670475366430438
-60935 -88.1764893006275656 41.1804777079292919
-66783 -95.7243258448648362 37.8639369081080019
-57361 -98.4251106818181825 42.9914781893939164
-64455 -95.0046609148821659 40.1974987677329096
-28785 -83.015073651199387 35.5825264653387876
-41567 -82.2776814870623241 37.5779799208523002
-34221 -82.5464238677419786 27.5566507644403984
-14778 -78.4757340000000028 42.0761398888888891
-24179 -79.8170674100827853 37.2806734975842105
-06227 -71.8417928000000074 42.0238573999999971
-47465 -87.0507947844474756 39.0375313055934896
-20422 -77.0108960000000025 38.9311004999999994
-62856 -88.8529671757188453 37.9578629073482503
-60044 -87.8579591548197101 42.2844074575568953
-67550 -99.099804434302996 38.1836393473753759
-63390 -91.0448210366839561 38.798491828905405
-21862 -75.2165348235294005 38.3986234823529458
-45711 -81.9274095574446335 39.4204233068136887
-29530 -79.7425543688113123 33.9896834261375176
-77016 -95.3039247754042833 29.858365430648373
-63766 -89.8272297505910586 37.4352448436089915
-85374 -112.401529785796058 33.6464486592883603
-72739 -94.3311656505376703 36.4256821209677852
-94864 -96.6882480000000015 35.493267000000003
-62002 -90.1504699036978252 38.9213485495396441
-45406 -84.239685521418977 39.7832568853127171
-58379 -98.8582433170731605 47.9121910243902605
-76083 -97.7888661499999898 33.0596231500000073
-92567 -117.118588155957298 33.8029236880847748
-48466 -82.818855549626349 43.2732790160085727
-91105 -118.171150974847109 34.1401637729701477
-48437 -83.6205461619047696 43.1117257952380797
-41063 -84.4958061265667197 38.8537036377087759
-55961 -92.467252050232446 43.6115826148838224
-58423 -99.8384668098816945 47.484366362513434
-60157 -88.0613109629629491 41.9779108888888999
-56569 -95.790555394260906 47.0681631823004167
-46405 -87.2602265069616294 41.5702467462870331
-07069 -74.4419477906862284 40.6418414370097594
-52240 -91.5131801004429235 41.6558157134313447
-04943 -69.4981988454890711 44.883919484618076
-58047 -96.8696720350419298 46.7238568184187741
-32448 -85.2240518000963334 30.6926427844827394
-49084 -86.384062818181846 42.1832527272727305
-49546 -85.5393832186324801 42.9280582910674866
-82327 -106.580155000949759 41.936672211775921
-70503 -92.0542492517224815 30.1766815318546833
-57258 -97.9461261317523935 44.9210130079051311
-76549 -97.7913422538103276 31.0499447181169401
-75019 -96.9821074606844746 32.9674146085275481
-54914 -88.4432807586031089 44.2687303450373832
-16875 -77.5691916236893206 40.8413193794173992
-03589 -71.3545337142857221 44.267871142857139
-99371 -118.312938284927768 46.7392834741913248
-50660 -92.6377051559001075 42.5785438708010773
-52353 -91.6996428279790337 41.2965329581169058
-67659 -99.982760822222275 39.3674389037037287
-15050 -80.4347968754159268 40.5625642166358844
-76441 -98.6884055999999816 32.0456718000000009
-88024 -106.622646481927674 32.0640712409638482
-98418 -122.447771034017464 47.2226010523757367
-62050 -90.5294508011695882 39.4629479619883341
-15352 -80.3972123604246605 39.7593257186264424
-58269 -98.1677974903225703 48.6880311612903185
-96115 -120.199424461988428 41.6596490136452005
-34474 -82.1924140505142304 29.1552092544434274
-04265 -70.0374370133990851 44.2761942616360358
-48214 -82.9924963428785247 42.3672257522411826
-90815 -118.119869250436565 33.7947896231816074
-04624 -67.9818364499314356 44.4172190260630941
-26707 -79.3562694861878839 39.2737667403315029
-97770 -116.837282666666667 33.9543196666666631
-22406 -77.5510082212321095 38.3939656831080001
-33325 -80.3222025798320942 26.1102875798320682
-22021 -77.4225096666666701 38.9088066666666634
-33510 -82.2988554453139756 27.9547928070089
-19133 -75.1421253279784906 39.9923830240964051
-75803 -95.6600777958941677 31.8470846885408925
-72916 -94.382295555021301 35.2677150950233909
-60110 -88.2857642963064677 42.1244180259517904
-24319 -81.6616341154565077 36.767572074600757
-93627 -120.102488209090879 36.5386862090909119
-77970 -96.4565153214285544 28.8321893543955667
-65779 -93.3900081547313903 37.9750881265985427
-45646 -83.3170410757200841 39.078393959670862
-97750 -120.17288513473288 44.6311713330722313
-24280 -81.9400523548586079 36.9568395627306501
-65067 -91.7092567737017248 38.7454882934730733
-46777 -85.1517998942143777 40.8772082377535639
-64755 -94.3332800534089984 37.3276029071970044
-13825 -75.1934750679910024 42.4416328784274768
-96744 -157.792735508021508 21.4086401229946475
-23432 -76.5541019657794806 36.8687948272677701
-78162 -97.8029894533333106 28.5648029766666518
-14416 -77.9793696227889654 43.0768874179350192
-23709 -76.3105410000000006 36.8142004999999983
-07803 -74.5979382927900332 40.8791012789968846
-26060 -80.5461835947194231 40.1044790288228938
-24656 -82.1226944173843805 37.1793569993501976
-59060 -108.536604999999994 45.4249208571428582
-97828 -117.325917824523458 45.6376533800660766
-06432 -73.2445247142857312 41.2014192016806504
-62186 -88.9713677500000131 38.1766159999999957
-07730 -74.1794039508695136 40.4232758230436318
-42301 -87.2001238919910122 37.7387660457426719
-62532 -88.9806932903225771 39.7769147096774205
-18947 -75.1172985533025042 40.4227813156977689
-77874 -95.9215397999999908 30.0614605999999966
-53936 -89.7311335679375901 43.8424479677419043
-05867 -72.0369605703564133 44.6523886405789199
-02301 -71.0362429394468222 42.0774068811447606
-79752 -102.216542073505522 31.128723799232084
-22301 -77.0604113337589638 38.8195281140910566
-28655 -81.7272178625395043 35.734949686383878
-41833 -82.9709316672771706 37.0350818199023806
-97209 -122.68486513840449 45.5292104745826123
-02760 -71.3378384322791277 41.9709553532833581
-20637 -76.7751592245411274 38.5272232743661931
-16301 -79.6734511626010544 41.4470411565662786
-77457 -95.963293665236165 28.6654289860515235
-03837 -71.316880234422527 43.4256119376906895
-03754 -72.1245571311475544 43.4467226885246021
-52755 -91.4353356601007334 41.482810708341681
-48017 -83.1517166651744901 42.5363141696509004
-55337 -93.2722377395702864 44.7691401435067533
-58647 -102.866573693957321 46.5528937504873142
-36160 -86.1181826666666694 33.4423103333333316
-17013 -77.1948027408566304 40.2201416018806768
-28424 -78.6989018918918504 34.2896871837837907
-76862 -99.7192615822785484 31.471341631856518
-54912 -88.4058880000000045 44.3021434999999997
-40829 -83.3021081111110959 36.806889117647053
-43349 -82.664936499999996 40.6210274999999967
-02492 -71.2373508173108547 42.277443071565358
-66605 -95.6401375045649615 39.0135847786973713
-45877 -83.9488201860307299 40.954025327757698
-44471 -80.5928472379583667 41.049150830622068
-62311 -90.9390471643836236 40.2306170051369492
-21669 -76.3034100497147278 38.4667719845151339
-70783 -91.4056799503844388 30.6818035464709631
-70123 -90.2083348568270793 29.9530669018647124
-78803 -99.0790189999999882 29.7201149999999998
-55725 -92.489881442825876 48.2523206729788541
-23050 -76.4350497283040795 37.4975415053885115
-76456 -86.7126829166666653 31.536517083333333
-72214 -92.2282677500000005 34.7623612499999979
-41538 -82.5884789728813331 37.3097548491525828
-14742 -79.3104908999999907 42.1190793230769174
-25081 -81.776212851823658 38.092257811550212
-31312 -81.3574192982310649 32.2761466389037111
-29835 -82.3012781316157458 33.9059088774910791
-72728 -94.2365540222222791 36.2048395888888948
-80827 -105.426693065795376 38.9968735215497659
-20777 -76.9664802208392729 39.178646263513464
-78867 -96.519030222222213 31.4124546666666653
-22727 -78.2790739393039559 38.3952599223972939
-97883 -117.836536766288077 45.2029668117321535
-16145 -80.080386437500124 41.3840520922085204
-24431 -78.8413978790426313 38.1673022674644287
-55760 -93.2801148654081516 46.6756757706458743
-74446 -95.3138072847222162 35.8473761921295946
-92365 -116.7011458027429 34.8956654898328296
-52752 -91.1976247586207052 41.2725241417624176
-73843 -99.7601904941762996 36.3138140183028781
-37502 -85.5183286666666618 34.8599110000000039
-03231 -71.7506540948905354 43.4604302992700866
-51338 -95.3171488158235576 43.2005572399481892
-17861 -77.0843832954545292 40.770332693181814
-48067 -83.1404585691000477 42.4904985843373311
-55306 -93.2887319246937921 44.730733803658282
-63633 -91.0212746648864481 37.4059416975967736
-45155 -83.7504005673758627 39.0390584255319268
-42369 -87.0025872713178074 37.3489438410853012
-17071 -77.5815840838207009 40.3063153684210675
-61006 -89.2105184652613445 41.8674019968773621
-86324 -112.060263728648167 34.7604304223268059
-03030 -71.4635675000000106 42.7499979999999979
-84711 -112.057281876591716 38.7089581586680396
-62275 -89.5507360306581717 38.8122192921762235
-10594 -73.7730888171535781 41.1189576856739549
-75835 -95.467980501736406 31.3137827728636289
-99161 -117.102714167232605 46.9025508983683892
-50665 -92.7747099244839433 42.5655433860225898
-37932 -84.1763699297896011 35.9249383665598643
-35462 -87.9167992810861563 32.9201404471909242
-54945 -89.1480286614447266 44.5131453089643543
-44677 -81.8558967154731079 40.8677878989769354
-19110 -75.1641984999999977 39.9505079999999992
-72084 -92.6416658381299811 34.1654307316113233
-21046 -76.8503917157668184 39.1733893117624845
-96748 -156.944508083487108 21.0848153588560656
-31501 -82.3507171765822505 31.2237677096915505
-89421 -117.746046730538893 41.9859987520957674
-29839 -81.6176915789473583 33.5296560526315801
-96836 -119.634197400000005 45.2603089999999852
-89534 -110.273569666666674 34.3073413333333406
-48603 -84.018360036252659 43.456598346807624
-87704 -105.448415000000011 35.4022164999999944
-35738 -87.5945032500000025 32.4600467500000036
-85306 -112.180730447655336 33.6238259868140545
-32348 -83.5818277764154516 30.0122631537814542
-85298 -111.720687621252964 33.240804552619224
-56344 -94.0625742500000115 46.0391037500000024
-05901 -71.6975600275362126 44.9596023246376646
-61370 -89.0511763704186592 41.2143124752048564
-32433 -86.1878428837750334 30.7967076653863998
-10578 -73.6668543486725014 41.32516489203541
-62424 -88.4246838116215628 38.9938423308340987
-59845 -114.609394378378298 47.6277963425061941
-53098 -88.7110165935287114 43.2047176568925124
-68057 -96.6445531333642975 41.6329091128466757
-13796 -75.139406621399317 42.544359484963671
-23803 -77.4557957773908754 37.21546099682228
-99018 -117.147002521960331 47.2896505022278717
-12303 -73.9316746543605916 42.7537541325590738
-23824 -77.9799466987280425 37.0912806063786107
-45680 -82.5468892815420929 38.4493770615583585
-75205 -96.7958991241512621 32.8360991300934515
-78704 -97.7645351131309468 30.2448508104833529
-54561 -89.4644592600171649 46.0590610140664651
-20708 -76.8461044816546348 39.0614201439848046
-16660 -78.0817102941176557 40.4504656470588202
-12584 -74.0931333103448111 41.5283205172413616
-80226 -105.087752112837848 39.7098417678846189
-63744 -89.7429757205881771 37.1999098823529337
-04785 -67.9678759792122236 47.151716073304101
-28453 -78.0631349413842486 34.8837913427172381
-85412 -111.849066785714285 40.6465369999999879
-23640 -82.0416945000000197 29.5338171000000003
-15144 -79.7826837315375315 40.5445982512773213
-27242 -79.6354665757378513 35.3329849518614054
-35216 -86.7876376926967481 33.4208520197791401
-75181 -96.5604903406669166 32.7347612952634606
-35810 -86.6057025214102651 34.7815426637549265
-27507 -78.5783778534620581 36.5151754661835852
-25248 -81.6255236788925913 38.6448372805537943
-60090 -87.9302655753090079 42.1329510169179926
-32086 -81.3207306812212352 29.8154131840526198
-50047 -93.4858571559687306 41.480935889236882
-95494 -123.271018985827695 38.9174790374149211
-30512 -83.9946986300684841 34.8693417754742967
-12202 -73.7618006590628141 42.6397195277434804
-76044 -97.522710684461785 32.4342435563361491
-05046 -72.21347537764062 44.2409624421989349
-72067 -92.1593074516023876 35.5666604872426646
-06781 -72.9911827500000072 41.6700409999999977
-67667 -99.3313597951807168 38.7128289518072322
-40115 -86.2291555655991431 37.7354705599173741
-80728 -102.845170594831401 40.6052870188083759
-11972 -72.7035556789772528 40.8208299914772539
-16334 -79.4479160397661701 41.3100199228070153
-13420 -74.934976920631641 43.7234189536841029
-28719 -83.2859337819275254 35.4915519933879509
-27746 -96.3350068750000048 46.8788096249999953
-08091 -74.9295156897244112 39.8057398696741629
-11740 -73.3615750609678656 40.8628530585171106
-78108 -98.2337370935843381 29.5858280702557224
-78870 -99.6178166276595078 29.3007325686653815
-52737 -91.3750136918238951 41.2585658805031059
-53726 -89.4216255759658907 43.0693559090128204
-89832 -116.138836873803314 41.9746648711923314
-49431 -86.418269680483192 43.975140255362831
-78621 -97.3742529043328062 30.3284133863408769
-49264 -84.5527441108929594 42.4445754936211088
-85034 -112.052321457036939 33.4358240024690971
-80000 -105.327533066666675 38.9171762444444411
-87347 -108.441654140625005 35.4736595691964425
-73840 -99.6202651334895961 36.3682303091335157
-75653 -94.6353900857142776 32.3357960571428578
-48328 -83.3548628354543695 42.6442764184028462
-82450 -109.432552915226182 44.4655096353908448
-71655 -91.7677055132244703 33.6443746350964759
-72905 -94.3904746857142669 35.3915097714285736
-34639 -82.4328250824521405 28.221067736512488
-78418 -97.2722832617261872 27.6343188894281013
-66547 -96.3191548917766767 39.2319004954632362
-68418 -96.3866481985128445 40.7082136243130748
-19425 -75.6511275098801406 40.0977570800540093
-38024 -89.388439877519474 36.0475782091041808
-05482 -73.2231435149301717 44.3849729878625894
-20905 -76.9935711135763512 39.1078913928722756
-83931 -110.793433666666658 34.3375066666666626
-72391 -90.2116575666666591 35.6698234333333346
-94564 -122.287442071926051 37.9955183623027111
-68802 -98.3530644999999879 40.9193614999999937
-60018 -87.8922930612096991 42.0147388557116344
-45692 -82.5556684893196007 39.1204277050570113
-72949 -93.8250676265448078 35.5217307624243972
-50704 -92.3725394999999878 42.4592999999999989
-17528 -76.0011600555555447 40.1275627222222226
-39840 -84.7666170499086604 31.7742427526508386
-55602 -91.8712164934441233 47.3014426956631837
-28104 -80.6980320413843799 35.0622755513813615
-17337 -77.2025566666666663 40.0154893333333348
-50595 -93.8260259252909208 42.4543321748754039
-80751 -103.2222573961498 40.6391789412279181
-21639 -75.8015677111110335 38.9635582337164621
-63342 -90.9959531818181802 38.6080736818181833
-85707 -110.875839782312838 32.1776652789115616
-99657 -161.388973812500012 61.866999687499991
-29070 -81.4669813448130071 33.9510651359968705
-17088 -76.2933949903660817 40.2994934797687989
-10118 -73.9858696666666589 40.7485500000000016
-37779 -83.764493177790726 36.2076800607604099
-66211 -94.6356234101622391 38.9238188821372404
-74108 -95.7889184229691324 36.1488041040416164
-26519 -79.6346478628355925 39.558873320848349
-78220 -98.4138804108052341 29.4129103891437751
-17097 -76.6865632812500451 40.5732964765625468
-08560 -74.854223607219339 40.3061330475340043
-23704 -76.3147407670762306 36.8282178005059748
-57563 -100.388375333333315 43.3585151111111102
-92688 -117.608772299076634 33.6340854415136548
-01351 -72.526157001743826 42.5392695433482544
-75150 -96.629859781442363 32.8161038292037119
-25208 -81.6457263658192289 37.8766148714689024
-28728 -82.6442667857143078 35.5493547000000021
-23238 -77.6245804215110269 37.6010208540774684
-78712 -97.7350614725738609 30.2848441476793262
-07663 -74.0951445117205907 40.9045069547078342
-38583 -85.4671705603560667 35.954334365933903
-33513 -82.1583942712361193 28.659199595971689
-44702 -81.3753702558769589 40.7989151220614517
-30229 -84.5670179199999836 33.2283589600000013
-40923 -83.8482803000823935 36.9211763718054655
-05088 -72.3091788827362052 43.6743310130293168
-23143 -77.1930041428571485 37.4552177142857161
-98614 -123.939926217964071 46.2740356646706559
-76691 -97.0989431289217038 31.7780580809385711
-52745 -90.7622781392684033 41.7203463036591913
-56287 -95.3285646868686882 44.4812771616161839
-73549 -99.1725596902654445 34.6721014424778744
-23146 -77.7044162358367032 37.7214618725310586
-50143 -92.8078581843154922 41.3369487416924031
-40709 -84.1758677499999948 45.1210252499999953
-14042 -78.4867666628997398 42.4716402246417175
-04774 -68.9823947967105795 47.1310062559210934
-68375 -97.4930374512986617 40.0220090292207615
-44872 -82.6820009999999996 40.7775304999999975
-87108 -106.581192017384424 35.0732840858460477
-72169 -91.2222855555555299 35.3971028199233828
-16872 -77.3765389368340522 40.9630593942162236
-67529 -99.2407652000000269 38.0740621870967786
-24736 -81.2648839617834398 37.4382915500868449
-01245 -73.2095759321254747 42.1850905648547538
-28352 -79.4698274830406888 34.7609526189965408
-79936 -106.295933174175431 31.7643614212044518
-14750 -79.3264325770030183 42.0948305159818545
-55350 -94.3906249011401712 44.8998237017623367
-10707 -73.8220428451613628 40.9588561442396895
-31093 -83.6509193026046773 32.6404525990807244
-62077 -89.5233022514124315 39.0298362853106937
-73901 -101.073186325581389 36.7434212441860453
-38847 -88.2327738063558371 34.4124491093805744
-73842 -99.1425449190981425 36.825534558355443
-61864 -88.1531501313867665 39.9892083211679292
-50452 -93.3754606815474375 42.7837321511904491
-31092 -83.8088995548664428 32.0935478524063953
-02725 -71.1777555289192776 41.7237073614916554
-08313 -75.2060267352941167 39.5348843529411837
-83332 -114.890241130234415 42.8053862912024812
-06502 -92.6772509999999983 38.2385872857142886
-46171 -86.9642984570821653 39.5374685880575356
-06610 -73.1691130375053547 41.2052131918884257
-50703 -92.3249481952240103 42.5212775380196888
-37221 -86.9600877739384828 36.0642299417860528
-38674 -88.9010105189339441 34.8793812996556909
-74821 -96.8359090000000009 34.6229684999999989
-22712 -77.7618148402963527 38.5653081473209554
-71251 -92.6629553967634365 32.2278785673547716
-36069 -86.1770401980383554 32.0797813037507424
-25878 -81.2349373116727094 37.7188965198556048
-35874 -85.2217229000000032 32.5170682000000042
-86017 -111.637522953867574 34.9420352078284324
-59546 -108.529198387832665 47.9001040380228034
-72312 -90.7679419655172524 34.5476264482758708
-54611 -90.9120564918032983 44.4358361540983466
-80221 -105.008919535797119 39.8328705921796384
-68778 -99.7966074446397613 42.8324195395430465
-99118 -118.660969471909183 48.9273236526645832
-31546 -81.8496562070419316 31.5442987370445174
-14892 -76.5258621248665349 42.0349139027291869
-45662 -82.9335890736054893 38.7746462109260648
-78012 -98.4977772463766996 28.7876620676328336
-34471 -82.11850534837167 29.1688537037371987
-56558 -95.5396029999999854 46.261572857142859
-72447 -90.3353711659511021 35.9062813543156309
-39480 -89.3100601235181273 31.7135430043977671
-16932 -76.948960940071899 41.7822082764682747
-29402 -79.9503326666666538 32.782037333333335
-74316 -95.3224677500000013 36.3097989999999982
-29042 -81.1468331257539717 33.3189504126960401
-32836 -81.5103379766755296 28.4241187175189829
-46941 -85.6968623669689151 40.8297833870714229
-07057 -74.1075416589205815 40.8534686664168376
-88102 -103.327256642857151 34.7785416785714148
-23059 -77.5636855200021671 37.692631869724643
-71070 -92.9923444542433231 32.1060278340380378
-61913 -88.445358655225661 39.816922981874292
-00637 -66.9473426260868649 18.0643753786561163
-13848 -75.7221888888888799 42.2323981111111095
-77327 -95.0020222770208989 30.3378469569266009
-71342 -92.1254527182971259 31.6453735987666462
-33490 -80.2842933333333519 27.0268740952380924
-14609 -77.5581391143026906 43.1761398895273061
-19390 -75.8476018668325622 39.8217360466249062
-17364 -76.8995750442412458 39.9285775152556042
-66043 -94.9053467448273409 39.2479658080959624
-67117 -97.3495786790540194 38.0754518648648528
-98933 -120.619327309615315 46.4040734128205017
-72701 -94.1149747287606289 36.0231394979571675
-60128 -88.0058566666666735 41.8517896666666616
-05450 -72.7840261587334822 44.8922155063353543
-39829 -84.3430281714285996 30.7165449999999964
-56057 -93.7172356656241163 44.3947722942206298
-60638 -87.7719910282354476 41.78777020178849
-84043 -111.872970873554976 40.4044090450434936
-17569 -76.0986536406022509 40.2698865706632034
-12820 -73.6414727065217249 43.4625531195652144
-58625 -102.193652776836203 47.3102970706215018
-74332 -95.2475399966213558 36.5263217251229193
-04406 -69.4957108993006756 45.207728817249432
-30014 -83.8371597777336603 33.5677062818598984
-46343 -87.1962019999999995 41.5361580000000004
-71235 -92.6651700876844018 32.6829704337984168
-75574 -94.5443538712148381 33.3496029445458362
-23411 -81.4035097647058592 36.8844986470588196
-32202 -81.6528632514597632 30.3286460145984123
-36867 -85.0208698338651629 32.490627296981863
-68528 -96.7759221191195991 40.8230463854122618
-85008 -111.998202293660924 33.4668644471250616
-61109 -89.0511699087054751 42.2111494285459088
-51449 -94.7397286870257034 42.2719801943201574
-23177 -77.0160834303239028 37.7370241727183569
-92312 -116.940473200561158 34.7842528120617231
-97603 -121.710552910623306 42.1671917232950832
-01760 -71.3530544829798146 42.2876453671857035
-56521 -95.870264283713837 46.9907658298755209
-56088 -94.4451016675821364 43.8166481705794624
-48446 -83.3334431007235992 43.0568408817974557
-29920 -80.5477646288237707 32.3844269441183954
-98629 -122.621658626448877 45.8764305593918209
-42064 -88.102286784514007 37.3409165545179462
-69128 -103.892754848056512 41.2386851448762997
-43732 -81.6385950506039535 39.8685673920939649
-68651 -97.561655151027864 41.2028361215370822
-02644 -70.5121485743073606 41.6829307942904563
-14726 -79.0188403312757828 42.2569997006173494
-28573 -77.2154645452252453 35.0088630592498902
-78950 -96.4904308260336592 29.9148435153913468
-57381 -98.831738968661881 44.4796245012633946
-72454 -90.2214293596439347 36.3977594666666846
-83341 -114.370372327420156 42.5250131976475814
-04017 -70.1175462229087145 43.7352282338403242
-79766 -102.350490997856724 31.7436606387017797
-24480 -75.6916269999999969 37.6030719999999974
-90047 -118.309353076106134 33.9549706917134628
-25187 -82.0228750101902762 38.7256729106657502
-53826 -90.912052808362418 43.1205948174880547
-43064 -83.2793426188064103 40.099253766516469
-43565 -83.7419876142131869 41.4210564162436654
-74601 -97.0947620715636646 36.7071705256463332
-84772 -112.937253953333297 37.8006100066666733
-56744 -97.1059613476949721 48.2593385986393599
-35563 -87.8970161116374129 33.976580233713328
-85233 -111.807513141230956 33.34267808380487
-49117 -86.7563715058432621 41.7835293010573707
-37369 -84.4816716558287339 35.192723128706163
-94240 -121.258940666666675 38.1451133333333345
-60120 -88.2541184872912936 42.039899826125442
-17570 -76.5695684705882371 40.1294974313725419
-48636 -84.2696000353938217 44.6384118868940902
-03049 -71.5769714350840474 42.7473826899039793
-17504 -76.328110705882338 40.023793352941162
-36302 -85.3374056666666689 31.2075738888888914
-86327 -112.225243254979731 34.5422746133687468
-84075 -112.069004340505472 41.0860844714047815
-51365 -94.7412669528302729 43.3105643333333177
-80210 -104.96266212941633 39.6776454527066491
-38544 -85.6576658953146648 36.1213976430215951
-04427 -69.0083337126369827 44.9797960546019269
-59855 -114.117840452307789 47.6006366584615463
-57115 -96.8876105818182083 43.547652145454542
-52540 -91.8293260188443838 41.1697369233858836
-53924 -90.2591491527057883 43.4765101760562303
-39265 -86.0545035000000098 34.261997000000008
-49065 -85.8350964342246527 42.1410934081283699
-60041 -88.1501621687328623 42.3759245158646536
-44450 -80.8397765563612865 41.4490485748187325
-43717 -81.5544058148148281 39.7898735185184975
-72556 -91.9233019005219347 36.0471035297716469
-48307 -83.1246885509238211 42.662642763267435
-78144 -97.8748321546391367 29.0286387010309248
-38652 -88.9914439515814877 34.4920279279875288
-45359 -84.3524270797544915 40.0517056492842798
-21922 -75.8684566428571543 39.641515714285724
-02135 -71.1540064480018088 42.3490152895208709
-15679 -79.6468734689264721 40.1816527229925882
-93111 -119.803140862933262 34.449551507270975
-61327 -89.3169221927844887 41.2378671877113732
-12542 -73.9924365291059161 41.6061481975052274
-29744 -80.8431789531249763 34.8683727343750078
-51027 -96.3262775918761491 42.9556643738877568
-56738 -96.3288778917276431 48.3357409576440631
-44316 -81.486943999999994 41.0692939999999993
-57279 -96.8232738156089141 45.4244407255575027
-28345 -79.6898035507165758 34.8783249891914053
-06359 -71.8746431027506958 41.4657948284279456
-68514 -96.6472667172774607 40.9325052879581364
-35480 -87.7848590786794887 33.0950494184660826
-80833 -104.018200109632176 38.7747070263638136
-93644 -119.63459661208924 37.3405680232986228
-57261 -97.483981634799008 45.5260327265774123
-34494 -82.0484105000000028 28.919668999999999
-15741 -78.8727854999999778 40.7992365425531816
-74883 -96.2338328108107675 35.2352141261261238
-75930 -94.0082282063147687 31.3646693289341876
-96708 -156.280255432169383 20.9053214260937459
-98664 -122.577997198164638 45.6220106614804379
-25087 -82.0252692413793199 38.6471114827586177
-29418 -80.0771419943693417 32.8961571432779465
-16329 -79.2761816738055956 41.8097275164744531
-25163 -81.3910937999999931 38.205331000000001
-37707 -83.5801374999999922 36.5836339062500002
-29862 -81.3893020000000007 35.2172809999999998
-15955 -78.7264666875979771 40.32865932981219
-48336 -83.3453756736206799 42.4640184423094524
-68870 -99.1478365013121845 40.834542481889784
-24595 -79.0784353068181787 37.5565816931818333
-06777 -73.3446654737183223 41.6921042415289236
-30220 -84.8175675008661329 33.222407764833342
-48130 -83.8980147408584855 42.3531267973500718
-62226 -89.9971144229002107 38.5429921688409038
-20657 -76.4334611263152226 38.3708003639325668
-62874 -88.977979682170556 37.9184560465116007
-03882 -71.0369712764975532 43.7399617669520424
-39565 -88.7413866674425975 30.5619950556603719
-14541 -76.8404564928000156 42.7514002743999981
-52323 -90.9574592263253976 41.9863847641681573
-54664 -90.6082012344551231 43.4903086558156602
-65676 -92.6131568338657161 36.5660458370606563
-44680 -81.5337744024618587 40.6003380608453455
-94947 -122.587740821622532 38.0962255364487632
-97754 -120.785582220427798 44.2708916716695668
-78675 -98.7047531073657751 30.430700852684172
-08724 -74.1151240182966262 40.0880735338765106
-13659 -75.873621824760761 43.7462024706937456
-00670 -67.0109234036697217 18.2381150779816501
-68355 -95.5896850196547945 40.0753297025551376
-38703 -91.0308204574799902 33.4289256659692882
-83442 -111.900954010190887 43.6656160361308494
-49439 -85.8814849999999979 43.5426019999999951
-57565 -99.4402274307692409 43.7384921692307671
-24634 -81.8984330784699921 37.272270115142021
-88241 -103.190049685714243 32.7153294571428574
-67842 -99.7785814119132368 37.6044375162454543
-21538 -79.2065002231214237 39.3990034231213215
-95439 -122.776344293628682 38.4905404501384751
-60015 -87.8675899262678541 42.1698184589081038
-61052 -89.003716525351237 42.1078383115454713
-25149 -81.8145041212121242 37.958929636363635
-33154 -80.1291012996276919 25.8849382047146506
-01834 -71.0225528288758312 42.7528520587033682
-57266 -97.0768261424778274 45.2574556530973879
-04008 -69.875220577646985 44.0368661278431546
-28382 -78.505841893439765 34.9909951331802418
-18463 -75.3921472439807587 41.3489285200641774
-30565 -83.4166127060584017 34.094046934920101
-86430 -114.451112481481488 35.232022839506179
-97632 -121.419528661444815 42.0250408315927189
-29071 -81.2277634000000148 33.9698146000000065
-72641 -93.195413619627999 35.9854077658755642
-14727 -78.2915585260837474 42.2056074243579076
-17563 -76.1831877204016763 39.7674433622675139
-72971 -96.5555576666666724 28.8099999999999987
-22923 -78.3273606944680409 38.1944370807038567
-46460 -85.9359153999999705 40.117399000000006
-59101 -108.479349147031755 45.7466723449324348
-57601 -100.470741700378525 45.5163584447448386
-80019 -104.735615756235731 39.7869439172335717
-41524 -82.2354278854369483 37.4154539582523995
-76034 -97.1477293576216852 32.8894420818309356
-54515 -90.4846867499999945 45.5428119375000051
-73503 -98.3961557938388154 34.6572646311216275
-67646 -99.5687309432347831 39.6346678950232487
-04456 -68.9894516741355091 44.8795384013831296
-31022 -83.0823272189422966 32.5141475135301121
-07652 -74.0684942056195723 40.9490601739230939
-68337 -95.8295759519379402 40.117616885271282
-75227 -96.689292941073262 32.7693558362968531
-84058 -111.710427507095886 40.2807545620345948
-95935 -121.215496489111459 39.3796298299342524
-75147 -96.0897776820646214 32.3934106360406275
-25851 -81.2686889470899416 37.7949567513227578
-06472 -72.7851372127569789 41.3915337746147216
-55386 -93.662188201143266 44.8526090777026667
-63863 -89.979353008205095 36.5680114023076541
-59037 -108.252241423671606 45.8642961832528968
-58830 -103.501259186785205 48.5864339822109201
-85342 -112.558281204051156 33.8716125200426532
-01240 -73.272909227242252 42.3620380391410336
-13144 -75.9675789968122643 43.5624649458104827
-47533 -86.8406426999999894 38.7052882999999994
-89043 -114.431034205818122 38.0054595130909192
-08535 -74.4348847658649788 40.2328499724084523
-74545 -95.5152695652173804 34.885458217391303
-71079 -92.8260401370327344 32.9268149082672679
-23607 -76.4187735682975671 36.9882713421500853
-25836 -81.2741151301169111 37.7718981008772161
-27357 -79.9748361320052084 36.2720536970118559
-76006 -97.0827631526899495 32.7769987212637162
-67073 -97.3127098516320075 38.3789800178041389
-77650 -94.6632846639003134 29.4378058572126982
-22954 -79.0142574830508266 37.7926809915254367
-72687 -92.7109778828955484 36.2644212871946863
-85755 -110.975916255497111 32.4515470035402771
-40601 -84.8820140802152281 38.2152435934480792
-28212 -80.7444094946871189 35.1891222404250783
-86074 -112.529589999999999 36.9825850000000003
-41132 -82.833960161904642 38.2553804831168449
-81121 -107.417375288553288 37.0285111868044723
-10580 -73.6918216185222548 40.9753776729569523
-31901 -84.9794023577763511 32.4726896720875118
-61084 -89.1882823448448931 42.1182424544098737
-78871 -101.702334677777742 30.1511213999999867
-77878 -96.4631302959831771 30.4768987928118698
-75173 -96.3939255718820505 33.0608711411500096
-62870 -89.0503773675424668 38.6249035629056579
-23113 -77.657305725836693 37.5312391413511293
-12845 -73.6952411576777422 43.4257114668408093
-78886 -99.1617834281610158 29.1518440258620863
-64766 -94.1580644999999947 37.5861919999999969
-56279 -95.1695776031860561 45.2095349276960263
-69336 -103.103012920885988 41.6659902765823418
-44822 -82.403968396280348 40.565698600719891
-44310 -81.5006194970124653 41.106594742301354
-44473 -80.6687329167482261 41.2416801415279153
-95949 -121.085156181121235 39.112798376058457
-04009 -70.7357705758354456 44.0534373852132717
-02871 -71.2526994154519286 41.5889229307830561
-02808 -71.7467990954357902 41.4078623573075078
-84052 -110.048820967741747 40.1911041459546325
-23917 -78.330732120030774 36.6267665783385965
-55368 -93.9136939140469593 44.7575978662952494
-63044 -90.4201531609899121 38.7529055673251008
-96063 -121.585891098384664 40.3532865183553398
-00956 -66.1671764479866198 18.3454593590603885
-77066 -95.498753543782982 29.9611107904910803
-25919 -81.244551117647049 37.930828558823535
-41261 -86.4899691702127598 37.1934633404255379
-37187 -87.2140240324395961 36.1284980722661047
-95220 -121.233887431350226 38.1960750093036552
-50854 -94.2354125402822831 40.7085449863450179
-18020 -75.3247821226226932 40.6621927586051797
-94592 -122.273130367729848 38.0939221088180346
-97837 -118.085481509966797 44.504874897009941
-16863 -78.4878882362710186 40.9154962871186072
-02879 -71.5320427238860503 41.4271880537222259
-53508 -89.562162990222177 42.8865187818293521
-30454 -82.7237218895582913 32.4597434404283973
-76058 -97.4157174771865755 32.4704496201459918
-48933 -84.5549195937053071 42.7328066351931
-53049 -88.1393709999999828 43.879801999999998
-94402 -122.331612317793713 37.5469765605189494
-77855 -96.1223370522087635 31.1588837028112415
-31722 -83.6245070121950533 31.0704199634146434
-49881 -88.0785520370370421 46.0894319629629692
-72180 -92.2134119152542269 34.5295467525423661
-16726 -78.5670953378213568 41.8202312558139582
-52002 -90.7624298150614806 42.5160738553771296
-42722 -85.7200477376351131 37.2741853581408691
-22722 -78.2227632431507232 38.4733932363013267
-44656 -81.3350496781657739 40.5672176650621594
-56291 -96.058576750612616 44.609581628676473
-62927 -89.2391367121212085 37.9380609898990073
-20010 -77.0318892247859139 38.9331047878675136
-30471 -82.1791479166519281 32.5374780579890057
-67447 -96.9851346429322234 39.4750485240837889
-64801 -94.5018846753306434 37.0995031097263208
-84307 -112.261495473053913 41.5063775211798358
-77042 -95.5594929567488691 29.7441522933134657
-12418 -74.1482256162738906 42.3617632530013779
-84525 -110.155573890310734 39.0068450356490288
-72560 -92.0957278316331553 35.850307265267503
-00912 -66.0592688438618154 18.4454241060786543
-39319 -84.3390674999999987 33.8560659999999984
-30412 -82.4863632980132593 32.0848113841059543
-97822 -120.333933799999997 45.2987911999999966
-05036 -72.5799230053321338 44.0270613803598607
-25818 -81.228141785234925 37.83812152013423
-96156 -119.959114083333304 38.9436296666666593
-90402 -118.504029860709807 34.0359634168856928
-65731 -93.1218765540136957 36.6552183290386324
-10007 -74.0086076612245023 40.7141166653061148
-64573 -90.1571589487179637 40.2716920769230882
-57259 -96.5598486556775981 45.02168956776557
-89502 -119.76315010252118 39.4965702828533765
-46515 -85.9398025454545405 41.6654974545454664
-77419 -96.2094928854700271 28.8711608940170841
-34537 -82.4982505499999945 27.3455222000000049
-76679 -96.626600473837442 31.9538365046511252
-10954 -74.0128406091630353 41.1013728765555229
-56134 -96.2158710909091468 43.7886870230879879
-65724 -93.3240358845209386 37.8459956658476528
-75439 -96.2705311976422138 33.566359215672648
-90277 -118.382833919429686 33.8269421682677418
-65578 -91.6862514285714241 37.3102925714285689
-87572 -105.885069249999987 35.9565928749999983
-29724 -81.0122726217948781 34.775401288461552
-30544 -83.5633643333333396 34.5888629999999964
-08732 -74.1449525678321493 39.9424853020978645
-12412 -74.2665469933388493 42.0033588326394778
-22303 -77.0814262397210967 38.7925617092510464
-40808 -83.266088785502788 36.9841223757396591
-42026 -88.2620520000000113 36.769831300000007
-96007 -122.33380002871246 40.4573101411271097
-96719 -155.827779917647035 20.2290130705882412
-85078 -111.985338545454539 33.7282810909090855
-95938 -121.788697552022384 39.6377307137810249
-40516 -84.3765828742492232 38.0805695305546124
-72217 -92.171338333333324 34.8286343333333335
-03243 -71.7525506478136776 43.5307294134981788
-24416 -79.3566139543911078 37.7481350335468022
-71865 -94.1471303109541111 33.7400044805653678
-17035 -77.5796675623775229 40.4252607689936525
-57049 -96.5018057756355745 42.5187651118752186
-68852 -99.1466205964215277 41.1541937852882995
-10562 -73.843825769679512 41.1806017609840538
-03459 -72.1526501666666746 43.0133981666666685
-14817 -76.3546205929267501 42.3657414319962271
-92551 -117.220718468363259 33.8863085584008843
-28619 -81.6039569021207711 35.7573630848287252
-18015 -75.3745260753084949 40.5910492429521739
-61553 -90.0331226271186864 40.6261689491525289
-51636 -95.2432002024703195 40.663355808998773
-58466 -98.3691271562884424 46.6584505266584344
-59221 -104.097754781485875 47.8760900854190581
-33523 -82.2150703494463784 28.431750346579463
-87935 -107.219708175454798 33.2109830660605709
-98901 -120.45541060831161 46.6164580917664964
-46528 -85.8168636368131672 41.6147419585143439
-49082 -84.8835820575683329 41.9230893129582682
-08241 -74.4937360414364349 39.5232430460405411
-12156 -73.7356947661725002 42.4775402021563053
-58552 -100.284315965762303 46.2591190853712959
-04918 -69.8717854780652345 44.5148027345332125
-65335 -93.3129927103174737 38.5059759047619394
-80430 -106.41400431987563 40.5079283964804162
-99170 -117.378450721352692 47.2687071822166658
-38045 -89.2491279615384485 35.285009115384625
-32568 -87.4593126487106076 30.8890669252453343
-08808 -75.0415113846153758 40.7379871538461487
-60504 -88.2450922297957732 41.7445276412984754
-10919 -74.3823916012120492 41.5250241878787918
-60924 -87.8805174620388527 40.5712374566160037
-40336 -83.9931524664852134 37.6981147848797349
-49745 -84.4669055312700863 46.0369695854287784
-78039 -98.8238167381428525 29.3153634696058809
-84020 -111.86310342899634 40.5058218679298889
-55342 -94.7291993580945189 44.7439048870753382
-15015 -80.0814661949579261 40.6360351831932647
-33714 -82.6772341199825576 27.817211465750475
-54156 -87.9494016666666596 45.6254620357142855
-51645 -95.420025393530949 40.8846518849955842
-75931 -94.0101694219994783 31.0986585264613922
-71711 -92.7197193333333303 33.6288053333333323
-83546 -115.801958380487804 46.4990010406504339
-78943 -96.5904344054054036 29.699826918918923
-84770 -113.603419203184544 37.1221271202470788
-00618 -66.3076541875000061 18.1847657500000004
-15401 -79.7381963836600391 39.8970949633416367
-02870 -71.5588037499999956 41.1700879999999998
-23669 -76.3409562048049537 37.044383936294274
-55790 -92.3466759520784848 47.8094194112355453
-16053 -79.9819157978977415 40.812623831293223
-13142 -76.1389824590165034 43.5610764472558927
-35951 -86.1650781649795761 34.3240305501519387
-95320 -121.002680029377885 37.8009010862135497
-41602 -82.7588573679654758 37.7369588441558221
-02335 -70.6142025000000046 41.7177245000000028
-14701 -79.247622054136059 42.0892006754873265
-61460 -90.8265226825775898 40.7484969737470024
-92259 -115.955110339308618 32.7652364404609457
-67450 -98.4180329660546249 38.6122581347420137
-48744 -83.3503265672052436 43.3471166796150769
-65730 -94.17443557822088 36.6202430820551967
-14030 -78.5031232521738076 42.5575131177257475
-65305 -93.5739042479253982 38.7272998703319828
-73634 -99.1731335000000058 35.1580294999999978
-29225 -81.028582654411764 33.9939893823529502
-91016 -118.000287195263752 34.1468330190797928
-71422 -92.6536353060311484 32.0841059434332294
-07760 -74.0056950388532613 40.3679231194682231
-31081 -84.2634218694690986 32.4100264026548572
-25015 -81.5241285083193077 38.2367300162987576
-62999 -89.0527949628609861 37.9000803837689517
-95234 -121.500469767857098 37.9532400937500327
-75417 -95.161708684290204 33.4497722438498855
-84634 -111.815091557105006 39.152121128154036
-83613 -115.880577785714294 43.6314762142857191
-91786 -117.656329165819443 34.105432349129913
-66086 -95.0865104902215847 39.1152540609517558
-02860 -71.3898149893994258 41.8720331932104486
-79755 -101.924096151515158 31.5921367636363684
-33772 -82.7969685619144258 27.8445596574941803
-42037 -88.1701389698795026 37.1885768674698696
-16235 -79.3562112566387441 41.319352742766597
-23939 -78.7660995396039993 37.3171651188118503
-15009 -80.3473567414747833 40.6985506409216384
-84095 -111.957033749120427 40.5606572869965305
-84760 -112.777061129793495 37.8874106949852418
-06379 -71.8509756248434286 41.3715727756892448
-12470 -74.0415945250247063 42.2727963984297901
-12864 -74.3107424137930934 43.7204135517241355
-36316 -85.8681339465867097 31.1891194434601324
-93631 -119.538216150699171 36.5033078364515973
-45784 -81.6878415900347932 39.3767019381899317
-19150 -75.1712685028665817 40.0726435941851449
-05072 -72.3863069684913256 43.8750847250158316
-46740 -84.9654247113984269 40.602890988957391
-01856 -111.076513999999989 31.7277278888888894
-68629 -97.1305807587016119 41.7547506769651875
-77853 -96.8365280567473548 30.3620195397923922
-08316 -74.9951145454545269 39.2843464969696967
-48359 -83.2827152699114066 42.7219927433626765
-95240 -121.244576601092476 38.123068405524613
-05682 -72.5654746718647772 44.3839602962963511
-98118 -122.275630826571089 47.5408676024018177
-61845 -88.4016265546665636 40.368098661333299
-88410 -103.239018736301361 35.9147431232876571
-23064 -76.2996203631578709 37.4982840815789515
-96816 -157.795414973516813 21.2838724587216745
-28612 -81.5111615205411653 35.6851253164880475
-47405 -86.5212823361884489 39.1740348158458076
-55105 -93.1661593709944214 44.9343639960356427
-24065 -79.9581702869405007 37.1179970848245446
-78583 -97.5274397158391508 26.2568482992908123
-42413 -87.4917831557477257 37.4313092904062046
-17728 -77.08052795989191 41.3216148763111732
-78211 -98.5475920719098468 29.3576997368914618
-92530 -117.359822258526208 33.6642501354484054
-26814 -79.4434004788519701 38.7397364954682217
-15458 -79.8571661261997008 39.8862300142196844
-77481 -95.6077022802197689 29.4900940439560451
-42403 -87.9338771967212978 37.4454659836065531
-06048 -72.3196696666666554 41.9107486666666702
-59544 -107.526279399617664 48.7773808432122564
-17894 -75.2062600000000003 40.4134453333333354
-40280 -85.6877227179487164 38.2488477435897423
-63823 -89.4520114120413439 36.9041431166510421
-51463 -94.9275676534653172 41.9104358184818437
-93285 -118.48337689500265 35.7089833725435213
-81015 -106.152673800000002 35.0340643999999983
-50538 -94.4297259868815217 42.2788776541442104
-50130 -93.6657434955890693 42.3013230633269544
-61476 -90.8312229981761874 41.1117137270516366
-55946 -92.9621026036757598 44.2688836779863806
-95536 -124.262488245732143 40.5412934372925804
-93276 -119.372498670000027 35.2750886399999999
-94401 -122.319844253308943 37.5717454861286981
-96822 -157.817809508649162 21.3130593798036472
-50672 -93.081989423794866 42.4230910264384846
-24153 -80.0860729074496902 37.2931114359916691
-98622 -122.484061782608691 45.8254596521739259
-21734 -77.7076120218750077 39.6091319562500033
-58045 -97.055151224985039 47.3996759909035319
-60517 -88.046918011344772 41.7486773293293965
-01073 -72.7262269777116899 42.2270541784545728
-55960 -92.5280884553780396 44.1507899263780246
-87575 -106.526098452296793 36.6540633763250767
-25865 -81.3272921638847635 37.7399951177542192
-63135 -90.3008500858231287 38.7506103719796045
-75562 -94.2482997318435451 32.9323381899441543
-84762 -112.641462255985886 37.504489011267566
-69120 -100.254747969558736 41.3994773105023199
-44145 -81.9287177894924952 41.452349149897799
-25508 -82.0080839222143112 37.9666845701501714
-67346 -96.4376710702402704 37.3221209685767121
-98513 -122.754199186324357 47.0085446351368432
-04971 -69.3935777835789338 44.9281498735050064
-87565 -105.489304491228097 35.4226070745613981
-00909 -66.0683404816111732 18.4427962364273235
-83232 -111.980646062264029 42.1309001000000052
-59044 -108.760326615805766 45.6542807458175446
-26804 -79.5375416734853644 38.6150369260424213
-25301 -81.6299585240507639 38.351175474430427
-80425 -105.236401817480669 39.3846446786632782
-04255 -70.6682292945522192 44.351085244730335
-55090 -92.9571494952977275 45.0539992006269543
-16259 -79.448493099978819 40.9163203430246298
-53216 -87.9754815263728176 43.0868230122756799
-38480 -89.2766536249999945 31.760257124999999
-96099 -122.306917238095238 40.86244984126985
-48886 -85.1598353368907226 43.4196388331553962
-57238 -96.8746669851935991 44.8719742938495898
-54855 -90.8363347463216968 46.3859837935059289
-87122 -106.51611854655016 35.1800563790225667
-31560 -82.0419286522338211 31.5216862902633714
-79415 -101.889764510592798 33.6424272953532579
-57424 -98.5055380441320807 44.9906899159856266
-28534 -77.8395257499999929 35.4085702500000039
-44864 -82.3227672075031762 40.6729013013642131
-19128 -75.2259990026522445 40.0453806732968474
-08008 -74.1968775724618865 39.6238594506873412
-17803 -76.3606175151515032 40.0498901212121154
-25661 -82.273753895745287 37.6915209495865327
-95426 -122.725702730215744 38.8341358734262627
-49125 -86.5992735753306704 41.8882102398634046
-72075 -91.30797903448277 35.6410880344827561
-06244 -71.9832934680851082 41.986117744680854
-97931 -123.824223847222257 44.5161074722222025
-23839 -76.9197997351739673 37.0771907201130944
-83704 -116.287326139694997 43.6315845006006597
-75124 -95.9921038812490082 32.3137577882410909
-85752 -111.120100500000007 32.3643697499999945
-61079 -89.1991150000000204 42.4443315081967114
-50421 -93.622668472729984 42.845823512313288
-51401 -94.8721720267652984 42.0660854139096116
-21108 -76.6178231879517 39.0969559777311915
-97720 -118.98891581496521 43.5901338025391496
-54454 -89.8838640275589 44.6044915033746321
-65345 -93.1004538804450021 38.5502704402224339
-31545 -81.9215215996548949 31.661780887979674
-62413 -87.8459568000000957 39.1371900172042402
-62063 -90.1427532743121134 39.1881618446339317
-84636 -112.286938477099412 39.1166802862595802
-31421 -81.0861016153846208 32.0863951538461549
-61744 -88.8804252707330704 40.764280969157042
-68603 -96.2997112500000014 41.0247859999999989
-74554 -95.7168471761309121 34.9282234100096289
-15056 -80.2009334290618199 40.5655224874142206
-76082 -97.7022015739903793 32.96352005843341
-30171 -84.744699698780579 34.355478750113015
-83345 -113.911248499999999 42.577022999999997
-47535 -87.3065335234375226 38.8654376113281117
-66207 -94.6445980720461364 38.9574596344608821
-75666 -94.9062735999999916 32.3613466000000045
-17046 -76.428840929522579 40.36800265053499
-33432 -80.0860221961600303 26.3465663603877367
-25979 -80.9361840604924367 37.5099804544968265
-97867 -117.983339141724528 45.0312231372646039
-86302 -112.540200738532135 34.5603446330275048
-48003 -83.046255650687641 42.9246131308447829
-27695 -78.6811317142857121 35.786521142857147
-33169 -80.2144407663791981 25.9450495479903864
-47455 -86.9534554876032644 39.3130913719008319
-49544 -85.715470000743565 43.019647025539328
-12181 -73.5445544210526236 42.7922935789473726
-27890 -77.604341254219392 36.4198872542193754
-41848 -82.9478049696969322 37.1105367878787931
-72046 -91.962299428184437 34.5533106452574899
-07839 -74.8437111111111051 40.9939549999999997
-02859 -71.7267921003133608 41.9644894378739011
-75559 -94.631347591683749 33.4802736768315512
-25550 -82.0848838307823456 38.8618313564551698
-55052 -93.4400805893179154 44.2386231505734244
-50215 -105.583629399999992 47.423216999999994
-04675 -68.2398579623971386 44.2971714594594914
-72396 -90.7962280747029808 35.2287579655136298
-71966 -93.8984205000000003 34.5847282499999977
-47545 -87.0011508421052469 38.4135198947368437
-75203 -96.8040871705699999 32.7442709503964338
-36011 -85.6628567592592702 31.7013538703703794
-99619 -152.497883750000028 57.7428488750000071
-70447 -90.1894339405273797 30.4343641181840354
-89139 -115.213259748218192 36.0358310238774564
-10331 -84.5284070000000014 33.7255595000000028
-49016 -85.2979090000000042 42.3502645000000015
-53109 -88.1405126666666661 42.545177333333335
-71662 -91.4902217014217314 33.8425357867298615
-49038 -86.3299083421288884 42.2098215678528774
-64105 -94.589552429615992 39.1039580667275999
-37167 -86.5285404237325508 35.9606757115150444
-22847 -78.7075475057179688 38.7133553113087743
-04611 -67.6014270358880793 44.5049921849147907
-22580 -77.4537892783409632 38.1025388933676155
-30830 -81.980927970937401 33.0906152908139291
-59926 -114.029874434900478 48.3866806962025393
-37343 -85.2143811893725029 35.1630592276740472
-65347 -93.0512295471050237 38.9704622158979319
-14878 -76.9416027160817748 42.4513376364588666
-14810 -77.3393080695666413 42.3491411236826139
-74637 -96.7030484375330275 36.5686150848709559
-59033 -109.717028949284867 45.732336889466815
-95207 -121.325107417322585 38.0038776287447462
-77004 -95.3656265139608763 29.7282579649463123
-17738 -77.5935610961538629 41.2879098076923086
-27284 -80.0854981321932229 36.1178362632352545
-26588 -80.1402668394535738 39.5672996646741666
-88346 -105.580166343647406 33.3374396484529001
-58549 -99.887293185388117 46.4924711726026132
-86401 -113.948262500567168 35.22378961478978
-70806 -91.13060794718983 30.4472998310259939
-03860 -71.1319640178340649 44.0408526280692669
-52146 -91.2013603858668631 43.1764794708583963
-43127 -82.3242384351851797 39.4767807685185019
-98624 -124.020443776565415 46.3234558244781525
-71263 -91.4211720698396988 32.8746686132102539
-71411 -93.0817606285600476 31.9142785528778532
-34756 -81.6811002477719512 28.5895906037128427
-18642 -75.7653679159357694 41.3475687309941549
-78147 -98.0799239695182337 29.0699134611603185
-00641 -66.7228116976744872 18.2760661395348833
-91030 -118.158281918495661 34.1108256870562059
-55009 -92.8792851273878597 44.4882972823593477
-07845 -74.6280670000000015 40.8265121538461528
-06784 -73.4921132696485273 41.5795916431159895
-12983 -74.1821478679730575 44.3321177707286722
-58582 -100.596293500000002 46.3916035000000022
-03248 -72.0648985890410358 43.5065766849315168
-31088 -83.6617802216642303 32.5879578975709521
-83540 -116.796970802705417 46.3797470505971674
-10278 -74.0041934999999995 40.7154847500000017
-78721 -97.6847095146385271 30.2726226335773028
-47225 -85.3744007169811283 39.4459587735849055
-58529 -101.567104081184269 46.3383595093070539
-97507 -117.398666050000003 44.5297434250000066
-64058 -94.3396566334606206 39.1516273733624871
-65630 -93.2151255871367397 36.8302876203319016
-75706 -95.3218223812678218 32.4491779102957523
-72028 -92.4581647837837863 35.4926662702702771
-72648 -93.1136034674555475 36.090089520710066
-60054 -88.2858508571428473 41.7065100000000015
-47485 -87.2314877499999994 39.1919364999999971
-70577 -91.9362950930189413 30.5667074628114399
-51452 -94.7831966730769011 42.124903544871799
-27605 -78.6545041375054552 35.7904983076245244
-08827 -74.9689786626409642 40.6744787609480554
-28102 -79.9749860681818348 34.8134331136363713
-42273 -86.8674458522279025 37.208269908065418
-63663 -90.6442926317281064 37.6236061586402499
-14521 -76.7964693521754214 42.6751785871873963
-27316 -79.6320685538617994 35.7081069919390259
-26601 -80.6667806103475584 38.6441474176107036
-03750 -72.2025576035367891 43.7064704991443662
-14081 -79.0833663123993915 42.5632585040258604
-26298 -80.287331779069774 38.4910929186046573
-85606 -109.915945443430644 32.0172299649634624
-20675 -77.0126761532976047 38.584586417557901
-66510 -95.6267668006508842 38.5015756558177742
-58348 -99.5544139294493107 47.8480456008192192
-35205 -86.8053241765157111 33.4967940692631174
-03909 -70.6607374337621508 43.1573198049903723
-99652 -149.858837621517296 61.5412688275370456
-33042 -81.4712373250623472 24.6590861442307627
-01805 -71.2085650000000072 42.4861118461538538
-14215 -78.8093446345409916 42.9352954084539533
-23701 -76.3697744636155846 36.8088875784183074
-78180 -96.6040464999999955 32.7120034999999945
-06082 -72.5610613696380256 41.9882652412417912
-65323 -93.6197354839285083 38.4591072535714389
-10506 -73.6350855465612426 41.1869039823492287
-75846 -96.1720737813556212 31.3372240936824724
-62633 -89.8797111190564948 40.214449222263255
-17350 -77.0670735190180807 39.8800346703147
-07643 -74.0420534299876039 40.8493939101611048
-37035 -87.1278892665090865 36.3830071140008826
-36028 -86.389608817728373 31.4773999646967404
-28503 -77.5952466399999992 35.3181984
-31536 -81.7733029607843065 31.5756047254901944
-18764 -75.8680855000000065 41.2582420000000027
-17850 -76.8535794475308762 40.9636195771604932
-37348 -86.4411724090793854 35.1164722011537407
-82638 -107.400540208333311 43.1185939791666613
-07931 -74.6473738017999153 40.7111295344600848
-15148 -79.8007874712268972 40.3932591411509279
-79537 -100.217501928131398 32.2713550636550295
-60047 -88.0501256975726818 42.2030548039134814
-23413 -75.8771580730277861 37.4684779530916714
-93301 -119.022020849266994 35.3827712355979003
-80018 -104.713484223006105 39.6894913660018389
-44639 -81.2057871948051826 40.4523894675324698
-56047 -94.2328160740740941 43.7413109074073887
-13424 -75.3492477824609921 43.1511486587354938
-73641 -99.1402261033434087 35.2780125379939165
-55403 -93.2871480620416378 44.9694863801467051
-18036 -75.3981708361150709 40.5089817133096304
-80125 -105.062875172123228 39.4772196357727054
-14772 -78.9541713250698649 42.1569184959622447
-72432 -90.6961672716160194 35.5694665922629127
-11729 -73.3272941487043681 40.7609306699211658
-71602 -92.1102668840271264 34.2640426881924469
-56176 -94.7200982176844093 43.7830639535406831
-36754 -87.6987284997318 32.1367108053619219
-54974 -88.6702610654361933 43.8105655100671072
-77426 -96.2612868504920272 30.1251720212823493
-16371 -79.3258625361335277 41.865208539633521
-97439 -124.086240307561283 44.0102030324577171
-79788 -103.004707201232108 31.5643644496919862
-61846 -87.6250672031535771 39.9729375722658702
-58833 -103.525020126213562 48.9093433640776851
-98843 -120.030526764789528 47.7801031603425272
-22403 -76.4931907499999966 38.9689862500000004
-77961 -96.3460781740506604 28.8534808892405081
-72575 -91.6148343333333344 35.6970509333333297
-56318 -94.6689029577015191 45.8523387096966815
-08735 -74.0685553753138493 39.9828149616074171
-43036 -83.2638631964285878 40.352682991071454
-77531 -95.4034340091480431 29.0455640002230915
-66520 -96.6184425727209799 39.4230555305032411
-68620 -98.021704786233272 41.698568618817049
-16621 -78.0958195484283664 40.2980532450287896
-61739 -88.510914709388345 40.7365855537282044
-25260 -82.0286287350357668 39.0154889808460084
-62977 -88.5363933531073712 37.8464941574858926
-21104 -76.9140184597779779 39.3468339838187475
-12972 -73.5396024194836286 44.5685401123947642
-26150 -81.5253193970572738 39.1665265103109377
-63371 -90.9022505384615584 39.2615354615384575
-80120 -105.005562685994505 39.594062130240637
-47616 -87.9164311096696878 38.2061195837264052
-60473 -87.597690384305352 41.5978554228701114
-04730 -67.8753693184050633 46.1268591389449156
-81329 -108.127472600000004 37.1134342000000004
-39117 -89.6743724882575037 32.3419974357364595
-74562 -95.3764164833333155 34.2370712722222237
-17921 -76.3660505888038443 40.7564686321075271
-30056 -83.6697436826378862 33.4948798069987035
-04781 -68.5885182779953624 47.1507691088488059
-54980 -88.7720835315789714 43.9875416789473661
-38622 -90.1428898393782987 34.1712491036269697
-11782 -73.0807293781513749 40.7408361008403617
-65675 -93.4972771428571718 36.9306770918367349
-99217 -117.297544071903218 47.7255841669637917
-29010 -80.2801105645785782 34.2108032639484989
-58646 -102.271186533629276 46.2059432761375959
-45895 -84.1623573422613731 40.5775533927826757
-15469 -79.4379840500475751 40.0182745052431912
-66072 -94.96998969005692 38.3174030730192499
-06757 -73.4528744166856882 41.7341444513716624
-55115 -92.9566672820083966 45.061678729652634
-53551 -88.9063061212242616 43.0781485111287807
-93609 -119.841498727810333 36.5331748973372612
-62905 -89.3541332867306721 37.5708779589602457
-15468 -79.8422098187210167 39.9425285811096984
-16024 -80.0379246603773424 40.7406871273585125
-15742 -78.8603343005941468 40.8138339690334462
-54529 -89.6582914745723372 45.6881302744264346
-96082 -122.489477500000007 40.5927302500000025
-40437 -84.8237364504468445 37.4426384310345597
-97405 -123.115767626236817 44.0005146545424424
-25009 -81.7078904079403259 38.1865244177214649
-82510 -108.556662927678602 42.9954755910714681
-78015 -98.6470742394008937 29.7352911751493174
-00920 -66.0893419966232187 18.4088591553304148
-61239 -90.3921233822715067 41.4949135540166338
-01701 -71.4296397989322003 42.3205981474807089
-38725 -91.0181818197879977 33.6375782273262729
-38468 -87.3029510117035983 35.1327504360409009
-84651 -111.732789983261583 40.0278064826453175
-48835 -84.7459455729895268 43.0248087600525011
-03259 -71.3928332768942937 43.8623301375116696
-35603 -86.9794852983099531 34.542085894512546
-30741 -85.2774766015005099 34.9559732101552001
-88354 -105.514560463227156 32.7870702222831625
-84750 -112.241359030276101 38.4275673303650649
-52654 -91.6679677286691259 41.1442669372013654
-04671 -67.1460876824759225 45.0603691061093343
-57111 -96.4976245000000006 45.3444860000000034
-84533 -110.656225969827489 37.6543405301724121
-42280 -87.104456707619164 36.9437331547619152
-04855 -69.2568879152318573 43.92905640794703
-30031 -84.061876666666663 33.8187682500000051
-03068 -72.3932357999999994 43.1199909999999988
-78216 -98.4957285541019161 29.5405110750117466
-73939 -101.634998284507049 36.5992906788732029
-16661 -78.4486235619677359 40.8315813438978736
-65705 -93.6106294819151685 37.0090570574468885
-97360 -122.475269061705035 44.7525646462554434
-06019 -72.9056699226811133 41.8477013434849354
-40514 -84.5640384827717355 37.982068102791132
-28778 -82.4081795708990938 35.6028304891963359
-39465 -89.201747888625377 31.349415782845945
-60126 -87.940811904822624 41.892139295558394
-71836 -94.3996665257675005 33.7404754851057689
-30102 -84.6295011668441219 34.0968928705080216
-45365 -84.1607541101344623 40.2889642915968622
-45164 -83.7868391066667044 39.5526340466666539
-78600 -98.5539638571428611 30.502238285714288
-32617 -82.0922718525166601 29.3078366402693646
-62806 -88.0668623452706925 38.4004307561509322
-65457 -92.0589198569404914 37.8477240410764608
-72736 -94.4458449244454812 36.4073606042731512
-52237 -91.2542070818347923 42.3502507409576907
-19348 -75.7057964272292736 39.8607378254520555
-47912 -87.0235985333333133 39.739562333333339
-98544 -123.035046592592536 46.7381372592592612
-60077 -87.7566759210404825 42.0332001724907585
-61359 -89.2741363798076577 41.3647946442307699
-48128 -83.2628503288363646 42.3214747466273522
-17316 -77.0058578083476561 39.9641717718426364
-21140 -76.5847450520473956 38.9505878721776071
-49303 -85.8354068611111245 43.2753475300925814
-32647 -82.2892650000000003 29.6224217500000009
-88139 -81.9640129999999942 35.3781315000000021
-02828 -71.5571252082918221 41.8738314085913998
-23842 -77.2425503069844126 37.1329937032736694
-83243 -112.617318054490568 42.2722421786074918
-58705 -101.33376475 48.4222150000000013
-33202 -82.6489997500000015 29.9945230000000009
-73083 -97.4251328256880385 35.6270254587155861
-27973 -76.0723205879689459 36.3618859256145086
-74949 -94.7995839096267332 34.6790580785854488
-18059 -75.5346474892601805 40.7246722183771084
-92606 -117.805122625738463 33.6984779148608666
-93607 -119.577769307692307 36.8418571538461563
-56384 -94.5700724096386125 45.8073415421687145
-28371 -78.9920218609635043 34.9108866240116527
-93962 -121.647108458333335 36.6243249583333252
-51638 -95.2694955554221252 40.8395914562932134
-67039 -97.008188902463317 37.5201606078816852
-19519 -75.7267927826086833 40.3216854130434754
-32112 -81.5633939584095344 29.4315421634522458
-31520 -81.4946921243472957 31.1794212783899418
-74846 -96.9575891249999984 36.965189874999993
-77407 -95.7166318690465658 29.6812740108431719
-99965 -149.700698400000022 61.5474815000000035
-80010 -104.861669929449462 39.7359666868316666
-65793 -91.9590319865827865 36.9885305571023935
-81415 -107.624563751266308 38.6953532228074906
-54923 -88.9274785225114925 43.9727030462480712
-61810 -87.9273648596938244 39.9076379821428446
-21632 -75.7743770178227294 38.7106783261756107
-12235 -75.6942344999999932 38.2175399999999996
-05436 -72.5104546249999942 43.1015540000000072
-96039 -123.410276745321539 41.7671091368999967
-64493 -94.2967212407863258 39.6322035143325166
-54488 -90.3155886388888831 44.8497625381944331
-72470 -90.6963251219686697 36.4642153281027248
-84646 -111.579487426174822 39.5270688238255232
-14020 -78.1967625236313779 42.9962593427580586
-86501 -79.9938410000000033 39.6284132499999942
-07416 -74.586066032414351 41.1130505522569152
-33051 -81.0218025560345012 24.7220240215517286
-39194 -90.4380952935889866 32.8316479357942796
-44470 -80.9577134089027908 41.2939119347826207
-63631 -90.7847267909036759 37.7604597377437017
-28390 -78.9583104244279923 35.2284447540045207
-92637 -117.730499501344681 33.6090754341145086
-44115 -81.6720966445596872 41.4950437658030822
-12816 -73.3884174874294644 43.0525007443728143
-34476 -82.2100647842881642 29.080235572680909
-38342 -88.2876698113565794 36.0911202812152965
-22945 -78.5975737499999951 38.056092249999999
-99328 -117.951668502342656 46.3186163095570365
-24840 -81.4866696875000116 37.6837874374999942
-22711 -78.2906428318912333 38.4608324388133198
-34135 -81.7722405455167518 26.3534430417025476
-37032 -87.0201722992419064 36.5173836665591267
-85208 -111.642712268996647 33.4000586795881134
-66501 -96.2391924190476402 39.0531386476190505
-12435 -74.5100211558643082 41.7272050794752971
-76885 -98.8326476693658975 30.8634725748987968
-05361 -72.8685002375115971 42.7815830874963083
-99635 -151.222740987598286 60.7307259092446401
-90254 -118.397696721640671 33.8661010096180632
-39555 -88.494569846153837 30.6649055384615359
-10920 -73.9420628898245127 41.1521703529824876
-29433 -80.6189583928571381 33.0577656071428549
-69027 -101.501289927536234 40.4438944227053199
-14710 -79.4102563495431752 42.1018197521599333
-00654 -66.8890743333333262 18.0205933333333341
-34683 -82.7592042507644408 28.0793555564576813
-93461 -120.297728147835798 35.6469213754917646
-23433 -76.4931338710509152 36.9075609716311561
-70039 -90.3887478618289748 29.8979929622266738
-59943 -106.744006300000024 45.5641700999999983
-58652 -102.273794861470193 46.8414031572448764
-30148 -84.2869874033576707 34.4427342965992693
-33183 -80.4080306613239912 25.700353280732628
-97380 -123.907240894343403 44.7357521804292091
-14613 -77.6388121274298584 43.1820438977681675
-15075 -79.8226069999999908 40.5834398895027633
-04681 -68.6634708087742496 44.1692209207741513
-02169 -71.0002420559435876 42.2497138162227657
-67623 -98.9535660529986387 39.4503055299859895
-72661 -92.5839268558250126 36.4580478044983565
-24628 -82.214694697368401 37.2915132302631562
-66218 -94.8252377597829934 39.0168748837658796
-78261 -98.4217347126358248 29.679334175659374
-32118 -81.0043563609277584 29.2130690640218091
-03451 -72.4995367668216346 42.8017900564340792
-25118 -81.3027379703703446 38.1095508098765521
-33067 -80.2258340430186649 26.3034908469091953
-20658 -77.1607230759762928 38.5623921182451923
-77963 -97.410776366139288 28.7138505729252138
-25623 -81.8583642749999569 37.7559969625000207
-04895 -70.0347710000000063 45.3961660000000009
-59724 -112.763959787701353 44.7175297569545762
-82229 -105.050573561759663 42.8557027495769844
-77623 -94.4013292849161871 29.5606506927374397
-23126 -77.1439925419789176 37.925089129685233
-85553 -111.290076781679304 33.8429758076335787
-79322 -101.354247056696821 33.6947977429869852
-23930 -78.10428175266415 37.166486676068736
-29911 -81.1526311222969525 32.9266899096065373
-51008 -96.2682374642857042 42.8089109880952279
-07892 -74.7544162500000198 41.306379833333331
-77005 -95.4267119762191101 29.7181530122507667
-68971 -99.2389985107186448 40.0944314237074195
-97345 -122.577420083117772 44.4157041946804938
-40823 -82.9876481340382242 36.9777626532218235
-72037 -91.8713169047618692 34.5381209285714164
-70769 -90.9468353408381205 30.3130141553208325
-44907 -82.5247202738948289 40.7318539136145858
-97004 -122.467872175985974 45.2538542704301463
-48750 -83.3917545110655993 44.4553755704356064
-13647 -74.9725524729729926 44.6077397027027089
-52778 -91.0065879773678716 41.6046111553505682
-56127 -94.7776715436532271 43.5519685721362961
-24586 -79.2908365952857963 36.6040222460158375
-45820 -84.0843496633663108 40.8311335940594162
-67122 -96.3834759658703462 37.6337860529010015
-84025 -111.902932213706691 40.9872150697127537
-51588 -95.9307101874999972 41.9033063749999997
-39451 -88.6187547351923541 31.1600035208400818
-64068 -94.4211294043144136 39.2492127166880209
-21152 -76.6783572094098957 39.5456040480589266
-73055 -97.9413587036022477 34.6411070307032318
-72487 -91.3814713000000154 36.2891748999999919
-66930 -97.4327085142857641 39.7067055142857228
-83128 -111.016866253466404 43.1366979435665954
-60625 -87.7020344164894539 41.9704033857710641
-66760 -94.6224631241379512 37.3439663448275709
-16333 -78.9532017384341884 41.7213790960853785
-93030 -119.173919459647081 34.2088231753664473
-57660 -101.335338728778567 45.8569297556936135
-77045 -95.4367326218789174 29.6309733224356897
-38113 -90.1068346157517652 35.0976839379474654
-99131 -118.123001862590741 48.2779780423728369
-40328 -85.0308814241302429 37.5798751366735146
-93510 -118.193843109660619 34.4919963597692671
-52572 -92.6939149563935558 40.6733319741044355
-27288 -79.7552031338610448 36.4982860217582115
-97135 -123.95888070398685 45.2046433309666469
-83825 -116.613426504999879 48.2524075775000085
-39170 -90.3326471899738692 32.1256816044245781
-73071 -97.4129667369555392 35.2267717902530109
-37398 -86.1478541014525803 35.1909922003714826
-48763 -83.5798413636097024 44.2595360906845698
-49656 -85.6846693940358932 44.0551195738272909
-41271 -82.7232466118479977 37.8285277754199711
-38664 -90.2942991361622234 34.820678846421842
-06248 -72.3990215633801881 41.6813049550638155
-48063 -82.6787351351860877 42.8466531497880396
-99138 -118.281839363177951 48.2744753814209986
-75735 -97.8348252857142882 30.2404765714285695
-63775 -89.8892459580132339 37.7060144683653888
-78369 -99.0178586759776351 27.4393709217877202
-33459 -80.7993721249999908 26.6933601250000017
-92404 -117.264034394462769 34.1553617279357269
-61337 -89.3417999122023474 41.4293971741071445
-63765 -89.9920153333333275 37.3242745833333345
-54650 -91.2161650692810326 43.8913312240959286
-60931 -87.5913178270981234 40.889162522244618
-39395 -89.3140324999999962 32.9402515000000022
-45441 -91.2555784999999986 38.1950519999999969
-80487 -106.878510081698678 40.4805347543141849
-24330 -81.0143388296670963 36.7207065615505499
-19350 -75.7841711648758292 39.7693562305536759
-01749 -71.5545016537450209 42.3898060508110319
-05861 -72.0594781176470462 44.3792349117647262
-59827 -114.082224539234545 45.8908039995214665
-37403 -85.2978162037840804 35.0455303027198113
-85228 -111.524899513955177 32.974192635125938
-32136 -81.1334720127682374 29.4622084148779102
-62441 -87.695061513234549 39.3900386863524048
-63114 -90.364380062091513 38.7034663386017002
-95586 -123.648346578947397 41.0249626578947399
-86325 -111.916745395398607 34.7263285951004548
-44608 -81.5917965583546589 40.6521344030848439
-95945 -121.000459148034935 39.1956218585475256
-29765 -82.3949780000000089 34.4418875
-76133 -97.3781739740909558 32.652260808659662
-02130 -71.1133854938862555 42.310783633915662
-83423 -112.292716236734577 44.2073798428571791
-19960 -75.4027044152744992 38.8558979038981178
-72602 -93.1470108837209381 36.2975905813953474
-32327 -84.331428171506488 30.189992562260386
-59225 -106.012331197828885 48.2311732617610858
-29465 -80.1225233333333335 32.941082999999999
-04924 -69.5511296201313058 44.7682343251331432
-96653 -121.971142 38.6822397499999937
-57061 -97.0335601290322813 44.243445032258073
-91764 -117.619846570321144 34.077431103570099
-02461 -71.2080162345971672 42.3180951012188089
-56724 -95.7208895943737019 48.4585853861891991
-83841 -116.771462423077011 48.1899161672629006
-44856 -82.856803236842083 40.7937874999999934
-58760 -101.191701320000107 48.7051774825315675
-75165 -96.8208915667627679 32.4006403206244826
-04682 -68.6719259999999991 44.1534385
-03445 -72.215301005582262 43.005706547846799
-54667 -90.8564642417404542 43.6532985036261749
-23921 -78.6142202272971389 37.5986120094854073
-43760 -82.1851686033558053 39.8854646568068105
-53152 -88.2473683563218145 42.5780034022988474
-59484 -111.923686484225485 48.9541857988732687
-45341 -84.0238552732833739 39.8808007027280951
-23106 -77.2180406441476492 37.7313034670070735
-17823 -76.7298396378199357 40.7161234321881551
-56014 -93.8311589023827679 43.5828737207147654
-40826 -82.7754933912269166 37.0611105426793586
-71406 -93.5027975034280274 31.7296419618021339
-04575 -69.646787242833085 43.8448374232714784
-51025 -95.5627035371025073 42.4927218771405606
-18255 -75.8288019713686055 40.9473893401810258
-08320 -75.187815999999998 39.4059534000000014
-72383 -91.0245473023255585 34.4834454651162758
-70005 -90.1327306438428479 29.9978427093052069
-97137 -122.955962304595516 45.2189725320925646
-87374 -97.5890688749999953 43.728921624999991
-78612 -97.4952960167470195 30.0900406028121026
-41264 -82.6660789377560548 37.9401200540540415
-96705 -159.581836811563306 21.9095969379014939
-31602 -83.3133602494609704 30.8742559913129391
-59014 -108.904853695912607 45.2690950980926701
-73936 -100.538474666666673 36.9045619999999985
-13148 -76.7853233461204638 42.9047650669574878
-43326 -83.58459813550418 40.6482663130231785
-79424 -101.936119212633585 33.5036178675952527
-91719 -117.480813197183011 33.8092298591549323
-13774 -75.176875103416549 41.9668288790396673
-35160 -86.1185358410854462 33.4179045840780375
-87930 -107.318697906976709 32.8525363953488423
-37825 -83.6690747917103437 36.4164142918998053
-38401 -87.0314406583221825 35.6291645468771421
-42310 -82.7215523333333351 38.1682711666666634
-97541 -122.77362461426587 42.6983055983215891
-71007 -94.0165805783784947 32.3728413999999844
-63080 -91.1394479867202989 38.2272838236871522
-94124 -122.391060189295416 37.731968741658946
-80810 -102.370367111913211 38.8252338324909445
-49797 -84.6892901978609416 44.8776391818181537
-57479 -98.4516297491836667 45.3141574748530331
-62801 -89.1187041834365772 38.5224060353176725
-67123 -97.0080528042930013 37.9483579160354338
-57322 -97.9747280730638437 44.6104787347131762
-98465 -122.532686650711625 47.2482703421733703
-20616 -77.0806709878334999 38.6425002737483112
-10965 -74.014977756140155 41.0622138555555978
-78410 -97.5978430944170299 27.8481366188309956
-90094 -118.420073118896042 33.9746313694267599
-72265 -92.8017785714285708 36.0326698571428565
-50056 -93.3020430099552271 42.0149313294797082
-24486 -78.9267898359050264 38.2924437896154544
-62938 -88.5592076112383921 37.3612644135276426
-49255 -84.8373362180501687 41.7739446831356602
-57659 -100.6181034501993 45.640915398406392
-37749 -84.5563005000000061 35.9949280714285678
-35772 -85.8443420806726323 34.8780697990462301
-02538 -70.6497357007299485 41.7812925485401792
-82244 -104.331630714438546 41.8732524812835152
-29893 -81.7436110000000014 33.5089117500000029
-75936 -94.6035406449197893 30.9324949932263955
-77859 -96.5144438404753515 30.8861095984969971
-18471 -75.7024911795213029 41.5285883710106489
-16940 -77.2362004360189758 41.9791675308057108
-75097 -96.6490788775510623 33.3037699795918272
-83621 -115.774458500000009 43.8445985000000036
-75876 -94.9422387142857218 31.4829226428571403
-15081 -80.2377526416667166 40.5736583541667102
-41265 -82.733229441710975 37.764485748226889
-10017 -73.9736201016166603 40.7526707413395073
-85016 -112.026499367194589 33.5103387046701684
-49107 -86.3917525061001044 41.8409068796118575
-89147 -115.276270028371229 36.1120488728970699
-16732 -78.599883441379319 41.8574177758620536
-52580 -92.0905488598616984 41.1249960588235197
-41702 -83.1826593248407136 37.2770625987261397
-37384 -85.7260780000000011 35.2682831818181768
-75475 -96.2499951894272385 33.4746618414097057
-71241 -92.3703155645295482 32.7682227849609262
-28119 -80.021754919415045 34.8507917120733453
-57271 -97.5085203355122303 44.7304550100218137
-17379 -76.7754625999999973 40.1272282000000047
-57362 -99.0374237123479162 44.4779712388479211
-87049 -107.601533068181794 35.0789938181818073
-76855 -100.099861363636364 31.5515909090909084
-85024 -112.037843907304577 33.680467570041472
-68014 -96.9554485247932973 41.2776238450413615
-97491 -124.373895847457604 42.5910779322033974
-35543 -87.7300734378357561 34.2403857967781278
-76380 -99.2656363877163415 33.6111534399653706
-14047 -78.9893829776477645 42.6941301633847061
-75061 -96.9631831455540691 32.8269427626299546
-04056 -70.8729623840303873 43.6507080893535857
-15327 -79.9559904974796041 39.7523956794354447
-04664 -68.1762534128614277 44.528880481221357
-74003 -96.0026371672287127 36.7440626086120901
-29577 -78.8971460925311305 33.6970344492470701
-36052 -86.0537314408743441 32.1806229061697167
-59485 -111.527832500000031 47.4107216557177864
-93010 -119.054835106192769 34.2369463825467406
-13859 -75.2492339905062551 42.3714845316455637
-76476 -97.913842462490976 32.3676039305657
-47990 -87.0556279906334822 40.0668979812671893
-74105 -95.9633382545052029 36.0978850271116585
-89452 -119.958900236363633 39.2551291818181838
-17974 -76.2360076953642505 40.695806165562928
-54741 -90.9547326087751316 44.6029329634369063
-98029 -122.016342730353372 47.5641106692758626
-71449 -93.5411643922123091 31.5210854661915469
-37321 -85.0087071336493096 35.4984093904915454
-55934 -92.2604006790163993 44.0077740520153
-77612 -93.9529177354306029 30.4088822862803774
-25891 -80.7074750000000023 38.056789000000002
-06478 -73.1314219802743537 41.4267532038549362
-10028 -73.9539256065934296 40.7766423516483698
-77056 -95.4691554279226722 29.7502246685585021
-76686 -96.5419420411764975 31.7382979764705837
-93250 -119.203358886530822 35.6720459718493075
-92934 -116.208938928571456 32.8099675000000062
-31569 -81.675617446266159 30.8979645742788449
-69031 -101.405561500000005 40.1132867500000003
-76043 -97.7788350601833969 32.2145454994021065
-44730 -81.2645602463876742 40.7679840425098448
-19126 -75.1378644195402643 40.0546856097700825
-17777 -76.8374906502695865 41.101318125515597
-72922 -93.2986926666666676 34.285774333333336
-32081 -81.4284283630245653 30.098716285603377
-54491 -88.6811393081231785 45.1582288898226238
-83650 -116.505666799369038 43.1027851148264034
-56554 -96.1108429459008278 46.8287834266591787
-28608 -81.7176060263158206 36.1883542368421089
-56048 -93.6843914208788391 44.1056749575823517
-91941 -116.996192083369124 32.7611799694262444
-38946 -90.3632891684210904 33.3782054526315761
-18440 -75.7554494754901953 41.5592627450980387
-78582 -98.7657195976375561 26.4002923915324672
-48852 -85.0442418315789439 43.3544527052631636
-57212 -97.1290657474124259 44.3658633301251868
-58048 -97.2831947444055061 47.1772051951049747
-92835 -117.914441939826446 33.9013876691941363
-06783 -73.3005017580273517 41.5551878188073118
-29630 -82.7914430683631508 34.7412655262693022
-35234 -86.806721248587408 33.5378881165254654
-04758 -67.8581183755166677 46.5416433925620154
-07646 -74.0187697965248077 40.9332628398387897
-79565 -101.016129522916756 32.3603691895833165
-06268 -72.249860144434237 41.799154569680681
-88026 -108.151458963976765 32.7753403731988868
-58346 -99.4371456753047482 48.2988217499999948
-35618 -87.3035413990591138 34.6451863211290885
-77453 -96.0170929753086426 29.2208531358024715
-48227 -83.1918928611441117 42.3888476939857028
-60490 -88.1415801426689001 41.6829296208673483
-28168 -81.4211155775010553 35.55634231088181
-92669 -117.861044000000007 33.6303016666666679
-61839 -88.6400037519043451 40.1284102905332176
-11432 -73.7946986249999952 40.7105466250000063
-71955 -94.2197302222222106 34.5358515555555599
-63763 -90.1242067333333381 37.0662358000000012
-30602 -83.3739229847715535 33.9462339695431723
-62216 -89.6079167653013968 38.6193419148642931
-79178 -81.6172358000000031 34.4959741999999991
-77654 -94.6864767555555602 30.2025842444444343
-23507 -76.3013404852941193 36.864727363171383
-25206 -81.7134642660332133 37.9779667909738734
-02769 -71.2484768869640135 41.8415026686964495
-39162 -90.5994641526627333 32.6380826733727432
-43845 -81.7341866294477626 40.2591885858069034
-46996 -86.6370030705851661 41.0600424491333769
-10508 -73.6264552307692242 41.4043250769230866
-98833 -120.452947440095912 48.6155599944088621
-32950 -80.5828667630622419 27.9791166591226101
-46075 -86.3460786604936175 40.0023292528658914
-24457 -79.872833060773516 37.7935465248619025
-92607 -117.778281571428579 33.8511181428571462
-54846 -90.7345349069767906 46.3781481113830907
-96107 -119.472072185277895 38.5309195177767307
-66871 -95.6139831689981037 38.3609244745036264
-32831 -81.1532197641025164 28.4605361025641166
-40208 -85.7659653692056452 38.2183001338735906
-56267 -95.9066276520259606 45.5982948198277853
-65565 -91.2788119591546234 37.9318258093508405
-56547 -96.5667232509896252 46.8918465989706021
-97539 -122.812831898461383 42.6153715495384375
-97049 -121.933530232157608 45.3490931381742115
-16729 -78.485809779205681 41.9591908119159385
-49104 -86.3610599999999948 41.9638547142857163
-57762 -103.583425549792622 44.7061184114799772
-98445 -122.410628543801735 47.1345911102840915
-24451 -79.3609230000000139 37.9926475000000039
-95349 -120.6742165 38.1892189999999943
-95524 -124.053207495085019 40.8270692189454607
-53923 -89.107215940828425 43.546661548323506
-50133 -94.047744716917876 40.7112106298157954
-67651 -99.0744285689320208 39.2410661501617852
-40009 -85.1063199404270421 37.487544799299215
-92592 -117.064228939233217 33.5091990286769956
-52101 -91.7658155788158325 43.3405360363499952
-31699 -83.2062485806451662 30.9577916451612793
-43179 -81.4678475000000049 39.807170499999998
-65243 -92.3660506346778476 39.2565256405866165
-24094 -80.5550109926471691 37.423702062499963
-24845 -81.7148306554621797 37.5791540000000097
-35441 -87.7242647812831393 32.8550207932001044
-46385 -87.1116201441172677 41.4819048557139283
-16230 -79.2736331901234479 41.0227650296296602
-72908 -94.4101496073544268 35.3015013902726977
-62343 -91.2329111678952813 39.7317828149057775
-38153 -90.5900646666666631 33.3463769999999968
-40134 -86.5192685000000097 37.8155299999999954
-45739 -81.7484052575757687 39.1909588636363608
-05250 -73.1784973718535952 43.1067182743709196
-14070 -78.9153015550122774 42.4437387393641714
-45332 -84.7908721878171576 39.9946154340101714
-57626 -102.279762470213527 44.9935094020232
-31036 -83.4987803808048454 32.2753684343946716
-67059 -99.1041706702127954 37.6301886914893799
-76442 -98.6094274492934062 31.9323707799327288
-65333 -93.3077971701220861 38.906650970731647
-67836 -102.014125137931032 38.0145055086207009
-63654 -90.8523730722891116 37.4607576163113762
-61467 -90.2404302132131164 41.0693435893393115
-29127 -81.506088475989003 34.1535983682039443
-47388 -85.4452440909090853 40.0045839518716804
-01520 -71.8434614135157261 42.3399680685190347
-20132 -77.7242182682346083 39.1582167567136352
-00638 -66.4835596597511085 18.3268634024896464
-91604 -118.391295430824854 34.1377790058584765
-19770 -75.0859401818181738 38.5466310909090879
-29574 -79.2601439460122066 34.1914670016012252
-50263 -93.8609388246216696 41.5938034322046803
-75407 -96.4938240426266702 33.1571733210594601
-53137 -88.6694625000000087 42.9789635000000061
-95151 -121.740971433333328 37.2260833333333352
-39110 -90.1394107272964078 32.4945436784608219
-47960 -86.7572148859496224 40.7825459868506144
-28216 -80.882592097630905 35.3074205914159123
-18801 -75.9256794136229018 41.8382068687828692
-99146 -118.196539427397326 48.9264735589041138
-63950 -90.4333625049504946 37.2550327524752447
-16841 -77.6773640567200516 41.0325630276164262
-65065 -92.6712515709430846 38.1346304976917594
-97017 -122.404886305217715 45.1806808913299847
-17265 -77.7837448537253096 40.0465655905672619
-48104 -83.7192734296039589 42.2639003934479049
-53401 -87.7993950000000041 42.7376830000000041
-39095 -90.0818870965004663 33.1028311213996318
-68728 -96.9625097457628016 42.3784987415254335
-78504 -98.2337567304184205 26.2676504705460161
-83854 -116.958254435935601 47.7185484235692456
-00615 -66.062276120000007 17.9655146400000056
-50573 -94.6257039325842726 42.8832633258426981
-38923 -89.9926173744799627 33.3839923381414465
-29170 -81.1458796220949097 33.9439016499224593
-06902 -73.5438990643194757 41.0580023279850153
-25976 -80.8477107500897318 37.8484909298307528
-70510 -92.1538313100471811 29.951014902993311
-13056 -76.0727124999999944 42.6727245000000011
-54848 -91.0979590043543368 45.4645179947120894
-82085 -106.050583200000005 41.9251526999999982
-57438 -99.117022772969392 45.0458745825566851
-77064 -95.554213800147906 29.9175414380646174
-82604 -106.434419777675672 42.8322168832943717
-55079 -93.044964877977165 45.4095243404903783
-28909 -83.9073326488191498 35.0014123097170256
-56763 -95.3221509259512487 48.867439864470235
-43543 -84.6356899114516636 41.6105736131583797
-47802 -87.3975728099556903 39.3852813482274726
-39755 -88.9601119031490413 33.6079480986334147
-65506 -91.543923250000006 38.3519793750000062
-56058 -93.9083493439552086 44.4496667091541084
-74435 -95.0921816461746801 35.5643485942622419
-68502 -96.6934817517381191 40.7869138612516551
-35961 -85.8579940541037701 34.2703196540302457
-17036 -76.7019433216428439 40.2767563506585233
-19064 -75.3356397907503919 39.9307742197263096
-92229 -116.861564727272722 33.8475079090909006
-74054 -96.365074356269119 36.2734925305810307
-31005 -83.6070956421268647 32.5484513461147387
-35154 -86.1715712499999995 33.6039085000000028
-13340 -75.1184830207482577 43.0473524066334434
-12767 -75.0035750033898552 41.8445467593220144
-30911 -81.9607230000000015 33.4713864000000072
-54230 -87.9026877270570708 44.1545061584788883
-72347 -90.982920711722528 35.3639305424641108
-64637 -93.9253393549246454 39.564448712511151
-15722 -78.7232768252100925 40.5993637417366529
-16829 -77.9123214098883494 41.0713559710261151
-79912 -106.539171481369252 31.8487617649406012
-32765 -81.2092891288416183 28.6474084380865364
-49642 -85.7808941476269666 43.8878249374796283
-62349 -91.20940037505666 40.1667117094441863
-62844 -88.0074163454060709 38.257986486847102
-48363 -83.1700227514021435 42.7654367047222337
-43139 -82.5665565000000043 39.5180419999999941
-54964 -88.7235533379043773 43.9324768985189351
-57778 -103.768662858921232 44.1248554688797014
-20195 -77.3292630769230556 38.9472429230769279
-54865 -91.3961439698292679 46.7613114078518137
-50675 -92.4913160111646846 42.1944999809433057
-38108 -89.960117466116813 35.1731812126903947
-70078 -90.3844881904761905 29.9791818571428514
-15807 -78.5062843541666808 41.5956150833333353
-76015 -97.1336643844402943 32.6919367891579142
-05740 -73.0890215876777205 43.977322682464461
-46789 -85.2005998461538496 41.583051999999995
-56363 -93.6466701718750016 45.6964791875000103
-92593 -117.079049999999995 33.4940496666666618
-65582 -91.9334417578925667 38.1871974486724852
-73527 -98.6124664037167662 34.6039053671900447
-87375 -108.82765321879009 35.620341220077222
-58484 -98.458719076994953 47.3735838880075448
-66077 -94.9608290983606338 39.368626344262303
-69631 -103.678241913043479 42.1623296086956429
-38462 -87.5486194964584428 35.5282159209258808
-84704 -112.291418749999991 40.6345227500000021
-29973 -81.231474185185192 33.9001203703703737
-20184 -77.8778505953845297 38.9881376565383704
-33826 -81.5500307500000048 27.6222437500000026
-61466 -90.482830301747228 41.1099764106183159
-12819 -73.465148889318499 43.6147778438859532
-19427 -75.2273165000000006 40.0318299999999994
-37660 -82.5582398218228093 36.5448192063405131
-92227 -115.528415477736573 32.9855936908834906
-12010 -74.1793586247084562 42.9397604817300405
-29603 -81.1993616000000031 34.114530699999996
-38339 -88.513535860173576 35.0512486387014377
-26287 -79.6827541312662078 39.1675828858839594
-83277 -112.675574776632246 43.0843408213058368
-15650 -79.3930546275074107 40.288674457728078
-90705 -118.327448000000004 33.3447286666666685
-82314 -108.104987666666673 43.2357676666666677
-54638 -90.3811705708289566 43.8010829862983329
-96001 -122.432274920373743 40.5627489425371195
-12047 -73.7203173432114625 42.7790167263651
-57235 -97.2990644525169017 45.0532666227296232
-50592 -95.1833013392857765 42.7285294464286025
-66955 -97.3163240919999453 39.9627234320000042
-40142 -86.2050341042801307 37.8895771447754797
-05354 -72.5185462681545516 42.7611345103264284
-80842 -105.780182131386837 39.93261305109489
-59549 -110.550608166666677 48.5636098333333379
-10970 -74.0426451262599272 41.1886521671087351
-98903 -120.628505530212308 46.5534054615517192
-37040 -87.3378016683169989 36.5363796022420289
-48329 -83.3847982171509727 42.6882788057976015
-48710 -83.9731928333333286 43.5166745000000006
-24577 -78.9853558169075569 36.9398626837099044
-94134 -122.409060318831791 37.7194696954708064
-27431 -79.7927356666666725 35.4723196666666709
-62478 -87.7209017545873451 39.1716342637614829
-54455 -89.680300529448445 44.7873113537053413
-78823 -99.9021776129032872 29.908337193548391
-81520 -108.444869300237798 39.0858800041619361
-43157 -82.5453890728155102 39.8414429708737927
-38551 -85.4971542624809473 36.5503603288866472
-72837 -93.1157599659692465 35.4236696522895684
-48536 -83.3157456250000052 42.983767874999991
-99801 -134.562751554587095 58.3657448299623454
-66534 -95.8077310416479264 39.894385164101493
-15223 -79.9530758652140889 40.505356540663918
-05674 -72.8535325165442487 44.1128717406688367
-88032 -106.835051983695706 32.3947929239130588
-29032 -80.4745991218867118 34.3425248149607256
-91205 -118.242554277094385 34.1351932524898842
-93002 -119.371681745098002 34.3721032156862734
-78960 -96.8810460857142743 30.0800510380952417
-40913 -83.5386974999998984 36.961698107456094
-23109 -76.3256622037962842 37.4304678858641751
-78377 -97.2883245384831241 28.3354345317660368
-66427 -96.4470813453803828 39.6743152243369082
-04419 -69.0400456017082433 44.802570673785219
-24896 -81.5938140909090777 37.5464242727272719
-70433 -90.1057875866181917 30.4588357858200247
-36618 -88.1762900464177619 30.7329216667183474
-79845 -104.385727327691484 29.5938267118006308
-17779 -77.3782267086330364 41.198933147482002
-31211 -83.6018767971003172 32.8935093627817992
-73932 -100.523856121752047 36.8073726733481195
-22909 -78.4542932857142716 38.0290650714285761
-36727 -88.0228220700524417 31.9063182784588584
-18635 -76.2117335703820089 41.0314493237573785
-62841 -89.0003932584269535 37.8585647191011248
-45416 -84.2581154109356589 39.8057116480136699
-19520 -75.8051404647541887 40.1575155604728664
-78057 -99.029617303107031 29.0368516853323939
-85531 -109.789941201612947 32.8687860026881822
-38141 -89.8468350271949419 35.018063332865168
-34945 -80.4542524842570543 27.4257392109572926
-29210 -81.1112149861418317 34.0454584940354081
-78735 -97.8643734343257279 30.2615015334770412
-81639 -107.259374262616177 40.4691714035070333
-48348 -83.3926885571415397 42.7652462796590456
-97403 -123.059759624361604 44.0366091078585598
-00917 -66.0503340500510205 18.4234511057200869
-60645 -87.696283934640519 42.008855171061704
-27606 -78.720476959720358 35.7441926531532701
-77471 -95.8171498126529997 29.5441198301459202
-55065 -93.0094682875340482 44.5369576242037652
-63779 -89.6409352307692302 37.5011115769230798
-81210 -106.641646081562243 38.7956725910370395
-49921 -88.5823625454545436 47.0928001875000248
-96857 -158.040961548387088 21.5109898064516116
-29364 -81.4621145454545683 34.7889204545454689
-84738 -113.681841216987678 37.1709157036474167
-25259 -81.2531558948769685 38.672651303171456
-36262 -85.4535170020170938 33.7659059737752614
-51536 -95.3789655922181794 41.3851866926070855
-10522 -73.8656615597979282 41.0122581107605555
-37752 -83.5761529087469484 36.5708903535470427
-11024 -73.7398814662824833 40.815623050720454
-36585 -88.0392302411655123 31.4040709150650308
-45372 -83.8358311435897292 40.0138294205128346
-95820 -121.445401095623495 38.5348452519444535
-15686 -79.4343925478056292 40.6219407978056708
-35232 -86.6327527777777675 33.4454856666666629
-67020 -97.6834039331076696 38.0053301703640614
-35070 -86.7477070458937902 34.0116726787439561
-02724 -71.1764451349550029 41.6841493802064775
-45146 -83.7956296539075964 39.3187290967570249
-48889 -84.7970248209875592 43.2944648441357884
-32579 -86.5718653527191719 30.4455566732123799
-59007 -109.147310718631061 45.1561590912547572
-24991 -80.4819271667744403 37.977883050420111
-87901 -107.250476466975272 33.139506157407645
-27349 -79.4188288825107946 35.9032379688259624
-57245 -96.9191215849056817 44.8920150377358453
-95548 -124.053675380434569 41.5676417455842824
-49762 -85.2650231692308438 46.1318717538461414
-22938 -78.7925182355110962 37.8576409873009041
-25505 -82.037508911504446 38.0072464557521883
-88263 -104.090816283018839 32.2303049119496947
-72442 -90.1778575314411626 35.843963336486766
-95701 -120.795553151988443 39.2129854161931917
-58656 -102.432609339981781 46.8871944401631069
-16882 -77.3668176641391057 40.901475933541434
-48095 -83.0397256885246833 42.7821526784363186
-03843 -70.9697917499999988 42.9637367499999954
-74552 -95.2550496445496577 35.11590099932301
-26572 -80.3044023176471313 39.4975307333333703
-75130 -96.3632272307692261 32.1299023846153844
-70465 -90.5169546393442772 30.8767016284152795
-80294 -104.989794875000001 39.7494485000000068
-45233 -84.6648895863023938 39.1198054843364744
-40342 -84.9837175234751498 38.0013003634888165
-64735 -93.7269094532356917 38.3651682908885547
-76251 -97.7028747310272649 33.6481785369127806
-99733 -144.14641509843409 65.774933733780756
-32935 -80.6506024216993183 28.1413255121384474
-97110 -123.95977501545606 45.8893546468314923
-90504 -118.32945575101499 33.8706790854883621
-73873 -97.0498739999999884 35.188406999999998
-51105 -96.3788534358574793 42.5039484476615357
-54729 -91.3817635556624595 44.9375061591200478
-40048 -85.472251042253518 37.8491534929577469
-27534 -77.9187896361429182 35.3750032517290052
-59416 -111.620623916666702 48.0390180201343497
-14170 -78.6697459050631949 42.700473315400842
-33762 -82.6849815726708215 27.8894869652174044
-60062 -87.8452880983448097 42.1262754141189149
-46012 -85.6416639993201017 40.1348791133998049
-74736 -94.9791167571428758 33.9451968476190586
-23149 -76.6096899662342281 37.5761905163668075
-95315 -120.775294534512469 37.4242947175174194
-13237 -75.8789038888888996 43.0867434444444513
-97303 -123.02226170507997 45.0028998926814978
-64020 -93.590789371832301 38.966240320662763
-28373 -79.479037390097929 35.100161352013096
-05647 -72.2882148605934276 44.4109915258957031
-35505 -87.245131750000013 33.9256929999999954
-97461 -123.466179267798196 44.0942387086527248
-18225 -75.953462256756751 40.9887806756756845
-90023 -118.200825484840976 34.0233084976584124
-42762 -86.3915595857003069 37.4538625876591453
-21519 -75.813525999999996 39.5269325000000009
-53114 -88.7271628679536661 42.6032459073359036
-36521 -88.2069250059210503 30.9532257496300538
-25962 -80.7969902471649277 37.9645909344812722
-12721 -74.4277536721250499 41.5694428387917441
-83844 -117.009549761904751 46.7286046904762031
-61319 -88.7426199136706799 41.0234390775502433
-50105 -93.6424740447976944 42.1116699248555193
-50402 -93.1325180000000046 43.1481539999999981
-80439 -105.36053742628016 39.6427093568155939
-29302 -81.8620765217709305 34.9180847326016419
-36439 -87.3418051320754216 31.4267778339622517
-30582 -83.8929140358358296 34.9537616180442896
-53132 -88.0048016361120631 42.8979901206967824
-95830 -121.284505661383363 38.4731061498559228
-44082 -80.5621327108105021 41.7607664578377751
-75954 -94.0678250726432594 31.9327649770658262
-72256 -116.587510285714288 34.0618306428571458
-01263 -73.3176551999999759 42.2966364800000036
-21032 -76.5985700402656988 39.0395399097460754
-59410 -112.50866033600704 47.4892374972786513
-67472 -97.4219755000000021 39.2480887500000009
-33611 -82.504402100733401 27.8902416276187033
-31024 -83.3354248293491366 33.3034238250724357
-17923 -76.3204421179775068 40.6707558792134947
-46377 -87.345615200565021 41.1897401864406802
-40921 -83.924312550655543 36.7834359785458673
-28462 -78.292595434968419 33.9515038963799967
-29554 -79.4048720629065912 33.7136014709257381
-10704 -73.8619194310145986 40.9194212232493726
-75554 -94.7881149731143751 33.5597381292090944
-25110 -81.3824492070844769 38.2114980626702732
-25251 -81.2309970973901727 38.6226801311266641
-88462 -103.579217749999998 35.5402760000000058
-39447 -89.0381153750000038 31.7749060624999977
-76640 -97.0861208119835908 31.685404362603272
-12764 -74.998947137375751 41.6032291603619129
-52154 -92.1657133106219959 43.119138483937796
-64733 -93.8393841824850341 38.57815303180044
-21821 -75.9351524446607726 38.1671112689011025
-72122 -92.7647321668245013 34.7663248377835856
-55765 -92.7573896681611814 47.1076771439462263
-66855 -96.0292015000000134 38.1130172499999986
-24042 -81.1247651666666627 33.3279778333333354
-77660 -94.1698095467754257 30.6635084599575194
-08514 -74.5051319661018141 40.1294036771392939
-28101 -81.07707714573651 35.2571101782945746
-16506 -80.1470723718456952 42.0692152834492745
-03871 -70.7718131000000028 42.9811142499999974
-53569 -90.4516885331885163 42.9891514149167122
-95972 -121.323081942857058 39.4401017285714346
-32410 -85.4053846666666772 29.9419599484126913
-83406 -111.949167272313474 43.4622630123109133
-18632 -76.3801419053708486 41.4790908951406792
-15954 -79.0110778472978694 40.4239310575112114
-14437 -77.7207379630685011 42.5695569569135515
-52774 -90.5968011675392404 41.9092330523560292
-45631 -82.2476343675428154 38.8178524805984821
-28554 -77.5841087429805185 35.4802716825054176
-97411 -124.393970339908691 43.1011402336467029
-28452 -78.5523878832753439 34.0037708571428681
-69219 -101.11599527777777 42.8285516111111093
-82726 -104.614438000000007 44.3094214999999991
-72904 -94.3885326019750721 35.4049470400205522
-50040 -94.1131512985074181 42.1872583283582117
-24266 -82.1113863591321831 36.8712748093249516
-92397 -117.622499129446183 34.3663921270849002
-55341 -93.666910479596325 45.1609928968845864
-99017 -117.874929822541802 47.1749321882494357
-86031 -110.110791755102028 35.5323535510204138
-04685 -68.4357079344811154 44.16238932878057
-72703 -94.0985830522362789 36.1076315929563947
-46939 -86.4083354842918396 41.0040658695278211
-69218 -101.726490216216206 42.878408740540543
-77373 -95.3900503736020511 30.0604652460408381
-96776 -155.364966234042583 19.9901955957446802
-47454 -86.4709439045808921 38.5233748981313084
-64078 -94.4649836503486426 38.7098668316188181
-38230 -88.7755949444560599 36.1496358747860285
-36613 -88.1806542291266169 30.7964613892690586
-28712 -82.7495519551974184 35.1792335885618783
-18336 -74.7161875513747589 41.3728281804147713
-11379 -73.8822340833333158 40.7242934166666757
-51050 -95.9468415031230819 42.792169427712146
-41071 -84.4838965643386217 39.0779073761046547
-75235 -96.847369155685854 32.8281177505275608
-30077 -84.3511860000000127 34.0298269999999974
-92612 -117.825310140963126 33.6595926417305762
-95250 -120.436819581632719 38.2306762585034079
-12143 -73.8448007609937491 42.4795277799250997
-28310 -78.9992406929134177 35.1173395275590394
-98370 -122.63340415712571 47.7450377996563589
-32129 -81.0239618331933826 29.1371118205801984
-51012 -95.5580568514928501 42.7434792780855446
-83602 -116.13535007042266 44.0746827934272289
-41731 -83.0757893253565953 37.0976522194264575
-71361 -92.4006943478260894 31.3632776521739167
-86312 -112.393294536796517 34.533492536796544
-75759 -95.414310303030291 32.0348678484848506
-79853 -106.084633144898021 31.4464178489796105
-04848 -68.9055008058822551 44.3091047373402844
-26570 -80.2277126650225227 39.6286851912590095
-49874 -87.1696978421052648 45.7715910000000008
-22476 -77.0590322959075706 38.0458760524659638
-06416 -72.6657270482045874 41.6117429918002628
-65270 -92.4300760023962198 39.4174730193857386
-74432 -95.5656905933620635 35.2747994558591387
-74434 -95.216084136817102 35.815360111480615
-74455 -95.2943059873418434 35.357358574683559
-75505 -94.2973705999999936 33.3737342000000012
-97913 -117.064276692613916 43.8384002092377045
-32538 -86.2953980263157661 30.9454876578947378
-38643 -90.2632855681369364 34.1779951303488758
-46185 -86.1057634999999948 39.5698255000000003
-65785 -93.8115158177365487 37.7014758382814748
-92329 -117.54010039539348 34.4693823166986348
-12507 -73.9243105531914892 42.0017821489361793
-97414 -124.148456793814532 42.9962461556700859
-31733 -83.5033809810679202 31.5800635669902832
-71282 -91.1918071515556932 32.3985950477458502
-41097 -84.5750491915683256 38.620778080453519
-47374 -84.8910701911221679 39.8317850350780063
-89123 -115.145666899604237 36.0324949920273667
-43946 -80.9706862959303351 39.6456855241105686
-02840 -71.3150079267220605 41.4847808848820208
-98935 -120.024596127486362 46.1916204541140019
-06235 -72.1264914071317094 41.7877071562790121
-96760 -155.055234703125052 19.5566002656250006
-72053 -92.2279768494623653 34.7081163978494516
-78131 -98.3412916666666632 29.8008431999999956
-90731 -118.291354198656222 33.7343801779142396
-32611 -82.3862065000000001 29.8110110000000006
-87574 -105.904966610942253 35.8109004680850944
-00987 -65.9537652556213487 18.364053660355026
-62374 -90.8971090407523405 40.4107964666368034
-12205 -73.8230461327542002 42.7171192353270399
-18708 -75.9496171199682379 41.3041616124703594
-86003 -111.536961500000004 35.2627954999999957
-57048 -97.1786149899561309 43.722512359729663
-08557 -74.937247499999998 40.4509093461538498
-86329 -112.232866672559609 34.5030591944657701
-52201 -91.5488943690293411 41.3276907141758301
-97880 -118.947957330568812 45.0954026783175479
-91790 -117.938101979122919 34.0668442836638619
-45287 -87.1512063333333344 41.1739376666666672
-17737 -76.6874384779851965 41.2750300847582139
-62052 -90.3309072758278404 39.103333463667731
-49614 -86.1276826883819666 44.4356047607882516
-67548 -99.3096287731255813 38.5394882541383126
-19026 -75.3033362389183196 39.950008740866835
-54856 -91.1043668124790855 46.4376883406350416
-88202 -104.771862074074107 33.3314395061728419
-46065 -86.6126378003805542 40.4245634348653198
-47536 -86.8363379473684347 38.1129056842105243
-17832 -76.4637434093959882 40.8051378456375815
-38017 -89.6777100078254676 35.0602080346809188
-15210 -79.9880052768557448 40.4076346322268449
-16868 -77.8821548852458108 40.7338214229507827
-37756 -84.4223379084993582 36.3593162649226898
-03906 -70.7684645446824305 43.334955230287143
-12926 -74.3264055574283873 44.946058928655475
-18371 -75.0308206050687261 41.1609706008447844
-32425 -85.7203738141147937 30.8600273165168133
-76009 -97.2150354546500495 32.4231512641319028
-32835 -81.4859095742549044 28.5236700003520198
-43928 -80.8920920048780374 40.0062590243902676
-72132 -92.1979114788731664 34.4482888665958882
-61038 -88.7343385381280569 42.2546112071057678
-61748 -88.9680213717686001 40.6311462085034876
-36693 -88.1554888989564347 30.6307808391651122
-53587 -89.905502551026899 42.5862744653402459
-16509 -80.0642121156213022 42.0702603137387925
-17212 -78.0783521395014333 39.8107446445145143
-75076 -96.7057098311296528 33.8174424542932002
-00635 -65.642256885572138 18.2201654527363281
-01241 -73.2031679999999909 42.190437799999998
-87723 -105.38713250183153 36.0611156300366744
-08311 -75.2043487308838365 39.3293271529294657
-10271 -74.0110379999999992 40.7084054999999978
-38348 -88.6390785898361884 35.8593959077183229
-70404 -90.5016594285714291 30.5059139523809577
-19333 -75.4241011428570829 40.0459532396764715
-37763 -84.4938208182708479 35.8351789683102169
-85209 -111.641730331967977 33.3755772107926276
-28988 -117.169926875000002 34.1231350000000049
-29583 -79.5714364242901837 33.972425902208137
-50327 -93.5011124935654721 41.5895412884178342
-64088 -94.1932281215961495 39.1591655782140933
-07099 -74.1067369999999954 40.7469422499999965
-18938 -74.995394335491838 40.351363508709305
-18347 -75.5543814971007066 41.1376599130174441
-62220 -89.9805588523878583 38.4995937115605713
-68364 -97.1978318487179109 40.8167724230769053
-97806 -122.566955500000006 45.4503880000000038
-46511 -86.4245136065046182 41.2187221073048491
-08074 -75.1386803333333404 39.7146276666666722
-51543 -95.0697257820823154 41.6568652590799076
-12995 -74.2663945789473701 44.8148441578947399
-45389 -84.0255461068965133 40.0564961034483105
-54123 -88.1566680652174028 44.2100362500000159
-04915 -69.0296089252578184 44.4540877801740493
-23868 -77.8160427337579819 36.7304915210191751
-15673 -79.5575229327052682 40.5922970026918222
-29386 -81.8110537045454436 34.9065304090909052
-62365 -91.1656269782608035 39.7919194987212208
-21742 -77.6783812360750687 39.6650241609372713
-05857 -72.2974851132043739 44.9449826962858623
-87511 -106.044462910407219 36.1129420153845899
-04231 -70.8571847032928019 44.2512530819613445
-88317 -105.685734395879251 32.9256778522671922
-97480 -123.824001506649239 44.1080113123580659
-71264 -91.7702651734042547 32.6023725468085033
-77371 -94.9884805632423763 30.484666670795658
-31629 -83.6871416878797731 30.8124012861775753
-33912 -81.8303524095839663 26.5341888291139476
-44676 -82.028842219364023 40.6755311891166471
-98922 -120.920025791667939 47.1930934739471581
-70528 -91.9888146436961023 29.9487223101018039
-15045 -79.8870576930329861 40.3261315191198833
-72333 -90.8747796386805931 34.3106068185907134
-56669 -93.1633904687106593 48.4199875441065188
-31037 -82.9229134412347264 32.1069639014642334
-42303 -87.0663538572732136 37.7576056749031892
-68667 -97.3110950332102931 41.1056599372693867
-72531 -92.1337714151909069 36.327065359569886
-86314 -112.325483464801849 34.6066448733798708
-95922 -121.074994912128204 39.4406390805727227
-94963 -122.669943759955842 38.0134542433627871
-46290 -86.1647202233333331 39.9358468099999939
-67627 -99.2161635500000045 38.9275236500000119
-70720 -91.3595448571428648 30.5569324285714323
-39344 -85.5471924999999942 42.5999300000000005
-38360 -85.8738732857142821 36.2906022857142858
-30607 -83.4435808496839826 34.0134220404403891
-62305 -91.3456882045436345 39.9273195879273644
-45112 -84.1393505962440855 38.7929231643192409
-97116 -123.143740053291893 45.5503737135018554
-39140 -89.9819283284944333 31.7393542779107634
-46407 -87.3350577326358462 41.5809153588669531
-56514 -96.4016973860597943 46.6675154539117258
-12923 -73.9582513994280504 44.9434261811248561
-80727 -102.488098753593249 40.0816808490760224
-49746 -83.963585722535683 45.0718590182494765
-43713 -81.173342029511943 39.9722519883123724
-77514 -94.674547605369213 29.7166702351636154
-50674 -92.0725413971344153 42.8500272411755176
-50451 -94.0882506430697561 43.3792885353955811
-91303 -118.603294837185899 34.1979772185929818
-48326 -83.248946996526044 42.6727997533342389
-08062 -75.218761138118623 39.7229580930988107
-60179 -88.0871081874999931 42.0322119375000014
-78580 -97.7783276235231398 26.4792377575757634
-85132 -111.396213556897649 33.0498776397311431
-27842 -77.8618961065211295 36.5262856647978893
-35545 -87.9196471593406841 33.657443450549458
-31751 -85.0462116666666788 31.602625833333331
-02339 -70.8586312183187772 42.1240120360341379
-29054 -81.3850602877336087 33.9592077501842127
-32105 -81.4204830864198073 29.1943317777777835
-60013 -88.2402967504812636 42.217625330861857
-70848 -91.118002583333336 30.9145754166666649
-10005 -74.0089264797687605 40.7061551791907448
-36401 -86.9479319433516054 31.4639504505401142
-87747 -104.594533914791143 36.3706110281350661
-90040 -118.151916419496473 33.9952139299013183
-27043 -80.4616717459216915 36.3301336491843543
-50563 -94.5400918642985886 42.5319259143879407
-43331 -83.9024702567318883 40.5052388147996751
-77842 -96.361663875000005 30.6193276249999968
-44143 -81.4833852137648194 41.5529589756873321
-98936 -120.349901716001085 46.54818423303103
-66865 -96.1953682461539046 38.2510462591716305
-56347 -94.8616408264354618 45.9661501193301234
-47160 -86.0493834327868115 38.1485096491802977
-01634 -73.0004338181818326 42.0675060909090845
-77991 -96.6169409241379356 28.8240452999999768
-35147 -86.5312902420715346 33.405733088176035
-46929 -86.4826856647646878 40.5488621788872479
-59920 -114.496808809049469 48.0950757239557944
-28399 -78.7264805510703241 34.7651142449983297
-77657 -94.2018723579217436 30.2392944828634036
-61059 -89.9451077370892307 42.4586970422535472
-04853 -68.8724943467783532 44.145238555264541
-36562 -87.6508990610996079 31.0247414544660174
-14131 -78.9048651288936753 43.2330117117795254
-49026 -85.966649424918316 42.3742942045701767
-07603 -74.0281415862069707 40.8748573659003895
-53504 -89.9002226082791935 42.7034028195859179
-25003 -81.7999054094820508 38.2650412306505032
-66780 -95.0552189750803365 37.598447111736391
-70084 -90.5585277504744397 30.060957534630024
-03305 -71.5171415555555683 43.2128962222222199
-45418 -84.268692439999981 39.707089952000004
-38016 -89.7700378378292925 35.1770238869917762
-05759 -72.9571637957725869 43.5386460000000781
-01060 -72.6358405324921108 42.3259591287735475
-59029 -108.892475347265048 45.3906669938537348
-27803 -77.8488522377747501 35.9142590111667914
-29493 -80.8436073592814068 33.0335374011976057
-76850 -100.134734095238102 30.4790377142857167
-44817 -83.550066995863645 41.1931468593590253
-24172 -80.2519970000000029 37.454085500000005
-39520 -89.4070073585419465 30.3022632754957293
-57370 -99.1882597035905746 43.7758084797555114
-78135 -98.0856517500000109 29.7390757500000014
-23602 -76.5195165233578933 37.1134478721237144
-85645 -111.058209844922672 31.7226979238411033
-15444 -79.9053421510791821 40.0112808944843579
-75028 -97.0608247053720987 33.0367694629280635
-86053 -111.03650191666668 36.5861745833333387
-31527 -81.4144562468283652 31.0712423610149884
-47446 -86.5045716135110041 38.7378259759113064
-52247 -91.7183791518348954 41.5116883868910733
-92352 -117.193983932706928 34.2575323145225425
-60081 -88.2276090796335808 42.4493308061328918
-62520 -89.4612032934974337 39.8145476836554977
-30252 -84.0694698227134296 33.4720240959705038
-97114 -123.075000910969592 45.1924840638160106
-49935 -88.6790810781168659 46.1134291050888123
-19060 -75.4909767018207276 39.8481196122228241
-79605 -99.7702516261006451 32.4313767705338307
-53930 -89.4686977601713522 43.7150221927194664
-08403 -74.5264224967177711 39.3148333894967692
-10545 -73.8321171666666629 41.1789761666666649
-83001 -110.771508040845845 43.4656498072444819
-30013 -83.9847684879510723 33.628428282894653
-68823 -99.1506764209474198 41.8644427391564378
-19440 -75.2918071763706109 40.2783218596102017
-29449 -80.2513668967001053 32.723342971397706
-30460 -81.7831341666666702 32.4270765833333314
-40052 -85.5117843029441929 37.5834980835220236
-05819 -72.0050477400599362 44.4207106615718814
-34996 -80.2027976253837949 27.1952006608665826
-36769 -87.5787491738045958 32.0102151884960193
-60444 -88.4066750724786061 41.2366562789743227
-67458 -97.2685921348111719 39.1857283660875026
-98363 -123.639717316283637 48.1042529095466378
-92396 -117.605730900900838 34.379620846846862
-98221 -122.634540999573005 48.4881370579925459
-29036 -81.3347312922048928 34.1319883231676329
-92057 -117.298643843027136 33.2437203426807173
-54311 -87.9298296774402672 44.4889916347768093
-81311 -105.770239285714297 37.9911405714285664
-58036 -96.9529686808244122 47.1600073222985685
-07712 -74.0435031887078736 40.240779724365126
-04649 -67.6015276015081668 44.5591475611949832
-66354 -90.8241565000000151 37.4496476666666638
-08611 -74.7513755413035028 40.2072714040644215
-53015 -87.7773976926724231 43.9160857551724391
-45430 -84.0851444760434248 39.7108761061073707
-97434 -122.837737620161093 43.7191227463709993
-49103 -86.3609441484949372 41.941381356280246
-10705 -73.8917379357045121 40.9177835756498425
-49616 -86.0883372741572543 44.5821177555056423
-96055 -122.09661679972028 40.0573858102242042
-19964 -75.7296582147285307 39.0985695968991678
-15378 -80.2726057882352677 40.2777171999999908
-39845 -84.8796255214839306 30.9408719148286657
-89315 -114.863912977011466 39.2637502068965603
-20895 -77.0771891888319374 39.0277411798486185
-15731 -79.1674932928571309 40.5030010500000017
-14786 -78.2225034199999811 42.1494741199999936
-28434 -78.4735670935114484 34.4700857812976622
-80130 -104.92426824811605 39.5361695426263395
-02568 -70.6209476596127814 41.4400502126071686
-24333 -80.9259146972422627 36.6457722946870774
-55443 -93.3389097174921005 45.1205626489163691
-64688 -93.3751511009772202 39.8247674505971503
-32309 -84.1616914771265812 30.5387386953994593
-51601 -95.3462516142602823 40.7446019858679449
-64479 -94.6837290138114156 40.3485838844197389
-74838 -96.95083116666666 35.2278341666666677
-06787 -73.0849548134214899 41.6716084539621576
-27658 -81.3034524999999917 35.6339137499999978
-45684 -83.2820485814666824 38.6906340277858618
-77089 -95.2235791837788241 29.5883556363637084
-43110 -82.8061951540835679 39.8444542753704312
-76857 -98.9630370877193428 31.923364028935989
-78380 -97.7126485903304598 27.809211555778603
-72209 -92.3463290017213012 34.6762890936236516
-67638 -98.8524551568047798 39.6456919585798673
-48420 -83.7215306126126819 43.1802498196359608
-37410 -85.3143932759468129 35.0028166224207169
-31050 -83.9493127795179959 32.7346910072289319
-01434 -71.6167921160151195 42.5433304501891456
-95019 -121.779126120615913 36.9364640607356804
-10912 -74.2924989333333201 41.2476802000000049
-44446 -80.749395569960825 41.1883881639855574
-75086 -96.5053270000000083 33.0372753333333335
-45216 -84.4793910770112291 39.1991719026819609
-49240 -84.1853711872068544 42.2821840227247066
-27518 -78.7759292811536938 35.7256104874012692
-68365 -97.7254418742689808 40.6233004532164159
-36395 -85.5908476666666616 31.1174800000000005
-03282 -71.9183156918316371 43.8596134451319841
-08219 -74.8959511529411799 39.042891400000002
-10011 -74.0000503791605979 40.7409362604920275
-87508 -105.971729788295335 35.5463162943695323
-13313 -75.2597466985506003 42.8780139449275453
-50539 -94.4172051035773165 43.2316595883609764
-40253 -85.5169685000000044 38.3076690000000042
-12136 -73.5579263151659148 42.435374855450199
-70051 -90.6186550632110368 30.0545964829330394
-62419 -87.9885072449823014 38.6276670802833451
-14825 -76.6202026060331178 42.0518056983546487
-57373 -98.8827185318931043 44.5406905679012866
-68503 -96.6770091917062331 40.8232705931340192
-46240 -86.1227422131439937 39.9054107961727595
-21226 -76.5615028153071222 39.2022349259853087
-64747 -94.1839082552134244 38.5729540498180583
-15178 -79.2002455000000083 40.2107212000000018
-53018 -88.3990878162149301 43.0609340052225775
-78063 -98.935147895561002 29.6679877503019895
-24483 -79.2116565907651449 37.8273975291318081
-31522 -81.3782998986249595 31.198169533524446
-72204 -92.350661168456412 34.7249573475459101
-46806 -85.110764651831559 41.0468665727098525
-34427 -81.9592373636363618 29.0718109090909103
-14568 -77.2850531399036811 43.1381525103369512
-92354 -117.247754047594512 34.0472688230718106
-43341 -83.3133125117574593 40.5902648527227683
-18507 -75.7093581042639983 41.3585958508940692
-70392 -91.3092624800321033 29.6988105567093363
-50123 -93.5016060656167269 40.8539322318459668
-44816 -82.349893245901626 41.3323502131147507
-33410 -80.0885372547606096 26.8445821460798548
-75988 -94.8951047142857078 31.6704561428571409
-62370 -90.9761318606016829 39.5227044512105152
-61112 -88.9769757710843834 42.246409084337337
-69134 -101.372325979104403 40.8213462238805604
-78602 -97.3222750529762379 30.1160812683000323
-57792 -102.355574092261989 44.586302474702336
-44601 -81.1181747118994139 40.9170222140072966
-53956 -89.0061447473524225 43.5400567942511643
-84316 -112.433653319477543 41.7543830558195737
-32464 -85.9423623347763481 30.8924676596385446
-85335 -112.329454483900065 33.6020670631959106
-72477 -92.9593029999999914 36.4495296666666704
-62230 -89.5289817163828161 38.6259386367327835
-03201 -71.0387664999999942 42.0952701999999945
-64496 -95.6060238732943901 40.4957822768030837
-84627 -111.584394403020667 39.35566315894269
-42786 -85.4722273499999972 36.8308673499999983
-14707 -78.0658965806451448 42.0829128903225893
-76245 -96.8460813156672344 33.8358244733952205
-24609 -81.7670592542718708 37.059820491261334
-51238 -95.9016423966393177 43.0744269914028735
-67456 -97.671404257804312 38.6229400032743229
-61843 -88.3638695340516023 40.3147351797414402
-49736 -84.1316341738158116 46.0664532920552858
-16030 -79.8018713052838109 41.1358415714285499
-50453 -93.6498149932646413 43.3659492952852545
-54822 -91.7244343060397256 45.4038384072570693
-33803 -81.9505821960766099 28.0124933682507837
-76559 -97.6052362526222765 31.0786355576834801
-02032 -71.218085090018036 42.1557187161319931
-20650 -76.6258288327828296 38.2707275258582129
-45657 -83.2212937635502357 38.849537528404646
-96850 -157.863324499999976 21.3050082500000002
-46766 -85.2863684994807301 40.7066686718587718
-63033 -90.2787152095300343 38.7962393618986354
-65647 -94.0011094436700176 36.6868562022017812
-31769 -83.3337899090909104 31.624052000000006
-21222 -76.5025350502282322 39.2637197370745739
-95004 -121.637882776756285 36.8750933529218159
-18555 -76.2515445294117598 41.1521510294117547
-85912 -109.996103186974779 34.361352130252115
-13178 -76.4730101875000088 42.7825712499999966
-71665 -92.1190129909695372 33.9466938039841679
-62074 -89.6890313593467852 38.964392237144672
-51366 -95.0011171663748684 42.9476006112084079
-50033 -93.7923543859649129 41.3607179649122685
-11965 -72.3504754848484311 41.0758718576239374
-96730 -157.854197999999997 21.554335499999997
-77340 -95.5344129644398947 30.6713709406281616
-46254 -86.2654917684225353 39.8446743926221174
-84325 -111.981342884014538 41.7179705066914863
-57004 -96.7733236137221837 43.0466799601390306
-71460 -93.6066287499999987 31.4530086249999989
-15729 -78.9230334780294527 40.7077331660007644
-75144 -96.2218029254988068 32.1137918086474272
-31562 -82.1328631765957908 30.456351748936175
-62570 -89.4505581403508216 39.5882275684210541
-77334 -95.387478746212139 30.7594860833333215
-87258 -106.990384500000005 36.9359435000000005
-56141 -95.7725267128291335 43.8803892349192068
-80909 -104.777062746626427 38.8524214013958371
-19807 -75.6110176736093962 39.7912332697517215
-10548 -73.935048580446562 41.2491089476520258
-83623 -115.317311455344125 42.9665935702782349
-79261 -100.882377138107401 34.3873273938618951
-70936 -100.603185333333343 30.8619209999999988
-84662 -111.493446778960617 39.4774027764558895
-88165 -107.754591363636351 39.537202818181818
-88058 -106.72423804545457 32.1539918030303085
-11746 -73.3687312471141979 40.8180407916925745
-18060 -75.5202040399999959 40.5276202399999974
-91201 -118.289973714630307 34.1701269224275848
-02539 -70.5321506667686435 41.3846512704900675
-33439 -80.6161430833333128 26.8501586250000024
-77566 -95.4470685315977079 29.0444938375913644
-41005 -84.743592938534519 39.0154034339637548
-33870 -81.4489716201639169 27.4984074030706829
-48070 -83.1678559371766113 42.4828401736880963
-05673 -72.8369600823240972 44.1854459948546321
-82523 -108.692583283204002 43.2928961935190486
-10998 -74.5428600251654672 41.334165424503361
-45780 -82.1332848168926688 39.3706358508014134
-18239 -75.9816231217949252 40.9892832179486675
-57559 -100.712821922268901 43.8613266176470518
-74450 -95.4696461796832949 35.5963261867832301
-16344 -79.6901776390804031 41.4712813333332946
-88047 -106.726924932378154 32.2241918624642238
-04099 -70.6694487999999978 44.0133425999999943
-07093 -74.0125365501248496 40.7887173999999888
-41760 -83.0860619160584548 37.1969245437956246
-50006 -93.3905757775625887 42.5005362833032763
-84170 -111.972562499999995 40.6930019999999999
-40363 -85.0122360425531696 38.5217477845744796
-17527 -75.99234234054056 40.0056473688394192
-95698 -121.914578025906906 38.8155827478411126
-60014 -88.3343505239835309 42.2255519709171523
-67679 -93.1160192666666688 36.532566199999998
-75702 -95.3099207861228166 32.3602012348376462
-50246 -93.7868381351637339 42.2846172170010135
-10474 -73.8867428325302171 40.8127823771083911
-77637 -98.2357719999999972 34.0119304999999983
-49259 -84.2476517432875767 42.3831450805501291
-38337 -89.0117665332373917 35.783758170319814
-89505 -119.835009400000018 39.5226293999999925
-43843 -82.1747180325589852 40.3305135624050237
-78570 -97.9228422774817346 26.1783470794437321
-77708 -94.1628836884082574 30.1412059938649683
-03685 -71.9348326666666793 44.2724673333333385
-76209 -97.1110537366304385 33.2357161283826983
-52857 -97.3257600000000025 47.6085915000000028
-19374 -75.7533844513108363 39.8268802434457214
-79758 -102.353811222061111 32.0262281023222428
-64053 -94.4637373944267864 39.1061111704179751
-98349 -122.776452276217213 47.2680265733049438
-67511 -99.0063632049585891 38.463263305785091
-38301 -88.8247702084563713 35.5974408450492561
-57401 -98.4953712108931683 45.4731913271681236
-37210 -86.7387918353125258 36.1405949857757633
-25010 -81.5335063076923063 38.2326553076923119
-61546 -89.7982472954296185 40.4490281782159613
-14048 -79.3272358075838753 42.4797572727614536
-95675 -120.743596275773257 38.546013771907262
-90814 -118.14364105911325 33.7710225987958026
-56651 -95.6301210146036311 47.4718660535466483
-39603 -89.8530930000000012 33.0774681999999984
-88264 -103.757771575757559 32.8555759696969645
-63767 -89.6110591325301016 37.0438552289156533
-65542 -91.8733708296395548 37.4987862587594876
-92548 -117.112281409166854 33.7521562236810411
-55931 -91.4078281541286373 43.5189762293577758
-77584 -95.36519383101448 29.5536746755199609
-85320 -113.141795188180311 33.9120903157076512
-33493 -80.7186577181817455 26.66334583506492
-43910 -80.8217204740623316 40.3778411259381045
-79913 -106.552717999999999 31.905899999999999
-03897 -71.33161960683762 43.9072553846153895
-93207 -118.655860943573643 35.8766470426332162
-56428 -96.006172499999991 45.7821895000000012
-56310 -94.4513796891399409 45.6255113852688794
-97357 -123.817064629363358 44.7428153408624141
-27239 -80.116147832857294 35.6140570558006999
-99149 -117.479690095652259 47.2180857391304514
-36567 -87.6244502492050543 30.597678385318833
-56673 -95.1119297357919464 48.8491043548971504
-18942 -75.1581975372361626 40.4732330424231819
-15333 -80.0114981179370659 40.0222518926009627
-63769 -89.7386074439753116 37.5173146528092829
-53525 -88.8606095187368936 42.5557368258153446
-60642 -87.658527373860224 41.8989103088905921
-60503 -88.2546842249655157 41.7129794924553678
-64109 -94.5670867836977322 39.0662186361829029
-72938 -94.3735453313649941 35.0157490910742553
-10940 -74.4509397887644724 41.4515335736228892
-44105 -81.6223893522370929 41.4508257765973767
-95451 -122.780084106606964 38.9571603969274989
-17503 -76.0837783749999943 39.9380502499999963
-51545 -96.0064105744449989 41.8305275795413039
-75374 -96.144161749999995 32.8395377500000052
-12929 -73.7240420373443754 44.7229566991701333
-24328 -80.6963002291795135 36.6589291420519174
-37184 -86.1461084442848346 36.0882507271679174
-53176 -88.4127822727272843 42.6423115909090953
-47326 -84.9702033487858301 40.5455038356412913
-30909 -82.0716260809089988 33.4783499205968411
-97735 -120.975177227378353 43.3658844037123288
-41762 -83.4929521241379291 37.2290552597701279
-61449 -89.9947016368638089 41.0908064662998669
-07203 -74.2618142860048494 40.6517358366655657
-61535 -89.5392632188045923 40.5915723070226306
-71367 -92.3025771169995153 30.8908041992429183
-21113 -76.7076520945464608 39.0739547870649773
-10312 -74.1782376467592428 40.5432179013585667
-99115 -119.349298669606839 47.6151481323042063
-38254 -89.3504324698795216 36.3812901927710897
-26170 -81.1697001666159679 39.3722556528322585
-15316 -80.2669944999999956 39.7502293148148382
-71826 -93.6703465121950671 33.1088809502439005
-42741 -85.2476945619090571 36.9974469135525297
-12543 -74.2144070095578883 41.4877751373954737
-15542 -79.069631407739152 39.8665297567607695
-31701 -84.1598848723094477 31.5769931100353958
-50849 -94.4225568653926217 41.3031207631906412
-97533 -123.270211777777803 42.2722729814814926
-92136 -117.121528146341447 32.6837810813008147
-02645 -70.0575581536826348 41.7031506056241028
-53146 -88.158133777170363 42.9728359223896419
-30581 -83.4191096549295708 34.7931949436619661
-43579 -84.3963674999999967 41.4238100000000031
-92202 -116.256629666666697 33.746091642857138
-17756 -76.7255658249052317 41.2134647145846813
-06059 -72.9093687338402958 41.9310953688212891
-20784 -76.8891013778085295 38.9528512275637269
-68865 -98.1992186405313419 40.8991634747508925
-97351 -123.184854544800402 44.8384725834245188
-72330 -90.2177017896076592 35.5895798976057449
-27838 -77.5079596794871719 36.4684452435897484
-23160 -77.8309989999999914 37.6410808888888937
-46047 -85.9291293846153792 40.2634494230769207
-53511 -89.0414323307934694 42.5307713750889604
-84405 -111.969785113167546 41.1635071013348792
-35068 -86.8166318553060705 33.6084815236733689
-76909 -100.464466112359531 31.4433094157303401
-26447 -80.4896302656824361 38.8899168645230162
-08607 -74.7475037142857133 40.2661265714285719
-78122 -97.7226382760416072 29.4423802354166462
-36875 -85.1507694260916281 32.3241812475980339
-52255 -90.9538662449140105 41.860320399452263
-23061 -76.547260972082384 37.4281137023736932
-31204 -83.6756266370328063 32.8485400224719299
-44001 -82.235776573054423 41.3891172845477158
-23661 -76.3831044854388068 37.0076925533253345
-67337 -95.6288998550544136 37.0433922352674259
-02142 -71.0824650310558752 42.3638291739130324
-55334 -94.2160582318111324 44.5390581511958175
-58533 -101.798556671814538 46.4076300685328462
-27851 -78.0286843015593377 35.6404967552543042
-85338 -112.414104845648197 33.3978321233476336
-17881 -76.6765348926488315 40.7817683325554228
-78503 -98.2469058768872259 26.1751029119235703
-89191 -115.046026020618555 36.2412999621993208
-01242 -73.2517350469613007 42.3187121906077266
-74067 -96.1149854705882518 35.9976011176470649
-75189 -96.3181555184843177 32.9415255850755884
-93456 -120.202701605072491 35.0144990072463571
-98533 -122.519433064899445 46.5898394424132221
-72125 -92.7901598396408502 35.0574743842207113
-75496 -96.0719977829947709 33.3626382366398317
-28464 -78.020984768513344 34.7740221514980234
-18421 -75.4476757852796851 41.6574560461237695
-85612 -110.240492249999988 31.6860159999999986
-60603 -87.6272630889570792 41.8795751564417174
-70607 -93.2041138548786563 30.0918235959466571
-17405 -76.5356215000000049 39.9635640000000052
-37146 -87.031012687843841 36.3995875082554932
-49076 -84.899204526140096 42.4369669076751563
-28159 -80.4350881165455007 35.6936234711500333
-45683 -82.8593225483870839 38.9527560967741948
-29546 -79.3696020499648114 33.9293186138869487
-78222 -98.3884251773222474 29.3805663905101611
-77205 -95.3395403492063735 29.9818808095238083
-57055 -96.7402332817572983 43.6650652702960684
-94118 -122.460345961182213 37.7817400454345034
-56164 -96.3286438537831202 44.0288195399911473
-86308 -109.018824124999995 35.3648503333333366
-26578 -80.1731413571428675 39.4469148571428576
-96728 -155.115032357142866 19.86996657142857
-62665 -90.5338375569879474 39.8201808161465109
-11952 -72.5407397861201275 40.996006064661465
-14571 -78.245508412064865 43.3476017113689025
-29826 -81.3807339061033161 33.3844357464788786
-20440 -80.1788205833333336 32.7214759999999956
-53913 -89.7482430285145654 43.4834991700990088
-81252 -105.389851798434648 38.1359310830780558
-06516 -72.9678256544991655 41.2694731046631986
-43620 -83.5520351114903974 41.6647154675767908
-41544 -82.1734361656229311 37.600261877522648
-97448 -123.263125591236459 44.1977294235310154
-27047 -80.5778792902737706 36.3136088435713233
-16124 -80.2684934068697657 41.3305496375314405
-21652 -76.2835779842271648 38.7228401955836006
-25125 -81.1849898818351221 38.3190520755328734
-75770 -95.6446898321947003 32.1469943622971925
-68946 -99.9753244742268237 40.1182435463917813
-13734 -76.4046185547802708 42.0681248339148937
-15342 -80.2181628750001039 40.2420865351368775
-06473 -72.8579710018907036 41.3805646182448896
-35921 -90.0347583333333432 34.005471
-04261 -70.8824094419808688 44.5495904868808736
-73074 -97.263892080341833 34.8363753760683892
-36748 -87.7790972237835234 32.2885781933724729
-38559 -85.5087372725850514 35.8190563288207002
-23409 -75.6242450091241238 37.8675970821167311
-24608 -81.3411812500000053 37.0869047500000022
-02895 -71.4998596300965801 42.0024564107717566
-59823 -113.589374487963923 46.8912401344032119
-65625 -93.829739391842665 36.6681030381939763
-54636 -91.2589359600585794 43.9554098246469209
-16156 -80.2175818999409245 41.0975649207120313
-85308 -112.183716536999171 33.6599969298368649
-27115 -80.4201670000000064 35.9355358333333328
-76272 -97.110266656938748 33.4744562466296216
-62703 -89.6325152971249537 39.7701777725363073
-68756 -98.0236104216066195 42.144605834349079
-72068 -91.6919687076565708 35.2070669744779394
-66548 -96.75374833779955 39.6807539110839684
-23665 -76.3867980922787382 37.0905985084746064
-84032 -111.347822223786835 40.4731072072453628
-48611 -84.0893536021616796 43.6152032032938735
-60948 -88.0614056191222119 40.5266316055381068
-43230 -82.8752476598557166 40.0402871763463253
-96703 -159.309606140000199 22.150266302727271
-86082 -88.2562326666666621 30.3851739999999957
-33530 -82.1802147083333381 27.8919037083333308
-79831 -103.716078887871802 30.3506512723111932
-46798 -85.2273567188697569 40.949406761494302
-85997 -109.828720000000004 34.5823134999999979
-95526 -123.620601794990478 40.4447428250894703
-92007 -117.275164356759362 33.0242195365398672
-17539 -76.0968756666666621 40.0364163333333281
-79052 -101.754970964843878 34.3589748684895895
-72153 -92.3192355958519215 35.6389768919806329
-51557 -95.9640906873807609 41.738128767784076
-58746 -102.115400431762907 48.7181388243514846
-60433 -88.0552855069598337 41.5091862181234816
-02465 -71.2262291609239924 42.349990601672971
-74826 -96.91557371680382 35.0093048454759028
-05873 -72.2149820092699173 44.4102560085746916
-72321 -89.9406108495574728 35.8179097079645956
-89017 -115.2127972425249 37.5294052990033151
-28472 -78.7125302691211033 34.3134249033678955
-47905 -86.8053571799369195 40.4194729203516019
-24237 -82.2812929435248748 37.0274722682965489
-78062 -98.1891183571428741 28.7347818928571357
-15470 -79.5499280350214661 39.8506760996766261
-74040 -96.6115135000000009 35.9867135000000005
-52044 -91.3177476812266917 42.7627096161710156
-75444 -95.5620666666666665 32.7374836666666624
-06039 -73.4430190101222706 41.9551084470338651
-49659 -85.0067056798196887 44.8914827380990928
-37857 -82.9697305076825273 36.4150348618714688
-24353 -80.5804402727272588 36.7036278181818219
-32619 -82.8830510878275106 29.7479989315219413
-62873 -89.0473975000000024 38.4832989999999882
-30024 -84.0962119887204267 34.0666614601371123
-08542 -74.6584006378269578 40.3522006458752358
-30812 -82.0272222857142879 33.3715674285714314
-58802 -103.616706499999992 48.1763295000000014
-88252 -103.21752040143393 32.1171324383000183
-34974 -80.8433918178656938 27.185811519134969
-68834 -99.6559028735869816 41.0119222538540527
-11225 -73.9535014285714851 40.6629912775842755
-27217 -79.402776491443646 36.155220842046532
-29718 -80.3720587512573132 34.6401102244717336
-24901 -80.4415538228452931 37.8235487628519493
-21022 -76.6705686086956604 39.4002362608695691
-98011 -122.199481224834997 47.7558560847910627
-12917 -74.175015071129792 44.9232475905559596
-49643 -85.8084779626517786 44.6447135286659531
-87579 -105.612022321479429 36.1539458918918939
-28208 -80.8987852626793256 35.2361421267644133
-45015 -84.5500404671313248 39.365079227490078
-98331 -124.414678676147616 47.9191802348629849
-79311 -101.870710772013027 33.8448065835298166
-30155 -84.3075970000000012 34.246015666666672
-70554 -92.4390737822059378 30.6307116024557153
-36849 -85.4894916582278626 32.5988987278481162
-02139 -71.1044358623303765 42.3642388747967473
-94528 -121.956006830826894 37.8424422124060058
-21758 -77.6666549366003096 39.3459397704500091
-97384 -122.618927826086946 44.8181866521738996
-84540 -109.619718263157878 39.0292629421052766
-31823 -84.8193664239448708 32.8108805613346348
-17235 -77.6982919374999739 39.8577594119318448
-84057 -111.706592977074166 40.3154807951867653
-05068 -72.5358801836702582 43.7917234022967534
-94608 -122.281841104821282 37.8357048680358119
-41002 -83.9887952634367991 38.7340163997412077
-59772 -111.268458500000008 45.7850427500000023
-28326 -79.1523832171668715 35.2816522598611897
-38242 -88.315799353420644 36.3058502198833608
-06239 -71.8619320138474933 41.7972695895646567
-62814 -88.739654068624489 38.3619654306263413
-60142 -88.4400362011231351 42.1681899542427558
-42461 -87.905752187109357 37.7771218093748686
-79545 -100.572554177120935 32.4211845976862705
-75087 -96.4471210239246659 32.9421685752177069
-39753 -88.6354335909090736 33.483238568181811
-24218 -83.0832346981132162 36.7354939433962215
-33009 -80.1512388124486819 25.9857942257193422
-13353 -74.7596190035842341 43.385291103942663
-31057 -83.9341883335242898 32.4445989484240371
-48134 -83.2899181468653751 42.1088843291620236
-36568 -88.2569632542372915 30.5008762542372835
-98682 -122.50945597059868 45.6680321512841516
-98252 -121.932449390319036 48.0807007650732672
-01903 -70.9451729999999969 42.4622172000000049
-49913 -88.4505266437189306 47.2395932196339885
-31518 -82.1824474251815786 31.5185663016949107
-47114 -86.0720189128440296 38.2865539816514016
-49102 -86.2737276099585415 41.9441864456431333
-79924 -106.415863304151387 31.9038648259127484
-77993 -97.4307201515151462 28.8223330909090869
-21803 -75.5988045 38.365680999999995
-13795 -75.7862206442230075 42.0631833848606433
-27313 -79.7506741287236025 35.9348414663296296
-24891 -80.755715500000008 37.6487424999999973
-43084 -83.5475035976290741 40.1614412601115944
-80932 -104.920396000000011 39.1238820000000018
-04490 -67.7544629933962312 45.4290338122641018
-02050 -70.7061601857162856 42.1093886848034629
-31040 -82.9327145624999957 32.5643025624999964
-11212 -73.9135261803543244 40.6625883569511757
-61479 -89.6428116193181523 40.9982282045454625
-57437 -99.6480928774121253 45.772831380531116
-01564 -71.7706111489803504 42.4414322645013087
-49034 -85.3395437963065433 42.2407879755567208
-01088 -72.6440460624999815 42.3864930614919189
-65726 -93.2401921474358915 36.6231394423077106
-15753 -78.6578659397174107 40.7923175229073252
-83815 -116.793822146706319 47.7222185332753881
-99650 -162.88273700000002 61.9394163333333339
-64067 -93.8652808718934466 39.1671753416851516
-88108 -115.21053839999999 36.2082184000000069
-72104 -92.8204395703692171 34.3750995618624984
-94526 -121.983311100257879 37.81518489577455
-26349 -80.120702964285698 39.2332778571428591
-49113 -86.4962293440795236 41.7997536975380797
-46764 -85.6212072411066174 41.2113238382740263
-01607 -71.7941981560124987 42.2287633996424105
-54024 -92.631282808315845 45.4652277895099886
-42711 -85.3069231333333278 36.8603096999999948
-43531 -84.4941882080000255 41.6354821439999867
-74028 -96.521102452738532 35.7981858424613009
-16154 -80.4169802401170131 41.3234861727248557
-91917 -116.727203134498325 32.6268258982252206
-41367 -83.2278030892019132 37.4062811825769117
-18466 -75.3702208416209203 41.1836466964270187
-17973 -76.22698166666666 40.5948373333333379
-43466 -83.5074503776009607 41.2949229088092125
-76520 -96.9492117442088954 30.8629656001984891
-45347 -84.7738977324765983 39.8968148505723263
-17211 -78.4145265580149697 39.750232532309866
-35973 -85.5586156272946141 34.3501002498340142
-07474 -74.2377024999999975 40.8922434999999993
-95863 -122.350464344086035 39.1453876666666787
-31017 -83.2386421315288629 32.6265622346549904
-78342 -98.081004225225243 27.6473664954954863
-62942 -89.48901480763368 37.6312849134859704
-90716 -118.072999440498876 33.8295440489443493
-25181 -81.6249976268391748 38.0772120229547042
-67405 -96.289005666666668 37.7735586666666663
-14171 -78.6396749420569847 42.4196619309674574
-79323 -102.831819015105864 32.9625611712758868
-42031 -88.9862490209691828 36.6812795126872828
-79014 -100.364809125783168 35.8934418067470276
-69032 -101.058548402337379 40.5429089582637445
-79561 -100.14432847566934 32.4921812348215298
-45132 -83.5999569545454762 39.3443474772727129
-18322 -75.3998027764595236 40.9271309662816023
-03505 -71.5630639090909 44.2574267272727297
-73724 -98.6109771675125586 36.0562143413705343
-01570 -71.8556190295270341 42.0462203514501809
-29058 -80.6979495916036313 34.5959980405536882
-76131 -97.3441311236657043 32.8794805590912489
-26585 -80.3989821858563829 39.6063811455289496
-83200 -112.435331888888896 42.315790111111113
-43619 -83.4758461257030717 41.6053860939257163
-64074 -94.0757327890466115 39.0968969492900769
-44861 -83.1504880624999885 41.2404343374999911
-41554 -82.3185080076372202 37.4515240415274206
-30625 -83.3333889511753512 33.5227469147830277
-62613 -89.7171833971084141 39.9651200739757684
-40065 -85.2157294914955088 38.2093145876580067
-68784 -96.8757053603312954 42.2451161840773537
-01611 -71.874483182008376 42.2403537008367564
-66154 -89.4681708333333319 40.834994833333333
-98561 -123.621097400000011 46.5856205999999986
-01262 -73.3240708063082991 42.3019727605509104
-98579 -123.071326133324135 46.8149786133468737
-28523 -77.2893614137929461 35.2113299368941952
-83627 -115.496867759353137 42.9449764883720846
-15436 -79.7516566099584168 39.8216344123444372
-97886 -118.285089394006363 45.7955825231378952
-12770 -74.8578648201663412 41.4469306112265983
-31728 -84.2791184838709597 30.8212235161290344
-30291 -84.5434021049273383 33.5744092234432472
-15992 -78.9099934999999988 40.5300378333333313
-52041 -91.2637573256310759 42.4986532984755314
-61278 -90.3557197222222044 41.5748273434343432
-97033 -120.666692495297781 45.1551726363636234
-31830 -84.7144016098013992 32.8962991698013383
-74043 -95.793425473684195 35.9215586315789537
-76424 -98.9221391026645591 32.7586675084615067
-95372 -120.26975893227754 37.9888322954669633
-30448 -82.3655377404579667 32.4913853358778795
-27552 -78.9341591702127658 35.4101034042553167
-37381 -84.8603400070999925 35.6927065516689694
-12067 -73.9231036044949832 42.5598792139520441
-57729 -102.119370387464514 44.2897794672364427
-40360 -83.7608724934340501 38.1541047853081423
-95910 -120.846841049541254 39.4681235724771042
-97383 -122.749146121333141 44.7965235112899052
-26405 -79.8940990262083233 39.2222190755616111
-31811 -84.9373515114853035 32.7377136499146744
-97011 -122.012824536852506 45.3699419970119635
-12040 -73.3629655551020932 42.6351989959183797
-43727 -81.8159598214786428 39.8749557901173617
-60417 -87.5936722213634482 41.4438332020412119
-98520 -123.820917148874415 46.9755190153583513
-41098 -85.0119079501423442 38.5904213686967736
-44149 -81.8554057548807208 41.3138166769563
-17515 -95.5086912499999983 29.1505832500000004
-05142 -72.5883441515486112 43.4052151023230905
-12789 -74.5692866602055062 41.7059957041139455
-18662 -75.7704569523809539 41.0457426190476227
-54169 -88.2776448749999929 44.1803725312500006
-30411 -82.7826029619388777 32.127540678269348
-70436 -90.5216346656580697 30.8192240332828611
-15929 -79.0009331891891833 40.4671450000000092
-12192 -73.8277682434433586 42.4079825266893167
-67055 -97.2035978372093012 37.7835431395348706
-48723 -83.3866723567646488 43.4873694049510533
-28743 -82.8893894779736513 35.8157637078399986
-38137 -82.428875357142843 36.5147397142857173
-35481 -88.0388402021397667 33.4016668598710709
-94539 -121.925991490704945 37.5159329222683695
-95811 -121.488400270188009 38.5816254371584435
-66404 -96.1854362370571607 39.8563586307901971
-87433 -108.009970764705869 36.7211415882352981
-18330 -75.4543703129811973 40.9714112516201112
-29909 -80.9310882401958054 32.3072322422968412
-16935 -77.3228753467248993 41.8672240541484513
-57625 -101.184353287165692 45.0011008540106872
-92270 -116.422512723258308 33.7709924636287937
-92560 -118.231972999999996 34.863710999999995
-78009 -98.8905060885842744 29.3482193835924257
-02651 -69.9893665236363063 41.8601227527272997
-96938 -122.523625500000009 41.647001000000003
-61041 -90.3043190143969809 42.2693313606029477
-16826 -77.6006133997478571 41.0744928726355951
-12873 -73.3156783057444699 43.1130032392290587
-10703 -73.8809695861001501 40.9566300442673992
-96008 -122.120640225776299 40.7113627911452696
-38928 -90.2802332407407135 33.8561166481481379
-71255 -92.6567569999999989 32.6985592500000024
-32503 -87.2104122774441066 30.4570524622586909
-26611 -80.8210940783882137 38.8415745223443665
-40339 -84.6412487929155191 37.9443184114441578
-74362 -95.2728028823529485 36.3287515294117682
-13456 -75.2570197809383075 43.0028599811599506
-75791 -95.2216548808589067 32.2250409401637796
-50234 -93.1828577180086199 41.8993693313168976
-33848 -81.5076018405797242 28.2611717246376841
-08021 -75.0042851490305083 39.8082735349934467
-32072 -82.4243733591160748 30.205189154696118
-70003 -90.2140377588103348 29.9968586063562164
-70585 -92.4067027089843407 30.8762411191406088
-62051 -89.4046179678300774 39.203559658795335
-99341 -118.616449372964226 46.9394130659608919
-68928 -98.5938006832883644 40.359788595687327
-57371 -99.2222136845860661 44.4103909487609201
-13367 -75.4435820066922815 43.8085297877071298
-43739 -82.2887889910654167 39.9094064250614124
-77015 -95.1770047358255198 29.7818545620919473
-77445 -96.0568281264503696 30.1013962350977486
-35026 -86.2148068636363547 32.7793362727272779
-56466 -94.6191223299269666 46.3560429051917637
-27109 -80.2793437800000333 36.1348456200000072
-39744 -89.2860802554308464 33.5687618129007248
-76475 -98.4993285418162401 32.6901144125192573
-52802 -90.6195447124195965 41.5114285079825081
-12308 -73.9201550453762763 42.8200051568063316
-25271 -81.6989064100064155 38.7972895388680286
-49905 -88.6746301580408129 47.1167746298520882
-33880 -81.7571193907507734 27.9956802683756507
-13413 -75.283364937491001 43.0650014840819537
-57739 -103.604724166666657 43.7704356666666641
-14766 -78.8136160588235271 42.3646500588235355
-95640 -120.933705720671782 38.3275737418245512
-80644 -104.527031279347398 40.3598041153999318
-18272 -104.605599800000007 44.6794392000000045
-24977 -80.6568845712165512 37.8800290593471942
-30814 -82.3071864873989796 33.4363315542673476
-83313 -114.240929336952007 43.4223005944419498
-17516 -76.3630877942211299 39.9378243072924235
-73734 -97.897444456325232 35.9858854006024416
-65729 -92.5824330051282232 36.5215447076923283
-30683 -83.2648998385793959 33.9555183039585131
-13378 -74.9762051000000156 42.1215321000000031
-27943 -75.6857653647642223 35.2171088693134564
-05030 -72.4116047800000047 43.4079598799999999
-92831 -117.898919595991529 33.8814598964365956
-83429 -111.390676528443663 44.4985377706361049
-38550 -85.6293110000000013 35.769488209302331
-55766 -92.3913876069182862 47.2315739512578432
-77477 -95.5688762153037032 29.6279469969459939
-38579 -85.5502443896662896 35.826710947255151
-17744 -77.1587250314455702 41.2445106524009759
-29641 -82.5868380000000002 34.7505389999999963
-02668 -70.3677308023157195 41.7055592955195706
-28741 -83.2085236814666729 35.0647316758261169
-73062 -98.741547292499888 35.0724649974999849
-97487 -123.360993700275131 44.0324571796782038
-37828 -84.0704792229904143 36.1954710155575015
-36003 -86.7156616935817937 32.453523442238783
-97376 -124.02992991404048 44.5051821986437659
-07034 -74.3816802272160942 40.8811874051185811
-45688 -82.5205695275511601 38.7164007816325935
-15549 -79.0130882666666707 40.0288837888888764
-08328 -75.0546643704663126 39.573784278497385
-32920 -80.6075666091597753 28.3943118722352636
-07304 -74.0729624024520064 40.7168532862473853
-58329 -100.071390161082519 48.8444864243319969
-45414 -84.205836914899038 39.8314855134578849
-74075 -97.0579429655327885 36.1539137709752794
-75377 -98.2208067000000113 33.9911967000000033
-71660 -92.1926029671551248 33.7605282152601944
-30564 -83.8856514439202385 34.4702127062154204
-67205 -97.4427655718488523 37.7384872687115092
-46799 -85.2819500563380473 40.9161567699530693
-63010 -90.3929965335509422 38.4294456398440119
-67844 -100.196220779362278 37.3906060597733543
-44703 -81.3813686955218998 40.8098328264410171
-74030 -96.5804534255445475 35.9932581407921646
-84765 -113.650792856954581 37.1365989356030539
-51455 -95.0593405359769719 41.9002211251450092
-92410 -117.299848547465245 34.1061649523261252
-33276 -81.1889156000000014 28.6181120000000035
-73942 -101.481356744263294 36.6872583009227142
-22357 -101.381863749999994 33.6763244999999998
-26710 -78.9385002051480313 39.3205225195008197
-54766 -90.953694204778202 45.2701570546074734
-45174 -84.3093969980353108 39.159580401768217
-03070 -71.6854504714125511 42.9813538566799878
-95027 -121.42405895555558 36.8090819777777725
-70662 -93.0023044231706564 30.7969710524389804
-29536 -79.3591769166961853 34.4121763861994765
-48412 -83.1690561101721215 43.0599856093597424
-64108 -94.5850548859530278 39.0844502967479883
-63936 -90.1259277703905042 36.8158758320767703
-12183 -73.693531124711285 42.7426860623556735
-04426 -69.1964645316823521 45.1916874696404562
-41517 -82.6038472701149686 37.1884202241379498
-49816 -86.880431976744191 46.2355021627907092
-23229 -77.5657920250414747 37.5927102214402495
-07852 -74.6666065483538262 40.8810672453704527
-16155 -80.5085847142857034 41.0735169999999883
-36047 -86.4719677619663116 32.0758025122897692
-86406 -114.272976008728406 34.4765874675426502
-14036 -78.386590131122091 42.9780359925603932
-00979 -66.0167702951805779 18.4347815271084379
-33106 -83.2251464999999939 33.0526875000000047
-04551 -69.4361711965838708 44.0095564357141384
-21867 -75.7965701282051612 38.1097251025640986
-01830 -71.0639038634731577 42.7897538664058885
-88752 -105.955852999999991 36.0120736666666659
-51056 -95.9554487368422144 42.2381862825753629
-67360 -96.1037953532537017 37.0617169867197802
-53066 -88.4830785370781996 43.0797420308442369
-68942 -98.3143287779751347 40.0926899822379994
-63932 -90.2480167402274702 36.683525174383135
-74745 -94.8251419490890868 33.8938307969190191
-36346 -85.9316839725154722 31.5533494390415186
-59213 -104.838451609375014 48.1548847218749927
-37892 -84.4252771966105229 36.5621356514213218
-59837 -113.224621431134508 46.5438026388887494
-34293 -82.3888885762826391 27.0553363658865891
-83283 -111.700902914230028 42.3590686500974414
-66085 -94.6525569459192582 38.8087441537610047
-29516 -79.6328929696969965 34.4708805274365062
-19505 -75.6247407844602151 40.3814346355655474
-17925 -76.0682362662889489 40.7491252464589309
-62627 -90.1145656260747785 40.0513030185759078
-07050 -74.2358251583260653 40.7676543968939384
-75750 -95.0719458477547477 32.2653236494591624
-06447 -72.4594053050907547 41.6400839295677017
-41364 -83.6491592974452942 37.3899056715328442
-56180 -95.4663502890399513 44.2346618327980821
-98003 -122.313944183154419 47.3135252168297455
-95835 -121.520526832278037 38.6712566049355644
-47227 -85.6502852639446957 38.8722568346750919
-61064 -89.5891393643892826 41.9904579387475607
-52548 -92.5291239302325437 41.1172568571428201
-90038 -118.327786361453946 34.0888255171467023
-84106 -111.85632116750277 40.7039803123373929
-12933 -73.7237517407407523 44.6327480740740654
-73720 -97.8578984900663187 36.2053648410595699
-98117 -122.380995428147429 47.6880412369737101
-24374 -81.1906914745889594 36.8072817623318045
-73627 -99.4698809265092052 35.206900044619438
-54940 -88.842899570241272 44.2211223370739646
-67575 -99.2482629979253943 38.4425375103734694
-89407 -118.790240133333342 39.4885931333333318
-17260 -77.8924931397429816 40.2974057859061574
-04492 -67.6901591324920986 45.3478604337539366
-98896 -119.949510600000011 48.027409200000001
-50055 -93.2870139881235474 41.8827739192398525
-20522 -77.0495901666666754 38.8935823333333346
-17111 -76.7868768316766648 40.2712525375854824
-29340 -81.6162726744130964 35.0145609169642924
-46910 -86.0378501714164798 41.0344915777917265
-04450 -68.9325779196598063 44.915846277410111
-11569 -73.5807008141592718 40.5904516238938342
-29589 -79.3198003134328502 34.0949231940298461
-22551 -77.6979737191006024 38.182724494671497
-75563 -94.3781463603455109 33.0127557659399145
-53805 -90.6889679366226176 43.144684363641943
-40143 -86.491830578850724 37.7724043581202693
-89825 -114.668842251045973 41.9815953138075457
-25820 -81.104316997331253 37.5002420850172129
-56552 -96.2300307532564574 46.9819228283525092
-76958 -100.71686158027515 31.6646925344036632
-94590 -122.24684590893969 38.1049794991106836
-59722 -112.741477557712557 46.3772076892005032
-46563 -86.3290841091858141 41.3448591059702153
-18823 -75.6865841273712476 41.7822994308943123
-47438 -87.1994810267689928 39.1705711800233232
-40858 -83.3971617222221795 37.0097350317460396
-19331 -75.5266997999999887 39.8897658666666715
-51579 -95.7245057242840574 41.7544448914072603
-63760 -89.8767872533333474 37.2372316622222002
-08844 -74.6524261187554572 40.4998555970342338
-80238 -104.885773727766889 39.7684148881801107
-53011 -88.0098907336344212 43.6586154627539216
-71839 -93.71925313120569 33.3208357819149228
-52231 -92.0637723694331527 41.3624244919028143
-68767 -97.5132948978873912 42.1941644122426283
-07205 -74.2281149668847036 40.695294404657929
-29886 -77.5057998000000055 35.8762516000000034
-24283 -82.3461960854092183 36.93818949433836
-68839 -98.3781385000000057 40.8197155000000009
-25262 -81.8309500374833618 38.9039743159303697
-13808 -75.2559991739887835 42.5273952640852571
-71467 -92.3921556852174604 31.5238407201160591
-61270 -89.9660383456019588 41.8301277881508966
-25048 -81.4366132448377158 37.9490399174041713
-36765 -87.5386416084573113 32.5891347541111926
-32134 -81.8657508333771062 29.396574475525064
-42207 -86.283977570574919 37.3011355197700567
-68524 -96.791078784987107 40.8535418479643724
-07850 -74.6562221535649542 40.9085416550882286
-84339 -111.924285520340433 41.6423886631564955
-50274 -94.8612234799999925 41.3856491545946454
-56050 -93.9512309760284836 44.2672770279663581
-59418 -109.907078200589936 46.8068272094395468
-01851 -71.3328501540997024 42.6307126448290106
-53059 -88.5183959585635023 43.3103846077347825
-47385 -85.4504036538462657 39.8330178623076918
-60350 -88.7940279999999973 41.3844720000000024
-51007 -96.1885112484254705 42.4083818964310879
-64868 -94.6158988499999793 36.669189700000004
-74840 -96.7821293497631672 35.296509913270107
-55962 -91.8446376214875073 43.7705827570248047
-75473 -95.5031671774990087 33.8000368734091268
-39579 -89.2567769999999996 30.3109863333333323
-16159 -80.465723049273862 41.1648847926089374
-19031 -75.2118273410771252 40.1087887460400836
-78578 -97.2529046688430441 26.0873116732937724
-83112 -110.926800960030121 42.8825821983407849
-41175 -82.961014920800352 38.6637824292826906
-30635 -82.8217524042466522 34.1194111885374269
-77969 -96.6719148615384256 28.8030014615384538
-90222 -118.236604963461431 33.9112280205128656
-30047 -84.1145256888091097 33.8723585178697704
-13120 -76.1767786745974718 42.9494747186843853
-37915 -83.899673310145829 35.971913358748445
-20018 -76.9739715151071522 38.9275927165355355
-94675 -68.2301903333333257 44.2918636666666643
-26416 -80.0181918017285909 39.156142319788465
-04654 -67.4938416330217592 44.7187321431020379
-07047 -74.0192076104175527 40.7938477717233425
-95123 -121.832784502464662 37.2433078361635097
-27589 -78.1436464790779013 36.3550330597857112
-18825 -75.5937622883434983 41.8178956472392684
-50671 -91.8059898164556927 42.6470543101265918
-23901 -78.4217355045049942 37.3033046610803893
-60442 -87.972554179925524 41.418271215226909
-46926 -86.054785499688407 40.8790769279924362
-06333 -72.2347905906017758 41.3754975651422612
-21402 -76.4759009624572741 38.9887330716723426
-33970 -81.6577816754966364 26.557156788079471
-08107 -75.0844217607702831 39.9075530471364317
-34239 -82.518887960048275 27.310829933613757
-47863 -87.4590342655601489 39.5785141037344559
-06117 -72.7533015632003952 41.7899020123087084
-49229 -83.8388195276145609 41.98778727692914
-68648 -96.7917255313496412 41.4089411849097218
-84065 -111.955361754430371 40.5097281220985579
-64152 -94.6995589603434667 39.2200438554810091
-46714 -85.1657601463598866 40.7289634702614123
-74117 -95.8896936707317309 36.2285712225610013
-25082 -82.037831470233499 38.5925276493969989
-78758 -97.7039363422667151 30.3809586526880615
-60113 -88.95792889230772 41.9302028830769515
-25554 -82.0785939069767352 38.0837543023255805
-29734 -83.4146370645161426 35.1107739032257982
-36476 -86.4981988562499851 31.3639821562499996
-38488 -86.6901115160576268 35.0425999276023461
-15033 -79.8623932432874 40.1783945272580567
-89702 -119.633506987341718 39.2279666835443095
-49401 -85.9423449560991202 42.9701972688246485
-01720 -71.4432467951627785 42.4792454270507349
-78231 -98.5426096191035441 29.5739358274244957
-38957 -90.3580709806679039 33.9722367803163507
-28153 -81.5052363333333432 37.4282630000000012
-86038 -111.454208816393404 34.9093931868852394
-15477 -79.8635672231708753 40.0796478317073053
-94936 -70.7672177586206885 45.1392390517241253
-54432 -89.6165029999999945 44.9348090000000013
-80514 -104.94621110561792 40.0756332943820084
-67052 -97.5633192504869697 37.6633084274157284
-04281 -70.498319380406457 44.2381335797034367
-39364 -88.4971914535323094 32.4095543060272036
-14611 -77.642067623524909 43.1480458373894038
-96710 -155.136888000000027 19.886507888888886
-45144 -83.6137299213935847 38.7058052901867455
-45788 -81.3685005404919224 39.5154437831187551
-75117 -95.859400280335592 32.7052642980016728
-58631 -101.825072477568384 46.8112096610587685
-72934 -94.2563775308304486 35.6760376471362548
-13477 -75.5107648398648621 43.0367402385135094
-32663 -82.2059339999999992 29.3315829999999984
-66776 -95.4821281469879608 37.4644459656625983
-22980 -78.9049777059654502 38.0843602934240835
-03782 -72.0897006891439958 43.3828222728000554
-37098 -87.3184376322408156 35.886403773375406
-36907 -88.3508587735461219 32.4135271615336578
-95204 -121.318428136091171 37.9733760488311276
-62129 -89.7785291935484082 39.6980928387096839
-58506 -100.811458461538464 46.8204539230769186
-61313 -88.6748731137820556 41.0735984807691992
-72059 -91.3380838823529473 35.1500031176470671
-96033 -122.636631202028454 40.732207688438038
-24066 -79.6993703206573798 37.5360796916149937
-58236 -97.5643287328767173 48.7176984794520465
-53706 -89.4127922781248969 43.0752010390624918
-46953 -85.6547693108695967 40.5302666984319941
-51009 -95.5512667674418736 42.9459185813953326
-59918 -114.925942818973979 48.7577443107454371
-59058 -107.892276615384461 47.104076155195628
-15484 -79.7853401347149713 39.8943817046632319
-76086 -97.7912437621413062 32.7558000196259655
-70773 -91.3740899658119901 30.6092331709401826
-27597 -78.3079564154989072 35.8502635755580457
-73703 -97.9192637094051292 36.4041509984122911
-35624 -87.7493976666666669 34.6987186666666716
-95912 -122.056845578485408 38.992388362788212
-07820 -74.8187292836879294 40.9193676524822649
-22488 -76.5844566496335659 38.0485554310048855
-63825 -89.9303969150699345 36.9191743071069141
-67216 -97.3140056380650407 37.6135250453498031
-54452 -89.6966480046528858 45.1492516694814014
-01915 -70.8679979478862236 42.5649006095507403
-01609 -71.8247551849194537 42.2824104612008114
-29505 -79.7385438631846881 34.1389862791101635
-94043 -122.078382678693302 37.4065641589466509
-31019 -83.0544957445501524 32.4234464316854911
-18405 -75.1026179255636066 41.6089032891838926
-47586 -86.7168581309460222 38.006455339493165
-21784 -76.9655159526840293 39.4004171374176906
-71759 -92.658795758434465 33.3229635465586611
-14052 -78.597443505659939 42.7722322699643911
-12121 -73.6021452458175958 42.8411297534994944
-46809 -85.1868269480654163 41.0235936530402938
-56710 -97.0045732409502648 48.2308340797511761
-45122 -84.1268633114353008 39.2207383350584138
-22714 -77.9085167290280367 38.5239453528628673
-21804 -75.561679822521441 38.3486294205788738
-66502 -96.5648330023902304 39.1870188563117949
-64101 -94.5991958571428739 39.1032752877846974
-50269 -93.0055786382978624 42.260317925531929
-41634 -82.6677801333333377 37.4563375666666687
-65626 -92.0824730987298494 36.5809066024169525
-29129 -81.6679368484936248 33.7899524974091392
-30332 -84.39698688571427 33.7732900571428658
-29587 -78.9725977777777786 33.614859222222222
-66860 -96.1343289918099941 38.1419724156429538
-29615 -82.3034214317004285 34.8605199348935173
-99759 -163.012593621621562 69.7454186081080962
-36583 -88.2004512643380139 31.3637825588615833
-04612 -68.3749507986436811 44.2538325607720893
-43355 -84.2539783333333361 41.4381576666666689
-97341 -124.05771409619463 44.8157732547568415
-08629 -74.7321489779146901 40.220512648690331
-77032 -95.3456361173334841 29.9432111697189143
-12549 -74.2535666333727846 41.5310617352282065
-39530 -88.8921342581583218 30.4028873753896924
-43317 -82.6823982857142994 40.4795849428571515
-73027 -97.2377418041344441 35.9821262931355434
-92038 -116.602033833333323 33.0788186666666704
-78884 -99.5189605734109364 29.6374277217457767
-64870 -94.4719327664005846 37.1571166588381914
-36753 -87.0939231160714371 31.8227624732142935
-60951 -87.749166254721402 40.9173559273608234
-47551 -86.5732555166578663 38.1180886377579071
-63240 -89.6516283333333348 37.1736943333333301
-78833 -99.969564261413808 29.7031487437407655
-37046 -86.7262246491609545 35.7808791762316787
-04541 -69.4782799444443953 43.8870883773148321
-61924 -87.6458575433535003 39.7810495437488214
-46113 -86.3113561312531203 39.6329052824098937
-05872 -72.0292741169915587 44.8570228235840744
-94964 -122.483786482352912 37.9422172235294184
-92701 -117.860432523469171 33.7474394020406478
-33550 -82.3078143333333401 27.9785989999999991
-37215 -86.8274225661057528 36.090694750863463
-40055 -85.327664766319657 38.5022256862719487
-63601 -90.5371904521487636 37.8404269952561307
-44630 -81.4045603750000026 40.9273996249999996
-55126 -93.1366609050588181 45.0878901200328244
-16942 -77.3402219715329977 41.9654367437956637
-88628 -90.2579289999999901 34.3935804999999988
-77435 -96.0567568220424874 29.507484865857748
-58795 -103.169104499999975 48.6283791003788011
-54006 -92.6438023392746857 45.5867819022742182
-25274 -92.7858015882353016 39.0094917058823469
-35952 -86.2939825131189906 34.0592025419306168
-78540 -98.1907450937499959 26.372185093749998
-78572 -98.3317692473431748 26.2161328857729892
-48162 -83.3989243786235903 41.9463185933857829
-39429 -89.7680431864943387 31.2683781418080926
-54845 -92.1351317636887472 45.8081526051873311
-85713 -110.984160258056534 32.1945092492112224
-56264 -95.9733505739611417 44.5571560045748001
-94080 -122.431908479077322 37.6542553165068412
-60471 -87.7260675851869536 41.4815842928227596
-15421 -79.6082769099098897 39.8425556726726811
-66717 -95.6864684263394025 37.7105117968749681
-58210 -98.0312200125627839 48.3987097935501538
-68136 -96.1788371776244588 41.1747645167819059
-99420 -117.19892440000001 46.1412138000000027
-45647 -82.7376845667230185 39.2851992307431104
-95606 -122.184916789209524 38.7736918193224227
-27323 -79.6467407380952324 36.4512417857142879
-68819 -99.8620234999999923 41.6169827500000054
-15631 -79.5864888059702622 40.0899855354477594
-54612 -91.4824008054767717 44.2543610339943854
-90840 -118.122744080000018 33.7850135599999959
-50564 -83.9618676666666772 34.4359935000000021
-78130 -98.0987692267988507 29.6916723794058051
-34291 -82.2325702277453559 27.0935103259526535
-58243 -97.718704051627725 48.5265581686945353
-43348 -83.8844795674127113 40.4688847699115684
-98222 -122.808070637305747 48.5622783523316457
-96160 -120.220555358139549 39.3564721348837097
-31712 -83.7268600685944335 31.8360241916610889
-20164 -77.3927098347924129 39.0129734251998386
-76521 -99.7308622500000013 33.1566222500000052
-72014 -91.1102501626016874 35.4282654715447336
-39653 -90.8542671224293343 31.4648891913834525
-04250 -70.113154653979251 44.0274063021914941
-82944 -110.502235566666528 41.1173648038095081
-59240 -106.240354123188439 48.8427328913043439
-69441 -87.8083834999999908 39.5359820000000042
-75233 -96.8730256771301157 32.7035412394618703
-87742 -105.410176735103647 35.8288992538859432
-28546 -77.3745534830049024 34.7797135557947001
-96781 -155.092491000000024 19.7863433684210506
-49015 -85.2148831735386665 42.2846237169958457
-88445 -104.490572142857118 35.4625372142857103
-10992 -74.1693779503094106 41.4276098018174821
-59254 -104.556499206647658 48.7715572577610175
-75048 -96.5829363401482084 32.9784689195938654
-85603 -109.921373659486918 31.41624534280486
-60101 -88.0060136402855164 41.9326039326953861
-35806 -86.686048611104809 34.7674800785164422
-79070 -100.811422212847276 36.3600227583334288
-46104 -85.5976151389000677 39.6587812244398776
-47904 -86.8731240625206453 40.4281418472582672
-47341 -84.8997622231182447 39.9723235291858501
-17009 -77.5635995205949058 40.6358330675056791
-76841 -100.091843782287782 30.9211420369003704
-31301 -81.6179214907459709 31.76066490521589
-07004 -74.2949964544519901 40.879950223365924
-75684 -94.9427972436084247 32.273336611354182
-99576 -158.528767269137063 59.0475841682105624
-56207 -96.0582581132898525 45.5291653006535455
-27833 -77.3096754999999973 35.6259870000000021
-37325 -84.597606941863603 35.248942074572156
-52147 -91.9590048789574581 42.9549118782270085
-59750 -112.694162650485396 45.95676344538834
-94904 -122.541223152813984 37.9506274123494407
-05009 -72.3431789090909092 43.648393545454546
-24557 -79.3325097143334119 36.972601746408202
-37638 -82.2040343333333254 36.2588346666666652
-63628 -90.5472754291250652 37.9346984765556812
-99151 -118.063353658385083 48.6645865341614794
-07851 -74.8485012067227586 41.2054380554621247
-88003 -106.748362118644096 32.2800225932203446
-85245 -111.384181738095265 32.6030586333333048
-61073 -88.9945782029762569 42.4218959212769917
-70555 -92.1290579418296574 30.0889753614377682
-33605 -82.4319465479567697 27.9637277320163626
-62278 -90.0042693454862643 38.2051832217004232
-28125 -80.7058408200258839 35.6558997637030544
-43119 -83.1804243433439439 39.9401832294420416
-31798 -83.0516579953462895 31.622567064632964
-61470 -90.4896288902438926 40.6089003928570591
-60140 -88.4801646979343133 42.0934492636695765
-58220 -97.6951256480765693 48.8070484071779731
-17028 -76.6595001046684388 40.386136725307118
-37421 -85.1450400265744491 35.0249486272992883
-75607 -94.8151410000000112 32.4451180000000008
-32085 -81.3223066666666767 29.8282306666666663
-95141 -121.752832135593209 37.1612384915254239
-15331 -80.0212839635723014 40.1076954994124435
-31784 -84.0364283619220203 31.2542188118544928
-83861 -116.60905387077743 47.2964469100046045
-40070 -85.262460765329223 38.4800164148373085
-58225 -97.2336425587836288 48.6081871970812642
-84648 -111.833631567522986 39.7106796813574903
-35476 -87.5857046407947308 33.2314569228459362
-67839 -100.452602437956202 38.4809936715328789
-97443 -123.055081185287492 43.2703626508047563
-52544 -92.8946600631231547 40.7251756056847896
-22579 -76.3279548720930165 37.8129636162790632
-70605 -93.2491813775922509 30.1645572226105259
-72108 -91.0935805645161452 34.7217422096774087
-53532 -89.3321141166465935 43.2357788675417112
-80948 -106.096230843750007 39.6662269374999923
-66851 -96.9223115792922556 38.2392616697247689
-45815 -83.9414869838709876 41.1535138709677355
-87417 -108.345966721468997 36.7366380884180259
-17965 -76.1651824194659213 40.6989753583117917
-72335 -90.7758990969674358 35.0151153986019494
-71052 -93.694324211449171 32.0139322525484928
-20769 -76.8076750699399327 38.9814470934132231
-01460 -71.4844112036277437 42.5391257317144849
-01608 -71.8013347350198927 42.2621432143808562
-84774 -113.285056201956579 37.2413349776380755
-99185 -118.694563415767959 47.7802787138326295
-62401 -88.5630280233030618 39.1176634394716203
-39438 -89.109085571428551 31.9653450000000063
-52313 -92.0893912805016583 42.2656190809578263
-00718 -65.7247794636872129 18.2186035240223383
-61441 -90.2902597586560347 40.3391489420364522
-47513 -86.7107586472368723 38.3107848036337089
-14172 -78.8323718993399751 43.2973354859736119
-56037 -94.0502547776596458 44.0291372803110761
-43063 -82.4460699999999918 39.7639172500000058
-05449 -73.2667644999999936 44.5476765000000015
-32664 -82.2222278286478883 29.4500775903614844
-12517 -73.5127822171052259 42.1311628110902419
-88827 -135.39771515384615 59.1713401538461454
-30882 -81.9246821666666705 32.8938876666666715
-56303 -94.2015952199839006 45.5714964028663019
-26408 -80.2994134902437509 39.2047601954703993
-11969 -72.4295125499999841 40.880408800000005
-76665 -97.7149313546551355 31.9224625817146332
-76870 -98.5173001935483796 31.6484358677419522
-32621 -82.6132350913248388 29.4447768930298075
-44040 -81.4120749059026281 41.5282090663194765
-98603 -122.435161540406455 45.9931191755080917
-29567 -79.4300802894632767 34.5434537630209064
-17080 -76.8024059375000121 40.6398618616071374
-85708 -110.864422249161052 32.1840492802012932
-67364 -95.8194234739582527 37.0379180624999762
-89003 -116.762420705211795 36.913477350162907
-45362 -84.6407962489727623 40.2836977892359158
-74631 -97.2903331351780594 36.7994156503376857
-71670 -91.4333304947195558 33.7493121506904572
-49261 -84.2459684705882665 42.1636127411764647
-36083 -85.7022502996592976 32.4206714598885171
-55704 -92.7544178413205458 46.2030600103834388
-37166 -85.7900580131146455 35.9232963169771793
-79344 -102.954454824701102 33.8538294365395984
-57256 -97.2025080253377212 45.2388484054053777
-18464 -75.180590534119986 41.4061791511479811
-98273 -122.333950563145024 48.4187715378154451
-16656 -78.5650298818970612 40.8082280815249447
-95555 -124.062052823574675 41.2885791864407494
-14060 -78.3100234737375303 42.4343972555554885
-57074 -96.3378445000000028 44.1250130000000027
-15633 -79.5207740491803321 40.3554688797814194
-10106 -73.9803765000000055 40.7652225000000001
-82514 -108.905785302083444 43.0092206671006139
-16502 -80.0998079086996029 42.1116743140008367
-04079 -69.9488278722989207 43.803707327469219
-56680 -93.9468065023752814 47.6416818990499067
-39633 -91.1657114659206513 31.2812387177499716
-60438 -87.545896610838156 41.5663476562154983
-67938 -100.53826766666667 36.904565666666663
-14167 -78.3176449450957648 42.7392293584206229
-71943 -93.5609695470919576 34.3340142504690249
-96085 -123.019502661224507 41.7384399244897608
-08527 -74.315546040729771 40.1238441540363837
-61014 -89.8829952453542518 41.9750096163256003
-88206 -108.099440999999999 32.782837200000003
-15366 -80.0472052657142541 40.1366595228571086
-24072 -80.2268599855668896 37.040424127835081
-72478 -91.0603449360682049 36.4582606543589876
-52245 -91.5029003053369934 41.6649819208386702
-27052 -80.1572601683286479 36.3331552699609333
-22000 -76.5953459411764754 37.9948782352941166
-27576 -78.2632781518570226 35.5678099143323294
-17763 -76.9376978393235902 41.5115336004228155
-31909 -84.9212559590584561 32.5410193518979014
-03817 -71.2174614751286157 43.875051061749538
-79732 -102.539361624999984 31.2397642500000003
-72995 -94.1029860000000156 34.8822911249999947
-34274 -82.4549692232142917 27.139569598214301
-56663 -94.4775643493802164 47.5154096849380565
-75169 -95.9988212404441299 32.7318437557171222
-89034 -114.119553527114874 36.8295914143167238
-60615 -87.6014488908235904 41.8019177388059759
-78235 -98.4439988809524067 29.3471493194444477
-50642 -92.8110921088957497 42.4202448773006395
-41759 -83.0286516562796209 37.2229416666666779
-15373 -79.5594832222222266 40.5900022222222248
-41501 -82.5211885229754216 37.4926600498907234
-63954 -90.4850732458643563 36.5563914810250026
-49639 -85.4082290658763554 43.8441658582174654
-65078 -93.0002936639884581 38.3339935140758783
-61519 -90.0946347594936867 40.4640465221518681
-30161 -85.1400626262983877 34.2504858041974316
-07976 -74.4897019257504667 40.7351372322274656
-27213 -79.42197818181819 35.6453121818181771
-19810 -75.5051025574671684 39.8182030251554622
-37664 -82.5005062750684459 36.5226137312035348
-16217 -79.1896225920000347 41.3405388303999715
-11109 -73.9566816363636406 40.7479265454545398
-42257 -86.2891754999999989 37.2392739999999947
-71238 -92.3707570355241216 32.3740867184803491
-11959 -72.6035470510592944 40.8242156572515
-48124 -83.2545864826939095 42.2972476613656951
-17349 -76.6792253087615308 39.7501801401293164
-25692 -82.118429163461542 37.6420988461538428
-71451 -92.6182436111110974 31.0988887222222274
-55477 -103.793320153846167 43.0318098461538412
-61257 -90.2075545333333366 41.6016809075117351
-60135 -88.6927302844511729 42.0961879734709754
-08203 -74.3811058910618499 39.4014698587674204
-87648 -106.203365000000005 36.2018668333333338
-85550 -110.464428461748625 33.3416241393442405
-61932 -87.8621822101617056 39.7905882147806054
-55346 -93.4854590472166507 44.8779153164950131
-12809 -73.4584491563090012 43.2368861594959171
-73458 -97.2447674734424794 34.3440168577048865
-31069 -83.7228951690419478 32.4658696167017951
-16738 -78.6994621102677883 41.8266973891330878
-21675 -76.0878182404643724 38.2880873084577402
-63622 -90.8855628059702525 37.7909053943916859
-78264 -98.4899867554219242 29.1808936582831997
-72572 -91.2963422721202704 35.8986538430717772
-46203 -86.1037943338413356 39.7367830802843685
-04962 -69.6223248035714306 44.4840775535714315
-83253 -113.865004955935433 44.5756432976619124
-71061 -93.9890430776414831 32.7478194678132368
-85044 -111.99150058813143 33.3315767390747908
-90031 -118.210703441617937 34.0812106707849125
-61301 -89.0906856399726337 41.3556169626968355
-23386 -77.7399793571428432 36.792870357142867
-65589 -91.8236449477125376 37.234066859477096
-53191 -88.5443512994127389 42.5772441353555635
-47882 -87.4148595950910732 39.0962740559980162
-96074 -122.574633760330542 39.8855057913223234
-02576 -70.761864031000826 41.7750861972246454
-89030 -115.126432201772985 36.2084903265511215
-25103 -81.396766652482242 38.1987594361702278
-43728 -81.8923477920375973 39.4915616516042007
-97721 -118.649096963396872 43.072643253294352
-62756 -88.9572427499999918 40.0337700833333372
-79087 -102.977916296471719 36.2838803080895147
-35773 -86.7134216737110819 34.8929830383867312
-59928 -114.34406413011142 48.8017744721189715
-10988 -74.5631929813780658 41.3016519888267624
-15325 -79.9655084316546834 39.9485556043165388
-47141 -85.6089415284137516 38.5483780339271149
-02672 -70.3205671271477826 41.6359189553264528
-08078 -75.0721075206314765 39.8492153489556458
-55786 -93.3751072362205008 47.3139888503936916
-43988 -81.0996193797221423 40.4039129912687542
-73047 -98.2711367666898212 35.4463785257302249
-01561 -71.6869007962962854 42.4429198148148146
-55006 -93.1899410187555191 45.7358397523896016
-88134 -103.922860492882535 34.4800353398576718
-37813 -83.2712570197722215 36.1862812137351284
-24737 -81.2500650839160556 37.3552116783216661
-34205 -82.5851028740132875 27.482409715890185
-62704 -89.6866573018068038 39.7775753343641796
-49021 -85.0568243447327319 42.4498879814401988
-68527 -96.5296159803240528 40.8450565428241035
-91776 -118.094916060102051 34.09040152064496
-60666 -87.9117716623376566 41.9684102857142776
-79535 -100.427093347826087 32.2205594754558362
-11726 -73.3960688066426883 40.6791487931600599
-17271 -77.7995525202952365 40.1036405448954412
-04739 -68.5931242055747958 47.0293069168117626
-14543 -77.6758091218411408 42.992614708935001
-49093 -85.6520511933858728 41.9600437006172484
-33437 -80.1481453493234994 26.5139917794940878
-60301 -87.7980575189873349 41.888032831223633
-16342 -79.9330025975081213 41.3243026678485066
-80746 -102.472549172413792 40.6104494827586251
-79403 -101.789936911813726 33.6191743972075088
-24613 -81.3281648028022772 37.2668971904514876
-56172 -95.7537193348312741 44.0115401316854218
-60585 -88.2298659668831817 41.6527231766559751
-35036 -86.8542177663043304 33.5564968478260894
-35024 -86.0126963750000044 32.6362094999999925
-22039 -77.3095671882881987 38.7550689882989232
-45301 -84.0232778088235364 39.7095933676470594
-51521 -95.3415901785966611 41.4756194422807667
-31072 -83.5688286374999336 31.9760542807692012
-42157 -85.8202273309230321 36.7852407643555637
-66761 -95.5521082454694977 37.9061612701812649
-79905 -106.426028791814716 31.768134360665055
-17882 -77.2022421250000122 40.805040500000004
-37774 -84.3264059367702856 35.7210515170661509
-65483 -91.9550182122584232 37.3186758475250215
-54666 -90.512442695738315 44.1113758576600787
-99836 -134.650214235294044 56.2499339852941134
-62568 -89.2983158344592169 39.5527824697782506
-52501 -92.4249140164519645 41.024681294432888
-94060 -122.345823311425875 37.2257316744046349
-98532 -122.992885824180206 46.6213630317956742
-54736 -91.9613160762094708 44.6273480192180187
-59528 -110.425746426174484 48.5860910637583814
-59255 -105.183089117258646 48.1585116180841624
-29453 -79.6768353315114837 33.2109148162789296
-59643 -111.526432810897333 46.1666128317307098
-66419 -95.6134358709056187 39.3732163121387444
-95703 -120.994167493762433 38.9945829808529538
-24553 -78.8146325879564529 37.5421101226490777
-12765 -74.6126435390334137 41.8485188468400651
-26339 -80.6055847920257804 39.4152573696120854
-22957 -78.1778903955095359 38.2272790017271262
-26823 -78.4987326096491103 39.134551065789438
-32320 -85.0037345912428322 29.7297052676979519
-89120 -115.094047385133024 36.0861061271351531
-43525 -83.7064116905370383 41.4637083478261133
-04038 -70.4575718607501784 43.7010101677500913
-03853 -71.2820672999486362 43.6324785952747902
-34997 -80.2223060181900536 27.1306877586917103
-48758 -83.6698053333333434 43.405665666666664
-72476 -90.9436515156992726 36.0567637338036846
-45419 -84.1678373214997464 39.714429897999679
-57420 -100.119178717171707 45.3186806969696789
-84060 -111.49425326226627 40.6568925439088815
-11102 -73.9285014545454402 40.7740012727272827
-15101 -79.9596407456820515 40.5722366182328642
-13480 -75.3711098607328438 42.9182617238219919
-57248 -97.1999886872074939 44.5652991895476021
-17505 -76.1952379790608632 40.0630553375635046
-82648 -107.104715294736863 43.058449305263153
-27956 -76.0057894405940999 36.405399757425748
-19063 -75.405288736871924 39.9189770898661038
-86237 -112.166163777777768 34.5564441111111122
-63876 -90.1601143731698329 36.1311281242764579
-44690 -81.6894789847328582 40.6226084732824617
-98822 -120.308118087836647 47.7264391350009092
-36251 -85.8485992405442602 33.2434985682281834
-47273 -85.736915265332911 39.0749596805509896
-41091 -84.7084953830226368 38.9314057813818479
-44615 -81.0740412456771793 40.5606578033509564
-37361 -84.6898084997366709 35.1053115327595222
-38945 -90.184157096551715 33.6586807999999991
-64040 -93.9905287794119317 38.7298505722556499
-57329 -98.1649539476660493 42.9767553224893604
-37246 -86.7900934000000035 36.158764000000005
-77496 -95.5852624117647025 29.5440088039215709
-91124 -118.151521166666669 34.1495586666666711
-18091 -75.3138023722773085 40.8233392084865727
-12075 -73.6425757803055632 42.3011687941993131
-00707 -65.9154876740947202 18.0079455041782808
-31060 -83.0660972173218397 31.9814784774689258
-79371 -102.660181553616866 33.9925611761701774
-73750 -97.9347093905851267 35.856617236641199
-70579 -91.8614565000000027 30.5435544999999991
-50448 -93.2337271865056323 43.3540925277016527
-07701 -74.0828956777516652 40.3574976330211044
-14904 -76.8037407332392377 42.0723183861387042
-05672 -72.703295056626601 44.4740935930655823
-01803 -71.2011413860071087 42.5062312827745572
-65020 -92.7851918784742935 38.027327779491749
-78933 -96.3631209753988145 29.8363552539893391
-07938 -74.5806742352941257 40.6635811176470554
-31047 -83.6570129179991397 32.5160689014945063
-47556 -86.9234702500000083 38.1600734999999958
-63850 -89.7817898400000161 36.8227975999999941
-59833 -114.047936179162477 46.6406635117853341
-95706 -121.817637703703696 37.0024461111111052
-96750 -155.932956806451614 19.5363210967741914
-46966 -86.564185666666674 41.0441966666666715
-07394 -124.08113075 44.4368774999999943
-81642 -106.643244824046931 39.3328360366569001
-78356 -101.437337200000002 33.2261839999999964
-34757 -81.6429987499999896 28.7918831666666648
-87558 -105.391442266606802 36.6795637176840543
-13117 -76.7062233230768982 43.0082635076923125
-85282 -111.924776406212814 33.3915082417899924
-00969 -66.1070081468307791 18.364724228910152
-88122 -103.791801259259259 33.8217611666666684
-10805 -73.7794004706616136 40.8998335805243514
-04989 -69.6482879579713625 44.4301484717007753
-77093 -95.3385201248890155 29.8642688962890013
-91730 -117.587226695694198 34.1063723113865862
-53232 -120.094972599999977 36.2010464000000027
-10009 -73.9794104249547217 40.7260578878842665
-32064 -82.9905373041338663 30.2935670593274331
-26224 -80.1715895361445803 38.7151128072289126
-95819 -121.439490525880785 38.5706105704653481
-35044 -86.3714931371958272 33.2569849399158031
-20911 -77.0341324999999983 38.9930080000000032
-68866 -99.1024327408009356 40.9601577843057143
-75763 -95.4989267448741259 32.0701421863482423
-63745 -89.6811832642857212 37.2495390428571582
-78244 -98.3485627802586606 29.4767099449581522
-20781 -76.9339905653068854 38.9476717593190003
-13360 -74.776490008109846 43.751554192139686
-78362 -97.2066011673036741 27.8676875459860725
-36854 -85.1796635787539458 32.773775698558623
-93424 -120.729277380484632 35.1878046142762955
-23843 -77.8115168639705672 36.8485593145052448
-65327 -93.4284098823529661 38.8672016544117653
-85325 -113.970094580957351 33.9688032945906642
-85601 -111.278060414804088 31.5816004349577995
-16052 -80.0674515271318796 40.9016060059157951
-12910 -73.6533922523775146 44.8655402820044671
-14126 -78.7202767162790593 43.3366085744186194
-44514 -80.6087540447972799 41.012794628030889
-17112 -76.7863147226610749 40.3440291263373325
-52251 -92.1939159081385498 41.7177162449637606
-01453 -71.7556989470529771 42.5249425119425197
-07970 -74.570856859375013 40.8145806875000048
-43231 -82.9400495497276609 40.079105479725591
-03416 -72.040934923076918 42.7734066923076881
-47849 -87.5500304600732733 39.1891265831501983
-56641 -94.2565953810356092 47.2110184880744512
-87652 -105.673072200000007 35.4965676000000059
-37026 -86.1185581721240396 35.7025943244778716
-75056 -96.8949568906483165 33.0759580388758181
-54235 -87.374340928574469 44.8504084563695358
-19001 -75.1282016583320171 40.1277381392850998
-63472 -91.5818854696132405 40.3952792900552708
-76692 -97.3527134110747028 31.9794602772321603
-71857 -93.3527099967579375 33.7935813363313216
-56574 -96.7289055972222371 47.1892314537037052
-97063 -121.262597630454962 45.2368310239555385
-71671 -92.1002150488019566 33.6076546210586926
-64148 -94.4873089999999962 39.2281171999999998
-54740 -92.1496039644886338 44.7799637272727153
-92375 -117.231502631578962 34.2479507894736841
-31643 -83.5489941843915318 30.7845158168214219
-10016 -73.979670063063125 40.7448101209781157
-84076 -109.837473236543957 40.4548763271954641
-04986 -69.2294811088484181 44.5579876421818994
-16860 -78.1712824399550641 40.9560822738496313
-23405 -75.9402284568192414 37.4164343400188386
-21654 -76.1422676445784248 38.6853222031763195
-63107 -90.2096418792481245 38.6631287411036766
-35805 -86.6158453386181293 34.7094073407120902
-89824 -115.441923181818183 40.9695999999999998
-12976 -74.1673271065831443 44.4694172115987598
-58854 -103.194127619434738 47.7933533600171074
-43083 -83.8374266000000006 40.1085390000000004
-69153 -101.697664920791013 41.112231414322423
-17318 -76.729413162162146 40.0183505675675448
-33408 -80.0609991484054149 26.8398020978843341
-27603 -78.6618113331723521 35.6769750488983917
-29706 -81.2132482713152797 34.7239831670979555
-92579 -117.258262200000019 33.7900440000000017
-12857 -73.9206067759267427 43.7932773090379968
-17762 -76.6966505604166713 41.265512508333309
-59647 -111.668164687581822 46.4833953006535907
-95816 -121.467685458648887 38.5718415586185515
-68446 -96.1825163064905695 40.6615040924091105
-52078 -91.1184639867818618 42.4008253678213194
-56587 -95.8468923131908213 46.6392574476062052
-25823 -81.2099393604575113 37.6721389101307267
-17844 -77.0641032915953161 40.9389056678304186
-31790 -83.5843047003822761 31.6572670066041013
-07920 -74.5691768779057895 40.6778507868622441
-97202 -122.638150761622029 45.4845864562847453
-76121 -97.5405939999999987 32.6150583333333302
-77933 -96.3268570000000039 29.8780000000000001
-87328 -108.988652072289142 35.8395157771084314
-32561 -87.1577234443064697 30.3544457474119618
-37713 -83.1342611191620335 36.0844925321888894
-19380 -75.6030690116921704 39.9862368549791611
-27601 -78.6330089779047086 35.7746724682224198
-06498 -72.4591223231448964 41.298071304709957
-02723 -71.1315761716720658 41.6930760998376684
-44830 -83.4109508232654662 41.1638858699193406
-04970 -70.6447924847055049 44.9639612922628515
-49014 -85.128783646965573 42.3077054801517249
-33035 -80.4513783309913322 25.4492621971116222
-13901 -75.8799561918331449 42.1610363099480026
-46763 -85.2290981295337389 41.2907842336316619
-08536 -74.5806254254126486 40.3350714360013498
-68354 -97.5874173022636313 40.6353241617842826
-89025 -114.645537816556399 36.6899697774834692
-11955 -72.8233194067797456 40.8066943262712201
-87395 -108.830451399999987 35.4637902000000054
-56211 -96.7008524736048116 45.5658128763196686
-02140 -71.1280984050950309 42.3918802997002686
-79257 -101.347205339712957 34.467931782775139
-56714 -95.9961149861593412 48.7842167277970518
-68640 -97.7538449374300171 41.4509651122905325
-19806 -75.5638464587714367 39.7584262032576063
-92029 -117.115310013854995 33.0870816797617451
-70564 -92.5117391666666578 30.6632925000000007
-17127 -76.8809109999999976 40.2614984000000007
-91762 -117.663426544580744 34.0554039961945278
-23069 -77.3376597585164234 37.7665009857682108
-85552 -109.761778487921035 32.832382392020655
-33765 -82.7459076313815842 27.9744450781655587
-49752 -84.5767416619127914 46.2777155444630637
-53935 -89.0678697236841828 43.5877488289473831
-94960 -122.57158087702598 37.9857093688363818
-18472 -75.3938528100132146 41.5839127726401188
-68428 -96.806773170570338 40.9725179058045086
-08750 -74.0445201069915697 40.1349570905719588
-19132 -75.1699639231121068 39.9958758878525558
-78550 -97.6926424624056722 26.1964187390573997
-63119 -90.3532175843238008 38.5871996050492285
-13494 -75.1468542019899957 43.5349342766169087
-24363 -81.3885709995582829 36.6071381656067487
-57005 -96.5794339401890198 43.5826314933544054
-98256 -121.541817987834577 47.823904863746975
-36641 -88.3603584999999896 30.596528499999998
-49766 -83.4485749203905556 44.9151407724372049
-29415 -79.9463445000000092 32.7265096250000056
-17889 -76.8964790153466993 40.8870187283061242
-63952 -90.6645245343915747 37.0448459100529206
-30141 -84.7780552716727698 33.8627301772808167
-55806 -92.1269850901522886 46.7730524301231938
-43551 -83.6139748590000522 41.5417701358257219
-31743 -84.0255528680947066 31.9254024859075614
-97902 -117.499371459459454 42.9100185405405341
-54423 -89.4178437785235616 44.5806222657719573
-90064 -118.421930053079265 34.0357174482434388
-70791 -91.1415122651997933 30.6565771707707775
-21917 -76.0959938823987159 39.6699860218068352
-49332 -85.2562134022149252 43.6339728070875452
-20714 -76.5364727725795149 38.7133162215724624
-76626 -96.7116568036047397 32.092384581727778
-56345 -94.3746776269063474 45.9819912852983919
-05154 -72.5191252059659206 43.1387537528408416
-99027 -117.126146663997886 47.7074717724154951
-83541 -116.482631806785776 46.5046272490222918
-15557 -79.209149567143541 39.936771805978772
-29412 -79.9539181418471401 32.7312213641215521
-95954 -121.596433804247141 39.8459298923011431
-63544 -92.8250173343950991 40.2431139938295317
-35601 -86.9872383367152224 34.5906141735082144
-20834 -81.1981300000000061 35.3289037999999991
-01230 -73.3580222352472191 42.1838228419709225
-36087 -85.729395750000009 32.3889556499999998
-50632 -92.7091257763899392 42.0827472425463327
-18403 -75.5526462061581725 41.4942874091890701
-82630 -107.215401613636331 43.1188250681818275
-81144 -106.145972153916361 37.5676203717358206
-08550 -74.608200104344661 40.2884788100778408
-46353 -83.9602102857142825 38.0368512857142917
-56732 -96.4733617618709616 48.5575511360736698
-57313 -98.3534692577811285 43.3363210354744552
-57756 -102.473062239130428 43.2331903913043405
-78355 -98.1423522702981614 27.2323328439534258
-98610 -121.866078943480062 45.7630973640410232
-13406 -74.9345478368122144 43.143735999999997
-46704 -85.2923304421052677 41.1034879157894721
-43523 -84.000327947368433 41.3425176842105415
-42085 -88.7928927802691277 36.5685898565021503
-55336 -94.1711412724703933 44.7668008901205923
-22479 -79.1963394999999934 38.1559120000000007
-56009 -93.554777392372003 43.673299026645708
-96813 -157.848133983002043 21.3136354072752354
-18644 -75.8699902179552765 41.3262256613041288
-79010 -102.147113478409054 35.471758585227299
-08202 -74.7281401886876182 39.0944972872294016
-32607 -82.4192098115301519 29.6451468318965361
-24848 -81.4245871458333426 37.2964588680555664
-15866 -78.8063161129706771 41.0385809288702745
-95724 -120.34279869026544 39.3111913598819882
-81320 -108.785576572390596 37.7049927609428082
-32616 -82.4909727783018667 29.794831183962259
-80904 -104.867218772623815 38.857587854481892
-64842 -94.1027873360811924 36.7970301743817103
-22849 -78.6086415988552289 38.5102150695533751
-06794 -73.3244397350961066 41.6499284608172573
-05630 -67.4043174999999906 44.7190165000000022
-72374 -90.829555876106042 34.5508375823008436
-55802 -92.0912567331189535 46.7821128108252466
-29207 -80.9353985465116068 34.007807825581402
-72619 -92.5901240519022366 36.3756816540690338
-77467 -96.196923987654344 29.2399829135802527
-10026 -73.9532619496567776 40.8026410480549515
-89010 -118.036145386819442 37.639083017191993
-24970 -80.4678869235955716 37.7422921546066092
-62673 -89.983421584944054 40.0823830020345682
-93552 -118.032938036860031 34.5495719419795861
-33152 -80.3129624999999976 25.7946035000000009
-50676 -92.2726776587156508 42.802842338837884
-28014 -80.639710666666673 35.1381021666666626
-38345 -88.5134587475096168 35.5994125920550886
-78640 -97.8443432146615351 29.999412891000123
-77404 -95.6626441724137919 28.7854949310344779
-88347 -105.61728291142208 32.7913947440559923
-26203 -80.629421973818495 38.522813365900376
-32024 -82.7173645108006923 30.0971666321438285
-46056 -85.613496407299948 39.9761230045625595
-33001 -80.8144950150375649 24.8244604360902024
-98237 -121.767822095504741 48.529259993084672
-66025 -95.0855230821700559 38.920854515431607
-26369 -80.3328489254658393 39.3347073540372634
-41825 -82.7089439892703808 37.2272208079399221
-11979 -72.6038262499999973 40.8146614999999997
-32412 -85.1776782499999996 30.1038782500000011
-02557 -70.5721084172828057 41.4474136669908901
-95317 -120.491736276091814 37.1263275040710994
-87740 -104.435651457432314 36.8939061607842547
-49995 -89.3561729999999983 46.6131662727272698
-98649 -122.664988046225687 46.3389126432259459
-63634 -89.4312454374999959 40.0686179375000009
-71247 -92.719059066582858 32.2742924597989997
-10285 -74.0151140000000112 40.7141944999999978
-38116 -90.0130988350960024 35.0313229813834752
-49734 -84.512076820512803 45.0487564615384528
-78053 -98.2225509999999957 28.9610252857142889
-98386 -122.499896333333325 47.5120044999999962
-00966 -66.1189848223683896 18.3977822796052912
-16401 -80.3821645662158772 41.8857809221740496
-83520 -116.340394011273986 46.5107139921082293
-42261 -86.6667163930239894 37.2315665612914657
-96796 -159.666419312723946 21.9629941272401723
-14056 -78.3102781538461556 42.9944510384615342
-18071 -75.5878624925487514 40.830621561329977
-40481 -84.0893115819520176 37.4639077348066465
-11003 -73.7040103857840592 40.698335846807737
-84927 -110.861264816326539 40.1793404489796089
-30445 -82.5829589660276753 32.1807392563068575
-71362 -91.9588617292698132 30.9308631372871901
-96084 -121.946749083447571 40.797080878671359
-43412 -83.3228720480688452 41.6317689675431239
-97415 -124.26769097381495 42.0961049984100413
-26415 -80.9366472296551223 39.2913764521426572
-72380 -90.9809960000000046 34.1507253999999989
-77535 -94.8976267375231259 30.0399523316107597
-38768 -90.4794297711864459 33.9606669745762773
-98926 -120.51818604955885 47.0093620637556739
-54315 -87.3614434444444328 44.8547917777777698
-80831 -104.545926185167062 38.9783156948754126
-38668 -89.9293110993031064 34.606517522118061
-76371 -99.6375482195830955 33.463997539990288
-80818 -103.477450947396562 39.3950144347825884
-44147 -81.6811256679310276 41.3097555522474025
-04505 -68.4838829999999916 44.7034064999999998
-29502 -79.7526389811320797 34.1768424339622712
-37745 -82.8119400131918866 36.240871159048254
-84199 -111.943484249999983 40.7279162500000069
-50476 -92.7725986854962628 43.4453248804072487
-66105 -94.6359454152965469 39.0854724996426697
-49092 -84.9781391120894085 42.0976890667118369
-33033 -80.4303469284375154 25.4862279250340009
-54839 -91.1279398847641176 46.3535777393658606
-60152 -88.6043081371653614 42.2376529979312778
-85436 -114.223183000000006 33.6659549999999967
-75220 -96.8589045570249709 32.8691690458301622
-98590 -124.005418070110721 46.716115260762578
-47494 -84.974866999999989 40.1766729999999939
-19149 -75.0676003867948225 40.0374154976594596
-49017 -85.1998062615223404 42.3703513126745861
-11980 -72.929513160471501 40.8286027932910329
-06254 -72.1416627697956017 41.6135061289910766
-76374 -98.7543302070768902 33.3571199452307852
-76831 -98.9243112456140068 30.6668974526315807
-25541 -82.1334680463512825 38.4576852718225339
-30660 -82.9236472801999867 33.783098698001794
-83469 -114.391975768496295 45.3174860735084195
-74461 -95.7213853181818166 35.4007042727272676
-75976 -94.9549387136039229 31.498539554494851
-41365 -83.6300618335178996 37.7220270989294661
-93012 -118.979239075076777 34.226140223809054
-60555 -88.169306294776149 41.8124380000000073
-64561 -92.5685280000000148 40.4096693333333334
-81610 -108.819352897486851 40.273509446428605
-27520 -78.4748679507865887 35.6176892709415114
-20105 -77.5887295626767752 38.9451254424771065
-04642 -68.7926772552900445 44.335058027986328
-99147 -118.438590686868608 47.8357144680134425
-46779 -85.0252417617533638 41.5775386295707747
-49930 -88.554358232320979 47.1424989829306753
-05401 -73.2100137110445246 44.4738470765764831
-35224 -86.9346101796261479 33.5195772521494959
-84132 -111.837171000000012 40.7686868000000047
-61621 -107.070436999999998 39.3711028571428514
-66527 -95.6795129747212485 39.7474799107807399
-45622 -82.5015897887037255 39.3554412588378639
-73136 -97.476624000000001 35.4927552499999948
-55838 -91.6818880000000007 46.229686666666673
-72303 -90.1951433333333341 35.1315471111111037
-20740 -76.9255838660014177 38.9967278269422337
-12120 -74.1439308402408841 42.45427604109112
-30413 -82.5110380980429596 32.8864020265336876
-18958 -75.4316148846153993 40.2932159230769145
-24751 -81.3307612999999918 37.3093281000000019
-34601 -82.3721661923652277 28.5660106705800345
-44045 -81.2809551493670313 41.7392167291139486
-37404 -85.2722588555371601 35.0295471450917262
-90220 -118.240400339316125 33.8870684434188192
-60046 -88.0540447357439575 42.4126222337673582
-28575 -76.8878007920000499 34.6888213559999912
-98024 -121.900113607487754 47.565239842693174
-63781 -89.9403585264117424 37.5503303260473231
-27866 -77.512504740959443 36.518775573062662
-26181 -81.6578428682284709 39.2144779820159712
-29853 -81.4195068167600056 33.3920111192253088
-20134 -77.6930456363636353 39.1208844090909125
-54614 -90.9903843253389226 43.8923708957247101
-92866 -117.845164949262781 33.7849176221655512
-34950 -80.3364634924632526 27.4464786231645341
-52342 -92.5621193611427771 42.0258471027141809
-95309 -120.444676067796607 37.8631219067796465
-49044 -102.384614999999997 35.906224888888886
-59002 -108.679775475719495 45.931110224820209
-28458 -78.0546085496203972 34.824279907710654
-58367 -99.5794076825425662 48.8461136039846835
-37732 -84.6107964673366979 36.3304519020100258
-96740 -155.977154883561525 19.6614746301369792
-04108 -70.1899877742196736 43.6604952748277029
-69334 -103.355573534526783 41.7646331576086993
-40818 -83.269262171717159 36.8091458989898896
-52036 -91.3390278118812518 42.4740933910890988
-42347 -86.8834258847800953 37.5231613410954097
-75228 -96.6824688004379169 32.8236508085926957
-28036 -80.8053515192963374 35.4839805397822516
-46986 -85.8234155130282659 40.4972805109155374
-08032 -75.1032189454545431 39.6900483454545494
-05822 -72.1560125008043514 44.7532271044426153
-99661 -160.484522011764739 55.3479603568627638
-48301 -83.2787730201201271 42.5449993818221159
-56177 -96.2571952394365979 43.8888562816901668
-46968 -86.5529367631578594 41.1740809736842479
-65770 -93.522359320346041 37.4003303879268643
-48461 -83.2168810829943766 43.2066447605097963
-79372 -102.478563528596098 33.4733315008665571
-70814 -91.0667226573216908 30.4862472481281515
-56713 -96.8132143634001494 48.3521086561432654
-17272 -77.638118999999989 39.7703549000000081
-32322 -84.6545336725490927 29.8612895887255867
-02435 -71.168651666666662 42.3421606666666719
-38841 -89.0195781087150522 34.3510638968429731
-46590 -85.8140497098310959 41.2171086466002521
-58445 -98.7649274181468968 47.5397477666827655
-37852 -84.6013941421142306 36.3456595736580255
-00673 -65.714638142857126 18.3740738571428572
-08205 -74.4913346150472506 39.4785634498419782
-29931 -80.7448162799999949 32.5711411999999996
-77507 -95.066500046822739 29.6262133043478393
-36266 -85.7227107620447413 33.343152632824868
-27819 -77.4590244092219109 35.8174995677233525
-17105 -76.8763815178571264 40.2785003750000072
-24475 -79.212977823529414 37.9550824705882306
-44845 -83.110706257142823 41.0249763142857091
-78255 -98.6559107118707033 29.6521175950972733
-88267 -103.312282967204453 33.2476050853722285
-12567 -73.6542564897341805 41.9847653630430671
-40152 -86.4448823302138436 37.6184471381461663
-49519 -85.7183675019454228 42.8918221649063796
-87825 -107.271648299452224 34.1055599896530168
-99665 -159.528567799999962 62.6539716125000297
-60928 -87.8548447410713038 40.7639323469387449
-57434 -98.1001678611775532 45.1936832669998907
-75744 -95.7031896249999932 32.4467725000000016
-96720 -155.091538866165934 19.6998619931534087
-17007 -77.1162433542413197 40.1442849743212875
-13838 -75.3913715480002793 42.3008373965334386
-27927 -75.8219289985345597 36.3559646803445347
-36080 -86.2850819090527636 32.6877234171227613
-21434 -80.7232989999999972 37.2339481428571375
-26032 -80.5532379741035527 40.1893188791500791
-30369 -84.475815499999996 33.8038494999999983
-55909 -92.7313178413926096 43.5664667221148534
-61884 -88.4921674380553043 40.1058629916361795
-43233 -83.0497194999999948 39.9563892500000009
-35222 -86.7701625784841895 33.5217973487224157
-50012 -93.6472255250000245 42.0245042000000026
-16536 -79.6514880000000005 40.354258999999999
-62044 -90.1684797219685805 39.3431368325723625
-05641 -72.4848810213464105 44.1910203124444436
-33983 -82.0184841877876494 27.0108495601749325
-58446 -110.275744500000016 47.6050705000000036
-03890 -71.1954940867768471 43.8216993078512971
-93705 -119.827526817449126 36.7873046359058762
-87353 -105.359402370370404 34.8923593703703787
-12903 -73.4515834365732871 44.6740908863261694
-37726 -84.82676667774696 36.1943428198694548
-06475 -72.3858381759699938 41.2945972842006697
-27506 -78.7397215473372256 35.4105506834319286
-10754 -77.7280242727272821 40.4981793636363605
-56273 -94.9721436630742915 45.3144405549859286
-59642 -110.752707726775952 46.2882955628415544
-02907 -71.4247074878188783 41.8001844272041936
-48342 -83.2801224545606971 42.6454995304869442
-74901 -94.4380362034154075 35.3516605534906745
-95603 -121.085956710943606 38.9133332054643688
-67753 -100.743658753593451 39.4126350698151953
-78955 -100.297532900000007 32.4009173000000033
-28428 -77.8977639092009468 34.036570888862002
-94536 -121.998100419400416 37.5616021992488598
-40330 -84.8797915950904382 37.7820989297931717
-60166 -87.8343880000000041 42.3126855000000006
-44671 -81.3685150991501445 40.6424478045326012
-63468 -92.0385161155825244 39.6874714732223808
-73147 -97.5834660000000014 35.4917790000000011
-26206 -80.5414817010545789 38.4195367748646674
-95383 -120.226730912545875 38.0456502317201384
-60655 -87.7006241166942999 41.696309894657233
-38425 -87.985657648916316 35.3977957536884276
-68967 -99.6181503439212293 40.2493064523548938
-56548 -96.739034618078918 47.3708775736347079
-75699 -94.5181642000000011 32.0797304000000025
-27856 -77.9727319699764081 35.9919001743160081
-38007 -89.4374601040000243 36.1618537119999885
-35671 -86.9499261472499114 34.6892865283672478
-37057 -86.0282431029387595 36.412439663456702
-71953 -94.179332258373492 34.5754662930051566
-70903 -102.406891000000002 34.2358137499999913
-95514 -123.663465513915526 40.2976927933314286
-62480 -88.0060377366848172 39.0058097685415603
-65735 -93.4801728533834648 38.0745491203007518
-93036 -119.179557346386503 34.2314729577256145
-04763 -68.1294774544902424 46.0949750843446537
-21218 -76.6050788372181586 39.3290407363424848
-78023 -98.7073301455352805 29.5912801706302524
-95245 -120.599679776373037 38.302662732365377
-58645 -103.549685409289012 46.87587316255442
-50398 -93.7856043846153966 41.5943039230769216
-56055 -94.2322585591338964 44.1291456291849116
-57015 -96.9818681643239984 43.4386118823478498
-68348 -96.13400266023163 40.2909087297297503
-47531 -86.8482997439087541 38.0426890305857839
-87037 -107.755083939172778 36.2304714890510908
-74027 -95.6407474475704902 36.7773000869565223
-51528 -95.49719253836669 41.927318087519275
-07458 -74.0977881472637137 41.0507558468600422
-24422 -79.7812759682111619 37.8276124155544693
-55812 -92.0743884488233988 46.8105739449918161
-59754 -112.363466277187726 45.4873528969241576
-02909 -71.4501743394614266 41.8186385307208681
-24268 -82.2258748823529402 37.2861323529411806
-81132 -106.366475553584593 37.6966581081189815
-25023 -81.5345549999999974 38.4055464999999998
-53110 -87.8625208125262702 42.9477711360558772
-70760 -91.4448288562723377 30.698959718131011
-62459 -88.0251973869565489 38.9320054565217077
-12545 -73.6830405648769755 41.786544406750636
-32328 -84.8806339585492822 29.7064805028261993
-91234 -117.591501285714273 35.1314232857142841
-68003 -96.3666705846589338 41.0554797435389673
-89128 -115.267305996246876 36.1954654233365787
-50545 -94.0927763071672416 42.7927362474403168
-77423 -95.9826827505714419 29.8135540766438609
-50109 -93.8032563095022596 41.7625438755655765
-04600 -68.2690879999999964 44.4368090000000038
-39866 -84.6115559494736971 31.5449713031578831
-58380 -98.4958107670106671 47.7944713170103981
-18844 -75.9189905685809521 41.6906520496621766
-18572 -75.3371437058823403 41.524016764705884
-35658 -86.7657860000000056 34.7371252500000054
-12561 -74.0932262861755646 41.749027998591707
-64849 -94.4441234901960911 37.2551257058823495
-12993 -73.4642123351338654 44.2035347765773139
-11694 -73.8456257534246845 40.5778582791095559
-25817 -81.4117715743090713 37.7709670104556068
-06109 -72.6777688562716691 41.6979495544514478
-10583 -73.7950397083882734 40.9892376884122314
-37807 -83.8213473937055653 36.2528614496992461
-85658 -111.109894395390072 32.4690352810283471
-49060 -85.3974874722891144 42.4199778108433634
-90601 -118.038422929005421 34.0031644429557716
-87111 -106.515956337691307 35.1383310476404986
-61049 -89.025536918551964 42.0516661119909614
-47712 -87.6611151090075111 37.9662870528539216
-43786 -81.2774876153846151 39.7127231410256485
-58321 -98.2804558248234912 48.2054728356164688
-49520 -110.119856750000011 48.179152749999993
-30034 -84.2451857062623048 33.6912588600523506
-83249 -111.325465000000008 44.4976410000000016
-67856 -100.451429625000003 38.1985592500000024
-40215 -85.7852571791917455 38.190946959151411
-46936 -85.9438519913695558 40.4757068742221051
-01522 -71.8737275622036975 42.3775559222456337
-07753 -74.0629729074202885 40.2135355055832449
-48442 -83.6079833197547231 42.7944343527518214
-95364 -119.992130534420397 38.1943807083333269
-04762 -68.1232376269841922 46.9730163501984421
-15126 -80.2655658593304793 40.4571084685177809
-21787 -77.1638121621495969 39.6669060288393425
-45838 -84.4765764222222089 40.7388546000000105
-75432 -95.6604380562162788 33.3818463410309505
-86468 -114.023652636363622 34.8804100454545534
-30011 -83.8406211908800145 34.0246271893628744
-41377 -83.4303972910797853 37.4114663145539694
-08063 -75.1800147975021957 39.8666458189116071
-29693 -83.1177871711998364 34.6364299166379226
-71635 -91.9624240687301295 33.1385729674711058
-46381 -87.3317333690851996 41.1648246687697039
-74422 -95.7278340519782915 35.6354781675717263
-93064 -118.709035274999991 34.2587591624999988
-04765 -68.4978167601028645 46.0353685308595715
-03291 -71.1392564476190188 43.18180212380949
-06615 -73.1349418532378053 41.1765161866686071
-14894 -76.7569876057268772 42.0185179757709406
-80938 -104.674709533898309 38.9103995169491625
-83111 -111.017380293361825 42.7957565481798952
-62921 -89.082137565916284 37.8045592379421009
-90032 -118.177804926202853 34.0799892950765653
-50151 -93.4882234230481544 41.0775293937686925
-96438 -113.903293500000018 34.7253376000000031
-63474 -91.9266462628866208 40.3657193865979309
-80470 -105.369929955703171 39.4419777053741072
-81403 -107.903917991930541 38.4291326201154106
-97825 -119.540942584987164 44.4654334055220133
-72313 -90.1192635000000024 35.5463071250000056
-53147 -88.4536304991886482 42.598301860598859
-25649 -82.0763361611161031 37.8612707992798789
-48088 -82.9835473063790801 42.5179951336479363
-57714 -101.989653555555549 43.2825270000000089
-84308 -111.958594580180133 41.9699993801802265
-25162 -81.386429049261082 38.206203603448273
-19118 -75.2087087638023775 40.0716676234951521
-17576 -76.197832589743598 40.0370390000000143
-95322 -121.012237538721749 37.1730318210932538
-95531 -124.147373798445443 41.7969103564827265
-93465 -120.722792083442101 35.5439798824097366
-34211 -82.4060241032697007 27.4501890220220943
-42464 -87.3694902127227664 37.1636258166026821
-58572 -100.337043349980348 46.8693694589068244
-98644 -124.049104376958411 46.3299218488479738
-54627 -91.2657489498327408 44.1693471304347725
-80905 -104.835099938984456 38.8186749206140576
-78629 -97.4567181577641719 29.4978796368260952
-54418 -88.8973505555555477 45.1831867777777774
-62838 -88.6985151278196611 38.8420097297655929
-94598 -122.021184290033801 37.9161065236511376
-02652 -70.0838330007819792 42.0296607888974378
-98814 -120.109266156606012 48.2319379208426966
-04922 -69.371339090984705 44.6789028493758877
-27828 -77.5872595228575648 35.5881411628746847
-43125 -82.8898350968786417 39.849092694221234
-20408 -77.02346266666666 38.8936530000000005
-12189 -73.7152632736910647 42.7343205160102784
-12521 -73.649641539176443 42.1668681138331891
-98570 -122.670781883060272 46.5868351623471213
-36560 -88.035452081149856 31.0933359192141161
-45433 -84.0566839159663601 39.7972513623949098
-85309 -112.36654148380947 33.5367412142856836
-18815 -76.2347295000000003 41.7306247857142836
-33839 -81.7551181700704461 27.97800468325282
-85644 -109.865066428571453 32.2847903571428532
-68753 -99.4481131428571388 42.9037996666666643
-06520 -72.9286617599999971 41.3054916800000029
-92836 -117.881348500000001 33.8495662499999952
-81413 -107.924448633180688 38.9472240259012139
-61516 -89.1293325128535514 40.8526898688945295
-64759 -94.2656958266046701 37.5144570119975782
-76134 -97.3357940952627274 32.6442932135060815
-54216 -87.5118808477157302 44.4545780219966247
-90001 -118.247490376516581 33.9722542935467615
-49304 -85.8795470484861028 43.8965560875541598
-61816 -88.0033291520376935 39.9178198228840628
-73009 -98.3590430152942332 35.2962485094117682
-25936 -81.023466276595741 37.9030416595744626
-64461 -94.8180098526975712 40.5263849265051945
-16121 -80.4940861178237839 41.2115993943492853
-27853 -77.3108677449174309 36.5150693341804882
-05141 -72.5643980452261559 43.1536357587939605
-17263 -77.7195320237154021 39.7257987747035841
-32903 -80.5777803562738484 28.1075545899016674
-76930 -101.168011562500112 31.1345433020833333
-75637 -94.4763506666666757 32.0982460000000103
-65230 -92.699742281574359 39.2739207339965617
-08752 -74.0791778226046347 39.9214390404191377
-56236 -96.4006570372880276 45.6589226016948686
-10455 -73.9089149003286394 40.8152536823658423
-10199 -73.9954219999999907 40.7520505000000028
-39736 -88.6440132466666739 33.4138750866666641
-75071 -96.6470613240750538 33.2287766243133262
-10122 -73.9919905 40.7516629999999935
-64833 -94.1301818627451041 37.195131333333336
-78379 -97.7513449891520594 27.3133658836290998
-80468 -106.185533098317336 39.9747000792622131
-80136 -104.323396645789416 39.7607053774613206
-29570 -79.5503233333700877 34.6670667722283383
-95076 -121.775054448132508 36.9456597479590556
-13608 -75.6184268847842844 44.2377391675200755
-93333 -120.621707999999984 35.3243101999999993
-08608 -74.7631140807899612 40.220065450628347
-08829 -74.8934076695634872 40.6683919497668427
-12184 -73.6587222938953516 42.4241564998649707
-53812 -90.6085252499999712 42.5829441833333178
-76311 -98.5153313814180507 33.9708798092909419
-44634 -81.0465149236136853 40.8330168894920504
-61262 -90.3529976031492765 41.282605754498654
-48854 -84.4455317939300301 42.5782031347870102
-70615 -93.1428840228209509 30.2467628666665966
-80022 -104.859312860032631 39.8542833661189846
-47033 -85.1692396666666554 39.2558253333333269
-51035 -95.7920389659902867 42.7887459745642076
-01474 -71.7450123597712945 42.6673535541264926
-39813 -84.6980425284441623 31.4216463125428547
-78590 -97.6711540598802941 26.5013340179640728
-23115 -76.9533834821429252 37.8276555133928696
-33511 -82.292109434494904 27.9056621349769003
-23302 -75.5243557205240421 37.8678310524017334
-51542 -95.8355357149633278 41.4357095167882576
-57422 -97.9285381750973443 45.39356476264593
-00716 -66.6059070264285964 18.0008699146428484
-93309 -119.06835998331988 35.3393572619606715
-48831 -84.3953914964736356 43.0984485685373002
-57323 -97.7179463635097676 44.1923384610027625
-59812 -113.981555542857151 46.8600633428571385
-72131 -92.1991733228174013 35.4020875677588975
-04936 -70.4928278018588657 45.2071646763836128
-87005 -107.984139497767828 35.2611923861606869
-42516 -84.7769638813323496 37.2209010513532235
-19034 -75.2016824947141345 40.1383399203036788
-16036 -79.6803119193548497 41.1381523677419523
-93328 -119.317128499999995 35.5867580000000032
-44663 -81.4426737824862812 40.4717394599055709
-74130 -95.9594681480001839 36.2389569860000051
-78111 -97.752871448979576 29.0578914285714305
-60664 -87.8245064999999983 41.657474999999998
-01852 -71.2957608396979055 42.6339227782712271
-62834 -88.1193516666666739 37.9751646666666716
-07935 -74.4549039923224711 40.7391246199615935
-78723 -97.6831869531126387 30.3064439591319186
-04153 -72.6388709999999946 43.3825240000000107
-25866 -81.1476543070865972 38.0102773779527681
-46743 -84.8753412218325565 41.2131824125384512
-88253 -104.415407351730138 32.9850497928164827
-27967 -76.9321275803814615 36.223481373296984
-96706 -157.982661124999993 21.3288696328125056
-32181 -81.6004094390042525 29.4872611977869852
-61517 -89.8390784181698621 40.8146583136596064
-24277 -83.0204419869197778 36.7486563258832106
-36280 -85.3979842487301255 33.387963679337453
-62954 -88.2625211005619121 37.7155886202247004
-13103 -76.0973241780821752 43.3329320410958871
-98391 -122.171026536425686 47.1839678709789538
-74522 -95.6886132488262859 34.8991353380281737
-04981 -68.854465678130083 44.5146123553645907
-25209 -81.5285188644208887 37.969509290879131
-34637 -82.4657719958187698 28.2703611595818849
-77550 -94.7942195341133527 29.2978261052632298
-38481 -87.4962240025195541 35.033376542116585
-14647 -77.6066186666666766 43.1537583333333359
-24822 -81.6747506835079946 37.6323561077216482
-04422 -69.036268992282757 45.0653997201463099
-45314 -83.7886691285550853 39.7501407412716006
-24243 -82.9217847822654335 36.7798086340722961
-98068 -121.403508535000142 47.4082032590001248
-33919 -81.9015025550239955 26.5533968548330392
-54229 -87.8283282298198458 44.563413350900575
-92653 -117.702670021209741 33.5951946619909023
-18711 -75.8814109000000059 41.2482416000000072
-38012 -89.2636348368995556 35.6064909658130517
-79038 -101.531081190476186 35.6426450952381018
-56098 -94.1784943098786584 43.7687641906182279
-31781 -83.7868123406309877 31.5376461767546878
-47006 -85.2108043323518274 39.3079664041713528
-83350 -113.641500887416967 42.6674259400189442
-47670 -87.5664937695894423 38.3520185217808631
-19456 -75.4597667025316383 40.1333571265822755
-06750 -73.2535180327868289 41.7194117327868028
-62045 -90.716769843373541 39.2329528433735035
-02462 -71.2552242469512578 42.3306074725609705
-60501 -87.8082541981351881 41.783611903651888
-32583 -87.0102938462070057 30.5903553167451108
-21560 -78.7106338051948313 39.5637383506493592
-57562 -100.934143066176489 43.8881135294117684
-95568 -123.471846175242632 41.4396085827740492
-83646 -116.407424112747123 43.6375873245965238
-45614 -82.2790690770497122 38.9277122983842645
-40723 -85.0240268571428572 38.8648003809523885
-33953 -82.2162897174856369 27.0022403674132647
-27836 -77.2145578333333447 35.5802015000000011
-51331 -95.1381003097687028 43.3762873367609316
-67644 -99.1255386006654788 39.6378656372712186
-56315 -95.5860475990790093 45.9848009321797022
-06061 -72.9668657181818361 41.8748979363636167
-24539 -78.8769060827886079 36.858495740014547
-80002 -105.105209634861623 39.7957685324244324
-95203 -121.31277603870619 37.9540425025599504
-62095 -90.0794922642426457 38.8625346591515282
-74484 -96.5069885000000056 35.2213687499999963
-42528 -85.0092384057391541 37.1823543808438401
-01036 -72.4245523464315113 42.0664879081245076
-75032 -96.4329004222143453 32.8644838429428816
-53714 -89.3126034009624732 43.0980460163343366
-77044 -95.1833427330324895 29.8977253755339021
-16664 -78.4235645602179687 40.1765330198909325
-81211 -106.174228799530582 38.8502832143086252
-79018 -102.30331761922605 35.7161236866417298
-10024 -73.9763470293160452 40.7865302410423922
-14716 -79.4368103436264335 42.3856703602533926
-17967 -76.2099861573723416 40.8598441702191124
-39054 -90.923798241803226 32.8097251516393271
-45417 -84.2582433123212269 39.7431034439248094
-20176 -77.5323612242710425 39.1524771944219623
-78163 -98.4346435598182552 29.7677253365542889
-22877 -78.5790545999999921 38.4017027999999954
-81125 -106.094723016895756 37.7616140221936831
-17325 -77.2260211002940764 39.8230003701231396
-57469 -98.5252901612916503 44.8685049591143041
-62316 -91.0604326776536226 40.237879391662652
-82240 -104.187934705304883 42.0578052225652783
-67030 -97.5429888654171862 37.7810881839862986
-95765 -121.263844130987394 38.8156102238146161
-46186 -85.6412551922525864 39.8931221395264402
-83875 -116.938661999999994 46.9839304444444394
-56123 -95.6276987108874579 44.0788350462031602
-45237 -84.4526350767564224 39.1924548703382385
-70525 -92.2180871169950507 30.4046604726394882
-83221 -112.389168247625889 43.2153803721978704
-70796 -90.9807940000000031 30.2937925000000021
-77976 -97.0979382631578574 28.9380294678362517
-44116 -81.850505211700721 41.4719066073468738
-54456 -90.5949654501262387 44.560835679924196
-00959 -66.1630673942064362 18.3871000491183736
-30746 -85.0264569245340027 34.573384464221256
-23885 -77.5736409010352332 37.1927003273292414
-49338 -85.57550393400183 43.7711021731784058
-14741 -78.6006250002302806 42.2170776559909129
-07446 -74.1426504292948039 41.0580422047833835
-39478 -89.8673643646533122 31.0569474466283495
-38876 -88.2327560383641867 34.2213503055695583
-63088 -90.4934007730812482 38.5551753612902246
-54221 -87.6182785833333355 44.2228707499999913
-57225 -97.7168489863631891 44.8795397167531362
-81161 -105.900428250000004 37.2598169999999982
-61732 -89.2177554779480033 40.5443532205220336
-26508 -79.9051859322066349 39.6102465889172066
-96038 -122.533480778633262 41.6181317362848375
-98607 -122.409515679514158 45.6206800245425939
-82336 -107.99305512625439 41.7659835118859206
-51462 -94.5566879140675667 42.0111713308614654
-65580 -91.7903035243186451 38.1093253420631513
-28169 -81.4293595411764954 35.3597183529411723
-08302 -75.2467250309740905 39.4447733775007237
-85247 -111.751282339331539 33.1050994164524539
-41722 -83.1438462556389482 37.3277444306599335
-17344 -77.0206422979941436 39.8054800171920533
-35560 -87.2781711290322448 34.0464004999999901
-87650 -105.438096442622935 35.4225244262295007
-68660 -97.8585059956415932 41.5747973792030123
-44837 -82.4872925455238857 41.0173265943881589
-28776 -82.5232532222222375 35.4838940555555595
-38077 -89.4742759800000442 36.3282358600000208
-52254 -90.799924329731482 41.9557750887361678
-49781 -84.6656355218398176 45.9151536734162846
-29396 -79.3674013333333193 34.846065000000003
-77009 -95.3677047142703316 29.7942178652675622
-35413 -86.4053707499999888 33.7633744999999976
-40816 -83.3469617445652631 37.0089599891304246
-14433 -76.8780273538295233 43.0786914237939556
-23830 -77.3896650681692222 37.023109708310713
-82440 -108.8688171764706 44.7149543823529427
-30516 -83.0404599396344167 34.3740865232839425
-70454 -90.3888844359316863 30.4433310158212365
-25707 -82.3968593333333388 38.3993866666666648
-14150 -78.8617713972335537 43.000818294002336
-99338 -119.246832855852901 46.1905956643018882
-85719 -110.949480464611327 32.2435045390334665
-92630 -117.689149319695161 33.6399668582927802
-70353 -90.712035720031551 29.3744410962145004
-78218 -98.402629860197834 29.496939189464598
-66428 -95.9378136648251427 39.6736835285451193
-99001 -117.58994599153867 47.6444661600000359
-74018 -95.6137793999999701 36.3485322615384518
-54436 -90.4621019263803419 44.5867321779140937
-97857 -117.426241841300282 45.4698638087954379
-33136 -80.2034414619152756 25.7864749646354667
-70083 -89.7494743978763125 29.5155939175516053
-62915 -89.1188699846154009 37.7841544999999783
-73048 -98.5771404781311134 35.5019395526838508
-97039 -120.701119340856408 45.4687076192128785
-52337 -91.1507553872987728 41.8856097567083836
-04037 -70.9552761461722952 44.0690148395358676
-02823 -71.5467679200000077 41.7357108800000063
-29912 -80.9321845301204803 32.5820848674699022
-79082 -102.299636013761415 34.2383103463303087
-55798 -92.9573064222007304 46.7195262544114911
-33381 -81.7269087500000069 28.022588749999997
-25415 -77.9993334642857263 39.4109051785714328
-75949 -94.5207313452747684 31.25188991921965
-59025 -106.849703666666684 45.1897725196078284
-75736 -95.6768164285714278 32.3387299999999982
-17015 -77.2233041848182893 40.1954165455063901
-22211 -77.0793388143236342 38.8825112360742366
-78934 -96.5656944287446777 29.7225858346472833
-74726 -96.1806570028791725 33.966087074472199
-23321 -76.4153345358002696 36.8234469555927646
-55707 -92.6339270654961666 46.53655846651003
-08553 -74.6384923764258588 40.3969043041825131
-46556 -86.2521557333333391 41.6925520400000096
-96817 -157.855216356681524 21.330257874620429
-68342 -96.9570450754048068 40.1039653249111865
-97106 -123.13420566735175 45.6489100288008416
-31566 -81.8075888698581224 31.200715589588679
-12985 -73.6838688221560432 44.585460002980696
-11230 -73.9702686735497821 40.6209403062930008
-55122 -93.1932619068393393 44.8027177465275983
-62552 -88.8207932727272578 39.904178636363639
-11238 -73.963271608208899 40.6805416511193911
-29607 -82.3339257705872853 34.8164364036767822
-29445 -80.0335522141677984 33.0011080047808747
-51345 -95.4321496497727395 43.4161856049382919
-22578 -76.3631167192623366 37.6476478634928853
-85738 -111.077325785714294 32.6796470476190422
-75020 -96.577182880876066 33.7547468432188822
-12069 -74.2784795294117828 42.9421569058823778
-30678 -83.0800499347546832 33.4587163611111791
-76531 -98.1661715927068741 31.6830268262450581
-72210 -92.493582308321237 34.7115623385384353
-40440 -84.8254237826761539 37.5796025216548699
-49749 -84.587001853451028 45.4261479904054184
-54915 -88.3871854527576772 44.2462720194523698
-84748 -110.785123333333331 32.2341021666666663
-08081 -74.9857179718580653 39.7385447880396114
-88213 -103.684941888888886 33.3787108148148164
-90274 -118.377825377035251 33.7795096723990582
-28341 -78.172096776851447 35.116746198382188
-66417 -96.0331938716418705 39.6649141104477465
-48205 -82.980415307851203 42.4338136781245652
-85048 -112.034373960207816 33.3035628027682051
-32402 -85.6446464999999932 30.1563559999999988
-27825 -77.1721839922480797 35.8344135426356587
-60085 -87.8633124413190814 42.3580216675852128
-94591 -122.208865374101464 38.1048702258860033
-15364 -80.29896971825994 39.9433008189175922
-18446 -75.7675679622222304 41.6364569915151961
-48042 -82.9263370685171992 42.6841220909353467
-15656 -79.6178942104204026 40.6361160316081396
-39477 -89.03512922085892 31.7865270809815641
-16622 -78.0367789021276366 40.3222864156028251
-54961 -88.7408720999376754 44.3870389494102255
-44404 -80.5407791923077099 41.3308007115385223
-75125 -96.6478459963030474 32.5244983942698624
-83492 -112.067636999999991 43.4853905000000012
-36663 -88.1130877000000083 30.7918641000000051
-60469 -87.6874279730970869 41.6283295209974256
-38702 -91.1565433076923171 33.5434536923076934
-43214 -83.0191356070290425 40.0517403006942487
-38574 -85.2303111365089592 36.1409174689080714
-29831 -81.8160543751765488 33.3504499629629265
-07417 -74.2103810174039467 41.0082120995958235
-76936 -100.599679177275476 30.8766522459231183
-21530 -78.5426714959317565 39.6948569150641433
-58655 -103.02300542857148 46.7901997772657836
-74467 -95.359688823467792 35.9623822502772583
-80469 -106.966016386271889 40.2077512759084783
-46151 -86.4157416896640171 39.4480087500082703
-72136 -92.0234772908319627 35.2309569370944473
-29123 -81.2493023928712006 33.767058597300462
-27519 -78.8818117329481225 35.8045446648111891
-20601 -76.8678644485245712 38.6257874591764718
-14855 -77.5038739007998885 42.1376811461332466
-14729 -78.732596872314943 42.3994870131265458
-31537 -82.014993677034127 30.851989581043135
-30039 -84.0359346611504776 33.8014340916875753
-65862 -94.1531977499999897 37.0503259999999983
-04743 -68.5608451105668593 47.2314660860626034
-64756 -94.0140045392899282 37.6291790785799947
-22546 -77.4684870032287449 37.9554403731250929
-55430 -93.3017015782980508 45.0639456968085099
-94304 -122.16747169735018 37.3981122322175636
-23690 -76.5286803948338559 37.2266140147602158
-92611 -117.911361999999997 33.6046733333333307
-45577 -103.454405399999999 43.4145521000000016
-95133 -121.858018994751447 37.3744565504571469
-12165 -73.5209516856677538 42.3150161726384582
-40146 -86.3092556718593471 37.8421754462167286
-62274 -89.3934640403148819 38.0996797136804375
-28333 -78.0205119956415984 35.2886088411649084
-26037 -80.5826634604407559 40.3357266442813014
-43451 -83.6250767713003995 41.3159127264574053
-20710 -76.9271399823399946 38.9420067395143121
-70640 -92.9174669530201385 30.3659676375838963
-81241 -106.53062782269501 38.6249486708037679
-76092 -97.1532629475668017 32.9478934883364829
-37052 -87.3971152670194158 36.3716958367482093
-33716 -82.6535877119723636 27.8768930364372736
-79903 -106.441460950288402 31.7866945570070918
-42163 -86.1405014618320592 37.0802780572519026
-63401 -91.4023689188926483 39.7013348226156495
-57706 -103.069718052173783 44.1469517673913003
-43529 -83.784303724137942 41.1900539448276035
-67016 -97.5141699607143408 37.8862022749999738
-35555 -87.8230102289648471 33.6721888893811467
-98121 -122.345451365044212 47.6152548860619831
-27207 -79.3898256944957552 35.6077993103481205
-27979 -76.6101567606367553 36.4326109289869038
-04677 -68.1802582045779815 44.4887611273247927
-38387 -88.2694701423308459 35.8715088492201204
-74301 -95.1725292410704355 36.6327632433374717
-57348 -98.3731871879978002 44.6362051931711932
-97478 -122.893917521052501 44.067616131840964
-53803 -90.3656091612435972 42.5627334497469292
-63087 -90.4593822337258189 38.0094922628116763
-04240 -70.1797401199223572 44.0963374568691648
-13364 -75.2570056936936993 42.8092723378378395
-36832 -85.5354860983940029 32.5920658952128548
-99693 -148.680171615384609 60.7741878461538434
-25821 -81.2945671111111352 37.7103989259259365
-91729 -117.538142499999992 34.1135288333333335
-72384 -90.2712010925711041 35.3766193364449251
-44904 -82.5872171963484618 40.6749041615952578
-21793 -77.3428255468815138 39.4843678281690131
-05656 -72.675337720584011 44.6482800841448082
-23116 -77.3659228151518903 37.6705141087586242
-72857 -93.4021110896055688 34.8671147481073831
-15410 -79.9046175170576731 39.915502380063927
-61917 -87.9152521586379549 39.7068469634551278
-63846 -89.8208911761030606 36.8447125595588432
-94720 -122.252460869565212 37.8681580434782674
-04424 -67.8644565902373245 45.6793230291086942
-16682 -78.4574408173913298 40.2716359130434824
-83626 -116.822914943862983 43.6704343101808021
-61530 -89.272775781614456 40.7145694532356615
-63657 -94.2194073999999944 40.1584488000000022
-32814 -81.330165989134855 28.5687888265775349
-77705 -94.1449253510838844 29.9720979605981235
-57147 -85.443871333333334 38.582780333333325
-08882 -74.3808200469841125 40.4441464688889027
-66618 -95.723553169004731 39.1344055728789826
-68751 -96.9831739069767593 42.690932999999994
-50607 -91.7388145381854656 42.6188853690415996
-97711 -120.730368810344828 44.7276060344827471
-19010 -75.3287335525179458 40.0237064834401721
-44708 -81.4316747486255821 40.8152374532016822
-76106 -97.3542282170905651 32.8055367335713868
-10177 -73.9759334999999965 40.7551387500000004
-16354 -79.7109806722681071 41.6117574599222451
-58451 -99.9227658607640876 47.4553279016270437
-62748 -90.5971545714285611 41.6601458571428651
-25070 -81.9290444382470611 38.5389215126161915
-73938 -100.539390783641196 36.9071183667546663
-21864 -75.4174581474323986 38.0418427614577936
-05902 -71.4984802770781158 45.0074696473551512
-45323 -83.9359034064845702 39.8648419802047655
-31020 -83.4908150807220721 32.7376327859797698
-62668 -90.2369742963316241 39.5750900185803189
-28269 -80.7954877907811806 35.3402897027284908
-08247 -74.7622806420581441 39.0518275182699455
-15959 -78.9164237499999928 40.2649465833333338
-32442 -85.0132329523183614 30.7003367076348077
-80925 -104.654968969519004 38.7432713974208411
-49241 -84.5888348756633235 42.1007703290371396
-48419 -82.6407338949870507 43.4285098513397116
-80246 -104.929869025960556 39.7044783444098641
-77363 -95.8563058357343607 30.2943660486193771
-12879 -73.791988333333336 43.8060516666666686
-76953 -100.286601696721277 31.7425058934426012
-81023 -104.947900891596348 38.0779959531282941
-91601 -118.370955255449019 34.1680190600382332
-76016 -97.1899065780576308 32.6876942330515519
-78150 -98.2808444117647184 29.5342895882352927
-60177 -88.3134604095829872 41.9915663869284899
-67051 -97.1707391333332282 37.0949927059523645
-33904 -81.9517901017456154 26.5822677439063888
-80758 -102.226792860427622 40.1060934829480544
-73668 -99.984041739130447 35.221779347826093
-25635 -81.8728787070254072 37.7366628744394532
-61378 -89.1614173415993037 41.7191607672064961
-53159 -88.2848924761904925 42.5456818095238134
-78542 -98.1021538338238344 26.3208419813923662
-32337 -84.0213410600000117 30.4767709999999887
-14068 -78.7545538530742419 43.0233163336346678
-18641 -75.7434272286942161 41.3324853325377219
-36505 -88.0314385242031392 30.9295313069657567
-68956 -98.6769611117837258 40.6343407948525126
-47624 -86.190827000000013 39.0253749999999968
-08810 -74.5094432344520214 40.3753780034550829
-35452 -87.6741395858477972 33.2803531763729481
-98409 -122.480468994704111 47.211880123637961
-92140 -117.205283107142847 32.7421488928571449
-42063 -88.5689919285714353 36.5596106428571446
-36110 -86.2679310140688784 32.4258895229213664
-84322 -111.810002416666677 41.7219305833333252
-81019 -104.846145560584574 37.9409341076264681
-54480 -90.295272302777704 45.0709088444444745
-19065 -75.3892175000000009 39.9333757499999962
-02532 -70.6039278084062403 41.7478705914205079
-68041 -96.492222980769256 41.2370735092838601
-49288 -84.4261103501374492 41.7339763345555426
-54462 -88.9893305625000011 45.3933385000000129
-00729 -65.8970357825730559 18.365300675371099
-43359 -83.4494870680672278 40.8701824403361513
-72427 -90.9441125783132946 35.8666940240963754
-53582 -89.9922801513737056 43.0216456585164266
-18311 -108.828695999999979 37.5982300000000009
-57023 -96.7504492500000026 43.8774182500000052
-76678 -96.7589739635761958 31.6429159238410733
-19963 -75.4150861619355766 38.9221802631313878
-01380 -72.4135196521739033 42.5756394268774443
-93724 -119.786527749999991 36.7390427499999959
-49454 -86.2901948737940501 43.9509431750803614
-14035 -78.8521716428571438 42.4949786428571414
-65810 -93.3175569490373675 37.1199504705741461
-38261 -89.0904952924409059 36.4305822085201925
-59636 -111.973369333333324 46.5825024444444367
-43203 -82.9703281792000098 39.9720023850667445
-19334 -75.8941433333333322 40.0918361111111068
-22150 -77.1850598926856435 38.7784014106329025
-44629 -81.438550724165637 40.3545350961282665
-35662 -87.7914402608695639 34.7477443478260923
-02459 -71.1912122070929883 42.3183391215117197
-05341 -72.7882035639647427 42.9541039257813395
-03465 -72.1839822706042469 42.8290782527472231
-63656 -90.7585086376811603 37.6263942695652105
-22720 -77.6463860862399287 38.4807722384055069
-26348 -80.5249163276595965 39.4611865319148833
-98116 -122.394941581349727 47.5749476151014221
-38381 -88.9515137229665811 35.3505541508779828
-23898 -76.8460005754510007 36.8325716529734137
-11706 -73.25441712884205 40.7309392251058711
-47925 -86.7437015776397686 40.8823733788819865
-68641 -97.019425503985957 41.7690014317980456
-57651 -103.057435542372872 45.4892097269303477
-71047 -93.899860087419512 32.313444424701153
-41314 -83.6248692818497119 37.4480726425280253
-58062 -97.8034391610038512 46.6602164150549399
-16263 -79.3339678584070782 40.8000869646017676
-33760 -82.7155087652230918 27.912990314555497
-02912 -71.4015847948717948 41.8256747179487292
-24133 -80.1380169020093973 36.6774309908809286
-04536 -69.827389249999996 43.9070830000000001
-12072 -74.3682842446873025 42.8973058518517618
-12037 -73.5692433267974906 42.3421949574228123
-15089 -79.7513507772426067 40.218346886092661
-99674 -148.528790522727007 61.7559040212514816
-97064 -123.211697861801582 45.8634477982273836
-01983 -70.9471148349719982 42.6405452675920955
-72517 -91.9480232361112257 36.1509545265151573
-97219 -122.704831867567904 45.4561465314243236
-04497 -68.0363202717770292 45.7026211244400145
-44641 -81.2566817571231468 40.8525816135193764
-15626 -79.5774004223880382 40.4099701997512426
-39304 -88.7321749374999911 32.3746707499999999
-59008 -109.056940526637661 45.0958196331878369
-46016 -85.6844609649540985 40.0983649948617256
-58575 -100.897107395491773 47.5628759804642698
-00617 -66.5587923480217256 18.4428768012590076
-78873 -99.7500640497760713 29.7419814318711673
-80116 -104.711484910206423 39.3533380307294252
-89429 -119.280258848475313 39.3645469561536743
-05045 -72.196245111879648 43.9173416536400936
-46410 -87.3458760115979089 41.4895078613609485
-56452 -94.4534422123069533 46.9485782791994524
-76542 -97.7264330377592643 31.0398981461612813
-47871 -87.2991962444444596 39.3897786740740798
-08641 -74.5875142404512275 40.0368983834121366
-87916 -106.041202249999998 34.8702800000000011
-58366 -99.9419769503458468 48.6348089934352927
-79236 -100.301480515964229 33.617272965762659
-85083 -112.168369446200714 33.7253543016140895
-24594 -79.1907602477461836 36.6443587766715311
-71603 -92.0576654232005325 34.1737400560173157
-56395 -94.2206546666666753 45.5676376666666627
-60601 -87.6243754894515803 41.8827855189873475
-99357 -119.670394828556482 46.9199393694360225
-60070 -87.9306234074570909 42.1033489279262056
-74641 -96.8727039249116046 36.7766417491165925
-95471 -122.979007201954374 38.5231883843648006
-13438 -75.154741854154878 43.350282022991685
-26451 -80.4161780762251226 39.1743078947368772
-26230 -80.1932285636896154 38.6789375417276631
-16035 -80.0079671126760132 41.106919732394374
-50621 -92.9015476995191989 42.2407673503605636
-27243 -79.1962858464793413 36.0845769874745912
-24485 -79.3329148739779555 38.2591772987013243
-40199 -86.4705012400000186 37.5869317399999971
-06033 -72.5559811606065352 41.7054564402583381
-55041 -92.3036346732146171 44.4272734891277281
-27924 -76.8361497320801448 36.1774128197258875
-92627 -117.917526609278454 33.6471117521676248
-18458 -74.930343462672667 41.403367859227032
-75230 -96.7922007027214306 32.9029458634686236
-96854 -158.036016333333322 21.4847126666666668
-11978 -72.6461333412858465 40.8142237166997788
-51342 -94.7424311344647947 43.2404261549173654
-26571 -80.2633619203586051 39.5113097584388839
-27544 -78.4335515170748039 36.2017529776258371
-06840 -73.4963915192751074 41.1553235400654174
-28571 -76.6952422992127367 35.0472738641420278
-76402 -98.2117765769230857 32.2077611153846135
-61419 -90.1180435131579003 41.2002531184210312
-67491 -97.9229725709730019 38.3825390510366589
-90604 -118.012124897245641 33.9299975700783421
-59806 -113.801736099999999 47.5825214999999986
-89121 -115.092370584438825 36.1202105243439604
-43974 -80.8876762424242628 40.1818164090909278
-27839 -77.5829372898061251 36.3035138812889144
-57024 -96.6769233285396865 43.9878253882743593
-38139 -89.7605640047510178 35.0870812638918466
-48751 -84.4531065999999839 44.9123461999999947
-20158 -77.6613924274701191 39.1394160348955609
-92884 -116.487323374999988 34.1147667500000011
-45327 -84.388077808699947 39.6279380846779645
-69044 -101.033206285100349 40.1635893395415451
-08101 -74.8844344999999976 39.6891255000000029
-35171 -86.7300860633755519 32.8911232777587159
-81418 -107.966860965833305 38.8517879731003788
-04646 -68.2346823625000241 44.2701246350000304
-46349 -87.4319887375049376 41.1217365650515063
-03883 -71.3228667941712473 43.8275392495446496
-50543 -94.3036133335796478 42.2711895223494594
-58422 -99.4328434253112903 47.606365363761995
-36098 -85.8733751428571566 32.5436398571428569
-87410 -107.987080907194382 36.8424781458282524
-29487 -80.1808374756827504 32.6556303218927511
-79102 -101.846022186079821 35.1998819637784592
-25875 -81.4601134885496663 37.6683968982188091
-71971 -94.018156326145089 34.3026453768740893
-08349 -75.0565213266999365 39.2608775460199837
-38562 -85.6467093314054608 36.3485696301984476
-71473 -92.451347447477886 32.0790644050961689
-29051 -80.1253203647358703 33.8636249019732958
-05855 -72.2043614127184554 44.9341411663750847
-95518 -123.675466710144917 40.9413488840579731
-64439 -94.7593503027932655 39.5185345821228893
-14544 -77.2467081477351627 42.7559772010452406
-75127 -95.7956087736704518 32.6831426251621053
-53115 -88.6231256550535136 42.616908894680968
-68633 -96.8325368361633565 41.6857243368857766
-41159 -82.9634098627670227 38.0057211361079723
-93452 -121.174496310416714 35.6618145562500004
-59847 -114.15442641542576 46.7542676682939344
-42131 -85.9132704619002538 36.8195310460959604
-49410 -86.1335546386492013 44.0271720998123897
-39337 -88.9942965019330359 32.5181970184707438
-59859 -114.877066573511826 47.4953618441524057
-24230 -82.4602736843469444 36.9676742213097
-63055 -90.8346836298795779 38.5249168837115477
-12568 -74.0424144999999783 41.6663202500000125
-24842 -81.5983256000000097 37.4409079499999962
-34768 -86.1048006666666623 34.7857968333333289
-03579 -71.0960948632618965 44.834708811367463
-56054 -94.3812219342051577 44.4438121851539307
-77320 -95.4978430093001123 30.7864497458232087
-81134 -105.515910857142856 37.0861472857142829
-98038 -122.029716334012605 47.385931185159393
-62964 -89.2079498685910011 37.1265570672124028
-91760 -117.549044722222234 33.9437973333333289
-38658 -89.8967896188442808 34.1890343305598776
-29576 -79.0370920858097747 33.5791015581086398
-02791 -71.0725661509434445 41.5252918113207414
-93265 -118.765832346560302 36.1809992112591274
-32547 -86.627976264076878 30.4475288334077696
-95604 -120.073224452873575 39.2412797517241358
-45405 -84.2153895073824401 39.7921616552023139
-46619 -86.3269401695915803 41.6669930216629325
-74948 -94.5736164184960444 35.4537821047212489
-13078 -76.0726755909895331 42.9835612880355953
-05048 -72.4205395156277802 43.574244169286402
-36782 -87.8948176480464554 32.108279976232069
-12856 -74.0762814896448702 43.7237933713017171
-79331 -101.956143820013907 32.7114476689449774
-61552 -89.5668648063379322 40.8179275598591644
-55369 -93.4355851130732304 45.1172951786367733
-26757 -78.7300257971296986 39.3372734625623437
-95070 -122.025405914057529 37.2689768417649603
-98361 -121.652956099893643 46.6306935749203078
-80820 -105.479697882402377 38.7860746034566404
-15635 -79.4970735175438818 40.351483008771929
-20141 -77.7820306159181314 39.1304068949127668
-92589 -117.099998666666664 33.6133416190476169
-27604 -78.5765412329853206 35.8172588490495158
-39740 -88.3199717765536576 33.6854919805085444
-12015 -73.818861499458464 42.2880062485110244
-83348 -114.049577510489527 43.2983364335664191
-46327 -87.5099434831870582 41.6336208589181425
-14301 -79.038657657342668 43.0953167651515798
-95075 -121.288502976190458 36.7774917910052679
-66216 -94.7418911439391138 39.012561813377701
-15546 -79.0470306416274724 40.1431228888889038
-30506 -83.9085971597439482 34.3485649594786153
-12974 -73.4662186547145097 44.0486647164674778
-11954 -71.9503029753634138 41.0433130986806205
-04775 -68.4039565079365275 46.6543519999999887
-43612 -83.5581936325528574 41.7074899216389809
-73531 -98.5678745615384742 34.1880410076923056
-92264 -116.521280155409528 33.798199419075722
-29805 -81.6203239977235029 33.6453531847553364
-17052 -77.9850106816062407 40.3208485238290493
-92633 -92.9119686551724158 36.173440448275862
-99110 -117.560506482134755 48.0128395142469913
-17256 -77.69193966666667 39.7828307500000093
-13786 -74.6914792211055385 42.4465562998326078
-05052 -72.3526338406374805 43.5979695976095556
-63746 -89.6916342727272564 37.7025725454545366
-97524 -122.755320823213353 42.4709184680632603
-74833 -96.4032013993505643 35.5573126396103945
-27315 -79.3914289198611982 36.5087589911197625
-17120 -76.8823943020833411 40.2659321666666656
-16828 -77.6854759903487064 40.8117653963805935
-74359 -94.8489354844035972 36.1717707596330555
-32207 -81.6346479652635679 30.2914472080299397
-87327 -108.83223811639526 35.0985517811772425
-35907 -86.0272094607963282 33.9027826098360094
-39153 -89.4978570331291081 32.0425666837416756
-93287 -118.832600303082131 35.7153655479452041
-66771 -95.1662958999193052 37.5054750072639251
-86335 -111.784116737211107 34.6412236224730847
-29130 -80.8774253576728057 34.3238003752334464
-95678 -121.289920919601627 38.7597512569153153
-27857 -77.2868897938021036 35.965028985935561
-14625 -77.5052316432794441 43.1463662945136761
-28781 -83.6437232307795711 35.2196432062740215
-13320 -74.738410033040239 42.7718690459444275
-50044 -92.9046717234887751 41.2054964779957444
-36850 -85.6488011859214566 32.7979543878505382
-06256 -72.1591209664091622 41.7385470698689858
-71403 -93.4083191408405753 31.2198997155135878
-44432 -80.7573039473323604 40.7550407467267277
-73123 -97.650295153846173 35.559053769230772
-35562 -87.1044023636363676 33.7330392727272681
-74702 -96.3706179166666601 34.0061504999999968
-59911 -114.030525878794791 48.0548271953705424
-84732 -111.949040913043504 38.4173229782608558
-62630 -90.0765199197441149 39.2654329921874918
-87499 -108.048444437799091 36.6393795574162766
-43107 -82.4176914070374096 39.6868215133442988
-86504 -109.080603058712128 35.7418050208332758
-02466 -71.2469424875400534 42.3460345530546292
-10926 -74.1367638664627862 41.2994788914372748
-54137 -88.2271943447099858 44.7618109453924973
-27330 -79.1757535527497822 35.5093995855613684
-13301 -75.2139483805774205 43.4215388320209854
-29020 -80.5906066684641047 34.2867752205738725
-36079 -86.0048357967175576 31.7778116327372011
-92672 -117.61113671080922 33.4273853122247644
-84522 -111.248037616412233 38.9240151927480511
-54460 -90.5646217558141018 44.948259377906993
-75414 -96.4280204553853793 33.6207853606969778
-81063 -103.782321570472007 38.3166224760841558
-14770 -78.3134241081645968 42.0400022623865723
-23181 -76.8637283115257048 37.5842645978896357
-39336 -89.2398780915997918 32.3245625536193231
-28392 -78.7959046884233487 34.7233496338974206
-55751 -92.6455952223287511 47.4135589803544732
-84513 -111.020974931801362 39.2172837079317844
-59858 -113.381894930638595 46.2889314532116742
-85249 -111.796789803591494 33.2276939681136412
-19362 -76.0709960749029079 39.753576452145083
-31039 -84.3813306068965119 32.5997549448275947
-08809 -74.9127504791550507 40.6436968456895897
-28204 -80.8265350463827161 35.2136720453444099
-25849 -81.2836595256410703 37.7332905897435893
-99716 -146.872320512820494 64.8773346410256551
-42632 -93.7425936666666644 36.4132243333333321
-56168 -95.7986772341121622 43.6050224481344841
-31623 -82.6443135029940947 31.0709115329341259
-85119 -111.510719611748613 33.4192846586933712
-03585 -71.900278842837011 44.237859410814643
-96101 -120.561001345173253 41.4710425204916504
-38330 -89.0258852777251519 36.0711387818121594
-71060 -93.9751429409950276 32.6615026439144671
-72576 -91.8408667021990937 36.3506600391871331
-82839 -107.167811755218253 44.9105104212524751
-74660 -95.960448999999997 35.5194345000000027
-44053 -82.212863093586094 41.4287130518750857
-10314 -74.146002627313905 40.6046302434718598
-55627 -93.940277750000007 48.0955615000000023
-12463 -74.0112033187530329 42.1839649041415541
-99883 -119.326110760000006 46.194316520000001
-38880 -88.6057361249999929 34.579229374999997
-75010 -96.8976940001752922 33.0283106073619521
-52583 -93.1531138177710716 40.7896484427710675
-56594 -96.7079994406393411 46.5609546301369335
-01922 -70.9294015969229577 42.7538029226923655
-28046 -80.297584428571426 33.4066311428571439
-30624 -83.0372769728653424 34.186066869573132
-23608 -76.5428753768291728 37.1512532617734124
-59313 -104.274453110236479 46.3435840485259192
-95054 -121.958746026527322 37.3924446253637086
-02113 -71.0550284048642027 42.3652085822603297
-80926 -104.892845447080816 38.6448711018394704
-60620 -87.652137005885308 41.7400550986526753
-85260 -111.88698803634334 33.6057262255260483
-07067 -74.3152451320401326 40.593505924047605
-15131 -79.805982043110518 40.3385757533389508
-13641 -76.0076100066666953 44.2754536866666513
-52001 -90.6862978714110994 42.520627227903411
-82720 -104.63389314461179 44.6963791660063734
-44754 -81.9115351250000003 40.5679382499999974
-04234 -70.1906542289156334 44.6135711686747101
-07606 -74.0471483500809597 40.863213750405194
-13551 -77.039077000000006 43.2697648571428672
-58067 -97.4467168279569336 46.0382216441372449
-66507 -96.0235228387615081 39.0254270892642339
-06804 -73.3954104397458877 41.4663760332608078
-28679 -81.8412611422100866 36.2578438660506919
-55746 -92.943412516342903 47.3851618324773796
-66757 -95.6824422500000509 37.4244858490630179
-30184 -84.717315459312573 34.2505176400462688
-97204 -122.675267838461423 45.5185784999999896
-16253 -79.3545634767441612 40.9841435755813919
-17034 -76.7866510459843568 40.209246810880714
-54512 -89.6581101756090959 46.1124060140660674
-00656 -66.7885761939438538 18.0224358464311862
-73801 -99.3981401523497965 36.42641115554013
-95942 -121.628712593128711 39.9339486893251276
-63387 -91.0152025304877696 39.1832711036585408
-59257 -104.93595797912316 48.7395085741127119
-83544 -116.202826256235625 46.4921410926130463
-62590 -89.18434533333334 37.7111626666666737
-16314 -80.0520801801771711 41.5195247261871998
-93662 -119.625433124300656 36.5641304867956194
-93221 -119.103327721060609 36.3021219457896862
-62280 -89.6696411203116099 37.844212917681368
-66863 -96.0793876478873017 37.8345477746479091
-97301 -123.004290062229529 44.9453971183114973
-66066 -95.3393890079747024 39.2035076072567321
-48387 -83.4745695000000012 42.6139700000000019
-65941 -91.4474573333333325 38.6907591666666661
-13614 -75.6938545897435944 44.5351958995726704
-89415 -118.662466377197049 38.5667746693587219
-19053 -74.9806503289666892 40.153560428818551
-48377 -83.4722589520321208 42.5106797545636326
-24348 -81.1569042357084669 36.635079768775185
-72320 -90.5553280039999748 34.8344132640000055
-12494 -74.2874491151701051 41.9601396174530379
-82620 -106.781599917857136 42.5421605482142837
-20062 -77.0372544999999889 38.9002835000000005
-44623 -86.0214369999999917 39.7054407142857144
-28667 -81.4294396165048227 35.7711498203883664
-71407 -92.4977452229868504 31.5167008561596482
-64110 -94.5730386686098541 39.033448180122285
-22639 -78.0114810128247882 38.8162214771457244
-76240 -97.1195021137042858 33.6299445890680033
-14745 -78.1369905405405518 42.475571594594598
-15213 -79.9559867550731411 40.4436303993506669
-81652 -107.655648469985877 39.514062820115349
-56458 -94.9858404124897788 47.2039258635990109
-40366 -83.7490953255814077 38.0854976511627967
-84529 -110.810886032786968 39.6821582513661113
-46595 -86.1695094210526236 41.5264468421052584
-43342 -83.1780049882683699 40.4732442991552901
-25536 -82.0458349999999967 38.4150369999999981
-77840 -96.3226536939834688 30.6125800529614551
-47453 -86.7519834429530334 38.9310060671141045
-86411 -113.687605476923125 35.2670748868778219
-42440 -87.4704261199186561 37.2361563760162326
-50035 -93.4542645573181403 41.7157166222688147
-05680 -72.4732173493483316 44.5519390910584647
-14083 -78.4393028214285835 42.6766092261904646
-83522 -116.387698563909979 46.0135289924811417
-67512 -98.3217382728493874 38.2402284274193747
-53505 -88.822301569844754 42.6545945742794075
-66773 -94.8356727097575316 37.2737270863891084
-29940 -80.7425246999545294 32.5603871134408394
-37820 -83.5642596922780427 36.0838110618484507
-34109 -81.7694591027154303 26.2436444264095918
-10459 -73.8942811253644152 40.8253696472303247
-13267 -75.4503271578947334 43.7628950526315847
-66753 -95.0141250699931561 37.376668410256535
-16002 -79.8597440893497605 40.8175256281075676
-08534 -74.7837901145848463 40.3238628599850699
-55954 -91.7726904564317465 43.5497427745503671
-33430 -80.668717751650604 26.6849047696801058
-56302 -94.1618113333333326 45.5603003333333376
-06002 -72.7339182457189537 41.8341265579082986
-04270 -70.5074556787555764 44.1206969379432863
-46613 -86.2501114770642374 41.6547770448047103
-74652 -96.681981450000066 36.8263435885416825
-52581 -93.0613522817352958 40.7964287931507243
-20059 -77.0193195263157975 38.9237856315789514
-79096 -100.205442040337601 35.4008598798312732
-84088 -111.966752623926382 40.5943544891756787
-61372 -89.0804145370370293 41.4669127962963131
-46380 -86.9682159999999982 41.1930444999999992
-40155 -85.991447706045733 37.936360699096646
-79118 -101.824182570314903 35.0940739584090693
-36092 -86.20154665546751 32.6060960556831034
-76864 -98.7024317285714545 31.5501950059523644
-92625 -117.867510791975462 33.6013594658830215
-24236 -81.7437135669790678 36.6412007874205301
-93451 -120.609485176864325 35.786483291075271
-79231 -101.089694046874953 33.9417477343749994
-85828 -110.623266333333333 34.4380103333333309
-42258 -86.3291677200000009 37.2598336533333381
-55374 -93.5649541945631285 45.1908224562135601
-85356 -114.143497850309984 32.6781874738706861
-80830 -103.905865514297574 39.1007012026524237
-30342 -84.3732826334751138 33.8811810457473399
-78611 -98.2982383725064039 30.7784819863525811
-03293 -71.6811429857819888 43.9610042037914468
-61721 -89.3254072331406803 40.3428441764931733
-65101 -92.1532191999098416 38.5099343675699473
-37051 -87.415269833142375 36.3037070430800171
-25427 -78.0674524599273099 39.5428802475141197
-35150 -86.2547279979537507 33.1843001857034068
-31210 -83.7285744970037769 32.895879897718963
-22655 -78.2026337467876118 39.0767422820321855
-67643 -100.297442349206321 39.6834860211640219
-21802 -75.7078162857143013 38.2650736666666589
-72613 -93.7582361920000125 36.4704060240000132
-67330 -95.3002790704697986 37.18512675922819
-07675 -74.007421656917046 41.0082346183819055
-80923 -104.717510390636505 38.9239066865799686
-25989 -81.0623887366412958 37.6861158066157529
-59483 -111.727784846230207 47.4995106076388112
-98168 -122.301488740115218 47.4895090612270678
-19709 -75.695840325518688 39.4832324917651789
-83530 -116.10503318016346 45.9268601593872887
-79313 -102.189729159034698 33.7733517766088838
-84744 -112.007246230769326 38.3471126013985995
-16404 -79.7871514559148522 41.7211674262276375
-01702 -71.4298258198295883 42.283007152342833
-18041 -75.5083893104931576 40.4169664747706605
-61021 -89.4716692548234107 41.858202301575794
-71327 -92.0455583715397267 30.9879531139327433
-93067 -119.597440512475885 34.4230092360844537
-08270 -74.8105435047469314 39.2527007396108374
-88002 -106.494263739289963 32.3827193500611799
-84334 -112.14861085234898 41.7877649261744679
-17877 -76.6661129687499852 40.8749361718750066
-03252 -71.5768587999999966 43.5116878000000042
-40157 -86.3730005126051736 38.0223213664525943
-23192 -77.6761698042181052 37.8171160865825513
-82082 -104.107204958556807 41.2133393405695472
-61914 -88.7378460270474818 39.6442284620585852
-95430 -123.082117970526255 38.4455897557894772
-72160 -91.5468853750889338 34.4766728239323825
-33514 -81.9919663337686586 28.6470433194081728
-62076 -89.2173352469879859 39.3444903012047931
-79022 -102.535561023770384 36.1317759633809032
-38127 -90.0055251340469482 35.2280203675426051
-76123 -97.383999923586444 32.6215082981812543
-99770 -160.012012999999996 66.6014330000000001
-83318 -113.792479615368748 42.4979698747397165
-02136 -71.1240086126901474 42.2553371039332433
-42370 -86.7412245399999904 37.4504490000000061
-80137 -104.588347920670472 39.7554658994414112
-82005 -104.8618651619433 41.1504100607287455
-95547 -124.077862685060595 40.5356406117093115
-98110 -122.533654525065927 47.6415534449799409
-34986 -80.399106624350452 27.33286615510033
-55354 -94.0595896086607013 44.8836264450682449
-94521 -121.973253751795625 37.9561061503173676
-49689 -85.9124016781309052 44.2138319761905905
-13101 -76.072213264413918 42.5963773025418178
-58701 -101.290119038490076 48.1935578102130222
-36555 -87.7792036544656185 30.4019225270863984
-42071 -88.2784993710685768 36.6191492010580575
-32759 -80.8610053484035802 28.8621862401809679
-66801 -96.1919239196365368 38.4124482046451234
-78224 -98.5395626736188603 29.3287528335921834
-58577 -101.040510058658583 47.3354364290290022
-72130 -92.081809559953399 35.6651254792393999
-47576 -86.5861974519632582 38.1900559256474423
-12050 -73.7133800000000008 42.3368430512820524
-78361 -98.6920134173365398 27.2301289703977147
-15475 -79.8803306532156085 39.9617049407314155
-75219 -96.8124056495755383 32.812279565230682
-89409 -117.928451991631775 38.8651676694560848
-38321 -88.5382747667557481 35.8396899710736179
-02334 -71.142056636363634 42.0234267272727209
-76227 -96.987548465393786 33.2616326032743217
-13621 -75.0666525894358614 44.8395508139255554
-58753 -102.580782499999998 47.9762695000000008
-42715 -85.4125221898981408 36.950772484338259
-06120 -72.6720838983273012 41.7867163036972045
-46970 -86.0785313809086716 40.7554444274640773
-59872 -114.861173801508343 47.1489551651442653
-66616 -95.6377202065370255 39.0644624959735083
-03240 -71.9659807511086456 43.5750497186808303
-33324 -80.2753680112648453 26.1131279699854986
-14101 -78.5340954508105398 42.39307390011313
-24541 -79.4685838658819108 36.585969588988192
-92004 -116.317488462088235 33.211047537626186
-43138 -82.4165263119827927 39.5279642258440305
-08072 -75.411169450549437 39.5461773736263638
-70363 -90.6909736472846788 29.5553811825919901
-28529 -76.8650890793550445 35.0792071748339893
-54227 -87.7998976306065941 44.2830621094987791
-62071 -90.1518225364238788 38.6577375364238449
-24091 -80.323943398720445 36.9223831212112472
-98564 -122.481773823714605 46.5085910658908759
-25705 -82.3641472632682792 38.4086088428776904
-65664 -93.6262807941176334 37.194093235294126
-21105 -76.6550951666666549 39.7157041666666615
-03264 -71.7030694607497736 43.7401291654879358
-25504 -82.2727527929866511 38.3833588765574234
-13473 -75.4404449973088731 43.6435133719052004
-58576 -101.16902059332341 47.4568547149360711
-97444 -124.387734315580559 42.4501159366812999
-43938 -80.6410152255613326 40.3126313791019086
-25547 -81.9630819378452458 37.932207171270683
-59407 -110.535262541666654 45.7152441249999981
-12471 -74.0384156062992389 41.8378707165354271
-56175 -95.635083425726549 44.2424598615706017
-13403 -75.2714371772864865 43.1659549613943199
-32764 -81.1325022790184391 28.848507744049261
-25601 -81.9940035279215635 37.8588204827288237
-29044 -80.7159240218816052 33.9239811995805951
-83656 -116.798756138181801 43.7278998690909262
-58721 -102.246727431385665 48.8451003821832401
-72063 -92.7643387308069975 35.3325077122247748
-19944 -75.0545947084546583 38.4676225451895135
-87443 -111.449997499999995 38.2651000000000039
-39772 -89.3116816620860874 33.3102677931287658
-08723 -74.1252609596126746 40.0401774837147855
-32549 -86.2281089999999892 30.3487220000000022
-99772 -166.069403000000023 66.2564749999999947
-96054 -121.186627654437999 41.2393160994082706
-72453 -90.709952614329282 36.2641328201220006
-40759 -84.0606795827089428 36.8164995240371766
-21234 -76.5351431962887716 39.3919480454392144
-90640 -118.112661382177038 34.0159081776881536
-57110 -96.6443902871261429 43.5378195494215063
-56174 -95.3014800198609464 44.0167253892750381
-71018 -93.427314271860709 32.8152053923767042
-75555 -94.1271022249771505 32.9558010899907927
-43602 -83.548365814814801 41.6450150000000079
-02030 -71.283307728348575 42.235964304903284
-47941 -86.7695712850299827 40.3771317604790383
-60467 -87.8916661630922107 41.5986235692583151
-67211 -97.3173168905753556 37.6667522917403303
-54851 -94.6179290000000037 37.1105815000000021
-62018 -90.0838837412430848 38.910926890395551
-66434 -95.5448604844901581 39.8648715707683579
-15544 -79.0912729593220263 40.1336948271186316
-12423 -74.1136064932855305 42.3775184664280076
-99721 -151.734270116666607 68.1432272833333457
-23231 -77.3432846726714871 37.4725580264706721
-20745 -76.9909106345167942 38.804892383873252
-39855 -88.5073892000000058 31.9602287999999994
-36012 -88.3507224999999892 32.309071000000003
-38047 -89.5255566849315301 36.0720555525114079
-86522 -105.966183999999998 36.0067935000000006
-98625 -122.785616748064697 46.0114031062473003
-04364 -69.9615990939745416 44.3091819500761304
-65708 -93.9132873443831357 36.9214667620059487
-27233 -79.7000474376304027 35.8942951842379614
-75226 -96.7767458406297862 32.7837807766846936
-28438 -78.9030178003389153 34.4334680450179249
-81410 -107.9838954997591 38.8032490019286982
-04090 -70.6213130447096376 43.3196523352388283
-50219 -92.911576443866096 41.4144147908622458
-42460 -87.9498654473684098 37.4985268421052638
-67418 -98.0579248388059597 39.2008897582089588
-15137 -79.8121926017879986 40.3776921931465083
-61930 -88.1243627876409903 39.6875302672879471
-17243 -77.8520610866851825 40.2516202912620855
-63837 -89.9752670947175801 36.4510442723133181
-97877 -118.255074193893051 44.7567128076334839
-74019 -95.6276920276761899 36.2836577805301062
-56035 -93.2674459875518522 43.8223600954357124
-17747 -77.3193298002161953 41.0312108395511075
-12481 -74.2146285134907941 41.9842649312814729
-90515 -92.6009269999999987 30.532885499999999
-23065 -77.9274923653798766 37.7984159396920845
-55923 -92.1834978475523741 43.855452255433768
-62080 -89.1192266545716905 39.1547545667633656
-50677 -92.4614268313139291 42.7364137147749048
-48000 -84.9569979999999987 43.9224595000000022
-88027 -106.679653007853361 32.040100282722527
-49612 -85.2476639626085984 44.8780244147825655
-83463 -113.949436905013286 45.5255223192612064
-20336 -77.0109400624999836 38.8432093125000009
-56027 -94.1195147435798845 43.5099081962438774
-15447 -79.9392868200000208 39.9457826200000028
-74437 -95.9731968712206509 35.4529870603093187
-84664 -111.584090660765156 40.1291829351880551
-38044 -88.7929488239434903 35.1977997343150619
-98416 -122.482349416666679 47.2624685000000042
-85615 -110.192896536778747 31.4211172016974665
-19311 -75.7664215916333887 39.8170077202621115
-75639 -94.1556645620533459 32.2961774872132139
-68930 -98.4221192011791572 40.3455942483419108
-83113 -110.146211443200642 42.5775580627583992
-68037 -96.1304079953774675 40.9895036373908539
-40119 -86.5290886129785832 37.6034341447918834
-45120 -84.0990796921924471 38.8251588994570511
-61376 -89.6121238511379801 41.5418004342878859
-44140 -81.9288781884383042 41.484710519961645
-79056 -100.229032821256055 36.2176254299516955
-75278 -92.4092821666666708 39.339552833333336
-06024 -73.2762080679784873 42.0042715116279055
-44436 -80.5426997760643104 41.0533052608114062
-23882 -77.4256791646884892 36.9228858922971952
-83261 -111.406044072022183 42.2275138337950153
-98020 -122.36989853513505 47.8016600336476927
-13331 -74.8794292197854361 43.8219502449836611
-03810 -71.2711367327128187 43.5055286471631533
-21849 -75.46771931642607 38.3834712226231645
-56731 -97.1167240285714115 48.9229547428571507
-43011 -82.6843110133750514 40.3100335059084145
-85420 -110.419364000000002 39.5484204999999989
-15010 -80.3439985389231737 40.7676023169145267
-35080 -86.8714220275116986 33.2785792576572277
-73728 -98.3567377624223411 36.7553023998446875
-55964 -92.1596210474074553 44.160710214518474
-27588 -78.5000438888888965 35.9775367777777717
-24141 -80.5683821964518501 37.1039986264903661
-33076 -80.2737887104759551 26.3069193142109086
-49262 -84.4836136839546299 41.9650193598054955
-60440 -88.0755909411260944 41.7050761060250181
-95915 -121.226557228501207 40.0035986289925987
-21918 -76.157820907844183 39.6776806258913624
-65803 -93.2891848027573474 37.2668703625634947
-96158 -120.023285491228165 38.8868467280701822
-78664 -97.6450716027796091 30.5085750244352489
-65640 -93.5627603522897431 37.6941709305484665
-32771 -81.3026282114543761 28.8038905851677391
-79408 -101.902651666666657 33.5681463333333312
-28423 -78.3887990983204617 34.3359916833587775
-43616 -83.4542519578722448 41.6506479484113257
-72441 -90.3897071071428257 36.4374606726190535
-16827 -77.7801540667303613 40.7779145460415293
-16143 -80.4585843438923973 41.1033286391281365
-78759 -97.7598356054521247 30.4041437676192814
-04064 -70.3914381555793511 43.5195267594420372
-71028 -93.0683452341059478 32.5072680348864509
-58415 -98.4861774403893264 46.3729570924574759
-72124 -91.7089273333333352 34.5410183333333336
-48444 -83.0660512456181266 43.0471336206481183
-10454 -73.9167845551913274 40.8067734065573902
-63090 -91.03077308613247 38.5321437450504334
-67885 -101.561186399999997 37.5650645999999995
-85530 -110.120672114285711 33.1327333714285786
-60445 -87.7326251133308261 41.6334571333081769
-21738 -77.0232169045615933 39.2793592960207221
-15157 -78.9112147142857197 40.5580537142857196
-35208 -86.8814923227181168 33.4964439829211429
-21233 -76.6458547777777852 39.2931508412698278
-87540 -105.922367332351996 35.4584332423945838
-08002 -75.0193471008215624 39.9315275851183316
-38475 -88.0441972073909085 35.2752944355382851
-44111 -81.7860970262112517 41.4576448221258858
-02446 -71.1233966126191604 42.3429301038151138
-30623 -83.518493188311723 33.7321531298701487
-42718 -85.3684324383752227 37.3830444454097091
-48362 -83.2550576328651601 42.7826391357955345
-52042 -91.3641078615074065 42.6864087149310336
-79745 -103.094949931385699 31.8544224100777136
-85268 -111.734865115922688 33.6031125911271431
-78353 -98.206413894882516 26.897617970954343
-92532 -117.301633335326358 33.6915727045652602
-32955 -80.7269632655415847 28.3027414728192639
-21017 -76.2437823618135297 39.474532397122907
-92251 -115.592275012283835 32.8507774086645625
-32424 -85.0719603517284924 30.4264989992071655
-69046 -100.113983216216283 40.087507516216192
-43022 -82.3515341989841971 40.3478314829179396
-12915 -74.0425805263158026 44.8458878947368333
-84764 -112.123664676595737 37.7110478893617156
-92064 -117.032974995190315 32.9836014863253979
-33101 -80.3537425000000098 25.8861710000000009
-10538 -73.7570447770375637 40.9364458951790269
-23083 -78.1093200961196601 37.3225789962520551
-29014 -81.1217264243250895 34.5584132306594043
-67425 -97.921148651520312 38.808362984967566
-82837 -106.233939665775281 44.8778978716577654
-04939 -69.1540789759143735 45.0528991954101983
-99128 -117.083230761668389 47.0944383644488624
-43778 -81.3727002836485553 40.0073218890939017
-68523 -96.7587506365198777 40.7408461310818879
-16020 -79.8987470302812426 41.113366815789476
-68343 -97.132317778584266 40.6257336617060645
-72565 -91.9158531838617989 36.1958488144092243
-06450 -72.7794981328709127 41.5303342667200539
-95228 -120.633515255759832 37.9386479929807692
-16629 -78.5148698064516424 40.5350110322580761
-65453 -91.4220753540988369 38.0969261665210581
-89002 -114.9626419457813 36.0003966196589644
-07676 -74.0628958594985818 40.9899392490553538
-47125 -86.3059590782313109 38.4619738362114987
-87515 -106.413968619047679 36.4845919153439269
-11413 -73.7566044509804044 40.6705580784313767
-99775 -147.826089589108904 64.8586753514851324
-48357 -83.6389288078255646 42.6557900782559258
-08872 -74.3482573894202403 40.463424595337635
-13485 -75.3126965798867332 42.7899375504249662
-63827 -89.8863827336063395 36.2544792729508245
-85758 -112.63763583333332 37.2760364999999965
-19087 -75.3997213353605815 40.059662342849812
-78565 -98.576181441988922 26.2650917403315027
-07503 -74.157512942008637 40.8972373288542386
-18195 -75.6083545000000044 40.5600670000000108
-85617 -109.718264387072892 31.5329549587665987
-59727 -112.779750989672863 45.7909191772805642
-50521 -94.1008702705882456 42.3422338470588357
-48314 -83.0573979644590565 42.6099696354296995
-47721 -87.6015516666666798 37.9777366666666651
-07601 -74.0479792718816157 40.8880768106368606
-18332 -75.268950563981079 41.0874198243950346
-62346 -90.9589271722091013 40.1477387019002236
-52573 -91.930139925991682 40.6329351681467656
-63445 -91.7171042100283387 40.4217273320718888
-40229 -85.6629125958865103 38.0931595323875385
-89519 -119.852523001596765 39.4857728903081977
-35811 -86.514391773062556 34.7887807121040069
-52721 -90.9605679170402652 41.7495791771301015
-04410 -68.9185385561887216 45.0876197251627957
-85172 -111.949057684478262 32.9131929185750707
-30269 -84.5703294390883968 33.3995859936325914
-27202 -79.5417890508474414 36.1287834406779496
-42406 -87.6903962916512825 37.7279306794919052
-99023 -117.186337192209663 47.5598829999999921
-37211 -86.7244003090087574 36.0663013842465219
-76844 -98.5210910806617051 31.4446573373270155
-02351 -70.9558590462332575 42.1177433337769074
-13114 -76.2427526890674869 43.4669827413791268
-03063 -71.5135736678340663 42.7722316136186649
-23002 -77.9560385748733182 37.3451133728258995
-60460 -88.5257521446802826 40.9992718235642855
-85041 -112.105577706942469 33.3845857061701139
-45208 -84.4359465950296197 39.1345197163022291
-77843 -96.3421060000000011 30.6130140000000033
-97543 -123.533515844114859 42.3662332708895235
-50073 -93.5209395308149425 41.7965154811133246
-54761 -92.1929320136986377 44.6321961272015457
-42129 -85.5948825184598974 36.9924753467595977
-82217 -104.212832284246588 41.770881499999966
-12946 -73.984038127316893 44.2764124697662425
-75946 -94.5270291361439519 31.8220509667794609
-20116 -77.8528790000000015 38.8640199999999965
-24314 -81.2057137790699102 37.1689915309345267
-27530 -78.0346392610224626 35.38598329303003
-22201 -77.0946539043218166 38.886670771153355
-24411 -79.3213612479999881 38.1012367039999944
-67208 -97.2795485107942994 37.7032831736437259
-63126 -90.3786952726109973 38.55067538035523
-99565 -158.528935956521735 56.3106867826086983
-70455 -90.3341713835022375 30.5157488133140333
-08332 -75.0413057484587966 39.3761840831680274
-32321 -84.9710458652052978 30.3712709538246379
-07880 -74.8943238823529356 40.8710922352941211
-05468 -73.1400752118636461 44.6529302352342086
-90263 -118.711582615384586 34.0411232307692373
-87007 -107.506549759920773 35.0463639375000469
-76661 -96.8655437347702843 31.3135238858267044
-71211 -92.0452837428571513 32.525656000000005
-76303 -112.45941062499999 34.5278098750000026
-72428 -90.2133308833333558 35.7359176583333564
-12046 -73.9144930357455507 42.4901953561464794
-12984 -73.7938419999999979 44.1963934999999992
-13339 -74.6596215764920004 42.9407837905658596
-13732 -76.1516843201718956 42.050418971819731
-67485 -98.4978624765101074 39.3254132259508324
-24487 -79.6126829297592025 38.1935992651951466
-24868 -81.4284335562914237 37.4148394039735095
-97654 -159.33797061538462 22.1832349230769204
-05681 -72.4098523268920218 44.4417855641439559
-64157 -94.471843218332026 39.2760742387416215
-20678 -76.5925303055370108 38.5282002216342221
-55408 -93.2883631940802189 44.9465331065538152
-29163 -80.437772317319272 33.4201626392024664
-68743 -96.6250889999997327 42.4612684552655821
-25611 -81.8652810828026674 37.6881304755838684
-33576 -82.3113154593709453 28.3220508397484352
-62878 -88.4647058693693396 38.5803398963963673
-56525 -96.7473388076922873 46.6600229769231092
-35963 -85.9252044179767722 34.3594054571698919
-50664 -92.0759202972972872 42.7014257567567412
-49248 -84.0119211610738716 41.7677616692233968
-57533 -99.4333561859684352 43.2713829735704394
-22396 -78.596225000000004 36.9555966666666649
-70080 -90.4336267818533628 29.8773266196911003
-55324 -94.4191763432486084 45.0634242391389108
-74630 -97.4369181557593009 36.5103527395288054
-81001 -104.578550283256448 38.2943309121886699
-44106 -81.607027733917505 41.5076277253862926
-14453 -77.48220241025642 43.0232789743589805
-55353 -94.3069385023382267 45.3361184362649894
-73555 -98.9808824096385678 34.507068072289151
-12193 -74.0430664440992388 42.5135076758109278
-01366 -72.1908099510393697 42.4860140604486887
-43842 -82.0131686009173535 40.1410732752293313
-04978 -69.8126703661765191 44.632659700367725
-47965 -86.9183283620690048 39.9522165632183999
-95710 -120.786381333333352 39.2309123333333289
-64428 -95.0607970642185478 40.4436944882340015
-30904 -82.0135819399301909 33.4746214195295906
-61332 -88.9905195928571828 41.1664357142857185
-77455 -96.3998617140350547 29.1126513245614191
-61341 -88.6977805896221128 41.3399533522841764
-01420 -71.8079139402980218 42.5819239699898446
-85239 -112.091156072159464 32.9835887040926536
-49071 -85.7784305580165096 42.2302484645089322
-89434 -119.699379779922822 39.5484003989289334
-28351 -79.5542801127106003 34.8334281709036304
-35580 -87.2782095951167776 33.7062429582657543
-80915 -104.718443166915009 38.8575714234394738
-11961 -72.8922147461342007 40.9047882777451477
-47573 -87.3224459687499888 38.7443549843750006
-87416 -108.396628618470814 36.7403196449660072
-72307 -117.104171400000013 34.5444972000000021
-44262 -81.4379358054546429 41.1405644068180791
-05868 -72.3913973103447432 44.9139269133510552
-78665 -97.6404464177124396 30.5396576327723075
-24085 -79.8354106083787229 37.6657495088624685
-82243 -104.390914751004061 41.9765992208835144
-95231 -121.279823501562618 37.8792699117188079
-48433 -83.8383102801621476 43.0687927576566167
-97336 -122.855074842592657 44.3569296574074059
-08083 -75.0288589185776402 39.8411994742439219
-96756 -159.469822396291761 21.8995007068366228
-56461 -94.8175729650379111 47.2457708675814771
-28052 -81.225491782561491 35.2334383188618219
-43446 -82.8069420274261034 41.6875079440928928
-68349 -96.3008437066919214 40.8320801082106044
-22922 -78.9225244438730158 37.6867137393806146
-26101 -81.5587863252315657 39.2500523467504365
-80030 -105.037538935966751 39.8393620226611205
-44195 -81.6212324999999908 41.5033470000000051
-45230 -84.3835827296646528 39.0762926052436868
-53801 -91.0642684888338465 42.924885888751092
-21622 -76.1832448002837879 38.4026182110743122
-17014 -77.1968493615818971 40.660289971751439
-80813 -105.184747360778843 38.7789020306662024
-30441 -82.2310386742576895 32.7944118434707903
-14754 -78.2036661801500941 42.0225167247707319
-87506 -105.997190964377353 35.7936431628089196
-48841 -84.2345263550368486 43.1130042481572602
-17438 -76.4155729999999949 40.0972904999999997
-24201 -82.171324116565458 36.6107388740272768
-27974 -76.0361701433370882 36.235875730683091
-25981 -80.7333393451328192 38.0884305314651144
-80920 -104.76651870276082 38.9544744205333302
-00737 -66.1520917999999938 18.1173874500000025
-98402 -122.441100536419995 47.2501827611111764
-74528 -95.7446384499999681 34.73907937500001
-85611 -110.511241361131908 31.5861667769811874
-61751 -89.2841293909091007 40.2186711181818168
-76238 -97.347216590336032 33.4806672153361191
-95369 -120.448042079111062 37.5389790071110525
-66609 -95.6697708682720389 38.9896828549575289
-48762 -83.5036779701848531 44.804395370900501
-27863 -77.9795506319561866 35.482748370408288
-36444 -87.4585088765023642 31.6685768611686989
-17018 -76.9340758147335038 40.3853307458769564
-55146 -93.0832754736842105 44.9431656315789425
-25515 -82.1416447516232324 38.7536165710993714
-49088 -85.4565746509862834 42.1855145953465183
-54204 -87.6323783688710876 44.754302117928134
-45864 -84.1316945588235399 41.1031938088235265
-29613 -82.4354161666666698 34.9395864166666712
-18072 -75.259204950454972 40.847864201213234
-62851 -88.6799238654618307 38.4328903333333756
-75857 -95.8272469999999998 31.9526030000000034
-15967 -78.9880044999999882 40.2093710000000044
-10596 -73.9592313561643522 41.253388063926927
-44250 -81.4354134132581748 41.0211916854725374
-97501 -122.887421863350397 42.3101947766674797
-16657 -78.1873450822739642 40.3257314976388201
-11960 -72.7035737587209212 40.8082939709302153
-35013 -86.5113504285714328 33.9152692142857219
-51237 -95.9966132979269275 43.3364201425520079
-14612 -77.6769567657020588 43.2593465233747665
-77665 -94.3857440219913002 29.8208297916868936
-57758 -102.704284250219544 44.9479904719052215
-47366 -85.2629294363636347 39.8620687818181736
-58640 -102.834884315732296 47.4000148448557468
-92257 -115.624735434964037 33.3088048794749128
-07505 -74.1718167507163599 40.9163935243553141
-96106 -120.560564839130365 39.7476715458936809
-30122 -84.6455325774646496 33.7659510071935642
-37666 -84.1104129999999941 36.3641821111111128
-28623 -80.9730193104723952 36.5288318466968747
-04348 -69.4981410150165857 44.2069185125437514
-29710 -81.1809189998120075 35.1076403188373902
-76671 -97.504227986811685 31.9901279542280719
-68902 -98.3583553550136998 40.5910446883469049
-47884 -87.4530058988763983 39.6209697752808907
-74766 -94.9998676783784219 34.0648078027027097
-34232 -82.4746639346245018 27.322102501091944
-37138 -86.6075001648416247 36.2364437589206503
-32311 -84.170060754382547 30.4071105784752476
-73741 -98.2666632127658914 36.5471785319149021
-95918 -121.357989029606827 39.2883106602624608
-07302 -74.0468989426327653 40.721561172101417
-89456 -117.794925333333325 41.5585771666666588
-57050 -97.0028444032833193 44.1569184211277062
-50631 -92.3072012307691949 42.8828949358974398
-93420 -120.526294002280849 35.1311458902213047
-30272 -84.5162595000000039 33.6213910000000027
-12736 -75.0259333559718868 41.8557301639344317
-76471 -98.9893142258610794 32.115728946870405
-36027 -85.1921427680868391 31.8962531420191446
-33614 -82.5041068097776957 28.0097093338794778
-68039 -96.3601062461539897 42.1149846683760885
-62549 -88.8735677197499143 39.7805173062711575
-48766 -83.854085163404136 44.1213261234042804
-28076 -81.7900449705470294 35.2566689901823409
-00745 -65.8336012989468742 18.3689147754027324
-52211 -92.4391718069528423 41.7624349993592361
-39704 -88.3273432727272763 33.6883360909090968
-79356 -101.412577220557594 33.2311797699176239
-08006 -74.1174450848709228 39.7475833265682965
-37804 -83.9108919077126245 35.7825115938676035
-65203 -92.3773630789461464 38.9180931359555586
-83321 -114.896956835626995 42.4397402629968994
-44621 -81.3024809684580703 40.4216261140070401
-84739 -112.21517056129035 38.6266756838709071
-95950 -121.908208679089114 39.0650861076604059
-31539 -82.5931236520992513 31.8373394341043436
-69335 -102.165677783517907 41.9498021131611338
-73655 -99.2671811326379867 34.9668614605067276
-59848 -114.647498802023264 47.7141314841040227
-08840 -74.3582244298243467 40.5439565194235811
-16434 -79.6659263706099523 41.7962002818451808
-37755 -84.531132962646879 36.4263912971744688
-83689 -116.550723142857137 43.5619015714285709
-46376 -87.4526872516703406 41.1822090000000216
-13603 -75.8096501463093233 44.0370936893672535
-76711 -97.1509029432547919 31.5195216213419158
-07495 -74.163564500000021 41.105426388888894
-76599 -97.7286000000000143 31.467331333333334
-91306 -118.5769364074078 34.2080718769840928
-25535 -82.4414521903163404 38.3080804917435813
-55406 -93.2200748789097844 44.9383977602655236
-79039 -101.119614392229366 35.2389635559666914
-34951 -80.4048573610769353 27.5357060118903441
-68749 -97.4705026666666754 42.4579515208333262
-64494 -94.607372488008977 39.983696767986693
-14548 -77.2375353971766714 42.9708877423804836
-83119 -110.996227130925547 42.6737137968397207
-33315 -80.1534950591487956 26.0944118751113052
-73151 -97.4044552827890726 35.5730319429994353
-25915 -81.2485840597668414 37.6321484212828068
-91326 -118.551957664897543 34.2794458582013419
-62466 -87.8676171716548993 38.7462322808098349
-51534 -95.7323231894480955 41.0440626404087539
-45255 -84.3213459465213049 39.0633099763368961
-81505 -108.60395139804848 39.1229616375054903
-61030 -89.5900234729792402 42.1150650296509212
-13611 -76.1305335220588688 43.775870794117651
-07829 -75.0048875294117749 40.8332744705882291
-36607 -88.103990393535355 30.6982308638383721
-23806 -77.4512157272727251 37.2261000909090853
-92313 -117.312789060975206 34.0319608427471323
-81067 -103.722126031207353 38.0382146624965998
-32712 -81.5191747743958217 28.7138118037133836
-48321 -83.3231079999999906 42.6878560000000036
-45634 -82.5010481265507707 39.180147945409459
-88421 -104.442302995260661 35.3725387156398057
-72504 -92.2275701666666663 36.3799605000000028
-39563 -88.5286113127335454 30.4102682639177289
-87053 -106.787704726995173 35.5341468966419498
-93230 -119.647162261608926 36.329868121771618
-30060 -84.5516156256836382 33.92014334150862
-50541 -94.447609688902233 42.702143738932655
-66036 -94.8519587499999943 38.6644462500000046
-50214 -93.0505575846107291 41.4549891142168931
-95336 -121.217702102842978 37.8161983389075402
-71434 -92.9480104709676027 31.4357652935483678
-43764 -82.1939782609555323 39.7152741999999819
-13208 -76.1479889854184222 43.0746946277820655
-32638 -82.7719239999999985 29.3227795000000029
-78728 -97.6823878434129966 30.4505238820359523
-81030 -103.546565378612755 38.10594031502891
-01030 -72.6767578018653637 42.0715049957460181
-45830 -84.0934805280506055 40.9093939115534511
-40763 -83.9451852098690239 36.6911850143659848
-05074 -72.2245802180851371 43.8334275106382947
-80930 -104.514130799785235 38.8267516473430021
-74424 -96.0697281428571443 35.7411617142857168
-31627 -83.3881943236994232 31.0435599190751468
-93512 -118.532483579104507 37.8108344716417832
-25165 -81.6572026701031746 38.1448780250368458
-02172 -71.1556713333333306 42.3687856666666676
-86303 -112.458954059354198 34.5162539625471325
-16834 -78.1125650490018302 41.0333208548094319
-18816 -75.9082799767441827 41.7451003255813902
-64507 -94.7882141380177643 39.7332382715867567
-92024 -117.261237076220922 33.0550917800084818
-44224 -81.4347770041193399 41.1752635357292718
-57379 -98.5199200708701284 44.2686978759771108
-51523 -96.076107814363084 41.916243513550171
-95984 -121.107819668313397 39.9888472695835731
-33884 -81.6777596774041683 27.9897234841332079
-58021 -97.0763332117766424 46.7355384421487514
-86403 -114.329752476641147 34.4876205577886807
-33948 -82.143760707328056 26.98360101806065
-45594 -82.8386078000000055 38.7833338000000012
-38232 -89.3183392770624067 36.34677644311558
-78608 -97.9406707483050241 30.9223875525423892
-79402 -101.843093500000009 33.5812370000000016
-59110 -108.356977099999995 45.8191145999999989
-63028 -90.4125885304695487 38.1737495065178578
-44072 -81.3413789343068032 41.4729461686942784
-58747 -100.48642729686182 47.7658049457166882
-45331 -84.637587097248641 40.0944220882601883
-67009 -98.2403933702594543 37.2424084471057881
-70448 -90.0564481621639885 30.3729304605877566
-14464 -77.9291865808557134 43.3144049546772223
-66087 -95.1115660638754434 39.79820375047845
-04861 -69.1804816538612073 44.0847870442375509
-39305 -88.6997581111677107 32.4503155753740842
-53033 -88.2500042122703405 43.2355292461951564
-58488 -99.9866007570432345 47.1728278026820576
-64490 -94.5330324010212024 39.7336638513067228
-47881 -87.190286466666663 39.4869215199999815
-48735 -83.2683667582416973 43.6629037362637007
-33835 -81.9791904468085022 27.7982666808510537
-91214 -118.248128726327607 34.2334500573685361
-48066 -82.9387231263657583 42.5059849199525246
-23039 -77.8061533049557994 37.6536734294563473
-95668 -121.494311441102795 38.8205101516290583
-62969 -89.3433556103151147 37.1670275988538563
-78727 -97.71118317306302 30.4261347329832041
-64434 -94.7310051878636301 40.2590826986699923
-49613 -86.2147632567940718 44.4992217857423924
-46060 -85.975019301853095 40.0452742819474139
-16617 -78.3333149314114507 40.602396763916488
-20628 -76.3570550532286347 38.1470766195463042
-72617 -92.3863892887169555 35.9905646946902564
-23063 -77.9819508836074817 37.7227981153147596
-13790 -75.9807813574387438 42.1437151408194737
-53190 -88.7519719675915582 42.8155634563231615
-14502 -77.3350001851089388 43.0959694697570797
-76202 -98.2815006333333372 33.7396505666666613
-98358 -122.690827629675852 48.044992365336654
-37620 -82.1667193755191647 36.5640775024531806
-01842 -71.1597538571428601 42.7022514285714365
-29203 -81.0280805028061764 34.0745958009132721
-04558 -69.5155208692411293 43.8965038895664037
-27711 -78.8432137499999897 36.0894079999999988
-13677 -75.1660502692307659 44.537702884615392
-80017 -104.786305194363152 39.6938757932186732
-12592 -73.5527166460095998 41.7908359591549186
-35185 -86.534668744186078 33.3523092558139425
-50019 -93.62066200000001 42.044454199999997
-40356 -84.5654131341501056 37.8736216244615491
-31201 -83.6358124653268931 32.8341262833141485
-29861 -81.940521375000003 33.5895038750000055
-54031 -73.2036684444444461 44.4247918888889046
-61402 -90.388201189189175 40.9462804864864864
-86323 -112.473514308887289 34.7688684196210644
-14477 -78.1413665817131147 43.3429118964792153
-75853 -95.8062043540801653 31.950045114799476
-72020 -91.4908535618245367 35.4833907645319542
-94531 -121.776042886541717 37.9704582316720973
-04073 -70.7535043814440314 43.4235473011160451
-13343 -75.3524285049562224 43.7403267369018067
-76664 -96.8351707590320814 31.5537874843217558
-99176 -117.412507737316716 47.096506045095893
-44317 -81.5293139999999994 41.0527934999999999
-95957 -121.88244115407862 39.1059696943605601
-30253 -84.1819393265621585 33.4534697664743845
-89701 -119.741374921454238 39.1502909189129582
-03431 -72.2933250744131328 42.9491299494131411
-17401 -76.732744026524216 39.9584751539786325
-81330 -108.489097692307695 37.1938638076922956
-19732 -75.5767478990384092 39.7941297499999962
-19125 -75.1262176474021146 39.977720774664455
-13694 -75.1777860415568142 44.8509672763852265
-80759 -102.671669430958758 40.163617517721157
-32707 -81.3150105280907098 28.663416284433282
-41639 -82.7069315333333179 37.5242569999999986
-79712 -102.171547750000002 31.9482904999999988
-29677 -82.7504188846153568 34.5921225384615383
-02051 -70.734601687499989 42.1485604375000023
-31207 -83.6520163571428554 32.8295995476190541
-70598 -92.1243336666666579 30.0673270000000024
-60072 -88.3028244916446852 42.4024369577836708
-01469 -71.693879381052227 42.6576699609424352
-17044 -77.5837611966733931 40.5919274759887259
-42167 -85.6860570482949413 36.7221511262437517
-82654 -116.297033299999995 45.0007260000000002
-95010 -121.955246281778926 36.9774391579820616
-99741 -156.871220970588183 64.7451239656862185
-29628 -82.5704951773563636 34.1003234104531145
-35703 -86.9635497142857048 33.6280164285714278
-85743 -111.154373475283251 32.3383741255982216
-10069 -73.9885691555555383 40.7777615333333188
-80142 -88.4569240000000008 42.1540634999999995
-72702 -94.0305244807692162 35.8578418653846143
-55781 -93.0385235257365082 47.6760033883563921
-33890 -81.7175504232239689 27.4613746809946484
-54120 -88.500471374152994 45.7592982705711719
-27030 -80.6243244549749392 36.491302688490606
-55988 -91.7740097692307586 44.0272998846153669
-56657 -93.6049239128619632 47.5722601127506053
-62988 -89.2819457475519584 37.2452443601533574
-27531 -77.9656547714285608 35.349812
-20169 -77.6457825343393608 38.8582402076746334
-88045 -108.751262031957296 32.4140006953396167
-57375 -98.4692789394812706 43.5619152396733753
-94070 -122.269995547653096 37.4969737584684282
-76065 -96.9772532884534542 32.4703997360829462
-35004 -86.4960044136450676 33.5982416527351404
-06489 -72.8729015580286728 41.6068461249709216
-19532 -75.7888322999999957 40.5819425000000038
-05254 -73.0689897265745429 43.167499815668215
-29676 -82.9477043968764036 34.8812998719663767
-45171 -83.7938406166725969 38.9896894903126991
-35176 -86.5063949868862778 33.4814092997376846
-53588 -90.0996271737425616 43.1234075704332085
-18433 -75.5781028540636015 41.5601122681450263
-37727 -83.0274542506793836 35.8924978637188943
-92307 -117.194191559527866 34.5425803954431956
-14608 -77.6230498423850435 43.15279058830221
-57648 -100.304161127132602 45.8521320787012243
-74082 -95.8813910595237644 36.4491484761904587
-41633 -84.9797322666666588 36.7415320666666645
-37055 -87.4163956365075592 36.0747583043562443
-48243 -83.0397636923076874 42.3299391538461549
-60171 -87.840875547372292 41.9265307757216519
-43232 -82.8664545980927016 39.922357571563488
-52769 -90.8481209781929948 41.6116094722741252
-36756 -87.2991833259585235 32.694449793264539
-51022 -95.8632856324981049 42.9725174407745314
-85934 -110.245324675512535 34.3076176079614115
-61854 -88.5185766514959482 40.2032533801096363
-30894 -71.2592319687499867 43.5987032187499963
-01038 -72.6120775277916124 42.3836609414121455
-11360 -73.777000928571411 40.7794819999999945
-13131 -76.1004136749164815 43.4170324844270823
-56089 -93.4946900190476526 43.5805558523809538
-44854 -82.8437397879255855 40.9578627358100817
-78209 -98.4553362178502738 29.4884315085641013
-33950 -82.0463985179143691 26.9090779266599434
-52224 -92.3076544937333239 42.1495062343330318
-67449 -96.9130680088330365 38.6734820771069181
-27957 -76.7613656224277037 36.0716353815028654
-83868 -116.196734003787839 47.5442550416666805
-65466 -91.3671707820990235 37.1634757474693913
-37641 -82.6754627000269124 36.2175177382137647
-12376 -74.9144114999999999 41.9449954999999974
-75270 -96.8018173999999902 32.7809797999999972
-94920 -122.471937085005834 37.8891716212683036
-58361 -98.3257839002989584 47.7609370136633942
-49755 -84.7914010631333355 45.6378148352819721
-74945 -94.8110070868421246 35.5754662105263151
-62353 -90.7567478892044051 39.9905019730113693
-76263 -97.4368489324324969 33.4857699189189191
-97761 -121.284325820459145 44.7840299586602271
-90503 -118.356247632130021 33.8408935409380192
-89118 -115.216351821872109 36.0782943457723135
-49799 -84.5799202550475115 45.2603265214511197
-83163 -110.107586909090926 42.5529579090909067
-47401 -86.4884852648215201 39.1198773101373547
-99918 -132.820280847908748 56.0120316806083736
-85636 -110.804498666666674 31.8592887999999981
-16730 -78.4243529729729971 41.8091258783783815
-44749 -84.509135999999998 45.4468930000000029
-24366 -81.1208109240781567 37.2566652863340479
-49625 -85.8791552545051786 44.4374265621246138
-79119 -101.968138775236298 35.1213032573634507
-35121 -86.449374399241222 33.9427575593472852
-16402 -79.4728777200886753 41.9548329575333128
-71741 -92.7783093750000063 33.1297741249999973
-70556 -92.5833966318182178 30.189456365909102
-86328 -109.095436333333339 36.0758801111111111
-71642 -91.8735775675258992 33.3674051845361177
-76903 -100.438991528320699 31.4699063852578682
-66711 -94.6619124021927547 37.6347938390075001
-72846 -93.3417535307776944 35.4732628311284657
-66515 -95.6990776728211472 39.9448646093057533
-36735 -87.4741814444444401 31.8491973333333362
-41201 -82.7310694855434008 38.0601541635094804
-78341 -98.4247180506564376 27.5875753048780012
-87520 -106.566243205863685 36.8335377762906973
-71031 -92.8980700109036945 32.0121600445844265
-24323 -81.2006225552620009 36.8700716904447248
-49406 -86.2022072147886149 42.645931406103287
-56593 -95.3518542499999882 46.8030792500000032
-76430 -99.2834304296351746 32.7400559936707651
-93635 -120.878701557036095 37.0456031919487927
-68379 -95.8913010303030262 40.5011889393939484
-72414 -90.3643190426065104 35.822894761904756
-56660 -94.172654985667819 47.9453706143322549
-77854 -96.6752251538461564 30.1027732307692339
-85502 -110.787118843749951 33.4650708671874995
-63380 -91.1319455047318172 38.8132752492113511
-92113 -117.117299345845737 32.6971363329350311
-77598 -95.1404543852104183 29.5429570062832667
-98374 -122.263988205483145 47.1325744242672329
-53057 -88.2470251885966093 43.8233596535088026
-99340 -119.926291000000006 46.6875879999999981
-37191 -87.5333432084161558 36.4999732311133229
-85741 -111.04046279825009 32.3369546061106234
-03678 -72.1470037142857308 43.845750114285714
-40351 -83.4080831753236396 38.1931587692963532
-44505 -80.6217633423459432 41.1270014443634722
-28670 -80.9243450304609695 36.2080060297879101
-36749 -86.8612736589008705 32.5452567721723085
-99134 -118.341188223042991 47.4736776794682456
-26671 -80.9472151999999738 38.2950074857142937
-43758 -81.9326012857452355 39.6280427203053733
-15034 -79.891254669472076 40.3520550290742364
-95928 -121.779772995244912 39.7364718716174394
-30216 -83.8952221009333385 33.2472857172485377
-80835 -104.084545380857776 39.1939174440032048
-49506 -85.6158243463367228 42.9434075843245253
-16444 -80.1204582222222257 41.8691944444444459
-52644 -91.4050251303006434 41.0355534425597952
-59434 -113.216625940495788 48.443509120661183
-78364 -97.880284346153843 27.4259436538461578
-71721 -93.2175338181818347 33.8862663181818178
-22733 -78.0457438908973558 38.326156765303395
-77867 -96.4673290991378849 31.0521881508620723
-97229 -122.815112772987248 45.5459687589194218
-73761 -98.0441768419865127 36.6784483679458333
-43158 -82.3577833768115966 39.4517943550724581
-15851 -78.8922944392122361 41.1023785623299958
-56671 -95.0382571255195217 47.8701068869493511
-19979 -75.5734939410112503 39.0472649466292197
-52216 -91.046568723902837 41.8955768743075083
-65535 -91.2920010049371342 38.07660670753787
-38049 -89.5527692944188658 35.3992196136971913
-96096 -121.924748897733039 40.6469454512075004
-03057 -71.6780180028428759 42.9005061445684603
-75059 -96.2466326666666561 31.8099529999999966
-32182 -81.9593086666666863 29.4893631466666797
-47437 -86.6700327076923571 38.7223836384615296
-74428 -95.6430890336538653 35.5378976153846011
-98569 -124.154691249018128 46.9773248288851022
-25607 -81.7913153240418609 37.7878817404181362
-48015 -83.024471465035063 42.4783590293706723
-07021 -74.2784413094688318 40.8273629491916878
-88835 -105.986165454545471 33.0815291818181834
-95129 -122.001306306923624 37.3058293035608344
-50591 -94.0591153255813595 42.6660512034883084
-92602 -117.773708611095813 33.7309630895357913
-55977 -92.640502248061992 43.5591578361018534
-13748 -75.818636542715879 42.0483302396582346
-45880 -84.7359010111224222 41.0715722278840403
-07054 -74.4108567283136892 40.8599287401652091
-13052 -75.8739910177710328 42.7372243283133102
-35007 -86.8111456206659824 33.2269200526512876
-59638 -112.02250869321297 46.3942829741076324
-78986 -96.8165549999999939 29.6332020000000007
-52227 -91.5667600311687835 41.8974508435064479
-04473 -68.6982189127581222 44.8860046500939731
-85637 -110.666497400096773 31.7014520096641235
-89402 -120.003277241071416 39.2294088303571513
-85355 -112.441591509596861 33.5699451011125234
-34143 -81.4512711111111116 26.4455290222222175
-12817 -73.8261770312784762 43.6431327798359447
-52543 -92.5186235140624689 41.211661139062457
-62682 -89.6126184578377405 40.293922378378312
-37419 -85.3787694779450845 35.0404518301637324
-98661 -122.624808940696752 45.6433721836834962
-12913 -74.043915503159127 44.4131974554854381
-43783 -82.2883549676521682 39.8033370016943664
-28019 -81.7909117945205537 35.2796889315068682
-80442 -105.824316361745872 39.9596938314293695
-85395 -112.390092919083557 33.4826297947085791
-97856 -119.144752672831402 44.7733316825187657
-37841 -84.5235245329315035 36.5002177087206121
-79901 -106.477582247895668 31.7592982267173127
-11563 -73.6739201152737735 40.6574398202776663
-29226 -80.3451363636363709 32.7206800000000015
-78843 -100.792446347826086 29.3561851521739108
-76883 -99.9051854166666544 30.3438733333333346
-31793 -83.5691013756868983 31.4596901310816257
-74063 -96.1652138687329909 36.1419357453504375
-22602 -78.2431466039466272 39.1588862168547536
-99181 -117.746807789740615 48.1404404668828505
-37316 -84.7338868571428492 34.9891148571428587
-98403 -122.459836342785181 47.2653589269061243
-58002 -97.3749631071428468 46.9778396071428688
-46390 -86.8768973057977547 41.4211819010463529
-98509 -122.815848400000007 47.1032960000000003
-78112 -98.3832300469826038 29.2068961902890472
-50651 -92.1957423708116863 42.3213462725432308
-41572 -82.6330312171455574 37.3278992896950754
-72023 -92.0522140753058267 34.9722305379920826
-46814 -85.3077193238489571 41.0487855094156728
-08088 -74.7207321429996085 39.8669597167392524
-82050 -104.19928603426294 41.4083439633465602
-96123 -120.206564794871767 40.9453800769230725
-28590 -77.4014900491237796 35.5348963285916
-45831 -84.2568582535292734 41.111569583647352
-32968 -80.4386748322119303 27.5977474419714639
-58487 -99.5873620731984914 46.8236172143444733
-47879 -87.3842527640348976 39.1862921643275683
-24731 -81.144873944625445 37.4030226807817883
-33579 -82.3025650670977171 27.8009336176286439
-77024 -95.5207108798371252 29.7700149749491096
-85377 -111.907086814041307 33.8220406146417716
-44718 -81.4510915178317418 40.8529100205522369
-61790 -88.9980304999999987 40.5102654999999956
-43907 -81.0368833295707702 40.2620153233464819
-15756 -79.2969698028169176 40.5701009577464617
-44055 -82.1343928090614099 41.4349654259397226
-24544 -79.0993649411765034 37.078873999999999
-66024 -94.8787891552918836 39.756768096933726
-47906 -86.9487669280791238 40.4642977349295592
-72670 -93.4042190072992327 35.8381268905109422
-48383 -83.5369293190372417 42.6593200735722391
-62054 -90.3465638543800083 39.1899316905574366
-91766 -117.757507178464849 34.0421855769821491
-68661 -97.0699724123223859 41.4608106479350269
-44057 -81.0596657957369757 41.796250995331782
-57720 -103.644121240434131 45.5802224945745493
-68613 -93.3887863333333286 37.6526362222222275
-64672 -93.2468177817746096 40.5507478393285794
-18299 -75.7229152499999998 40.8922368750000018
-23098 -84.3307704999999999 33.8964969999999965
-99032 -118.026232555869655 47.3285801485148596
-13607 -75.9211755227472054 44.3253809313210922
-64128 -94.5346820694531544 39.065381254871177
-30558 -83.5641471110992171 34.2665012528046873
-16784 -77.9579658000000109 41.9819021999999933
-10039 -73.9369100183149754 40.8291071868132391
-45168 -83.7641027110718852 38.8520163200202973
-32131 -81.5878370878212564 29.6784576607821364
-35457 -87.7796656025917912 33.3060405075593948
-37383 -85.9238295483871042 35.2054518709677424
-52657 -91.5233745779816559 40.758943692660516
-16651 -78.3700709620666771 40.8268842808101979
-61925 -88.8343175679156758 39.7343675573770057
-70001 -90.1674903073825504 29.9845184014966648
-20612 -76.6805878417508637 38.5104908787878841
-77475 -96.6649585929078086 29.5011724283687826
-81630 -108.350497240491151 39.4062976519414505
-48413 -83.0012420299786697 43.8023137922912085
-79490 -101.939675272727257 33.5737007272727368
-70725 -90.9478730550523551 30.135954150522668
-66529 -94.4266305000000017 30.0322659999999999
-36855 -85.3060051843723102 33.0396571241147754
-32069 -82.7966281333333427 30.365131266666662
-29932 -81.3154799880596926 32.8261711383084531
-60020 -88.1752851572977647 42.3971312489748513
-96795 -157.714586204865469 21.3601938335467345
-58424 -99.1096066972681342 46.8810917901639144
-45745 -81.3202558368841579 39.6181611728955332
-59758 -111.202292438131138 44.7597452312710828
-85387 -112.434551137704105 33.7032454666832422
-61938 -88.3747826905192682 39.4708509969750594
-37474 -86.6178819999999945 31.4538618333333346
-49888 -85.642106499999997 43.4775269999999949
-24104 -79.5001547299005864 37.1268061358338244
-62830 -88.9705399402192683 38.4416852556969317
-91202 -118.267024023199497 34.1687380076312621
-33907 -81.8723647023023773 26.5622452239870768
-38944 -90.3252897053332759 33.7577388520000099
-89011 -114.972808612749262 36.0835641726537304
-24857 -81.6614082072727143 37.6718149599999563
-68102 -95.9364821517102939 41.2607152362173437
-87107 -106.645315773778648 35.1358942058933437
-50475 -93.2157882234582331 42.8812000346836655
-42320 -86.8659111615788646 37.3769023253711907
-76579 -97.2829481056520109 31.2003910637822486
-25904 -81.271666831460692 37.9169163295880338
-45827 -84.2939302943754569 41.0004414300486744
-12775 -74.5838526333126595 41.616360615910537
-29175 -80.6081769748642785 34.4433271644021985
-64444 -94.6366125131745264 39.4865085094102781
-94112 -122.441591014559435 37.7208005810567215
-74931 -94.8078783987179605 35.7188472070512262
-77303 -95.3958668650521702 30.3777397710939496
-85551 -109.627800004566282 32.8145804292237386
-62961 -89.2558856629213437 37.3400720898876415
-32508 -87.2842087082801896 30.3529890904458455
-32059 -83.2802467022899151 30.4082351385919978
-20688 -76.4609970677339561 38.336599230295576
-66409 -95.576940406199256 38.9276019967654889
-80403 -105.300273711426527 39.8341873033330742
-31829 -84.7349031305682558 32.5644588033794449
-67445 -97.8144681464668508 39.3817270026987529
-34660 -82.7762960000000021 28.0669279047619007
-78653 -97.5339978250463275 30.346730804810381
-27959 -75.6190430557789313 35.9390025229283907
-13156 -76.6699694513828263 43.335465026984906
-01037 -72.2003886115385995 42.3647080884615477
-65058 -92.1500542469250661 38.2666132705770963
-28648 -81.8483311250000014 36.1237917500000023
-84120 -112.001308191477477 40.6889995004694995
-18370 -75.3312018740269025 41.090544333333348
-49319 -85.5391046719362009 43.2232836542175392
-04290 -70.4379668667246079 44.4859003581960195
-58853 -103.86696937313431 48.0728940895522427
-01907 -70.9075736714599287 42.4740358358992083
-19351 -75.9685317714285731 39.9425106285714264
-29150 -80.3646994190281134 33.9062502964858226
-71832 -94.3352818916973632 34.0464392973229764
-61828 -88.6540202222222149 40.581163333333329
-41810 -82.6863454289044029 37.1845433496503546
-39042 -89.9531559076262113 32.2483467952160723
-15413 -79.8728435000000019 39.9856707039473704
-28362 -79.120758540983644 34.3639865245901746
-25160 -81.2855952174688241 38.2887359803921399
-72394 -90.6308205018698914 35.0444279839192063
-44253 -82.0338859971154477 41.1676845519230454
-58713 -100.630394978021982 48.4870204945054866
-99360 -118.646972092807658 46.0553974335433267
-74842 -96.6256238931297844 34.6081687938931211
-69037 -101.432359433497552 40.1480172709359593
-58561 -99.7086752085277652 46.4931278079675394
-77476 -95.9873795072203109 29.6796648393501918
-99150 -118.600464714801404 48.8012311028881314
-47974 -87.4772357842920201 40.0500012699115047
-10523 -73.8147220113585547 41.0573235074966263
-92860 -117.553291575591558 33.9231346081289189
-56441 -93.9801264505676812 46.550363208017977
-48651 -84.6475227612206851 44.2890361057001201
-35976 -86.3297449972333908 34.3460991142314853
-18323 -75.2708232780142339 41.1934419148935973
-92582 -116.996700718659469 33.7882040231133871
-27868 -77.9046828189654832 36.0381549396551932
-33770 -82.8023324254415911 27.9152053691632283
-17124 -76.8858730000000037 40.2671915000000027
-93546 -118.92366944298746 37.6233328758995285
-05654 -72.484308861086447 44.1444034327693799
-59746 -113.107359522439737 45.4115091449942838
-95237 -121.145040296640289 38.1606661622586927
-67436 -97.7165601810122268 39.2996046461026367
-73505 -98.4618483430098479 34.612931194603469
-56578 -95.6770892881539083 46.9220714683030238
-93454 -120.335263629985988 34.9729202426071879
-07726 -74.3341407728867267 40.2890705365239228
-85902 -109.884494016260135 34.3251617560975717
-72579 -91.4641571682789447 35.8119211224675098
-56367 -94.1887961598622212 45.7425091108276263
-44260 -81.3516177991450604 41.0334785835854419
-05459 -73.0359431373133106 44.9525887348711208
-95979 -122.486824521962717 39.28680674266122
-04705 -68.360276454545442 44.4668544545454552
-76179 -97.4141022014373164 32.8775354470641901
-93921 -121.921849529411801 36.5581157124183065
-26215 -80.3997765685484467 38.7107487399193388
-00739 -66.1608875273632435 18.1714415754560648
-68734 -98.7977560729926694 42.4766020510948934
-12834 -73.4970626187855203 43.0979694368378787
-74855 -96.8997150043666551 35.497358222707426
-85745 -111.042896790557833 32.2518819902788181
-55701 -103.236879871794883 44.0874126923076943
-97840 -116.847058352272754 44.994061247727295
-79601 -99.6893703151546475 32.5179812406556508
-30093 -84.1816377862758998 33.9053912490970504
-77498 -95.6481851062808488 29.6471511925733715
-13425 -75.4819112278808575 42.9580935463962419
-28435 -78.1060048301723526 34.4399210720375351
-16233 -79.2766571885739069 41.3649388044778448
-28624 -81.4187950731412684 36.1177707829737642
-03054 -71.5183311577002456 42.8602108014044774
-47845 -87.2343695416666662 39.1934193611111041
-90221 -118.203406373440146 33.8940652045803574
-72002 -92.5084044205109421 34.6548869587153803
-31785 -84.342186562500018 31.7179953750000045
-58643 -103.926498938931303 46.284835450381685
-92624 -117.663945899999931 33.4590489739130348
-62638 -90.0808757907680757 39.609422015890992
-42529 -73.5751060000000052 42.2690482500000044
-43140 -83.4237155842306777 39.8957048803523762
-01084 -72.8844852143885049 42.3944775525180617
-18976 -75.1398587631080801 40.2462351679704682
-97329 -122.45824644797689 44.3998669104046257
-56448 -94.0553305260756787 46.7615726768309301
-77626 -93.8764534166666778 30.198342416666673
-25051 -81.7087480374331676 38.1639132352941175
-49631 -85.2613415013668572 43.894512176540232
-42713 -85.889944314699278 37.3758386379114711
-75424 -96.3910887887731604 33.3054903085807013
-85930 -109.846911702549633 34.0638408725212329
-52073 -90.812365260106489 42.6212001648935939
-92407 -117.276279956579017 34.2304087288824022
-50136 -92.2767711894976657 41.4680526609588824
-40951 -83.7867096666666669 37.1113399629629654
-71426 -93.4645566593886059 31.4935986681222673
-18078 -75.6151258698349977 40.6759447593743246
-72091 -92.5389887199999919 34.6227920400000002
-54536 -90.3271495429403615 46.3466311819504924
-08004 -74.8758859598234636 39.7650300726893917
-05351 -72.7355918693932182 42.9374516609497974
-03833 -70.9808809984008207 42.9736680063305343
-88427 -103.644734082267561 34.7687401841432546
-28244 -80.8437422500000054 35.2249169999999978
-78777 -97.8583600000000047 29.913391125000004
-17268 -77.5727981967645803 39.7625003052034529
-77553 -94.985588666666672 29.1746552222222206
-22117 -80.8484970000000089 35.5366604999999964
-12763 -74.5184703657760537 41.6837176615776386
-41604 -82.6632483188404734 37.3941129797101723
-37921 -83.9940025220150801 35.9770028282690646
-53228 -88.0418212753811105 42.9681284959093261
-57047 -97.2374764459131171 43.5037075737793231
-24633 -81.5589464444444445 37.2054196666666712
-17829 -77.1565142469135594 40.9006241358024596
-33407 -80.0801664282319337 26.7540780707891379
-54214 -87.7165281452991366 44.1987143846153785
-01259 -73.2521867447183439 42.0774369427816239
-93263 -119.275098590045502 35.4956711390648891
-41622 -82.8154717297297367 37.5079864702702253
-26722 -78.6263787456588688 39.5074824678243104
-72460 -91.1699352577606845 36.3446257801183492
-16631 -78.3407804444444338 40.2745842638888973
-23662 -76.3803854183639288 37.1331741048695676
-96061 -121.488605390835616 40.3156685444743843
-93523 -117.910101090506302 34.9555086189873165
-27941 -75.8175896636690823 36.0971184910071869
-35477 -88.2565867929291699 32.9361642196970124
-40324 -84.5609753108859223 38.2411745562654417
-41256 -82.8733527190145054 37.8254545561408335
-02790 -71.0843397692963634 41.6033214263880708
-95122 -121.834924702047118 37.3290754244272023
-08094 -74.9781001119885957 39.6691137711081865
-68755 -99.0997713003952612 42.934653803688974
-59260 -106.098988322952778 48.7969079354094362
-16123 -80.1992375854516411 40.8220116617070303
-60914 -87.8756403469090515 41.1706277995227907
-04263 -70.1285268465204297 44.2878090152527761
-37715 -83.9528008707657563 36.5668147128129419
-06330 -72.0731163791553797 41.6339613489128908
-22731 -78.2604963596490819 38.3407362105263161
-36263 -85.3603248126539569 33.4666527962202025
-80807 -102.234932518536056 39.3492164761231535
-87725 -105.346467888888881 35.9034610000000001
-13754 -75.4387261848857378 42.0813241514939591
-73551 -98.8871176785713999 34.3535154642857137
-70663 -93.3583593890033541 30.2493205099037255
-30514 -84.0029692522522708 34.8657009189189111
-08330 -74.7204194072050996 39.4610992123214714
-78733 -97.8699088080157225 30.3285064266483175
-27573 -78.9798757922616659 36.3997327758002172
-61411 -90.4909622567791558 40.3906133613724876
-72113 -92.4075482940047266 34.8597548184130943
-57775 -102.090387129591704 44.0704026836734926
-35573 -87.5190106967741741 33.9297014000000061
-94111 -122.400848991408935 37.7976837164948236
-30303 -84.3913164948644692 33.7555666984126646
-13035 -75.8398055224037506 42.9371881925409014
-75231 -96.7453733970155412 32.8773626741683458
-02921 -71.509104773181619 41.7623088028120222
-47550 -86.9223906172130256 38.0689936672130642
-13036 -76.164545880085484 43.3060675600545295
-30525 -83.4116290523540016 34.8837828111794011
-76319 -98.598589000000004 33.7561894999999978
-78203 -98.4604897337951996 29.4148947021276292
-70352 -90.9439847570093178 29.6963688411215081
-55405 -93.3033236194316231 44.9701839338281317
-63869 -89.5339054798852061 36.6067867435345349
-92082 -117.037935874406017 33.2528522073046702
-58040 -97.7570720779327331 46.2035033662837975
-17866 -76.5620450866393298 40.788181214702405
-62431 -88.9835900875621064 39.2182706079601715
-02171 -71.0228929600516494 42.2845764188145168
-49777 -83.4958212550668151 45.3065643298836207
-05447 -72.6870276538461297 44.9291721105769568
-54562 -89.1075608769936736 45.809018927394483
-79842 -103.235656599236577 30.1702166717557212
-24630 -81.5035112360437637 37.1670379668572366
-14805 -76.7320422105973137 42.3613121407357553
-04716 -68.0122096666666636 46.9819191666666711
-27917 -75.9783929615384466 36.3773764736842082
-61283 -89.7873648651911367 41.5845262018779209
-87248 -97.2757707500000066 32.9553484999999995
-70394 -90.6099610804428153 29.7107816584927953
-13166 -76.5579611636442507 43.0637100518973739
-04605 -68.4245059112667633 44.5886335359216446
-27712 -78.9234857410764903 36.0895193380924368
-10542 -73.7624038888888833 41.3727792222222206
-74137 -95.9273699519306859 36.0178228819561284
-75928 -93.6924315581679252 30.6910712247328945
-85548 -109.687571428571445 32.7193434285714275
-61272 -90.9926247729568303 41.2323254232443617
-26714 -78.638629143934125 39.1811501514735951
-60103 -88.1924178199438131 41.9786624326062778
-98802 -120.256578595723695 47.4416652144936251
-48340 -83.2904907689582643 42.6699887683682419
-69360 -102.477617304326955 42.7263655624999927
-83465 -113.655611164722927 44.8227493338192104
-42321 -87.05238495772943 37.1764485084540581
-15363 -80.2001087837837758 40.251249864864846
-92025 -117.056785199068599 33.0957985584195029
-60712 -87.7356964897577569 42.0056910753474853
-42022 -88.9456809862069093 37.1454348275862145
-20693 -77.092147865421893 38.4791440159470639
-26302 -80.3104910851063778 39.2714859787234118
-99649 -157.555202897810261 57.5532578394160481
-34789 -82.7487895000000009 28.1677560000000007
-57201 -97.1154163525511223 44.9159188652792665
-25161 -81.3228775761317166 38.0849563127571855
-97426 -123.028908080620312 43.9095053874721089
-14621 -77.6035309103269242 43.18454967110209
-99381 -118.12898457142856 46.5190637142857142
-54827 -91.0957390078124973 46.8423749062499368
-01256 -73.0170730445603908 42.5851833841425744
-98087 -122.266269555613547 47.8635776782058215
-91356 -118.548388340797288 34.1565972781741394
-49650 -85.8746875356216464 44.7331352951209098
-72855 -93.7183145015797123 35.2832241439178063
-21050 -76.3907645688370991 39.5764133237541031
-97481 -123.549498750000041 43.1081913862359229
-66953 -97.1238517827828218 39.6873896636636232
-25810 -81.3493107894736198 37.5891841999999983
-54563 -90.9714437272727423 45.4716539090908967
-01854 -71.3403574065801251 42.6495871884646718
-51230 -96.3128480816485535 43.3480391625194272
-59323 -106.627959116406061 45.8971144161512115
-27986 -76.9324100622317246 36.3887702214592679
-77662 -94.0123093732537995 30.161044506535994
-67642 -99.8446685721604297 39.3646366259606921
-17251 -77.6421375913043619 40.1970261478260795
-66853 -96.1696742490931058 37.99138148972186
-63543 -92.024800472222239 40.3647404999999964
-97007 -122.851750913140293 45.4588528871870423
-58227 -97.8961280211165246 48.5332304875127392
-71368 -91.6900706257004856 31.840428774219383
-93260 -118.657854907922001 35.8139403749998948
-29431 -79.8989230345410135 33.290753647181802
-04462 -68.7304780859492865 45.6709229887893073
-65624 -93.5296891835664894 36.7452009587144062
-31646 -82.1825928372093131 30.4843680465116336
-50557 -94.0319985325543968 42.3601238526711725
-41520 -82.5567017266187122 37.2837176798561316
-42746 -85.7424195370107469 37.2158452780607334
-94913 -122.53213199999999 38.0479684999999961
-66206 -94.6196140708125455 38.9595372597689362
-85305 -112.251372003576805 33.5326238536513443
-15920 -79.0501724951456879 40.4617869600863003
-62218 -89.4687240261207393 38.5324893914578084
-29403 -79.9475933704425472 32.7957209939985219
-49446 -86.3914912107970849 43.5515158693230191
-83311 -113.578242804804788 42.4092347207207254
-42553 -84.6736228225669407 37.1751686951480309
-23389 -75.8350910431035032 37.6561771235632108
-70582 -91.8109576957949827 30.1514838134778245
-98382 -123.093409166234011 48.0753159737056563
-78215 -98.4824618676469896 29.4375321565743988
-48707 -83.687464047619045 44.3399317142857115
-68357 -96.5515461136964745 40.3102990289728425
-38449 -86.8217713320989333 35.0375835256172934
-16603 -78.4075705000000056 40.5012724999999989
-77807 -96.4570946956604018 30.6805220501741367
-11788 -73.205654697597339 40.8203642797018134
-27616 -78.5414274625212983 35.866925868026172
-16421 -79.9383993274980185 42.1688089183078176
-43794 -80.8876814999999993 40.1807684999999992
-56276 -96.3258577752212943 45.2486964017699052
-82431 -108.375683206702789 44.8250897841921159
-63015 -90.7528578737181135 38.3952635262820792
-75240 -96.7851812461737211 32.9339269672618471
-67510 -98.2148296952802156 37.988305903834771
-37315 -85.061959192857131 35.0531534142857311
-24439 -79.4866429605397826 37.9972211652239906
-20851 -77.1229293786604586 39.0765159171995933
-77430 -95.6469443249494446 29.302373446371881
-46034 -86.0311403544228881 40.126114875075551
-98816 -120.082660070754287 47.868065260207274
-43237 -82.5162496666666669 27.3410016666666671
-43302 -83.1234457246278282 40.5842389118394351
-72530 -91.9617421578454213 35.616836450673226
-95762 -121.066235149394331 38.6885770134817193
-17842 -77.0295896677011882 40.8068427323724592
-28109 -80.2793032972972895 35.4799034662162143
-91708 -117.63466153632136 33.9629897550232016
-08558 -74.7014238899870264 40.4128204283048831
-70546 -92.6625727965056569 30.2469291193045926
-37367 -85.2086605866929006 35.6320590312980769
-61844 -87.8592127851992046 40.1418696417457141
-49973 -84.8061320000000052 44.8057335000000023
-15682 -79.6629561940298458 40.683851126865676
-46721 -84.8687282618451064 41.4203162460914101
-68138 -96.1353782990579901 41.175672025656425
-54957 -88.6136276363636313 44.2137438181818112
-77461 -95.821881217922126 29.3997059615749912
-55925 -91.4349755633232633 43.9104653004052992
-29116 -80.9333021764705762 33.5098179705882373
-91340 -118.436926580715536 34.2868907182903797
-33844 -81.613278829519416 28.09638569815219
-13738 -76.1239645625000065 42.5676015000000021
-58762 -100.927350502857308 48.680452082285683
-63653 -90.5901696727272139 37.8634085350649414
-38322 -89.1657657499999914 36.2055098333333376
-47868 -86.8906710939164668 39.4097604559466959
-63434 -91.9529911618704858 39.9012402733813047
-10987 -74.2107918594409881 41.2016435133794374
-28305 -78.9065197496820048 35.0534398937659759
-06795 -73.1242202887661534 41.6092196122935647
-13616 -75.8531311213591692 44.0266636407766185
-79258 -101.291670651162704 34.2222564767441852
-80479 -106.8484236089745 40.0450800032050864
-15120 -79.9045672958126545 40.3943765081043864
-17550 -76.5831361724137594 40.0737660394088593
-12077 -73.7953905995165371 42.594472687080362
-33132 -80.1890885943128069 25.7852759364928694
-59468 -111.682125150543484 47.7305545247735665
-68329 -96.1539608571428488 40.5235608816631085
-00650 -66.5620937050690884 18.3609257004608146
-45390 -84.7740231507656148 40.2177490341390964
-25879 -81.1151802625820295 37.9767702472647741
-49839 -86.0629997391304045 46.5424000000000007
-15553 -78.7756229062499926 39.9850391406249983
-98670 -121.130078345478978 45.8591395870445595
-32391 -84.6876226666666696 30.5902382500000023
-85051 -112.13497381043976 33.5595313594337483
-32219 -81.7726658805798508 30.4139422179015106
-95697 -121.812767500000021 38.7359700282258146
-88055 -108.754181287036928 32.7272987777777828
-52168 -91.9531323048780109 43.2038802682926999
-57328 -98.4383375018573901 43.4347849747287924
-87358 -108.412600499999996 34.8871809999999982
-33711 -82.6888613202855538 27.7480896191669792
-02888 -71.4085859317402338 41.7487464342049748
-69155 -101.373683504500889 41.1486147101557549
-64864 -94.4424645333333501 36.9954344666666657
-08722 -74.1955593626290977 39.9314755032478885
-11934 -72.7800510799145428 40.8048564320513023
-35739 -86.8108837215190619 34.9715522667271088
-56170 -96.150598906595917 44.1724829198759608
-61054 -89.4422133642978849 42.0508458715723705
-85140 -111.542636883357901 33.2345120973054335
-13751 -74.8871271966102654 42.4567019084745425
-97389 -123.10265479901534 44.5360175443151007
-31307 -81.3966890529876679 32.1750221352875059
-39832 -85.031384333333321 31.1929450000000017
-72520 -91.7214195037460911 36.3961696275419939
-49436 -86.476991113202871 43.6782754788551557
-54113 -88.3063915048378618 44.2632512424586935
-06511 -72.9301257393826461 41.3186399135350086
-21644 -75.8714290586318754 39.1101796807817621
-68924 -99.1226347534303045 40.4977475340909692
-80124 -104.895220820381724 39.5390440953424402
-31645 -83.2122586950469554 31.0600395058205194
-49002 -85.5633565201758017 42.2000958848371681
-67354 -95.4085267088123317 37.2174038754788512
-59211 -104.387285051282149 48.7047273812709491
-00723 -66.0492781296295561 17.9908606560846707
-80543 -104.855739655733203 40.3354357775242534
-74321 -95.0258996666666604 36.5221646666666686
-45307 -83.7234927295597515 39.5798824905660567
-22401 -77.4801712306183674 38.2973280309125954
-87525 -105.514302906934304 36.5663742208029348
-42134 -86.5622897903501922 36.7247275196458816
-47371 -84.9638854584228653 40.4139400363619075
-65446 -91.2741371925796159 37.843674551236667
-03101 -71.464559223961956 42.9895107113683252
-97020 -122.838352283636254 45.2220789563636245
-12106 -73.7054110193579675 42.3858980949008028
-44065 -81.2373871038446396 41.4656005402298575
-26651 -80.8504912516427083 38.293755903683639
-55910 -91.9555963251129356 44.1226204188954938
-00709 -67.1239236497695799 18.1797570414746374
-34740 -81.6561377142857197 28.5470064999999984
-13495 -75.2761483038922137 43.1116098428143957
-83702 -116.199415491281584 43.6400133958533161
-52235 -91.5340347898734592 41.5554875721519039
-45404 -84.1619137306580001 39.7877573050355622
-89048 -116.00551797535023 36.1793908438376022
-27704 -78.8617640512127167 36.0373250015518494
-19730 -75.6571637567568018 39.4578244324324388
-21902 -76.0726207321428518 39.5533108571428542
-68050 -96.8245681009314865 41.315083370341668
-74527 -96.4219130000000035 34.6025584999999936
-82083 -105.944556066046545 41.7653081395349233
-29927 -81.0460782852647128 32.255490669728367
-49232 -84.6543455983416635 41.7323435601989132
-13410 -74.6028715714285795 42.9330479642857341
-75441 -95.6556648701298826 33.4335778051948083
-31064 -83.7280605824250728 33.3380522666667147
-56756 -95.5170047145382597 48.8461728201501444
-95367 -120.94332160404123 37.7292535042096517
-95554 -123.801023443701197 40.2737094328317156
-12042 -73.9102193932267255 42.3928339021636518
-30504 -83.8839181568696404 34.2687423226321286
-94931 -122.710229116530257 38.3256102111131227
-08234 -74.6110763441963769 39.3872520028311399
-20910 -77.03366152725593 39.0018374119185864
-60456 -87.7319838581688316 41.7311755816875944
-97882 -119.317682277869849 45.9127038805821144
-68719 -98.5789513457143443 42.9865277428571346
-51243 -95.903665136640484 43.4456525748477986
-66092 -95.0948894323384906 38.6937158737247273
-29422 -89.1090997142857049 31.965176428571425
-45337 -84.421803852482995 39.9848282434273798
-48827 -84.6613210332569963 42.5063206930285205
-59531 -110.783392092979128 48.6436172998102165
-56432 -93.5486781337579743 46.3490944076432925
-95511 -123.615440735254296 40.1656164613559525
-15380 -80.4675483626428445 39.8734230094386319
-16993 -75.5041586333333328 38.7509652666666682
-36523 -88.1693776716480642 30.3880834790369363
-92027 -117.030662992441307 33.1383479589000203
-93720 -119.758254114581035 36.8619932776156034
-62517 -89.3928367689530035 39.6029347689530695
-59737 -113.469415904761917 45.404328904761897
-56361 -95.3644536784558312 46.1316942933425054
-65064 -92.481245765531952 38.4031129974468541
-71037 -93.5465780977867354 32.5527356497396525
-30097 -84.145250067858413 34.0275127084731039
-02721 -71.1543479935932908 41.6834282790653674
-48602 -83.9735499431429417 43.4237388841028249
-88100 -103.264792499999999 34.9084344999999985
-15463 -79.8882751456953741 39.9693316688741547
-54445 -91.5702630000000113 46.2863992500000094
-57052 -97.6926032617586344 43.2714810552146787
-21733 -77.7569209761676206 39.5466742697807945
-90007 -118.284428886456269 34.0281188530612084
-82937 -110.299941064478247 41.3331899361078925
-25614 -82.0248542321428573 37.8400756339285564
-25618 -81.8936563333333396 38.5413837999999984
-37341 -85.0903036326298405 35.1848861494106373
-50149 -94.0668372506667652 41.1447108657778102
-13745 -75.8717410000000143 42.1738676666666592
-87022 -106.729781530785615 34.885628061571154
-18851 -76.1794470935903547 41.9270243953488659
-62458 -88.8494744647618262 39.0256719155556056
-81411 -108.91255943063058 38.3120598378378645
-12787 -74.8323105409357368 41.8014074122807031
-15106 -80.0973016046916371 40.4051729424632668
-18201 -75.9741427649728536 40.9563472142279537
-84096 -112.028948211028876 40.5018781724813905
-64477 -94.4577929649678367 39.561563785739601
-78376 -98.4678380486202229 27.3982900367937141
-24089 -79.96339512835074 36.708930491594657
-20151 -77.4326870777293124 38.8847545369399867
-55917 -93.0603407786834254 43.8728798457681251
-94022 -122.13505492140969 37.3759957325965573
-39859 -84.8045899569721797 31.0112308119521707
-36040 -86.6629504071763535 32.1874984543681393
-95462 -123.017013864432528 38.4725995872583155
-98333 -122.628667326140189 47.2489081953017802
-37304 -85.1414976000000081 35.3475396000000046
-32833 -81.0908379488190434 28.5094530640520105
-16646 -78.7146857108896398 40.677229016515426
-06051 -72.7702874962843254 41.6655451136774531
-87647 -108.316918000000001 36.7478454444444438
-78017 -99.2369575718621917 28.6988528931464302
-85353 -112.270594113641948 33.4215715756783993
-25090 -81.2141998837209655 38.1556955348837192
-99037 -117.199057199060661 47.6371834682572128
-01906 -71.0138659240619745 42.4652566828206233
-14487 -77.6550234393859427 42.8101668878771733
-97347 -123.630475001674085 45.0710314074321445
-50008 -93.3804038965786276 40.6933917410575816
-75112 -96.5836073333333189 32.1597216666666625
-04734 -67.8679556687937549 46.4861015909381265
-65109 -92.2602266067141414 38.5689543393287835
-94933 -122.691720146464732 38.0164746805555467
-61814 -87.5848694108937167 40.2328997895294123
-28775 -83.3161895763453657 35.021912148812504
-06102 -72.6675459285714282 41.7936979285714258
-72314 -90.6530740000000037 35.3611905000000064
-48912 -84.5230585423379495 42.7382347886492653
-37096 -87.875851268531548 35.6074585640973353
-77006 -95.3901152821006093 29.7423752653804812
-13783 -75.2553411368733691 41.964751843756126
-75548 -95.7652771818181918 33.3415729090908997
-78705 -97.7393098090196872 30.2937081050980268
-73739 -98.1429146783919748 36.5294267386934735
-44110 -81.572258613585177 41.5639915377677767
-22625 -78.31041079147424 39.3543453366415008
-53149 -88.3276329616439853 42.8632568356165251
-91723 -117.886604284203329 34.0850509619182418
-54427 -89.2706061885427147 44.8142597675195091
-63118 -90.2282307275500415 38.5940100498552141
-87580 -105.59411512899905 36.5486315005160094
-66210 -94.70412544267991 38.9226260402980699
-38641 -90.1600085897386094 34.8937041139719781
-24562 -78.6261398440858841 37.7073111189515728
-37846 -84.4624745224464135 35.6733784590573677
-57031 -97.16170312163338 42.876831539530798
-61275 -90.3159628160149168 41.5935148293957369
-67226 -97.2371524358455588 37.7484027484485409
-99148 -117.606534830510839 48.0913570778604154
-62960 -88.7146550130900948 37.2080692088107199
-32127 -80.9866256841670946 29.1094008031463218
-83323 -113.544224144278658 42.5290132201492312
-57718 -103.331114158764223 44.1699830387123313
-37604 -82.3861455118893531 36.3128456629998766
-72024 -91.7426349937883003 34.7768399627271663
-38936 -90.4290612727272816 34.0291584545454526
-12734 -74.750426960629909 41.741888746214336
-16601 -78.3906760562121008 40.5293898533274231
-46064 -85.7557366908449694 39.9875389615763055
-41240 -82.7946947721987812 37.8201907121198033
-70563 -91.7787683075643628 30.0209248110780855
-65690 -91.4342606000000018 36.5988722000000024
-17739 -77.4351406876543535 41.3826243753086302
-98537 -123.657620884397474 46.8705074159573911
-29134 -80.4056961666666581 33.8809529999999981
-57339 -99.4416988843095737 44.0815618669558873
-19464 -75.6237335304588214 40.257549622793789
-81057 -102.869126768055537 38.1259207569444527
-60169 -88.1032953138833932 42.0484490345070157
-65462 -91.8711141229611172 37.6888517813676103
-47978 -87.1318551677279061 40.9684889727193422
-59462 -109.882929981210864 47.1010930647182064
-53542 -89.1603144999999842 42.6385718749999967
-47060 -84.8747525762850472 39.2871774133547262
-48154 -83.3777999280308393 42.3970222666719394
-01258 -73.44655967461145 42.1263065761658169
-29483 -80.2140472412570205 33.0234469350941566
-79884 -104.010221799999997 30.3162526000000021
-21231 -76.5924798770587216 39.2887451198774755
-68923 -99.4752263098591811 40.3685144084507002
-87777 -105.553213 35.4713640000000012
-62203 -90.0749898581304507 38.5987660144831821
-50601 -93.0652446643827034 42.554219391907381
-03811 -71.1589516562407454 42.8378646863157115
-55811 -92.1787582352375381 46.8145120048568302
-68855 -99.33230285568753 41.1877126808149256
-45382 -84.6053237927712303 39.908029610441794
-57481 -98.6461513025718233 45.6768484828543535
-56386 -93.5375904219210952 46.11095818385391
-66537 -95.721426104366472 38.7608394302448929
-70127 -89.9778739311938409 30.0316447741308252
-52758 -90.4440061037036998 41.7455247037036727
-20155 -77.6165457717347493 38.8029485849523539
-32693 -82.8156983419077761 29.6126117806600035
-39368 -89.4710352499999999 31.9370384999999999
-33031 -80.4940161896613091 25.5253628388591416
-04979 -69.8162030953946839 44.9456235580143257
-44243 -81.3403125999999759 41.1485070263158121
-43156 -82.7776814061433583 39.5552576552900774
-58540 -101.594080786528096 47.6539861529071089
-50249 -93.9092364546862655 42.2831190919154878
-59762 -113.147393309639057 45.8377924229753546
-80477 -106.797965774193614 40.3716133369175481
-46985 -86.5685601776514204 40.9551849029359403
-29733 -81.0315084666666792 34.9395017777777781
-05470 -72.6197226153846174 44.8978428076922995
-65231 -91.9025315550040744 39.0150160969427304
-28669 -80.9944323260185826 36.2301051609196278
-25193 -81.5613496854839184 38.0138447903225796
-35451 -86.176052999999996 34.2633900000000011
-32905 -80.6064477361377527 28.0278278534599004
-48062 -82.7755741163103664 42.8297171008926583
-19113 -75.2783132982456209 39.8683078771929758
-08721 -74.1618379447495784 39.9031749774147215
-77515 -95.4558816224918161 29.1693328498456204
-31091 -83.7147908553540248 32.2414697163212409
-67152 -97.3984836776387795 37.2694281312634033
-65233 -92.7331234974266465 38.9334864163303891
-03836 -71.0773659520294387 43.81477973408672
-23663 -76.3155538729452303 37.0344115480635665
-98355 -122.176445590043201 46.7297618512598945
-76201 -97.1421112588115392 33.2205224543033353
-36421 -86.4626428756337049 31.3447497809752242
-61491 -89.7402495632911297 41.0685859696202584
-37691 -81.757102056441866 36.3683837735176283
-43554 -84.5569247795993704 41.6661640910746272
-58999 -96.9054516666666785 46.8516983333333314
-85191 -111.449163614379103 32.9851070000000064
-17845 -77.1960881385483191 40.8830098338710073
-87206 -107.026324736842099 35.064248736842103
-44046 -81.0763697170542343 41.5366883372093127
-04235 -70.1993057307692396 44.3530275769230755
-91390 -118.405951986129338 34.5033360276711889
-08071 -75.129851668645216 39.7305749046787753
-16923 -77.8689197945066525 41.9406042942999733
-72528 -92.1130967647058867 36.2543384705882374
-96785 -155.254012969696987 19.4371773030302997
-67676 -99.387927833333336 39.1313795000000013
-76511 -97.42530367899559 30.8025543417927459
-19938 -75.6800019143994831 39.2611306070006876
-04418 -68.5498812857782696 45.0617911725831348
-77642 -93.9287020771098184 29.9232983906649821
-44714 -81.3604052136070948 40.8343254654685524
-73937 -102.79056281818184 36.5815463181818217
-35760 -86.3845876524749343 34.5471912396664962
-25069 -81.4438192000000072 38.2166530000000009
-29148 -80.3298291595785514 33.5609889767709717
-57476 -98.5733559853555619 44.7386428188283674
-83402 -112.089551999551958 43.4998010839946261
-10166 -73.9761364999999955 40.7544074999999992
-78872 -99.8474254168067006 28.9473890252100894
-57456 -98.9745597826665886 45.735585713490444
-53578 -89.7338733379685465 43.2922216505441284
-93930 -121.117032880891031 36.1976835169057765
-16937 -77.7107557132353293 41.9623297990195638
-21207 -76.721230896548775 39.3258004220929323
-84531 -109.865167477611934 37.1446212089552219
-79380 -102.327500371323524 33.7417428051470552
-66438 -96.4948866321394263 39.8539212846079209
-13685 -76.1034925462574705 43.9413576345885488
-40456 -84.3240752616057563 37.3739915876113855
-49518 -85.7315550000000144 42.8655417000000014
-41635 -82.6329806087842655 37.4942702231530447
-23457 -76.0386847518698801 36.6198111085331348
-98626 -122.861132537206203 46.13657587659592
-77957 -96.6776976660845264 28.9951438476646643
-31796 -83.8802596114430941 31.7926856491268381
-24983 -80.5319195826963465 37.5829474128773384
-59248 -106.354463894308964 48.1377365776637589
-45219 -84.5127869033596255 39.127054796764817
-32823 -81.2840664999999944 28.4876070000000006
-38704 -91.0018811999999997 33.0071671999999978
-02746 -70.9360771677174426 41.6599456633039011
-95576 -158.499639166666697 59.0428996666666706
-15025 -79.9207006486711151 40.2980946952580865
-83256 -112.278154200000003 43.229804333333341
-43615 -83.6711446256441178 41.653038574413408
-32443 -85.1137307762494117 30.8654561505377814
-21345 -75.7116443333333393 38.2927309999999963
-43762 -81.7425246162528367 40.0269746563275746
-33402 -80.056879500000008 26.7376564999999999
-04547 -69.3316135102782169 43.9927763897622341
-05343 -72.7992205767421297 43.0989015566022289
-70780 -91.1674527698112911 30.2946802169811313
-62009 -89.8020736377035576 39.0929001272304149
-54724 -91.4782818450280644 45.1090483530918362
-71071 -93.437721746044204 32.9226595966278452
-18702 -75.8400637817036056 41.2373660278467398
-19518 -75.7364650852651948 40.2778185327044014
-60071 -88.2993418217255055 42.4634308549896744
-01226 -73.1445219289651192 42.4706197448459335
-25603 -81.4589519642856885 38.134225464285727
-64025 -95.0656370000000095 38.9402187499999997
-56631 -93.8027092142857271 47.5481172142857105
-97756 -121.213015758889242 44.2788589955369574
-73760 -98.1780475548780629 36.3863355609756027
-65746 -92.7851414973402342 37.1565782859572948
-72017 -91.4038124650889046 34.8601634355029688
-62284 -89.3171500821717359 38.8822058327219864
-27817 -77.0747776722917877 35.4754214427732038
-77564 -94.6639712554244426 30.1959185668062666
-95073 -121.95102596282797 37.016244202281392
-38112 -89.9738575168845642 35.1478544943153395
-05653 -72.4973253273965952 44.7087331739295379
-59070 -109.171784265553356 45.3660199707092815
-44704 -81.3558484476026536 40.7994377832327331
-95525 -123.881482288570282 40.9208472719093805
-82524 -108.488181072727286 42.9952734545454547
-48045 -82.8316708957626417 42.5846753569210748
-80814 -105.184105885949037 38.9415602557994589
-13441 -75.4114854108527055 43.2179822041343442
-19173 -75.5630416666666633 39.866505999999994
-38645 -90.4862510401661808 34.2414578102493081
-33693 -88.131260999999995 30.6390154999999993
-27320 -79.6716971189768941 36.3447823717807736
-22084 -78.1159432000000038 37.9251661999999996
-01005 -72.1139717230144157 42.416355380521729
-43773 -81.2931757163013486 39.9851539023252442
-47988 -87.147348666666673 39.9865103333333352
-77036 -95.5361287375885411 29.7011452344857396
-30165 -85.2397008691498712 34.2908352095930269
-79556 -100.387237247262519 32.4556318971510152
-50062 -93.2507900009378972 41.2313096128048713
-04434 -69.1316094949289237 44.7886946653143738
-93702 -119.754052935994295 36.7420486567077376
-19545 -75.6296156338027998 40.3416678028169002
-95970 -122.028947244080172 39.4213017795992755
-06183 -72.6729086666666717 41.7640346666666673
-87517 -105.796071838283822 36.3625862838284277
-28451 -78.0624966023058136 34.2382958795811234
-27055 -80.6415602059286272 36.1176526595020277
-66078 -95.2659944032260313 38.483534991756386
-37794 -87.7072126249999968 33.9031713749999994
-07849 -74.6154955272698288 40.96270566726011
-21703 -77.4565206145797305 39.3870335014957291
-29472 -80.3283606377393653 33.063158387762634
-23066 -76.2845721072492751 37.5021298838133177
-95450 -123.213766891255176 38.5115864091595625
-28330 -79.8237436684782296 34.9134243695652202
-51448 -95.304829905660327 42.1995933459119215
-62952 -89.3080332595773143 37.4193750830043399
-50515 -94.8626844837364445 43.0214589499582161
-76886 -100.223869363636382 31.4918154090909148
-50031 -94.1424281666666616 42.037592277777776
-15054 -80.4059070525292015 40.3637609747081925
-46982 -85.9081392015276464 41.0554307787014565
-95720 -120.242684126044153 38.7817267479118684
-66222 -89.8477320000000077 38.4895092499999976
-52134 -92.3958267620416933 43.4756721624730673
-18977 -74.8840800462806016 40.2912203789676155
-10528 -73.720340099724126 40.9769301082434936
-56240 -96.4544619749129026 45.5572139804878944
-47907 -86.9161596893204376 40.4246342621359034
-92161 -117.175263428571412 32.9654998571428592
-27539 -78.7782812674669515 35.6779895059499168
-02457 -71.2752328421052397 42.2984496842105315
-17870 -76.878176180694922 40.8188022541750186
-03815 -71.1040287800000073 43.2377405199999956
-88203 -104.530880111307553 33.3582032461701203
-37708 -83.3314562241434658 36.3196708549279066
-08317 -74.8321885333333654 39.405205384999995
-66701 -94.7257437095327646 37.8290100308531194
-19490 -75.3498844166666828 40.1883632500000019
-65897 -93.2762269000000117 37.1992554999999996
-49663 -85.4092266483226155 44.4141505292628906
-87566 -106.063668839643682 36.0757276867112395
-38746 -90.9186921589506767 33.9437319074074324
-90638 -118.008012969613318 33.9053656285496245
-62965 -88.517337725806442 37.7656469516129079
-01542 -71.9087285983707574 42.2048541810776356
-70112 -90.0764489616566522 29.957715467024574
-25524 -82.1299237392032495 38.0109905011717331
-27812 -77.3694262816286198 35.7995062768619192
-24592 -78.9488982319492436 36.6855238942037403
-57044 -97.1140962083333079 42.8425579583333374
-43782 -82.2177612539228733 39.6221076462198027
-10309 -74.2153174584607029 40.5317083331874741
-33707 -82.7183343637710493 27.7561485043657861
-47944 -87.326508976449432 40.6072733713571594
-23350 -75.8777878751815393 37.5169219185048348
-03254 -71.3847355880032239 43.7067830541963929
-42408 -87.6888061510659611 37.1903921169036806
-31642 -82.8693331297531159 31.3179110535231615
-65048 -92.025858536340678 38.3477990726817737
-99754 -157.702237812499988 64.8833155625000018
-18128 -75.9100820000000027 40.8221851666666637
-68346 -96.0361524856187714 40.6621303070233893
-84766 -112.302337406015127 38.5816793859649181
-04949 -69.3322248132544701 44.3749933042663756
-57566 -101.062582134502875 43.3055370175438554
-30905 -82.1248579031705503 33.4128561465295704
-63011 -90.5589250639375933 38.6036121277552979
-83124 -110.298428961805598 41.7739616458333174
-04475 -68.5995066117380787 45.1720490699774757
-65666 -92.3574372095238516 36.5796759428571292
-56022 -94.8323721813471252 44.051845341968928
-21704 -77.361796639170251 39.3536043696504407
-71409 -92.6788406993157849 31.3011018895290327
-01985 -70.9749064832978576 42.7946601656003978
-47339 -85.0994683330508224 39.9705223288135514
-17099 -77.5763876733067832 40.6445252709163825
-19373 -75.5345421368665484 39.9047556599077495
-04343 -69.892597181818175 44.3212465454545566
-99821 -134.704479249999991 58.4214426499999959
-75025 -96.743090824698811 33.089443545152001
-46903 -86.1291520000000048 40.4909290000000013
-05261 -73.2168984426269844 42.7831869072353612
-50312 -93.6763099136022959 41.5845771585832509
-88342 -106.090731406666649 32.3784552466666824
-90061 -118.273960321553545 33.9200464576626572
-54405 -90.2923168765356223 44.9569512745699882
-49883 -86.0872140785288167 46.418333202783316
-18930 -75.2133169733059788 40.5361707200546419
-98047 -122.248043540263637 47.2639775395314814
-58642 -102.834460220385651 47.2060136143250517
-24944 -79.8171822413792427 38.4106047984084853
-50560 -94.1100288984245879 42.9638192980929148
-28455 -78.6457928491315101 34.109881730068949
-85373 -112.287367002813241 33.6593577433735476
-15026 -80.3654438714421673 40.5065819249278434
-57462 -98.7012679999999989 45.3646740000000008
-56117 -95.68409599460918 43.531058175202169
-51250 -96.1940015672194733 43.078784489068255
-95969 -121.606108726610643 39.7563841672251002
-96249 -120.470900478260873 38.170967304347819
-18623 -76.1443019378483825 41.6727177677290399
-12921 -73.4279668881117971 44.8839130778554676
-23395 -75.4560660679903776 37.9615176594464643
-41560 -82.5642999922879426 37.3931920912596283
-02203 -71.0602169999999944 42.3615084999999993
-48179 -83.2665558769530634 42.0532483450521042
-94952 -122.690328887371109 38.2442648270732803
-62357 -90.8524421506024709 39.6956494939759281
-42712 -86.1613930701074366 37.5626877227709102
-34615 -82.7980069999999984 27.9700710000000008
-23068 -76.3371249804877863 37.4943760975609877
-71676 -91.5894476891294289 33.0549212661090905
-33767 -82.824638988895515 27.9815484839275612
-56723 -96.8201669867549697 47.8054418498895757
-13673 -75.7134231660060948 44.1675194345888116
-93218 -119.040166152019097 35.894800554631793
-55793 -93.2735386411201972 47.1259865549005355
-70467 -89.8209319999999991 30.9015395000000019
-43549 -84.5187574786749991 41.3788345211082316
-33867 -81.1906758511236148 27.7680707359550496
-68105 -95.964144867249928 41.2410628354887976
-32056 -82.6522955882352761 30.1686547647058738
-05031 -72.6118425581896787 43.7216984741379164
-17246 -77.6787941891891478 40.0603192094594647
-91080 -118.124905499999997 34.108035000000001
-77478 -95.6094606559112208 29.617685250529437
-09021 -122.449501695652174 40.0073155652173895
-72679 -92.7875048460177112 35.7238074353982427
-26217 -80.449240064516033 38.5829891673387166
-96116 -120.486288595679028 41.2454738719135392
-87561 -105.431142250000022 35.3250732499999955
-57611 -87.0652905000000032 37.9886049999999997
-08240 -74.5538291249999929 39.4945721785714383
-25624 -82.0149532724458084 37.8122325634674823
-83651 -116.599817852016173 43.5865305438189949
-60534 -87.8227006033613549 41.8125011085713965
-64501 -94.8430314798408034 39.7674112422433268
-44201 -81.1942976447754887 41.0234614722603013
-50506 -103.995715777777775 39.0967151111111093
-35766 -86.2517590906040823 34.8745490713087349
-21664 -75.9476152707774617 38.6070507855227945
-21625 -76.0007426558739354 38.8712616744986619
-92314 -116.909498677837874 34.2585071045084888
-82801 -106.964874036118772 44.7811884112307652
-53595 -90.1417976153845899 42.9783876153846194
-68106 -96.0004732500879356 41.24049090632694
-48411 -83.5349595789473796 42.9368197105263221
-44022 -81.3959229532699595 41.4439986236848981
-67563 -99.5780747988463872 37.8364427267483521
-72034 -92.4726265742823728 35.069750429318745
-40526 -84.5010248749999988 38.0291518750000037
-56260 -95.4771761994950481 44.924402470779242
-56434 -94.9378345161765367 46.3545497544117708
-79013 -102.000578861167014 36.048075861167014
-46574 -86.4915832455695295 41.4708552653580114
-17585 -76.3444980769230881 39.8797806153846111
-39163 -89.8690678141592088 32.6198331681416107
-71728 -93.1023692045454823 34.0017696136363696
-30740 -85.0568149917942975 34.765566527269236
-11596 -73.6419662664893195 40.759877297872265
-72763 -93.8500936363636384 36.3776778863636494
-68529 -96.7825603749999885 40.8799466249999952
-44039 -82.016018863878017 41.3897840544078903
-33503 -82.2712099148936034 27.7625038936170299
-32087 -82.2700350323777343 30.3639696752577848
-78333 -98.0823200000000099 27.6646722499999989
-04454 -67.530441512690345 45.545503040609141
-39461 -88.7370002213833828 31.1923338924528473
-39766 -88.3151720139780423 33.5885871605512989
-48650 -83.9879633662641112 43.8507062929250822
-43212 -83.0449127111808707 39.9878255101948383
-51442 -95.3619902191930606 42.0299761082802377
-90834 -118.199271500000009 33.7676255000000012
-73753 -97.8698329098360347 36.5458344036885308
-30619 -83.2343564846305526 33.8731948940484671
-22207 -77.1250951087042722 38.9057107805694926
-56371 -94.6373374959999438 45.4326015200000128
-06231 -72.3640897167123001 41.6292331104223479
-98441 -117.960690999999997 45.4641799999999989
-13401 -75.7099128437500184 43.2670335000000037
-20748 -76.9386975324682965 38.8159842066355623
-02839 -71.645361989532006 41.9459407549260774
-63441 -91.3088215959058829 39.4720368356702522
-30738 -85.478614512549413 34.7989208302591422
-78219 -98.3970837471120348 29.4506329260260955
-16059 -79.9351561710329435 40.7000954319337396
-83814 -116.795982398765815 47.6410791276192853
-70360 -90.7554436888507183 29.5931794713369563
-53783 -89.2851959999999991 43.1609673749999985
-72756 -94.0277002208570991 36.3345544590420459
-03743 -72.3348847690598262 43.3661308983732141
-62890 -88.7493509312280366 37.890489700631548
-49424 -86.1358670700862348 42.8204842208987912
-86505 -109.679320563218283 35.6356029770114944
-65710 -93.4226292292788116 37.4838710575887575
-80234 -105.00843613018003 39.9085414601478377
-04786 -68.1486712375526764 46.784359986919732
-82225 -104.412240395621637 42.8322700745558862
-23932 -78.6884569999999997 38.0686643333333379
-49455 -86.3870938618239848 43.6043774656533927
-08201 -74.5071782674782099 39.4391331222756492
-41564 -82.3628491283688078 37.6031707641842985
-21771 -77.1538282182500268 39.3868675810286746
-72173 -92.2108870855212928 35.0890647751652551
-72769 -94.4992782647835412 36.0319210153219913
-08020 -75.2238370144509219 39.7951938907514844
-15531 -79.0483951883367268 40.1800630742338782
-15628 -79.3777409311334736 40.1059393758967104
-39205 -90.1838013636363627 32.2907177272727282
-69163 -100.591162942717787 41.5059664351687942
-28054 -81.1521844123133036 35.2578397509234733
-84716 -111.428394133945091 37.9001791871559988
-66946 -96.9876590575079831 39.9687576453674041
-32254 -81.7285681757014828 30.337459253745628
-05358 -72.7407883255519891 42.7737488039048372
-67941 -98.435561000000007 39.8254890000000046
-39094 -89.6718531292649459 32.5711253716111315
-15361 -80.2573713120567334 40.3283692836879126
-36603 -88.0545052697016501 30.6894248075079759
-29065 -81.2832836481209 34.2976687096145412
-78404 -97.4001931540512516 27.768750337612623
-59760 -111.658412442952994 45.7905169932885983
-33857 -81.1891192922172849 27.3946539500734296
-67140 -97.3764393494950298 37.0664808565655974
-55303 -93.4189844873208699 45.2645590798238118
-44651 -80.9495630677807867 40.6199155427207828
-03832 -71.0501151874503307 43.9011259086576615
-43468 -83.3400689462365705 41.6029123655913935
-57311 -97.7709666977174692 43.6557451492906168
-07717 -74.0175436443940526 40.1915358878822175
-22308 -77.060071138315692 38.730193286264992
-18933 -75.0442329072580492 40.4003787197580593
-12566 -74.3328082314790777 41.6228134005217854
-19435 -75.5545477536945782 40.3253924827586232
-39743 -88.6201543767804623 33.3191587928356725
-15227 -79.9732783529044298 40.3762067195233172
-84033 -111.49897661526478 41.0182554382139557
-20185 -77.8135766500000017 38.9769555000000025
-63648 -90.6792616024798122 37.8275724442013654
-42220 -87.1795849066783859 36.8938524200685549
-63937 -90.7541437758126079 36.9343837528680368
-82631 -105.259654999999981 43.1535489999999982
-60196 -88.0994721818182001 42.0680677954545601
-92374 -117.159034284705868 34.0648100747480669
-45378 -84.4873375924170205 39.9038505023696501
-57975 -94.3413343571428555 31.9527210000000004
-91325 -118.518049157149434 34.2365921651437972
-43609 -83.5772547978696849 41.6307924042608377
-63561 -92.5734980172154565 40.4150858772455308
-52631 -91.6743670949556275 40.8031344925816057
-47833 -86.9709196660049884 39.3631692189436322
-23117 -77.8671991830883314 37.9956935310273067
-57475 -99.6355312248802676 45.2445744258373281
-25430 -77.9391876411638265 39.3474611101096414
-64861 -94.1536167784911839 36.6964622410914458
-20707 -76.8767723948120647 39.0986893810137417
-32937 -80.5983941012796663 28.1707939605429445
-15376 -80.4895407131433842 40.0975011168759039
-72521 -91.5303552040566899 35.9277628549202532
-45176 -84.0267859202554348 39.0782224938868126
-35654 -87.6428716934010907 34.5065572730118646
-30170 -85.1725792519297755 33.4287604680702302
-70458 -89.7768460715643641 30.2703993306613484
-14111 -78.9081316207885095 42.5859206028674464
-33133 -80.243754675431461 25.7307810325170934
-89449 -119.907828558766624 38.975350358381526
-21774 -77.2883912467716101 39.4091154322010055
-92616 -117.834964000000014 33.6479916666666625
-46372 -87.3131075862068826 41.1437829310344867
-85491 -110.023882720000003 33.7865629599999977
-85376 -114.214551666666651 33.6755133333333347
-07039 -74.3196008600128124 40.789767461889447
-28544 -77.3212085952861798 34.7260044973063273
-58029 -97.3850743548765792 47.1225431938894843
-11768 -73.3260635971908954 40.9064483453996388
-67213 -97.3620863273638548 37.6681152651047029
-18940 -74.9418918520900661 40.2558509438727867
-30017 -83.96384199233907 33.890503710010087
-68133 -96.00208992936264 41.1362127915379432
-77870 -96.4268512941176539 31.077287882352941
-32148 -81.8816436064923749 29.6335235054535104
-02359 -70.8027839580495879 42.0650772713621777
-37657 -82.5606036703388497 36.0108736977759349
-49628 -86.2284659465020695 44.6188902880658347
-59441 -109.043278480359902 46.8884793091455236
-57077 -96.7614465115755564 43.3137901970637174
-64086 -94.3170899601725807 38.924717829910314
-75425 -95.5831924444444496 33.8643402222222178
-70570 -92.0989874329249432 30.5307490936792263
-97266 -122.559655052753044 45.4818423030420078
-79742 -102.853033280777581 31.3396991382289301
-21773 -77.5544779415942571 39.5332669161404411
-63939 -90.7072951714285978 36.669516238095234
-47989 -87.05344142896638 39.8859676147042421
-42519 -84.5514409788274861 36.9483114736989222
-93530 -117.863445689075604 36.4811228235294109
-62628 -90.4035316780684042 39.7738248705566662
-26667 -80.9913401836734721 38.2784912653061156
-00671 -65.8671061111110987 18.1849858333333394
-27701 -78.8973915565825905 35.9982067286774736
-43914 -80.9412100752688417 39.7703260107527043
-76021 -97.1328699309790977 32.8529440796477914
-42265 -86.99514081266733 36.7365192901427946
-21619 -76.2834565621220264 38.955341070996603
-11231 -74.002699422599477 40.6788949986936146
-90804 -118.149307654219157 33.7829306028725114
-29856 -81.5148807544868674 33.4870020859021551
-33537 -82.1494143877551153 28.4765003367346985
-60458 -87.8344196536413335 41.7474738401420282
-88062 -108.281570664233541 32.8210385821167563
-16239 -79.1292469878843576 41.4669463353525245
-92317 -117.210637935709073 34.257862553451254
-51450 -95.0317800137970607 42.3056530059988418
-50470 -93.5554437334422175 42.742009656582141
-44839 -82.5577399840964858 41.3863391663440225
-60082 -87.7977374999999967 42.0915150000000011
-45833 -84.3415365291837986 40.8386807503443094
-01747 -71.5325517980769945 42.1230470337995158
-94503 -122.25110991267988 38.1733731031119277
-93647 -119.23205622767621 36.5607949528285161
-95553 -123.85270124606177 40.2300787054189684
-60962 -88.1795226942508066 40.6242525749129513
-28412 -77.9111304447591522 34.1381292182374594
-70038 -89.3965581743420756 29.3241176085526405
-39033 -90.6099142000000057 32.3247056000000015
-44089 -82.3683862979333412 41.4015789181399043
-49011 -85.2281839150685556 42.101733819178051
-63620 -90.6084335022300849 37.3896980156111525
-50551 -94.7529403623187818 42.4836438786231909
-93227 -119.427620033333326 36.2692175333333395
-21084 -76.4662964820422246 39.6135638179578393
-63933 -90.0899750263938017 36.5192797495875965
-56262 -95.8659965413021382 45.113039706997057
-49336 -85.4385234621369989 43.5017750282675948
-15344 -80.0569419854166568 39.9238066640625036
-53939 -89.1300416335403725 43.6919988695652108
-02564 -69.9772413050168609 41.2609838040132999
-13643 -75.7206006153846118 44.0318876666666625
-70011 -90.1643564999999967 29.9933240000000012
-22027 -77.2217088953487831 38.8947021127906964
-34105 -81.7645883430099616 26.1936585478812383
-45055 -84.5156722666666553 39.4518231333333418
-45612 -83.2670885648000763 39.2191151874503774
-44345 -82.8313224999999989 41.6382195000000053
-08873 -74.5167882516404205 40.5043267471251767
-82635 -106.245107457516269 43.4107853039215712
-28468 -78.5159501667041866 33.8996468237564699
-08505 -74.7232778613784916 40.1242380933966274
-48225 -82.9261556603773897 42.4393486231654862
-52729 -90.7400710488599032 41.8002575141151951
-24726 -81.3457676636418512 37.5188106594071229
-33805 -81.9481766261255444 28.0801188137591602
-45115 -83.7016285342465665 38.8195874657534148
-68637 -98.6691025613540234 41.7789360592383971
-32976 -80.5153035559138885 27.876446923835065
-46724 -83.9267004999999955 43.4670650000000052
-68406 -97.3906516815533934 40.4985160699028981
-56138 -96.3694444801015635 43.5290439788315311
-38764 -90.8736576225680892 33.7885215680933868
-54628 -91.0337394137171287 43.3695394222741299
-54417 -89.6535299999999893 45.0275350833333334
-29661 -82.526001786367388 35.0512971846039392
-71448 -92.479987466666671 31.2333953333333376
-76890 -98.7791387011632196 31.6934669129562998
-25136 -81.3294936964736479 38.1795888198993012
-54421 -90.3122882435724819 44.909861526386976
-71852 -93.848603153937816 33.9861806628881524
-95865 -121.400474000000003 38.4667969999999997
-32512 -87.3011570000000034 30.3970720000000014
-18943 -75.0356804772727344 40.3178390568181726
-76018 -97.1039756153734004 32.6606824796831603
-18415 -75.116687879099544 41.7454594203935088
-04359 -69.7606096247085361 44.1794435314685074
-75947 -93.946850166666664 31.4482476666666706
-67878 -101.760193497447077 37.9709954916119727
-90078 -85.2177829999999972 37.8625490000000013
-36541 -88.3316253485071883 30.508169329327405
-38631 -90.6329103432836689 34.3669413507462806
-06010 -72.9331002224089815 41.682584298212852
-52225 -92.3330623818565783 42.0051803987341614
-95067 -121.840084343750007 37.0680648749999975
-34465 -82.4818918216406303 28.9286683788449679
-77063 -95.5210494953733331 29.7347047660278001
-63144 -90.3500359992027171 38.6203479933563756
-52632 -91.4070519075035293 40.4177585333142204
-43985 -81.1280847115384489 40.1607941346153936
-53039 -88.7027199936467809 43.4034401829732914
-13074 -76.5492620698539099 43.3089696414156577
-83432 -107.958273833333337 44.2681031666666698
-62948 -89.0282985898013663 37.8002164608173459
-37884 -84.2305735797101391 35.5652590289855084
-94979 -122.705857199999997 38.0214636000000041
-32736 -81.531712160130752 28.8936735918733838
-59465 -110.745757531081196 46.9683706459459742
-52164 -91.8910483521672177 42.8500494187306273
-01863 -71.3899493925802915 42.6316338928571241
-39325 -88.8682915019994368 32.5443988866284286
-44429 -80.9840987569734665 41.09933377022314
-07111 -74.2322463598736704 40.7248393432020777
-91720 -117.650570829268318 33.8858245365853605
-23112 -77.6532968787717834 37.4260298875176147
-55051 -93.2953674537547357 45.9048914798445935
-62266 -89.6687137051281979 38.4883167948718139
-50129 -94.3798587673019682 42.0151145123665728
-19312 -75.4504895777749596 40.0369736461498462
-49268 -83.9309908761468364 41.8702682779816868
-24184 -79.7715875411733606 37.0843182376219787
-83316 -114.785026803886183 42.6008580754801685
-15324 -80.0550918020133651 40.0996526157717668
-44427 -80.9558667045544524 40.7193500291649428
-62555 -89.2108014666667799 39.4689421016260837
-14720 -79.280988403703688 42.1084545962962622
-13415 -75.2010308641304874 42.5990678478260847
-35542 -87.6828956628873755 33.7235134903453968
-93610 -120.278421536493539 37.0949470590175565
-61282 -90.4140044153108988 41.5000787732057077
-06798 -73.2081071410791679 41.5564135986833563
-62535 -88.9648052980103188 39.924444175844485
-28384 -78.9594278870696797 34.8045722010024861
-23408 -75.870515142857144 37.4364842714285757
-95627 -122.02732801567268 38.7145110821124163
-72462 -90.7554520379310219 36.3622705344827821
-13504 -75.1846820000000093 43.0930244999999985
-30656 -83.7275258819841923 33.8616285157422965
-97730 -121.655410774152784 44.4490460790464255
-03279 -71.8871219195757902 43.9388960578877246
-42266 -87.3583684845259825 36.7740276194675175
-35411 -78.2175311666666744 39.6355690000000038
-66835 -96.2465634545454947 38.5218774872408218
-68534 -101.579421999999994 37.1413474000000008
-95955 -122.263163586870206 39.2782477155172458
-47280 -85.9502607681818063 39.2951079340909359
-84710 -112.509844248603471 37.4466205055865942
-63437 -92.2478638462330451 39.7310140928792208
-07245 -73.2037206666666691 42.1867319999999992
-30757 -85.435582060967505 34.947893770377803
-76680 -96.7926325440180051 31.1865449435665987
-67521 -99.7363991344827241 38.630126689655178
-72001 -92.8784943273246597 35.0638327182163678
-54710 -82.0571608000000055 39.173308200000001
-54471 -89.4579746145833354 44.9184290156250086
-47638 -87.7692285031695718 38.0747654079239766
-92155 -117.160147750000007 32.6776116666666638
-11902 -72.6783754000000073 40.9452975999999964
-97019 -122.249758789053587 45.517153362501837
-33982 -81.941833457231624 26.9616943220698531
-50230 -93.4392249204129968 42.3030528046890737
-67743 -101.213274157205248 39.4120971353711766
-76641 -96.7819420990098394 32.0340144620461302
-19550 -76.242413257731954 40.4567850000000035
-29913 -81.0903204062500151 32.9214150781249941
-84643 -111.706066750356712 39.1141228059914638
-65368 -93.627435333333338 38.5235835000000009
-29564 -79.8697693471366676 33.4928359801762241
-05602 -72.5978933349164635 44.2718740895484544
-38030 -89.5467984973638949 36.0235681234622334
-79703 -102.129411496334953 31.9836419678681736
-38950 -90.2128040959064776 33.7502278853801059
-66019 -95.0020156249999985 38.9431807500000033
-82609 -106.270351193029725 42.8394930774814924
-33436 -80.108190788065798 26.5313892054293134
-68359 -97.288566408409082 40.6445541805034054
-47561 -87.4263573652379904 38.8584156539440073
-50370 -84.4696312500000062 38.3932564166666666
-12438 -74.617158269703566 42.2196768452638693
-48366 -83.1429633023255974 42.8212503720930258
-27045 -80.2924398120759122 36.2341788764714607
-72824 -93.4175456839233078 35.1411367371681962
-71657 -91.7927848999999867 33.6291173999999984
-58722 -101.459902492204705 48.2559329109131525
-73045 -97.1661712348009843 35.491333448054931
-42354 -86.9250469423077448 37.3803805750000038
-88133 -103.47134603645199 34.4772320249088509
-71222 -92.6296184544344214 32.8211857592013843
-90606 -118.066154123487337 33.977025457651493
-24093 -80.8594979566295251 37.3710145390334603
-01938 -70.8530700376637981 42.6833095818729333
-38754 -90.6096790787068898 33.251933133520744
-16579 -79.6110753333333179 40.173250666666668
-55385 -94.5044445497231891 44.7573048425217692
-08853 -74.742345315174191 40.5327732176616351
-99167 -118.11928591271662 48.4146432126253288
-22539 -76.279126809041145 37.8583818315637117
-06022 -72.9311493306559981 41.8465553842034836
-32697 -82.4378109202625637 29.9466600684802913
-02178 -71.1762534166666683 42.3968935833333305
-69029 -100.256634613052015 40.7424696354647153
-17938 -76.5065287568963299 40.656875560554667
-35761 -86.4447693025954749 34.8977409769006215
-15655 -79.1961900836014792 40.2076438220793335
-41615 -82.6819027390000088 37.5434063629999883
-37336 -84.9261763922166608 35.3062233973225332
-90447 -90.1612255263157891 30.3791905263157886
-49696 -85.521916808321464 44.6792263139023333
-22701 -78.011317608687321 38.4616423619558958
-40357 -84.1081866707317118 38.145164939024383
-17270 -77.7977184285714287 39.8501078571428593
-21077 -76.699621938095234 39.1576893238095209
-58496 -99.3184718277523473 47.1725727996416353
-47715 -87.4784999757116708 37.9745617729607403
-58788 -100.476830483870842 48.3571931977725598
-97205 -122.696879396904961 45.5204299390077836
-36866 -85.7168414005421084 32.5555395634987903
-62639 -90.506868124125873 40.0489127727272347
-99124 -118.937558767025067 48.0039909641577083
-03847 -71.1203258382352601 44.071165882352922
-99720 -152.692257185185269 66.5543950679012255
-88422 -103.977578481250049 36.2699073062499764
-57701 -103.215952840908074 44.0812561952546105
-63986 -91.0073747499999968 37.0052725000000038
-87556 -105.587406708386098 36.7371726434892452
-27541 -79.0817523298102003 36.2669534096692843
-57520 -100.138102042234635 44.8371412363003756
-56729 -96.59068890082645 48.6616537603306085
-35673 -87.1346770395724377 34.5717655829064512
-28627 -81.0028727306874288 36.450397285127714
-11581 -73.7135550697040429 40.6515626611899492
-68501 -96.7194959999999924 40.8159755000000004
-66109 -94.8179220237920646 39.1530564176701006
-71653 -91.2907275432867635 33.3362630368671589
-36060 -85.8131556923077028 31.6087049230769281
-37830 -84.2586448423839727 36.0134345433516856
-36530 -87.5590777898716084 30.3929967215922616
-42332 -87.0888617739937843 37.2517819256966121
-46802 -85.1557887811984955 41.0710263174414791
-73572 -98.3014640296183444 34.3682066119478336
-24852 -81.4415427647058721 37.4169312058823493
-58011 -97.5498398677368215 46.937514968654412
-60531 -88.7762662705350607 41.6124668402656042
-70761 -91.0222667809033084 30.9734944405705335
-13904 -75.8361857138384607 42.1235604037558815
-22740 -78.2308937805643012 38.6104896884795963
-78371 -98.9741664697986607 27.4868931073825458
-46045 -86.1493835909090961 40.2892192500000164
-38357 -88.4213044401267467 35.0508475952551635
-60539 -88.3315025939849932 41.8243174887217961
-46348 -86.8687133912423946 41.3111016810253631
-27962 -76.7434307604359986 35.8379445744366549
-99566 -143.290280063829812 61.439207468085101
-33138 -80.1850893881901499 25.8536482615647074
-10590 -73.5381911738659113 41.253247386609047
-33538 -82.1426972285618717 28.7988578858839226
-27906 -76.3114513333333235 36.3628968333333304
-50847 -94.9843001526717075 41.1426651526717464
-49048 -85.5213723252670377 42.2946893749067101
-74640 -97.654595041015682 36.5613970546875322
-07737 -74.0595079557422196 40.4117753899160093
-07977 -74.6554396761657841 40.7085561036269254
-82190 -110.643828764610475 44.7928255535714115
-29316 -81.9756930329081825 35.0392134104174033
-65046 -92.4774902208547758 38.7703189228095866
-29395 -81.7419151818181575 34.8568798181818238
-01373 -72.617118780013314 42.4725440327215864
-87025 -106.650941809101781 35.8427385864486965
-37811 -83.2172898844967222 36.3499808037876235
-40486 -83.8775058638064053 37.3623290364238869
-04258 -70.3372583104787026 44.1443760769729394
-24075 -96.9795344999999998 36.1301750000000013
-17731 -76.5812480102765107 41.4101497233201599
-54412 -90.0008184896444163 44.6476744208676308
-69346 -103.808392362170537 42.6939351073534255
-29322 -82.1364141982400753 35.1175511775193954
-12417 -73.9936994692307479 41.9058234384615389
-75478 -95.3499823150337988 33.1529684113174952
-27248 -79.7101650822566796 35.779465857142867
-08361 -74.9771863163310144 39.4601883668835995
-91344 -118.504321571721192 34.283851855039515
-13805 -90.6761412957746984 43.0798284788732531
-39635 -90.450163948936094 31.1856927617021249
-73755 -98.5572261945205099 36.1294720602739758
-76651 -96.8755178073360241 32.1824381541311411
-75436 -95.2493319268375842 33.6889255722288183
-89024 -114.108647202127656 36.7528095531914758
-87118 -106.599266183908043 35.0564877816091922
-29928 -80.7523058268869676 32.163222812640754
-98580 -122.476711496130918 46.9487951772697087
-51510 -95.9144631728895973 41.2928738482143132
-98527 -123.946029659340695 46.6119821263736398
-81429 -108.96046291949142 38.3480870649717716
-80027 -105.150699034491538 39.9626818984840142
-71416 -92.8927384093985893 31.5462148746885518
-21665 -76.3261003844731363 38.7467483641404584
-32725 -81.2442654158707001 28.9004673477503431
-62428 -88.1376083003398492 39.2590049518221278
-96109 -120.160582678899132 40.033297293578002
-93612 -119.710357414533334 36.8152573415222619
-54302 -87.9732357635827356 44.5028202798825774
-58426 -98.5987823045430787 47.224454399887648
-18812 -75.9509525788841131 41.9658166553689682
-88231 -103.163666629218142 32.4411918445109038
-49879 -88.0426907178836728 46.3331073964020703
-73946 -102.77582723529413 36.8848463529411745
-78853 -100.476951305555559 28.6771618611111059
-97531 -123.645617606557366 42.1955721675774242
-83236 -112.164283115738968 43.2897600708849737
-43040 -83.3644400736195337 40.2502697659437416
-74956 -94.7103121305245708 35.1217298620405174
-36427 -87.0665705362318647 31.1788503623188333
-85122 -111.744143449436848 32.9152713121730827
-49619 -85.9953204066725192 44.3021236559964251
-18504 -75.689354436460448 41.4167042522733553
-17980 -76.5548689930656963 40.5734142678831944
-31794 -83.4819736034875319 31.4557658378774825
-48647 -84.1179437042923297 44.6683794627526112
-68001 -96.8703574444444513 41.3534572698412646
-69170 -100.747898151774848 40.7911424547123644
-35893 -86.6559610000000049 34.7227899999999963
-48740 -83.3467529552904978 44.6620561086143795
-83865 -117.039908000000011 47.4778766666666669
-50457 -93.4844636581787825 42.9184713912037097
-25189 -81.2856084375000165 38.1386478750000038
-35672 -87.412628292930691 34.6220606626355476
-29690 -82.4283674732577509 35.0415801831916625
-77372 -95.1571235010950573 30.2293382465312881
-56219 -96.8135761370757848 45.6094787421671128
-71868 -96.0292163999999957 30.4296559000000002
-63112 -90.2822023487383376 38.6627647309428468
-54658 -91.216434951690772 43.6658528260869616
-33012 -80.300654255688741 25.865626363209973
-63670 -90.161636871126845 37.9041227086589743
-71752 -93.2019092510698925 33.3815429346647434
-19604 -75.9116130812688965 40.3550076377643734
-43802 -81.8561058649808473 40.0917048059770948
-97530 -123.023595147692987 42.2280701264691487
-30735 -84.9126462176176631 34.6044016492731217
-45227 -84.3866731396029763 39.1541208329439385
-17821 -76.6280796836567788 40.9857885636425152
-93040 -118.788661079950927 34.4245820147601407
-25411 -78.2204864621950406 39.5629391434755533
-44820 -82.9733589016097142 40.8126829391373249
-36515 -87.8418220294117731 31.3412404411764776
-64030 -94.5212683005384378 38.879791762423217
-24836 -81.5456814293947758 37.3630739394812537
-48183 -83.2229212057377907 42.1329039986337719
-64119 -94.5233069831163277 39.2059508939483123
-97826 -119.204490748208414 45.7071758636025436
-30314 -84.4293593807507676 33.757576404358268
-60187 -88.1042656487397551 41.8675876947287122
-75401 -96.1129861532807013 33.1614511260252698
-70559 -92.5007937103220428 30.1208616850167594
-06512 -72.8718682044053452 41.2804106123181
-30052 -83.9056320201187589 33.8270906083942648
-28711 -82.3024023175807855 35.5905300183886268
-43569 -83.7934937315644959 41.351605557939962
-64667 -93.3344683451201291 40.3915810282884777
-08035 -75.0663264291217587 39.8791017118643722
-12480 -74.3818157137586979 42.1275811391670914
-25855 -81.1502872093023058 37.9408647209302217
-47964 -87.2988156116504967 40.9510377475728191
-50032 -93.5447485736434032 41.666200953488385
-51017 -96.3093380714285843 42.8963800000000077
-31634 -82.7363139756479598 31.0383657440093508
-99130 -117.180643672357391 46.9895151391210035
-81447 -107.011663499999983 37.2707493333333346
-49835 -86.5900507859573025 45.7419661231332313
-12207 -73.7498738630339403 42.6536090883652719
-40231 -85.6967783999999995 38.1969398000000027
-14564 -77.42352641794389 42.9932398049977138
-76449 -98.4053937399112471 32.8932998322050949
-46984 -85.8310672323232353 40.6688923434343366
-78453 -97.9883067500000067 26.2994289999999999
-63106 -90.2077633349569936 38.6444432163731548
-47003 -84.8325089133033856 39.5581578968609477
-67060 -97.3483982276832762 37.5525471816432841
-56515 -95.7070351449697938 46.2931698036073769
-60636 -87.6680161249830689 41.7757382940123492
-50467 -93.0839271472869001 43.209673511627912
-13160 -76.6664872354497788 42.8283945230536176
-50220 -94.1069470043094611 41.8470692681915253
-92398 -116.813242348761477 34.9191500873533087
-39051 -89.4814543918699883 32.7870248869488705
-71486 -93.6590554040798082 31.6168649545808513
-78907 -106.350761500000004 31.7222985000000008
-43046 -82.5382348468148166 39.9056874133333608
-46923 -86.6565261818911949 40.602381551194739
-87736 -105.208206413533844 35.9856826015037612
-57725 -102.867686349999929 43.9531927594595047
-56381 -95.5429167386034806 45.5669943499065297
-67857 -101.561057194999918 37.9554305599999751
-76243 -97.6074674583333177 33.1932893749999991
-78252 -98.6929719427403853 29.3503045333333148
-05679 -72.5408169546823842 44.1106590008112249
-11549 -73.602051000000003 40.7183653333333311
-01583 -71.7871787897194338 42.36236892445487
-12534 -73.7553575452172652 42.228724742361301
-49942 -88.4190859754098284 47.2682011065573633
-00765 -65.4529835032377036 18.1291793320999126
-48879 -84.5651911047514062 43.0041830046952001
-68787 -97.0316573504050979 42.2094254410434147
-76701 -97.1374153360057591 31.5525369832361555
-84714 -113.666030895635657 37.7568293409680749
-08855 -74.4704360000000065 40.5127925000000033
-12779 -74.6280687984008182 41.7046939737292419
-08401 -74.4415600260000474 39.3648191774284442
-62460 -87.6793438077880296 38.6027375484672319
-54409 -89.1684532211941274 45.1321552513433915
-35233 -86.7978477114778855 33.5092554300314731
-12766 -74.9793185038428476 41.8143834491887318
-46340 -86.7687373196202287 41.3973724985934268
-67710 -101.048359333333337 39.3912584999999993
-98560 -123.434425772245802 47.2636905783898413
-31826 -84.6993431164485884 32.8043545633931757
-70750 -91.7603756761506162 30.518291321338932
-77833 -96.4070494239628886 30.196633216759146
-24554 -79.0586604211278683 37.1343554085632377
-59141 -87.5709994999999992 44.2403790000000043
-19015 -75.3884033193450165 39.8660021584761282
-96142 -120.128666234689334 39.0470559885741721
-44509 -80.693833114845944 41.1053922350139871
-97407 -123.978607161616125 43.4549375454545626
-19951 -75.2430579110281599 38.6899681811401734
-03842 -70.8283029811841232 42.9395408305551598
-08113 -105.43103450000001 37.4277804999999972
-59327 -106.649162280076567 46.1692866538593591
-43516 -83.9056179095138646 41.2070239625493286
-52345 -91.8862361558441307 42.2220389177489039
-47172 -85.7734976425603008 38.3949067387983334
-31773 -84.0425338227515653 30.9688539480984311
-61281 -90.5075479252256798 41.3002331645040925
-79916 -106.407293045454509 31.8045047272727395
-41776 -83.2913408460302094 37.1526564870355855
-99101 -117.937632935719449 48.3296129569029205
-40026 -85.5634004536180157 38.4126469839727918
-98585 -122.531461635208885 46.549781950544407
-95991 -121.620787832522822 39.1133358219026803
-81632 -106.627232053547274 39.6357320989331257
-92406 -117.772909374999998 33.6880708750000011
-61321 -88.9736604926752932 40.9677734795681872
-41834 -82.9439185046583702 37.2697858773291983
-07704 -74.03732095196915 40.3600659466858573
-70653 -93.5447064781897666 30.7462514835142287
-14840 -77.1845420646864824 42.4475175303997716
-28616 -81.9257967942708092 36.027065240451364
-72523 -91.8388081135245358 35.6496376428757102
-98262 -122.677768895912777 48.7094156174387365
-92135 -117.168526531250009 32.7007577812500045
-46220 -86.1084148012278519 39.8676038212093857
-63965 -91.0171859399750076 36.9857003793247472
-98447 -122.439942000000002 47.1422494999999984
-92807 -117.788297890644927 33.847664404175859
-53129 -87.9975892335540379 42.93814010958463
-03249 -71.396042891700958 43.5575494521781295
-67543 -97.7916371951248351 37.8815240659014165
-41102 -82.7004047434547545 38.4361576861019003
-97639 -121.44162305120166 42.4574970663530564
-52043 -91.421311464021997 42.8472893371673464
-38866 -88.681512272771883 34.362087839498308
-87827 -108.16702578212292 34.3866425139664713
-39954 -87.8110685714285637 33.8350799999999978
-41348 -83.3022690248068756 37.4301961123663958
-75825 -95.0861457999999971 31.641544599999996
-49774 -84.3204059768914078 46.1632669781576865
-45317 -84.0122430199006232 40.1758503283581447
-01880 -71.066659340876555 42.5012346805300112
-65349 -93.0519789492841625 39.2190378515336775
-49770 -84.9306804483376823 45.3533247969483426
-77369 -94.7536219207406702 30.4635883281481412
-06384 -71.8306438335835509 41.585697772678536
-45303 -84.6474257819305222 40.2156939411766317
-52171 -92.040339580286286 43.0559384533653429
-43462 -83.7042490947866327 41.284203725908327
-20855 -77.1413043255038531 39.1358902594215508
-55333 -94.866862920494313 44.552332264571632
-62817 -88.4712896903073442 37.9510127895980958
-21837 -75.7480047319917418 38.4741015892479581
-97057 -120.884956185185175 45.1201902518518523
-71483 -92.6605711970645984 31.9169169577554612
-07853 -74.781049238553166 40.7926224106387636
-15348 -79.9960777850000255 39.9892062425000177
-15941 -78.5905015624999947 40.4997113125000041
-95021 -121.604729666666671 37.0257014166666636
-56142 -96.2429952137565152 44.4708074370370738
-97111 -123.197518826086892 45.290411617565681
-80480 -106.301060076883999 40.6628486831498321
-40150 -85.7151165550034193 37.8679026571615367
-87046 -106.935244350724574 36.1974121318840503
-12407 -74.3455465019010546 42.313582880228104
-67520 -99.1898092528409023 38.544547937499992
-21211 -76.6350776983585575 39.3312506782285425
-49347 -85.3397816831275264 43.3184269814814868
-32325 -85.7071818039215856 30.872696607843146
-28708 -82.8801352284264823 35.2276739348561208
-74335 -94.8516295263157758 36.9735108596491315
-40843 -82.9903012693207529 36.8725273911006965
-45140 -84.2532588441069663 39.2489071414519657
-13348 -75.060356065420379 42.7016206399120151
-46403 -87.258088885550535 41.6054980954611651
-95914 -121.358240610824041 39.4267225408480257
-63462 -91.6903728819683579 39.435199275278805
-97055 -122.219827689067671 45.3881225103225603
-56301 -94.2086354567437496 45.5115704752602781
-04645 -68.6342070000000177 44.0607298275862007
-55340 -93.558643328281434 45.0675911261036077
-76755 -85.1854861999999855 41.4051369999999963
-12472 -74.0763452323856058 41.8446011730531708
-12125 -73.4050050912898087 42.4704077839196756
-75490 -96.3213816622161829 33.4309628255681517
-47433 -86.6514418493928815 39.3435451022739358
-50608 -92.9702238235294374 42.5775074705882375
-13632 -76.0636415961538574 44.1302005769230874
-66055 -95.3983620000000059 39.0440287499999954
-15736 -79.3415252629108778 40.6983065539906192
-29437 -80.4201137866211297 33.1437430288124517
-68505 -96.6200701889733864 40.8252721104674023
-85120 -111.567579154446236 33.4238012636810708
-85193 -111.800595619070023 32.8438966478200172
-85304 -112.17669416312377 33.5941949299020308
-79133 -98.2866176999999936 29.8806111499999929
-32179 -81.8848138993385817 29.0854685404630153
-25844 -81.3718374403638478 37.8030390605105637
-30569 -83.5047894999999869 34.3293660000000003
-41557 -82.4188979281909582 37.4878088425725053
-81651 -106.935049285714314 39.3127590714285731
-95136 -121.851198992652698 37.2689055525907591
-60416 -88.2800421034412466 41.2959584172677765
-71333 -92.0834917126026937 30.9197790368852772
-21841 -75.293432516792052 38.244917416040046
-72026 -91.3057915030580318 34.5172402813455363
-33462 -80.0796553116358041 26.5818941329279532
-74401 -95.4110968038906861 35.743227312687857
-50156 -93.8145459735490306 41.8871737581351908
-66516 -95.7280977439024383 39.6429059793620837
-36729 -87.5905474999999996 31.980104500000003
-78228 -98.5707342893439318 29.4621410258420298
-03269 -71.5796421211645821 43.5251516765957192
-06605 -73.2171150352994431 41.1635870252789857
-22742 -77.7128678868254212 38.4631172066164169
-47249 -86.2020176666666629 38.9594493333333318
-89007 -114.157686195555556 36.7460015170370511
-06374 -71.9166732834519422 41.6808918172056408
-82332 -107.430857758064519 41.0617965967741796
-46971 -86.1446234999999945 40.6636917499999981
-66439 -95.5443061837822398 39.6671614886150863
-76063 -97.1278462818958843 32.5810024793454716
-62626 -89.8876204818032107 39.2748490965038144
-54005 -92.2487061159420421 45.2388562193674915
-16346 -79.6834118596442664 41.3790361204201957
-37709 -83.6607590237881453 36.1633932914629241
-85295 -111.744210649471427 33.3068189366972049
-48170 -83.4960078264912937 42.3704094349210934
-58301 -98.8482121083326746 48.1436185332581914
-04655 -67.389236590651123 44.6709364868112715
-42234 -87.1717459251396463 36.7026148756051214
-97463 -122.454271501027478 43.7545441567378646
-62180 -81.466620000000006 29.2395747499999956
-15642 -79.7188156840802691 40.3231777216873084
-12070 -74.2498290022336391 42.9757444199553262
-58627 -103.187600720720752 47.2045438738738525
-45370 -84.0407891817639694 39.6129234621573332
-71443 -93.4240283076923248 31.2230816538461546
-34956 -80.4953916683116404 27.057181562225864
-25654 -81.902729134408645 37.8087721559139993
-66429 -95.5485313021277562 39.0979197304964003
-68532 -96.8348045437955989 40.7892898321167792
-05350 -72.9675379972066338 42.7810146700185925
-31404 -81.0658849628099034 32.0457330047987199
-12496 -74.259922501202297 42.3206322351969106
-48813 -84.8264776831536693 42.5759191890126303
-62297 -89.8129302686382402 38.0452998256315809
-72633 -92.8759592082861047 36.138347098224429
-17769 -77.5405591755952202 41.4965266726190833
-38456 -87.2771428457106708 35.3356419192661591
-93608 -120.357931180866913 36.5174200044843289
-30206 -84.4590803004214763 33.1017504265636617
-40506 -84.5049071038961159 38.0341871753246963
-01342 -72.6020428131147213 42.5403391923497765
-75040 -96.6241927545929542 32.9250661762062506
-59036 -109.861026103543338 46.4357048677164812
-61334 -89.0914496142536052 41.1461204926470501
-56280 -96.1612262493887613 44.6465433496332267
-68813 -99.7961734209636973 41.6804634125105409
-15764 -79.0298471333333623 40.9969402175438731
-23832 -77.5920919541658662 37.4054690246090402
-32931 -80.6114355197808692 28.3294859087035107
-14527 -77.0600201897670871 42.6590004920717405
-46787 -85.6210233720000531 41.0755294459998552
-35544 -88.0132664865763843 33.9423587122255057
-23696 -76.4299370577702035 37.1902998736486552
-14220 -78.819127101896683 42.8453326035700783
-84089 -112.423455352941161 40.1736031176470547
-36547 -87.6247819473684331 30.2800541052631509
-13045 -76.1895210867195374 42.5934638429689372
-27845 -77.4287864002786392 36.3810786842012917
-38343 -88.9056310157224061 35.830594874256704
-76632 -97.0718289738039743 31.3001471292710143
-41858 -82.8419646354785613 37.1295807079500548
-29550 -80.0816264275730418 34.3844502491109623
-11552 -73.6545995110442249 40.6936581493975993
-45328 -84.494419540084408 40.1140619324894487
-26259 -79.8986050099009901 38.835257108910902
-97874 -119.859177186755304 44.8005559011913874
-62650 -90.2369310803287306 39.7306923315810891
-93105 -119.744732689610046 34.4593919782780134
-17942 -76.116330099999999 40.6241926000000007
-54141 -88.0224078418791152 44.7174953042675938
-31542 -82.1343110619075958 31.1741341984598179
-34478 -82.1898077499999999 29.2917507499999985
-41401 -82.526625566666695 37.4149101333333292
-37374 -85.6401811712608918 35.1657615216901789
-50248 -93.597020344596487 42.1945673460529846
-30040 -84.1799229651219036 34.2163888455798215
-06796 -73.3343255332077746 41.8729379465744245
-34953 -80.3806785486686692 27.2494803770067229
-46115 -85.5717491693975632 39.73914278270734
-49330 -85.7368536294216028 43.2381665074380095
-16148 -80.448502642392782 41.2328536343486007
-78114 -98.2032027343170455 29.1702559514245792
-83669 -116.496198553487147 43.7089589374772487
-07765 -74.2497794999999883 40.3469479999999976
-41129 -82.6433723426486466 38.3543351516550004
-13040 -75.9363676319339902 42.5566182212892912
-48393 -83.5346524211762329 42.5362288348234614
-11742 -73.0400897054886684 40.8099241750334585
-23922 -78.2275207958342236 37.1933444550015508
-38654 -89.83119714054952 34.94625650785148
-19090 -75.123071569119773 40.1479403464080633
-38839 -89.2852469166666936 33.8549182380952374
-81077 -103.622134125683047 38.0280098251366354
-12776 -74.9511508109322619 41.9532534090776821
-84537 -111.057291281412319 39.2289209844237092
-02588 -70.656549499999997 41.7421264999999977
-78026 -98.5707400169632564 28.9083928455229362
-56537 -96.0538089871772058 46.2964975319615846
-68649 -96.7685553188252072 41.490959145254223
-66104 -94.6801251069153125 39.1391812962562256
-66750 -95.1431124000000068 37.6990906000000052
-01040 -72.6355346759230969 42.2048204718255064
-45005 -84.3057539865121015 39.5467003659075971
-30636 -84.4279256666666811 34.6362508333333281
-92256 -116.55769942570069 34.0722047535525689
-24590 -78.4737542381113826 37.8036400722102357
-15905 -78.9493929163133856 40.2919090915452642
-79005 -100.522341275964536 36.4400051107814065
-38723 -91.0330690120481734 33.2431101325301341
-93256 -119.287535971014705 35.9689264938352409
-08540 -74.6542103623172721 40.3650719162664089
-76634 -97.5397447611117059 31.8062723326656034
-07936 -74.3620377931291472 40.8173090376973917
-34231 -82.5162138807738614 27.2690258612799568
-35802 -86.554668720873849 34.6700032279127299
-99578 -162.022992054545426 60.2163504727272638
-53142 -87.8867199996279993 42.5640224187409615
-04975 -69.5866648311688323 44.6243557662337622
-55921 -91.4723158400588687 43.6204115105481662
-46677 -85.0005045999999993 41.034911000000001
-17329 -76.8530905502301351 39.7622922791768545
-55037 -92.8738628795361052 46.0212398604838171
-15218 -79.8873559786210166 40.4249092748692291
-54022 -92.6210435241057155 44.8723154634594223
-84301 -112.127877269607936 41.6127055130719086
-37883 -83.4854509999999976 35.7341258400000044
-23833 -77.6671535405547502 37.1976230181428846
-02552 -70.7522492222222326 41.3559410000000014
-26335 -80.6772079988840716 38.849866953497056
-16802 -77.8601235629629969 40.8034450592592535
-62526 -88.9582687699697345 39.8788532566741125
-77480 -95.7197668143344345 29.073130962994405
-27360 -80.0947211868813724 35.8657768955389713
-62932 -89.2282777180618041 37.9012411659324329
-98356 -122.30960416206085 46.5816933194097089
-93725 -119.740546191766697 36.6643981364164873
-90275 -118.362150970315881 33.7597144420979518
-95333 -120.25902272239108 37.2433130260172049
-93654 -119.432126484395056 36.6145573241400299
-64098 -94.8981439125443558 39.4501992934324477
-78860 -100.311285595555574 28.5033040444444481
-55320 -94.0751945624399895 45.3981382161126703
-52349 -92.0028609516970022 42.173958719478243
-23173 -77.5418180555555949 37.5752235101009759
-83631 -115.875487459910715 43.8563060142539101
-97534 -123.708215889420003 42.0620581781231522
-80620 -104.714244898688506 40.3774533819797057
-82646 -106.767160477272725 43.0029924318181926
-39462 -89.0164187611837576 31.2075380203028949
-22031 -77.2603796950559314 38.8595526699320786
-24083 -79.913605618547507 37.413153640223463
-56230 -95.092388363109535 44.7967836512102551
-72410 -91.0806818803164049 35.9307722057369006
-84004 -111.772822289904269 40.4553018082602236
-44620 -81.2131836084932104 40.5805758208291181
-54671 -90.5623292500000048 46.0095244999999977
-74871 -96.5557667943833451 34.6433889331827345
-76951 -100.992021627978275 31.8314521944658289
-62269 -89.9133232826524704 38.5984508604597067
-38588 -85.7235504226728011 36.444449761953237
-43235 -83.0533017843734456 40.1036837422909258
-00714 -66.053327337059244 17.9826853069647399
-85294 -111.650447515463952 32.9076507577319646
-93106 -119.8457705 34.4169684999999959
-80202 -104.996496846663419 39.7502998150789892
-14062 -79.1565836107092906 42.4457062538765015
-36267 -85.9624903176470383 33.189974458823535
-95694 -121.978239099416911 38.5302958193876393
-53809 -90.6351629136449475 42.9975341697197209
-53208 -87.9648091246451571 43.0472874514838679
-39107 -89.6761479090909006 32.9998319090909078
-63023 -90.7118405557016132 38.2795680606144799
-35187 -86.8836637551020203 33.0755940612244856
-72455 -91.0231794627792254 36.3066107943868204
-28622 -81.9446493881169005 36.1927401897634198
-52165 -91.9837839022113428 43.3065495071253181
-08836 -74.5534665185186327 40.5970274634377617
-04446 -69.5107271428571352 45.2748972857142888
-10973 -74.4740113016241168 41.3861076769141505
-31780 -84.3832056055729112 32.0342050485491967
-74582 -96.8952428333333273 35.1016698333333323
-23070 -76.3898991200545225 37.5546263806274609
-13731 -74.7830230905200324 42.1439953987821099
-68123 -95.9535029746509878 41.1189567824394686
-60487 -87.8312147650108841 41.5661207811409454
-36331 -85.8762817999999868 31.283688999999999
-60465 -87.8288629133668763 41.7010105380063507
-70068 -90.4822406115208366 30.0689965055927964
-71056 -93.510112399999997 31.8085592000000013
-33545 -82.2979768431030294 28.2534345039137449
-31731 -84.7188159999999897 31.2719915999999998
-44802 -83.4270941185916968 41.0381006788140965
-76443 -99.1877993418323456 32.1409253390437755
-12018 -73.5398213534206917 42.6355971639838884
-65650 -93.4292194672365639 37.7840593867521335
-36454 -87.1999847515151316 31.3362497939393734
-71350 -92.0649209879963877 31.0653934701004353
-50841 -94.759755640106917 40.9964703073914905
-53075 -87.9633686626650757 43.5520829171668353
-41513 -82.3470819311163496 37.3565811219318888
-89828 -115.477375069053679 40.7288317186700581
-98154 -122.333340500000006 47.6063994999999949
-83228 -112.010600023106619 42.2103251553273253
-28356 -78.8018254198987336 35.2357642833903881
-30562 -83.3939992634352336 34.9162178788198361
-22042 -77.1905507161509661 38.864216403264102
-01603 -71.8422128570790761 42.2439253352627802
-58414 -90.816506000000004 46.8110557500000013
-56093 -93.5111207621190914 44.0700678882770802
-72682 -92.7390760511972871 36.1385245086705496
-62546 -89.44859136859138 39.4261411767048955
-47977 -87.1566088917972195 40.7469219883871148
-33414 -80.2526804348544971 26.6562092638813439
-56751 -95.7399300271724059 48.801247907118686
-45597 -87.3054388000000046 38.6644519999999972
-78207 -98.5243172168623857 29.4233399181226858
-12155 -74.8233301777276836 42.5863679224271294
-98351 -122.769597161540787 47.2015589178858264
-64126 -94.4988686662824477 39.0914788547549676
-27813 -77.9345265062343628 35.632935324189539
-86538 -109.619412955223822 36.3433960746268525
-52040 -91.1212420766008364 42.4905952142665768
-62293 -89.6813985406227658 38.6174892297781227
-01346 -72.812455683159726 42.6741468398437362
-56632 -94.630694142857152 47.2937008571428592
-37370 -84.6990774659463028 35.3640404966664548
-41503 -82.2877955235920382 37.6702331232876517
-41534 -82.4790599922026786 37.2796155847953088
-59343 -105.496355735099414 45.9088140860927112
-13145 -76.139764201207214 43.6541417857142946
-06032 -72.8366688308625641 41.728149715405408
-75725 -95.1141520909091156 31.7384805454545393
-58239 -98.6872105113636309 48.9463254204545422
-80815 -103.054177234958445 39.360312209046981
-77007 -95.4025798044039846 29.7723339750092215
-24985 -80.6818207862232981 37.6054937672209206
-88340 -105.745903226240486 33.1874836143329262
-46845 -85.1157008918407598 41.1980418443490422
-72141 -92.6293228548386054 35.5190722073732346
-18081 -75.2806851269035207 40.5620360253806922
-67524 -98.350463926289919 38.3583852813267896
-60952 -88.2592726527777387 40.5737159976851274
-25907 -81.081655532338317 37.8540470597015215
-27332 -79.1187681115893184 35.3722047240216213
-76623 -96.7579496956521155 32.1973961739130559
-64862 -94.1195458914229022 37.0863748862833873
-77868 -96.0505229788564208 30.3737732938014346
-53013 -87.818186167198391 43.5466223816208853
-26851 -78.6208554702914739 39.0716585439087538
-18321 -75.2886450395815388 41.0162306665149714
-75207 -96.8207775868056473 32.7871888616898062
-93558 -117.622247092857137 35.3547329428571544
-17324 -77.2133005352465034 40.0336196110923339
-15350 -80.2008706845637676 40.2941387281879315
-92703 -117.902599188202132 33.747725365038626
-11436 -73.7980876428571406 40.6761794999999964
-84018 -111.48139666421217 41.0849488600883674
-78669 -98.0842503121911449 30.4197635704105345
-79363 -102.020448550400232 33.6906540684800291
-78628 -97.722976448526822 30.6577328289607962
-15624 -79.4682502812500502 40.3644751145833567
-84328 -111.822001256729592 41.5522304353112304
-46110 -85.9154364705473341 39.5601539459458991
-76269 -96.8516845000000046 33.7066119999999998
-05085 -72.1459893500838376 44.0794310134002743
-08207 -74.3879234999999994 40.5591790000000003
-72660 -93.3701477848647414 36.4809670064864733
-83322 -114.955220624999981 43.35212931249999
-61111 -89.0087994405415088 42.3295163840540809
-49655 -85.4334444354968383 44.0324577489127975
-99637 -165.106986833333366 60.5315080000000023
-58401 -98.7372321561035875 46.9009073805006977
-29351 -81.8128542103703609 34.4158127837036574
-38834 -88.5282278363708457 34.9227903901270835
-83501 -116.95513197223292 46.3652601177435386
-72150 -92.3861331326125708 34.3081847295007591
-28393 -78.1923019733918778 34.9844748269319794
-15637 -79.7116460253441375 40.2629886670838104
-98015 -122.088768333333334 47.6576826666666662
-62684 -89.5911833852758832 39.8981474856015197
-67111 -97.9344941791836732 37.6201739538776039
-65025 -92.6766002156592492 38.6559897448489664
-37043 -87.2537853316159016 36.5075820466083485
-34209 -82.6321588486974719 27.4910742477750283
-30177 -84.3818426705632163 34.4136537725823075
-37621 -82.1832694285714211 36.5929295714285701
-97976 -97.1480537500000025 28.9761280000000028
-35474 -87.6042833413824127 32.9584879643825985
-15848 -78.7265195373812077 41.0307604485784196
-87583 -105.371232369932542 35.2780028749999985
-68371 -97.8222753316872513 40.7818484345678769
-00736 -66.1532290510693031 18.120684698052969
-\.
--- /dev/null
+SET statement_timeout = 0;
+SET client_encoding = 'UTF8';
+SET check_function_bodies = false;
+SET client_min_messages = warning;
+
+SET search_path = public, pg_catalog;
+
+SET default_tablespace = '';
+
+SET default_with_oids = false;
+
+CREATE TABLE us_postcode (
+ postcode text,
+ x double precision,
+ y double precision
+);
configure_file(mkdocs.yml ../mkdocs.yml)
file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/appendix)
+file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/data-sources)
+
+set (DOC_SOURCES
+ admin
+ develop
+ api
+ index.md
+ extra.css
+ styles.css
+ data-sources/overview.md
+ )
+
+foreach (src ${DOC_SOURCES})
+ execute_process(
+ COMMAND ${CMAKE_COMMAND} -E create_symlink ${CMAKE_CURRENT_SOURCE_DIR}/${src} ${CMAKE_CURRENT_BINARY_DIR}/${src}
+ )
+endforeach()
+
+execute_process(
+ COMMAND ${CMAKE_COMMAND} -E create_symlink ${PROJECT_SOURCE_DIR}/data-sources/us-tiger/README.md ${CMAKE_CURRENT_BINARY_DIR}/data-sources/US-Tiger.md
+)
+execute_process(
+ COMMAND ${CMAKE_COMMAND} -E create_symlink ${PROJECT_SOURCE_DIR}/data-sources/gb-postcodes/README.md ${CMAKE_CURRENT_BINARY_DIR}/data-sources/GB-Postcodes.md
+)
+execute_process(
+ COMMAND ${CMAKE_COMMAND} -E create_symlink ${PROJECT_SOURCE_DIR}/data-sources/country-grid/README.md ${CMAKE_CURRENT_BINARY_DIR}/data-sources/Country-Grid.md
+)
+execute_process(
+ COMMAND ${CMAKE_COMMAND} -E create_symlink ${PROJECT_SOURCE_DIR}/data-sources/country-grid/mexico.quad.png ${CMAKE_CURRENT_BINARY_DIR}/data-sources/mexico.quad.png
+)
+execute_process(
+ COMMAND ${CMAKE_COMMAND} -E create_symlink ${PROJECT_SOURCE_DIR}/data-sources/wikipedia-wikidata/README.md ${CMAKE_CURRENT_BINARY_DIR}/data-sources/Wikipedia-Wikidata.md
+)
ADD_CUSTOM_TARGET(doc
- COMMAND ${CMAKE_COMMAND} -E create_symlink ${CMAKE_CURRENT_SOURCE_DIR}/admin ${CMAKE_CURRENT_BINARY_DIR}/admin
- COMMAND ${CMAKE_COMMAND} -E create_symlink ${CMAKE_CURRENT_SOURCE_DIR}/develop ${CMAKE_CURRENT_BINARY_DIR}/develop
- COMMAND ${CMAKE_COMMAND} -E create_symlink ${CMAKE_CURRENT_SOURCE_DIR}/api ${CMAKE_CURRENT_BINARY_DIR}/api
- COMMAND ${CMAKE_COMMAND} -E create_symlink ${CMAKE_CURRENT_SOURCE_DIR}/index.md ${CMAKE_CURRENT_BINARY_DIR}/index.md
- COMMAND ${CMAKE_COMMAND} -E create_symlink ${CMAKE_CURRENT_SOURCE_DIR}/extra.css ${CMAKE_CURRENT_BINARY_DIR}/extra.css
COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/bash2md.sh ${PROJECT_SOURCE_DIR}/vagrant/Install-on-Centos-7.sh ${CMAKE_CURRENT_BINARY_DIR}/appendix/Install-on-Centos-7.md
- COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/bash2md.sh ${PROJECT_SOURCE_DIR}/vagrant/Install-on-Ubuntu-16.sh ${CMAKE_CURRENT_BINARY_DIR}/appendix/Install-on-Ubuntu-16.md
+ COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/bash2md.sh ${PROJECT_SOURCE_DIR}/vagrant/Install-on-Centos-8.sh ${CMAKE_CURRENT_BINARY_DIR}/appendix/Install-on-Centos-8.md
COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/bash2md.sh ${PROJECT_SOURCE_DIR}/vagrant/Install-on-Ubuntu-18.sh ${CMAKE_CURRENT_BINARY_DIR}/appendix/Install-on-Ubuntu-18.md
+ COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/bash2md.sh ${PROJECT_SOURCE_DIR}/vagrant/Install-on-Ubuntu-20.sh ${CMAKE_CURRENT_BINARY_DIR}/appendix/Install-on-Ubuntu-20.md
COMMAND mkdocs build -d ${CMAKE_CURRENT_BINARY_DIR}/../site-html -f ${CMAKE_CURRENT_BINARY_DIR}/../mkdocs.yml
)
--- /dev/null
+# Advanced installations
+
+This page contains instructions for setting up multiple countries in
+your Nominatim database. It is assumed that you have already successfully
+installed the Nominatim software itself, if not return to the
+[installation page](Installation.md).
+
+## Importing multiple regions
+
+To import multiple regions in your database, you need to configure and run `utils/import_multiple_regions.sh` file. This script will set up the update directory which has the following structure:
+
+```bash
+update
+ ├── europe
+ │ ├── andorra
+ │ │ └── sequence.state
+ │ └── monaco
+ │ └── sequence.state
+ └── tmp
+ ├── combined.osm.pbf
+ └── europe
+ ├── andorra-latest.osm.pbf
+ └── monaco-latest.osm.pbf
+
+
+```
+
+The `sequence.state` files will contain the sequence ID, which will be used by pyosmium to get updates. The tmp folder is used for import dump.
+
+### Configuring multiple regions
+
+The file `import_multiple_regions.sh` needs to be edited as per your requirement:
+
+1. List of countries. eg:
+
+ COUNTRIES="europe/monaco europe/andorra"
+
+2. Path to Build directory. eg:
+
+ NOMINATIMBUILD="/srv/nominatim/build"
+
+3. Path to Update directory. eg:
+
+ UPDATEDIR="/srv/nominatim/update"
+
+4. Replication URL. eg:
+
+ BASEURL="https://download.geofabrik.de"
+ DOWNCOUNTRYPOSTFIX="-latest.osm.pbf"
+
+!!! tip
+ If your database already exists and you want to add more countries, replace the setting up part
+ `${SETUPFILE} --osm-file ${UPDATEDIR}/tmp/combined.osm.pbf --all 2>&1`
+ with `${UPDATEFILE} --import-file ${UPDATEDIR}/tmp/combined.osm.pbf 2>&1`.
+
+### Setting up multiple regions
+
+Run the following command from your Nominatim directory after configuring the file.
+
+ bash ./utils/import_multiple_regions.sh
+
+!!! danger "Important"
+ This file uses osmium-tool. It must be installed before executing the import script.
+ Installation instructions can be found [here](https://osmcode.org/osmium-tool/manual.html#installation).
+
+## Updating multiple regions
+
+To import multiple regions in your database, you need to configure and run ```utils/update_database.sh```.
+This uses the update directory set up while setting up the DB.
+
+### Configuring multiple regions
+
+The file `update_database.sh` needs to be edited as per your requirement:
+
+1. List of countries. eg:
+
+ COUNTRIES="europe/monaco europe/andorra"
+
+2. Path to Build directory. eg:
+
+ NOMINATIMBUILD="/srv/nominatim/build"
+
+3. Path to Update directory. eg:
+
+ UPDATEDIR="/srv/nominatim/update"
+
+4. Replication URL. eg:
+
+ BASEURL="https://download.geofabrik.de"
+ DOWNCOUNTRYPOSTFIX="-updates"
+
+5. Followup can be set according to your installation. eg: For Photon,
+
+ FOLLOWUP="curl http://localhost:2322/nominatim-update"
+
+ will handle the indexing.
+
+### Updating the database
+
+Run the following command from your Nominatim directory after configuring the file.
+
+ bash ./utils/update_database.sh
+
+This will get diffs from the replication server, import diffs and index the database. The default replication server in the script([Geofabrik](https://download.geofabrik.de)) provides daily updates.
+
+## Verification and further setup
+
+Instructions for import verification and other details like importing Wikidata can be found in [import and update page](Import-and-Update.md)
+
### PHP "open_basedir restriction in effect" warnings
- `PHP Warning: file_get_contents(): open_basedir restriction in effect.`
+ PHP Warning: file_get_contents(): open_basedir restriction in effect.
-You need to adjust the [open_basedir](http://www.php.net/manual/en/ini.core.php#ini.open-basedir) setting
-in your PHP configuration (`php.ini file`). By default this setting may look like this:
+You need to adjust the
+[open_basedir](https://www.php.net/manual/en/ini.core.php#ini.open-basedir)
+setting in your PHP configuration (`php.ini` file). By default this setting may
+look like this:
open_basedir = /srv/http/:/home/:/tmp/:/usr/share/pear/
-Either add reported directories to the list or disable this setting temporarily by
-dding ";" at the beginning of the line. Don't forget to enable this setting again
-once you are done with the PHP command line operations.
+Either add reported directories to the list or disable this setting temporarily
+by adding ";" at the beginning of the line. Don't forget to enable this setting
+again once you are done with the PHP command line operations.
### PHP timzeone warnings
You should set the default time zone as instructed in the warning in
your `php.ini` file. Find the entry about timezone and set it to
something like this:
-
+
; Defines the default timezone used by the date functions
- ; http://php.net/date.timezone
+ ; https://php.net/date.timezone
date.timezone = 'America/Denver'
Or
and recompile (`cmake .. && make`).
+### I see the error "ERROR: permission denied for language c"
+
+`nominatim.so`, written in C, is required to be installed on the database
+server. Some managed database (cloud) services like Amazon RDS do not allow
+this. There is currently no work-around other than installing a database
+on a non-managed machine.
+
+
### I see the error: "function transliteration(text) does not exist"
Reinstall the nominatim functions with `setup.php --create--functions`
and check for any errors, e.g. a missing `nominatim.so` file.
+### I see the error: "ERROR: mmap (remap) failed"
+
+This may be a simple out-of-memory error. Try reducing the memory used
+for `--osm2pgsql-cache`. Also make sure that overcommitting memory is
+allowed: `cat /proc/sys/vm/overcommit_memory` should print 0 or 1.
+
+If you are using a flatnode file, then it may also be that the underlying
+filesystem does not fully support 'mmap'. A notable candidate is virtualbox's
+vboxfs.
+
+### I see the error: "clang: Command not found" on CentOS
+
+On CentOS 7 users reported `/opt/rh/llvm-toolset-7/root/usr/bin/clang: Command not found`.
+Double-check clang is installed. Instead of `make` try running `make CLANG=true`.
+
+### nominatim UPDATE failed: ERROR: buffer 179261 is not owned by resource owner Portal
+
+Several users [reported this](https://github.com/openstreetmap/Nominatim/issues/1168) during the initial import of the database. It's
+something PostgreSQL internal Nominatim doesn't control. And PostgreSQL forums
+suggest it's threading related but definitely some kind of crash of a process.
+Users reported either rebooting the server, different hardware or just trying
+the import again worked.
### The website shows: "Could not get word tokens"
`could not connect to server: No such file or directory`
-On CentOS v7 the PostgreSQL server is started with `systemd`.
-Check if `/usr/lib/systemd/system/httpd.service` contains a line `PrivateTmp=true`.
-If so then Apache cannot see the `/tmp/.s.PGSQL.5432` file. It's a good security feature,
-so use the [preferred solution](../appendix/Install-on-Centos-7/#adding-selinux-security-settings).
+On CentOS v7 the PostgreSQL server is started with `systemd`. Check if
+`/usr/lib/systemd/system/httpd.service` contains a line `PrivateTmp=true`. If
+so then Apache cannot see the `/tmp/.s.PGSQL.5432` file. It's a good security
+feature, so use the
+[preferred solution](../appendix/Install-on-Centos-7/#adding-selinux-security-settings).
However, you can solve this the quick and dirty way by commenting out that line and then run
### Website reports "DB Error: insufficient permissions"
-The user the webserver, e.g. Apache, runs under needs to have access to the Nominatim database. You can find the user like [this](https://serverfault.com/questions/125865/finding-out-what-user-apache-is-running-as), for default Ubuntu operating system for example it's `www-data`.
+The user the webserver, e.g. Apache, runs under needs to have access to the
+Nominatim database. You can find the user like
+[this](https://serverfault.com/questions/125865/finding-out-what-user-apache-is-running-as),
+for default Ubuntu operating system for example it's `www-data`.
1. Repeat the `createuser` step of the installation instructions.
CONTEXT: PL/pgSQL function make_standard_name(text) line 5 at assignment]
```
-The Postgresql database, i.e. user postgres, needs to have access to that file.
+The PostgreSQL database, i.e. user `postgres`, needs to have access to that file.
The permission need to be read & executable by everybody, e.g.
### Setup.php fails with "DB Error: extension not found"
-Make sure you have the Postgres extensions hstore and postgis installed.
-See the installation instruction for a full list of required packages.
-
-
-### Setup.php reports "Cannot redeclare getDB()"
-
-`Cannot redeclare getDB() (previously declared in /your/path/Nominatim/lib/db.php:4)`
-
-The message is a bit misleading as PHP needs to load the file `DB.php` and
-instead re-loads Nominatim's `db.php`. To solve this make sure you
-have the [Pear module 'DB'](http://pear.php.net/package/DB/) installed.
+Make sure you have the PostgreSQL extensions "hstore" and "postgis" installed.
+See the installation instructions for a full list of required packages.
- sudo pear install DB
### I forgot to delete the flatnodes file before starting an import.
## Running your own instance
-### Can I import multiple countries and keep them up to date?
-
-You should use the extracts and updates from https://download.geofabrik.de.
-For the initial import, download the countries you need and merge them.
-See [OSM Help](https://help.openstreetmap.org/questions/48843/merging-two-or-more-geographical-areas-to-import-two-or-more-osm-files-in-nominatim)
-for examples how to do that. Use the resulting single osm file when
-running `setup.php`.
-
-For updates you need to download the change files for each country
-once per day and apply them **separately** using
-
- ./utils/update.php --import-diff <filename> --index
-
-See [this issue](https://github.com/openstreetmap/Nominatim/issues/60#issuecomment-18679446)
-for a script that runs the updates using osmosis.
-
### Can I import negative OSM ids into Nominatim?
See [this question of Stackoverflow](https://help.openstreetmap.org/questions/64662/nominatim-flatnode-with-negative-id).
@define('CONST_Osm2pgsql_Flatnode_File', '/path/to/flatnode.file');
Replace the second part with a suitable path on your system and make sure
-the directory exists. There should be at least 40GB of free space.
+the directory exists. There should be at least 64GB of free space.
## Downloading additional data
-### Wikipedia rankings
+### Wikipedia/Wikidata rankings
Wikipedia can be used as an optional auxiliary data source to help indicate
-the importance of osm features. Nominatim will work without this information
+the importance of OSM features. Nominatim will work without this information
but it will improve the quality of the results if this is installed.
This data is available as a binary download:
cd $NOMINATIM_SOURCE_DIR/data
- wget https://www.nominatim.org/data/wikipedia_article.sql.bin
- wget https://www.nominatim.org/data/wikipedia_redirect.sql.bin
+ wget https://www.nominatim.org/data/wikimedia-importance.sql.gz
-Combined the 2 files are around 1.5GB and add around 30GB to the install
-size of nominatim. They also increase the install time by an hour or so.
+The file is about 400MB and adds around 4GB to Nominatim database.
-*NOTE:* you'll need to download the Wikipedia rankings before performing
-the initial import of the data if you want the rankings applied to the
-loaded data.
+!!! tip
+ If you forgot to download the wikipedia rankings, you can also add
+ importances after the import. Download the files, then run
+ `./utils/setup.php --import-wikipedia-articles`
+ and `./utils/update.php --recompute-importance`.
-### UK postcodes
+### Great Britain, USA postcodes
-Nominatim can use postcodes from an external source to improve searches that involve a UK postcode. This data can be optionally downloaded:
+Nominatim can use postcodes from an external source to improve searches that
+involve a GB or US postcode. This data can be optionally downloaded:
cd $NOMINATIM_SOURCE_DIR/data
wget https://www.nominatim.org/data/gb_postcode_data.sql.gz
+ wget https://www.nominatim.org/data/us_postcode_data.sql.gz
+## Choosing the Data to Import
+
+In its default setup Nominatim is configured to import the full OSM data
+set for the entire planet. Such a setup requires a powerful machine with
+at least 64GB of RAM and around 800GB of SSD hard disks. Depending on your
+use case there are various ways to reduce the amount of data imported. This
+section discusses these methods. They can also be combined.
+
+### Using an extract
+
+If you only need geocoding for a smaller region, then precomputed extracts
+are a good way to reduce the database size and import time.
+[Geofabrik](https://download.geofabrik.de) offers extracts for most countries.
+They even have daily updates which can be used with the update process described
+below. There are also
+[other providers for extracts](https://wiki.openstreetmap.org/wiki/Planet.osm#Downloading).
+
+Please be aware that some extracts are not cut exactly along the country
+boundaries. As a result some parts of the boundary may be missing which means
+that Nominatim cannot compute the areas for some administrative areas.
+
+### Dropping Data Required for Dynamic Updates
+
+About half of the data in Nominatim's database is not really used for serving
+the API. It is only there to allow the data to be updated from the latest
+changes from OSM. For many uses these dynamic updates are not really required.
+If you don't plan to apply updates, the dynamic part of the database can be
+safely dropped using the following command:
+
+```
+./utils/setup.php --drop
+```
+
+Note that you still need to provide for sufficient disk space for the initial
+import. So this option is particularly interesting if you plan to transfer the
+database or reuse the space later.
+
+### Reverse-only Imports
+
+If you only want to use the Nominatim database for reverse lookups or
+if you plan to use the installation only for exports to a
+[photon](https://photon.komoot.de/) database, then you can set up a database
+without search indexes. Add `--reverse-only` to your setup command above.
+
+This saves about 5% of disk space.
+
+### Filtering Imported Data
+
+Nominatim normally sets up a full search database containing administrative
+boundaries, places, streets, addresses and POI data. There are also other
+import styles available which only read selected data:
+
+* **settings/import-admin.style**
+ Only import administrative boundaries and places.
+* **settings/import-street.style**
+ Like the admin style but also adds streets.
+* **settings/import-address.style**
+ Import all data necessary to compute addresses down to house number level.
+* **settings/import-full.style**
+ Default style that also includes points of interest.
+* **settings/import-extratags.style**
+ Like the full style but also adds most of the OSM tags into the extratags
+ column.
+
+The style can be changed with the configuration `CONST_Import_Style`.
+
+To give you an idea of the impact of using the different styles, the table
+below gives rough estimates of the final database size after import of a
+2018 planet and after using the `--drop` option. It also shows the time
+needed for the import on a machine with 64GB RAM, 4 CPUS and SSDs. Note that
+the given sizes are just an estimate meant for comparison of style requirements.
+Your planet import is likely to be larger as the OSM data grows with time.
+
+style | Import time | DB size | after drop
+----------|--------------|------------|------------
+admin | 5h | 190 GB | 20 GB
+street | 42h | 400 GB | 180 GB
+address | 59h | 500 GB | 260 GB
+full | 80h | 575 GB | 300 GB
+extratags | 80h | 585 GB | 310 GB
+
+You can also customize the styles further. For a description of the
+style format see [the development section](../develop/Import.md).
## Initial import of the data
-**Important:** first try the import with a small excerpt, for example from
-[Geofabrik](https://download.geofabrik.de).
+!!! danger "Important"
+ First try the import with a small extract, for example from
+ [Geofabrik](https://download.geofabrik.de).
+
+Download the data to import and load the data with the following command
+from the build directory:
+
+```sh
+./utils/setup.php --osm-file <data file> --all 2>&1 | tee setup.log
+```
+
+***Note for full planet imports:*** Even on a perfectly configured machine
+the import of a full planet takes at least 2 days. Once you see messages
+with `Rank .. ETA` appear, the indexing process has started. This part takes
+the most time. There are 30 ranks to process. Rank 26 and 30 are the most complex.
+They take each about a third of the total import time. If you have not reached
+rank 26 after two days of import, it is worth revisiting your system
+configuration as it may not be optimal for the import.
+
+### Notes on memory usage
-Download the data to import and load the data with the following command:
+In the first step of the import Nominatim uses osm2pgsql to load the OSM data
+into the PostgreSQL database. This step is very demanding in terms of RAM usage.
+osm2pgsql and PostgreSQL are running in parallel at this point. PostgreSQL
+blocks at least the part of RAM that has been configured with the
+`shared_buffers` parameter during [PostgreSQL tuning](Installation#postgresql-tuning)
+and needs some memory on top of that. osm2pgsql needs at least 2GB of RAM for
+its internal data structures, potentially more when it has to process very large
+relations. In addition it needs to maintain a cache for node locations. The size
+of this cache can be configured with the parameter `--osm2pgsql-cache`.
+
+When importing with a flatnode file, it is best to disable the node cache
+completely and leave the memory for the flatnode file. Nominatim will do this
+by default, so you do not need to configure anything in this case.
+
+For imports without a flatnode file, set `--osm2pgsql-cache` approximately to
+the size of the OSM pbf file (in MB) you are importing. Make sure you leave
+enough RAM for PostgreSQL and osm2pgsql as mentioned above. If the system starts
+swapping or you are getting out-of-memory errors, reduce the cache size or
+even consider using a flatnode file.
+
+### Verify import finished
+
+Run this script to verify all required tables and indices got created successfully.
```sh
-./utils/setup.php --osm-file <data file> --all [--osm2pgsql-cache 28000] 2>&1 | tee setup.log
+./utils/check_import_finished.php
```
-The `--osm2pgsql-cache` parameter is optional but strongly recommended for
-planet imports. It sets the node cache size for the osm2pgsql import part
-(see `-C` parameter in osm2pgsql help). As a rule of thumb, this should be
-about the same size as the file you are importing but never more than
-2/3 of RAM available. If your machine starts swapping reduce the size.
-Computing word frequency for search terms can improve the performance of
-forward geocoding in particular under high load as it helps Postgres' query
-planner to make the right decisions. To recompute word counts run:
+## Tuning the database
+
+Accurate word frequency information for search terms helps PostgreSQL's query
+planner to make the right decisions. Recomputing them can improve the performance
+of forward geocoding in particular under high load. To recompute word counts run:
```sh
./utils/update.php --recompute-word-counts
./utils/specialphrases.php --wiki-import > specialphrases.sql
psql -d nominatim -f specialphrases.sql
-Note that this command downloads the phrases from the wiki link above.
+Note that this command downloads the phrases from the wiki link above. You
+need internet access for the step.
## Installing Tiger housenumber data for the US
-Nominatim is able to use the official TIGER address set to complement the
-OSM house number data in the US. You can add TIGER data to your own Nominatim
-instance by following these steps:
-
- 1. Install the GDAL library and python bindings and the unzip tool
+Nominatim is able to use the official [TIGER](https://www.census.gov/geographies/mapping-files/time-series/geo/tiger-line-file.html)
+address set to complement the OSM house number data in the US. You can add
+TIGER data to your own Nominatim instance by following these steps. The
+entire US adds about 10GB to your database.
- * Ubuntu: `sudo apt-get install python-gdal unzip`
- * CentOS: `sudo yum install gdal-python unzip`
-
- 2. Get preprocessed TIGER 2017 data and unpack it into the
+ 1. Get preprocessed TIGER 2019 data and unpack it into the
data directory in your Nominatim sources:
cd Nominatim/data
- wget https://nominatim.org/data/tiger2017-nominatim-preprocessed.tar.gz
- tar xf tiger2017-nominatim-preprocessed.tar.gz
+ wget https://nominatim.org/data/tiger2019-nominatim-preprocessed.tar.gz
+ tar xf tiger2019-nominatim-preprocessed.tar.gz
+
+ `data-source/us-tiger/README.md` explains how the data got preprocessed.
- 3. Import the data into your Nominatim database:
+ 2. Import the data into your Nominatim database:
./utils/setup.php --import-tiger-data
- 4. Enable use of the Tiger data in your `settings/local.php` by adding:
+ 3. Enable use of the Tiger data in your `settings/local.php` by adding:
@define('CONST_Use_US_Tiger_Data', true);
- 5. Apply the new settings:
+ 4. Apply the new settings:
```sh
./utils/setup.php --create-functions --enable-diff-updates --create-partition-functions
```
-The entire US adds about 10GB to your database.
-
-You can also process the data from the original TIGER data to create the
-SQL files, Nominatim needs for the import:
-
- 1. Get the TIGER 2017 data. You will need the EDGES files
- (3,234 zip files, 11GB total).
-
- wget -r ftp://ftp2.census.gov/geo/tiger/TIGER2017/EDGES/
-
- 2. Convert the data into SQL statements:
-
- ./utils/imports.php --parse-tiger <tiger edge data directory>
-
-Be warned that this can take quite a long time. After this process is finished,
-the same preprocessed files as above are available in `data/tiger`.
## Updates
-There are many different possibilities to update your Nominatim database.
+There are many different ways to update your Nominatim database.
The following section describes how to keep it up-to-date with Pyosmium.
For a list of other methods see the output of `./utils/update.php --help`.
+!!! warning
+ If you have configured a flatnode file for the import, then you
+ need to keep this flatnode file around for updates as well.
+
#### Installing the newest version of Pyosmium
-It is recommended to install Pyosmium via pip. Run (as the same user who
-will later run the updates):
+It is recommended to install Pyosmium via pip. Make sure to use python3.
+Run (as the same user who will later run the updates):
```sh
-pip install --user osmium
+pip3 install --user osmium
```
-Nominatim needs a tool called `pyosmium-get-updates`, which comes with
+Nominatim needs a tool called `pyosmium-get-updates` which comes with
Pyosmium. You need to tell Nominatim where to find it. Add the
following line to your `settings/local.php`:
If you want a different update source you will need to add some settings
to `settings/local.php`. For example, to use the daily country extracts
-diffs for Ireland from geofabrik add the following:
+diffs for Ireland from Geofabrik add the following:
// base URL of the replication service
@define('CONST_Replication_Url', 'https://download.geofabrik.de/europe/ireland-and-northern-ireland-updates');
It outputs the date where updates will start. Recheck that this date is
what you expect.
-The --init-updates command needs to be rerun whenever the replication service
+The `--init-updates` command needs to be rerun whenever the replication service
is changed.
#### Updating Nominatim
./utils/update.php --import-osmosis-all
-(Note that even though the old name "import-osmosis-all" has been kept for compatibility reasons, Osmosis is not required to run this - it uses pyosmium behind the scenes.)
+(Note that even though the old name "import-osmosis-all" has been kept for
+compatibility reasons, Osmosis is not required to run this - it uses pyosmium
+behind the scenes.)
If you have imported multiple country extracts and want to keep them
-up-to-date, have a look at the script in
-[issue #60](https://github.com/openstreetmap/Nominatim/issues/60).
-
+up-to-date, [Advanced installations section](Advanced-Installations.md) contains instructions
+to set up and update multiple country extracts.
\ No newline at end of file
prerequisites. There are also step-by-step instructions available for
the following operating systems:
+ * [Ubuntu 20.04](../appendix/Install-on-Ubuntu-20.md)
* [Ubuntu 18.04](../appendix/Install-on-Ubuntu-18.md)
- * [Ubuntu 16.04](../appendix/Install-on-Ubuntu-16.md)
+ * [CentOS 8](../appendix/Install-on-Centos-8.md)
* [CentOS 7.2](../appendix/Install-on-Centos-7.md)
These OS-specific instructions can also be found in executable form
For compiling:
* [cmake](https://cmake.org/)
- * [libxml2](http://xmlsoft.org/)
- * a recent C++ compiler
-
-Nominatim comes with its own version of osm2pgsql. See the
-osm2pgsql README for additional dependencies required for compiling osm2pgsql.
-
-For running tests:
-
- * [behave](http://pythonhosted.org/behave/)
- * [Psycopg2](http://initd.org/psycopg)
- * [nose](https://nose.readthedocs.io)
- * [phpunit](https://phpunit.de)
+ * [expat](https://libexpat.github.io/)
+ * [proj](https://proj.org/)
+ * [bzip2](http://www.bzip.org/)
+ * [zlib](https://www.zlib.net/)
+ * [Boost libraries](https://www.boost.org/), including system and filesystem
+ * PostgreSQL client libraries
+ * a recent C++ compiler (gcc 5+ or Clang 3.8+)
For running Nominatim:
- * [PostgreSQL](http://www.postgresql.org) (9.1 or later)
- * [PostGIS](http://postgis.refractions.net) (2.0 or later)
- * [PHP](http://php.net) (5.4 or later)
+ * [PostgreSQL](https://www.postgresql.org) (9.3 - 11)
+ * [PostGIS](https://postgis.org) (2.2 - 2.5)
+ * [Python 3](https://www.python.org/)
+ * [Psycopg2](https://initd.org/psycopg)
+ * [PHP](https://php.net) (7.0 or later)
* PHP-pgsql
* PHP-intl (bundled with PHP)
- * [PEAR::DB](http://pear.php.net/package/DB)
* a webserver (apache or nginx are recommended)
+!!! danger "Important"
+ Postgresql 12+ and Postgis 3.0+ are known to cause performance issues. They are
+ not recommended for a production installation at the moment.
+
For running continuous updates:
- * [pyosmium](http://osmcode.org/pyosmium/)
+ * [pyosmium](https://osmcode.org/pyosmium/) (with Python 3)
+
+For running tests:
+
+ * [behave](http://pythonhosted.org/behave/)
+ * [nose](https://nose.readthedocs.io)
+ * [phpunit](https://phpunit.de) >= 7.3
### Hardware
A minimum of 2GB of RAM is required or installation will fail. For a full
-planet import 32GB of RAM or more strongly are recommended.
+planet import 64GB of RAM or more are strongly recommended. Do not report
+out of memory problems if you have less than 64GB RAM.
-For a full planet install you will need at least 700GB of hard disk space
+For a full planet install you will need at least 800GB of hard disk space
(take into account that the OSM database is growing fast). SSD disks
will help considerably to speed up import and queries.
-On a 6-core machine with 32GB RAM and SSDs the import of a full planet takes
-a bit more than 2 days. Without SSDs 7-8 days are more realistic.
-
+Even on a well configured machine the import of a full planet takes
+at least 2 days. Without SSDs 7-8 days are more realistic.
## Setup of the server
make best use of your hardware. You should tune the following parameters in
your `postgresql.conf` file.
- shared_buffers (2GB)
- maintenance_work_mem (10GB)
- work_mem (50MB)
- effective_cache_size (24GB)
+ shared_buffers = 2GB
+ maintenance_work_mem = (10GB)
+ autovacuum_work_mem = 2GB
+ work_mem = (50MB)
+ effective_cache_size = (24GB)
synchronous_commit = off
checkpoint_segments = 100 # only for postgresql <= 9.4
+ max_wal_size = 1GB # postgresql > 9.4
checkpoint_timeout = 10min
checkpoint_completion_target = 0.9
The numbers in brackets behind some parameters seem to work fine for
-32GB RAM machine. Adjust to your setup.
+64GB RAM machine. Adjust to your setup. A higher number for `max_wal_size`
+means that PostgreSQL needs to run checkpoints less often but it does require
+the additional space on your disk.
+
+Autovacuum must not be switched off because it ensures that the
+tables are frequently analysed. If your machine has very little memory,
+you might consider setting:
+
+ autovacuum_max_workers = 1
+
+and even reduce `autovacuum_work_mem` further. This will reduce the amount
+of memory that autovacuum takes away from the import process.
For the initial import, you should also set:
full_page_writes = off
Don't forget to reenable them after the initial import or you risk database
-corruption. Autovacuum must not be switched off because it ensures that the
-tables are frequently analysed.
+corruption.
+
### Webserver setup
This page describes database migrations necessary to update existing databases
to newer versions of Nominatim.
-SQL statements should be executed from the postgres commandline. Execute
-`psql nominiatim` to enter command line mode.
+SQL statements should be executed from the PostgreSQL commandline. Execute
+`psql nominatim` to enter command line mode.
+
+## 3.4.0 -> master
+
+### New Wikipedia/Wikidata importance tables
+
+The `wikipedia_*` tables have a new format that also includes references to
+Wikidata. You need to update the computation functions and the tables as
+follows:
+
+ * download the new Wikipedia tables as described in the import section
+ * reimport the tables: `./utils/setup.php --import-wikipedia-articles`
+ * update the functions: `./utils/setup.php --create-functions --enable-diff-updates`
+ * compute importance: `./utils/update.php --recompute-importance`
+
+The last step takes about 10 hours on the full planet.
+
+## 3.3.0 -> 3.4.0
+
+### Reorganisation of location_area_country table
+
+The table `location_area_country` has been optimized. You need to switch to the
+new format when you run updates. While updates are disabled, run the following
+SQL commands:
+
+```sql
+CREATE TABLE location_area_country_new AS
+ SELECT place_id, country_code, geometry FROM location_area_country;
+DROP TABLE location_area_country;
+ALTER TABLE location_area_country_new RENAME TO location_area_country;
+CREATE INDEX idx_location_area_country_geometry ON location_area_country USING GIST (geometry);
+CREATE INDEX idx_location_area_country_place_id ON location_area_country USING BTREE (place_id);
+```
+
+## 3.2.0 -> 3.3.0
+
+### New database connection string (DSN) format
+
+Previously database connection setting (`CONST_Database_DSN` in `settings/*.php`) had the format
+
+ * (simple) `pgsql://@/nominatim`
+ * (complex) `pgsql://johndoe:secret@machine1.domain.com:1234/db1`
+
+The new format is
+
+ * (simple) `pgsql:dbname=nominatim`
+ * (complex) `pgsql:dbname=db1;host=machine1.domain.com;port=1234;user=johndoe;password=secret`
+
+### Natural Earth country boundaries no longer needed as fallback
+
+```
+DROP TABLE country_naturalearthdata;
+```
+
+Finally, update all SQL functions:
+
+```sh
+./utils/setup.php --create-functions --enable-diff-updates --create-partition-functions
+```
+
+### Configurable Address Levels
+
+The new configurable address levels require a new table. Create it with the
+following command:
+
+```sh
+./utils/update.php --update-address-levels
+```
## 3.1.0 -> 3.2.0
```
CREATE INDEX idx_placex_geometry_reverse_lookupPoint
- ON placex USING gist (geometry) {ts:search-index}
+ ON placex USING gist (geometry)
WHERE (name is not null or housenumber is not null or rank_address between 26 and 27)
AND class not in ('railway','tunnel','bridge','man_made')
AND rank_address >= 26 AND indexed_status = 0 AND linked_place_id is null;
CREATE INDEX idx_placex_geometry_reverse_lookupPolygon
- ON placex USING gist (geometry) {ts:search-index}
+ ON placex USING gist (geometry)
WHERE St_GeometryType(geometry) in ('ST_Polygon', 'ST_MultiPolygon')
AND rank_address between 4 and 25 AND type != 'postcode'
AND name is not null AND indexed_status = 0 AND linked_place_id is null;
CREATE INDEX idx_placex_geometry_reverse_placeNode
- ON placex USING gist (geometry) {ts:search-index}
+ ON placex USING gist (geometry)
WHERE osm_type = 'N' AND rank_search between 5 and 25
AND class = 'place' AND type != 'postcode'
AND name is not null AND indexed_status = 0 AND linked_place_id is null;
Replace the `www-user` with the user name of your website server if necessary.
-Finally, you can drop the now unused indexes:
+You can now drop the unused indexes:
```
DROP INDEX idx_placex_reverse_geometry;
```
+Finally, update all SQL functions:
+
+```sh
+./utils/setup.php --create-functions --enable-diff-updates --create-partition-functions
+```
+
## 3.0.0 -> 3.1.0
### Postcode Table
at random and displayed.
```
- https://nominatim.openstreetmap.org/details?placeid=<value>
+ https://nominatim.openstreetmap.org/details?place_id=<value>
```
Placeids are assigned sequentially during Nominatim data import. The id for a place is different between Nominatim installation (servers) and changes when data gets reimported. Therefore it can't be used as permanent id and shouldn't be used in bug reports.
* `json_callback=<string>`
-Wrap json output in a callback function (JSONP) i.e. `<string>(<json>)`.
+Wrap JSON output in a callback function (JSONP) i.e. `<string>(<json>)`.
Only has an effect for JSON output formats.
* `pretty=[0|1]`
Nominatim computes the address from two sources in the OpenStreetMap data:
from administrative boundaries and from place nodes. Boundaries are the more
useful source. They precisely describe an area. So it is very clear for
-Nominatim if a point belongs to an area of not. Place nodes are more complicated.
-These are only points without any precise extend. So Nominatim has to take a
-guess and assume that an address belongs to the closest place nose it can find.
+Nominatim if a point belongs to an area or not. Place nodes are more complicated.
+These are only points without any precise extent. So Nominatim has to take a
+guess and assume that an address belongs to the closest place node it can find.
In an ideal world, Nominatim would not need the place nodes but there are
-many places on earth where there are not precise boundaries available for
+many places on earth where there are no precise boundaries available for
all parts that make up an address. This is in particular true for the more
local address parts, like villages and suburbs. Therefore it is not possible
to completely dismiss place nodes. And sometimes they sneak in where they
see a place node for which already an administrative area exists, then you
should _link_ the two by adding the node with a 'label' role to the boundary
relation. If there is no administrative area, you can add the approximate
-extend of the place and tag it place=<something> as well.
+extent of the place and tag it place=<something> as well.
#### 2. When doing reverse search, the address details have parts that don't contain the point I was looking up.
returns the closest object to the point you asked for and then returns the
address of that object. Now, if you are close to a border, then the closest
object may be across that border. When Nominatim then returns the address,
-contains the county/state/country across the border.
+it contains the county/state/country across the border.
#### 3. I get different counties/states/countries when I change the zoom parameter in the reverse query. How is that possible?
the address of the closest object found, you might sometimes get one result,
sometimes the other for the closest point.
+#### 4. Can you return the continent?
+
+Nominatim assigns each map feature one country. Those outside any administrative
+boundaries are assigned a special no-country. Continents or other super-national
+administrations (e.g. European Union, NATO, Custom unions) are not supported,
+see also [Administrative Boundary](https://wiki.openstreetmap.org/wiki/Tag:boundary%3Dadministrative#Super-national_administrations).
+
+#### 5. Can you return the timezone?
+
+See this separate OpenStreetMap-based project [Timezone Boundary Builder](https://github.com/evansiroky/timezone-boundary-builder).
+
+#### 6. I want to download a list of streets/restaurants of a city/region
+
+The [Overpass API](https://wiki.openstreetmap.org/wiki/Overpass_API) is more
+suited for these kinds of queries.
+
+That said if you installed your own Nominatim instance you can use the
+`/utils/export.php` PHP script as basis to return such lists.
### Output format
-* `format=[html|xml|json|jsonv2|geojson|geocodejson]`
+* `format=[xml|json|jsonv2|geojson|geocodejson]`
See [Place Output Formats](Output.md) for details on each format. (Default: xml)
* `json_callback=<string>`
-Wrap json output in a callback function (JSONP) i.e. `<string>(<json>)`.
+Wrap JSON output in a callback function (JSONP) i.e. `<string>(<json>)`.
Only has an effect for JSON output formats.
### Output details
# Place Output
-The [\reverse](Reverse.md), [\search](Search.md) and [\lookup](Lookup.md)
+The [/reverse](Reverse.md), [/search](Search.md) and [/lookup](Lookup.md)
API calls produce very similar output which is explained in this section.
There is one section for each format which is selectable via the `format`
parameter.
The possible fields are:
- * `place_id` - reference to the Nominatim internal database ID
+ * `place_id` - reference to the Nominatim internal database ID ([see notes](#place_id-is-not-a-persistent-id))
* `osm_type`, `osm_id` - reference to the OSM object
- * `boundingbox` - area of corner coordinates
+ * `boundingbox` - area of corner coordinates ([see notes](#boundingbox))
* `lat`, `lon` - latitude and longitude of the centroid of the object
* `display_name` - full comma-separated address
* `class`, `type` - key and value of the main OSM tag
### GeoJSON
-This format follows the [RFC7946](http://geojson.org). Every feature includes
+This format follows the [RFC7946](https://geojson.org). Every feature includes
a bounding box (`bbox`).
The feature list has the following fields:
- * `place_id` - reference to the Nominatim internal database ID
+ * `place_id` - reference to the Nominatim internal database ID ([see notes](#place_id-is-not-a-persistent-id))
* `osm_type`, `osm_id` - reference to the OSM object
* `category`, `type` - key and value of the main OSM tag
* `display_name` - full comma-separated address
* `importance` - computed importance rank
* `icon` - link to class icon (if available)
* `address` - dictionary of address details (only with `addressdetails=1`)
- * `extratags` - dictionary with additional useful tags like website or maxspeed
+ * `extratags` - dictionary with additional useful tags like `website` or `maxspeed`
(only with `extratags=1`)
* `namedetails` - dictionary with full list of available names including ref etc.
* `type` - value of the main tag of the object (e.g. residential, restaurant, ...)
* `label` - full comma-separated address
* `name` - localised name of the place
- * `housenumber`, `street`, `locality`, `postcode`, `city`,
- `district`, `county`, `state`, `country` -
+ * `housenumber`, `street`, `locality`, `district`, `postcode`, `city`,
+ `county`, `state`, `country` -
provided when it can be determined from the address
- (see [this issue](https://github.com/openstreetmap/Nominatim/issues/1080) for
- current limitations on the correctness of the address) and `addressdetails=1`
- was given
* `admin` - list of localised names of administrative boundaries (only with `addressdetails=1`)
Use `polygon_geojson` to output the full geometry of the object instead
```
<reversegeocode timestamp="Sat, 11 Aug 18 11:53:21 +0000"
- attribution="Data © OpenStreetMap contributors, ODbL 1.0. http://www.openstreetmap.org/copyright"
+ attribution="Data © OpenStreetMap contributors, ODbL 1.0. https://www.openstreetmap.org/copyright"
querystring="lat=48.400381&lon=11.745876&zoom=5&format=xml">
<result place_id="179509537" osm_type="relation" osm_id="2145268" ref="BY"
lat="48.9467562" lon="11.4038717"
The place information can be found in the `result` element. The attributes of that element contain:
- * `place_id` - reference to the Nominatim internal database ID
+ * `place_id` - reference to the Nominatim internal database ID ([see notes](#place_id-is-not-a-persistent-id))
* `osm_type`, `osm_id` - reference to the OSM object
* `ref` - content of `ref` tag if it exists
* `lat`, `lon` - latitude and longitude of the centroid of the object
- * `boundingbox` - comma-separated list of corner coordinates
+ * `boundingbox` - comma-separated list of corner coordinates ([see notes](#boundingbox))
-The full address address of the result can be found in the content of the
+The full address of the result can be found in the content of the
`result` element as a comma-separated list.
Additional information requested with `addressdetails=1`, `extratags=1` and
```
<searchresults timestamp="Sat, 11 Aug 18 11:55:35 +0000"
- attribution="Data © OpenStreetMap contributors, ODbL 1.0. http://www.openstreetmap.org/copyright"
+ attribution="Data © OpenStreetMap contributors, ODbL 1.0. https://www.openstreetmap.org/copyright"
querystring="london" polygon="false" exclude_place_ids="100149"
more_url="https://nominatim.openstreetmap.org/search.php?q=london&addressdetails=1&extratags=1&exclude_place_ids=100149&format=xml&accept-language=en-US%2Cen%3Bq%3D0.7%2Cde%3Bq%3D0.3">
<place place_id="100149" osm_type="node" osm_id="107775" place_rank="15"
boundingbox="51.3473219,51.6673219,-0.2876474,0.0323526" lat="51.5073219" lon="-0.1276474"
- display_name="London, Greater London, England, SW1A 2DU, United Kingdom"
+ display_name="London, Greater London, England, SW1A 2DU, United Kingdom"
class="place" type="city" importance="0.9654895765402"
icon="https://nominatim.openstreetmap.org/images/mapicons/poi_place_city.p.20.png">
<extratags>
The place information can be found in the `place` elements, of which there may
be more than one. The attributes of that element contain:
- * `place_id` - reference to the Nominatim internal database ID
+ * `place_id` - reference to the Nominatim internal database ID ([see notes](#place_id-is-not-a-persistent-id))
* `osm_type`, `osm_id` - reference to the OSM object
* `ref` - content of `ref` tag if it exists
* `lat`, `lon` - latitude and longitude of the centroid of the object
- * `boundingbox` - comma-separated list of corner coordinates
+ * `boundingbox` - comma-separated list of corner coordinates ([see notes](#boundingbox))
* `place_rank` - class search rank
* `display_name` - full comma-separated address
* `class`, `type` - key and value of the main OSM tag
Additional information requested with `extratags=1` and `namedetails=1` can
be found in extra elements as sub-element of each place.
+
+## Notes on field values
+
+### place_id is not a persistent id
+
+The `place_id` is created when a Nominatim database gets installed. A
+single place will have a different value on another server or even when
+the same data gets re-imported. It's thus not useful to treat it as
+permanent for later use.
+
+The combination `osm_type`+`osm_id` is slighly better but remember in
+OpenStreetMap mappers can delete, split, recreate places (and those
+get a new `osm_id`), there is no link between those old and new ids.
+Places can also change their meaning without changing their `osm_id`,
+e.g. when a restaurant is retagged as supermarket. For a more in-depth
+discussion see [Permanent ID](https://wiki.openstreetmap.org/wiki/Permanent_ID).
+
+Nominatim merges some places (e.g. center node of a city with the boundary
+relation) so `osm_type`+`osm_id`+`class_name` would be more unique.
+
+### boundingbox
+
+Comma separated list of min latitude, max latitude, min longitude, max longitude.
+The whole planet would be `-90,90,-180,180`.
+
+Can we used to pan and center the map on the result, for example with leafletjs
+mapping library
+`map.fitBounds([[bbox[0],bbox[2]],[bbox[1],bbox[3]]], {padding: [20, 20], maxzoom: 16});`
+
+Bounds crossing the antimeridian have a min latitude -180 and max latitude 180,
+essentially covering the planet (See [issue 184](https://github.com/openstreetmap/Nominatim/issues/184)).
* __[/search](Search.md)__ - search OSM objects by name or type
* __[/reverse](Reverse.md)__ - search OSM object by their location
* __[/lookup](Lookup.md)__ - look up address details for OSM objects by their ID
- * __/status__ - query the status of the server
+ * __[/status](Status.md)__ - query the status of the server
* __/deletable__ - list objects that have been deleted in OSM but are held
back in Nominatim in case the deletion was accidental
* __/polygons__ - list of broken polygons detected by Nominatim
A specific OSM node(N), way(W) or relation(R) to return an address for.
-In both cases exactly one object is returned. The two input paramters cannot
+In both cases exactly one object is returned. The two input parameters cannot
be used at the same time. Both accept the additional optional parameters listed
below.
* `json_callback=<string>`
-Wrap json output in a callback function ([JSONP](https://en.wikipedia.org/wiki/JSONP)) i.e. `<string>(<json>)`.
+Wrap JSON output in a callback function ([JSONP](https://en.wikipedia.org/wiki/JSONP)) i.e. `<string>(<json>)`.
Only has an effect for JSON output formats.
### Output details
8 | county
10 | city
14 | suburb
- 16 | street
+ 16 | major streets
+ 17 | major and minor streets
18 | building
<postcode>B72</postcode>
<country>United Kingdom</country>
<country_code>gb</country_code>
- </addressparts>
+ </addressparts>
</reversegeocode>
```
```json
{
"place_id":"134140761",
- "licence":"Data © OpenStreetMap contributors, ODbL 1.0. http:\/\/www.openstreetmap.org\/copyright",
+ "licence":"Data © OpenStreetMap contributors, ODbL 1.0. https:\/\/www.openstreetmap.org\/copyright",
"osm_type":"way",
"osm_id":"280940520",
"lat":"-34.4391708",
# Search queries
-The search API allows to look up a location from a textual description.
+The search API allows you to look up a location from a textual description.
Nominatim supports structured as well as free-form search queries.
The search query may also contain
Structured requests are faster but are less robust against alternative
OSM tagging schemas. **Do not combine with** `q=<query>` **parameter**.
-All three query forms accept the additional paramters listed below.
+All three query forms accept the additional parameters listed below.
### Output format
* `json_callback=<string>`
-Wrap json output in a callback function ([JSONP](https://en.wikipedia.org/wiki/JSONP)) i.e. `<string>(<json>)`.
+Wrap JSON output in a callback function ([JSONP](https://en.wikipedia.org/wiki/JSONP)) i.e. `<string>(<json>)`.
Only has an effect for JSON output formats.
### Output details
* `countrycodes=<countrycode>[,<countrycode>][,<countrycode>]...`
Limit search results to one or more countries. `<countrycode>` must be the
-ISO 3166-1alpha2 code, e.g. `gb` for the United Kingdom, `de` for Germany.
+[ISO 3166-1alpha2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) code,
+e.g. `gb` for the United Kingdom, `de` for Germany.
+Each place in Nominatim is assigned to one country code based
+on `admin_level=2` tags, in rare cases to none (for example in
+international waters outside any country).
* `exclude_place_ids=<place_id,[place_id],[place_id]`
* `viewbox=<x1>,<y1>,<x2>,<y2>`
The preferred area to find search results. Any two corner points of the box
-are accepted in any order as long as they span a real box.
+are accepted in any order as long as they span a real box. `x` is longitude,
+`y` is latitude.
* `bounded=[0|1]`
## Examples
-##### XML with polygon points
+##### XML with kml polygon
-* [https://nominatim.openstreetmap.org/search?q=135+pilkington+avenue,+birmingham&format=xml&polygon=1&addressdetails=1](https://nominatim.openstreetmap.org/search?q=135+pilkington+avenue,+birmingham&format=xml&polygon=1&addressdetails=1)
-* [https://nominatim.openstreetmap.org/search/gb/birmingham/pilkington%20avenue/135?format=xml&polygon=1&addressdetails=1](https://nominatim.openstreetmap.org/search/gb/birmingham/pilkington%20avenue/135?format=xml&polygon=1&addressdetails=1)
-* [https://nominatim.openstreetmap.org/search/135%20pilkington%20avenue,%20birmingham?format=xml&polygon=1&addressdetails=1](https://nominatim.openstreetmap.org/search/135%20pilkington%20avenue,%20birmingham?format=xml&polygon=1&addressdetails=1)
+* [https://nominatim.openstreetmap.org/search?q=135+pilkington+avenue,+birmingham&format=xml&polygon_geojson=1&addressdetails=1](https://nominatim.openstreetmap.org/search?q=135+pilkington+avenue,+birmingham&format=xml&polygon_geojson=1&addressdetails=1)
```xml
<searchresults timestamp="Sat, 07 Nov 09 14:42:10 +0000" querystring="135 pilkington, avenue birmingham" polygon="true">
- <place
- place_id="1620612" osm_type="node" osm_id="452010817"
- boundingbox="52.548641204834,52.5488433837891,-1.81612110137939,-1.81592094898224"
- polygonpoints="[['-1.81592098644987','52.5487429714954'],['-1.81592290792183','52.5487234624632'],...]"
- lat="52.5487429714954" lon="-1.81602098644987"
- display_name="135, Pilkington Avenue, Wylde Green, City of Birmingham, West Midlands (county), B72, United Kingdom"
+ <place
+ place_id="1620612" osm_type="node" osm_id="452010817"
+ boundingbox="52.548641204834,52.5488433837891,-1.81612110137939,-1.81592094898224"
+ lat="52.5487429714954" lon="-1.81602098644987"
+ display_name="135, Pilkington Avenue, Wylde Green, City of Birmingham, West Midlands (county), B72, United Kingdom"
class="place" type="house">
+ <geokml>
+ <Polygon>
+ <outerBoundaryIs>
+ <LinearRing>
+ <coordinates>-1.816513,52.548756599999997 -1.816434,52.548747300000002 -1.816429,52.5487629 -1.8163717,52.548756099999999 -1.8163464,52.548834599999999 -1.8164599,52.548848100000001 -1.8164685,52.5488213 -1.8164913,52.548824000000003 -1.816513,52.548756599999997</coordinates>
+ </LinearRing>
+ </outerBoundaryIs>
+ </Polygon>
+ </geokml>
<house_number>135</house_number>
<road>Pilkington Avenue</road>
<village>Wylde Green</village>
##### JSON with address details
-[https://nominatim.openstreetmap.org/?format=json&addressdetails=1&q=bakery+in+berlin+wedding&format=json&limit=1](https://nominatim.openstreetmap.org/?format=json&addressdetails=1&q=bakery+in+berlin+wedding&format=json&limit=1)
+[https://nominatim.openstreetmap.org/?addressdetails=1&q=bakery+in+berlin+wedding&format=json&limit=1](https://nominatim.openstreetmap.org/?addressdetails=1&q=bakery+in+berlin+wedding&format=json&limit=1)
```json
{
--- /dev/null
+# Status
+
+Useful for checking if the service and database is running. The JSON output also shows
+when the database was last updated.
+
+## Parameters
+
+* `format=[text|json]` (defaults to 'text')
+
+
+## Output
+
+#### Text format
+
+```
+ https://nominatim.openstreetmap.org/status.php
+```
+
+will return HTTP status code 200 and print `OK`.
+
+On error it will return HTTP status code 500 and print a message, e.g.
+`ERROR: Database connection failed`.
+
+
+
+#### JSON format
+
+```
+ https://nominatim.openstreetmap.org/status.php?format=json
+```
+
+will return HTTP code 200 and a structure
+
+```json
+ {
+ "status": 0,
+ "message": "OK",
+ "data_updated": "2020-05-04T14:47:00+00:00"
+ }
+```
+
+On error will also return HTTP status code 200 and a structure with error
+code and message, e.g.
+
+```json
+ {
+ "status": 700,
+ "message": "Database connection failed"
+ }
+```
+
+Possible status codes are
+
+ | | message | notes |
+ |-----|----------------------|---------------------------------------------------|
+ | 700 | "No database" | connection failed |
+ | 701 | "Module failed" | database could not load nominatim.so |
+ | 702 | "Module call failed" | nominatim.so loaded but calling a function failed |
+ | 703 | "Query failed" | test query against a database table failed |
+ | 704 | "No value" | test query worked but returned no results |
--- /dev/null
+# Additional Data Sources
+
+This guide explains how data sources other than OpenStreetMap mentioned in
+the install instructions got obtained and converted.
--- /dev/null
+# Documentation Pages
+
+The [Nominatim documentation](https://nominatim.org/release-docs/develop/) is built using the [MkDocs](https://www.mkdocs.org/) static site generation framework. The master branch is automatically deployed every night on under [https://nominatim.org/release-docs/develop/](https://nominatim.org/release-docs/develop/)
+
+To preview local changes, first install MkDocs
+
+```
+pip3 install --user mkdocs
+```
+
+
+Then go to the build directory and run
+
+```
+make doc
+INFO - Cleaning site directory
+INFO - Building documentation to directory: /home/vagrant/build/site-html
+```
+
+This runs `mkdocs build` plus extra transformation of some files and adds
+symlinks (see `CMakeLists.txt` for the exact steps).
+
+Now you can start webserver for local testing
+
+```
+build> mkdocs serve
+[server:296] Serving on http://127.0.0.1:8000
+[handlers:62] Start watching changes
+```
+
+If you develop inside a Vagrant virtual machine:
+
+ * add port forwarding to your Vagrantfile,
+ e.g. `config.vm.network "forwarded_port", guest: 8000, host: 8000`
+ * use `mkdocs serve --dev-addr 0.0.0.0:8000` because the default localhost
+ IP does not get forwarded.
--- /dev/null
+# OSM Data Import
+
+OSM data is initially imported using osm2pgsql. Nominatim uses its own data
+output style 'gazetteer', which differs from the output style created for
+map rendering.
+
+## Database Layout
+
+The gazetteer style produces a single table `place` with the following rows:
+
+ * `osm_type` - kind of OSM object (**N** - node, **W** - way, **R** - relation)
+ * `osm_id` - original OSM ID
+ * `class` - key of principal tag defining the object type
+ * `type` - value of principal tag defining the object type
+ * `name` - collection of tags that contain a name or reference
+ * `admin_level` - numerical value of the tagged administrative level
+ * `address` - collection of tags defining the address of an object
+ * `extratags` - collection of additional interesting tags that are not
+ directly relevant for searching
+ * `geometry` - geometry of the object (in WGS84)
+
+A single OSM object may appear multiple times in this table when it is tagged
+with multiple tags that may constitute a principal tag. Take for example a
+motorway bridge. In OSM, this would be a way which is tagged with
+`highway=motorway` and `bridge=yes`. This way would appear in the `place` table
+once with `class` of `highway` and once with a `class` of `bridge`. Thus the
+*unique key* for `place` is (`osm_type`, `osm_id`, `class`).
+
+## Configuring the Import
+
+How tags are interpreted and assigned to the different `place` columns can be
+configured via the import style configuration file (`CONST_Import_style`). This
+is a JSON file which contains a list of rules which are matched against every
+tag of every object and then assign the tag its specific role.
+
+### Configuration Rules
+
+A single rule looks like this:
+
+```json
+{
+ "keys" : ["key1", "key2", ...],
+ "values" : {
+ "value1" : "prop",
+ "value2" : "prop1,prop2"
+ }
+}
+```
+
+A rule first defines a list of keys to apply the rule to. This is always a list
+of strings. The string may have four forms. An empty string matches against
+any key. A string that ends in an asterisk `*` is a prefix match and accordingly
+matches against any key that starts with the given string (minus the `*`). A
+suffix match can be defined similarly with a string that starts with a `*`. Any
+other string constitutes an exact match.
+
+The second part of the rules defines a list of values and the properties that
+apply to a successful match. Value strings may be either empty, which
+means that they match any value, or describe an exact match. Prefix
+or suffix matching of values is not possible.
+
+For a rule to match, it has to find a valid combination of keys and values. The
+resulting property is that of the matched values.
+
+The rules in a configuration file are processed sequentially and the first
+match for each tag wins.
+
+A rule where key and value are the empty string is special. This defines the
+fallback when none of the rules match. The fallback is always used as a last
+resort when nothing else matches, no matter where the rule appears in the file.
+Defining multiple fallback rules is not allowed. What happens in this case,
+is undefined.
+
+### Tag Properties
+
+One or more of the following properties may be given for each tag:
+
+* `main`
+
+ A principal tag. A new row will be added for the object with key and value
+ as `class` and `type`.
+
+* `with_name`
+
+ When the tag is a principal tag (`main` property set): only really add a new
+ row, if there is any name tag found (a reference tag is not sufficient, see
+ below).
+
+* `with_name_key`
+
+ When the tag is a principal tag (`main` property set): only really add a new
+ row, if there is also a name tag that matches the key of the principal tag.
+ For example, if the main tag is `bridge=yes`, then it will only be added as
+ an extra row, if there is a tag `bridge:name[:XXX]` for the same object.
+ If this property is set, all other names that are not domain-specific are
+ ignored.
+
+* `fallback`
+
+ When the tag is a principal tag (`main` property set): only really add a new
+ row, when no other principal tags for this object have been found. Only one
+ fallback tag can win for an object.
+
+* `operator`
+
+ When the tag is a principal tag (`main` property set): also include the
+ `operator` tag in the list of names. This is a special construct for an
+ out-dated tagging practise in OSM. Fuel stations and chain restaurants
+ in particular used to have the name of the chain tagged as `operator`.
+ These days the chain can be more commonly found in the `brand` tag but
+ there is still enough old data around to warrant this special case.
+
+* `name`
+
+ Add tag to the list of names.
+
+* `ref`
+
+ Add tag to the list of names as a reference. At the moment this only means
+ that the object is not considered to be named for `with_name`.
+
+* `address`
+
+ Add tag to the list of address tags. If the tag starts with `addr:` or
+ `is_in:`, then this prefix is cut off before adding it to the list.
+
+* `postcode`
+
+ Add the value as a postcode to the address tags. If multiple tags are
+ candidate for postcodes, one wins out and the others are dropped.
+
+* `country`
+
+ Add the value as a country code to the address tags. The value must be a
+ two letter country code, otherwise it is ignored. If there are multiple
+ tags that match, then one wins out and the others are dropped.
+
+* `house`
+
+ If no principle tags can be found for the object, still add the object with
+ `class`=`place` and `type`=`house`. Use this for address nodes that have no
+ other function.
+
+* `interpolation`
+
+ Add this object as an address interpolation (appears as `class`=`place` and
+ `type`=`houses` in the database).
+
+* `extra`
+
+ Add tag to the list of extra tags.
+
+* `skip`
+
+ Skip the tag completely. Useful when a custom default fallback is defined
+ or to define exceptions to rules.
+
+A rule can define as many of these properties for one match as it likes. For
+example, if the property is `"main,extra"` then the tag will open a new row
+but also have the tag appear in the list of extra tags.
+
+There are a number of pre-defined styles in the `settings/` directory. It is
+advisable to start from one of these styles when defining your own.
+
+### Changing the Style of Existing Databases
+
+There is normally no issue changing the style of a database that is already
+imported and now kept up-to-date with change files. Just be aware that any
+change in the style applies to updates only. If you want to change the data
+that is already in the database, then a reimport is necessary.
--- /dev/null
+# Postcodes in Nominatim
+
+The blog post
+[Nominatim and Postcodes](https://www.openstreetmap.org/user/lonvia/diary/43143)
+describes the handling implemented since Nominatim 3.1.
+
+Postcode centroids (aka 'calculated postcodes') are generated by looking at all
+postcodes of a country, grouping them and calculating the geometric centroid.
+There is currently no logic to deal with extreme outliers (typos or other
+mistakes in OSM data). There is also no check if a postcodes adheres to a
+country's format, e.g. if Swiss postcodes are 4 digits.
+
+
+## Regular updating calculated postcodes
+
+The script to rerun the calculation is
+`build/utils/update.php --calculate-postcodes`
+and runs once per night on nominatim.openstreetmap.org.
+
+
+## Finding places that share a specific postcode
+
+In the Nominatim database run
+
+```sql
+SELECT address->'postcode' as pc,
+ osm_type, osm_id, class, type,
+ st_x(centroid) as lon, st_y(centroid) as lat
+FROM placex
+WHERE country_code='fr'
+ AND upper(trim (both ' ' from address->'postcode')) = '33210';
+```
+
+Alternatively on [Overpass](https://overpass-turbo.eu/) run the following query
+
+```
+[out:json][timeout:250];
+area["name"="France"]->.boundaryarea;
+(
+nwr(area.boundaryarea)["addr:postcode"="33210"];
+);
+out body;
+>;
+out skel qt;
+```
--- /dev/null
+# Place Ranking in Nominatim
+
+Nominatim uses two metrics to rank a place: search rank and address rank.
+Both can be assigned a value between 0 and 30. They serve slightly
+different purposes, which are explained in this chapter.
+
+## Search rank
+
+The search rank describes the extent and importance of a place. It is used
+when ranking search result. Simply put, if there are two results for a
+search query which are otherwise equal, then the result with the _lower_
+search rank will be appear higher in the result list.
+
+Search ranks are not so important these days because many well-known
+places use the Wikipedia importance ranking instead.
+
+## Address rank
+
+The address rank describes where a place shows up in an address hierarchy.
+Usually only administrative boundaries and place nodes and areas are
+eligible to be part of an address. All other objects have an address rank
+of 0.
+
+Note that the search rank of a place plays a role in the address computation
+as well. When collecting the places that should make up the address parts
+then only places are taken into account that have a lower address rank than
+the search rank of the base object.
+
+## Rank configuration
+
+Search and address ranks are assigned to a place when it is first imported
+into the database. There are a few hard-coded rules for the assignment:
+
+ * postcodes follow special rules according to their length
+ * boundaries that are not areas and railway=rail are dropped completely
+ * the following are always search rank 30 and address rank 0:
+ * highway nodes
+ * landuse that is not an area
+
+Other than that, the ranks can be freely assigned via the JSON file
+defined with `CONST_Address_Level_Config` according to their type and
+the country they are in.
+
+The address level configuration must consist of an array of configuration
+entries, each containing a tag definition and an optional country array:
+
+```
+[ {
+ "tags" : {
+ "place" : {
+ "county" : 12,
+ "city" : 16,
+ },
+ "landuse" : {
+ "residential" : 22,
+ "" : 30
+ }
+ }
+ },
+ {
+ "countries" : [ "ca", "us" ],
+ "tags" : {
+ "boundary" : {
+ "administrative8" : 18,
+ "administrative9" : 20
+ },
+ "landuse" : {
+ "residential" : [22, 0]
+ }
+ }
+ }
+]
+```
+
+The `countries` field contains a list of countries (as ISO 3166-1 alpha 2 code)
+for which the definition applies. When the field is omitted, then the
+definition is used as a fallback, when nothing more specific for a given
+country exists.
+
+`tags` contains the ranks for key/value pairs. The ranks can be either a
+single number, in which case they are the search and address rank, or an array
+of search and address rank (in that order). The value may be left empty.
+Then the rank is used when no more specific value is found for the given
+key.
+
+Countries and key/value combination may appear in multiple definitions. Just
+make sure that each combination of counrty/key/value appears only once per
+file. Otherwise the import will fail with a UNIQUE INDEX constraint violation
+on import.
+
# Basic Architecture
-Nominatim provides geocoding based on OpenStreetMap data. It uses a Postgresql
+Nominatim provides geocoding based on OpenStreetMap data. It uses a PostgreSQL
database as a backend for storing the data.
There are three basic parts to Nominatim's architecture: the data import,
The __address computation__ or __indexing__ stage takes the data from `place`
and adds additional information needed for geocoding. It ranks the places by
importance, links objects that belong together and computes addresses and
-the search index. Most of this work is done in Pl/pqSQL via database triggers
+the search index. Most of this work is done in PL/pgSQL via database triggers
and can be found in the file `sql/functions.sql`.
-The __search frontend__ implements the actual API. It takes queries for
-search and reverse geocoding queries from the user, looks up the data and
+The __search frontend__ implements the actual API. It takes search
+and reverse geocoding queries from the user, looks up the data and
returns the results in the requested format. This part is written in PHP
and can be found in the `lib/` and `website/` directories.
site_name: Nominatim Documentation
theme: readthedocs
docs_dir: ${CMAKE_CURRENT_BINARY_DIR}
-site_url: http://nominatim.org
+site_url: https://nominatim.org
repo_url: https://github.com/openstreetmap/Nominatim
pages:
- 'Introduction' : 'index.md'
- 'Reverse': 'api/Reverse.md'
- 'Address Lookup': 'api/Lookup.md'
- 'Details' : 'api/Details.md'
+ - 'Status' : 'api/Status.md'
- 'Place Output Formats': 'api/Output.md'
- 'FAQ': 'api/Faq.md'
- 'Administration Guide':
- 'Basic Installation': 'admin/Installation.md'
- 'Importing and Updating' : 'admin/Import-and-Update.md'
+ - 'Advanced Installations' : 'admin/Advanced-Installations.md'
- 'Migration from older Versions' : 'admin/Migration.md'
- 'Troubleshooting' : 'admin/Faq.md'
- 'Developers Guide':
- 'Overview' : 'develop/overview.md'
+ - 'OSM Data Import' : 'develop/Import.md'
+ - 'Place Ranking' : 'develop/Ranking.md'
+ - 'Postcodes' : 'develop/Postcodes.md'
+ - 'Documentation' : 'develop/Documentation.md'
+ - 'External Data Sources':
+ - 'Overview' : 'data-sources/overview.md'
+ - 'US Census (Tiger)': 'data-sources/US-Tiger.md'
+ - 'GB Postcodes': 'data-sources/GB-Postcodes.md'
+ - 'Country Grid': 'data-sources/Country-Grid.md'
+ - 'Wikipedia & Wikidata': 'data-sources/Wikipedia-Wikidata.md'
- 'Appendix':
- 'Installation on CentOS 7' : 'appendix/Install-on-Centos-7.md'
- - 'Installation on Ubuntu 16' : 'appendix/Install-on-Ubuntu-16.md'
+ - 'Installation on CentOS 8' : 'appendix/Install-on-Centos-8.md'
- 'Installation on Ubuntu 18' : 'appendix/Install-on-Ubuntu-18.md'
+ - 'Installation on Ubuntu 20' : 'appendix/Install-on-Ubuntu-20.md'
markdown_extensions:
- - codehilite:
- use_pygments: False
+ - codehilite
+ - admonition
- toc:
permalink:
-extra_css: [extra.css]
+extra_css: [extra.css, styles.css]
--- /dev/null
+.codehilite .hll { background-color: #ffffcc }
+.codehilite { background: #f0f0f0; }
+.codehilite .c { color: #60a0b0; font-style: italic } /* Comment */
+.codehilite .err { /* border: 1px solid #FF0000 */ } /* Error */
+.codehilite .k { color: #007020; font-weight: bold } /* Keyword */
+.codehilite .o { color: #666666 } /* Operator */
+.codehilite .ch { color: #60a0b0; font-style: italic } /* Comment.Hashbang */
+.codehilite .cm { color: #60a0b0; font-style: italic } /* Comment.Multiline */
+.codehilite .cp { color: #007020 } /* Comment.Preproc */
+.codehilite .cpf { color: #60a0b0; font-style: italic } /* Comment.PreprocFile */
+.codehilite .c1 { color: #60a0b0; font-style: italic } /* Comment.Single */
+.codehilite .cs { color: #60a0b0; background-color: #fff0f0 } /* Comment.Special */
+.codehilite .gd { color: #A00000 } /* Generic.Deleted */
+.codehilite .ge { font-style: italic } /* Generic.Emph */
+.codehilite .gr { color: #FF0000 } /* Generic.Error */
+.codehilite .gh { color: #000080; font-weight: bold } /* Generic.Heading */
+.codehilite .gi { color: #00A000 } /* Generic.Inserted */
+.codehilite .go { color: #888888 } /* Generic.Output */
+.codehilite .gp { color: #c65d09; font-weight: bold } /* Generic.Prompt */
+.codehilite .gs { font-weight: bold } /* Generic.Strong */
+.codehilite .gu { color: #800080; font-weight: bold } /* Generic.Subheading */
+.codehilite .gt { color: #0044DD } /* Generic.Traceback */
+.codehilite .kc { color: #007020; font-weight: bold } /* Keyword.Constant */
+.codehilite .kd { color: #007020; font-weight: bold } /* Keyword.Declaration */
+.codehilite .kn { color: #007020; font-weight: bold } /* Keyword.Namespace */
+.codehilite .kp { color: #007020 } /* Keyword.Pseudo */
+.codehilite .kr { color: #007020; font-weight: bold } /* Keyword.Reserved */
+.codehilite .kt { color: #902000 } /* Keyword.Type */
+.codehilite .m { color: #40a070 } /* Literal.Number */
+.codehilite .s { color: #4070a0 } /* Literal.String */
+.codehilite .na { color: #4070a0 } /* Name.Attribute */
+.codehilite .nb { color: #007020 } /* Name.Builtin */
+.codehilite .nc { color: #0e84b5; font-weight: bold } /* Name.Class */
+.codehilite .no { color: #60add5 } /* Name.Constant */
+.codehilite .nd { color: #555555; font-weight: bold } /* Name.Decorator */
+.codehilite .ni { color: #d55537; font-weight: bold } /* Name.Entity */
+.codehilite .ne { color: #007020 } /* Name.Exception */
+.codehilite .nf { color: #06287e } /* Name.Function */
+.codehilite .nl { color: #002070; font-weight: bold } /* Name.Label */
+.codehilite .nn { color: #0e84b5; font-weight: bold } /* Name.Namespace */
+.codehilite .nt { color: #062873; font-weight: bold } /* Name.Tag */
+.codehilite .nv { color: #bb60d5 } /* Name.Variable */
+.codehilite .ow { color: #007020; font-weight: bold } /* Operator.Word */
+.codehilite .w { color: #bbbbbb } /* Text.Whitespace */
+.codehilite .mb { color: #40a070 } /* Literal.Number.Bin */
+.codehilite .mf { color: #40a070 } /* Literal.Number.Float */
+.codehilite .mh { color: #40a070 } /* Literal.Number.Hex */
+.codehilite .mi { color: #40a070 } /* Literal.Number.Integer */
+.codehilite .mo { color: #40a070 } /* Literal.Number.Oct */
+.codehilite .sa { color: #4070a0 } /* Literal.String.Affix */
+.codehilite .sb { color: #4070a0 } /* Literal.String.Backtick */
+.codehilite .sc { color: #4070a0 } /* Literal.String.Char */
+.codehilite .dl { color: #4070a0 } /* Literal.String.Delimiter */
+.codehilite .sd { color: #4070a0; font-style: italic } /* Literal.String.Doc */
+.codehilite .s2 { color: #4070a0 } /* Literal.String.Double */
+.codehilite .se { color: #4070a0; font-weight: bold } /* Literal.String.Escape */
+.codehilite .sh { color: #4070a0 } /* Literal.String.Heredoc */
+.codehilite .si { color: #70a0d0; font-style: italic } /* Literal.String.Interpol */
+.codehilite .sx { color: #c65d09 } /* Literal.String.Other */
+.codehilite .sr { color: #235388 } /* Literal.String.Regex */
+.codehilite .s1 { color: #4070a0 } /* Literal.String.Single */
+.codehilite .ss { color: #517918 } /* Literal.String.Symbol */
+.codehilite .bp { color: #007020 } /* Name.Builtin.Pseudo */
+.codehilite .fm { color: #06287e } /* Name.Function.Magic */
+.codehilite .vc { color: #bb60d5 } /* Name.Variable.Class */
+.codehilite .vg { color: #bb60d5 } /* Name.Variable.Global */
+.codehilite .vi { color: #bb60d5 } /* Name.Variable.Instance */
+.codehilite .vm { color: #bb60d5 } /* Name.Variable.Magic */
+.codehilite .il { color: #40a070 } /* Literal.Number.Integer.Long */
*/
class AddressDetails
{
+ private $iPlaceID;
private $aAddressLines;
public function __construct(&$oDB, $iPlaceID, $sHousenumber, $mLangPref)
{
+ $this->iPlaceID = $iPlaceID;
+
if (is_array($mLangPref)) {
- $mLangPref = 'ARRAY['.join(',', array_map('getDBQuoted', $mLangPref)).']';
+ $mLangPref = $oDB->getArraySQL($oDB->getDBQuotedList($mLangPref));
}
- if (!$sHousenumber) {
+ if (!isset($sHousenumber)) {
$sHousenumber = -1;
}
$sSQL = 'SELECT *,';
- $sSQL .= ' get_name_by_language(name,'.$mLangPref.') as localname';
+ $sSQL .= ' get_name_by_language(name,'.$mLangPref.') as localname';
$sSQL .= ' FROM get_addressdata('.$iPlaceID.','.$sHousenumber.')';
- $sSQL .= ' ORDER BY rank_address desc,isaddress DESC';
+ $sSQL .= ' ORDER BY rank_address DESC, isaddress DESC';
- $this->aAddressLines = chksql($oDB->getAll($sSQL));
+ $this->aAddressLines = $oDB->getAll($sSQL);
}
private static function isAddress($aLine)
{
- return $aLine['isaddress'] == 't' || $aLine['type'] == 'country_code';
+ return $aLine['isaddress'] || $aLine['type'] == 'country_code';
}
public function getAddressDetails($bAll = false)
return $this->aAddressLines;
}
- return array_filter($this->aAddressLines, 'AddressDetails::isAddress');
+ return array_filter($this->aAddressLines, array(__CLASS__, 'isAddress'));
}
public function getLocaleAddress()
$sPrevResult = '';
foreach ($this->aAddressLines as $aLine) {
- if ($aLine['isaddress'] == 't' && $sPrevResult != $aLine['localname']) {
+ if ($aLine['isaddress'] && $sPrevResult != $aLine['localname']) {
$sPrevResult = $aLine['localname'];
$aParts[] = $sPrevResult;
}
$bFallback = true;
}
- $sName = false;
- if (isset($aLine['localname']) && $aLine['localname']) {
+ $sName = null;
+ if (isset($aLine['localname']) && $aLine['localname']!=='') {
$sName = $aLine['localname'];
- } elseif (isset($aLine['housenumber']) && $aLine['housenumber']) {
+ } elseif (isset($aLine['housenumber']) && $aLine['housenumber']!=='') {
$sName = $aLine['housenumber'];
}
- if ($sName) {
+ if (isset($sName)) {
$sTypeLabel = strtolower(isset($aTypeLabel['simplelabel']) ? $aTypeLabel['simplelabel'] : $aTypeLabel['label']);
$sTypeLabel = str_replace(' ', '_', $sTypeLabel);
if (!isset($aAddress[$sTypeLabel])
}
}
}
+
return $aAddress;
}
+ /**
+ * Annotates the given json with geocodejson address information fields.
+ *
+ * @param array $aJson Json hash to add the fields to.
+ *
+ * Geocodejson has the following fields:
+ * street, locality, postcode, city, district,
+ * county, state, country
+ *
+ * Postcode and housenumber are added by type, district is not used.
+ * All other fields are set according to address rank.
+ */
+ public function addGeocodeJsonAddressParts(&$aJson)
+ {
+ foreach (array_reverse($this->aAddressLines) as $aLine) {
+ if (!$aLine['isaddress']) {
+ continue;
+ }
+
+ if (!isset($aLine['localname']) || $aLine['localname'] == '') {
+ continue;
+ }
+
+ if ($aLine['type'] == 'postcode' || $aLine['type'] == 'postal_code') {
+ $aJson['postcode'] = $aLine['localname'];
+ } elseif ($aLine['type'] == 'house_number') {
+ $aJson['housenumber'] = $aLine['localname'];
+ }
+
+ if ($this->iPlaceID == $aLine['place_id']) {
+ continue;
+ }
+
+ $iRank = (int)$aLine['rank_address'];
+
+ if ($iRank > 25 && $iRank < 28) {
+ $aJson['street'] = $aLine['localname'];
+ } elseif ($iRank >= 22 && $iRank <= 25) {
+ $aJson['locality'] = $aLine['localname'];
+ } elseif ($iRank >= 17 && $iRank <= 21) {
+ $aJson['district'] = $aLine['localname'];
+ } elseif ($iRank >= 13 && $iRank <= 16) {
+ $aJson['city'] = $aLine['localname'];
+ } elseif ($iRank >= 10 && $iRank <= 12) {
+ $aJson['county'] = $aLine['localname'];
+ } elseif ($iRank >= 5 && $iRank <= 9) {
+ $aJson['state'] = $aLine['localname'];
+ } elseif ($iRank == 4) {
+ $aJson['country'] = $aLine['localname'];
+ }
+ }
+ }
+
public function getAdminLevels()
{
$aAddress = array();
- foreach ($this->aAddressLines as $aLine) {
+ foreach (array_reverse($this->aAddressLines) as $aLine) {
if (self::isAddress($aLine)
&& isset($aLine['admin_level'])
&& $aLine['admin_level'] < 15
{
$aClassType = getList();
+ if ($aPlace['type'] == 'administrative' && isset($aPlace['place_type'])) {
+ $sName = 'place:'.$aPlace['place_type'];
+ if (isset($aClassType[$sName])) {
+ return $aClassType[$sName];
+ }
+ }
+
if (isset($aPlace['admin_level'])) {
$sName = $aPlace['class'].':'.$aPlace['type'].':'.$aPlace['admin_level'];
if (isset($aClassType[$sName])) {
'boundary:administrative:1' => array('label' => 'Continent', 'frequency' => 0, 'icon' => 'poi_boundary_administrative', 'defdiameter' => 0.32),
'boundary:administrative:2' => array('label' => 'Country', 'frequency' => 0, 'icon' => 'poi_boundary_administrative', 'defdiameter' => 0.32),
'place:country' => array('label' => 'Country', 'frequency' => 0, 'icon' => 'poi_boundary_administrative', 'defzoom' => 6, 'defdiameter' => 15),
- 'boundary:administrative:3' => array('label' => 'State', 'frequency' => 0, 'icon' => 'poi_boundary_administrative', 'defdiameter' => 0.32),
+ 'boundary:administrative:3' => array('label' => 'Region', 'frequency' => 0, 'icon' => 'poi_boundary_administrative', 'defdiameter' => 0.32),
'boundary:administrative:4' => array('label' => 'State', 'frequency' => 0, 'icon' => 'poi_boundary_administrative', 'defdiameter' => 0.32),
'place:state' => array('label' => 'State', 'frequency' => 0, 'icon' => 'poi_boundary_administrative', 'defzoom' => 8, 'defdiameter' => 5.12),
+ 'place:province' => array('label' => 'Province', 'frequency' => 0, 'icon' => 'poi_boundary_administrative', 'defzoom' => 8, 'defdiameter' => 5.12),
'boundary:administrative:5' => array('label' => 'State District', 'frequency' => 0, 'icon' => 'poi_boundary_administrative', 'defdiameter' => 0.32),
'boundary:administrative:6' => array('label' => 'County', 'frequency' => 0, 'icon' => 'poi_boundary_administrative', 'defdiameter' => 0.32),
- 'boundary:administrative:7' => array('label' => 'County', 'frequency' => 0, 'icon' => 'poi_boundary_administrative', 'defdiameter' => 0.32),
+ 'boundary:administrative:7' => array('label' => 'Municipality', 'frequency' => 0, 'icon' => 'poi_boundary_administrative', 'defdiameter' => 0.32),
'place:county' => array('label' => 'County', 'frequency' => 108, 'icon' => 'poi_boundary_administrative', 'defzoom' => 10, 'defdiameter' => 1.28),
'boundary:administrative:8' => array('label' => 'City', 'frequency' => 0, 'icon' => 'poi_boundary_administrative', 'defdiameter' => 0.32),
'place:city' => array('label' => 'City', 'frequency' => 66, 'icon' => 'poi_place_city', 'defzoom' => 12, 'defdiameter' => 0.32),
'tourism:caravan_site' => array('label' => 'Caravan Site', 'frequency' => 183, 'icon' => 'accommodation_caravan_park'),
'amenity:bus_station' => array('label' => 'Bus Station', 'frequency' => 181, 'icon' => 'transport_bus_station'),
'amenity:kindergarten' => array('label' => 'Kindergarten', 'frequency' => 179),
- 'highway:construction' => array('label' => 'Construction', 'frequency' => 176),
+ 'highway:construction' => array('label' => 'Construction', 'frequency' => 176, 'simplelabel' => 'road'),
'amenity:atm' => array('label' => 'Atm', 'frequency' => 172, 'icon' => 'money_atm2'),
'amenity:emergency_phone' => array('label' => 'Emergency Phone', 'frequency' => 164),
'waterway:lock' => array('label' => 'Lock', 'frequency' => 146),
--- /dev/null
+<?php
+
+namespace Nominatim;
+
+require_once(CONST_BasePath.'/lib/DatabaseError.php');
+
+/**
+ * Uses PDO to access the database specified in the CONST_Database_DSN
+ * setting.
+ */
+class DB
+{
+ protected $connection;
+
+ public function __construct($sDSN = CONST_Database_DSN)
+ {
+ $this->sDSN = $sDSN;
+ }
+
+ public function connect($bNew = false, $bPersistent = true)
+ {
+ if (isset($this->connection) && !$bNew) {
+ return true;
+ }
+ $aConnOptions = array(
+ \PDO::ATTR_ERRMODE => \PDO::ERRMODE_EXCEPTION,
+ \PDO::ATTR_DEFAULT_FETCH_MODE => \PDO::FETCH_ASSOC,
+ \PDO::ATTR_PERSISTENT => $bPersistent
+ );
+
+ // https://secure.php.net/manual/en/ref.pdo-pgsql.connection.php
+ try {
+ $conn = new \PDO($this->sDSN, null, null, $aConnOptions);
+ } catch (\PDOException $e) {
+ $sMsg = 'Failed to establish database connection:' . $e->getMessage();
+ throw new \Nominatim\DatabaseError($sMsg, 500, null, $e->getMessage());
+ }
+
+ $conn->exec("SET DateStyle TO 'sql,european'");
+ $conn->exec("SET client_encoding TO 'utf-8'");
+ $iMaxExecution = ini_get('max_execution_time');
+ if ($iMaxExecution > 0) $conn->setAttribute(\PDO::ATTR_TIMEOUT, $iMaxExecution); // seconds
+
+ $this->connection = $conn;
+ return true;
+ }
+
+ // returns the number of rows that were modified or deleted by the SQL
+ // statement. If no rows were affected returns 0.
+ public function exec($sSQL, $aInputVars = null, $sErrMessage = 'Database query failed')
+ {
+ $val = null;
+ try {
+ if (isset($aInputVars)) {
+ $stmt = $this->connection->prepare($sSQL);
+ $stmt->execute($aInputVars);
+ } else {
+ $val = $this->connection->exec($sSQL);
+ }
+ } catch (\PDOException $e) {
+ throw new \Nominatim\DatabaseError($sErrMessage, 500, null, $e, $sSQL);
+ }
+ return $val;
+ }
+
+ /**
+ * Executes query. Returns first row as array.
+ * Returns false if no result found.
+ *
+ * @param string $sSQL
+ *
+ * @return array[]
+ */
+ public function getRow($sSQL, $aInputVars = null, $sErrMessage = 'Database query failed')
+ {
+ try {
+ $stmt = $this->getQueryStatement($sSQL, $aInputVars, $sErrMessage);
+ $row = $stmt->fetch();
+ } catch (\PDOException $e) {
+ throw new \Nominatim\DatabaseError($sErrMessage, 500, null, $e, $sSQL);
+ }
+ return $row;
+ }
+
+ /**
+ * Executes query. Returns first value of first result.
+ * Returns false if no results found.
+ *
+ * @param string $sSQL
+ *
+ * @return array[]
+ */
+ public function getOne($sSQL, $aInputVars = null, $sErrMessage = 'Database query failed')
+ {
+ try {
+ $stmt = $this->getQueryStatement($sSQL, $aInputVars, $sErrMessage);
+ $row = $stmt->fetch(\PDO::FETCH_NUM);
+ if ($row === false) return false;
+ } catch (\PDOException $e) {
+ throw new \Nominatim\DatabaseError($sErrMessage, 500, null, $e, $sSQL);
+ }
+ return $row[0];
+ }
+
+ /**
+ * Executes query. Returns array of results (arrays).
+ * Returns empty array if no results found.
+ *
+ * @param string $sSQL
+ *
+ * @return array[]
+ */
+ public function getAll($sSQL, $aInputVars = null, $sErrMessage = 'Database query failed')
+ {
+ try {
+ $stmt = $this->getQueryStatement($sSQL, $aInputVars, $sErrMessage);
+ $rows = $stmt->fetchAll();
+ } catch (\PDOException $e) {
+ throw new \Nominatim\DatabaseError($sErrMessage, 500, null, $e, $sSQL);
+ }
+ return $rows;
+ }
+
+ /**
+ * Executes query. Returns array of the first value of each result.
+ * Returns empty array if no results found.
+ *
+ * @param string $sSQL
+ *
+ * @return array[]
+ */
+ public function getCol($sSQL, $aInputVars = null, $sErrMessage = 'Database query failed')
+ {
+ $aVals = array();
+ try {
+ $stmt = $this->getQueryStatement($sSQL, $aInputVars, $sErrMessage);
+
+ while (($val = $stmt->fetchColumn(0)) !== false) { // returns first column or false
+ $aVals[] = $val;
+ }
+ } catch (\PDOException $e) {
+ throw new \Nominatim\DatabaseError($sErrMessage, 500, null, $e, $sSQL);
+ }
+ return $aVals;
+ }
+
+ /**
+ * Executes query. Returns associate array mapping first value to second value of each result.
+ * Returns empty array if no results found.
+ *
+ * @param string $sSQL
+ *
+ * @return array[]
+ */
+ public function getAssoc($sSQL, $aInputVars = null, $sErrMessage = 'Database query failed')
+ {
+ try {
+ $stmt = $this->getQueryStatement($sSQL, $aInputVars, $sErrMessage);
+
+ $aList = array();
+ while ($aRow = $stmt->fetch(\PDO::FETCH_NUM)) {
+ $aList[$aRow[0]] = $aRow[1];
+ }
+ } catch (\PDOException $e) {
+ throw new \Nominatim\DatabaseError($sErrMessage, 500, null, $e, $sSQL);
+ }
+ return $aList;
+ }
+
+ /**
+ * Executes query. Returns a PDO statement to iterate over.
+ *
+ * @param string $sSQL
+ *
+ * @return PDOStatement
+ */
+ public function getQueryStatement($sSQL, $aInputVars = null, $sErrMessage = 'Database query failed')
+ {
+ try {
+ if (isset($aInputVars)) {
+ $stmt = $this->connection->prepare($sSQL);
+ $stmt->execute($aInputVars);
+ } else {
+ $stmt = $this->connection->query($sSQL);
+ }
+ } catch (\PDOException $e) {
+ throw new \Nominatim\DatabaseError($sErrMessage, 500, null, $e, $sSQL);
+ }
+ return $stmt;
+ }
+
+ /**
+ * St. John's Way => 'St. John\'s Way'
+ *
+ * @param string $sVal Text to be quoted.
+ *
+ * @return string
+ */
+ public function getDBQuoted($sVal)
+ {
+ return $this->connection->quote($sVal);
+ }
+
+ /**
+ * Like getDBQuoted, but takes an array.
+ *
+ * @param array $aVals List of text to be quoted.
+ *
+ * @return array[]
+ */
+ public function getDBQuotedList($aVals)
+ {
+ return array_map(function ($sVal) {
+ return $this->getDBQuoted($sVal);
+ }, $aVals);
+ }
+
+ /**
+ * [1,2,'b'] => 'ARRAY[1,2,'b']''
+ *
+ * @param array $aVals List of text to be quoted.
+ *
+ * @return string
+ */
+ public function getArraySQL($a)
+ {
+ return 'ARRAY['.join(',', $a).']';
+ }
+
+ /**
+ * Check if a table exists in the database. Returns true if it does.
+ *
+ * @param string $sTableName
+ *
+ * @return boolean
+ */
+ public function tableExists($sTableName)
+ {
+ $sSQL = 'SELECT count(*) FROM pg_tables WHERE tablename = :tablename';
+ return ($this->getOne($sSQL, array(':tablename' => $sTableName)) == 1);
+ }
+
+ /**
+ * Returns a list of table names in the database
+ *
+ * @return array[]
+ */
+ public function getListOfTables()
+ {
+ return $this->getCol("SELECT tablename FROM pg_tables WHERE schemaname='public'");
+ }
+
+ /**
+ * Deletes a table. Returns true if deleted or didn't exist.
+ *
+ * @param string $sTableName
+ *
+ * @return boolean
+ */
+ public function deleteTable($sTableName)
+ {
+ return $this->exec('DROP TABLE IF EXISTS '.$sTableName.' CASCADE') == 0;
+ }
+
+ /**
+ * Check if an index exists in the database. Optional filtered by tablename
+ *
+ * @param string $sTableName
+ *
+ * @return boolean
+ */
+ public function indexExists($sIndexName, $sTableName = null)
+ {
+ return in_array($sIndexName, $this->getListOfIndices($sTableName));
+ }
+
+ /**
+ * Returns a list of index names in the database, optional filtered by tablename
+ *
+ * @param string $sTableName
+ *
+ * @return array
+ */
+ public function getListOfIndices($sTableName = null)
+ {
+ // table_name | index_name | column_name
+ // -----------------------+---------------------------------+--------------
+ // country_name | idx_country_name_country_code | country_code
+ // country_osm_grid | idx_country_osm_grid_geometry | geometry
+ // import_polygon_delete | idx_import_polygon_delete_osmid | osm_id
+ // import_polygon_delete | idx_import_polygon_delete_osmid | osm_type
+ // import_polygon_error | idx_import_polygon_error_osmid | osm_id
+ // import_polygon_error | idx_import_polygon_error_osmid | osm_type
+ $sSql = <<< END
+SELECT
+ t.relname as table_name,
+ i.relname as index_name,
+ a.attname as column_name
+FROM
+ pg_class t,
+ pg_class i,
+ pg_index ix,
+ pg_attribute a
+WHERE
+ t.oid = ix.indrelid
+ and i.oid = ix.indexrelid
+ and a.attrelid = t.oid
+ and a.attnum = ANY(ix.indkey)
+ and t.relkind = 'r'
+ and i.relname NOT LIKE 'pg_%'
+ FILTERS
+ ORDER BY
+ t.relname,
+ i.relname,
+ a.attname
+END;
+
+ $aRows = null;
+ if ($sTableName) {
+ $sSql = str_replace('FILTERS', 'and t.relname = :tablename', $sSql);
+ $aRows = $this->getAll($sSql, array(':tablename' => $sTableName));
+ } else {
+ $sSql = str_replace('FILTERS', '', $sSql);
+ $aRows = $this->getAll($sSql);
+ }
+
+ $aIndexNames = array_unique(array_map(function ($aRow) {
+ return $aRow['index_name'];
+ }, $aRows));
+ sort($aIndexNames);
+
+ return $aIndexNames;
+ }
+
+ /**
+ * Tries to connect to the database but on failure doesn't throw an exception.
+ *
+ * @return boolean
+ */
+ public function checkConnection()
+ {
+ $bExists = true;
+ try {
+ $this->connect(true);
+ } catch (\Nominatim\DatabaseError $e) {
+ $bExists = false;
+ }
+ return $bExists;
+ }
+
+ /**
+ * e.g. 9.6, 10, 11.2
+ *
+ * @return float
+ */
+ public function getPostgresVersion()
+ {
+ $sVersionString = $this->getOne('SHOW server_version_num');
+ preg_match('#([0-9]?[0-9])([0-9][0-9])[0-9][0-9]#', $sVersionString, $aMatches);
+ return (float) ($aMatches[1].'.'.$aMatches[2]);
+ }
+
+ /**
+ * e.g. 2, 2.2
+ *
+ * @return float
+ */
+ public function getPostgisVersion()
+ {
+ $sVersionString = $this->getOne('select postgis_lib_version()');
+ preg_match('#^([0-9]+)[.]([0-9]+)[.]#', $sVersionString, $aMatches);
+ return (float) ($aMatches[1].'.'.$aMatches[2]);
+ }
+
+ /**
+ * Returns an associate array of postgresql database connection settings. Keys can
+ * be 'database', 'hostspec', 'port', 'username', 'password'.
+ * Returns empty array on failure, thus check if at least 'database' is set.
+ *
+ * @return array[]
+ */
+ public static function parseDSN($sDSN)
+ {
+ // https://secure.php.net/manual/en/ref.pdo-pgsql.connection.php
+ $aInfo = array();
+ if (preg_match('/^pgsql:(.+)$/', $sDSN, $aMatches)) {
+ foreach (explode(';', $aMatches[1]) as $sKeyVal) {
+ list($sKey, $sVal) = explode('=', $sKeyVal, 2);
+ if ($sKey == 'host') $sKey = 'hostspec';
+ if ($sKey == 'dbname') $sKey = 'database';
+ if ($sKey == 'user') $sKey = 'username';
+ $aInfo[$sKey] = $sVal;
+ }
+ }
+ return $aInfo;
+ }
+
+ /**
+ * Takes an array of settings and return the DNS string. Key names can be
+ * 'database', 'hostspec', 'port', 'username', 'password' but aliases
+ * 'dbname', 'host' and 'user' are also supported.
+ *
+ * @return string
+ *
+ */
+ public static function generateDSN($aInfo)
+ {
+ $sDSN = sprintf(
+ 'pgsql:host=%s;port=%s;dbname=%s;user=%s;password=%s;',
+ $aInfo['host'] ?? $aInfo['hostspec'] ?? '',
+ $aInfo['port'] ?? '',
+ $aInfo['dbname'] ?? $aInfo['database'] ?? '',
+ $aInfo['user'] ?? '',
+ $aInfo['password'] ?? ''
+ );
+ $sDSN = preg_replace('/\b\w+=;/', '', $sDSN);
+ $sDSN = preg_replace('/;\Z/', '', $sDSN);
+
+ return $sDSN;
+ }
+}
--- /dev/null
+<?php
+
+namespace Nominatim;
+
+class DatabaseError extends \Exception
+{
+
+ public function __construct($message, $code = 500, Exception $previous = null, $oPDOErr, $sSql = null)
+ {
+ parent::__construct($message, $code, $previous);
+ // https://secure.php.net/manual/en/class.pdoexception.php
+ $this->oPDOErr = $oPDOErr;
+ $this->sSql = $sSql;
+ }
+
+ public function __toString()
+ {
+ return __CLASS__ . ": [{$this->code}]: {$this->message}\n";
+ }
+
+ public function getSqlError()
+ {
+ return $this->oPDOErr->getMessage();
+ }
+
+ public function getSqlDebugDump()
+ {
+ if (CONST_Debug) {
+ return var_export($this->oPDOErr, true);
+ } else {
+ return $this->sSql;
+ }
+ }
+}
}
$this->oPlaceLookup->loadParamArray($oParams, $sForceGeometryType);
- $this->oPlaceLookup->setIncludePolygonAsPoints($oParams->getBool('polygon'));
$this->oPlaceLookup->setIncludeAddressDetails($oParams->getBool('addressdetails', false));
}
$aNewPhraseSearches = array();
$sPhraseType = $bIsStructured ? $oPhrase->getPhraseType() : '';
- foreach ($oPhrase->getWordSets() as $iWordSet => $aWordset) {
- // Too many permutations - too expensive
- if ($iWordSet > 120) break;
-
+ foreach ($oPhrase->getWordSets() as $aWordset) {
$aWordsetSearches = $aSearches;
// Add all words from this wordset
$sNormQuery = $this->normTerm($this->sQuery);
Debug::printVar('Normalized query', $sNormQuery);
- $sLanguagePrefArraySQL = getArraySQL(
- array_map('getDBQuoted', $this->aLangPrefOrder)
+ $sLanguagePrefArraySQL = $this->oDB->getArraySQL(
+ $this->oDB->getDBQuotedList($this->aLangPrefOrder)
);
$sQuery = $this->sQuery;
// Do we have anything that looks like a lat/lon pair?
$sQuery = $oCtx->setNearPointFromQuery($sQuery);
- $aResults = array();
if ($sQuery || $this->aStructuredQuery) {
// Start with a single blank search
$aSearches = array(new SearchDescription($oCtx));
if ($sSpecialTerm && !$aSearches[0]->hasOperator()) {
$sSpecialTerm = pg_escape_string($sSpecialTerm);
- $sToken = chksql(
- $this->oDB->getOne("SELECT make_standard_name('$sSpecialTerm')"),
+ $sToken = $this->oDB->getOne(
+ 'SELECT make_standard_name(:term)',
+ array(':term' => $sSpecialTerm),
'Cannot decode query. Wrong encoding?'
);
$sSQL = 'SELECT class, type FROM word ';
$sSQL .= ' AND class is not null AND class not in (\'place\')';
Debug::printSQL($sSQL);
- $aSearchWords = chksql($this->oDB->getAll($sSQL));
+ $aSearchWords = $this->oDB->getAll($sSQL);
$aNewSearches = array();
foreach ($aSearches as $oSearch) {
foreach ($aSearchWords as $aSearchTerm) {
$aTokens = array();
$aPhrases = array();
foreach ($aInPhrases as $iPhrase => $sPhrase) {
- $sPhrase = chksql(
- $this->oDB->getOne('SELECT make_standard_name('.getDBQuoted($sPhrase).')'),
+ $sPhrase = $this->oDB->getOne(
+ 'SELECT make_standard_name(:phrase)',
+ array(':phrase' => $sPhrase),
'Cannot normalize query string (is it a UTF-8 string?)'
);
if (trim($sPhrase)) {
}
}
- Debug::printDebugTable('Phrases', $aPhrases);
Debug::printVar('Tokens', $aTokens);
$oValidTokens = new TokenList();
if (!empty($aTokens)) {
$sSQL = 'SELECT word_id, word_token, word, class, type, country_code, operator, search_name_count';
$sSQL .= ' FROM word ';
- $sSQL .= ' WHERE word_token in ('.join(',', array_map('getDBQuoted', $aTokens)).')';
+ $sSQL .= ' WHERE word_token in ('.join(',', $this->oDB->getDBQuotedList($aTokens)).')';
Debug::printSQL($sSQL);
Debug::printGroupTable('Valid Tokens', $oValidTokens->debugInfo());
+ foreach ($aPhrases as $oPhrase) {
+ $oPhrase->computeWordSets($oValidTokens);
+ }
+ Debug::printDebugTable('Phrases', $aPhrases);
+
Debug::newSection('Search candidates');
$aGroupedSearches = $this->getGroupedSearches($aSearches, $aPhrases, $oValidTokens, $bStructuredPhrases);
// Start the search process
$iGroupLoop = 0;
$iQueryLoop = 0;
+ $aNextResults = array();
foreach ($aGroupedSearches as $iGroupedRank => $aSearches) {
$iGroupLoop++;
+ $aResults = $aNextResults;
foreach ($aSearches as $oSearch) {
$iQueryLoop++;
$oValidTokens->debugTokenByWordIdList()
);
- $aResults += $oSearch->query(
+ $aNewResults = $oSearch->query(
$this->oDB,
$this->iMinAddressRank,
$this->iMaxAddressRank,
$this->iLimit
);
+ // The same result may appear in different rounds, only
+ // use the one with minimal rank.
+ foreach ($aNewResults as $iPlace => $oRes) {
+ if (!isset($aResults[$iPlace])
+ || $aResults[$iPlace]->iResultRank > $oRes->iResultRank) {
+ $aResults[$iPlace] = $oRes;
+ }
+ }
+
if ($iQueryLoop > 20) break;
}
+ if (!empty($aResults)) {
+ $aSplitResults = Result::splitResults($aResults);
+ Debug::printVar('Split results', $aSplitResults);
+ if ($iGroupLoop <= 4 && empty($aSplitResults['tail'])
+ && reset($aSplitResults['head'])->iResultRank > 0) {
+ // Haven't found an exact match for the query yet.
+ // Therefore add result from the next group level.
+ $aNextResults = $aSplitResults['head'];
+ foreach ($aNextResults as $oRes) {
+ $oRes->iResultRank--;
+ }
+ $aResults = array();
+ } else {
+ $aResults = $aSplitResults['head'];
+ }
+ }
+
if (!empty($aResults) && ($this->iMinAddressRank != 0 || $this->iMaxAddressRank != 30)) {
// Need to verify passes rank limits before dropping out of the loop (yuk!)
// reduces the number of place ids, like a filter
$sSQL .= 'WHERE place_id in ('.$sPlaceIds.') ';
$sSQL .= ' AND (';
$sSQL .= " placex.rank_address between $this->iMinAddressRank and $this->iMaxAddressRank ";
- if (14 >= $this->iMinAddressRank && 14 <= $this->iMaxAddressRank) {
- $sSQL .= " OR (extratags->'place') = 'city'";
- }
+ $sSQL .= " OR placex.rank_search between $this->iMinAddressRank and $this->iMaxAddressRank ";
if ($this->aAddressRankList) {
$sSQL .= ' OR placex.rank_address in ('.join(',', $this->aAddressRankList).')';
}
if ($aFilterSql) {
$sSQL = join(' UNION ', $aFilterSql);
Debug::printSQL($sSQL);
- $aFilteredIDs = chksql($this->oDB->getCol($sSQL));
+ $aFilteredIDs = $this->oDB->getCol($sSQL);
}
$tempIDs = array();
$aResult = array_merge($aResult, $aOutlineResult);
}
- if ($aResult['extra_place'] == 'city') {
- $aResult['class'] = 'place';
- $aResult['type'] = 'city';
- $aResult['rank_search'] = 16;
- }
-
// Is there an icon set for this type of result?
$aClassInfo = ClassTypes\getInfo($aResult);
$sLangString = $this->getString('accept-language', $sFallback);
if ($sLangString) {
- if (preg_match_all('/(([a-z]{1,8})(-[a-z]{1,8})?)\s*(;\s*q\s*=\s*(1|0\.[0-9]+))?/i', $sLangString, $aLanguagesParse, PREG_SET_ORDER)) {
+ if (preg_match_all('/(([a-z]{1,8})([-_][a-z]{1,8})?)\s*(;\s*q\s*=\s*(1|0\.[0-9]+))?/i', $sLangString, $aLanguagesParse, PREG_SET_ORDER)) {
foreach ($aLanguagesParse as $iLang => $aLanguage) {
$aLanguages[$aLanguage[1]] = isset($aLanguage[5])?(float)$aLanguage[5]:1 - ($iLang/100);
if (!isset($aLanguages[$aLanguage[2]])) $aLanguages[$aLanguage[2]] = $aLanguages[$aLanguage[1]]/10;
}
foreach ($aLanguages as $sLanguage => $fLanguagePref) {
- $aLangPrefOrder['short_name:'.$sLanguage] = 'short_name:'.$sLanguage;
$aLangPrefOrder['name:'.$sLanguage] = 'name:'.$sLanguage;
}
- $aLangPrefOrder['short_name'] = 'short_name';
$aLangPrefOrder['name'] = 'name';
$aLangPrefOrder['brand'] = 'brand';
foreach ($aLanguages as $sLanguage => $fLanguagePref) {
$aLangPrefOrder['official_name:'.$sLanguage] = 'official_name:'.$sLanguage;
+ $aLangPrefOrder['short_name:'.$sLanguage] = 'short_name:'.$sLanguage;
}
$aLangPrefOrder['official_name'] = 'official_name';
+ $aLangPrefOrder['short_name'] = 'short_name';
$aLangPrefOrder['ref'] = 'ref';
$aLangPrefOrder['type'] = 'type';
return $aLangPrefOrder;
}
+
+ public function hasSetAny($aParamNames)
+ {
+ foreach ($aParamNames as $sName) {
+ if ($this->getBool($sName)) {
+ return true;
+ }
+ }
+
+ return false;
+ }
}
*/
class Phrase
{
- const MAX_DEPTH = 7;
+ const MAX_WORDSET_LEN = 20;
+ const MAX_WORDSETS = 100;
// Complete phrase as a string.
private $sPhrase;
// Possible segmentations of the phrase.
private $aWordSets;
+ public static function cmpByArraylen($aA, $aB)
+ {
+ $iALen = count($aA);
+ $iBLen = count($aB);
+
+ if ($iALen == $iBLen) {
+ return 0;
+ }
+
+ return ($iALen < $iBLen) ? -1 : 1;
+ }
+
public function __construct($sPhrase, $sPhraseType)
{
$this->sPhrase = trim($sPhrase);
$this->sPhraseType = $sPhraseType;
$this->aWords = explode(' ', $this->sPhrase);
- $this->aWordSets = $this->createWordSets($this->aWords, 0);
}
/**
*/
public function addTokens(&$aTokens)
{
- foreach ($this->aWordSets as $aSet) {
- foreach ($aSet as $sWord) {
- $aTokens[' '.$sWord] = ' '.$sWord;
- $aTokens[$sWord] = $sWord;
+ $iNumWords = count($this->aWords);
+
+ for ($i = 0; $i < $iNumWords; $i++) {
+ $sPhrase = $this->aWords[$i];
+ $aTokens[' '.$sPhrase] = ' '.$sPhrase;
+ $aTokens[$sPhrase] = $sPhrase;
+
+ for ($j = $i + 1; $j < $iNumWords; $j++) {
+ $sPhrase .= ' '.$this->aWords[$j];
+ $aTokens[' '.$sPhrase] = ' '.$sPhrase;
+ $aTokens[$sPhrase] = $sPhrase;
}
}
}
*/
public function invertWordSets()
{
- $this->aWordSets = $this->createInverseWordSets($this->aWords, 0);
+ foreach ($this->aWordSets as $i => $aSet) {
+ $this->aWordSets[$i] = array_reverse($aSet);
+ }
}
- private function createWordSets($aWords, $iDepth)
+ public function computeWordSets($oTokens)
{
- $aResult = array(array(join(' ', $aWords)));
- $sFirstToken = '';
- if ($iDepth < Phrase::MAX_DEPTH) {
- while (count($aWords) > 1) {
- $sWord = array_shift($aWords);
- $sFirstToken .= ($sFirstToken?' ':'').$sWord;
- $aRest = $this->createWordSets($aWords, $iDepth + 1);
- foreach ($aRest as $aSet) {
- $aResult[] = array_merge(array($sFirstToken), $aSet);
- }
- }
- }
+ $iNumWords = count($this->aWords);
+ // Caches the word set for the partial phrase up to word i.
+ $aSetCache = array_fill(0, $iNumWords, array());
- return $aResult;
- }
+ // Initialise first element of cache. There can only be the word.
+ if ($oTokens->containsAny($this->aWords[0])) {
+ $aSetCache[0][] = array($this->aWords[0]);
+ }
- private function createInverseWordSets($aWords, $iDepth)
- {
- $aResult = array(array(join(' ', $aWords)));
- $sFirstToken = '';
- if ($iDepth < Phrase::MAX_DEPTH) {
- while (count($aWords) > 1) {
- $sWord = array_pop($aWords);
- $sFirstToken = $sWord.($sFirstToken?' ':'').$sFirstToken;
- $aRest = $this->createInverseWordSets($aWords, $iDepth + 1);
- foreach ($aRest as $aSet) {
- $aResult[] = array_merge(array($sFirstToken), $aSet);
+ // Now do the next elements using what we already have.
+ for ($i = 1; $i < $iNumWords; $i++) {
+ for ($j = $i; $j > 0; $j--) {
+ $sPartial = $j == $i ? $this->aWords[$j] : $this->aWords[$j].' '.$sPartial;
+ if (!empty($aSetCache[$j - 1]) && $oTokens->containsAny($sPartial)) {
+ $aPartial = array($sPartial);
+ foreach ($aSetCache[$j - 1] as $aSet) {
+ if (count($aSet) < Phrase::MAX_WORDSET_LEN) {
+ $aSetCache[$i][] = array_merge($aSet, $aPartial);
+ }
+ }
+ if (count($aSetCache[$i]) > 2 * Phrase::MAX_WORDSETS) {
+ usort(
+ $aSetCache[$i],
+ array('\Nominatim\Phrase', 'cmpByArraylen')
+ );
+ $aSetCache[$i] = array_slice(
+ $aSetCache[$i],
+ 0,
+ Phrase::MAX_WORDSETS
+ );
+ }
}
}
+
+ // finally the current full phrase
+ $sPartial = $this->aWords[0].' '.$sPartial;
+ if ($oTokens->containsAny($sPartial)) {
+ $aSetCache[$i][] = array($sPartial);
+ }
}
- return $aResult;
+ $this->aWordSets = $aSetCache[$iNumWords - 1];
+ usort($this->aWordSets, array('\Nominatim\Phrase', 'cmpByArraylen'));
+ $this->aWordSets = array_slice($this->aWordSets, 0, Phrase::MAX_WORDSETS);
}
+
public function debugInfo()
{
return array(
protected $bExtraTags = false;
protected $bNameDetails = false;
- protected $bIncludePolygonAsPoints = false;
protected $bIncludePolygonAsText = false;
protected $bIncludePolygonAsGeoJSON = false;
protected $bIncludePolygonAsKML = false;
return $this->bDeDupe;
}
- public function setIncludePolygonAsPoints($b = true)
- {
- $this->bIncludePolygonAsPoints = $b;
- }
-
public function setIncludeAddressDetails($b)
{
$this->bAddressDetails = $b;
{
$aLangs = $oParams->getPreferredLanguages();
$this->aLangPrefOrderSql =
- 'ARRAY['.join(',', array_map('getDBQuoted', $aLangs)).']';
+ 'ARRAY['.join(',', $this->oDB->getDBQuotedList($aLangs)).']';
$this->bExtraTags = $oParams->getBool('extratags', false);
$this->bNameDetails = $oParams->getBool('namedetails', false);
if ($sGeomType === null || $sGeomType == 'geojson') {
$this->bIncludePolygonAsGeoJSON = $oParams->getBool('polygon_geojson');
- $this->bIncludePolygonAsPoints = false;
}
if ($oParams->getString('format', '') !== 'geojson') {
if ($this->bExtraTags) $aParams['extratags'] = '1';
if ($this->bNameDetails) $aParams['namedetails'] = '1';
- if ($this->bIncludePolygonAsPoints) $aParams['polygon'] = '1';
if ($this->bIncludePolygonAsText) $aParams['polygon_text'] = '1';
if ($this->bIncludePolygonAsGeoJSON) $aParams['polygon_geojson'] = '1';
if ($this->bIncludePolygonAsKML) $aParams['polygon_kml'] = '1';
public function setLanguagePreference($aLangPrefOrder)
{
- $this->aLangPrefOrderSql =
- 'ARRAY['.join(',', array_map('getDBQuoted', $aLangPrefOrder)).']';
+ $this->aLangPrefOrderSql = $this->oDB->getArraySQL(
+ $this->oDB->getDBQuotedList($aLangPrefOrder)
+ );
}
private function addressImportanceSql($sGeometry, $sPlaceId)
public function lookupOSMID($sType, $iID)
{
- $sSQL = "select place_id from placex where osm_type = '".$sType."' and osm_id = ".$iID;
- $iPlaceID = chksql($this->oDB->getOne($sSQL));
+ $sSQL = 'select place_id from placex where osm_type = :type and osm_id = :id';
+ $iPlaceID = $this->oDB->getOne($sSQL, array(':type' => $sType, ':id' => $iID));
if (!$iPlaceID) {
return null;
'ST_Collect(centroid)',
'min(CASE WHEN placex.rank_search < 28 THEN placex.place_id ELSE placex.parent_place_id END)'
);
- $sSQL .= " (extratags->'place') AS extra_place ";
+ $sSQL .= " COALESCE(extratags->'place', extratags->'linked_place') AS extra_place ";
$sSQL .= ' FROM placex';
$sSQL .= " WHERE place_id in ($sPlaceIDs) ";
$sSQL .= ' AND (';
$sSQL .= ' ref, ';
if ($this->bExtraTags) $sSQL .= 'extratags, ';
if ($this->bNameDetails) $sSQL .= 'name, ';
- $sSQL .= " extratags->'place' ";
+ $sSQL .= ' extra_place ';
$aSubSelects[] = $sSQL;
}
$sSQL = join(' UNION ', $aSubSelects);
Debug::printSQL($sSQL);
- $aPlaces = chksql($this->oDB->getAll($sSQL), 'Could not lookup place');
+ $aPlaces = $this->oDB->getAll($sSQL, null, 'Could not lookup place');
foreach ($aPlaces as &$aPlace) {
+ $aPlace['importance'] = (float) $aPlace['importance'];
if ($this->bAddressDetails) {
// to get addressdetails for tiger data, the housenumber is needed
$aPlace['address'] = new AddressDetails(
if ($this->bIncludePolygonAsGeoJSON) $sSQL .= ',ST_AsGeoJSON(geometry) as asgeojson';
if ($this->bIncludePolygonAsKML) $sSQL .= ',ST_AsKML(geometry) as askml';
if ($this->bIncludePolygonAsSVG) $sSQL .= ',ST_AsSVG(geometry) as assvg';
- if ($this->bIncludePolygonAsText || $this->bIncludePolygonAsPoints) $sSQL .= ',ST_AsText(geometry) as astext';
+ if ($this->bIncludePolygonAsText) $sSQL .= ',ST_AsText(geometry) as astext';
if ($fLonReverse != null && $fLatReverse != null) {
$sFrom = ' from (SELECT * , CASE WHEN (class = \'highway\') AND (ST_GeometryType(geometry) = \'ST_LineString\') THEN ';
$sFrom .=' ST_ClosestPoint(geometry, ST_SetSRID(ST_Point('.$fLatReverse.','.$fLonReverse.'),4326))';
$sSQL .= $sFrom;
}
- $aPointPolygon = chksql($this->oDB->getRow($sSQL), 'Could not get outline');
+ $aPointPolygon = $this->oDB->getRow($sSQL, null, 'Could not get outline');
- if ($aPointPolygon['place_id']) {
+ if ($aPointPolygon && $aPointPolygon['place_id']) {
if ($aPointPolygon['centrelon'] !== null && $aPointPolygon['centrelat'] !== null) {
$aOutlineResult['lat'] = $aPointPolygon['centrelat'];
$aOutlineResult['lon'] = $aPointPolygon['centrelon'];
if ($this->bIncludePolygonAsKML) $aOutlineResult['askml'] = $aPointPolygon['askml'];
if ($this->bIncludePolygonAsSVG) $aOutlineResult['assvg'] = $aPointPolygon['assvg'];
if ($this->bIncludePolygonAsText) $aOutlineResult['astext'] = $aPointPolygon['astext'];
- if ($this->bIncludePolygonAsPoints) $aOutlineResult['aPolyPoints'] = geometryText2Points($aPointPolygon['astext'], $fRadius);
-
if (abs($aPointPolygon['minlat'] - $aPointPolygon['maxlat']) < 0.0000001) {
$aPointPolygon['minlat'] = $aPointPolygon['minlat'] - $fRadius;
// as a fallback we generate a bounding box without knowing the size of the geometry
if ((!isset($aOutlineResult['aBoundingBox'])) && isset($fLon)) {
- //
- if ($this->bIncludePolygonAsPoints) {
- $sGeometryText = 'POINT('.$fLon.','.$fLat.')';
- $aOutlineResult['aPolyPoints'] = geometryText2Points($sGeometryText, $fRadius);
- }
-
- $aBounds = array();
- $aBounds['minlat'] = $fLat - $fRadius;
- $aBounds['maxlat'] = $fLat + $fRadius;
- $aBounds['minlon'] = $fLon - $fRadius;
- $aBounds['maxlon'] = $fLon + $fRadius;
+ $aBounds = array(
+ 'minlat' => $fLat - $fRadius,
+ 'maxlat' => $fLat + $fRadius,
+ 'minlon' => $fLon - $fRadius,
+ 'maxlon' => $fLon + $fRadius
+ );
$aOutlineResult['aBoundingBox'] = array(
(string)$aBounds['minlat'],
return $sHousenumbers;
}
+
+ /**
+ * Split a result array into highest ranked result and the rest
+ *
+ * @param object[] $aResults List of results to split.
+ *
+ * @return array[]
+ */
+ public static function splitResults($aResults)
+ {
+ $aHead = array();
+ $aTail = array();
+ $iMinRank = 10000;
+
+ foreach ($aResults as $oRes) {
+ if ($oRes->iResultRank < $iMinRank) {
+ $aTail = array_merge($aTail, $aHead);
+ $aHead = array($oRes->iId => $oRes);
+ $iMinRank = $oRes->iResultRank;
+ } elseif ($oRes->iResultRank == $iMinRank) {
+ $aHead[$oRes->iId] = $oRes;
+ } else {
+ $aTail[$oRes->iId] = $oRes;
+ }
+ }
+
+ return array('head' => $aHead, 'tail' => $aTail);
+ }
}
13 => 18,
14 => 22, // Suburb
15 => 22,
- 16 => 26, // Street, TODO: major street?
- 17 => 26,
+ 16 => 26, // major street
+ 17 => 27, // minor street
18 => 30, // or >, Building
19 => 30, // or >, Building
);
$sSQL .= ' and indexed_status = 0 and startnumber is not NULL ';
$sSQL .= ' ORDER BY distance ASC limit 1';
- return chksql(
- $this->oDB->getRow($sSQL),
+ return $this->oDB->getRow(
+ $sSQL,
+ null,
'Could not determine closest housenumber on an osm interpolation line.'
);
}
$sSQL = 'SELECT country_code FROM country_osm_grid';
$sSQL .= ' WHERE ST_CONTAINS(geometry, '.$sPointSQL.') LIMIT 1';
- $sCountryCode = chksql(
- $this->oDB->getOne($sSQL),
+ $sCountryCode = $this->oDB->getOne(
+ $sSQL,
+ null,
'Could not determine country polygon containing the point.'
);
if ($sCountryCode) {
$sSQL .= ' LIMIT 1';
if (CONST_Debug) var_dump($sSQL);
- $aPlace = chksql(
- $this->oDB->getRow($sSQL),
- 'Could not determine place node.'
- );
+ $aPlace = $this->oDB->getRow($sSQL, null, 'Could not determine place node.');
if ($aPlace) {
return new Result($aPlace['place_id']);
}
$sSQL .= ' ORDER BY distance ASC';
if (CONST_Debug) var_dump($sSQL);
- $aPlace = chksql(
- $this->oDB->getRow($sSQL),
- 'Could not determine place node.'
- );
+ $aPlace = $this->oDB->getRow($sSQL, null, 'Could not determine place node.');
if ($aPlace) {
return new Result($aPlace['place_id']);
}
$sSQL .= ' WHERE ST_CONTAINS(geometry, '.$sPointSQL.' )';
$sSQL .= ' ORDER BY rank_address DESC LIMIT 1';
- $aPoly = chksql(
- $this->oDB->getRow($sSQL),
- 'Could not determine polygon containing the point.'
- );
+ $aPoly = $this->oDB->getRow($sSQL, null, 'Could not determine polygon containing the point.');
+
if ($aPoly) {
// if a polygon is found, search for placenodes begins ...
$iParentPlaceID = $aPoly['parent_place_id'];
$sSQL .= ' LIMIT 1';
if (CONST_Debug) var_dump($sSQL);
- $aPlacNode = chksql(
- $this->oDB->getRow($sSQL),
- 'Could not determine place node.'
- );
+ $aPlacNode = $this->oDB->getRow($sSQL, null, 'Could not determine place node.');
if ($aPlacNode) {
return $aPlacNode;
}
$sSQL .= ' placex';
$sSQL .= ' WHERE ST_DWithin('.$sPointSQL.', geometry, '.$fSearchDiam.')';
$sSQL .= ' AND';
- // only streets
- if ($iMaxRank == 26) {
- $sSQL .= ' rank_address = 26';
- } else {
- $sSQL .= ' rank_address between 26 and '.$iMaxRank;
- }
+ $sSQL .= ' rank_address between 26 and '.$iMaxRank;
$sSQL .= ' and (name is not null or housenumber is not null';
$sSQL .= ' or rank_address between 26 and 27)';
- $sSQL .= ' and class not in (\'railway\',\'tunnel\',\'bridge\',\'man_made\')';
+ $sSQL .= ' and (rank_address between 26 and 27';
+ $sSQL .= ' or ST_GeometryType(geometry) != \'ST_LineString\')';
+ $sSQL .= ' and class not in (\'boundary\')';
$sSQL .= ' and indexed_status = 0 and linked_place_id is null';
$sSQL .= ' and (ST_GeometryType(geometry) not in (\'ST_Polygon\',\'ST_MultiPolygon\') ';
$sSQL .= ' OR ST_DWithin('.$sPointSQL.', centroid, '.$fSearchDiam.'))';
$sSQL .= ' ORDER BY distance ASC limit 1';
if (CONST_Debug) var_dump($sSQL);
- $aPlace = chksql(
- $this->oDB->getRow($sSQL),
- 'Could not determine closest place.'
- );
+ $aPlace = $this->oDB->getRow($sSQL, null, 'Could not determine closest place.');
if (CONST_Debug) var_dump($aPlace);
if ($aPlace) {
// radius ?
$sSQL .= ' WHERE ST_DWithin('.$sPointSQL.', geometry, 0.001)';
$sSQL .= ' AND parent_place_id = '.$iPlaceID;
- $sSQL .= ' and rank_address != 28';
+ $sSQL .= ' and rank_address > 28';
+ $sSQL .= ' and ST_GeometryType(geometry) != \'ST_LineString\'';
$sSQL .= ' and (name is not null or housenumber is not null)';
- $sSQL .= ' and class not in (\'railway\',\'tunnel\',\'bridge\',\'man_made\')';
+ $sSQL .= ' and class not in (\'boundary\')';
$sSQL .= ' and indexed_status = 0 and linked_place_id is null';
$sSQL .= ' ORDER BY distance ASC limit 1';
if (CONST_Debug) var_dump($sSQL);
- $aStreet = chksql(
- $this->oDB->getRow($sSQL),
- 'Could not determine closest place.'
- );
+ $aStreet = $this->oDB->getRow($sSQL, null, 'Could not determine closest place.');
if ($aStreet) {
if (CONST_Debug) var_dump($aStreet);
$oResult = new Result($aStreet['place_id']);
$sSQL .= ' AND ST_DWithin('.$sPointSQL.', linegeo, 0.001)';
$sSQL .= ' ORDER BY distance ASC limit 1';
if (CONST_Debug) var_dump($sSQL);
- $aPlaceTiger = chksql(
- $this->oDB->getRow($sSQL),
- 'Could not determine closest Tiger place.'
- );
+ $aPlaceTiger = $this->oDB->getRow($sSQL, null, 'Could not determine closest Tiger place.');
if ($aPlaceTiger) {
if (CONST_Debug) var_dump('found Tiger housenumber', $aPlaceTiger);
$oResult = new Result($aPlaceTiger['place_id'], Result::TABLE_TIGER);
* The viewbox may be bounded which means that no search results
* must be outside the viewbox.
*
- * @param object $oDB DB connection to use for computing the box.
+ * @param object $oDB Nominatim::DB instance to use for computing the box.
* @param string[] $aRoutePoints List of x,y coordinates along a route.
* @param float $fRouteWidth Buffer around the route to use.
* @param bool $bBounded True if the viewbox bounded.
$this->sqlViewboxCentre .= ")'::geometry,4326)";
$sSQL = 'ST_BUFFER('.$this->sqlViewboxCentre.','.($fRouteWidth/69).')';
- $sGeom = chksql($oDB->getOne('select '.$sSQL), 'Could not get small viewbox');
+ $sGeom = $oDB->getOne('select '.$sSQL, null, 'Could not get small viewbox');
$this->sqlViewboxSmall = "'".$sGeom."'::geometry";
$sSQL = 'ST_BUFFER('.$this->sqlViewboxCentre.','.($fRouteWidth/30).')';
- $sGeom = chksql($oDB->getOne('select '.$sSQL), 'Could not get large viewbox');
+ $sGeom = $oDB->getOne('select '.$sSQL, null, 'Could not get large viewbox');
$this->sqlViewboxLarge = "'".$sGeom."'::geometry";
}
}
/**
- * Get an SQL snipped for computing the distance from the reference point.
+ * Get an SQL snippet for computing the distance from the reference point.
*
* @param string $sObj SQL variable name to compute the distance from.
*
}
/**
- * Get an SQL snipped for checking if something is within range of the
+ * Get an SQL snippet for checking if something is within range of the
* reference point.
*
* @param string $sObj SQL variable name to compute if it is within range.
}
/**
- * Get an SQL snipped of the importance factor of the viewbox.
+ * Get an SQL snippet of the importance factor of the viewbox.
*
* The importance factor is computed by checking if an object is within
* the viewbox and/or the extended version of the viewbox.
*
* @param string $sObj SQL variable name of object to weight the importance
*
- * @return string SQL snipped of the factor with a leading multiply sign.
+ * @return string SQL snippet of the factor with a leading multiply sign.
*/
public function viewboxImportanceSQL($sObj)
{
}
/**
- * SQL snipped checking if a place ID should be excluded.
+ * SQL snippet checking if a place ID should be excluded.
*
* @param string $sVariable SQL variable name of place ID to check,
* potentially prefixed with more SQL.
$oSearch->sHouseNumber = $oSearchTerm->sToken;
// sanity check: if the housenumber is not mainly made
// up of numbers, add a penalty
- if (preg_match_all('/[^0-9]/', $oSearch->sHouseNumber, $aMatches) > 2) {
+ if (preg_match('/\\d/', $oSearch->sHouseNumber) === 0
+ || preg_match_all('/[^0-9]/', $oSearch->sHouseNumber, $aMatches) > 2) {
$oSearch->iSearchRank++;
}
if (empty($oSearchTerm->iId)) {
if (!empty($this->aName) || !($bFirstPhrase || $sPhraseType == '')) {
if (($sPhraseType == '' || !$bFirstPhrase) && !$bHasPartial) {
$oSearch = clone $this;
- $oSearch->iSearchRank++;
+ $oSearch->iSearchRank += 2;
$oSearch->aAddress[$iWordID] = $iWordID;
$aNewSearches[] = $oSearch;
} else {
/**
* Query database for places that match this search.
*
- * @param object $oDB Database connection to use.
+ * @param object $oDB Nominatim::DB instance to use.
* @param integer $iMinRank Minimum address rank to restrict search to.
* @param integer $iMaxRank Maximum address rank to restrict search to.
* @param integer $iLimit Maximum number of results.
$iLimit
);
- //now search for housenumber, if housenumber provided
- if ($this->sHouseNumber && !empty($aResults)) {
- $aNamedPlaceIDs = $aResults;
- $aResults = $this->queryHouseNumber($oDB, $aNamedPlaceIDs);
+ // Now search for housenumber, if housenumber provided. Can be zero.
+ if (($this->sHouseNumber || $this->sHouseNumber === '0') && !empty($aResults)) {
+ // Downgrade the rank of the street results, they are missing
+ // the housenumber.
+ foreach ($aResults as $oRes) {
+ $oRes->iResultRank++;
+ }
+
+ $aHnResults = $this->queryHouseNumber($oDB, $aResults);
- if (empty($aResults) && $this->looksLikeFullAddress()) {
- $aResults = $aNamedPlaceIDs;
+ if (!empty($aHnResults)) {
+ foreach ($aHnResults as $oRes) {
+ $aResults[$oRes->iId] = $oRes;
+ }
}
}
if ($sPlaceIds) {
$sSQL = 'SELECT place_id FROM placex';
$sSQL .= ' WHERE place_id in ('.$sPlaceIds.')';
- $sSQL .= " AND postcode = '".$this->sPostcode."'";
+ $sSQL .= " AND postcode != '".$this->sPostcode."'";
Debug::printSQL($sSQL);
- $aFilteredPlaceIDs = chksql($oDB->getCol($sSQL));
+ $aFilteredPlaceIDs = $oDB->getCol($sSQL);
if ($aFilteredPlaceIDs) {
- $aNewResults = array();
foreach ($aFilteredPlaceIDs as $iPlaceId) {
- $aNewResults[$iPlaceId] = $aResults[$iPlaceId];
+ $aResults[$iPlaceId]->iResultRank++;
}
- $aResults = $aNewResults;
- Debug::printVar('Place IDs after postcode filtering', $aResults);
}
}
}
Debug::printSQL($sSQL);
+ $iPlaceId = $oDB->getOne($sSQL);
+
$aResults = array();
- foreach (chksql($oDB->getCol($sSQL)) as $iPlaceId) {
+ if ($iPlaceId) {
$aResults[$iPlaceId] = new Result($iPlaceId);
}
$aDBResults = array();
$sPoiTable = $this->poiTable();
- $sSQL = 'SELECT count(*) FROM pg_tables WHERE tablename = \''.$sPoiTable."'";
- if (chksql($oDB->getOne($sSQL))) {
+ if ($oDB->tableExists($sPoiTable)) {
$sSQL = 'SELECT place_id FROM '.$sPoiTable.' ct';
if ($this->oContext->sqlCountryList) {
$sSQL .= ' JOIN placex USING (place_id)';
} elseif ($this->oContext->hasNearPoint()) {
$sSQL .= ' ORDER BY '.$this->oContext->distanceSQL('ct.centroid').' ASC';
}
- $sSQL .= " limit $iLimit";
+ $sSQL .= " LIMIT $iLimit";
Debug::printSQL($sSQL);
- $aDBResults = chksql($oDB->getCol($sSQL));
+ $aDBResults = $oDB->getCol($sSQL);
}
if ($this->oContext->hasNearPoint()) {
$sSQL = 'SELECT place_id FROM placex WHERE ';
- $sSQL .= 'class=\''.$this->sClass."' and type='".$this->sType."'";
+ $sSQL .= 'class = :class and type = :type';
$sSQL .= ' AND '.$this->oContext->withinSQL('geometry');
$sSQL .= ' AND linked_place_id is null';
if ($this->oContext->sqlCountryList) {
$sSQL .= ' ORDER BY '.$this->oContext->distanceSQL('centroid').' ASC';
$sSQL .= " LIMIT $iLimit";
Debug::printSQL($sSQL);
- $aDBResults = chksql($oDB->getCol($sSQL));
+ $aDBResults = $oDB->getCol(
+ $sSQL,
+ array(':class' => $this->sClass, ':type' => $this->sType)
+ );
}
$aResults = array();
$sSQL .= ', search_name s ';
$sSQL .= 'WHERE s.place_id = p.parent_place_id ';
$sSQL .= 'AND array_cat(s.nameaddress_vector, s.name_vector)';
- $sSQL .= ' @> '.getArraySQL($this->aAddress).' AND ';
+ $sSQL .= ' @> '.$oDB->getArraySQL($this->aAddress).' AND ';
} else {
$sSQL .= 'WHERE ';
}
$sSQL .= "p.postcode = '".reset($this->aName)."'";
$sSQL .= $this->countryCodeSQL(' AND p.country_code');
+ if ($this->oContext->bViewboxBounded) {
+ $sSQL .= ' AND ST_Intersects('.$this->oContext->sqlViewboxSmall.', geometry)';
+ }
$sSQL .= $this->oContext->excludeSQL(' AND p.place_id');
$sSQL .= " LIMIT $iLimit";
Debug::printSQL($sSQL);
$aResults = array();
- foreach (chksql($oDB->getCol($sSQL)) as $iPlaceId) {
+ foreach ($oDB->getCol($sSQL) as $iPlaceId) {
$aResults[$iPlaceId] = new Result($iPlaceId, Result::TABLE_POSTCODE);
}
}
if (!empty($this->aName)) {
- $aTerms[] = 'name_vector @> '.getArraySQL($this->aName);
+ $aTerms[] = 'name_vector @> '.$oDB->getArraySQL($this->aName);
}
if (!empty($this->aAddress)) {
// For infrequent name terms disable index usage for address
if ($this->bRareName) {
- $aTerms[] = 'array_cat(nameaddress_vector,ARRAY[]::integer[]) @> '.getArraySQL($this->aAddress);
+ $aTerms[] = 'array_cat(nameaddress_vector,ARRAY[]::integer[]) @> '.$oDB->getArraySQL($this->aAddress);
} else {
- $aTerms[] = 'nameaddress_vector @> '.getArraySQL($this->aAddress);
+ $aTerms[] = 'nameaddress_vector @> '.$oDB->getArraySQL($this->aAddress);
}
}
$aTerms[] = 'address_rank between 16 and 27';
} elseif (!$this->sClass || $this->iOperator == Operator::NAME) {
if ($iMinAddressRank > 0) {
- $aTerms[] = 'address_rank >= '.$iMinAddressRank;
- }
- if ($iMaxAddressRank < 30) {
- $aTerms[] = 'address_rank <= '.$iMaxAddressRank;
+ $aTerms[] = "((address_rank between $iMinAddressRank and $iMaxAddressRank) or (search_rank between $iMinAddressRank and $iMaxAddressRank))";
}
}
if (!empty($this->aFullNameAddress)) {
$sExactMatchSQL = ' ( ';
$sExactMatchSQL .= ' SELECT count(*) FROM ( ';
- $sExactMatchSQL .= ' SELECT unnest('.getArraySQL($this->aFullNameAddress).')';
+ $sExactMatchSQL .= ' SELECT unnest('.$oDB->getArraySQL($this->aFullNameAddress).')';
$sExactMatchSQL .= ' INTERSECT ';
$sExactMatchSQL .= ' SELECT unnest(nameaddress_vector)';
$sExactMatchSQL .= ' ) s';
}
if ($this->sHouseNumber || $this->sClass) {
- $iLimit = 20;
+ $iLimit = 40;
}
$aResults = array();
Debug::printSQL($sSQL);
- $aDBResults = chksql(
- $oDB->getAll($sSQL),
- 'Could not get places for search terms.'
- );
+ $aDBResults = $oDB->getAll($sSQL, null, 'Could not get places for search terms.');
foreach ($aDBResults as $aResult) {
$oResult = new Result($aResult['place_id']);
Debug::printSQL($sSQL);
// XXX should inherit the exactMatches from its parent
- foreach (chksql($oDB->getCol($sSQL)) as $iPlaceId) {
+ foreach ($oDB->getCol($sSQL) as $iPlaceId) {
$aResults[$iPlaceId] = new Result($iPlaceId);
}
Debug::printSQL($sSQL);
- foreach (chksql($oDB->getCol($sSQL)) as $iPlaceId) {
+ foreach ($oDB->getCol($sSQL) as $iPlaceId) {
$oResult = new Result($iPlaceId, Result::TABLE_OSMLINE);
$oResult->iHouseNumber = $iHousenumber;
$aResults[$iPlaceId] = $oResult;
Debug::printSQL($sSQL);
- foreach (chksql($oDB->getCol($sSQL)) as $iPlaceId) {
+ foreach ($oDB->getCol($sSQL) as $iPlaceId) {
$aResults[$iPlaceId] = new Result($iPlaceId, Result::TABLE_AUX);
}
}
Debug::printSQL($sSQL);
- foreach (chksql($oDB->getCol($sSQL)) as $iPlaceId) {
+ foreach ($oDB->getCol($sSQL) as $iPlaceId) {
$oResult = new Result($iPlaceId, Result::TABLE_TIGER);
$oResult->iHouseNumber = $iHousenumber;
$aResults[$iPlaceId] = $oResult;
Debug::printSQL($sSQL);
- foreach (chksql($oDB->getCol($sSQL)) as $iPlaceId) {
+ foreach ($oDB->getCol($sSQL) as $iPlaceId) {
$aResults[$iPlaceId] = new Result($iPlaceId);
}
}
// NEAR and IN are handled the same
if ($this->iOperator == Operator::TYPE || $this->iOperator == Operator::NEAR) {
$sClassTable = $this->poiTable();
- $sSQL = "SELECT count(*) FROM pg_tables WHERE tablename = '$sClassTable'";
- $bCacheTable = (bool) chksql($oDB->getOne($sSQL));
+ $bCacheTable = $oDB->tableExists($sClassTable);
$sSQL = "SELECT min(rank_search) FROM placex WHERE place_id in ($sPlaceIDs)";
Debug::printSQL($sSQL);
- $iMaxRank = (int)chksql($oDB->getOne($sSQL));
+ $iMaxRank = (int) $oDB->getOne($sSQL);
// For state / country level searches the normal radius search doesn't work very well
$sPlaceGeom = false;
$sSQL .= ' ORDER BY rank_search ASC ';
$sSQL .= ' LIMIT 1';
Debug::printSQL($sSQL);
- $sPlaceGeom = chksql($oDB->getOne($sSQL));
+ $sPlaceGeom = $oDB->getOne($sSQL);
}
if ($sPlaceGeom) {
$sSQL = 'SELECT place_id FROM placex';
$sSQL .= " WHERE place_id in ($sPlaceIDs) and rank_search < $iMaxRank";
Debug::printSQL($sSQL);
- $aPlaceIDs = chksql($oDB->getCol($sSQL));
+ $aPlaceIDs = $oDB->getCol($sSQL);
$sPlaceIDs = join(',', $aPlaceIDs);
}
Debug::printSQL($sSQL);
- foreach (chksql($oDB->getCol($sSQL)) as $iPlaceId) {
+ foreach ($oDB->getCol($sSQL) as $iPlaceId) {
$aResults[$iPlaceId] = new Result($iPlaceId);
}
} else {
Debug::printSQL($sSQL);
- foreach (chksql($oDB->getCol($sSQL)) as $iPlaceId) {
+ foreach ($oDB->getCol($sSQL) as $iPlaceId) {
$aResults[$iPlaceId] = new Result($iPlaceId);
}
}
--- /dev/null
+<?php
+
+namespace Nominatim;
+
+class Shell
+{
+ public function __construct($sBaseCmd, ...$aParams)
+ {
+ if (!$sBaseCmd) {
+ throw new Exception('Command missing in new() call');
+ }
+ $this->baseCmd = $sBaseCmd;
+ $this->aParams = array();
+ $this->aEnv = null; // null = use the same environment as the current PHP process
+
+ $this->stdoutString = null;
+
+ foreach ($aParams as $sParam) {
+ $this->addParams($sParam);
+ }
+ }
+
+ public function addParams(...$aParams)
+ {
+ foreach ($aParams as $sParam) {
+ if (isset($sParam) && $sParam !== null && $sParam !== '') {
+ array_push($this->aParams, $sParam);
+ }
+ }
+ return $this;
+ }
+
+ public function addEnvPair($sKey, $sVal)
+ {
+ if (isset($sKey) && $sKey && isset($sVal)) {
+ if (!isset($this->aEnv)) $this->aEnv = $_ENV;
+ $this->aEnv = array_merge($this->aEnv, array($sKey => $sVal), $_ENV);
+ }
+ return $this;
+ }
+
+ public function escapedCmd()
+ {
+ $aEscaped = array_map(function ($sParam) {
+ return $this->escapeParam($sParam);
+ }, array_merge(array($this->baseCmd), $this->aParams));
+
+ return join(' ', $aEscaped);
+ }
+
+ public function run()
+ {
+ $sCmd = $this->escapedCmd();
+ // $aEnv does not need escaping, proc_open seems to handle it fine
+
+ $aFDs = array(
+ 0 => array('pipe', 'r'),
+ 1 => STDOUT,
+ 2 => STDERR
+ );
+ $aPipes = null;
+ $hProc = @proc_open($sCmd, $aFDs, $aPipes, null, $this->aEnv);
+ if (!is_resource($hProc)) {
+ throw new \Exception('Unable to run command: ' . $sCmd);
+ }
+
+ fclose($aPipes[0]); // no stdin
+
+ $iStat = proc_close($hProc);
+ return $iStat;
+ }
+
+
+
+ private function escapeParam($sParam)
+ {
+ if (preg_match('/^-*\w+$/', $sParam)) return $sParam;
+ return escapeshellarg($sParam);
+ }
+}
namespace Nominatim;
use Exception;
-use PEAR;
class Status
{
public function status()
{
- if (!$this->oDB || PEAR::isError($this->oDB)) {
+ if (!$this->oDB) {
throw new Exception('No database', 700);
}
+ try {
+ $this->oDB->connect();
+ } catch (\Nominatim\DatabaseError $e) {
+ throw new Exception('Database connection failed', 700);
+ }
+
$sStandardWord = $this->oDB->getOne("SELECT make_standard_name('a')");
- if (PEAR::isError($sStandardWord)) {
+ if ($sStandardWord === false) {
throw new Exception('Module failed', 701);
}
$sSQL = 'SELECT word_id, word_token, word, class, type, country_code, ';
$sSQL .= "operator, search_name_count FROM word WHERE word_token IN (' a')";
$iWordID = $this->oDB->getOne($sSQL);
- if (PEAR::isError($iWordID)) {
+ if ($iWordID === false) {
throw new Exception('Query failed', 703);
}
if (!$iWordID) {
$sSQL = 'SELECT EXTRACT(EPOCH FROM lastimportdate) FROM import_status LIMIT 1';
$iDataDateEpoch = $this->oDB->getOne($sSQL);
- if (PEAR::isError($iDataDateEpoch)) {
+ if ($iDataDateEpoch === false) {
throw Exception('Data date query failed '.$iDataDateEpoch->getMessage(), 705);
}
return isset($this->aTokens[$sWord]);
}
+ /**
+ * Check if there are partial or full tokens for the given word.
+ *
+ * @param string $sWord Token word to look for.
+ *
+ * @return bool True if there is one or more token for the token word.
+ */
+ public function containsAny($sWord)
+ {
+ return isset($this->aTokens[$sWord]) || isset($this->aTokens[' '.$sWord]);
+ }
+
/**
* Get the list of tokens for the given token word.
*
/**
* Add token information from the word table in the database.
*
- * @param object $oDB Database connection.
+ * @param object $oDB Nominatim::DB instance.
* @param string[] $aTokens List of tokens to look up in the database.
* @param string[] $aCountryCodes List of country restrictions.
* @param string $sNormQuery Normalized query string.
$sSQL = 'SELECT word_id, word_token, word, class, type, country_code,';
$sSQL .= ' operator, coalesce(search_name_count, 0) as count';
$sSQL .= ' FROM word WHERE word_token in (';
- $sSQL .= join(',', array_map('getDBQuoted', $aTokens)).')';
+ $sSQL .= join(',', $oDB->getDBQuotedList($aTokens)).')';
Debug::printSQL($sSQL);
- $aDBWords = chksql($oDB->getAll($sSQL), 'Could not get word tokens.');
+ $aDBWords = $oDB->getAll($sSQL, null, 'Could not get word tokens.');
foreach ($aDBWords as $aWord) {
$oToken = null;
<?php
+require_once(CONST_BasePath.'/lib/Shell.php');
function getCmdOpt($aArg, $aSpec, &$aResult, $bExitOnError = false, $bExitOnUnknown = false)
{
exit;
}
-function chksql($oSql, $sMsg = false)
-{
- if (PEAR::isError($oSql)) {
- fail($sMsg || $oSql->getMessage(), $oSql->userinfo);
- }
-
- return $oSql;
-}
-
function info($sMsg)
{
echo date('Y-m-d H:i:s == ').$sMsg."\n";
function runSQLScript($sScript, $bfatal = true, $bVerbose = false, $bIgnoreErrors = false)
{
// Convert database DSN to psql parameters
- $aDSNInfo = DB::parseDSN(CONST_Database_DSN);
+ $aDSNInfo = \Nominatim\DB::parseDSN(CONST_Database_DSN);
if (!isset($aDSNInfo['port']) || !$aDSNInfo['port']) $aDSNInfo['port'] = 5432;
- $sCMD = 'psql -p '.$aDSNInfo['port'].' -d '.$aDSNInfo['database'];
+
+ $oCmd = new \Nominatim\Shell('psql');
+ $oCmd->addParams('--port', $aDSNInfo['port']);
+ $oCmd->addParams('--dbname', $aDSNInfo['database']);
if (isset($aDSNInfo['hostspec']) && $aDSNInfo['hostspec']) {
- $sCMD .= ' -h ' . $aDSNInfo['hostspec'];
+ $oCmd->addParams('--host', $aDSNInfo['hostspec']);
}
if (isset($aDSNInfo['username']) && $aDSNInfo['username']) {
- $sCMD .= ' -U ' . $aDSNInfo['username'];
+ $oCmd->addParams('--username', $aDSNInfo['username']);
}
- $aProcEnv = null;
- if (isset($aDSNInfo['password']) && $aDSNInfo['password']) {
- $aProcEnv = array_merge(array('PGPASSWORD' => $aDSNInfo['password']), $_ENV);
+ if (isset($aDSNInfo['password'])) {
+ $oCmd->addEnvPair('PGPASSWORD', $aDSNInfo['password']);
}
if (!$bVerbose) {
- $sCMD .= ' -q';
+ $oCmd->addParams('--quiet');
}
if ($bfatal && !$bIgnoreErrors) {
- $sCMD .= ' -v ON_ERROR_STOP=1';
+ $oCmd->addParams('-v', 'ON_ERROR_STOP=1');
}
+
$aDescriptors = array(
0 => array('pipe', 'r'),
1 => STDOUT,
2 => STDERR
);
$ahPipes = null;
- $hProcess = @proc_open($sCMD, $aDescriptors, $ahPipes, null, $aProcEnv);
+ $hProcess = @proc_open($oCmd->escapedCmd(), $aDescriptors, $ahPipes, null, $oCmd->aEnv);
if (!is_resource($hProcess)) {
fail('unable to start pgsql');
}
fail("pgsql returned with error code ($iReturn)");
}
}
-
-
-function runWithEnv($sCmd, $aEnv)
-{
- $aFDs = array(
- 0 => array('pipe', 'r'),
- 1 => STDOUT,
- 2 => STDERR
- );
- $aPipes = null;
- $hProc = @proc_open($sCmd, $aFDs, $aPipes, null, $aEnv);
- if (!is_resource($hProc)) {
- fail('unable to run command:' . $sCmd);
- }
-
- fclose($aPipes[0]); // no stdin
-
- $iStat = proc_close($hProc);
- return $iStat;
-}
+++ /dev/null
-<?php
-
-require_once('DB.php');
-
-
-function &getDB($bNew = false, $bPersistent = false)
-{
- // Get the database object
- $oDB = chksql(
- DB::connect(CONST_Database_DSN.($bNew?'?new_link=true':''), $bPersistent),
- 'Failed to establish database connection'
- );
- $oDB->setFetchMode(DB_FETCHMODE_ASSOC);
- $oDB->query("SET DateStyle TO 'sql,european'");
- $oDB->query("SET client_encoding TO 'utf-8'");
- $iMaxExecution = ini_get('max_execution_time') * 1000;
- if ($iMaxExecution > 0) $oDB->query("SET statement_timeout TO $iMaxExecution");
- return $oDB;
-}
-
-function getDBQuoted($s)
-{
- return "'".pg_escape_string($s)."'";
-}
-
-function getArraySQL($a)
-{
- return 'ARRAY['.join(',', $a).']';
-}
-
-function getPostgresVersion(&$oDB)
-{
- $sVersionString = $oDB->getOne('select version()');
- preg_match('#PostgreSQL ([0-9]+)[.]([0-9]+)[^0-9]#', $sVersionString, $aMatches);
- return (float) ($aMatches[1].'.'.$aMatches[2]);
-}
-
-function getPostgisVersion(&$oDB)
-{
- $sVersionString = $oDB->getOne('select postgis_full_version()');
- preg_match('#POSTGIS="([0-9]+)[.]([0-9]+)[.]([0-9]+)( r([0-9]+))?"#', $sVersionString, $aMatches);
- return (float) ($aMatches[1].'.'.$aMatches[2]);
-}
*
*/
+function userError($sMsg)
+{
+ throw new Exception($sMsg, 400);
+}
+
-function chksql($oSql, $sMsg = 'Database request failed')
+function exception_handler_html($exception)
{
- if (!PEAR::isError($oSql)) return $oSql;
-
- header('HTTP/1.0 500 Internal Server Error');
- header('Content-type: text/html; charset=utf-8');
-
- $sSqlError = $oSql->getMessage();
-
- echo <<<INTERNALFAIL
-<html>
- <head><title>Internal Server Error</title></head>
- <body>
- <h1>Internal Server Error</h1>
- <p>Nominatim has encountered an internal error while accessing the database.
- This may happen because the database is broken or because of a bug in
- the software. If you think it is a bug, feel free to report
- it over on <a href="https://github.com/openstreetmap/Nominatim/issues">
- Github</a>. Please include the URL that caused the problem and the
- complete error details below.</p>
- <p><b>Message:</b> $sMsg</p>
- <p><b>SQL Error:</b> $sSqlError</p>
- <p><b>Details:</b> <pre>
-INTERNALFAIL;
-
- if (CONST_Debug) {
- var_dump($oSql);
- } else {
- echo "<pre>\n".$oSql->getUserInfo().'</pre>';
+ http_response_code($exception->getCode());
+ header('Content-type: text/html; charset=UTF-8');
+ include(CONST_BasePath.'/lib/template/error-html.php');
+ exit();
+}
+
+function exception_handler_json($exception)
+{
+ http_response_code($exception->getCode());
+ header('Content-type: application/json; charset=utf-8');
+ include(CONST_BasePath.'/lib/template/error-json.php');
+ exit();
+}
+
+function exception_handler_xml($exception)
+{
+ http_response_code($exception->getCode());
+ header('Content-type: text/xml; charset=utf-8');
+ echo '<?xml version="1.0" encoding="UTF-8" ?>'."\n";
+ include(CONST_BasePath.'/lib/template/error-xml.php');
+ exit();
+}
+
+function shutdown_exception_handler_html()
+{
+ $error = error_get_last();
+ if ($error !== null && $error['type'] === E_ERROR) {
+ exception_handler_html(new Exception($error['message'], 500));
}
+}
- echo '</pre></p></body></html>';
- exit;
+function shutdown_exception_handler_xml()
+{
+ $error = error_get_last();
+ if ($error !== null && $error['type'] === E_ERROR) {
+ exception_handler_xml(new Exception($error['message'], 500));
+ }
}
-function failInternalError($sError, $sSQL = false, $vDumpVar = false)
+function shutdown_exception_handler_json()
{
- header('HTTP/1.0 500 Internal Server Error');
- header('Content-type: text/html; charset=utf-8');
- echo '<html><body><h1>Internal Server Error</h1>';
- echo '<p>Nominatim has encountered an internal error while processing your request. This is most likely because of a bug in the software.</p>';
- echo '<p><b>Details:</b> '.$sError,'</p>';
- echo '<p>Feel free to file an issue on <a href="https://github.com/openstreetmap/Nominatim/issues">Github</a>. ';
- echo 'Please include the error message above and the URL you used.</p>';
- if (CONST_Debug) {
- echo '<hr><h2>Debugging Information</h2><br>';
- if ($sSQL) {
- echo '<h3>SQL query</h3><code>'.$sSQL.'</code>';
- }
- if ($vDumpVar) {
- echo '<h3>Result</h3> <code>';
- var_dump($vDumpVar);
- echo '</code>';
- }
+ $error = error_get_last();
+ if ($error !== null && $error['type'] === E_ERROR) {
+ exception_handler_json(new Exception($error['message'], 500));
}
- echo "\n</body></html>\n";
- exit;
}
-function userError($sError)
+function set_exception_handler_by_format($sFormat = null)
{
- header('HTTP/1.0 400 Bad Request');
- header('Content-type: text/html; charset=utf-8');
- echo '<html><body><h1>Bad Request</h1>';
- echo '<p>Nominatim has encountered an error with your request.</p>';
- echo '<p><b>Details:</b> '.$sError.'</p>';
- echo '<p>If you feel this error is incorrect feel file an issue on <a href="https://github.com/openstreetmap/Nominatim/issues">Github</a>. ';
- echo 'Please include the error message above and the URL you used.</p>';
- echo "\n</body></html>\n";
- exit;
+ // Multiple calls to register_shutdown_function will cause multiple callbacks
+ // to be executed, we only want the last executed. Thus we don't want to register
+ // one by default without an explicit $sFormat set.
+
+ if (!isset($sFormat)) {
+ set_exception_handler('exception_handler_html');
+ } elseif ($sFormat == 'html') {
+ set_exception_handler('exception_handler_html');
+ register_shutdown_function('shutdown_exception_handler_html');
+ } elseif ($sFormat == 'xml') {
+ set_exception_handler('exception_handler_xml');
+ register_shutdown_function('shutdown_exception_handler_xml');
+ } else {
+ set_exception_handler('exception_handler_json');
+ register_shutdown_function('shutdown_exception_handler_json');
+ }
}
+// set a default
+set_exception_handler_by_format();
/***************************************************************************
header('Access-Control-Allow-Headers: '.$_SERVER['HTTP_ACCESS_CONTROL_REQUEST_HEADERS']);
}
}
-if ($_SERVER['REQUEST_METHOD'] == 'OPTIONS') exit;
+if (isset($_SERVER['REQUEST_METHOD']) && $_SERVER['REQUEST_METHOD'] == 'OPTIONS') exit;
if (CONST_Debug) header('Content-type: text/html; charset=utf-8');
<?php
require_once(CONST_BasePath.'/lib/lib.php');
-require_once(CONST_BasePath.'/lib/db.php');
+require_once(CONST_BasePath.'/lib/DB.php');
if (get_magic_quotes_gpc()) {
echo "Please disable magic quotes in your php.ini configuration\n";
{
if (!$sUserError) $sUserError = $sError;
error_log('ERROR: '.$sError);
- echo $sUserError."\n";
+ var_dump($sUserError)."\n";
exit(-1);
}
function javascript_renderData($xVal, $iOptions = 0)
{
- $iOptions |= JSON_UNESCAPED_UNICODE;
+ $sCallback = isset($_GET['json_callback']) ? $_GET['json_callback'] : '';
+ if ($sCallback && !preg_match('/^[$_\p{L}][$_\p{L}\p{Nd}.[\]]*$/u', $sCallback)) {
+ // Unset, we call javascript_renderData again during exception handling
+ unset($_GET['json_callback']);
+ throw new Exception('Invalid json_callback value', 400);
+ }
+
+ $iOptions |= JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES;
if (isset($_GET['pretty']) && in_array(strtolower($_GET['pretty']), array('1', 'true'))) {
$iOptions |= JSON_PRETTY_PRINT;
}
$jsonout = json_encode($xVal, $iOptions);
- if (!isset($_GET['json_callback'])) {
+ if ($sCallback) {
+ header('Content-Type: application/javascript; charset=UTF-8');
+ echo $_GET['json_callback'].'('.$jsonout.')';
+ } else {
header('Content-Type: application/json; charset=UTF-8');
echo $jsonout;
- } else {
- if (preg_match('/^[$_\p{L}][$_\p{L}\p{Nd}.[\]]*$/u', $_GET['json_callback'])) {
- header('Content-Type: application/javascript; charset=UTF-8');
- echo $_GET['json_callback'].'('.$jsonout.')';
- } else {
- header('HTTP/1.0 400 Bad Request');
- }
}
}
$fQueryLat = null;
$fQueryLon = null;
- if (preg_match('/\\s*([NS])[ ]+([0-9]+[0-9.]*)[° ]+([0-9.]+)?[′\']*[, ]+([EW])[ ]+([0-9]+)[° ]+([0-9]+[0-9.]*)[′\']*\\s*/', $sQuery, $aData)) {
- /* 1 2 3 4 5 6
+ if (preg_match('/\\s*([NS])[\s]+([0-9]+[0-9.]*)[°\s]+([0-9.]+)?[′\']*[,\s]+([EW])[\s]+([0-9]+)[°\s]+([0-9]+[0-9.]*)[′\']*\\s*/', $sQuery, $aData)) {
+ /* 1 2 3 4 5 6
* degrees decimal minutes
* N 40 26.767, W 79 58.933
* N 40°26.767′, W 79°58.933′
$sFound = $aData[0];
$fQueryLat = ($aData[1]=='N'?1:-1) * ($aData[2] + $aData[3]/60);
$fQueryLon = ($aData[4]=='E'?1:-1) * ($aData[5] + $aData[6]/60);
- } elseif (preg_match('/\\s*([0-9]+)[° ]+([0-9]+[0-9.]*)?[′\']*[ ]+([NS])[, ]+([0-9]+)[° ]+([0-9]+[0-9.]*)?[′\' ]+([EW])\\s*/', $sQuery, $aData)) {
- /* 1 2 3 4 5 6
+ } elseif (preg_match('/\\s*([0-9]+)[°\s]+([0-9]+[0-9.]*)?[′\']*[\s]+([NS])[,\s]+([0-9]+)[°\s]+([0-9]+[0-9.]*)?[′\'\s]+([EW])\\s*/', $sQuery, $aData)) {
+ /* 1 2 3 4 5 6
* degrees decimal minutes
* 40 26.767 N, 79 58.933 W
* 40° 26.767′ N 79° 58.933′ W
$sFound = $aData[0];
$fQueryLat = ($aData[3]=='N'?1:-1) * ($aData[1] + $aData[2]/60);
$fQueryLon = ($aData[6]=='E'?1:-1) * ($aData[4] + $aData[5]/60);
- } elseif (preg_match('/\\s*([NS])[ ]([0-9]+)[° ]+([0-9]+)[′\' ]+([0-9]+)[″"]*[, ]+([EW])[ ]([0-9]+)[° ]+([0-9]+)[′\' ]+([0-9]+)[″"]*\\s*/', $sQuery, $aData)) {
- /* 1 2 3 4 5 6 7 8
+ } elseif (preg_match('/\\s*([NS])[\s]+([0-9]+)[°\s]+([0-9]+)[′\'\s]+([0-9]+)[″"]*[,\s]+([EW])[\s]+([0-9]+)[°\s]+([0-9]+)[′\'\s]+([0-9]+)[″"]*\\s*/', $sQuery, $aData)) {
+ /* 1 2 3 4 5 6 7 8
* degrees decimal seconds
* N 40 26 46 W 79 58 56
* N 40° 26′ 46″, W 79° 58′ 56″
$sFound = $aData[0];
$fQueryLat = ($aData[1]=='N'?1:-1) * ($aData[2] + $aData[3]/60 + $aData[4]/3600);
$fQueryLon = ($aData[5]=='E'?1:-1) * ($aData[6] + $aData[7]/60 + $aData[8]/3600);
- } elseif (preg_match('/\\s*([0-9]+)[° ]+([0-9]+)[′\' ]+([0-9]+[0-9.]*)[″" ]+([NS])[, ]+([0-9]+)[° ]+([0-9]+)[′\' ]+([0-9]+[0-9.]*)[″" ]+([EW])\\s*/', $sQuery, $aData)) {
- /* 1 2 3 4 5 6 7 8
+ } elseif (preg_match('/\\s*([0-9]+)[°\s]+([0-9]+)[′\'\s]+([0-9]+[0-9.]*)[″"\s]+([NS])[,\s]+([0-9]+)[°\s]+([0-9]+)[′\'\s]+([0-9]+[0-9.]*)[″"\s]+([EW])\\s*/', $sQuery, $aData)) {
+ /* 1 2 3 4 5 6 7 8
* degrees decimal seconds
* 40 26 46 N 79 58 56 W
* 40° 26′ 46″ N, 79° 58′ 56″ W
$sFound = $aData[0];
$fQueryLat = ($aData[4]=='N'?1:-1) * ($aData[1] + $aData[2]/60 + $aData[3]/3600);
$fQueryLon = ($aData[8]=='E'?1:-1) * ($aData[5] + $aData[6]/60 + $aData[7]/3600);
- } elseif (preg_match('/\\s*([NS])[ ]([0-9]+[0-9]*\\.[0-9]+)[°]*[, ]+([EW])[ ]([0-9]+[0-9]*\\.[0-9]+)[°]*\\s*/', $sQuery, $aData)) {
- /* 1 2 3 4
+ } elseif (preg_match('/\\s*([NS])[\s]+([0-9]+[0-9]*\\.[0-9]+)[°]*[,\s]+([EW])[\s]+([0-9]+[0-9]*\\.[0-9]+)[°]*\\s*/', $sQuery, $aData)) {
+ /* 1 2 3 4
* degrees decimal
* N 40.446° W 79.982°
*/
$sFound = $aData[0];
$fQueryLat = ($aData[1]=='N'?1:-1) * ($aData[2]);
$fQueryLon = ($aData[3]=='E'?1:-1) * ($aData[4]);
- } elseif (preg_match('/\\s*([0-9]+[0-9]*\\.[0-9]+)[° ]+([NS])[, ]+([0-9]+[0-9]*\\.[0-9]+)[° ]+([EW])\\s*/', $sQuery, $aData)) {
- /* 1 2 3 4
+ } elseif (preg_match('/\\s*([0-9]+[0-9]*\\.[0-9]+)[°\s]+([NS])[,\s]+([0-9]+[0-9]*\\.[0-9]+)[°\s]+([EW])\\s*/', $sQuery, $aData)) {
+ /* 1 2 3 4
* degrees decimal
* 40.446° N 79.982° W
*/
$sFound = $aData[0];
$fQueryLat = ($aData[2]=='N'?1:-1) * ($aData[1]);
$fQueryLon = ($aData[4]=='E'?1:-1) * ($aData[3]);
- } elseif (preg_match('/(\\s*\\[|^\\s*|\\s*)(-?[0-9]+[0-9]*\\.[0-9]+)[, ]+(-?[0-9]+[0-9]*\\.[0-9]+)(\\]\\s*|\\s*$|\\s*)/', $sQuery, $aData)) {
- /* 1 2 3 4
+ } elseif (preg_match('/(\\s*\\[|^\\s*|\\s*)(-?[0-9]+[0-9]*\\.[0-9]+)[,\s]+(-?[0-9]+[0-9]*\\.[0-9]+)(\\]\\s*|\\s*$|\\s*)/', $sQuery, $aData)) {
+ /* 1 2 3 4
* degrees decimal
* 12.34, 56.78
* 12.34 56.78
return array($sFound, $fQueryLat, $fQueryLon);
}
-
-function geometryText2Points($geometry_as_text, $fRadius)
-{
- $aPolyPoints = null;
- if (preg_match('#POLYGON\\(\\(([- 0-9.,]+)#', $geometry_as_text, $aMatch)) {
- //
- preg_match_all('/(-?[0-9.]+) (-?[0-9.]+)/', $aMatch[1], $aPolyPoints, PREG_SET_ORDER);
- //
- } elseif (preg_match('#LINESTRING\\(([- 0-9.,]+)#', $geometry_as_text, $aMatch)) {
- //
- preg_match_all('/(-?[0-9.]+) (-?[0-9.]+)/', $aMatch[1], $aPolyPoints, PREG_SET_ORDER);
- //
- } elseif (preg_match('#MULTIPOLYGON\\(\\(\\(([- 0-9.,]+)#', $geometry_as_text, $aMatch)) {
- //
- preg_match_all('/(-?[0-9.]+) (-?[0-9.]+)/', $aMatch[1], $aPolyPoints, PREG_SET_ORDER);
- //
- } elseif (preg_match('#POINT\\((-?[0-9.]+) (-?[0-9.]+)\\)#', $geometry_as_text, $aMatch)) {
- //
- $aPolyPoints = createPointsAroundCenter($aMatch[1], $aMatch[2], $fRadius);
- //
- }
-
- if (isset($aPolyPoints)) {
- $aResultPoints = array();
- foreach ($aPolyPoints as $aPoint) {
- $aResultPoints[] = array($aPoint[1], $aPoint[2]);
- }
- return $aResultPoints;
- }
-
- return;
-}
-
function createPointsAroundCenter($fLon, $fLat, $fRadius)
{
$iSteps = max(8, min(100, ($fRadius * 40000)^2));
return max(min($aRow['endnumber'], $iHn), $aRow['startnumber']);
}
+
+function getSearchRankLabel($iRank)
+{
+ if (!isset($iRank)) return 'unknown';
+ if ($iRank < 2) return 'continent';
+ if ($iRank < 4) return 'sea';
+ if ($iRank < 8) return 'country';
+ if ($iRank < 12) return 'state';
+ if ($iRank < 16) return 'county';
+ if ($iRank == 16) return 'city';
+ if ($iRank == 17) return 'town / island';
+ if ($iRank == 18) return 'village / hamlet';
+ if ($iRank == 20) return 'suburb';
+ if ($iRank == 21) return 'postcode area';
+ if ($iRank == 22) return 'croft / farm / locality / islet';
+ if ($iRank == 23) return 'postcode area';
+ if ($iRank == 25) return 'postcode point';
+ if ($iRank == 26) return 'street / major landmark';
+ if ($iRank == 27) return 'minory street / path';
+ if ($iRank == 28) return 'house / building';
+ return 'other: ' . $iRank;
+}
$sUserAgent = $_SERVER['HTTP_USER_AGENT'];
else $sUserAgent = '';
$sSQL = 'insert into new_query_log (type,starttime,query,ipaddress,useragent,language,format,searchterm)';
- $sSQL .= ' values ('.getDBQuoted($sType).','.getDBQuoted($hLog[0]).','.getDBQuoted($hLog[2]);
- $sSQL .= ','.getDBQuoted($hLog[1]).','.getDBQuoted($sUserAgent).','.getDBQuoted(join(',', $aLanguageList)).','.getDBQuoted($sOutputFormat).','.getDBQuoted($hLog[3]).')';
- $oDB->query($sSQL);
+ $sSQL .= ' values (';
+ $sSQL .= join(',', $oDB->getDBQuotedList(array(
+ $sType,
+ $hLog[0],
+ $hLog[2],
+ $hLog[1],
+ $sUserAgent,
+ join(',', $aLanguageList),
+ $sOutputFormat,
+ $hLog[3]
+ )));
+ $sSQL .= ')';
+ $oDB->exec($sSQL);
}
return $hLog;
if (!$aEndTime[1]) $aEndTime[1] = '0';
$sEndTime = date('Y-m-d H:i:s', $aEndTime[0]).'.'.$aEndTime[1];
- $sSQL = 'update new_query_log set endtime = '.getDBQuoted($sEndTime).', results = '.$iNumResults;
- $sSQL .= ' where starttime = '.getDBQuoted($hLog[0]);
- $sSQL .= ' and ipaddress = '.getDBQuoted($hLog[1]);
- $sSQL .= ' and query = '.getDBQuoted($hLog[2]);
- $oDB->query($sSQL);
+ $sSQL = 'update new_query_log set endtime = '.$oDB->getDBQuoted($sEndTime).', results = '.$iNumResults;
+ $sSQL .= ' where starttime = '.$oDB->getDBQuoted($hLog[0]);
+ $sSQL .= ' and ipaddress = '.$oDB->getDBQuoted($hLog[1]);
+ $sSQL .= ' and query = '.$oDB->getDBQuoted($hLog[2]);
+ $oDB->exec($sSQL);
}
if (CONST_Log_File) {
if ($sType == 'T') return 'way';
if ($sType == 'I') return 'way';
+ // not handled: P, L
+
return '';
}
return '';
}
-function detailsLink($aFeature, $sTitle = false)
+function detailsLink($aFeature, $sTitle = false, $sExtraProperties = false)
{
if (!$aFeature['place_id']) return '';
- return '<a href="details.php?place_id='.$aFeature['place_id'].'">'.($sTitle?$sTitle:$aFeature['place_id']).'</a>';
+ $sHtml = '<a ';
+ if ($sExtraProperties) {
+ $sHtml .= $sExtraProperties.' ';
+ }
+
+ $sHtml .= 'href="details.php?place_id='.$aFeature['place_id'].'">'.($sTitle?$sTitle:$aFeature['place_id']).'</a>';
+
+ return $sHtml;
}
-function detailsPermaLink($aFeature, $sRefText = false)
+function detailsPermaLink($aFeature, $sRefText = false, $sExtraProperties = false)
{
$sOSMType = formatOSMType($aFeature['osm_type'], false);
if ($sOSMType) {
- $sLabel = $sRefText ? $sRefText : $sOSMType.' '.$aFeature['osm_id'];
- return '<a href="details.php?osmtype='.$aFeature['osm_type'].'&osmid='.$aFeature['osm_id'].'&class='.$aFeature['class'].'">'.$sLabel.'</a>';
+ $sHtml = '<a ';
+ if ($sExtraProperties) {
+ $sHtml .= $sExtraProperties.' ';
+ }
+ $sHtml .= 'href="details.php?osmtype='.$aFeature['osm_type']
+ .'&osmid='.$aFeature['osm_id'].'&class='.$aFeature['class'].'">';
+
+ if ($sRefText) {
+ $sHtml .= $sRefText.'</a>';
+ } else {
+ $sHtml .= $sOSMType.' '.$aFeature['osm_id'].'</a>';
+ }
+
+ return $sHtml;
}
- return '';
+ return detailsLink($aFeature, $sRefText, $sExtraProperties);
}
--- /dev/null
+<?php
+
+namespace Nominatim\Setup;
+
+/**
+ * Parses an address level description.
+ */
+class AddressLevelParser
+{
+ private $aLevels;
+
+ public function __construct($sDescriptionFile)
+ {
+ $sJson = file_get_contents($sDescriptionFile);
+ $this->aLevels = json_decode($sJson, true);
+ if (!$this->aLevels) {
+ switch (json_last_error()) {
+ case JSON_ERROR_NONE:
+ break;
+ case JSON_ERROR_DEPTH:
+ fail('JSON error - Maximum stack depth exceeded');
+ break;
+ case JSON_ERROR_STATE_MISMATCH:
+ fail('JSON error - Underflow or the modes mismatch');
+ break;
+ case JSON_ERROR_CTRL_CHAR:
+ fail('JSON error - Unexpected control character found');
+ break;
+ case JSON_ERROR_SYNTAX:
+ fail('JSON error - Syntax error, malformed JSON');
+ break;
+ case JSON_ERROR_UTF8:
+ fail('JSON error - Malformed UTF-8 characters, possibly incorrectly encoded');
+ break;
+ default:
+ fail('JSON error - Unknown error');
+ break;
+ }
+ }
+ }
+
+ /**
+ * Dump the description into a database table.
+ *
+ * @param object $oDB Database conneciton to use.
+ * @param string $sTable Name of table to create.
+ *
+ * @return null
+ *
+ * A new table is created. Any previously existing table is dropped.
+ * The table has the following columns:
+ * country, class, type, rank_search, rank_address.
+ */
+ public function createTable($oDB, $sTable)
+ {
+ $oDB->exec('DROP TABLE IF EXISTS '.$sTable);
+ $sSql = 'CREATE TABLE '.$sTable;
+ $sSql .= '(country_code varchar(2), class TEXT, type TEXT,';
+ $sSql .= ' rank_search SMALLINT, rank_address SMALLINT)';
+ $oDB->exec($sSql);
+
+ $sSql = 'CREATE UNIQUE INDEX ON '.$sTable.' (country_code, class, type)';
+ $oDB->exec($sSql);
+
+ $sSql = 'INSERT INTO '.$sTable.' VALUES ';
+ foreach ($this->aLevels as $aLevel) {
+ $aCountries = array();
+ if (isset($aLevel['countries'])) {
+ foreach ($aLevel['countries'] as $sCountry) {
+ $aCountries[$sCountry] = $oDB->getDBQuoted($sCountry);
+ }
+ } else {
+ $aCountries['NULL'] = 'NULL';
+ }
+ foreach ($aLevel['tags'] as $sKey => $aValues) {
+ foreach ($aValues as $sValue => $mRanks) {
+ $aFields = array(
+ $oDB->getDBQuoted($sKey),
+ $sValue ? $oDB->getDBQuoted($sValue) : 'NULL'
+ );
+ if (is_array($mRanks)) {
+ $aFields[] = (string) $mRanks[0];
+ $aFields[] = (string) $mRanks[1];
+ } else {
+ $aFields[] = (string) $mRanks;
+ $aFields[] = (string) $mRanks;
+ }
+ $sLine = ','.join(',', $aFields).'),';
+
+ foreach ($aCountries as $sCountries) {
+ $sSql .= '('.$sCountries.$sLine;
+ }
+ }
+ }
+ }
+ $oDB->exec(rtrim($sSql, ','));
+ }
+}
--- /dev/null
+<?php
+
+namespace Nominatim\Setup;
+
+require_once(CONST_BasePath.'/lib/setup/AddressLevelParser.php');
+require_once(CONST_BasePath.'/lib/Shell.php');
+
+class SetupFunctions
+{
+ protected $iCacheMemory;
+ protected $iInstances;
+ protected $sModulePath;
+ protected $aDSNInfo;
+ protected $bQuiet;
+ protected $bVerbose;
+ protected $sIgnoreErrors;
+ protected $bEnableDiffUpdates;
+ protected $bEnableDebugStatements;
+ protected $bNoPartitions;
+ protected $bDrop;
+ protected $oDB = null;
+
+ public function __construct(array $aCMDResult)
+ {
+ // by default, use all but one processor, but never more than 15.
+ $this->iInstances = isset($aCMDResult['threads'])
+ ? $aCMDResult['threads']
+ : (min(16, getProcessorCount()) - 1);
+
+ if ($this->iInstances < 1) {
+ $this->iInstances = 1;
+ warn('resetting threads to '.$this->iInstances);
+ }
+
+ if (isset($aCMDResult['osm2pgsql-cache'])) {
+ $this->iCacheMemory = $aCMDResult['osm2pgsql-cache'];
+ } elseif (!is_null(CONST_Osm2pgsql_Flatnode_File)) {
+ // When flatnode files are enabled then disable cache per default.
+ $this->iCacheMemory = 0;
+ } else {
+ // Otherwise: Assume we can steal all the cache memory in the box.
+ $this->iCacheMemory = getCacheMemoryMB();
+ }
+
+ $this->sModulePath = CONST_Database_Module_Path;
+ info('module path: ' . $this->sModulePath);
+
+ // parse database string
+ $this->aDSNInfo = \Nominatim\DB::parseDSN(CONST_Database_DSN);
+ if (!isset($this->aDSNInfo['port'])) {
+ $this->aDSNInfo['port'] = 5432;
+ }
+
+ // setting member variables based on command line options stored in $aCMDResult
+ $this->bQuiet = isset($aCMDResult['quiet']) && $aCMDResult['quiet'];
+ $this->bVerbose = $aCMDResult['verbose'];
+
+ //setting default values which are not set by the update.php array
+ if (isset($aCMDResult['ignore-errors'])) {
+ $this->sIgnoreErrors = $aCMDResult['ignore-errors'];
+ } else {
+ $this->sIgnoreErrors = false;
+ }
+ if (isset($aCMDResult['enable-debug-statements'])) {
+ $this->bEnableDebugStatements = $aCMDResult['enable-debug-statements'];
+ } else {
+ $this->bEnableDebugStatements = false;
+ }
+ if (isset($aCMDResult['no-partitions'])) {
+ $this->bNoPartitions = $aCMDResult['no-partitions'];
+ } else {
+ $this->bNoPartitions = false;
+ }
+ if (isset($aCMDResult['enable-diff-updates'])) {
+ $this->bEnableDiffUpdates = $aCMDResult['enable-diff-updates'];
+ } else {
+ $this->bEnableDiffUpdates = false;
+ }
+
+ $this->bDrop = isset($aCMDResult['drop']) && $aCMDResult['drop'];
+ }
+
+ public function createDB()
+ {
+ info('Create DB');
+ $oDB = new \Nominatim\DB;
+
+ if ($oDB->checkConnection()) {
+ fail('database already exists ('.CONST_Database_DSN.')');
+ }
+
+ $oCmd = (new \Nominatim\Shell('createdb'))
+ ->addParams('-E', 'UTF-8')
+ ->addParams('-p', $this->aDSNInfo['port']);
+
+ if (isset($this->aDSNInfo['username'])) {
+ $oCmd->addParams('-U', $this->aDSNInfo['username']);
+ }
+ if (isset($this->aDSNInfo['password'])) {
+ $oCmd->addEnvPair('PGPASSWORD', $this->aDSNInfo['password']);
+ }
+ if (isset($this->aDSNInfo['hostspec'])) {
+ $oCmd->addParams('-h', $this->aDSNInfo['hostspec']);
+ }
+ $oCmd->addParams($this->aDSNInfo['database']);
+
+ $result = $oCmd->run();
+ if ($result != 0) fail('Error executing external command: '.$oCmd->escapedCmd());
+ }
+
+ public function connect()
+ {
+ $this->oDB = new \Nominatim\DB();
+ $this->oDB->connect();
+ }
+
+ public function setupDB()
+ {
+ info('Setup DB');
+
+ $fPostgresVersion = $this->oDB->getPostgresVersion();
+ echo 'Postgres version found: '.$fPostgresVersion."\n";
+
+ if ($fPostgresVersion < 9.03) {
+ fail('Minimum supported version of Postgresql is 9.3.');
+ }
+
+ $this->pgsqlRunScript('CREATE EXTENSION IF NOT EXISTS hstore');
+ $this->pgsqlRunScript('CREATE EXTENSION IF NOT EXISTS postgis');
+
+ $fPostgisVersion = $this->oDB->getPostgisVersion();
+ echo 'Postgis version found: '.$fPostgisVersion."\n";
+
+ if ($fPostgisVersion < 2.2) {
+ echo "Minimum required Postgis version 2.2\n";
+ exit(1);
+ }
+
+ $i = $this->oDB->getOne("select count(*) from pg_user where usename = '".CONST_Database_Web_User."'");
+ if ($i == 0) {
+ echo "\nERROR: Web user '".CONST_Database_Web_User."' does not exist. Create it with:\n";
+ echo "\n createuser ".CONST_Database_Web_User."\n\n";
+ exit(1);
+ }
+
+ // Try accessing the C module, so we know early if something is wrong
+ checkModulePresence(); // raises exception on failure
+
+ if (!file_exists(CONST_ExtraDataPath.'/country_osm_grid.sql.gz')) {
+ echo 'Error: you need to download the country_osm_grid first:';
+ echo "\n wget -O ".CONST_ExtraDataPath."/country_osm_grid.sql.gz https://www.nominatim.org/data/country_grid.sql.gz\n";
+ exit(1);
+ }
+ $this->pgsqlRunScriptFile(CONST_BasePath.'/data/country_name.sql');
+ $this->pgsqlRunScriptFile(CONST_ExtraDataPath.'/country_osm_grid.sql.gz');
+ $this->pgsqlRunScriptFile(CONST_BasePath.'/data/gb_postcode_table.sql');
+ $this->pgsqlRunScriptFile(CONST_BasePath.'/data/us_postcode_table.sql');
+
+ $sPostcodeFilename = CONST_BasePath.'/data/gb_postcode_data.sql.gz';
+ if (file_exists($sPostcodeFilename)) {
+ $this->pgsqlRunScriptFile($sPostcodeFilename);
+ } else {
+ warn('optional external GB postcode table file ('.$sPostcodeFilename.') not found. Skipping.');
+ }
+
+ $sPostcodeFilename = CONST_BasePath.'/data/us_postcode_data.sql.gz';
+ if (file_exists($sPostcodeFilename)) {
+ $this->pgsqlRunScriptFile($sPostcodeFilename);
+ } else {
+ warn('optional external US postcode table file ('.$sPostcodeFilename.') not found. Skipping.');
+ }
+
+ if ($this->bNoPartitions) {
+ $this->pgsqlRunScript('update country_name set partition = 0');
+ }
+ }
+
+ public function importData($sOSMFile)
+ {
+ info('Import data');
+
+ if (!file_exists(CONST_Osm2pgsql_Binary)) {
+ echo "Check CONST_Osm2pgsql_Binary in your local settings file.\n";
+ echo "Normally you should not need to set this manually.\n";
+ fail("osm2pgsql not found in '".CONST_Osm2pgsql_Binary."'");
+ }
+
+ $oCmd = new \Nominatim\Shell(CONST_Osm2pgsql_Binary);
+ $oCmd->addParams('--style', CONST_Import_Style);
+
+ if (!is_null(CONST_Osm2pgsql_Flatnode_File) && CONST_Osm2pgsql_Flatnode_File) {
+ $oCmd->addParams('--flat-nodes', CONST_Osm2pgsql_Flatnode_File);
+ }
+ if (CONST_Tablespace_Osm2pgsql_Data) {
+ $oCmd->addParams('--tablespace-slim-data', CONST_Tablespace_Osm2pgsql_Data);
+ }
+ if (CONST_Tablespace_Osm2pgsql_Index) {
+ $oCmd->addParams('--tablespace-slim-index', CONST_Tablespace_Osm2pgsql_Index);
+ }
+ if (CONST_Tablespace_Place_Data) {
+ $oCmd->addParams('--tablespace-main-data', CONST_Tablespace_Place_Data);
+ }
+ if (CONST_Tablespace_Place_Index) {
+ $oCmd->addParams('--tablespace-main-index', CONST_Tablespace_Place_Index);
+ }
+ $oCmd->addParams('--latlong', '--slim', '--create');
+ $oCmd->addParams('--output', 'gazetteer');
+ $oCmd->addParams('--hstore');
+ $oCmd->addParams('--number-processes', 1);
+ $oCmd->addParams('--cache', $this->iCacheMemory);
+ $oCmd->addParams('--port', $this->aDSNInfo['port']);
+
+ if (isset($this->aDSNInfo['username'])) {
+ $oCmd->addParams('--username', $this->aDSNInfo['username']);
+ }
+ if (isset($this->aDSNInfo['password'])) {
+ $oCmd->addEnvPair('PGPASSWORD', $this->aDSNInfo['password']);
+ }
+ if (isset($this->aDSNInfo['hostspec'])) {
+ $oCmd->addParams('--host', $this->aDSNInfo['hostspec']);
+ }
+ $oCmd->addParams('--database', $this->aDSNInfo['database']);
+ $oCmd->addParams($sOSMFile);
+ $oCmd->run();
+
+ if (!$this->sIgnoreErrors && !$this->oDB->getRow('select * from place limit 1')) {
+ fail('No Data');
+ }
+
+ if ($this->bDrop) {
+ $this->dropTable('planet_osm_nodes');
+ $this->removeFlatnodeFile();
+ }
+ }
+
+ public function createFunctions()
+ {
+ info('Create Functions');
+
+ // Try accessing the C module, so we know early if something is wrong
+ checkModulePresence(); // raises exception on failure
+
+ $this->createSqlFunctions();
+ }
+
+ public function createTables($bReverseOnly = false)
+ {
+ info('Create Tables');
+
+ $sTemplate = file_get_contents(CONST_BasePath.'/sql/tables.sql');
+ $sTemplate = $this->replaceSqlPatterns($sTemplate);
+
+ $this->pgsqlRunScript($sTemplate, false);
+
+ if ($bReverseOnly) {
+ $this->dropTable('search_name');
+ }
+
+ $oAlParser = new AddressLevelParser(CONST_Address_Level_Config);
+ $oAlParser->createTable($this->oDB, 'address_levels');
+ }
+
+ public function createTableTriggers()
+ {
+ info('Create Tables');
+
+ $sTemplate = file_get_contents(CONST_BasePath.'/sql/table-triggers.sql');
+ $sTemplate = $this->replaceSqlPatterns($sTemplate);
+
+ $this->pgsqlRunScript($sTemplate, false);
+ }
+
+ public function createPartitionTables()
+ {
+ info('Create Partition Tables');
+
+ $sTemplate = file_get_contents(CONST_BasePath.'/sql/partition-tables.src.sql');
+ $sTemplate = $this->replaceSqlPatterns($sTemplate);
+
+ $this->pgsqlRunPartitionScript($sTemplate);
+ }
+
+ public function createPartitionFunctions()
+ {
+ info('Create Partition Functions');
+
+ $sTemplate = file_get_contents(CONST_BasePath.'/sql/partition-functions.src.sql');
+ $this->pgsqlRunPartitionScript($sTemplate);
+ }
+
+ public function importWikipediaArticles()
+ {
+ $sWikiArticlesFile = CONST_Wikipedia_Data_Path.'/wikimedia-importance.sql.gz';
+ if (file_exists($sWikiArticlesFile)) {
+ info('Importing wikipedia articles and redirects');
+ $this->dropTable('wikipedia_article');
+ $this->dropTable('wikipedia_redirect');
+ $this->pgsqlRunScriptFile($sWikiArticlesFile);
+ } else {
+ warn('wikipedia importance dump file not found - places will have default importance');
+ }
+ }
+
+ public function loadData($bDisableTokenPrecalc)
+ {
+ info('Drop old Data');
+
+ $this->oDB->exec('TRUNCATE word');
+ echo '.';
+ $this->oDB->exec('TRUNCATE placex');
+ echo '.';
+ $this->oDB->exec('TRUNCATE location_property_osmline');
+ echo '.';
+ $this->oDB->exec('TRUNCATE place_addressline');
+ echo '.';
+ $this->oDB->exec('TRUNCATE location_area');
+ echo '.';
+ if (!$this->dbReverseOnly()) {
+ $this->oDB->exec('TRUNCATE search_name');
+ echo '.';
+ }
+ $this->oDB->exec('TRUNCATE search_name_blank');
+ echo '.';
+ $this->oDB->exec('DROP SEQUENCE seq_place');
+ echo '.';
+ $this->oDB->exec('CREATE SEQUENCE seq_place start 100000');
+ echo '.';
+
+ $sSQL = 'select distinct partition from country_name';
+ $aPartitions = $this->oDB->getCol($sSQL);
+
+ if (!$this->bNoPartitions) $aPartitions[] = 0;
+ foreach ($aPartitions as $sPartition) {
+ $this->oDB->exec('TRUNCATE location_road_'.$sPartition);
+ echo '.';
+ }
+
+ // used by getorcreate_word_id to ignore frequent partial words
+ $sSQL = 'CREATE OR REPLACE FUNCTION get_maxwordfreq() RETURNS integer AS ';
+ $sSQL .= '$$ SELECT '.CONST_Max_Word_Frequency.' as maxwordfreq; $$ LANGUAGE SQL IMMUTABLE';
+ $this->oDB->exec($sSQL);
+ echo ".\n";
+
+ // pre-create the word list
+ if (!$bDisableTokenPrecalc) {
+ info('Loading word list');
+ $this->pgsqlRunScriptFile(CONST_BasePath.'/data/words.sql');
+ }
+
+ info('Load Data');
+ $sColumns = 'osm_type, osm_id, class, type, name, admin_level, address, extratags, geometry';
+
+ $aDBInstances = array();
+ $iLoadThreads = max(1, $this->iInstances - 1);
+ for ($i = 0; $i < $iLoadThreads; $i++) {
+ // https://secure.php.net/manual/en/function.pg-connect.php
+ $DSN = CONST_Database_DSN;
+ $DSN = preg_replace('/^pgsql:/', '', $DSN);
+ $DSN = preg_replace('/;/', ' ', $DSN);
+ $aDBInstances[$i] = pg_connect($DSN, PGSQL_CONNECT_FORCE_NEW);
+ pg_ping($aDBInstances[$i]);
+ }
+
+ for ($i = 0; $i < $iLoadThreads; $i++) {
+ $sSQL = "INSERT INTO placex ($sColumns) SELECT $sColumns FROM place WHERE osm_id % $iLoadThreads = $i";
+ $sSQL .= " and not (class='place' and type='houses' and osm_type='W'";
+ $sSQL .= " and ST_GeometryType(geometry) = 'ST_LineString')";
+ $sSQL .= ' and ST_IsValid(geometry)';
+ if ($this->bVerbose) echo "$sSQL\n";
+ if (!pg_send_query($aDBInstances[$i], $sSQL)) {
+ fail(pg_last_error($aDBInstances[$i]));
+ }
+ }
+
+ // last thread for interpolation lines
+ // https://secure.php.net/manual/en/function.pg-connect.php
+ $DSN = CONST_Database_DSN;
+ $DSN = preg_replace('/^pgsql:/', '', $DSN);
+ $DSN = preg_replace('/;/', ' ', $DSN);
+ $aDBInstances[$iLoadThreads] = pg_connect($DSN, PGSQL_CONNECT_FORCE_NEW);
+ pg_ping($aDBInstances[$iLoadThreads]);
+ $sSQL = 'insert into location_property_osmline';
+ $sSQL .= ' (osm_id, address, linegeo)';
+ $sSQL .= ' SELECT osm_id, address, geometry from place where ';
+ $sSQL .= "class='place' and type='houses' and osm_type='W' and ST_GeometryType(geometry) = 'ST_LineString'";
+ if ($this->bVerbose) echo "$sSQL\n";
+ if (!pg_send_query($aDBInstances[$iLoadThreads], $sSQL)) {
+ fail(pg_last_error($aDBInstances[$iLoadThreads]));
+ }
+
+ $bFailed = false;
+ for ($i = 0; $i <= $iLoadThreads; $i++) {
+ while (($hPGresult = pg_get_result($aDBInstances[$i])) !== false) {
+ $resultStatus = pg_result_status($hPGresult);
+ // PGSQL_EMPTY_QUERY, PGSQL_COMMAND_OK, PGSQL_TUPLES_OK,
+ // PGSQL_COPY_OUT, PGSQL_COPY_IN, PGSQL_BAD_RESPONSE,
+ // PGSQL_NONFATAL_ERROR and PGSQL_FATAL_ERROR
+ // echo 'Query result ' . $i . ' is: ' . $resultStatus . "\n";
+ if ($resultStatus != PGSQL_COMMAND_OK && $resultStatus != PGSQL_TUPLES_OK) {
+ $resultError = pg_result_error($hPGresult);
+ echo '-- error text ' . $i . ': ' . $resultError . "\n";
+ $bFailed = true;
+ }
+ }
+ }
+ if ($bFailed) {
+ fail('SQL errors loading placex and/or location_property_osmline tables');
+ }
+
+ for ($i = 0; $i < $this->iInstances; $i++) {
+ pg_close($aDBInstances[$i]);
+ }
+
+ echo "\n";
+ info('Reanalysing database');
+ $this->pgsqlRunScript('ANALYSE');
+
+ $sDatabaseDate = getDatabaseDate($this->oDB);
+ $this->oDB->exec('TRUNCATE import_status');
+ if (!$sDatabaseDate) {
+ warn('could not determine database date.');
+ } else {
+ $sSQL = "INSERT INTO import_status (lastimportdate) VALUES('".$sDatabaseDate."')";
+ $this->oDB->exec($sSQL);
+ echo "Latest data imported from $sDatabaseDate.\n";
+ }
+ }
+
+ public function importTigerData()
+ {
+ info('Import Tiger data');
+
+ $aFilenames = glob(CONST_Tiger_Data_Path.'/*.sql');
+ info('Found '.count($aFilenames).' SQL files in path '.CONST_Tiger_Data_Path);
+ if (empty($aFilenames)) {
+ warn('Tiger data import selected but no files found in path '.CONST_Tiger_Data_Path);
+ return;
+ }
+ $sTemplate = file_get_contents(CONST_BasePath.'/sql/tiger_import_start.sql');
+ $sTemplate = $this->replaceSqlPatterns($sTemplate);
+
+ $this->pgsqlRunScript($sTemplate, false);
+
+ $aDBInstances = array();
+ for ($i = 0; $i < $this->iInstances; $i++) {
+ // https://secure.php.net/manual/en/function.pg-connect.php
+ $DSN = CONST_Database_DSN;
+ $DSN = preg_replace('/^pgsql:/', '', $DSN);
+ $DSN = preg_replace('/;/', ' ', $DSN);
+ $aDBInstances[$i] = pg_connect($DSN, PGSQL_CONNECT_FORCE_NEW | PGSQL_CONNECT_ASYNC);
+ pg_ping($aDBInstances[$i]);
+ }
+
+ foreach ($aFilenames as $sFile) {
+ echo $sFile.': ';
+ $hFile = fopen($sFile, 'r');
+ $sSQL = fgets($hFile, 100000);
+ $iLines = 0;
+ while (true) {
+ for ($i = 0; $i < $this->iInstances; $i++) {
+ if (!pg_connection_busy($aDBInstances[$i])) {
+ while (pg_get_result($aDBInstances[$i]));
+ $sSQL = fgets($hFile, 100000);
+ if (!$sSQL) break 2;
+ if (!pg_send_query($aDBInstances[$i], $sSQL)) fail(pg_last_error($aDBInstances[$i]));
+ $iLines++;
+ if ($iLines == 1000) {
+ echo '.';
+ $iLines = 0;
+ }
+ }
+ }
+ usleep(10);
+ }
+ fclose($hFile);
+
+ $bAnyBusy = true;
+ while ($bAnyBusy) {
+ $bAnyBusy = false;
+ for ($i = 0; $i < $this->iInstances; $i++) {
+ if (pg_connection_busy($aDBInstances[$i])) $bAnyBusy = true;
+ }
+ usleep(10);
+ }
+ echo "\n";
+ }
+
+ for ($i = 0; $i < $this->iInstances; $i++) {
+ pg_close($aDBInstances[$i]);
+ }
+
+ info('Creating indexes on Tiger data');
+ $sTemplate = file_get_contents(CONST_BasePath.'/sql/tiger_import_finish.sql');
+ $sTemplate = $this->replaceSqlPatterns($sTemplate);
+
+ $this->pgsqlRunScript($sTemplate, false);
+ }
+
+ public function calculatePostcodes($bCMDResultAll)
+ {
+ info('Calculate Postcodes');
+ $this->oDB->exec('TRUNCATE location_postcode');
+
+ $sSQL = 'INSERT INTO location_postcode';
+ $sSQL .= ' (place_id, indexed_status, country_code, postcode, geometry) ';
+ $sSQL .= "SELECT nextval('seq_place'), 1, country_code,";
+ $sSQL .= " upper(trim (both ' ' from address->'postcode')) as pc,";
+ $sSQL .= ' ST_Centroid(ST_Collect(ST_Centroid(geometry)))';
+ $sSQL .= ' FROM placex';
+ $sSQL .= " WHERE address ? 'postcode' AND address->'postcode' NOT SIMILAR TO '%(,|;)%'";
+ $sSQL .= ' AND geometry IS NOT null';
+ $sSQL .= ' GROUP BY country_code, pc';
+ $this->oDB->exec($sSQL);
+
+ // only add postcodes that are not yet available in OSM
+ $sSQL = 'INSERT INTO location_postcode';
+ $sSQL .= ' (place_id, indexed_status, country_code, postcode, geometry) ';
+ $sSQL .= "SELECT nextval('seq_place'), 1, 'us', postcode,";
+ $sSQL .= ' ST_SetSRID(ST_Point(x,y),4326)';
+ $sSQL .= ' FROM us_postcode WHERE postcode NOT IN';
+ $sSQL .= ' (SELECT postcode FROM location_postcode';
+ $sSQL .= " WHERE country_code = 'us')";
+ $this->oDB->exec($sSQL);
+
+ // add missing postcodes for GB (if available)
+ $sSQL = 'INSERT INTO location_postcode';
+ $sSQL .= ' (place_id, indexed_status, country_code, postcode, geometry) ';
+ $sSQL .= "SELECT nextval('seq_place'), 1, 'gb', postcode, geometry";
+ $sSQL .= ' FROM gb_postcode WHERE postcode NOT IN';
+ $sSQL .= ' (SELECT postcode FROM location_postcode';
+ $sSQL .= " WHERE country_code = 'gb')";
+ $this->oDB->exec($sSQL);
+
+ if (!$bCMDResultAll) {
+ $sSQL = "DELETE FROM word WHERE class='place' and type='postcode'";
+ $sSQL .= 'and word NOT IN (SELECT postcode FROM location_postcode)';
+ $this->oDB->exec($sSQL);
+ }
+
+ $sSQL = 'SELECT count(getorcreate_postcode_id(v)) FROM ';
+ $sSQL .= '(SELECT distinct(postcode) as v FROM location_postcode) p';
+ $this->oDB->exec($sSQL);
+ }
+
+ public function index($bIndexNoanalyse)
+ {
+ $oBaseCmd = (new \Nominatim\Shell(CONST_BasePath.'/nominatim/nominatim.py'))
+ ->addParams('--database', $this->aDSNInfo['database'])
+ ->addParams('--port', $this->aDSNInfo['port'])
+ ->addParams('--threads', $this->iInstances);
+
+ if (!$this->bQuiet) {
+ $oBaseCmd->addParams('-v');
+ }
+ if ($this->bVerbose) {
+ $oBaseCmd->addParams('-v');
+ }
+ if (isset($this->aDSNInfo['hostspec'])) {
+ $oBaseCmd->addParams('--host', $this->aDSNInfo['hostspec']);
+ }
+ if (isset($this->aDSNInfo['username'])) {
+ $oBaseCmd->addParams('--user', $this->aDSNInfo['username']);
+ }
+ if (isset($this->aDSNInfo['password'])) {
+ $oBaseCmd->addEnvPair('PGPASSWORD', $this->aDSNInfo['password']);
+ }
+
+ info('Index ranks 0 - 4');
+ $oCmd = (clone $oBaseCmd)->addParams('--maxrank', 4);
+ echo $oCmd->escapedCmd();
+
+ $iStatus = $oCmd->run();
+ if ($iStatus != 0) {
+ fail('error status ' . $iStatus . ' running nominatim!');
+ }
+ if (!$bIndexNoanalyse) $this->pgsqlRunScript('ANALYSE');
+
+ info('Index ranks 5 - 25');
+ $oCmd = (clone $oBaseCmd)->addParams('--minrank', 5, '--maxrank', 25);
+ $iStatus = $oCmd->run();
+ if ($iStatus != 0) {
+ fail('error status ' . $iStatus . ' running nominatim!');
+ }
+ if (!$bIndexNoanalyse) $this->pgsqlRunScript('ANALYSE');
+
+ info('Index ranks 26 - 30');
+ $oCmd = (clone $oBaseCmd)->addParams('--minrank', 26);
+ $iStatus = $oCmd->run();
+ if ($iStatus != 0) {
+ fail('error status ' . $iStatus . ' running nominatim!');
+ }
+
+ info('Index postcodes');
+ $sSQL = 'UPDATE location_postcode SET indexed_status = 0';
+ $this->oDB->exec($sSQL);
+ }
+
+ public function createSearchIndices()
+ {
+ info('Create Search indices');
+
+ $sSQL = 'SELECT relname FROM pg_class, pg_index ';
+ $sSQL .= 'WHERE pg_index.indisvalid = false AND pg_index.indexrelid = pg_class.oid';
+ $aInvalidIndices = $this->oDB->getCol($sSQL);
+
+ foreach ($aInvalidIndices as $sIndexName) {
+ info("Cleaning up invalid index $sIndexName");
+ $this->oDB->exec("DROP INDEX $sIndexName;");
+ }
+
+ $sTemplate = file_get_contents(CONST_BasePath.'/sql/indices.src.sql');
+ if (!$this->bDrop) {
+ $sTemplate .= file_get_contents(CONST_BasePath.'/sql/indices_updates.src.sql');
+ }
+ if (!$this->dbReverseOnly()) {
+ $sTemplate .= file_get_contents(CONST_BasePath.'/sql/indices_search.src.sql');
+ }
+ $sTemplate = $this->replaceSqlPatterns($sTemplate);
+
+ $this->pgsqlRunScript($sTemplate);
+ }
+
+ public function createCountryNames()
+ {
+ info('Create search index for default country names');
+
+ $this->pgsqlRunScript("select getorcreate_country(make_standard_name('uk'), 'gb')");
+ $this->pgsqlRunScript("select getorcreate_country(make_standard_name('united states'), 'us')");
+ $this->pgsqlRunScript('select count(*) from (select getorcreate_country(make_standard_name(country_code), country_code) from country_name where country_code is not null) as x');
+ $this->pgsqlRunScript("select count(*) from (select getorcreate_country(make_standard_name(name->'name'), country_code) from country_name where name ? 'name') as x");
+ $sSQL = 'select count(*) from (select getorcreate_country(make_standard_name(v),'
+ .'country_code) from (select country_code, skeys(name) as k, svals(name) as v from country_name) x where k ';
+ if (CONST_Languages) {
+ $sSQL .= 'in ';
+ $sDelim = '(';
+ foreach (explode(',', CONST_Languages) as $sLang) {
+ $sSQL .= $sDelim."'name:$sLang'";
+ $sDelim = ',';
+ }
+ $sSQL .= ')';
+ } else {
+ // all include all simple name tags
+ $sSQL .= "like 'name:%'";
+ }
+ $sSQL .= ') v';
+ $this->pgsqlRunScript($sSQL);
+ }
+
+ public function drop()
+ {
+ info('Drop tables only required for updates');
+
+ // The implementation is potentially a bit dangerous because it uses
+ // a positive selection of tables to keep, and deletes everything else.
+ // Including any tables that the unsuspecting user might have manually
+ // created. USE AT YOUR OWN PERIL.
+ // tables we want to keep. everything else goes.
+ $aKeepTables = array(
+ '*columns',
+ 'import_polygon_*',
+ 'import_status',
+ 'place_addressline',
+ 'location_postcode',
+ 'location_property*',
+ 'placex',
+ 'search_name',
+ 'seq_*',
+ 'word',
+ 'query_log',
+ 'new_query_log',
+ 'spatial_ref_sys',
+ 'country_name',
+ 'place_classtype_*',
+ 'country_osm_grid'
+ );
+
+ $aDropTables = array();
+ $aHaveTables = $this->oDB->getListOfTables();
+
+ foreach ($aHaveTables as $sTable) {
+ $bFound = false;
+ foreach ($aKeepTables as $sKeep) {
+ if (fnmatch($sKeep, $sTable)) {
+ $bFound = true;
+ break;
+ }
+ }
+ if (!$bFound) array_push($aDropTables, $sTable);
+ }
+ foreach ($aDropTables as $sDrop) {
+ $this->dropTable($sDrop);
+ }
+
+ $this->removeFlatnodeFile();
+ }
+
+ private function removeFlatnodeFile()
+ {
+ if (!is_null(CONST_Osm2pgsql_Flatnode_File) && CONST_Osm2pgsql_Flatnode_File) {
+ if (file_exists(CONST_Osm2pgsql_Flatnode_File)) {
+ if ($this->bVerbose) echo 'Deleting '.CONST_Osm2pgsql_Flatnode_File."\n";
+ unlink(CONST_Osm2pgsql_Flatnode_File);
+ }
+ }
+ }
+
+ private function pgsqlRunScript($sScript, $bfatal = true)
+ {
+ runSQLScript(
+ $sScript,
+ $bfatal,
+ $this->bVerbose,
+ $this->sIgnoreErrors
+ );
+ }
+
+ private function createSqlFunctions()
+ {
+ $sBasePath = CONST_BasePath.'/sql/functions/';
+ $sTemplate = file_get_contents($sBasePath.'utils.sql');
+ $sTemplate .= file_get_contents($sBasePath.'normalization.sql');
+ $sTemplate .= file_get_contents($sBasePath.'ranking.sql');
+ $sTemplate .= file_get_contents($sBasePath.'importance.sql');
+ $sTemplate .= file_get_contents($sBasePath.'address_lookup.sql');
+ $sTemplate .= file_get_contents($sBasePath.'interpolation.sql');
+ if ($this->oDB->tableExists('place')) {
+ $sTemplate .= file_get_contents($sBasePath.'place_triggers.sql');
+ }
+ if ($this->oDB->tableExists('placex')) {
+ $sTemplate .= file_get_contents($sBasePath.'placex_triggers.sql');
+ }
+ if ($this->oDB->tableExists('location_postcode')) {
+ $sTemplate .= file_get_contents($sBasePath.'postcode_triggers.sql');
+ }
+ $sTemplate = str_replace('{modulepath}', $this->sModulePath, $sTemplate);
+ if ($this->bEnableDiffUpdates) {
+ $sTemplate = str_replace('RETURN NEW; -- %DIFFUPDATES%', '--', $sTemplate);
+ }
+ if ($this->bEnableDebugStatements) {
+ $sTemplate = str_replace('--DEBUG:', '', $sTemplate);
+ }
+ if (CONST_Limit_Reindexing) {
+ $sTemplate = str_replace('--LIMIT INDEXING:', '', $sTemplate);
+ }
+ if (!CONST_Use_US_Tiger_Data) {
+ $sTemplate = str_replace('-- %NOTIGERDATA% ', '', $sTemplate);
+ }
+ if (!CONST_Use_Aux_Location_data) {
+ $sTemplate = str_replace('-- %NOAUXDATA% ', '', $sTemplate);
+ }
+
+ $sReverseOnly = $this->dbReverseOnly() ? 'true' : 'false';
+ $sTemplate = str_replace('%REVERSE-ONLY%', $sReverseOnly, $sTemplate);
+
+ $this->pgsqlRunScript($sTemplate);
+ }
+
+ private function pgsqlRunPartitionScript($sTemplate)
+ {
+ $sSQL = 'select distinct partition from country_name';
+ $aPartitions = $this->oDB->getCol($sSQL);
+ if (!$this->bNoPartitions) $aPartitions[] = 0;
+
+ preg_match_all('#^-- start(.*?)^-- end#ms', $sTemplate, $aMatches, PREG_SET_ORDER);
+ foreach ($aMatches as $aMatch) {
+ $sResult = '';
+ foreach ($aPartitions as $sPartitionName) {
+ $sResult .= str_replace('-partition-', $sPartitionName, $aMatch[1]);
+ }
+ $sTemplate = str_replace($aMatch[0], $sResult, $sTemplate);
+ }
+
+ $this->pgsqlRunScript($sTemplate);
+ }
+
+ private function pgsqlRunScriptFile($sFilename)
+ {
+ if (!file_exists($sFilename)) fail('unable to find '.$sFilename);
+
+ $oCmd = (new \Nominatim\Shell('psql'))
+ ->addParams('--port', $this->aDSNInfo['port'])
+ ->addParams('--dbname', $this->aDSNInfo['database']);
+
+ if (!$this->bVerbose) {
+ $oCmd->addParams('--quiet');
+ }
+ if (isset($this->aDSNInfo['hostspec'])) {
+ $oCmd->addParams('--host', $this->aDSNInfo['hostspec']);
+ }
+ if (isset($this->aDSNInfo['username'])) {
+ $oCmd->addParams('--username', $this->aDSNInfo['username']);
+ }
+ if (isset($this->aDSNInfo['password'])) {
+ $oCmd->addEnvPair('PGPASSWORD', $this->aDSNInfo['password']);
+ }
+ $ahGzipPipes = null;
+ if (preg_match('/\\.gz$/', $sFilename)) {
+ $aDescriptors = array(
+ 0 => array('pipe', 'r'),
+ 1 => array('pipe', 'w'),
+ 2 => array('file', '/dev/null', 'a')
+ );
+ $oZcatCmd = new \Nominatim\Shell('zcat', $sFilename);
+
+ $hGzipProcess = proc_open($oZcatCmd->escapedCmd(), $aDescriptors, $ahGzipPipes);
+ if (!is_resource($hGzipProcess)) fail('unable to start zcat');
+ $aReadPipe = $ahGzipPipes[1];
+ fclose($ahGzipPipes[0]);
+ } else {
+ $oCmd->addParams('--file', $sFilename);
+ $aReadPipe = array('pipe', 'r');
+ }
+ $aDescriptors = array(
+ 0 => $aReadPipe,
+ 1 => array('pipe', 'w'),
+ 2 => array('file', '/dev/null', 'a')
+ );
+ $ahPipes = null;
+
+ $hProcess = proc_open($oCmd->escapedCmd(), $aDescriptors, $ahPipes, null, $oCmd->aEnv);
+ if (!is_resource($hProcess)) fail('unable to start pgsql');
+ // TODO: error checking
+ while (!feof($ahPipes[1])) {
+ echo fread($ahPipes[1], 4096);
+ }
+ fclose($ahPipes[1]);
+ $iReturn = proc_close($hProcess);
+ if ($iReturn > 0) {
+ fail("pgsql returned with error code ($iReturn)");
+ }
+ if ($ahGzipPipes) {
+ fclose($ahGzipPipes[1]);
+ proc_close($hGzipProcess);
+ }
+ }
+
+ private function replaceSqlPatterns($sSql)
+ {
+ $sSql = str_replace('{www-user}', CONST_Database_Web_User, $sSql);
+
+ $aPatterns = array(
+ '{ts:address-data}' => CONST_Tablespace_Address_Data,
+ '{ts:address-index}' => CONST_Tablespace_Address_Index,
+ '{ts:search-data}' => CONST_Tablespace_Search_Data,
+ '{ts:search-index}' => CONST_Tablespace_Search_Index,
+ '{ts:aux-data}' => CONST_Tablespace_Aux_Data,
+ '{ts:aux-index}' => CONST_Tablespace_Aux_Index,
+ );
+
+ foreach ($aPatterns as $sPattern => $sTablespace) {
+ if ($sTablespace) {
+ $sSql = str_replace($sPattern, 'TABLESPACE "'.$sTablespace.'"', $sSql);
+ } else {
+ $sSql = str_replace($sPattern, '', $sSql);
+ }
+ }
+
+ return $sSql;
+ }
+
+ /**
+ * Drop table with the given name if it exists.
+ *
+ * @param string $sName Name of table to remove.
+ *
+ * @return null
+ *
+ * @pre connect() must have been called.
+ */
+ private function dropTable($sName)
+ {
+ if ($this->bVerbose) echo "Dropping table $sName\n";
+ $this->oDB->deleteTable($sName);
+ }
+
+ /**
+ * Check if the database is in reverse-only mode.
+ *
+ * @return True if there is no search_name table and infrastructure.
+ */
+ private function dbReverseOnly()
+ {
+ return !($this->oDB->tableExists('search_name'));
+ }
+}
--- /dev/null
+<?php
+
+function checkInFile($sOSMFile)
+{
+ if (!isset($sOSMFile)) {
+ fail('missing --osm-file for data import');
+ }
+
+ if (!file_exists($sOSMFile)) {
+ fail('the path supplied to --osm-file does not exist');
+ }
+
+ if (!is_readable($sOSMFile)) {
+ fail('osm-file "' . $aCMDResult['osm-file'] . '" not readable');
+ }
+}
+
+function checkModulePresence()
+{
+ // Try accessing the C module, so we know early if something is wrong.
+ // Raises Nominatim\DatabaseError on failure
+
+ $sModulePath = CONST_Database_Module_Path;
+ $sSQL = "CREATE FUNCTION nominatim_test_import_func(text) RETURNS text AS '";
+ $sSQL .= $sModulePath . "/nominatim.so', 'transliteration' LANGUAGE c IMMUTABLE STRICT";
+ $sSQL .= ';DROP FUNCTION nominatim_test_import_func(text);';
+
+ $oDB = new \Nominatim\DB();
+ $oDB->connect();
+ $oDB->exec($sSQL, null, 'Database server failed to load '.$sModulePath.'/nominatim.so module');
+}
$aFilteredPlaces['properties']['geocoding']['label'] = $aPlace['langaddress'];
- $aFilteredPlaces['properties']['geocoding']['name'] = $aPlace['placename'];
+ if ($aPlace['placename'] !== null) {
+ $aFilteredPlaces['properties']['geocoding']['name'] = $aPlace['placename'];
+ }
if (isset($aPlace['address'])) {
- $aFieldMappings = array(
- 'house_number' => 'housenumber',
- 'road' => 'street',
- 'locality' => 'locality',
- 'postcode' => 'postcode',
- 'city' => 'city',
- 'district' => 'district',
- 'county' => 'county',
- 'state' => 'state',
- 'country' => 'country'
- );
-
- $aAddressNames = $aPlace['address']->getAddressNames();
- foreach ($aFieldMappings as $sFrom => $sTo) {
- if (isset($aAddressNames[$sFrom])) {
- $aFilteredPlaces['properties']['geocoding'][$sTo] = $aAddressNames[$sFrom];
- }
- }
+ $aPlace['address']->addGeocodeJsonAddressParts(
+ $aFilteredPlaces['properties']['geocoding']
+ );
$aFilteredPlaces['properties']['geocoding']['admin']
= $aPlace['address']->getAdminLevels();
<body id="reverse-page">
<?php include(CONST_BasePath.'/lib/template/includes/html-top-navigation.php'); ?>
-
+ <div class="top-bar">
<form class="form-inline" role="search" accept-charset="UTF-8" action="<?php echo CONST_Website_BaseURL; ?>reverse.php">
<div class="form-group">
<input name="format" type="hidden" value="html">
<a href="<?php echo CONST_Website_BaseURL; ?>search.php">forward search</a>
</div>
</form>
-
+</div>
<div id="content">
else
echo ' <span class="type">('.ucwords(str_replace('_',' ',$aResult['type'])).')</span>';
echo '<p>'.$aResult['lat'].','.$aResult['lon'].'</p>';
- echo ' <a class="btn btn-default btn-xs details" href="details.php?place_id='.$aResult['place_id'].'">details</a>';
+ echo detailsPermaLink($aResult, 'details', 'class="btn btn-default btn-xs details"');
echo '</div>';
?>
</div>
--- /dev/null
+<?php
+ header("content-type: text/html; charset=UTF-8");
+ include(CONST_BasePath.'/lib/template/includes/html-header.php');
+?>
+ <title>Nominatim Deleted Data</title>
+ <meta name="description" content="List of OSM data that has been deleted" lang="en-US" />
+</head>
+
+<body>
+<div class="container">
+ <h1>Deletable</h1>
+ <p>
+ <?php echo sizeof($aPolygons) ?> objects have been deleted in OSM but are still in the Nominatim database.
+ Also available in <a href="<?php echo CONST_Website_BaseURL; ?>deletable.php?format=json">JSON format</a>.
+ </p>
+
+ <table class="table table-striped table-hover">
+<?php
+
+if (!empty($aPolygons)) {
+ echo '<tr>';
+ foreach (array_keys($aPolygons[0]) as $sCol) {
+ echo '<th>'.$sCol.'</th>';
+ }
+ echo '</tr>';
+ foreach ($aPolygons as $aRow) {
+ echo '<tr>';
+ foreach ($aRow as $sCol => $sVal) {
+ switch ($sCol) {
+ case 'osm_id':
+ echo '<td>'.osmLink($aRow).'</td>';
+ break;
+ case 'place_id':
+ echo '<td>'.detailsLink($aRow).'</td>';
+ break;
+ default:
+ echo '<td>'.($sVal?$sVal:' ').'</td>';
+ break;
+ }
+ }
+ echo '</tr>';
+ }
+}
+?>
+ </table>
+</div>
+</body>
+</html>
}
- function format_distance($fDistance)
+ function format_distance($fDistance, $bInMeters = false)
{
- // $fDistance is in meters
- if ($fDistance < 1)
- {
- return '0';
- }
- elseif ($fDistance < 1000)
- {
- return'<abbr class="distance" title="'.$fDistance.'">~'.(round($fDistance,0)).' m</abbr>';
- }
- else
- {
- return'<abbr class="distance" title="'.$fDistance.'">~'.(round($fDistance/1000,1)).' km</abbr>';
+ if ($bInMeters) {
+ // $fDistance is in meters
+ if ($fDistance < 1) {
+ return '0';
+ }
+ elseif ($fDistance < 1000) {
+ return '<abbr class="distance" title="'.$fDistance.' meters">~'.(round($fDistance,0)).' m</abbr>';
+ }
+ else {
+ return '<abbr class="distance" title="'.$fDistance.' meters">~'.(round($fDistance/1000,1)).' km</abbr>';
+ }
+ } else {
+ if ($fDistance == 0) {
+ return '0';
+ } else {
+ return '<abbr class="distance" title="spheric distance '.$fDistance.'">'.(round($fDistance,4)).'</abbr>';
+ }
}
}
}
- function _one_row($aAddressLine){
- $bNotUsed = (isset($aAddressLine['isaddress']) && $aAddressLine['isaddress'] == 'f');
+ function _one_row($aAddressLine, $bDistanceInMeters = false){
+ $bNotUsed = isset($aAddressLine['isaddress']) && !$aAddressLine['isaddress'];
echo '<tr class="' . ($bNotUsed?'notused':'') . '">'."\n";
- echo ' <td class="name">'.(trim($aAddressLine['localname'])?$aAddressLine['localname']:'<span class="noname">No Name</span>')."</td>\n";
- echo ' <td>' . $aAddressLine['class'].':'.$aAddressLine['type'] . "</td>\n";
+ echo ' <td class="name">'.(trim($aAddressLine['localname'])!==null?$aAddressLine['localname']:'<span class="noname">No Name</span>')."</td>\n";
+ echo ' <td>' . $aAddressLine['class'].':'.$aAddressLine['type'];
+ if ($aAddressLine['type'] == 'administrative'
+ && isset($aAddressLine['place_type']))
+ {
+ echo '('.$aAddressLine['place_type'].')';
+ }
+ echo "</td>\n";
echo ' <td>' . osmLink($aAddressLine) . "</td>\n";
echo ' <td>' . (isset($aAddressLine['rank_address']) ? $aAddressLine['rank_address'] : '') . "</td>\n";
echo ' <td>' . ($aAddressLine['admin_level'] < 15 ? $aAddressLine['admin_level'] : '') . "</td>\n";
- echo ' <td>' . format_distance($aAddressLine['distance'])."</td>\n";
- echo ' <td>' . detailsLink($aAddressLine,'details >') . "</td>\n";
+ echo ' <td>' . format_distance($aAddressLine['distance'], $bDistanceInMeters)."</td>\n";
+ echo ' <td>' . detailsPermaLink($aAddressLine,'details >') . "</td>\n";
echo "</tr>\n";
}
<div class="col-sm-10">
<h1>
<?php echo $aPointDetails['localname'] ?>
- <small><?php echo detailsPermaLink($aPointDetails, 'link to this page') ?></small>
</h1>
</div>
<div class="col-sm-2 text-right">
if ($aPointDetails['calculated_importance']) {
kv('Importance' , $aPointDetails['calculated_importance'].($aPointDetails['importance']?'':' (estimated)') );
}
- kv('Coverage' , ($aPointDetails['isarea']=='t'?'Polygon':'Point') );
+ kv('Coverage' , ($aPointDetails['isarea']?'Polygon':'Point') );
kv('Centre Point' , $aPointDetails['lat'].','.$aPointDetails['lon'] );
kv('OSM' , osmLink($aPointDetails) );
+ kv('Place Id (<a href="https://nominatim.org/release-docs/develop/api/Output/#place_id-is-not-a-persistent-id">on this server</a>)'
+ , $aPointDetails['place_id'] );
if ($aPointDetails['wikipedia'])
{
kv('Wikipedia Calculated' , wikipediaLink($aPointDetails) );
{
headline('Linked Places');
foreach ($aLinkedLines as $aAddressLine) {
- _one_row($aAddressLine);
+ _one_row($aAddressLine, true);
}
}
headline3($sGroupHeading);
foreach ($aHierarchyLines as $aAddressLine) {
- _one_row($aAddressLine);
+ _one_row($aAddressLine, true);
}
}
if (count($aHierarchyLines) >= 500) {
--- /dev/null
+<?php
+ header("content-type: text/html; charset=UTF-8");
+?>
+<?php include(CONST_BasePath.'/lib/template/includes/html-header.php'); ?>
+ <link href="css/common.css" rel="stylesheet" type="text/css" />
+ <link href="css/details.css" rel="stylesheet" type="text/css" />
+</head>
+
+
+<body id="details-index-page">
+ <div class="container">
+ <div class="row">
+ <div class="col-md-12">
+
+ <h1>Show details for place</h1>
+
+ <div class="search-form">
+ <h4>Search by place id</h4>
+
+ <form class="form-inline" action="details.php">
+ <input type="edit" class="form-control input-sm" pattern="^[0-9]+$" name="place_id" placeholder="12345" />
+ <input type="submit" class="btn btn-primary btn-sm" value="Show" />
+ </form>
+ </div>
+
+ <div class="search-form">
+ <h4>Search by OSM type and OSM id</h4>
+
+ <form id="form-by-type-and-id" class="form-inline" action="details.php">
+ <input type="edit" class="form-control input-sm" pattern="^[NWR][0-9]+$" placeholder="N123 or W123 or R123" />
+ <input type="hidden" name="osmtype" />
+ <input type="hidden" name="osmid" />
+ <input type="submit" class="btn btn-primary btn-sm" value="Show" />
+ </form>
+ </div>
+
+ <div class="search-form">
+ <h4>Search by openstreetmap.org URL</h4>
+
+ <form id="form-by-osm-url" class="form-inline" action="details.php">
+ <input type="edit" class="form-control input-sm" pattern=".*openstreetmap.*" placeholder="https://www.openstreetmap.org/relation/123" />
+ <input type="hidden" name="osmtype" />
+ <input type="hidden" name="osmid" />
+ <input type="submit" class="btn btn-primary btn-sm" value="Show" />
+ </form>
+ </div>
+
+ </div>
+ </div>
+ </div>
+
+
+ <?php include(CONST_BasePath.'/lib/template/includes/html-footer.php'); ?>
+</body>
+</html>
$aPlaceDetails['rank_address'] = (int) $aPointDetails['rank_address'];
$aPlaceDetails['rank_search'] = (int) $aPointDetails['rank_search'];
-$aPlaceDetails['isarea'] = ($aPointDetails['isarea'] == 't');
+$aPlaceDetails['isarea'] = $aPointDetails['isarea'];
$aPlaceDetails['centroid'] = array(
'type' => 'Point',
'coordinates' => array( (float) $aPointDetails['lon'], (float) $aPointDetails['lat'] )
'place_id' => isset($aFull['place_id']) ? (int) $aFull['place_id'] : null,
'osm_id' => isset($aFull['osm_id']) ? (int) $aFull['osm_id'] : null,
'osm_type' => isset($aFull['osm_type']) ? $aFull['osm_type'] : null,
+ 'place_type' => isset($aFull['place_type']) ? $aFull['place_type'] : null,
'class' => $aFull['class'],
'type' => $aFull['type'],
'admin_level' => isset($aFull['admin_level']) ? (int) $aFull['admin_level'] : null,
'rank_address' => $aFull['rank_address'] ? (int) $aFull['rank_address'] : null,
- 'distance' => (float) $aFull['distance']
+ 'distance' => (float) $aFull['distance'],
+ 'isaddress' => isset($aFull['isaddress']) ? (bool) $aFull['isaddress'] : null
);
return $aMapped;
--- /dev/null
+<?php
+
+ $title = 'Internal Server Error';
+ if ( $exception->getCode() == 400 ) {
+ $title = 'Bad Request';
+ }
+?>
+<!DOCTYPE html>
+<html lang="en">
+<head>
+ <style>
+ em { font-weight: bold; font-family: monospace; color: #e00404; background-color: #ffeaea; }
+ </style>
+</head>
+<body>
+ <h1><?php echo $title ?></h1>
+
+ <?php if (get_class($exception) == 'Nominatim\DatabaseError') { ?>
+
+ <p>Nominatim has encountered an internal error while accessing the database.
+ This may happen because the database is broken or because of a bug in
+ the software.</p>
+
+ <?php } else { ?>
+
+ <p>Nominatim has encountered an error with your request.</p>
+
+ <?php } ?>
+
+
+ <h3>Details</h3>
+
+ <?php echo $exception->getMessage() ?>
+
+ <?php if (CONST_Debug) { ?>
+ <p>
+ Exception <em><?php echo get_class($exception) ?></em> thrown in <em><?php echo $exception->getFile() . '('. $exception->getLine() . ')' ?></em>.
+
+ <?php if (get_class($exception) == 'Nominatim\DatabaseError') { ?>
+
+ <h3>SQL Error</h3>
+ <em><?php echo $exception->getSqlError() ?></em>
+
+ <pre><?php echo $exception->getSqlDebugDump() ?></pre>
+
+ <?php } ?>
+
+ <h3>Stack trace</h3>
+ <pre><?php echo $exception->getTraceAsString() ?></pre>
+
+ <?php } ?>
+
+ <p>
+ If you feel this error is incorrect feel file an issue on
+ <a href="https://github.com/openstreetmap/Nominatim/issues">Github</a>.
+
+ Please include the error message above and the URL you used.
+ </p>
+</body>
+</html>
--- /dev/null
+<?php
+ $error = array(
+ 'code' => $exception->getCode(),
+ 'message' => $exception->getMessage()
+ );
+
+ if (CONST_Debug) {
+ $error['details'] = $exception->getFile() . '('. $exception->getLine() . ')';
+ }
+
+ echo javascript_renderData(array('error' => $error));
--- /dev/null
+<error>
+ <code><?php echo $exception->getCode() ?></code>
+ <message><?php echo $exception->getMessage() ?></message>
+ <?php if (CONST_Debug) { ?>
+ <details><?php echo $exception->getFile() . '('. $exception->getLine() . ')' ?></details>
+ <?php } ?>
+</error>
\ No newline at end of file
<meta name="viewport" content="width=device-width, initial-scale=1">
<base href="<?php echo CONST_Website_BaseURL;?>" />
- <link href="nominatim.xml" rel="search" title="Nominatim Search" type="application/opensearchdescription+xml" />
<link href="css/leaflet.css" rel="stylesheet" />
<link href="css/Control.Minimap.min.css" rel="stylesheet" />
<link href="css/bootstrap-theme.min.css" rel="stylesheet" />
About & Help <span class="caret"></span>
</button>
<ul class="dropdown-menu dropdown-menu-right">
- <li><a href="https://wiki.openstreetmap.org/wiki/Nominatim" target="_blank">Documentation</a></li>
- <li><a href="https://wiki.openstreetmap.org/wiki/Nominatim/FAQ" target="_blank">FAQ</a></li>
+ <li><a href="https://nominatim.org/release-docs/develop/api/Overview/" target="_blank">API Reference</a></li>
+ <li><a href="https://nominatim.org/release-docs/develop/api/Faq/" target="_blank">FAQ</a></li>
+ <li><a href="https://help.openstreetmap.org/tags/nominatim/">OpenStreetMap Help</a></li>
+ <li><a href="https://github.com/openstreetmap/Nominatim">Nominatim on Github</a></li>
<li role="separator" class="divider"></li>
<li><a href="#" class="" data-toggle="modal" data-target="#report-modal">Report problem with results</a></li>
</ul>
link to a details page where you can inspect what data about the object is saved in
the database and investigate how the address of the object has been computed.</p>
-For more information visit the <a href="https://wiki.openstreetmap.org/wiki/Nominatim">Nominatim wiki page</a>.
+For more information visit the <a href="https://nominatim.org">Nominatim home page</a>.
<p>
- Before reporting problems please read the <a target="_blank" href="https://wiki.openstreetmap.org/wiki/Nominatim">user documentation</a>
- and
- <a target="_blank" href="https://wiki.openstreetmap.org/wiki/Nominatim/FAQ">FAQ</a>.
+ Before reporting problems please read the <a target="_blank" href="https://nominatim.org/release-docs/develop/api/Overview">user documentation</a>.
+
+ <h4>Finding the expected result</h4>
+
+ First of all, please make sure that the result that you expect is
+ available in the OpenStreetMap data.
+
+ To find the OpenStreetMap data, do the following:
+
+ <ul>
+ <li>Go to <a href="https://openstreetmap.org">https://openstreetmap.org</a>.</li>
+ <li>Go to the area of the map where you expect the result
+ and zoom in until you see the object you are looking for.</li>
+ <li>Click on the question mark on the right side of the map,
+ then with the question cursor on the map where your object is located.</li>
+ <li>Find the object of interest in the list that appears on the left side.</li>
+ <li>Click on the object and note down the URL that the browser shows.</li>
+ </ul>
+
+ If you cannot find the data you are looking for, there is a good chance
+ that it has not been entered yet. You should <a href="https://www.openstreetmap.org/fixthemap">report or fix the problem in OpenStreetMap</a> directly.
+
+ <h4>Reporting bad searches</h4>
+
+ Problems may be reported at the <a target="_blank" href="https://github.com/openstreetmap/nominatim/issues">issue tracker on github</a>. Please read through
+ the open tickets first and check if your problem has not already been
+ reported.
+
+ When reporting a problem, include the following:
+
+ <ul>
+ <li>A full description of the problem, including the exact term you
+ were searching for.</li>
+ <li>The result you get.</li>
+ <li>The OpenStreetMap object you expect to find (see above).</li>
+ </ul>
+
+ For general questions about installing and searching in Nominatim, please
+ use <a href="https://help.openstreetmap.org/tags/nominatim/">Help OpenStreetMap</a>.
- If your problem relates to the address of a particular search result please use the 'details' link
- to check how the address was generated before reporting a problem.
-</p>
-<p>
- Use <a target="_blank" href="https://github.com/openstreetmap/nominatim/issues">Nominatim issues on github</a>
- to report problems.
-<!-- You can search for existing bug reports
- <a href="https://trac.openstreetmap.org/query?status=new&status=assigned&status=reopened&component=nominatim&order=priority">here</a>.</p>
- -->
-</p>
-<p>
- Please ensure that you include a full description of the problem, including the search
- query that you used, the problem with the result and, if the problem relates to missing data,
- the osm type (node, way, relation) and id of the item that is missing.
-</p>
-<p>
- Problems that contain enough detail are likely to get looked at before ones that require
- significant research.
</p>
--- /dev/null
+<?php
+ header("content-type: text/html; charset=UTF-8");
+ include(CONST_BasePath.'/lib/template/includes/html-header.php');
+?>
+ <title>Nominatim Broken Polygon Data</title>
+ <meta name="description" content="List of broken OSM polygon data by date" lang="en-US" />
+</head>
+
+<body>
+
+<div class="container">
+ <h1>Broken polygons</h1>
+
+ <p>
+ Total number of broken polygons: <?php echo $iTotalBroken ?>.
+ Also available in <a href="<?php echo CONST_Website_BaseURL; ?>polygons.php?format=json">JSON format</a>.
+ </p>
+
+ <table class="table table-striped table-hover">
+
+<?php
+if (!empty($aPolygons)) {
+
+ echo '<tr>';
+ //var_dump($aPolygons[0]);
+ foreach (array_keys($aPolygons[0]) as $sCol) {
+ echo '<th>'.$sCol.'</th>';
+ }
+ echo '<th> </th>';
+ echo '</tr>';
+ $aSeen = array();
+ foreach ($aPolygons as $aRow) {
+ if (isset($aSeen[$aRow['osm_type'].$aRow['osm_id']])) continue;
+ $aSeen[$aRow['osm_type'].$aRow['osm_id']] = 1;
+
+ echo '<tr>';
+ $sOSMType = formatOSMType($aRow['osm_type']);
+ foreach ($aRow as $sCol => $sVal) {
+ switch ($sCol) {
+ case 'errormessage':
+ if (preg_match('/Self-intersection\\[([0-9.\\-]+) ([0-9.\\-]+)\\]/', $sVal, $aMatch)) {
+ $aRow['lat'] = $aMatch[2];
+ $aRow['lon'] = $aMatch[1];
+ $sUrl = sprintf('https://www.openstreetmap.org/?lat=%f&lon=%f&zoom=18&layers=M&%s=%d',
+ $aRow['lat'],
+ $aRow['lon'],
+ $sOSMType,
+ $aRow['osm_id']);
+ echo '<td><a href="'.$sUrl.'">'.($sVal?$sVal:' ').'</a></td>';
+ } else {
+ echo '<td>'.($sVal?$sVal:' ').'</td>';
+ }
+ break;
+ case 'osm_id':
+ echo '<td>'.osmLink(array('osm_type' => $aRow['osm_type'], 'osm_id' => $aRow['osm_id'])).'</td>';
+ break;
+ default:
+ echo '<td>'.($sVal?$sVal:' ').'</td>';
+ break;
+ }
+ }
+ $sJosmUrl = 'http://localhost:8111/import?url=https://www.openstreetmap.org/api/0.6/'.$sOSMType.'/'.$aRow['osm_id'].'/full';
+ echo '<td><a href="'.$sJosmUrl.'" target="josm">josm</a></td>';
+ echo '</tr>';
+ }
+ echo '</table>';
+}
+?>
+</div>
+</body>
+</html>
\ No newline at end of file
$aPointDetails['aBoundingBox'][2],
$aPointDetails['aBoundingBox'][3]
);
-
- if (isset($aPointDetails['aPolyPoints']) && $bShowPolygons) {
- $aPlace['polygonpoints'] = $aPointDetails['aPolyPoints'];
- }
}
if (isset($aPointDetails['zoom'])) {
$aPlace['properties']['geocoding']['label'] = $aPointDetails['langaddress'];
- $aPlace['properties']['geocoding']['name'] = $aPointDetails['placename'];
+ if ($aPointDetails['placename'] !== null) {
+ $aPlace['properties']['geocoding']['name'] = $aPointDetails['placename'];
+ }
if (isset($aPointDetails['address'])) {
- $aFieldMappings = array(
- 'house_number' => 'housenumber',
- 'road' => 'street',
- 'locality' => 'locality',
- 'postcode' => 'postcode',
- 'city' => 'city',
- 'district' => 'district',
- 'county' => 'county',
- 'state' => 'state',
- 'country' => 'country'
- );
-
- $aAddrNames = $aPointDetails['address']->getAddressNames();
- foreach ($aFieldMappings as $sFrom => $sTo) {
- if (isset($aAddrNames[$sFrom])) {
- $aPlace['properties']['geocoding'][$sTo] = $aAddrNames[$sFrom];
- }
- }
+ $aPointDetails['address']->addGeocodeJsonAddressParts(
+ $aPlace['properties']['geocoding']
+ );
$aPlace['properties']['geocoding']['admin']
= $aPointDetails['address']->getAdminLevels();
<?php include(CONST_BasePath.'/lib/template/includes/html-top-navigation.php'); ?>
- <form class="form-inline" role="search" accept-charset="UTF-8" action="<?php echo CONST_Website_BaseURL; ?>search.php">
- <div class="form-group">
- <input id="q" name="q" type="text" class="form-control input-sm" placeholder="Search" value="<?php echo htmlspecialchars($sQuery); ?>" >
+ <div class="top-bar" id="structured-query-selector">
+ <div class="search-type-link">
+ <a id="switch-to-reverse" href="<?php echo CONST_Website_BaseURL; ?>reverse.php?format=html">reverse search</a>
+ </div>
+ <?php
+ $bSimpleQuery = !empty($aMoreParams['q']);
+ $bStructuredQuery = !$bSimpleQuery
+ && !(empty($aMoreParams['street'])
+ && empty($aMoreParams['city'])
+ && empty($aMoreParams['county'])
+ && empty($aMoreParams['state'])
+ && empty($aMoreParams['country'])
+ && empty($aMoreParams['postalcode']));
+ ?>
+ <div class="radio-inline">
+ <input type="radio" name="query-selector" id="simple" value="simple" <?php if ($bSimpleQuery) { echo 'checked="checked"'; } ?> >
+ <label for="simple">simple</label>
+ </div>
+ <div class="radio-inline">
+ <input type="radio" name="query-selector" id="structured" value="structured" <?php if ($bStructuredQuery) { echo 'checked="checked"'; } ?> >
+ <label for="structured">structured</label>
+ </div>
+
+ <form role="search" accept-charset="UTF-8" action="<?php echo CONST_Website_BaseURL; ?>search.php">
+ <div class="form-group-simple"
+ <?php
+ if ($bStructuredQuery) {
+ echo 'style="display:none;"';
+ }
+ ?>>
+ <input id="q" name="q" type="text" class="form-control input-sm" placeholder="Search" value="<?php echo htmlspecialchars($aMoreParams['q'] ?? ''); ?>" >
</div>
+ <div class="form-group-structured"
+ <?php
+ if (!$bStructuredQuery) {
+ echo "style='display:none;'";
+ }
+ ?>>
+<div class="form-inline">
+ <input id="street" name="street" type="text" class="form-control input-sm" placeholder="House number/Street" value="<?php echo htmlspecialchars($aMoreParams['street'] ?? ''); ?>" >
+ <input id="city" name="city" type="text" class="form-control input-sm" placeholder="City" value="<?php echo htmlspecialchars($aMoreParams['city'] ?? ''); ?>" >
+ <input id="county" name="county" type="text" class="form-control input-sm" placeholder="County" value="<?php echo htmlspecialchars($aMoreParams['county'] ?? ''); ?>" >
+ <input id="state" name="state" type="text" class="form-control input-sm" placeholder="State" value="<?php echo htmlspecialchars($aMoreParams['state'] ?? ''); ?>" >
+ <input id="country" name="country" type="text" class="form-control input-sm" placeholder="Country" value="<?php echo htmlspecialchars($aMoreParams['country'] ?? ''); ?>" >
+ <input id="postalcode" name="postalcode" type="text" class="form-control input-sm" placeholder="Postal Code" value="<?php echo htmlspecialchars($aMoreParams['postalcode'] ?? ''); ?>" >
+ </div></div>
<div class="form-group search-button-group">
<button type="submit" class="btn btn-primary btn-sm">Search</button>
<?php if (CONST_Search_AreaPolygons) { ?>
<input type="hidden" value="1" name="polygon_geojson" />
<?php } ?>
- <input type="hidden" name="viewbox" value="<?php if (isset($aMoreParams['viewbox'])) echo ($aMoreParams['viewbox']); ?>" />
+ <input type="hidden" name="viewbox" value="<?php echo htmlspecialchars($aMoreParams['viewbox'] ?? ''); ?>" />
<div class="checkbox-inline">
- <input type="checkbox" id="use_viewbox" <?php if (isset($aMoreParams['viewbox'])) echo "checked='checked'"; ?>>
+ <input type="checkbox" id="use_viewbox" <?php if (!empty($aMoreParams['viewbox'])) echo "checked='checked'"; ?>>
<label for="use_viewbox">apply viewbox</label>
</div>
</div>
- <div class="search-type-link">
- <a id="switch-to-reverse" href="<?php echo CONST_Website_BaseURL; ?>reverse.php?format=html">reverse search</a>
- </div>
</form>
-
+</div>
<div id="content">
echo ' <span class="type">('.ucwords(str_replace('_',' ',$aResult['class'])).')</span>';
else
echo ' <span class="type">('.ucwords(str_replace('_',' ',$aResult['type'])).')</span>';
- echo ' <a class="btn btn-default btn-xs details" href="details.php?place_id='.$aResult['place_id'].'">details</a>';
+ echo detailsPermaLink($aResult, 'details', 'class="btn btn-default btn-xs details"');
echo '</div>';
$i = $i+1;
}
-
-
-
-
<script type="text/javascript">
<?php
if (isset($aPointDetails['aBoundingBox'])) {
$aPlace['boundingbox'] = $aPointDetails['aBoundingBox'];
-
- if (isset($aPointDetails['aPolyPoints'])) {
- $aPlace['polygonpoints'] = $aPointDetails['aPolyPoints'];
- }
}
if (isset($aPointDetails['zoom'])) {
echo " attribution='Data © OpenStreetMap contributors, ODbL 1.0. http://www.openstreetmap.org/copyright'";
echo " querystring='".htmlspecialchars($sQuery, ENT_QUOTES)."'";
if (isset($aMoreParams['viewbox'])) echo " viewbox='".htmlspecialchars($aMoreParams['viewbox'], ENT_QUOTES)."'";
-echo " polygon='".(isset($aMoreParams['polygon'])?'true':'false')."'";
if (isset($aMoreParams['exclude_place_ids'])) {
echo " exclude_place_ids='".htmlspecialchars($aMoreParams['exclude_place_ids'])."'";
}
echo ' boundingbox="';
echo join(',', $aResult['aBoundingBox']);
echo '"';
-
- if (isset($aResult['aPolyPoints'])) {
- echo ' polygonpoints=\'';
- echo json_encode($aResult['aPolyPoints']);
- echo '\'';
- }
}
if (isset($aResult['asgeojson'])) {
# just use the pgxs makefile
+find_program(PG_CONFIG pg_config)
+execute_process(COMMAND ${PG_CONFIG} --pgxs
+ OUTPUT_VARIABLE PGXS
+ OUTPUT_STRIP_TRAILING_WHITESPACE)
+
+if (NOT EXISTS "${PGXS}")
+message(FATAL_ERROR "Postgresql server package not found.")
+endif()
+
ADD_CUSTOM_COMMAND( OUTPUT ${CMAKE_CURRENT_SOURCE_DIR}/dummy
COMMAND PGXS=${PGXS} PG_CONFIG=${PG_CONFIG} MODSRCDIR=${CMAKE_CURRENT_SOURCE_DIR} $(MAKE) -f ${CMAKE_CURRENT_SOURCE_DIR}/Makefile
COMMENT "Running external makefile ${PGXS}"
#define UTFASCII " \x00""\x01"" \x01""0\x01""1\x01""2\x01""3\x01""4\x01""5\x01""6\x01""7\x01""8\x01""9\x01""a\x01""b\x01""c\x01""d\x01""e\x01""f\x01""g\x01""h\x01""i\x01""j\x01""k\x01""l\x01""m\x01""n\x01""o\x01""p\x01""q\x01""r\x01""s\x01""t\x01""u\x01""v\x01""w\x01""x\x01""y\x01""z\x02""ps\x02""ss\x03""deg\x01""-\x02""14\x02""12\x02""34\x02""ae\x02""th\x02""ij\x02""ng\x02""oe\x02""hv\x02""oi\x02""yr\x02""sh\x02""zh\x02""ts\x02""dz\x02""lj\x02""nj\x02""ou\x02""db\x02""qp\x04""stop\x02""lz\x02""tc\x02""fn\x02""ls\x02""ww\x0a""extra-high\x04""high\x03""mid\x04""tone\x09""extra-low\x03""yin\x04""yang\x04""down\x02""up\x04""left\x05""right\x04""ring\x06""middle\x05""tilde\x06""raised\x05""begin\x03""end\x05""shelf\x05""below\x04""heta\x05""sampi\x0a""pamphylian\x02""ks\x02""ph\x02""kh\x05""koppa\x02""st\x02""sp\x02""ch\x02""ti\x03""sho\x03""san\x02""ie\x02""io\x02""dj\x02""gj\x02""yi\x03""tsh\x02""kj\x03""dzh\x04""shch\x04""hard\x02""iu\x02""ia\x02""gh\x02""ot\x04""1000\x06""100000\x07""1000000\x03""tts\x02""el\x02""en\x02""em\x08""palochka\x03""ghe\x02""ha\x02""de\x03""dje\x03""zje\x04""dzje\x03""lje\x03""nje\x03""sje\x03""tje\x02""ze\x03""lha\x03""rha\x03""yae\x02""qa\x02""we\x05""aleut\x02""rh\x02""ew\x04""alef\x04""ayin\x02""oy\x05""sanah\x05""safha\x05""misra\x0b""sallallahou\x06""alayhe\x0b""rahmatullah\x04""radi\x09""takhallus\x05""hamza\x03""teh\x02""dh\x03""ain\x05""keheh\x05""farsi\x02""an\x02""un\x02""in\x05""small\x03""dot\x03""beh\x03""qaf\x02""tt\x03""tth\x02""bh\x03""hah\x02""ny\x02""dy\x03""cch\x02""dd\x02""dt\x03""ddh\x02""rr\x02""hy\x02""yu\x03""yeh\x03""sad\x03""dal\x03""reh\x06""sindhi\x03""heh\x05""alaph\x02""yh\x07""persian\x07""sogdian\x04""seen\x03""feh\x04""meem\x04""noon\x03""lam\x03""waw\x03""kaf\x05""alifu\x02""hh\x04""ainu\x02""aa\x02""ee\x02""oo\x02""ey\x02""oa\x03""naa\x0a""dagbasinna\x02""ba\x02""pa\x02""ta\x02""ja\x03""cha\x02""da\x02""ra\x03""rra\x02""sa\x03""gba\x02""fa\x02""ka\x02""la\x02""na\x02""ma\x03""nya\x02""wa\x02""ya\x04""jona\x0b""candrabindu\x08""anusvara\x07""visarga\x02""ii\x02""uu\x06""candra\x02""ai\x02""au\x03""kha\x02""ga\x03""gha\x03""nga\x02""ca\x03""jha\x03""tta\x04""ttha\x03""dda\x04""ddha\x03""nna\x03""tha\x03""dha\x04""nnna\x03""pha\x03""bha\x03""lla\x04""llla\x02""va\x03""sha\x03""ssa\x05""nukta\x08""avagraha\x06""virama\x06""udatta\x08""anudatta\x04""khha\x04""ghha\x02""za\x05""dddha\x03""yya\x02""ll\x03""gga\x03""jja\x04""ddda\x03""bba\x06""khanda\x02""on\x02""jh\x02""nn\x03""nnn\x03""lll\x03""aum\x05""udaat\x03""khh\x03""ghh\x04""dddh\x02""yy\x06""yakash\x02""rs\x02""bb\x03""geo\x03""tsa\x03""dza\x05""tuumu\x0b""jihvamuliya\x0b""upadhmaniya\x06""chillu\x08""iruyanna\x06""eyanna\x0a""alpapraana\x07""yayanna\x07""rayanna\x07""dantaja\x09""muurdhaja\x0a""aela-pilla\x05""ketti\x04""diga\x0c""gaetta-pilla\x07""kombuva\x05""kombu\x0b""gayanukitta\x02""ko\x03""kho\x02""yo\x03""tho\x02""so\x07""phinthu\x0b""lakkhangyao\x03""mai\x08""nikhahit\x08""yamakkan\x07""fongman\x0a""angkhankhu\x06""khomut\x03""aae\x02""no\x03""nng\x03""jny\x03""nyj\x04""nndd\x02""nd\x02""mb\x02""lo\x02""om\x04""half\x02""am\x02""ue\x03""uue\x03""yar\x02""ao\x04""tsha\x04""dzha\x03""zha\x02""-a\x04""kssa\x0a""fixed-form\x03""kka\x04""rjes\x04""rnam\x03""sna\x03""lci\x04""mchu\x03""gru\x02""ei\x02""ay\x04""rdel\x02""hn\x02""hm\x04""nnya\x04""shan\x03""mon\x04""tall\x04""asat\x06""medial\x05""great\x03""ssh\x03""kss\x07""western\x07""eastern\x05""rumai\x03""rae\x04""char\x04""jhan\x03""hae\x02""he\x03""hie\x03""har\x03""hoe\x03""ban\x03""gan\x03""don\x03""vin\x03""zen\x03""tan\x03""kan\x03""las\x03""man\x03""nar\x03""par\x04""zhar\x03""tar\x04""phar\x04""khar\x04""ghan\x03""qar\x04""shin\x04""chin\x03""can\x03""jil\x03""cil\x03""xan\x02""fi\x02""yn\x05""elifi\x08""georgian\x03""nny\x06""filler\x02""eo\x03""yeo\x02""ye\x03""wae\x03""weo\x02""wi\x02""eu\x03""a-o\x03""a-u\x04""ya-o\x05""ya-yo\x04""eo-o\x04""eo-u\x05""eo-eu\x05""yeo-o\x05""yeo-u\x04""o-eo\x03""o-e\x04""o-ye\x03""o-o\x03""o-u\x05""yo-ya\x06""yo-yae\x06""yo-yeo\x04""yo-o\x04""yo-i\x03""u-a\x04""u-ae\x07""u-eo-eu\x04""u-ye\x03""u-u\x04""yu-a\x05""yu-eo\x04""yu-e\x06""yu-yeo\x05""yu-ye\x04""yu-u\x04""yu-i\x04""eu-u\x05""eu-eu\x04""yi-u\x03""i-a\x04""i-ya\x03""i-o\x03""i-u\x04""i-eu\x07""i-araea\x05""araea\x08""araea-eo\x02""xh\x0c""nieun-tikeut\x0a""nieun-sios\x0d""nieun-pansios\x0d""nieun-thieuth\x0d""tikeut-kiyeok\x0c""tikeut-rieul\x11""rieul-kiyeok-sios\x0b""rieul-nieun\x0c""rieul-tikeut\x12""rieul-tikeut-hieuh\x0b""hieuh-mieum\x0b""hieuh-pieup\x0b""yeorinhieuh\x02""gg\x03""laa\x02""jj\x02""nb\x02""dg\x02""rn\x02""mn\x02""bg\x02""bn\x03""sza\x02""bs\x03""bsg\x03""bst\x03""bsb\x03""bss\x03""bsj\x02""bj\x02""bc\x02""bt\x02""bp\x03""bbn\x02""sg\x02""sn\x02""sd\x02""sr\x02""sm\x02""sb\x03""sbg\x03""sss\x02""sj\x02""sc\x02""sk\x04""shee\x03""she\x04""shwa\x03""qoa\x03""qha\x03""qhu\x02""ck\x04""qhee\x03""qhe\x02""pb\x02""pn\x04""qhwi\x05""qhwaa\x05""qhwee\x04""qhwe\x04""u-eo\x03""u-i\x02""gs\x02""nh\x02""lg\x02""lm\x02""lb\x02""lt\x02""lp\x02""lh\x02""gl\x03""gsg\x02""ns\x02""nz\x02""nt\x02""tl\x03""lgs\x02""ln\x02""ld\x03""lth\x03""lmg\x03""lms\x03""lbs\x03""lbh\x03""rnp\x03""lss\x02""lk\x02""lq\x02""mg\x02""ml\x02""ms\x03""mss\x02""mz\x02""mc\x02""mh\x02""bl\x02""sl\x02""hl\x02""hb\x03""ddi\x04""ddaa\x04""ddee\x03""dde\x03""ddo\x04""ddwa\x02""hu\x02""hi\x03""haa\x03""hee\x02""ho\x03""jwa\x02""lu\x02""li\x03""lee\x02""le\x03""lwa\x03""hha\x03""hhu\x03""hhi\x04""hhaa\x04""hhee\x03""hhe\x03""hho\x04""hhwa\x02""mu\x02""mi\x03""maa\x03""mee\x02""me\x02""mo\x03""mwa\x03""szu\x03""szi\x04""szaa\x04""szee\x03""sze\x03""szo\x04""szwa\x02""ru\x02""ri\x03""raa\x03""ree\x02""re\x02""ro\x03""rwa\x02""su\x02""si\x03""saa\x03""see\x02""se\x03""swa\x03""shu\x03""shi\x04""shaa\x02""qu\x02""qi\x03""qaa\x03""qee\x02""qe\x02""qo\x04""tzoa\x03""qwa\x02""fu\x03""qwi\x04""qwaa\x04""qwee\x03""qwe\x02""fo\x03""fwa\x03""qhi\x04""qhaa\x03""qho\x03""pwa\x04""qhwa\x03""mya\x02""bu\x02""bi\x03""baa\x03""bee\x02""be\x02""bo\x03""bwa\x02""vu\x02""vi\x03""vaa\x03""vee\x02""ve\x02""vo\x03""vwa\x02""tu\x03""taa\x03""tee\x02""te\x02""to\x03""twa\x02""cu\x02""ci\x03""caa\x03""cee\x02""ce\x02""co\x03""cwa\x02""xa\x02""xu\x02""xi\x03""xaa\x03""xee\x02""xe\x02""xo\x03""bwe\x03""xwa\x03""fwi\x03""xwi\x04""xwaa\x04""xwee\x03""xwe\x04""pwee\x03""pwe\x02""nu\x02""ni\x03""nee\x02""ne\x03""nwa\x03""nyu\x03""nyi\x04""nyaa\x04""nyee\x03""nye\x03""nyo\x04""nywa\x02""ku\x02""ki\x03""kaa\x03""kee\x02""ke\x03""kwa\x03""kwi\x04""kwaa\x04""kwee\x03""kwe\x03""kxa\x03""kxu\x03""kxi\x04""kxaa\x04""kxee\x03""kxe\x03""kxo\x03""hna\x04""kxwa\x04""kxwi\x05""kxwaa\x05""kxwee\x04""kxwe\x03""qua\x03""que\x02""wu\x03""waa\x03""wee\x02""wo\x02""sv\x02""di\x02""zu\x02""zi\x03""zaa\x03""zee\x02""zo\x03""zwa\x03""zhu\x03""zhi\x04""zhaa\x04""zhee\x03""zhe\x03""zho\x04""zhwa\x03""yaa\x03""yee\x02""du\x03""daa\x03""dee\x02""do\x03""dwa\x03""ddu\x02""ju\x02""ji\x03""jaa\x03""jee\x02""je\x02""jo\x02""gu\x02""gi\x03""gaa\x03""gee\x02""ge\x02""go\x03""gwa\x03""gwi\x04""gwaa\x04""gwee\x03""gwe\x03""ggu\x03""ggi\x04""ggaa\x04""ggee\x03""gge\x03""ggo\x03""thu\x03""thi\x04""thaa\x04""thee\x03""the\x04""thwa\x03""chu\x03""chi\x04""chaa\x04""chee\x03""che\x03""cho\x04""chwa\x03""phu\x03""phi\x04""phaa\x04""phee\x03""phe\x03""pho\x04""phwa\x03""tsu\x03""tsi\x04""tsaa\x04""tsee\x03""tse\x03""tso\x04""tswa\x03""tza\x03""tzu\x03""tzi\x04""tzaa\x04""tzee\x03""tze\x03""tzo\x03""faa\x03""fee\x02""fe\x02""pu\x02""pi\x03""paa\x03""pee\x02""pe\x02""po\x03""rya\x03""fya\x02""gv\x02""lv\x03""nah\x02""nv\x03""qui\x03""quo\x03""quu\x03""quv\x02""dv\x03""dla\x03""tla\x03""tle\x03""tli\x03""tlo\x03""tlu\x03""tlv\x03""tsv\x02""wv\x02""yv\x03""aai\x03""wii\x03""woo\x04""paai\x03""pii\x03""poo\x03""pwi\x04""pwii\x03""pwo\x04""pwoo\x04""pwaa\x04""taai\x03""tii\x03""too\x03""twe\x03""twi\x04""twii\x03""two\x04""twoo\x04""twaa\x03""tte\x03""tti\x03""tto\x04""kaai\x03""kii\x03""koo\x04""kwii\x03""kwo\x04""kwoo\x02""kw\x03""keh\x03""kih\x03""koh\x03""kah\x04""caai\x03""cii\x03""coo\x03""cwe\x03""cwi\x04""cwii\x03""cwo\x04""cwoo\x04""cwaa\x04""maai\x03""mii\x03""moo\x03""mwe\x03""mwi\x04""mwii\x03""mwo\x04""mwoo\x04""mwaa\x04""naai\x03""nii\x03""noo\x03""nwe\x04""nwaa\x04""laai\x03""lii\x03""loo\x03""lwe\x03""lwi\x04""lwii\x03""lwo\x04""lwoo\x04""lwaa\x04""saai\x03""sii\x03""soo\x03""swe\x03""swi\x04""swii\x03""swo\x04""swoo\x04""swaa\x02""sw\x03""skw\x04""spwa\x04""stwa\x04""skwa\x04""scwa\x04""shii\x04""shoo\x04""shwe\x04""shwi\x05""shwii\x04""shwo\x05""shwoo\x05""shwaa\x04""yaai\x03""yii\x03""yoo\x03""ywe\x03""ywi\x04""ywii\x03""ywo\x04""ywoo\x03""ywa\x04""ywaa\x04""raai\x03""rii\x03""roo\x04""rwaa\x04""faai\x03""fii\x03""foo\x04""fwaa\x04""thii\x04""thoo\x05""thwaa\x04""tthe\x04""tthi\x04""ttho\x03""tye\x03""tyi\x03""tyo\x03""tya\x03""hii\x03""hoo\x02""hk\x04""qaai\x03""qii\x03""qoo\x04""tlhe\x04""tlhi\x04""tlho\x04""tlha\x05""ngaai\x03""ngi\x04""ngii\x03""ngo\x04""ngoo\x04""ngaa\x03""lhi\x04""lhii\x03""lho\x04""lhoo\x04""lhaa\x03""ghu\x03""gho\x04""ghee\x03""ghi\x03""hwu\x03""hwo\x03""hwe\x04""hwee\x03""hwi\x03""hwa\x03""ttu\x04""ttee\x03""khu\x03""khe\x04""khee\x03""khi\x03""kku\x03""kko\x03""kke\x04""kkee\x03""kki\x02""kk\x03""jju\x03""jjo\x03""jje\x04""jjee\x03""jji\x03""dlu\x03""dlo\x03""dle\x04""dlee\x03""dli\x03""lhu\x03""lhe\x04""lhee\x04""tlhu\x05""tlhee\x04""tlee\x03""dzu\x03""dzo\x03""dze\x04""dzee\x03""dzi\x04""ttsu\x04""ttso\x04""ttse\x05""ttsee\x04""ttsi\x04""ttsa\x03""qai\x04""ngai\x04""nngi\x05""nngii\x04""nngo\x05""nngoo\x04""nnga\x05""nngaa\x03""sso\x02""ac\x03""ear\x03""ior\x08""boundary\x03""ang\x03""zra\x04""todo\x04""sibe\x06""manchu\x02""uk\x03""uuv\x02""ry\x03""ryy\x02""ly\x03""lyy\x02""ua\x02""kr\x03""yan\x09""mukphreng\x09""kemphreng\x04""sa-i\x02""eh\x03""aue\x05""tone-\x03""kva\x03""xva\x05""vowel\x03""aay\x02""uy\x03""oay\x03""uey\x02""iy\x05""final\x03""lae\x04""laev\x04""ngka\x03""mpa\x03""nra\x04""nyca\x03""ulu\x05""cecek\x06""surang\x05""bisah\x05""akara\x05""ikara\x05""ukara\x05""ekara\x06""aikara\x05""okara\x07""rerekan\x06""tedung\x04""suku\x06""taling\x05""pepet\x04""khot\x04""tzir\x02""ef\x03""zal\x06""asyura\x08""panyecek\x09""panglayar\x09""pangwisad\x09""pamingkal\x08""panyakra\x07""panyiku\x08""panghulu\x07""panyuku\x0a""panaelaeng\x08""panolong\x07""pamepet\x0a""paneuleung\x07""pamaaeh\x03""sya\x03""kla\x03""gla\x03""pla\x03""fla\x03""bla\x03""mla\x03""hla\x07""nyin-do\x04""kang\x03""ran\x02""at\x02""ag\x02""al\x03""aak\x03""aaj\x03""aam\x03""aaw\x02""is\x02""ih\x03""iny\x02""ir\x02""uc\x02""ud\x03""unn\x02""ep\x03""edd\x03""err\x03""ott\x02""ob\x02""ov\x02""oh\x07""capital\x04""open\x08""sideways\x03""top\x06""bottom\x06""voiced\x06""turned\x05""alpha\x05""schwa\x03""eng\x04""beta\x05""greek\x05""delta\x05""gamma\x03""rho\x08""cyrillic\x07""insular\x04""iota\x07""upsilon\x03""esh\x03""ezh\x03""eth\x08""reversed\x07""dotless\x06""script\x06""barred\x05""theta\x09""flattened\x02""av\x02""zr\x02""jy\x02""cy\x0c""middle-welsh\x07""epsilon\x03""eta\x07""omicron\x05""omega\x03"" ha\x03"" ga\x03"" zi\x04"" pai\x05"" yong\x05"" bing\x03""tie\x02""et\x03"" xi\x06"" zheng\x06"" chong\x05"" ping\x05"" shan\x06""shapes\x05"" xian\x04"" qia\x05"" jiao\x04"" jue\x04"" hui\x03"" li\x03"" mo\x04"" jin\x05"" zhuo\x04"" shu\x03"" ji\x03"" lu\x03"" le\x04"" you\x04"" sui\x04"" lan\x05"" peng\x03"" bi\x04"" nen\x04"" xia\x04"" zao\x03"" ti\x04"" jie\x04"" nao\x04"" shi\x04"" hua\x05"" lian\x05"" jian\x05"" beng\x06"" jiang\x05"" xing\x04"" bie\x04"" zai\x05"" chou\x04"" sou\x05"" niao\x04"" die\x06"" huang\x04"" dun\x03"" yi\x04"" tuo\x05"" jing\x04"" dai\x04"" cha\x04"" fen\x02""pp\x04"" wan\x04"" sao\x04"" xiu\x04"" gao\x04"" xue\x05"" weng\x03""ecu\x02""cl\x02""cr\x02""ff\x03""mil\x03""pts\x02""dr\x03"" fu\x04"" kou\x04"" chu\x04"" zhe\x03""iii\x02""iv\x03""vii\x04""viii\x02""ix\x03""xii\x05"" tian\x04"" suo\x04"" she\x06"" zhuan\x05"" tang\x06"" zhuai\x04"" yao\x03"" tu\x03"" mi\x05"" zhen\x04"" xie\x04"" lei\x04"" gai\x05"" juan\x05""above\x04"" qiu\x05"" ding\x04"" que\x03""and\x03"" ao\x04"" mei\x03"" ge\x04""with\x03"" qu\x04"" hou\x03""azu\x04""buky\x04""vede\x07""glagoli\x05""dobro\x05""yestu\x07""zhivete\x05""dzelo\x06""zemlja\x04""izhe\x07""initial\x06""djervi\x04""kako\x07""ljudije\x07""myslite\x05""nashi\x03""onu\x06""pokoji\x05""ritsi\x05""slovo\x06""tvrido\x03""uku\x05""fritu\x04""heru\x03""otu\x04""shta\x06""chrivi\x04""yeru\x04""yeri\x04""yati\x07""spidery\x03""yus\x07""iotated\x03""big\x04""fita\x07""izhitsa\x07""shtapic\x0a""trokutasti\x08""latinate\x08""tailless\x04""alfa\x04""vida\x05""dalda\x03""eie\x03""sou\x04""zata\x04""hate\x06""thethe\x05""iauda\x04""kapa\x05""laula\x03""ksi\x04""sima\x03""tau\x03""psi\x03""oou\x09""dialect-p\x03""old\x0d""cryptogrammic\x07""crossed\x08""akhmimic\x08""l-shaped\x03""yab\x04""yabh\x03""yag\x05""yaghh\x06""berber\x03""yaj\x03""yad\x04""yadh\x04""yadd\x05""yaddh\x03""yey\x03""yaf\x03""yak\x06""tuareg\x05""yakhh\x03""yah\x04""yahh\x04""yakh\x03""yaq\x04""yazh\x07""ahaggar\x03""yal\x03""yam\x03""yap\x04""yarr\x04""yagh\x04""ayer\x03""yas\x04""yass\x04""yash\x03""yat\x04""yath\x04""yach\x04""yatt\x03""yav\x03""yaw\x03""yay\x03""yaz\x0a""tawellemet\x04""yazz\x0d""labialization\x03""loa\x03""moa\x03""roa\x03""soa\x04""shoa\x03""boa\x03""toa\x03""coa\x03""noa\x04""nyoa\x03""zoa\x03""doa\x04""ddoa\x03""joa\x04""thoa\x04""choa\x04""phoa\x03""poa\x04""ggwa\x04""ggwi\x05""ggwee\x04""ggwe\x03""ssu\x03""ssi\x04""ssaa\x04""ssee\x03""sse\x03""cca\x03""ccu\x03""cci\x04""ccaa\x04""ccee\x03""cce\x03""cco\x03""zza\x03""zzu\x03""zzi\x04""zzaa\x04""zzee\x03""zze\x03""zzo\x04""ccha\x04""cchu\x04""cchi\x05""cchaa\x05""cchee\x04""cche\x04""ccho\x03""qya\x03""qyu\x03""qyi\x04""qyaa\x04""qyee\x03""qye\x03""qyo\x03""kya\x03""kyu\x03""kyi\x04""kyaa\x04""kyee\x03""kye\x03""kyo\x03""xya\x03""xyu\x03""xyi\x04""xyaa\x04""xyee\x03""xye\x03""xyo\x03""gya\x03""gyu\x03""gyi\x04""gyaa\x04""gyee\x03""gye\x03""gyo\x02""er\x02""es\x05""shcha\x05""es-te\x05""djerv\x09""monograph\x08""iotified\x06""little\x04""full\x08""surround\x08""overlaid\x02""gn\x06""kiyeok\x0b""ssangkiyeok\x0b""kiyeok-sios\x05""nieun\x0b""nieun-cieuc\x0b""nieun-hieuh\x06""tikeut\x0b""ssangtikeut\x05""rieul\x0c""rieul-kiyeok\x0b""rieul-mieum\x0b""rieul-pieup\x0a""rieul-sios\x0d""rieul-thieuth\x0d""rieul-phieuph\x0b""rieul-hieuh\x05""mieum\x05""pieup\x0a""ssangpieup\x0a""pieup-sios\x04""sios\x09""ssangsios\x05""ieung\x05""cieuc\x0a""ssangcieuc\x07""chieuch\x07""khieukh\x07""thieuth\x07""phieuph\x05""hieuh\x0a""ssangnieun\x10""rieul-pieup-sios\x0d""rieul-pansios\x11""rieul-yeorinhieuh\x0b""mieum-pieup\x0a""mieum-sios\x0d""mieum-pansios\x0d""kapyeounmieum\x0c""pieup-kiyeok\x0c""pieup-tikeut\x11""pieup-sios-kiyeok\x11""pieup-sios-tikeut\x0b""pieup-cieuc\x0d""pieup-thieuth\x0d""kapyeounpieup\x12""kapyeounssangpieup\x0b""sios-kiyeok\x0a""sios-nieun\x0b""sios-tikeut\x0a""sios-pieup\x0a""sios-cieuc\x07""pansios\x0a""ssangieung\x08""yesieung\x0d""yesieung-sios\x10""yesieung-pansios\x0f""kapyeounphieuph\x0a""ssanghieuh\x06""araeae\x03""enn\x03""onn\x03""ann\x03""inn\x02""im\x03""ngg\x04""ainn\x04""aunn\x03""ong\x04""innn\x05""ojeon\x06""chamko\x05""jueui\x04"" kua\x03"" wu\x04"" yin\x03"" si\x03"" ye\x04"" nuo\x03"" xu\x06"" xiong\x04"" liu\x04"" lin\x06"" xiang\x04"" xin\x04"" pan\x03"" ma\x05"" qian\x06"" zhong\x02"" n\x06"" cheng\x05"" fang\x04"" zuo\x05"" zhou\x05"" dong\x03"" su\x06"" jiong\x05"" wang\x04"" zhu\x05"" long\x05"" ying\x05"" miao\x03"" yu\x04"" luo\x05"" chai\x04"" hun\x04"" rao\x04"" han\x04"" tai\x03"" ai\x04"" jun\x02"" l\x05"" xiao\x05"" tiao\x04"" zha\x03"" ku\x03"" er\x05"" nang\x03"" qi\x04"" chi\x03"" mu\x03"" se\x06"" qiong\x03"" sa\x03"" pu\x03"" ta\x03"" ou\x05"" mian\x04"" wen\x05"" diao\x04"" mie\x05"" quan\x04"" cai\x06"" liang\x03"" gu\x04"" mao\x04"" gua\x04"" man\x05"" chui\x05"" huan\x05"" gong\x04"" nan\x05"" dian\x04"" yan\x03"" ci\x05"" lang\x03"" he\x04"" tou\x05"" pian\x02"" e\x04"" qie\x04"" rui\x05"" chan\x04"" dan\x04"" duo\x04"" fei\x05"" bang\x03"" ba\x05"" kuai\x05"" shen\x03"" pi\x05"" yang\x04"" bei\x04"" che\x05"" suan\x05"" heng\x04"" gui\x04"" lou\x04"" sun\x04"" zou\x04"" zhi\x04"" jia\x03"" hu\x03"" la\x03"" ke\x04"" wei\x05"" zhao\x04"" kui\x04"" fan\x06"" zhang\x05"" song\x04"" nei\x05"" chen\x04"" guo\x03"" ng\x03"" fa\x04"" hao\x04"" pou\x05"" hong\x04"" tun\x03"" bo\x04"" nie\x04"" wai\x05"" shou\x05"" ling\x04"" lun\x05"" chun\x04"" rou\x03"" ze\x06"" sheng\x04"" bai\x04"" gou\x03"" na\x03"" cu\x04"" kuo\x04"" lao\x04"" huo\x04"" sai\x05"" rong\x03"" ju\x04"" pao\x04"" can\x05"" nian\x05"" xuan\x04"" qin\x03"" bu\x05"" zang\x05"" mang\x04"" dui\x04"" bao\x06"" chang\x04"" gun\x05"" liao\x03"" da\x05"" meng\x05"" qiao\x05"" rang\x04"" yun\x04"" tao\x04"" lai\x04"" ban\x05"" chuo\x03"" nu\x04"" ran\x04"" sha\x04"" dou\x03"" po\x05"" tong\x06"" qiang\x04"" xun\x05"" pang\x04"" cao\x03"" an\x04"" mai\x04"" yue\x05"" huai\x04"" zan\x04"" hai\x05"" luan\x05"" ning\x03"" ya\x05"" ming\x04"" zui\x04"" cui\x03"" de\x05"" bian\x04"" nou\x04"" tui\x05"" zhan\x04"" cen\x04"" min\x03"" zu\x03"" ni\x04"" cuo\x04"" pei\x05"" gang\x05"" yuan\x05"" biao\x04"" dao\x04"" jiu\x04"" run\x03"" wo\x05"" cuan\x04"" ren\x04"" kai\x04"" men\x07"" chuang\x05"" feng\x05"" zhai\x03"" di\x04"" ben\x05"" zong\x05"" ceng\x05"" hang\x04"" nin\x05"" kong\x04"" lie\x06"" kuang\x04"" san\x03"" te\x05"" shun\x03"" ce\x04"" ang\x03"" ru\x07"" shuang\x05"" guai\x03"" wa\x05"" shai\x05"" tuan\x05"" piao\x04"" kun\x04"" qun\x06"" chuai\x05"" shao\x05"" duan\x04"" gen\x06"" guang\x04"" cou\x05"" nuan\x05"" reng\x04"" mou\x04"" nai\x05"" guan\x04"" hen\x06"" chuan\x05"" kuan\x05"" qing\x04"" pin\x05"" kang\x03"" du\x05"" neng\x04"" tan\x05"" cang\x05"" chao\x05"" nong\x04"" kan\x04"" ken\x05"" ting\x04"" gan\x04"" niu\x05"" ruan\x05"" cong\x05"" zeng\x05"" shui\x05"" geng\x05"" shuo\x05"" zuan\x05"" zhui\x03"" en\x05"" leng\x04"" cun\x03"" ne\x04"" bin\x04"" ruo\x04"" kao\x05"" dang\x05"" teng\x03"" ri\x05"" deng\x03"" za\x06"" niang\x03"" ca\x05"" sang\x05"" keng\x06"" shuai\x04"" pie\x04"" tie\x06"" shuan\x05"" chua\x04"" zen\x06"" shang\x03"" pa\x04"" fou\x04"" diu\x03"" fo\x03"" ka\x04"" lia\x04"" zun\x05"" seng\x05"" zhun\x06"" zhuen\x05"" shua\x02"" a\x04"" pen\x02"" m\x04"" gem\x03"" yo\x03"" re\x04"" dia\x04""inch\x06""gallon\x04""giga\x06""guinea\x08""kilogram\x08""kilowatt\x07""gramton\x06""koruna\x08""shilling\x05""dozen\x04""desi\x06""dollar\x07""percent\x08""building\x05""farad\x05""franc\x07""hectare\x04""peso\x07""pfennig\x05""point\x03""hon\x05""micro\x04""mile\x04""mark\x06""micron\x05""rupee\x05""ruble\x03""rem\x08""roentgen\x05""meiji\x02""gb\x03""cal\x02""pf\x09""microgram\x02""hz\x03""khz\x02""mm\x03""ms2\x03""kpa\x03""gpa\x05""rads2\x02""mv\x02""nw\x02""cc\x02""cd\x02""gy\x03""mol\x07"" zhuang\x04"" zei\x02"" t\x05"" zhua\x04"" sen\x04"" hei\x04"" hal\x06"" ppwun\x04"" nay\x04"" yai\x06"" sasou\x04"" kes\x05"" saai\x05"" haai\x03"" so\x07"" akutsu\x05"" gake\x05"" gomi\x04"" ama\x04"" sho\x04"" ten\x04"" gei\x03"" ki\x04"" lue\x04"" miu\x05"" moku\x06"" tochi\x06"" kasei\x07"" kunugi\x06"" hazou\x08"" katsura\x05"" tamo\x0a"" shitamizu\x07"" shibui\x05"" tani\x05"" suei\x05"" diou\x08"" oozutsu\x0d"" tsumekanmuri\x04"" swu\x0c"" deshiguramu\x0b"" miriguramu\x0b"" hekutogura\x07"" tatamu\x04"" nue\x07"" utsubo\x02"" o\x04"" sik\x07"" sasara\x05"" yana\x03""bup\x05"" hata\x03""pap\x04""purx\x05"" kuji\x08"" shinshi\x04""nbap\x05"" kume\x04""nbyx\x09"" nukamiso\x03"" ro\x04""hmyx\x05""hmyrx\x07"" sukumo\x06"" kouji\x05"" kinu\x05"" wata\x04"" sok\x05"" kase\x06"" yingl\x07"" kasuri\x05"" nawa\x07"" odoshi\x05"" horo\x04"" sem\x05"" jung\x03"" un\x04""zzyr\x08"" kaakeru\x04""ssyt\x04""zhux\x09"" yashinau\x03""jyt\x03""qie\x04""njup\x04""nyuo\x08"" shikato\x03""xie\x0a"" tsuraneru\x03""een\x04""ween\x04""bhee\x04""mbee\x04""kpee\x05""mgbee\x04""gbee\x04""dhee\x05""dhhee\x04""ndee\x04""njee\x05""nggee\x03""hin\x03""win\x03""bhi\x03""mbi\x03""kpi\x04""mgbi\x03""gbi\x03""dhi\x04""dhhi\x03""ndi\x03""nji\x04""nggi\x04""ngan\x03""han\x03""wan\x03""mba\x04""kpan\x04""mgba\x04""dhha\x03""nda\x03""nja\x04""ngga\x03""oon\x04""woon\x04""bhoo\x03""boo\x04""mboo\x04""kpoo\x05""mgboo\x04""gboo\x03""voo\x04""dhoo\x05""dhhoo\x03""doo\x04""ndoo\x03""zoo\x04""zhoo\x03""joo\x04""njoo\x05""nggoo\x03""goo\x04""nyoo\x03""hun\x03""wun\x03""bhu\x03""mbu\x03""kpu\x04""mgbu\x03""gbu\x03""dhu\x04""dhhu\x03""ndu\x03""nju\x04""nggu\x04""ngon\x03""won\x03""bho\x03""mbo\x03""kpo\x04""mgbo\x03""gbo\x04""gbon\x03""dho\x04""dhho\x03""ndo\x03""njo\x04""nggo\x04""ngen\x03""hen\x03""wen\x03""bhe\x03""mbe\x03""kpe\x04""kpen\x04""mgbe\x03""gbe\x04""gben\x03""dhe\x04""dhhe\x03""nde\x04""ngge\x05""nggen\x03""gen\x0a""lengthener\x05""ndole\x06""zemlya\x05""broad\x07""neutral\x06""closed\x07""blended\x04""soft\x09""monocular\x09""binocular\x06""double\x0b""multiocular\x03""dwe\x04""dzwe\x04""zhwe\x04""dzze\x04""tswe\x04""tsse\x04""tche\x07""chinese\x06""dotted\x09""left-stem\x05""lower\x08""inverted\x06""stress\x0d""egyptological\x04""heng\x02""tz\x08""tresillo\x09""cuatrillo\x06""broken\x03""rum\x02""vy\x0a""visigothic\x05""thorn\x04""vend\x03""con\x02""us\x03""dum\x03""lum\x03""mum\x03""num\x03""tum\x02""um\x0a""circumflex\x05""colon\x06""equals\x08""saltillo\x08""dvisvara\x07""hasanta\x03""jho\x04""ddho\x03""rro\x09""alternate\x09""voiceless\x09""aspirated\x05""haaru\x03""hta\x04""shya\x04""nyja\x02""ea\x04""ngue\x04""chha\x04""nhue\x03""nha\x04""nhja\x03""nue\x03""ppa\x03""mue\x0b"" obiyaakasu\x04"" noy\x05"" tara\x07"" yadoru\x07"" hesaki\x04""gyon\x05"" sori\x07"" yofune\x05"" susa\x06"" usagi\x04"" nuc\x0b"" kutabireru\x05"" yaji\x07"" sonoko\x04"" hie\x04""nyan\x05"" hagi\x04"" ebi\x09"" kamakiri\x03""dab\x0a"" kamishimo\x05"" yuki\x04"" ena\x06"" hitoe\x08"" chihaya\x07"" tasuki\x08"" yasashi\x03""ren\x03""roe\x07"" segare\x06"" nerau\x07"" utsuke\x03""rim\x09"" shitsuke\x07"" yagate\x07"" suberu\x04"" sip\x03"" ip\x07"" totemo\x04"" kep\x05"" sako\x07"" appare\x06"" otoko\x0b"" sakenomoto\x09"" ishiyumi\x07"" habaki\x06"" irori\x06"" ngaak\x08"" kasugai\x06"" pyeng\x04""byun\x07"" kazari\x05"" yari\x05"" yuru\x07"" phwung\x04""song\x05"" tomo\x07"" kohaze\x03"" on\x07"" oroshi\x05"" shuu\x04"" eri\x07"" namazu\x05"" todo\x07"" kajika\x03""yon\x05"" bora\x05"" mate\x05"" gori\x05"" ugui\x06"" asari\x0a"" subashiri\x09"" kazunoko\x07"" shachi\x06"" dojou\x08"" sukesou\x08"" muroaji\x07"" haraka\x02"" z\x09"" hatahata\x04"" eso\x05"" kyou\x07"" shiira\x06"" mutsu\x04"" nio\x05"" yiao\x06"" shigi\x08"" chidori\x05"" toki\x08"" ikaruga\x07"" kakesu\x06"" isuka\x0c"" kikuitadaki\x08"" tsugumi\x04""jjog\x04""jjon\x04""jjol\x04""jjom\x04""jjob\x04""jjos\x05""jjong\x04""jjoc\x04""jjwa\x05""jjwag\x05""jjwal\x06""jjwass\x05""jjwae\x02""it\x02""ip\x03""iet\x03""iex\x03""iep\x02""ax\x02""ap\x03""uox\x02""uo\x03""uop\x02""ox\x02""op\x02""ex\x03""bit\x03""bix\x03""bip\x04""biet\x04""biex\x03""bie\x04""biep\x03""bat\x03""bax\x03""bap\x04""buox\x03""buo\x04""buop\x03""bot\x03""box\x03""bop\x03""bex\x03""bep\x03""but\x03""bux\x04""burx\x03""bur\x03""byt\x03""byx\x02""by\x03""byp\x04""byrx\x03""byr\x03""pit\x03""pix\x03""pip\x04""piex\x03""pie\x04""piep\x03""pat\x03""pax\x04""puox\x03""puo\x04""puop\x03""pot\x03""pox\x03""pop\x03""put\x03""pux\x03""pup\x03""pur\x03""pyt\x03""pyx\x02""py\x03""pyp\x04""pyrx\x03""pyr\x04""bbit\x04""bbix\x03""bbi\x04""bbip\x05""bbiet\x05""bbiex\x04""bbie\x05""bbiep\x04""bbat\x04""bbax\x04""bbap\x05""bbuox\x04""bbuo\x05""bbuop\x04""bbot\x04""bbox\x03""bbo\x04""bbop\x04""bbex\x03""bbe\x04""bbep\x04""bbut\x04""bbux\x03""bbu\x04""bbup\x05""bburx\x04""bbur\x04""bbyt\x04""bbyx\x03""bby\x04""bbyp\x04""nbit\x04""nbix\x03""nbi\x04""nbip\x05""nbiex\x04""nbie\x05""nbiep\x04""nbat\x04""nbax\x03""nba\x04""nbot\x04""nbox\x03""nbo\x04""nbop\x04""nbut\x04""nbux\x03""nbu\x04""nbup\x05""nburx\x04""nbur\x04""nbyt\x03""nby\x04""nbyp\x05""nbyrx\x04""nbyr\x04""hmit\x04""hmix\x03""hmi\x04""hmip\x05""hmiex\x04""hmie\x05""hmiep\x04""hmat\x04""hmax\x03""hma\x04""hmap\x05""hmuox\x04""hmuo\x05""hmuop\x04""hmot\x04""hmox\x03""hmo\x04""hmop\x04""hmut\x04""hmux\x03""hmu\x04""hmup\x05""hmurx\x04""hmur\x03""hmy\x04""hmyp\x04""hmyr\x03""mit\x03""mix\x03""mip\x04""miex\x03""mie\x04""miep\x03""mat\x03""max\x03""map\x04""muot\x04""muox\x03""muo\x04""muop\x03""mot\x03""mox\x03""mop\x03""mex\x03""mut\x03""mux\x03""mup\x04""murx\x03""mur\x03""myt\x03""myx\x02""my\x03""myp\x03""fit\x03""fix\x03""fip\x03""fat\x03""fax\x03""fap\x03""fox\x03""fop\x03""fut\x03""fux\x03""fup\x04""furx\x03""fur\x03""fyt\x03""fyx\x02""fy\x03""fyp\x03""vit\x03""vix\x03""vip\x04""viet\x04""viex\x03""vie\x04""viep\x03""vat\x03""vax\x03""vap\x03""vot\x03""vox\x03""vop\x03""vex\x03""vep\x03""vut\x03""vux\x03""vup\x04""vurx\x03""vur\x03""vyt\x03""vyx\x03""vyp\x04""vyrx\x03""vyr\x03""dit\x03""dix\x03""dip\x04""diex\x03""die\x04""diep\x03""dat\x03""dax\x03""dap\x04""duox\x03""duo\x03""dox\x03""dop\x03""dex\x03""dep\x03""dut\x03""dux\x03""dup\x04""durx\x03""dur\x03""tit\x03""tix\x03""tip\x04""tiex\x04""tiep\x03""tat\x03""tax\x03""tap\x04""tuot\x04""tuox\x03""tuo\x04""tuop\x03""tot\x03""tox\x03""tex\x03""tep\x03""tut\x03""tux\x03""tup\x04""turx\x03""tur\x04""ddit\x04""ddix\x04""ddip\x05""ddiex\x04""ddie\x05""ddiep\x04""ddat\x04""ddax\x04""ddap\x05""dduox\x04""dduo\x05""dduop\x04""ddot\x04""ddox\x04""ddop\x04""ddex\x04""ddep\x04""ddut\x04""ddux\x04""ddup\x05""ddurx\x04""ddur\x04""ndit\x04""ndix\x04""ndip\x05""ndiex\x04""ndie\x04""ndat\x04""ndax\x04""ndap\x04""ndot\x04""ndox\x04""ndop\x04""ndex\x04""ndep\x04""ndut\x04""ndux\x04""ndup\x05""ndurx\x04""ndur\x04""hnit\x04""hnix\x03""hni\x04""hnip\x05""hniet\x05""hniex\x04""hnie\x05""hniep\x04""hnat\x04""hnax\x04""hnap\x05""hnuox\x04""hnuo\x04""hnot\x04""hnox\x04""hnop\x04""hnex\x03""hne\x04""hnep\x04""hnut\x03""nit\x03""nix\x03""nip\x04""niex\x03""nie\x04""niep\x03""nax\x03""nap\x04""nuox\x03""nuo\x04""nuop\x03""not\x03""nox\x03""nop\x03""nex\x03""nep\x03""nut\x03""nux\x03""nup\x04""nurx\x03""nur\x04""hlit\x04""hlix\x03""hli\x04""hlip\x05""hliex\x04""hlie\x05""hliep\x04""hlat\x04""hlax\x04""hlap\x05""hluox\x04""hluo\x05""hluop\x04""hlox\x03""hlo\x04""hlop\x04""hlex\x03""hle\x04""hlep\x04""hlut\x04""hlux\x03""hlu\x04""hlup\x05""hlurx\x04""hlur\x04""hlyt\x04""hlyx\x03""hly\x04""hlyp\x05""hlyrx\x04""hlyr\x03""lit\x03""lix\x03""lip\x04""liet\x04""liex\x03""lie\x04""liep\x03""lat\x03""lax\x03""lap\x04""luot\x04""luox\x03""luo\x04""luop\x03""lot\x03""lox\x03""lop\x03""lex\x03""lep\x03""lut\x03""lux\x03""lup\x04""lurx\x03""lur\x03""lyt\x03""lyx\x03""lyp\x04""lyrx\x03""lyr\x03""git\x03""gix\x03""gip\x04""giet\x04""giex\x03""gie\x04""giep\x03""gat\x03""gax\x03""gap\x04""guot\x04""guox\x03""guo\x04""guop\x03""got\x03""gox\x03""gop\x03""get\x03""gex\x03""gep\x03""gut\x03""gux\x03""gup\x04""gurx\x03""gur\x03""kit\x03""kix\x03""kip\x04""kiex\x03""kie\x04""kiep\x03""kat\x03""kax\x03""kap\x04""kuox\x03""kuo\x04""kuop\x03""kot\x03""kox\x03""kop\x03""ket\x03""kex\x03""kep\x03""kut\x03""kux\x03""kup\x04""kurx\x03""kur\x04""ggit\x04""ggix\x05""ggiex\x04""ggie\x05""ggiep\x04""ggat\x04""ggax\x04""ggap\x05""gguot\x05""gguox\x04""gguo\x05""gguop\x04""ggot\x04""ggox\x04""ggop\x04""gget\x04""ggex\x04""ggep\x04""ggut\x04""ggux\x04""ggup\x05""ggurx\x04""ggur\x05""mgiex\x04""mgie\x04""mgat\x04""mgax\x03""mga\x04""mgap\x05""mguox\x04""mguo\x05""mguop\x04""mgot\x04""mgox\x03""mgo\x04""mgop\x04""mgex\x03""mge\x04""mgep\x04""mgut\x04""mgux\x03""mgu\x04""mgup\x05""mgurx\x04""mgur\x04""hxit\x04""hxix\x03""hxi\x04""hxip\x05""hxiet\x05""hxiex\x04""hxie\x05""hxiep\x04""hxat\x04""hxax\x03""hxa\x04""hxap\x05""hxuot\x05""hxuox\x04""hxuo\x05""hxuop\x04""hxot\x04""hxox\x03""hxo\x04""hxop\x04""hxex\x03""hxe\x04""hxep\x05""ngiex\x04""ngie\x05""ngiep\x04""ngat\x04""ngax\x04""ngap\x05""nguot\x05""nguox\x04""nguo\x04""ngot\x04""ngox\x04""ngop\x04""ngex\x03""nge\x04""ngep\x03""hit\x04""hiex\x03""hat\x03""hax\x03""hap\x04""huot\x04""huox\x03""huo\x04""huop\x03""hot\x03""hox\x03""hop\x03""hex\x03""hep\x03""wat\x03""wax\x03""wap\x04""wuox\x03""wuo\x04""wuop\x03""wox\x03""wop\x03""wex\x03""wep\x03""zit\x03""zix\x03""zip\x04""ziex\x03""zie\x04""ziep\x03""zat\x03""zax\x03""zap\x04""zuox\x03""zuo\x04""zuop\x03""zot\x03""zox\x03""zop\x03""zex\x03""zep\x03""zut\x03""zux\x03""zup\x04""zurx\x03""zur\x03""zyt\x03""zyx\x02""zy\x03""zyp\x04""zyrx\x03""zyr\x03""cit\x03""cix\x03""cip\x04""ciet\x04""ciex\x03""cie\x04""ciep\x03""cat\x03""cax\x03""cap\x04""cuox\x03""cuo\x04""cuop\x03""cot\x03""cox\x03""cop\x03""cex\x03""cep\x03""cut\x03""cux\x03""cup\x04""curx\x03""cur\x03""cyt\x03""cyx\x03""cyp\x04""cyrx\x03""cyr\x04""zzit\x04""zzix\x04""zzip\x05""zziet\x05""zziex\x04""zzie\x05""zziep\x04""zzat\x04""zzax\x04""zzap\x04""zzox\x04""zzop\x04""zzex\x04""zzep\x04""zzux\x04""zzup\x05""zzurx\x04""zzur\x04""zzyt\x04""zzyx\x03""zzy\x04""zzyp\x05""zzyrx\x04""nzit\x04""nzix\x03""nzi\x04""nzip\x05""nziex\x04""nzie\x05""nziep\x04""nzat\x04""nzax\x03""nza\x04""nzap\x05""nzuox\x04""nzuo\x04""nzox\x04""nzop\x04""nzex\x03""nze\x04""nzux\x03""nzu\x04""nzup\x05""nzurx\x04""nzur\x04""nzyt\x04""nzyx\x03""nzy\x04""nzyp\x05""nzyrx\x04""nzyr\x03""sit\x03""six\x03""sip\x04""siex\x03""sie\x04""siep\x03""sat\x03""sax\x03""sap\x04""suox\x03""suo\x04""suop\x03""sot\x03""sox\x03""sop\x03""sex\x03""sep\x03""sut\x03""sux\x03""sup\x04""surx\x03""sur\x03""syt\x03""syx\x02""sy\x03""syp\x04""syrx\x03""syr\x04""ssit\x04""ssix\x04""ssip\x05""ssiex\x04""ssie\x05""ssiep\x04""ssat\x04""ssax\x04""ssap\x04""ssot\x04""ssox\x04""ssop\x04""ssex\x04""ssep\x04""ssut\x04""ssux\x04""ssup\x04""ssyx\x03""ssy\x04""ssyp\x05""ssyrx\x04""ssyr\x04""zhat\x04""zhax\x04""zhap\x05""zhuox\x04""zhuo\x05""zhuop\x04""zhot\x04""zhox\x04""zhop\x04""zhet\x04""zhex\x04""zhep\x04""zhut\x04""zhup\x05""zhurx\x04""zhur\x04""zhyt\x04""zhyx\x03""zhy\x04""zhyp\x05""zhyrx\x04""zhyr\x04""chat\x04""chax\x04""chap\x05""chuot\x05""chuox\x04""chuo\x05""chuop\x04""chot\x04""chox\x04""chop\x04""chet\x04""chex\x04""chep\x04""chux\x04""chup\x05""churx\x04""chur\x04""chyt\x04""chyx\x03""chy\x04""chyp\x05""chyrx\x04""chyr\x04""rrax\x05""rruox\x04""rruo\x04""rrot\x04""rrox\x04""rrop\x04""rret\x04""rrex\x03""rre\x04""rrep\x04""rrut\x04""rrux\x03""rru\x04""rrup\x05""rrurx\x04""rrur\x04""rryt\x04""rryx\x03""rry\x04""rryp\x05""rryrx\x04""rryr\x04""nrat\x04""nrax\x04""nrap\x04""nrox\x03""nro\x04""nrop\x04""nret\x04""nrex\x03""nre\x04""nrep\x04""nrut\x04""nrux\x03""nru\x04""nrup\x05""nrurx\x04""nrur\x04""nryt\x04""nryx\x03""nry\x04""nryp\x05""nryrx\x04""nryr\x04""shat\x04""shax\x04""shap\x05""shuox\x04""shuo\x05""shuop\x04""shot\x04""shox\x04""shop\x04""shet\x04""shex\x04""shep\x04""shut\x04""shux\x04""shup\x05""shurx\x04""shur\x04""shyt\x04""shyx\x03""shy\x04""shyp\x05""shyrx\x04""shyr\x03""rat\x03""rax\x03""rap\x04""ruox\x03""ruo\x04""ruop\x03""rot\x03""rox\x03""rop\x03""rex\x03""rep\x03""rut\x03""rux\x03""rup\x04""rurx\x03""rur\x03""ryt\x03""ryx\x03""ryp\x04""ryrx\x03""ryr\x03""jit\x03""jix\x03""jip\x04""jiet\x04""jiex\x03""jie\x04""jiep\x04""juot\x04""juox\x03""juo\x04""juop\x03""jot\x03""jox\x03""jop\x03""jut\x03""jux\x03""jup\x04""jurx\x03""jur\x03""jyx\x03""jyp\x04""jyrx\x03""jyr\x03""qit\x03""qix\x03""qip\x04""qiet\x04""qiex\x04""qiep\x04""quot\x04""quox\x04""quop\x03""qot\x03""qox\x03""qop\x03""qut\x03""qux\x03""qup\x04""qurx\x03""qur\x03""qyt\x03""qyx\x02""qy\x03""qyp\x04""qyrx\x03""qyr\x04""jjit\x04""jjix\x04""jjip\x05""jjiet\x05""jjiex\x04""jjie\x05""jjiep\x05""jjuox\x04""jjuo\x05""jjuop\x04""jjot\x04""jjox\x04""jjop\x04""jjut\x04""jjux\x04""jjup\x05""jjurx\x04""jjur\x04""jjyt\x04""jjyx\x03""jjy\x04""jjyp\x04""njit\x04""njix\x04""njip\x05""njiet\x05""njiex\x04""njie\x05""njiep\x05""njuox\x04""njuo\x04""njot\x04""njox\x04""njop\x04""njux\x05""njurx\x04""njur\x04""njyt\x04""njyx\x03""njy\x04""njyp\x05""njyrx\x04""njyr\x04""nyit\x04""nyix\x04""nyip\x05""nyiet\x05""nyiex\x04""nyie\x05""nyiep\x05""nyuox\x05""nyuop\x04""nyot\x04""nyox\x04""nyop\x04""nyut\x04""nyux\x04""nyup\x03""xit\x03""xix\x03""xip\x04""xiet\x04""xiex\x04""xiep\x04""xuox\x03""xuo\x03""xot\x03""xox\x03""xop\x03""xyt\x03""xyx\x02""xy\x03""xyp\x04""xyrx\x03""xyr\x03""yit\x03""yix\x03""yip\x04""yiet\x04""yiex\x03""yie\x04""yiep\x04""yuot\x04""yuox\x03""yuo\x04""yuop\x03""yot\x03""yox\x03""yop\x03""yut\x03""yux\x03""yup\x04""yurx\x03""yur\x03""yyt\x03""yyx\x03""yyp\x04""yyrx\x03""yyr\x03""kug\x03""kun\x03""kul\x03""kum\x03""kub\x03""kus\x04""kung\x04""kweo\x05""kweon\x05""kweol\x06""kweong\x05""kweng\x04""kwig\x04""kwin\x04""kwil\x04""kwim\x04""kwib\x04""kwis\x05""kwing\x04""kyun\x04""kyul\x04""kyum\x03""keu\x04""keug\x04""keun\x04""keul\x04""keum\x04""keub\x05""keung\x03""kig\x03""kin\x03""kil\x03""kim\x03""kib\x03""kis\x04""king\x03""tag\x03""tal\x04""talg\x03""tam\x03""tab\x03""tas\x04""tass\x04""tang\x03""tae\x04""taeg\x04""taen\x04""tael\x04""taem\x04""taeb\x04""taes\x05""taess\x05""taeng\x05""tyang\x03""teo\x04""teog\x04""teon\x04""teol\x05""teolm\x04""teom\x04""teob\x04""teos\x05""teoss\x05""teong\x03""teg\x03""ten\x03""tel\x03""tem\x03""teb\x03""tes\x04""teng\x04""tyeo\x05""tyeon\x06""tyeoss\x04""tyen\x03""tog\x03""ton\x03""tol\x03""tom\x03""tob\x03""tos\x04""tong\x04""twan\x04""twae\x03""toe\x04""toen\x04""toes\x05""toeng\x03""tug\x03""tun\x03""tul\x03""tub\x03""tus\x04""tung\x04""tweo\x06""tweoss\x04""twig\x04""twin\x04""twil\x04""twim\x04""twib\x05""twing\x03""tyu\x04""tyun\x04""tyul\x04""tyum\x05""tyung\x03""teu\x04""teug\x04""teun\x04""teud\x04""teul\x05""teulm\x04""teum\x04""teub\x04""teus\x04""tyin\x04""tyil\x04""tyim\x04""tyib\x03""tig\x03""tin\x03""til\x03""tim\x03""tib\x03""tis\x04""ting\x03""pag\x04""pagg\x03""pan\x03""pal\x04""palm\x03""pam\x03""pab\x03""pas\x04""pass\x04""pang\x03""pae\x04""paeg\x04""paen\x04""pael\x04""paem\x04""paeb\x04""paes\x05""paess\x05""paeng\x03""pya\x04""pyag\x03""peo\x04""peog\x04""peon\x04""peol\x04""peom\x04""peob\x04""peos\x05""peoss\x05""peong\x03""peg\x03""pen\x03""pel\x03""pem\x03""peb\x03""pes\x04""peng\x04""pyeo\x05""pyeon\x05""pyeol\x05""pyeom\x05""pyeob\x06""pyeoss\x06""pyeong\x03""pye\x04""pyel\x04""pyeb\x04""pyes\x03""pog\x03""pon\x03""pol\x03""pom\x03""pob\x03""pos\x04""pong\x05""pwang\x03""poe\x04""poen\x03""pyo\x04""pyon\x04""pyol\x04""pyob\x04""pyos\x03""pug\x03""pun\x03""pud\x03""pul\x04""pulm\x03""pum\x03""pub\x03""pus\x04""pung\x04""pweo\x06""pweong\x04""pwin\x04""pwil\x04""pwim\x04""pwis\x03""pyu\x04""pyun\x04""pyul\x04""pyum\x04""pyus\x05""pyung\x03""peu\x04""peun\x04""peul\x04""peum\x04""peub\x04""peus\x03""pig\x03""pin\x03""pil\x03""pim\x03""pib\x03""pis\x04""ping\x03""hag\x03""hal\x04""halt\x03""ham\x03""hab\x03""has\x04""hang\x04""haeg\x04""haen\x04""hael\x04""haem\x04""haeb\x04""haes\x05""haess\x05""haeng\x03""hya\x05""hyang\x03""heo\x04""heog\x04""heon\x04""heol\x05""heolm\x04""heom\x04""heob\x04""heos\x05""heong\x03""heg\x03""hel\x03""hem\x03""heb\x03""hes\x04""hyeo\x05""hyeog\x05""hyeon\x05""hyeol\x05""hyeom\x05""hyeob\x05""hyeos\x06""hyeoss\x06""hyeong\x03""hye\x04""hyen\x04""hyel\x04""hyeb\x03""hog\x03""hol\x04""holt\x03""hom\x03""hob\x03""hos\x04""hong\x04""hwag\x04""hwan\x04""hwal\x04""hwas\x05""hwang\x04""hwae\x05""hwaeg\x05""hwaen\x05""hwaes\x06""hwaeng\x04""hoeg\x04""hoen\x04""hoel\x04""hoeb\x04""hoes\x05""hoeng\x03""hyo\x04""hyon\x04""hyol\x04""hyob\x04""hyos\x03""hug\x03""hul\x04""hult\x03""hum\x03""hus\x04""hung\x04""hweo\x05""hweon\x05""hweol\x05""hweom\x06""hweong\x04""hweg\x03""gag\x04""gagg\x04""gags\x04""ganj\x04""ganh\x03""gad\x03""gal\x04""galg\x04""galm\x04""galb\x04""gals\x04""galt\x04""galp\x04""galh\x03""gam\x03""gab\x04""gabs\x03""gas\x04""gass\x04""gang\x03""gaj\x03""gac\x03""gak\x03""gah\x03""gae\x04""gaeg\x05""gaegg\x05""gaegs\x04""gaen\x05""gaenj\x05""gaenh\x04""gaed\x04""gael\x05""gaelg\x05""gaelm\x05""gaelb\x05""gaels\x05""gaelt\x05""gaelp\x05""gaelh\x04""gaem\x04""gaeb\x05""gaebs\x04""gaes\x05""gaess\x05""gaeng\x04""gaej\x04""gaec\x04""gaek\x04""gaet\x04""gaep\x04""gaeh\x04""gyag\x05""gyagg\x05""gyags\x04""gyan\x05""gyanj\x05""gyanh\x04""gyad\x04""gyal\x05""gyalg\x05""gyalm\x05""gyalb\x05""gyals\x05""gyalt\x05""gyalp\x05""gyalh\x04""gyam\x04""gyab\x05""gyabs\x04""gyas\x05""gyass\x05""gyang\x04""gyaj\x04""gyac\x04""gyak\x04""gyat\x04""gyap\x04""gyah\x04""gyae\x05""gyaeg\x06""gyaegg\x06""gyaegs\x05""gyaen\x06""gyaenj\x06""gyaenh\x05""gyaed\x05""gyael\x06""gyaelg\x06""gyaelm\x06""gyaelb\x06""gyaels\x06""gyaelt\x06""gyaelp\x06""gyaelh\x05""gyaem\x05""gyaeb\x06""gyaebs\x05""gyaes\x06""gyaess\x06""gyaeng\x05""gyaej\x05""gyaec\x05""gyaek\x05""gyaet\x05""gyaep\x05""gyaeh\x04""geog\x05""geogg\x05""geogs\x04""geon\x05""geonj\x05""geonh\x04""geod\x04""geol\x05""geolg\x05""geolm\x05""geolb\x05""geols\x05""geolt\x05""geolp\x05""geolh\x04""geom\x04""geob\x05""geobs\x04""geos\x05""geoss\x05""geong\x04""geoj\x04""geoc\x04""geok\x04""geot\x04""geop\x04""geoh\x03""geg\x04""gegg\x04""gegs\x04""genj\x04""genh\x03""ged\x03""gel\x04""gelg\x04""gelm\x04""gelb\x04""gels\x04""gelt\x04""gelp\x04""gelh\x03""gem\x03""geb\x04""gebs\x03""ges\x04""gess\x04""geng\x03""gej\x03""gec\x03""gek\x03""geh\x04""gyeo\x05""gyeog\x06""gyeogg\x06""gyeogs\x05""gyeon\x06""gyeonj\x06""gyeonh\x05""gyeod\x05""gyeol\x06""gyeolg\x06""gyeolm\x06""gyeolb\x06""gyeols\x06""gyeolt\x06""gyeolp\x06""gyeolh\x05""gyeom\x05""gyeob\x06""gyeobs\x05""gyeos\x06""gyeoss\x06""gyeong\x05""gyeoj\x05""gyeoc\x05""gyeok\x05""gyeot\x05""gyeop\x05""gyeoh\x04""gyeg\x05""gyegg\x05""gyegs\x04""gyen\x05""gyenj\x05""gyenh\x04""gyed\x04""gyel\x05""gyelg\x05""gyelm\x05""gyelb\x05""gyels\x05""gyelt\x05""gyelp\x05""gyelh\x04""gyem\x04""gyeb\x05""gyebs\x04""gyes\x05""gyess\x05""gyeng\x04""gyej\x04""gyec\x04""gyek\x04""gyet\x04""gyep\x04""gyeh\x03""gog\x04""gogg\x04""gogs\x03""gon\x04""gonj\x04""gonh\x03""god\x03""gol\x04""golg\x04""golm\x04""golb\x04""gols\x04""golt\x04""golp\x04""golh\x03""gom\x03""gob\x04""gobs\x03""gos\x04""goss\x04""gong\x03""goj\x03""goc\x03""gok\x03""goh\x04""gwag\x05""gwagg\x05""gwags\x04""gwan\x05""gwanj\x05""gwanh\x04""gwad\x04""gwal\x05""gwalg\x05""gwalm\x05""gwalb\x05""gwals\x05""gwalt\x05""gwalp\x05""gwalh\x04""gwam\x04""gwab\x05""gwabs\x04""gwas\x05""gwass\x05""gwang\x04""gwaj\x04""gwac\x04""gwak\x04""gwat\x04""gwap\x04""gwah\x04""gwae\x05""gwaeg\x06""gwaegg\x06""gwaegs\x05""gwaen\x06""gwaenj\x06""gwaenh\x05""gwaed\x05""gwael\x06""gwaelg\x06""gwaelm\x06""gwaelb\x06""gwaels\x06""gwaelt\x06""gwaelp\x06""gwaelh\x05""gwaem\x05""gwaeb\x06""gwaebs\x05""gwaes\x06""gwaess\x06""gwaeng\x05""gwaej\x05""gwaec\x05""gwaek\x05""gwaet\x05""gwaep\x05""gwaeh\x03""goe\x04""goeg\x05""goegg\x05""goegs\x04""goen\x05""goenj\x05""goenh\x04""goed\x04""goel\x05""goelg\x05""goelm\x05""goelb\x05""goels\x05""goelt\x05""goelp\x05""goelh\x04""goem\x04""goeb\x05""goebs\x04""goes\x05""goess\x05""goeng\x04""goej\x04""goec\x04""goek\x04""goet\x04""goep\x04""goeh\x04""gyog\x05""gyogg\x05""gyogs\x05""gyonj\x05""gyonh\x04""gyod\x04""gyol\x05""gyolg\x05""gyolm\x05""gyolb\x05""gyols\x05""gyolt\x05""gyolp\x05""gyolh\x04""gyom\x04""gyob\x05""gyobs\x04""gyos\x05""gyoss\x05""gyong\x04""gyoj\x04""gyoc\x04""gyok\x04""gyot\x04""gyop\x04""gyoh\x03""gug\x04""gugg\x04""gugs\x03""gun\x04""gunj\x04""gunh\x03""gud\x03""gul\x04""gulg\x04""gulm\x04""gulb\x04""guls\x04""gult\x04""gulp\x04""gulh\x03""gum\x03""gub\x04""gubs\x03""gus\x04""guss\x04""gung\x03""guj\x03""guc\x03""guk\x03""guh\x04""gweo\x05""gweog\x06""gweogg\x06""gweogs\x05""gweon\x06""gweonj\x06""gweonh\x05""gweod\x05""gweol\x06""gweolg\x06""gweolm\x06""gweolb\x06""gweols\x06""gweolt\x06""gweolp\x06""gweolh\x05""gweom\x05""gweob\x06""gweobs\x05""gweos\x06""gweoss\x06""gweong\x05""gweoj\x05""gweoc\x05""gweok\x05""gweot\x05""gweop\x05""gweoh\x04""gweg\x05""gwegg\x05""gwegs\x04""gwen\x05""gwenj\x05""gwenh\x04""gwed\x04""gwel\x05""gwelg\x05""gwelm\x05""gwelb\x05""gwels\x05""gwelt\x05""gwelp\x05""gwelh\x04""gwem\x04""gweb\x05""gwebs\x04""gwes\x05""gwess\x05""gweng\x04""gwej\x04""gwec\x04""gwek\x04""gwet\x04""gwep\x04""gweh\x04""gwig\x05""gwigg\x05""gwigs\x04""gwin\x05""gwinj\x05""gwinh\x04""gwid\x04""gwil\x05""gwilg\x05""gwilm\x05""gwilb\x05""gwils\x05""gwilt\x05""gwilp\x05""gwilh\x04""gwim\x04""gwib\x05""gwibs\x04""gwis\x05""gwiss\x05""gwing\x04""gwij\x04""gwic\x04""gwik\x04""gwit\x04""gwip\x04""gwih\x04""gyug\x05""gyugg\x05""gyugs\x04""gyun\x05""gyunj\x05""gyunh\x04""gyud\x04""gyul\x05""gyulg\x05""gyulm\x05""gyulb\x05""gyuls\x05""gyult\x05""gyulp\x05""gyulh\x04""gyum\x04""gyub\x05""gyubs\x04""gyus\x05""gyuss\x05""gyung\x04""gyuj\x04""gyuc\x04""gyuk\x04""gyut\x04""gyup\x04""gyuh\x03""geu\x04""geug\x05""geugg\x05""geugs\x04""geun\x05""geunj\x05""geunh\x04""geud\x04""geul\x05""geulg\x05""geulm\x05""geulb\x05""geuls\x05""geult\x05""geulp\x05""geulh\x04""geum\x04""geub\x05""geubs\x04""geus\x04""geuj\x04""geuc\x04""geuk\x04""geut\x04""geup\x04""geuh\x04""gyig\x05""gyigg\x05""gyigs\x04""gyin\x05""gyinj\x05""gyinh\x04""gyid\x04""gyil\x05""gyilg\x05""gyilm\x05""gyilb\x05""gyils\x05""gyilt\x05""gyilp\x05""gyilh\x04""gyim\x04""gyib\x05""gyibs\x04""gyis\x05""gyiss\x05""gying\x04""gyij\x04""gyic\x04""gyik\x04""gyit\x04""gyip\x04""gyih\x03""gig\x04""gigg\x04""gigs\x03""gin\x04""ginj\x04""ginh\x03""gid\x03""gil\x04""gilg\x04""gilm\x04""gilb\x04""gils\x04""gilt\x04""gilp\x04""gilh\x03""gim\x03""gib\x04""gibs\x03""gis\x04""giss\x04""ging\x03""gij\x03""gic\x03""gik\x03""gih\x04""ggag\x05""ggagg\x05""ggags\x04""ggan\x05""gganj\x05""gganh\x04""ggad\x04""ggal\x05""ggalg\x05""ggalm\x05""ggalb\x05""ggals\x05""ggalt\x05""ggalp\x05""ggalh\x04""ggam\x04""ggab\x05""ggabs\x04""ggas\x05""ggass\x05""ggang\x04""ggaj\x04""ggac\x04""ggak\x04""ggah\x04""ggae\x05""ggaeg\x06""ggaegg\x06""ggaegs\x05""ggaen\x06""ggaenj\x06""ggaenh\x05""ggaed\x05""ggael\x06""ggaelg\x06""ggaelm\x06""ggaelb\x06""ggaels\x06""ggaelt\x06""ggaelp\x06""ggaelh\x05""ggaem\x05""ggaeb\x06""ggaebs\x05""ggaes\x06""ggaess\x06""ggaeng\x05""ggaej\x05""ggaec\x05""ggaek\x05""ggaet\x05""ggaep\x05""ggaeh\x04""ggya\x05""ggyag\x06""ggyagg\x06""ggyags\x05""ggyan\x06""ggyanj\x06""ggyanh\x05""ggyad\x05""ggyal\x06""ggyalg\x06""ggyalm\x06""ggyalb\x06""ggyals\x06""ggyalt\x06""ggyalp\x06""ggyalh\x05""ggyam\x05""ggyab\x06""ggyabs\x05""ggyas\x06""ggyass\x06""ggyang\x05""ggyaj\x05""ggyac\x05""ggyak\x05""ggyat\x05""ggyap\x05""ggyah\x05""ggyae\x06""ggyaeg\x07""ggyaegg\x07""ggyaegs\x06""ggyaen\x07""ggyaenj\x07""ggyaenh\x06""ggyaed\x06""ggyael\x07""ggyaelg\x07""ggyaelm\x07""ggyaelb\x07""ggyaels\x07""ggyaelt\x07""ggyaelp\x07""ggyaelh\x06""ggyaem\x06""ggyaeb\x07""ggyaebs\x06""ggyaes\x07""ggyaess\x07""ggyaeng\x06""ggyaej\x06""ggyaec\x06""ggyaek\x06""ggyaet\x06""ggyaep\x06""ggyaeh\x04""ggeo\x05""ggeog\x06""ggeogg\x06""ggeogs\x05""ggeon\x06""ggeonj\x06""ggeonh\x05""ggeod\x05""ggeol\x06""ggeolg\x06""ggeolm\x06""ggeolb\x06""ggeols\x06""ggeolt\x06""ggeolp\x06""ggeolh\x05""ggeom\x05""ggeob\x06""ggeobs\x05""ggeos\x06""ggeoss\x06""ggeong\x05""ggeoj\x05""ggeoc\x05""ggeok\x05""ggeot\x05""ggeop\x05""ggeoh\x04""ggeg\x05""ggegg\x05""ggegs\x04""ggen\x05""ggenj\x05""ggenh\x04""gged\x04""ggel\x05""ggelg\x05""ggelm\x05""ggelb\x05""ggels\x05""ggelt\x05""ggelp\x05""ggelh\x04""ggem\x04""ggeb\x05""ggebs\x04""gges\x05""ggess\x05""ggeng\x04""ggej\x04""ggec\x04""ggek\x04""ggeh\x05""ggyeo\x06""ggyeog\x07""ggyeogg\x07""ggyeogs\x06""ggyeon\x07""ggyeonj\x07""ggyeonh\x06""ggyeod\x06""ggyeol\x07""ggyeolg\x07""ggyeolm\x07""ggyeolb\x07""ggyeols\x07""ggyeolt\x07""ggyeolp\x07""ggyeolh\x06""ggyeom\x06""ggyeob\x07""ggyeobs\x06""ggyeos\x07""ggyeoss\x07""ggyeong\x06""ggyeoj\x06""ggyeoc\x06""ggyeok\x06""ggyeot\x06""ggyeop\x06""ggyeoh\x04""ggye\x05""ggyeg\x06""ggyegg\x06""ggyegs\x05""ggyen\x06""ggyenj\x06""ggyenh\x05""ggyed\x05""ggyel\x06""ggyelg\x06""ggyelm\x06""ggyelb\x06""ggyels\x06""ggyelt\x06""ggyelp\x06""ggyelh\x05""ggyem\x05""ggyeb\x06""ggyebs\x05""ggyes\x06""ggyess\x06""ggyeng\x05""ggyej\x05""ggyec\x05""ggyek\x05""ggyet\x05""ggyep\x05""ggyeh\x04""ggog\x05""ggogg\x05""ggogs\x04""ggon\x05""ggonj\x05""ggonh\x04""ggod\x04""ggol\x05""ggolg\x05""ggolm\x05""ggolb\x05""ggols\x05""ggolt\x05""ggolp\x05""ggolh\x04""ggom\x04""ggob\x05""ggobs\x04""ggos\x05""ggoss\x05""ggong\x04""ggoj\x04""ggoc\x04""ggok\x04""ggoh\x05""ggwag\x06""ggwagg\x06""ggwags\x05""ggwan\x06""ggwanj\x06""ggwanh\x05""ggwad\x05""ggwal\x06""ggwalg\x06""ggwalm\x06""ggwalb\x06""ggwals\x06""ggwalt\x06""ggwalp\x06""ggwalh\x05""ggwam\x05""ggwab\x06""ggwabs\x05""ggwas\x06""ggwass\x06""ggwang\x05""ggwaj\x05""ggwac\x05""ggwak\x05""ggwat\x05""ggwap\x05""ggwah\x05""ggwae\x06""ggwaeg\x07""ggwaegg\x07""ggwaegs\x06""ggwaen\x07""ggwaenj\x07""ggwaenh\x06""ggwaed\x06""ggwael\x07""ggwaelg\x07""ggwaelm\x07""ggwaelb\x07""ggwaels\x07""ggwaelt\x07""ggwaelp\x07""ggwaelh\x06""ggwaem\x06""ggwaeb\x07""ggwaebs\x06""ggwaes\x07""ggwaess\x07""ggwaeng\x06""ggwaej\x06""ggwaec\x06""ggwaek\x06""ggwaet\x06""ggwaep\x06""ggwaeh\x04""ggoe\x05""ggoeg\x06""ggoegg\x06""ggoegs\x05""ggoen\x06""ggoenj\x06""ggoenh\x05""ggoed\x05""ggoel\x06""ggoelg\x06""ggoelm\x06""ggoelb\x06""ggoels\x06""ggoelt\x06""ggoelp\x06""ggoelh\x05""ggoem\x05""ggoeb\x06""ggoebs\x05""ggoes\x06""ggoess\x06""ggoeng\x05""ggoej\x05""ggoec\x05""ggoek\x05""ggoet\x05""ggoep\x05""ggoeh\x04""ggyo\x05""ggyog\x06""ggyogg\x06""ggyogs\x05""ggyon\x06""ggyonj\x06""ggyonh\x05""ggyod\x05""ggyol\x06""ggyolg\x06""ggyolm\x06""ggyolb\x06""ggyols\x06""ggyolt\x06""ggyolp\x06""ggyolh\x05""ggyom\x05""ggyob\x06""ggyobs\x05""ggyos\x06""ggyoss\x06""ggyong\x05""ggyoj\x05""ggyoc\x05""ggyok\x05""ggyot\x05""ggyop\x05""ggyoh\x04""ggug\x05""ggugg\x05""ggugs\x04""ggun\x05""ggunj\x05""ggunh\x04""ggud\x04""ggul\x05""ggulg\x05""ggulm\x05""ggulb\x05""gguls\x05""ggult\x05""ggulp\x05""ggulh\x04""ggum\x04""ggub\x05""ggubs\x04""ggus\x05""gguss\x05""ggung\x04""gguj\x04""gguc\x04""gguk\x04""gguh\x05""ggweo\x06""ggweog\x07""ggweogg\x07""ggweogs\x06""ggweon\x07""ggweonj\x07""ggweonh\x06""ggweod\x06""ggweol\x07""ggweolg\x07""ggweolm\x07""ggweolb\x07""ggweols\x07""ggweolt\x07""ggweolp\x07""ggweolh\x06""ggweom\x06""ggweob\x07""ggweobs\x06""ggweos\x07""ggweoss\x07""ggweong\x06""ggweoj\x06""ggweoc\x06""ggweok\x06""ggweot\x06""ggweop\x06""ggweoh\x05""ggweg\x06""ggwegg\x06""ggwegs\x05""ggwen\x06""ggwenj\x06""ggwenh\x05""ggwed\x05""ggwel\x06""ggwelg\x06""ggwelm\x06""ggwelb\x06""ggwels\x06""ggwelt\x06""ggwelp\x06""ggwelh\x05""ggwem\x05""ggweb\x06""ggwebs\x05""ggwes\x06""ggwess\x06""ggweng\x05""ggwej\x05""ggwec\x05""ggwek\x05""ggwet\x05""ggwep\x05""ggweh\x05""ggwig\x06""ggwigg\x06""ggwigs\x05""ggwin\x06""ggwinj\x06""ggwinh\x05""ggwid\x05""ggwil\x06""ggwilg\x06""ggwilm\x06""ggwilb\x06""ggwils\x06""ggwilt\x06""ggwilp\x06""ggwilh\x05""ggwim\x05""ggwib\x06""ggwibs\x05""ggwis\x06""ggwiss\x06""ggwing\x05""ggwij\x05""ggwic\x05""ggwik\x05""ggwit\x05""ggwip\x05""ggwih\x04""ggyu\x05""ggyug\x06""ggyugg\x06""ggyugs\x05""ggyun\x06""ggyunj\x06""ggyunh\x05""ggyud\x05""ggyul\x06""ggyulg\x06""ggyulm\x06""ggyulb\x06""ggyuls\x06""ggyult\x06""ggyulp\x06""ggyulh\x05""ggyum\x05""ggyub\x06""ggyubs\x05""ggyus\x06""ggyuss\x06""ggyung\x05""ggyuj\x05""ggyuc\x05""ggyuk\x05""ggyut\x05""ggyup\x05""ggyuh\x04""ggeu\x05""ggeug\x06""ggeugg\x06""ggeugs\x05""ggeun\x06""ggeunj\x06""ggeunh\x05""ggeud\x05""ggeul\x06""ggeulg\x06""ggeulm\x06""ggeulb\x06""ggeuls\x06""ggeult\x06""ggeulp\x06""ggeulh\x05""ggeum\x05""ggeub\x06""ggeubs\x05""ggeus\x06""ggeuss\x06""ggeung\x05""ggeuj\x05""ggeuc\x05""ggeuk\x05""ggeut\x05""ggeup\x05""ggeuh\x04""ggyi\x05""ggyig\x06""ggyigg\x06""ggyigs\x05""ggyin\x06""ggyinj\x06""ggyinh\x05""ggyid\x05""ggyil\x06""ggyilg\x06""ggyilm\x06""ggyilb\x06""ggyils\x06""ggyilt\x06""ggyilp\x06""ggyilh\x05""ggyim\x05""ggyib\x06""ggyibs\x05""ggyis\x06""ggyiss\x06""ggying\x05""ggyij\x05""ggyic\x05""ggyik\x05""ggyit\x05""ggyip\x05""ggyih\x04""ggig\x05""ggigg\x05""ggigs\x04""ggin\x05""gginj\x05""gginh\x04""ggid\x04""ggil\x05""ggilg\x05""ggilm\x05""ggilb\x05""ggils\x05""ggilt\x05""ggilp\x05""ggilh\x04""ggim\x04""ggib\x05""ggibs\x04""ggis\x05""ggiss\x05""gging\x04""ggij\x04""ggic\x04""ggik\x04""ggip\x04""ggih\x03""nag\x04""nagg\x04""nags\x03""nan\x04""nanj\x04""nanh\x03""nad\x03""nal\x04""nalg\x04""nalm\x04""nalb\x04""nals\x04""nalt\x04""nalp\x04""nalh\x03""nam\x03""nab\x04""nabs\x03""nas\x04""nass\x04""nang\x03""naj\x03""nac\x03""nak\x03""nat\x03""nae\x04""naeg\x05""naegg\x05""naegs\x04""naen\x05""naenj\x05""naenh\x04""naed\x04""nael\x05""naelg\x05""naelm\x05""naelb\x05""naels\x05""naelt\x05""naelp\x05""naelh\x04""naem\x04""naeb\x05""naebs\x04""naes\x05""naess\x05""naeng\x04""naej\x04""naec\x04""naek\x04""naet\x04""naep\x04""naeh\x04""nyag\x05""nyagg\x05""nyags\x05""nyanj\x05""nyanh\x04""nyad\x04""nyal\x05""nyalg\x05""nyalm\x05""nyalb\x05""nyals\x05""nyalt\x05""nyalp\x05""nyalh\x04""nyam\x04""nyab\x05""nyabs\x04""nyas\x05""nyass\x05""nyang\x04""nyaj\x04""nyac\x04""nyak\x04""nyat\x04""nyap\x04""nyah\x04""nyae\x05""nyaeg\x06""nyaegg\x06""nyaegs\x05""nyaen\x06""nyaenj\x06""nyaenh\x05""nyaed\x05""nyael\x06""nyaelg\x06""nyaelm\x06""nyaelb\x06""nyaels\x06""nyaelt\x06""nyaelp\x06""nyaelh\x05""nyaem\x05""nyaeb\x06""nyaebs\x05""nyaes\x06""nyaess\x06""nyaeng\x05""nyaej\x05""nyaec\x05""nyaek\x05""nyaet\x05""nyaep\x05""nyaeh\x03""neo\x04""neog\x05""neogg\x05""neogs\x04""neon\x05""neonj\x05""neonh\x04""neod\x04""neol\x05""neolg\x05""neolm\x05""neolb\x05""neols\x05""neolt\x05""neolp\x05""neolh\x04""neom\x04""neob\x05""neobs\x04""neos\x05""neoss\x05""neong\x04""neoj\x04""neoc\x04""neok\x04""neot\x04""neop\x04""neoh\x03""neg\x04""negg\x04""negs\x03""nen\x04""nenj\x04""nenh\x03""ned\x03""nel\x04""nelg\x04""nelm\x04""nelb\x04""nels\x04""nelt\x04""nelp\x04""nelh\x03""nem\x03""neb\x04""nebs\x03""nes\x04""ness\x04""neng\x03""nej\x03""nec\x03""nek\x03""net\x03""neh\x04""nyeo\x05""nyeog\x06""nyeogg\x06""nyeogs\x05""nyeon\x06""nyeonj\x06""nyeonh\x05""nyeod\x05""nyeol\x06""nyeolg\x06""nyeolm\x06""nyeolb\x06""nyeols\x06""nyeolt\x06""nyeolp\x06""nyeolh\x05""nyeom\x05""nyeob\x06""nyeobs\x05""nyeos\x06""nyeoss\x06""nyeong\x05""nyeoj\x05""nyeoc\x05""nyeok\x05""nyeot\x05""nyeop\x05""nyeoh\x04""nyeg\x05""nyegg\x05""nyegs\x04""nyen\x05""nyenj\x05""nyenh\x04""nyed\x04""nyel\x05""nyelg\x05""nyelm\x05""nyelb\x05""nyels\x05""nyelt\x05""nyelp\x05""nyelh\x04""nyem\x04""nyeb\x05""nyebs\x04""nyes\x05""nyess\x05""nyeng\x04""nyej\x04""nyec\x04""nyek\x04""nyet\x04""nyep\x04""nyeh\x03""nog\x04""nogg\x04""nogs\x03""non\x04""nonj\x04""nonh\x03""nod\x03""nol\x04""nolg\x04""nolm\x04""nolb\x04""nols\x04""nolt\x04""nolp\x04""nolh\x03""nom\x03""nob\x04""nobs\x03""nos\x04""noss\x04""nong\x03""noj\x03""noc\x03""nok\x03""noh\x04""nwag\x05""nwagg\x05""nwags\x04""nwan\x05""nwanj\x05""nwanh\x04""nwad\x04""nwal\x05""nwalg\x05""nwalm\x05""nwalb\x05""nwals\x05""nwalt\x05""nwalp\x05""nwalh\x04""nwam\x04""nwab\x05""nwabs\x04""nwas\x05""nwass\x05""nwang\x04""nwaj\x04""nwac\x04""nwak\x04""nwat\x04""nwap\x04""nwah\x04""nwae\x05""nwaeg\x06""nwaegg\x06""nwaegs\x05""nwaen\x06""nwaenj\x06""nwaenh\x05""nwaed\x05""nwael\x06""nwaelg\x06""nwaelm\x06""nwaelb\x06""nwaels\x06""nwaelt\x06""nwaelp\x06""nwaelh\x05""nwaem\x05""nwaeb\x06""nwaebs\x05""nwaes\x06""nwaess\x06""nwaeng\x05""nwaej\x05""nwaec\x05""nwaek\x05""nwaet\x05""nwaep\x05""nwaeh\x03""noe\x04""noeg\x05""noegg\x05""noegs\x04""noen\x05""noenj\x05""noenh\x04""noed\x04""noel\x05""noelg\x05""noelm\x05""noelb\x05""noels\x05""noelt\x05""noelp\x05""noelh\x04""noem\x04""noeb\x05""noebs\x04""noes\x05""noess\x05""noeng\x04""noej\x04""noec\x04""noek\x04""noet\x04""noep\x04""noeh\x04""nyog\x05""nyogg\x05""nyogs\x04""nyon\x05""nyonj\x05""nyonh\x04""nyod\x04""nyol\x05""nyolg\x05""nyolm\x05""nyolb\x05""nyols\x05""nyolt\x05""nyolp\x05""nyolh\x04""nyom\x04""nyob\x05""nyobs\x04""nyos\x05""nyoss\x05""nyong\x04""nyoj\x04""nyoc\x04""nyok\x04""nyoh\x03""nug\x04""nugg\x04""nugs\x03""nun\x04""nunj\x04""nunh\x03""nud\x03""nul\x04""nulg\x04""nulm\x04""nulb\x04""nuls\x04""nult\x04""nulp\x04""nulh\x03""nub\x04""nubs\x03""nus\x04""nuss\x04""nung\x03""nuj\x03""nuc\x03""nuk\x03""nuh\x04""nweo\x05""nweog\x06""nweogg\x06""nweogs\x05""nweon\x06""nweonj\x06""nweonh\x05""nweod\x05""nweol\x06""nweolg\x06""nweolm\x06""nweolb\x06""nweols\x06""nweolt\x06""nweolp\x06""nweolh\x05""nweom\x05""nweob\x06""nweobs\x05""nweos\x06""nweoss\x06""nweong\x05""nweoj\x05""nweoc\x05""nweok\x05""nweot\x05""nweop\x05""nweoh\x04""nweg\x05""nwegg\x05""nwegs\x04""nwen\x05""nwenj\x05""nwenh\x04""nwed\x04""nwel\x05""nwelg\x05""nwelm\x05""nwelb\x05""nwels\x05""nwelt\x05""nwelp\x05""nwelh\x04""nwem\x04""nweb\x05""nwebs\x04""nwes\x05""nwess\x05""nweng\x04""nwej\x04""nwec\x04""nwek\x04""nwet\x04""nwep\x04""nweh\x03""nwi\x04""nwig\x05""nwigg\x05""nwigs\x04""nwin\x05""nwinj\x05""nwinh\x04""nwid\x04""nwil\x05""nwilg\x05""nwilm\x05""nwilb\x05""nwils\x05""nwilt\x05""nwilp\x05""nwilh\x04""nwim\x04""nwib\x05""nwibs\x04""nwis\x05""nwiss\x05""nwing\x04""nwij\x04""nwic\x04""nwik\x04""nwit\x04""nwip\x04""nwih\x04""nyug\x05""nyugg\x05""nyugs\x04""nyun\x05""nyunj\x05""nyunh\x04""nyud\x04""nyul\x05""nyulg\x05""nyulm\x05""nyulb\x05""nyuls\x05""nyult\x05""nyulp\x05""nyulh\x04""nyum\x04""nyub\x05""nyubs\x04""nyus\x05""nyuss\x05""nyung\x04""nyuj\x04""nyuc\x04""nyuk\x04""nyuh\x03""neu\x04""neug\x05""neugg\x05""neugs\x04""neun\x05""neunj\x05""neunh\x04""neud\x04""neul\x05""neulg\x05""neulm\x05""neulb\x05""neuls\x05""neult\x05""neulp\x05""neulh\x04""neum\x04""neub\x05""neubs\x04""neus\x05""neuss\x05""neung\x04""neuj\x04""neuc\x04""neuk\x04""neut\x04""neup\x04""neuh\x04""nyig\x05""nyigg\x05""nyigs\x04""nyin\x05""nyinj\x05""nyinh\x04""nyid\x04""nyil\x05""nyilg\x05""nyilm\x05""nyilb\x05""nyils\x05""nyilt\x05""nyilp\x05""nyilh\x04""nyim\x04""nyib\x05""nyibs\x04""nyis\x05""nyiss\x05""nying\x04""nyij\x04""nyic\x04""nyik\x04""nyih\x03""nig\x04""nigg\x04""nigs\x03""nin\x04""ninj\x04""ninh\x03""nid\x03""nil\x04""nilg\x04""nilm\x04""nilb\x04""nils\x04""nilt\x04""nilp\x04""nilh\x03""nim\x03""nib\x04""nibs\x03""nis\x04""niss\x04""ning\x03""nij\x03""nic\x03""nik\x03""nih\x03""dag\x04""dagg\x04""dags\x03""dan\x04""danj\x04""danh\x03""dad\x04""dalg\x04""dalm\x04""dalb\x04""dals\x04""dalt\x04""dalp\x04""dalh\x03""dam\x04""dabs\x03""das\x04""dass\x04""dang\x03""daj\x03""dac\x03""dak\x03""dah\x03""dae\x04""daeg\x05""daegg\x05""daegs\x04""daen\x05""daenj\x05""daenh\x04""daed\x04""dael\x05""daelg\x05""daelm\x05""daelb\x05""daels\x05""daelt\x05""daelp\x05""daelh\x04""daem\x04""daeb\x05""daebs\x04""daes\x05""daess\x05""daeng\x04""daej\x04""daec\x04""daek\x04""daet\x04""daep\x04""daeh\x03""dya\x04""dyag\x05""dyagg\x05""dyags\x04""dyan\x05""dyanj\x05""dyanh\x04""dyad\x04""dyal\x05""dyalg\x05""dyalm\x05""dyalb\x05""dyals\x05""dyalt\x05""dyalp\x05""dyalh\x04""dyam\x04""dyab\x05""dyabs\x04""dyas\x05""dyass\x05""dyang\x04""dyaj\x04""dyac\x04""dyak\x04""dyat\x04""dyap\x04""dyah\x04""dyae\x05""dyaeg\x06""dyaegg\x06""dyaegs\x05""dyaen\x06""dyaenj\x06""dyaenh\x05""dyaed\x05""dyael\x06""dyaelg\x06""dyaelm\x06""dyaelb\x06""dyaels\x06""dyaelt\x06""dyaelp\x06""dyaelh\x05""dyaem\x05""dyaeb\x06""dyaebs\x05""dyaes\x06""dyaess\x06""dyaeng\x05""dyaej\x05""dyaec\x05""dyaek\x05""dyaet\x05""dyaep\x05""dyaeh\x03""deo\x04""deog\x05""deogg\x05""deogs\x04""deon\x05""deonj\x05""deonh\x04""deod\x04""deol\x05""deolg\x05""deolm\x05""deolb\x05""deols\x05""deolt\x05""deolp\x05""deolh\x04""deom\x04""deob\x05""deobs\x04""deos\x05""deoss\x05""deong\x04""deoj\x04""deoc\x04""deok\x04""deot\x04""deop\x04""deoh\x04""degg\x04""degs\x03""den\x04""denj\x04""denh\x03""ded\x03""del\x04""delg\x04""delm\x04""delb\x04""dels\x04""delt\x04""delp\x04""delh\x03""dem\x03""deb\x04""debs\x03""des\x04""dess\x04""deng\x03""dej\x03""dec\x03""dek\x03""det\x03""deh\x04""dyeo\x05""dyeog\x06""dyeogg\x06""dyeogs\x05""dyeon\x06""dyeonj\x06""dyeonh\x05""dyeod\x05""dyeol\x06""dyeolg\x06""dyeolm\x06""dyeolb\x06""dyeols\x06""dyeolt\x06""dyeolp\x06""dyeolh\x05""dyeom\x05""dyeob\x06""dyeobs\x05""dyeos\x06""dyeoss\x06""dyeong\x05""dyeoj\x05""dyeoc\x05""dyeok\x05""dyeot\x05""dyeop\x05""dyeoh\x03""dye\x04""dyeg\x05""dyegg\x05""dyegs\x04""dyen\x05""dyenj\x05""dyenh\x04""dyed\x04""dyel\x05""dyelg\x05""dyelm\x05""dyelb\x05""dyels\x05""dyelt\x05""dyelp\x05""dyelh\x04""dyem\x04""dyeb\x05""dyebs\x04""dyes\x05""dyess\x05""dyeng\x04""dyej\x04""dyec\x04""dyek\x04""dyet\x04""dyep\x04""dyeh\x03""dog\x04""dogg\x04""dogs\x04""donj\x04""donh\x03""dod\x03""dol\x04""dolg\x04""dolm\x04""dolb\x04""dols\x04""dolt\x04""dolp\x04""dolh\x03""dom\x03""dob\x04""dobs\x03""dos\x04""doss\x04""dong\x03""doj\x03""doc\x03""dok\x03""doh\x04""dwag\x05""dwagg\x05""dwags\x04""dwan\x05""dwanj\x05""dwanh\x04""dwad\x04""dwal\x05""dwalg\x05""dwalm\x05""dwalb\x05""dwals\x05""dwalt\x05""dwalp\x05""dwalh\x04""dwam\x04""dwab\x05""dwabs\x04""dwas\x05""dwass\x05""dwang\x04""dwaj\x04""dwac\x04""dwak\x04""dwat\x04""dwap\x04""dwah\x04""dwae\x05""dwaeg\x06""dwaegg\x06""dwaegs"
-#define UTFASCIILOOKUP {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,2,1,2,2,1,1,2,2,2,2,4,6,8,10,12,14,16,18,20,22,2,2,1,1,1,1,1,24,26,28,30,32,34,36,38,40,42,44,46,48,50,52,54,56,58,60,62,64,66,68,70,72,74,1,2,1,1,1,1,24,26,28,30,32,34,36,38,40,42,44,46,48,50,52,54,56,58,60,62,64,66,68,70,72,74,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,28,76,1,72,1,79,1,28,24,1,1,2,58,2,82,86,8,10,1,64,54,1,2,6,52,1,88,91,94,1,24,24,24,24,24,24,97,28,32,32,32,32,40,40,40,40,30,50,52,52,52,52,52,70,52,64,64,64,64,64,100,79,24,24,24,24,24,24,97,28,32,32,32,32,40,40,40,40,30,50,52,52,52,52,52,2,52,64,64,64,64,72,100,72,24,24,24,24,24,24,28,28,28,28,28,28,28,28,30,30,30,30,32,32,32,32,32,32,32,32,32,32,36,36,36,36,36,36,36,36,38,38,38,38,40,40,40,40,40,40,40,40,40,40,103,103,42,42,44,44,44,46,46,46,46,46,46,46,46,46,46,50,50,50,50,50,50,50,106,106,52,52,52,52,52,52,109,109,58,58,58,58,58,58,60,60,60,60,60,60,60,60,62,62,62,62,62,62,64,64,64,64,64,64,64,64,64,64,64,64,68,68,72,72,72,74,74,74,74,74,74,60,26,26,26,26,16,16,52,28,28,30,30,30,30,30,10,1,32,34,34,36,36,112,40,40,44,44,46,46,68,50,50,52,52,52,115,115,54,54,118,8,8,121,121,62,62,62,62,64,64,72,66,72,72,74,74,124,124,124,124,8,14,14,127,68,1,1,1,1,130,130,130,133,133,133,136,136,136,24,24,40,40,52,52,64,64,64,64,64,64,64,64,64,64,1,24,24,24,24,97,97,36,36,36,36,44,44,52,52,52,52,124,124,42,130,30,130,36,36,112,68,50,50,24,24,97,97,52,52,24,24,24,24,32,32,32,32,40,40,40,40,52,52,52,52,58,58,58,58,64,64,64,64,60,60,62,62,72,72,38,38,50,30,139,139,74,74,24,24,32,32,52,52,52,52,52,52,52,52,72,72,46,50,62,42,142,145,24,28,28,46,62,60,74,148,148,26,64,66,32,32,42,42,56,56,58,58,72,72,24,24,24,26,52,28,30,30,32,1,1,32,32,32,32,42,36,36,36,36,64,72,38,38,40,40,40,46,46,46,153,68,68,48,50,50,50,52,109,52,34,58,58,58,58,58,58,58,58,58,60,60,42,60,60,62,62,64,64,66,1,68,72,72,74,74,74,74,1,1,1,28,1,26,32,36,38,42,44,46,56,1,1,130,130,130,127,127,156,159,162,153,165,1,38,38,44,38,42,58,58,58,58,68,72,1,1,1,1,1,1,1,1,1,1,1,1,66,1,66,1,2,2,2,2,1,2,2,2,2,1,1,1,66,1,2,66,2,1,2,1,1,58,70,36,46,60,70,1,168,179,184,188,193,203,207,66,1,1,212,217,220,225,231,236,236,236,243,249,256,262,256,262,266,266,220,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,272,272,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,272,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,24,32,40,52,64,28,30,38,48,58,62,66,70,278,278,283,283,1,2,289,289,0,0,1,0,0,0,1,0,0,0,0,0,1,1,24,2,32,32,40,0,52,0,64,52,40,24,26,36,30,32,74,32,100,40,44,46,48,50,300,52,54,58,0,60,62,64,303,306,76,52,40,64,24,32,32,40,64,24,26,36,30,32,74,32,100,40,44,46,48,50,70,52,54,58,60,60,62,64,303,306,76,52,40,64,52,64,52,0,26,100,64,64,64,303,54,2,309,309,315,315,68,68,56,56,318,318,121,121,34,34,306,306,38,38,36,36,321,321,324,324,44,58,28,42,0,0,0,327,327,0,331,331,0,0,0,0,335,338,341,344,335,130,40,347,42,133,136,350,354,40,64,357,24,26,66,36,30,335,124,74,40,40,44,46,48,50,52,54,58,60,62,64,34,306,127,321,121,361,366,72,1,32,371,374,24,26,66,36,30,335,124,74,40,40,44,46,48,50,52,54,58,60,62,64,34,306,127,321,121,361,366,72,1,32,371,374,335,338,341,344,335,130,40,347,42,133,136,350,354,40,64,357,52,52,32,32,335,335,32,32,335,335,52,52,338,338,300,300,76,76,34,34,72,72,72,72,64,64,52,52,52,52,380,380,56,56,383,1,1,1,1,0,388,395,40,40,1,1,58,58,36,36,36,36,36,36,124,124,74,74,44,44,44,44,44,44,44,44,50,50,106,106,54,54,306,306,60,60,62,62,64,64,64,64,306,306,403,403,321,321,321,321,38,38,321,321,321,321,1,124,124,44,44,407,407,50,50,410,410,321,321,413,413,416,24,24,24,24,97,97,335,335,1,1,1,1,124,124,74,74,130,130,40,40,40,40,52,52,52,52,52,52,32,32,64,64,64,64,64,64,321,321,425,425,72,72,425,425,429,429,429,429,432,432,435,435,439,439,443,443,448,448,452,452,456,456,460,460,464,464,407,407,467,467,471,471,475,475,479,479,482,482,485,485,407,407,410,410,0,0,0,0,0,0,0,0,0,0,0,0,0,24,26,36,30,32,74,32,32,62,124,40,46,306,127,44,38,130,377,321,48,72,50,121,52,321,54,42,491,60,66,62,58,127,68,54,44,52,34,0,0,220,0,0,0,0,0,0,0,24,26,36,30,32,74,32,32,62,124,40,46,306,127,44,38,130,377,321,48,72,50,121,52,321,54,42,491,60,66,62,58,127,68,54,44,52,34,494,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,24,52,40,32,32,24,24,52,0,64,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,497,26,36,30,38,66,74,306,62,72,44,44,46,48,48,50,50,60,502,54,54,127,127,56,58,121,62,0,0,0,0,0,66,507,40,0,0,0,0,0,0,0,0,0,0,0,0,0,0,510,0,516,0,0,0,0,0,0,0,0,0,0,0,522,528,540,547,559,564,0,497,0,0,0,0,0,0,0,0,0,0,574,24,497,68,497,72,497,26,580,62,100,42,38,306,30,584,58,74,60,121,60,30,62,74,587,36,591,591,597,597,597,0,34,56,44,46,48,50,38,68,497,72,603,606,609,24,64,40,68,0,0,0,0,0,0,0,0,66,612,618,0,0,0,0,6,8,10,12,14,16,18,20,22,0,0,0,0,622,626,497,497,497,497,179,179,179,64,179,630,633,26,62,62,54,100,637,640,38,644,647,38,321,650,654,30,30,657,584,660,30,30,30,664,58,58,58,58,58,58,42,58,60,60,60,60,60,62,377,34,34,34,66,34,303,56,56,306,44,44,44,106,44,36,36,50,36,36,36,46,46,46,46,50,50,50,50,50,38,321,667,38,38,580,68,109,109,64,670,670,68,66,72,72,72,68,32,673,72,72,0,97,677,626,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,681,685,0,6,8,10,12,14,16,18,20,22,121,30,377,689,689,696,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,700,700,26,36,36,30,30,38,68,74,38,62,62,72,706,44,46,48,50,60,60,32,54,54,60,56,58,121,62,709,709,709,24,24,24,24,24,24,32,32,32,32,40,40,64,64,64,52,0,0,0,0,0,70,56,0,0,0,0,0,0,717,717,717,622,622,622,622,622,622,622,640,640,681,681,685,725,587,587,587,730,730,591,591,591,734,734,739,739,739,744,685,685,725,640,640,725,685,640,497,497,597,597,597,748,748,673,673,640,725,725,752,38,121,50,58,26,46,44,756,66,48,34,584,100,46,36,644,60,30,74,62,72,54,42,321,630,762,306,100,74,121,60,30,62,74,765,377,56,68,24,770,40,773,64,776,32,779,52,782,0,785,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,8,10,12,14,16,18,20,22,24,773,40,32,64,776,52,789,50,800,803,806,809,812,816,819,822,826,829,833,836,839,842,845,848,842,429,852,855,848,858,858,858,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,863,875,884,24,24,770,40,892,64,895,58,46,898,32,32,905,898,52,52,908,836,911,915,918,922,926,812,809,929,848,933,937,942,946,951,806,955,816,959,842,963,803,968,800,972,845,855,819,822,839,976,980,985,988,992,826,429,0,0,996,1002,770,40,892,64,895,58,664,898,32,32,905,898,52,52,908,1011,0,0,0,1018,1025,0,0,0,0,0,479,1034,1039,1044,1047,471,833,1053,664,1057,46,1057,0,0,0,6,8,10,12,14,16,18,20,22,0,179,898,0,0,0,0,0,0,0,0,1060,1064,148,1068,1073,0,863,875,884,0,24,770,40,892,64,895,58,46,0,0,32,905,0,0,52,908,836,911,915,918,922,926,812,809,929,848,933,937,942,946,951,806,955,816,959,842,0,803,968,800,972,845,855,819,0,839,0,0,0,988,992,826,429,0,0,996,1002,770,40,892,64,895,58,664,0,0,32,905,0,0,52,908,1011,1077,0,0,0,0,0,0,0,0,0,0,0,0,0,822,471,0,1053,664,1057,46,1057,0,0,0,6,8,10,12,14,16,18,20,22,819,819,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,50,50,38,0,24,770,40,892,64,895,58,46,410,32,32,905,1084,52,52,908,44,306,36,377,106,28,321,42,1087,644,630,633,654,660,1090,62,100,30,584,50,1093,54,303,26,637,48,72,58,664,46,46,1097,66,121,79,60,38,0,0,996,0,770,40,892,64,895,58,664,410,32,32,905,1084,52,52,908,1011,0,0,1101,1105,0,0,0,0,0,0,56,1111,1115,74,1119,491,34,1124,664,1057,46,1057,0,0,0,6,8,10,12,14,16,18,20,22,0,0,0,0,0,1127,0,0,0,0,0,0,0,0,0,0,0,50,50,38,0,24,770,40,892,64,895,58,664,0,0,32,905,0,0,52,908,44,306,36,377,106,28,321,42,1087,644,630,633,654,660,1090,62,100,30,584,50,0,54,303,26,637,48,72,58,0,46,976,0,985,121,79,60,38,0,0,996,1002,770,40,892,64,895,58,664,898,0,32,905,898,0,52,908,1011,0,0,0,0,0,0,0,0,0,0,0,0,0,0,664,491,0,1124,664,1057,46,1057,0,0,0,6,8,10,12,14,16,18,20,22,58,58,1134,1134,0,0,0,0,0,0,0,0,0,0,0,0,0,863,50,884,0,24,770,40,892,64,895,58,46,0,0,773,905,0,0,776,908,44,306,36,377,106,28,321,42,1087,644,630,633,654,660,1090,62,100,30,584,50,0,54,303,26,1137,48,72,58,0,46,1057,0,66,121,992,60,38,0,0,996,1002,770,40,892,64,895,58,664,0,0,773,905,0,0,776,908,1011,0,0,0,0,0,0,0,0,0,0,0,1111,1115,74,664,471,34,1053,664,1057,46,1057,0,0,0,6,8,10,12,14,16,18,20,22,50,38,0,0,1140,0,0,0,0,0,0,0,0,0,0,0,0,50,50,38,0,24,770,40,892,64,895,58,0,410,32,32,905,1084,52,52,908,44,306,36,377,106,28,321,42,1087,644,630,633,654,660,1090,62,100,30,584,50,963,54,303,26,637,48,855,58,822,46,1057,980,66,121,79,60,38,0,0,0,0,770,40,892,64,895,58,664,410,32,32,905,1084,52,52,908,1011,0,0,1101,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,664,0,0,0,0,0,0,6,8,10,12,14,16,18,20,22,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,50,50,38,0,24,770,40,892,64,895,58,46,0,32,32,905,0,52,52,908,44,306,36,377,106,28,321,42,1087,644,630,633,654,660,1090,62,100,30,584,50,0,54,303,26,637,48,72,58,822,46,1057,0,985,121,79,60,38,0,0,0,1002,770,40,892,64,895,58,664,0,32,32,905,0,52,52,908,1011,0,0,0,0,0,0,0,0,0,0,1144,1148,0,0,664,491,0,1124,664,1057,46,1057,0,0,0,6,8,10,12,14,16,18,20,22,0,0,0,0,0,0,0,0,0,6,8,10,6,8,10,1152,0,0,50,38,0,24,770,40,892,64,895,58,46,0,32,773,905,0,52,776,908,44,911,915,918,106,28,812,42,929,644,630,937,942,946,1090,62,955,816,959,50,1093,54,968,800,972,48,72,58,664,46,1057,1097,66,988,79,60,38,0,0,996,1002,770,40,892,64,895,58,664,0,32,773,905,0,52,776,908,1011,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,833,0,664,1057,46,1057,0,0,0,6,8,10,12,14,16,18,20,22,0,1158,1170,0,0,0,0,0,0,0,0,0,0,0,0,0,0,50,50,38,0,24,770,40,892,64,895,58,46,0,32,773,905,0,52,776,908,44,306,36,377,106,28,321,42,1087,644,630,633,654,660,1090,62,100,30,584,50,0,54,303,26,637,48,72,58,664,46,1057,980,66,121,79,60,38,0,0,0,1002,770,40,892,64,895,58,664,0,32,773,905,0,52,776,908,1011,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,664,1057,46,1057,0,0,0,6,8,10,12,14,16,18,20,22,0,0,0,0,0,0,0,0,0,0,1182,1182,1182,1182,1182,1182,0,0,50,38,0,24,770,40,892,64,895,58,46,1189,32,773,905,1198,52,776,908,44,306,36,377,106,28,321,42,1087,644,630,633,654,660,1090,62,100,30,584,50,1205,54,303,26,637,48,72,58,664,46,1057,1205,66,121,79,60,38,1216,1224,0,1232,770,40,892,64,895,58,664,1240,32,773,905,0,52,776,908,0,0,1250,1261,1267,1261,1267,1261,0,1267,0,1272,1285,1267,1293,1285,1285,1097,1299,664,1057,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1267,1267,0,0,0,0,0,0,0,0,0,0,0,0,0,1311,50,38,1314,24,770,40,892,64,895,58,46,1318,32,773,905,1321,52,776,908,44,306,36,377,106,28,321,42,1087,644,630,633,654,660,1090,62,100,30,584,50,1325,54,303,26,637,48,72,58,664,46,1057,1097,66,121,79,60,38,1328,0,0,0,770,40,892,64,895,58,905,1336,32,773,905,1348,52,776,908,1352,1361,1370,0,6,8,10,12,14,16,18,20,22,1378,1389,0,0,0,0,664,1057,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1311,50,38,1314,24,770,97,1396,40,892,64,895,58,664,46,1057,32,773,905,52,776,908,1321,0,1400,44,306,36,377,106,1403,28,321,42,1087,644,1407,1411,630,633,654,660,1090,1415,62,100,30,584,50,770,1420,54,303,26,637,48,1423,72,58,1426,46,0,0,66,121,79,60,38,1057,34,0,0,0,0,0,0,0,0,770,97,1396,40,892,64,14,895,18,58,32,773,905,52,776,908,46,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,664,1057,0,0,0,0,0,0,0,0,0,0,0,0,1429,44,306,306,306,306,306,106,650,321,321,321,321,72,30,62,100,100,100,50,30,62,100,100,100,50,26,54,303,34,303,34,303,48,72,58,58,46,46,68,60,60,60,38,46,1432,38,1432,24,24,770,1437,40,892,1440,1443,64,895,0,0,0,0,1447,637,32,97,52,905,905,1451,812,809,0,848,933,937,942,48,951,806,955,816,959,842,803,968,800,972,845,1144,1454,1148,1459,852,1464,1044,1468,855,819,839,988,992,826,429,24,1471,1476,1487,822,0,0,0,0,770,40,892,64,895,58,664,46,1057,32,773,52,776,1491,1496,40,44,306,1501,306,0,1505,106,321,1509,60,1514,0,644,0,0,836,911,915,918,30,38,100,100,0,50,26,54,303,34,303,34,955,48,72,58,803,46,800,68,845,1144,60,38,1459,852,1464,1044,24,855,770,1437,40,892,72,1124,64,895,1476,52,46,644,0,0,32,1518,52,1521,905,0,0,0,0,0,0,0,0,48,1524,1524,0,0,0,0,0,0,0,0,0,0,0,0,1529,1532,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1101,911,915,918,922,926,812,809,929,848,1535,933,937,942,946,951,806,955,816,959,842,803,968,800,972,845,855,819,839,852,826,429,976,24,1540,40,892,64,895,32,1545,52,908,1549,770,40,892,64,895,32,905,1545,1545,32,875,618,884,1011,1554,1559,1559,1559,1559,1566,44,306,36,377,106,28,321,42,20,644,630,633,654,660,1090,62,100,30,584,50,54,303,26,637,48,127,350,130,357,68,124,74,1545,72,58,46,121,1572,60,38,24,1576,58,1580,1580,1580,1588,1588,1588,770,40,892,64,895,58,664,46,1057,32,773,52,776,48,38,40,892,1540,1540,1540,1540,1540,1540,1540,1540,1540,1540,1540,1540,1596,1596,44,306,36,377,106,28,321,42,20,644,630,633,654,660,1090,62,100,30,584,50,54,303,26,637,48,127,350,130,357,68,124,74,1602,72,58,46,121,79,60,38,24,1576,68,72,58,1606,70,1611,1616,1620,1623,482,1627,1631,0,0,0,0,0,0,0,0,0,0,603,1635,1639,1643,410,1647,1651,1655,609,1659,1663,1667,1671,1084,1675,1679,1602,331,1684,606,1688,1693,1698,1703,1707,1712,1717,1721,1725,1606,1729,1611,1616,1620,1623,482,1627,1631,1733,1736,1739,1639,587,0,1745,0,0,0,44,306,36,377,106,28,321,42,1087,644,1754,630,633,654,660,1090,630,100,30,584,50,54,303,26,637,48,72,58,46,68,60,38,1057,24,0,40,892,64,895,32,0,52,908,0,770,40,892,64,895,32,905,0,0,0,50,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,50,58,46,32,121,79,58,664,46,1057,58,664,46,1057,0,0,0,0,0,0,1758,24,97,855,475,1765,32,1768,1772,52,852,1775,109,1318,64,1779,482,1783,670,1786,347,40,1789,1793,1797,1802,1808,1813,1818,1824,1830,1836,1841,1845,1850,1854,1858,1864,1871,1878,1883,1888,1892,1897,1905,1910,1914,1919,1925,1930,1937,1943,1948,1953,1958,1964,1969,1973,1978,1982,1986,1991,1999,2005,24,26,36,30,32,66,74,62,40,44,46,48,50,52,54,124,58,60,62,64,54,44,36,56,121,321,28,74,28,321,70,42,38,32,72,68,2014,109,2017,2030,2041,2055,2069,2083,2096,2114,2126,2139,24,26,36,30,32,66,74,62,40,44,46,48,50,52,54,124,58,60,62,64,54,44,36,56,121,321,28,74,28,321,70,42,38,32,72,68,2014,109,34,2158,2170,2182,0,0,0,0,0,0,36,2194,50,30,654,58,48,26,1137,60,79,2197,42,2201,28,44,62,54,38,106,1090,1420,2204,2207,2210,664,491,2210,1423,2213,2216,2219,2222,2226,2229,2233,2237,2241,2245,2249,2252,2255,2258,2219,2261,2265,2268,2271,2274,2277,2280,2283,2287,60,2291,2294,2297,315,318,121,2300,2305,327,2309,74,36,30,48,26,60,74,2314,42,28,62,54,50,42,0,0,2318,2322,2326,321,2329,2334,2338,2341,762,56,2344,2349,2355,2361,0,0,800,24,97,855,475,1765,32,1768,1772,52,852,1775,109,1318,64,1779,482,1783,670,1786,347,40,1789,1793,1797,1802,1808,1813,1818,1824,1830,1836,1841,1845,1850,1854,1858,1864,1871,1878,1883,1888,1892,1897,1905,1910,1914,1919,1925,1930,1937,1943,1948,1953,1958,1964,1969,1973,1978,1982,1986,1982,64,2366,1910,2371,895,770,773,32,52,852,36,2194,2375,50,136,2378,30,46,2381,2384,2387,162,2390,2393,2396,48,26,2226,60,79,106,42,28,44,62,54,38,2399,2402,106,1420,2406,2409,2412,2207,2415,2418,2422,2425,2428,1057,2432,2436,2440,2444,2448,2452,153,2456,2459,2462,2465,1423,2468,2471,2475,2478,2481,2213,2484,2258,303,2341,2265,2271,2487,2280,74,36,79,1318,306,50,2406,2409,2338,2341,1529,2490,1532,2493,56,2496,2500,2505,2510,2514,2518,429,2523,2526,2529,2533,1620,2537,2540,839,2544,2547,2197,2550,2554,1426,2557,2561,2565,2569,2573,2578,2583,2587,2591,845,2596,2599,2602,2606,2610,2613,2616,2222,2620,2624,2628,2633,2638,2642,2646,819,2651,2654,2657,2661,2665,2668,2671,826,2675,2678,2681,2685,2689,1325,2692,988,2696,2700,2704,2300,2305,327,2309,479,2709,2712,2715,2719,2723,2726,2729,2734,2738,2741,2745,2750,2755,2759,2762,2318,2322,2766,2770,2329,2334,2775,2779,2783,2788,2344,2349,2355,2361,0,0,800,2792,2795,2798,2802,2806,2809,2812,985,2816,2819,2822,2826,2830,2833,2836,806,2840,324,2843,2847,2851,2854,2857,926,2861,2864,2867,2871,2875,2878,2881,2885,2888,2891,2894,2898,2902,2905,2908,2912,2916,2920,2924,2929,2934,2938,2943,842,2947,2950,785,2953,2957,1400,2960,848,2964,2968,2972,2977,2982,2986,2990,24,32,40,52,64,66,915,836,836,2995,2998,3001,3005,3009,1311,2526,3012,2523,3016,3020,3025,3030,1426,2544,3034,3038,3042,3046,3051,3056,3060,3064,3068,2957,3073,3078,3084,3090,3095,3099,852,3103,1783,3106,3110,482,3114,2678,1325,2675,3117,816,806,432,2851,3120,1044,3123,3126,3129,3133,464,3137,3140,1464,3144,3148,3152,3157,3162,3166,3170,855,670,347,3175,3179,1772,1318,855,816,3183,3120,3186,3190,432,3194,3197,942,3201,2496,2500,2505,2510,2514,2518,809,3205,3208,3211,3215,3219,3222,2540,915,3225,3228,3231,3235,3239,3242,0,3245,0,3249,3253,3258,3263,0,0,1060,3267,3271,3275,3280,3285,3289,0,955,3293,3297,3301,3306,3311,1321,3315,812,3320,3324,3328,3333,3338,3342,3346,968,3351,3355,3359,3364,3369,3373,3377,1144,3382,3386,3390,3395,3400,3404,3408,3413,3417,3421,3425,3430,3435,3439,0,833,2738,1733,3443,3447,3451,2759,2762,803,3454,3457,3460,3464,3468,3471,2779,3474,2788,3478,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,24,32,40,52,64,66,915,836,3239,3228,3242,3225,3482,429,1620,2526,2537,2523,112,839,2554,2547,1426,2544,3485,845,2610,2599,2613,2596,842,3064,3488,2957,2950,1400,2947,3492,3095,3099,3495,3499,3503,3507,826,60,2689,2678,1325,2675,3117,816,806,432,2851,3120,324,3194,3183,3511,3514,3518,3522,3526,3530,3534,3538,1144,3400,3386,3404,3382,3542,852,482,1783,3114,3103,3546,855,1772,347,1318,670,3549,0,0,0,0,0,0,0,0,0,0,0,0,32,3552,40,892,52,776,776,773,40,24,770,482,482,1783,1783,3556,3556,3114,3114,3560,3560,3560,852,852,3106,3106,3106,905,68,0,62,44,121,60,50,68,50,0,68,28,0,46,410,609,1084,603,3468,3564,3457,3569,3471,3573,3573,2533,2526,803,3460,2943,2943,3577,3577,3581,3581,3586,3586,3590,3590,2779,2779,3595,3595,3595,54,54,38,2851,3600,324,3605,2854,3609,3609,3190,3120,806,2843,3613,3613,3617,3617,3621,3621,3626,3626,3630,3630,2857,2857,3635,3635,3635,62,3640,3644,3648,933,3009,3652,2998,3657,1311,3661,3661,836,3001,3030,3030,3016,3016,3665,3665,3670,3670,3674,3674,3012,3012,3020,3020,3020,44,3679,3682,3686,3690,3694,2875,3698,2864,3703,2878,3707,3707,926,2867,3711,3711,3715,3715,3719,3719,3724,3724,3728,3728,2881,2881,3733,3733,3733,28,100,2610,3738,2599,3743,2613,3747,3747,845,2602,3751,3751,3755,3755,3759,3759,3764,3764,3768,3768,2616,2616,3773,3773,3773,48,48,2481,48,48,2957,3778,2950,3783,1400,3787,3787,842,785,3791,3791,2960,2960,3795,3795,3795,50,106,2378,2554,3800,2547,3805,1426,3809,3809,839,2197,3813,3813,3817,3817,3821,3821,3826,3826,3830,3830,2557,2557,3835,3835,46,46,46,2689,3840,2678,3845,1325,3849,3849,826,2681,3853,3853,3857,3857,3861,3861,3866,3866,3870,3870,2692,2692,3875,3875,3875,60,60,3880,60,2297,3883,3880,3887,3892,3897,3902,2305,2700,3907,327,3912,988,2704,3917,3917,3922,3922,3927,3927,3933,3933,3938,3938,2309,2309,3944,3944,121,1772,3950,347,3955,1318,3959,3959,855,3175,3963,3963,3967,3967,3971,3971,3976,3976,3980,3980,3985,3985,3989,3989,3989,72,72,72,347,2665,2665,2554,3994,2654,3999,2668,4003,1426,819,2657,839,4007,4007,58,58,58,3451,4012,1733,4017,2759,4021,833,3443,4025,4025,34,3311,3311,3297,3297,4030,4030,1321,4035,955,3301,4040,4040,100,4046,4051,4056,937,633,4061,4065,4069,4073,1620,2526,4077,2537,4081,429,2529,38,38,4085,4088,2712,4093,2726,4097,479,2715,56,4101,4106,4111,4116,2665,2654,2668,819,4121,4127,4131,4136,4140,922,4145,106,1403,2305,2700,327,988,3311,3297,1321,955,100,4150,4154,4159,4163,467,4168,2396,3311,3297,4030,1321,4035,955,3301,100,26,32,40,52,24,482,1783,3114,852,2957,2950,1400,842,3009,2998,1311,836,1620,2526,2537,429,4173,4177,425,4181,4186,918,2651,2668,2665,2661,2654,819,3103,3114,482,3110,1783,852,4190,4194,4198,4202,4207,4211,3293,1321,3311,3306,3297,955,4215,3648,3640,4219,3644,933,3454,3471,3468,3464,3457,803,54,3225,3242,3239,3235,3228,915,4224,1314,4228,4232,4237,911,4241,4245,4249,4253,4258,1487,4262,2947,1400,2957,2953,2950,842,2596,2613,2610,2606,2599,845,670,1318,1772,3179,347,855,3205,3205,3222,3219,3215,3208,3208,809,4265,4269,4273,4277,4282,1064,2544,1426,2554,2550,2547,839,4286,4290,4294,4298,4303,3514,4307,4159,4311,4315,4150,467,4320,4111,4101,4325,4106,4116,3534,3530,3522,4331,3526,3518,3123,3137,464,3133,3126,1044,74,74,4336,4340,4344,4348,4353,1148,2675,1325,2689,2685,2678,826,2696,327,2305,2300,2700,988,121,3382,3404,3400,3395,3386,1144,3320,3342,3338,3333,3324,812,4357,4362,4367,4372,4378,4383,70,839,4388,4392,4397,4402,4408,4413,4419,4424,0,0,0,0,0,0,0,0,0,836,26,46,34,60,50,38,30,62,28,56,48,36,106,74,58,24,52,64,32,40,321,100,303,54,70,54,1426,2833,988,4430,826,34,66,64,118,72,68,100,100,24,52,4434,97,52,52,52,109,1084,58,44,28,44,36,106,36,36,68,38,38,38,38,50,50,50,40,32,42,36,97,24,1765,54,74,60,60,60,28,74,62,62,30,26,26,54,54,32,48,48,48,46,46,106,106,30,52,4437,4441,2709,2709,2709,60,118,118,118,56,70,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,4445,0,0,0,0,0,0,0,0,0,6,8,10,12,14,16,18,20,22,0,0,0,0,0,0,24,32,40,52,64,109,1440,773,842,4454,800,803,479,915,845,839,826,988,806,816,812,809,855,819,852,833,836,911,1144,1044,2529,4458,467,3148,3324,4462,4462,4462,4462,4462,4462,4462,4462,4462,4462,4462,4462,4462,4462,4462,4462,4462,4462,4462,4462,4462,4462,4462,4462,4462,4462,4467,4467,4467,4467,4467,4467,4467,4467,4467,4467,4467,4467,4467,4467,4467,4467,4467,4467,4467,4467,4467,4467,4472,4472,4472,4472,4472,0,0,0,0,0,0,0,0,44,306,36,377,106,28,321,42,1087,644,62,633,30,660,1090,62,100,30,584,50,54,303,26,637,48,72,58,46,66,121,79,60,38,46,56,24,770,40,892,64,4479,895,4482,4486,4489,4493,4496,32,905,776,776,908,24,770,770,40,892,72,1124,64,895,4500,109,855,335,32,97,905,776,908,48,38,24,0,0,0,58,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4503,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,836,911,915,918,922,926,812,809,929,4506,806,955,816,959,842,803,968,800,972,845,855,819,839,852,988,992,826,429,0,0,0,24,40,64,773,905,776,908,32,52,855,819,852,0,0,0,0,836,922,875,806,842,803,845,819,839,4510,4520,4530,0,0,0,0,3809,0,0,0,0,0,0,6,8,10,12,14,16,18,20,22,836,2885,922,1144,826,855,806,955,839,803,968,845,833,985,429,479,911,1454,842,24,40,773,4535,64,776,52,1440,32,4538,905,0,0,4542,4542,4542,4542,4542,0,0,0,0,0,0,0,0,0,0,0,179,479,179,179,179,836,2885,922,179,179,179,1144,826,855,179,179,179,806,955,842,179,179,179,803,968,845,179,179,179,833,985,839,179,179,179,429,816,800,179,179,4548,4552,0,0,0,0,0,0,4556,770,892,64,895,32,97,52,782,1440,1521,4562,4566,507,4569,4573,4577,4580,4580,4580,4580,4580,4580,4580,0,0,0,0,0,0,0,0,0,6,8,10,12,14,16,18,20,22,0,0,0,0,4586,4590,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,836,915,922,4595,803,800,845,4600,806,816,842,4604,926,809,848,4608,855,819,839,985,826,24,429,40,64,32,52,97,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4613,4613,4617,4623,4630,4636,4636,4642,4642,4648,4648,819,819,839,839,4654,4660,4667,4667,836,836,915,915,922,926,926,809,809,848,806,806,816,816,842,806,806,816,816,842,803,803,800,800,845,855,819,839,852,826,826,826,429,4673,4681,4613,4613,4688,4688,819,819,839,839,4693,4693,4693,4693,4700,4700,0,752,4706,4711,4716,2830,4719,4723,0,0,0,0,0,6,8,10,12,14,16,18,20,22,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4730,4739,4749,24,40,64,97,52,32,1786,836,479,915,922,926,809,1044,848,806,816,842,803,833,985,800,845,855,819,839,852,826,2885,429,4759,4769,4778,4786,4795,4803,4814,4823,4831,4842,0,0,0,911,4850,0,6,8,10,12,14,16,18,20,22,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,836,4854,911,915,4858,922,926,812,809,848,806,955,816,842,803,4862,968,833,4866,800,4870,845,4874,1144,1454,1148,855,819,839,429,4878,985,826,988,852,24,855,819,770,40,52,776,64,895,32,44,48,46,50,54,58,62,4882,4890,4895,996,0,0,0,0,0,0,0,0,0,6,8,10,12,14,16,18,20,22,0,0,0,933,937,942,0,6,8,10,12,14,16,18,20,22,839,4899,4902,4454,4905,2197,4908,4912,4916,4920,2547,4924,4927,4930,4934,2544,4937,4940,4943,4566,2554,4947,4950,410,4954,1426,4958,4962,4965,4968,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4971,4971,97,4971,4971,4971,4971,4971,4979,40,4971,4971,4971,4971,4971,4971,4971,4984,4984,4984,109,4971,4993,4997,4971,4971,4971,4971,4971,4984,4984,4984,4971,4971,4971,4971,5004,587,4971,4971,4971,4971,4971,4971,4971,4971,4971,4971,4971,4971,4971,4971,4971,4971,4971,4971,4971,4971,4971,4971,4971,4971,4971,4971,4971,4971,4971,24,5011,5018,5011,26,30,32,5024,4979,5011,36,5011,44,48,5030,52,4979,4993,4997,54,62,64,4984,5011,66,587,5034,5039,5045,5039,3324,40,58,64,66,5034,5051,5057,3355,3324,1440,26,30,34,48,50,54,58,58,60,62,74,36,5061,5070,100,40,5078,54,64,5083,26,30,34,36,44,46,48,50,54,58,60,5091,66,70,74,24,5018,30,32,32,4979,5024,40,52,5091,64,5095,5011,28,28,5099,5103,34,5112,5120,5011,40,5078,4971,4971,42,46,46,4971,48,5011,50,50,4971,5127,3355,60,5091,62,64,5083,4971,66,5011,74,74,74,5095,5134,0,0,0,0,0,0,0,0,0,0,58,0,0,0,0,0,0,0,0,5140,97,1451,5150,28,5070,5099,36,4971,44,46,4971,4971,50,4971,4971,58,60,60,74,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,24,24,26,26,26,26,26,26,28,28,30,30,30,30,30,30,30,30,30,30,32,32,32,32,32,32,32,32,32,32,34,34,24,32,40,52,64,52,64,773,50,106,26,54,56,36,48,46,60,121,62,30,321,42,72,58,68,34,44,911,127,74,38,5153,2396,124,321,48,32,40,52,64,52,64,106,26,54,56,36,48,62,30,321,42,127,72,68,44,36,38,5156,644,130,32,40,4577,64,64,106,44,36,38,54,121,62,30,42,34,36,38,127,74,58,321,124,40,44,58,34,124,64,64,64,64,66,66,66,66,68,38,70,68,48,68,68,24,40,44,106,28,630,633,654,1090,62,30,54,303,79,124,74,24,62,124,377,106,28,1087,933,660,62,584,79,5159,124,74,64,72,637,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,40,40,40,40,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,64,64,64,64,64,64,64,64,64,64,64,64,64,64,72,72,72,72,72,72,72,72,5162,5162,5162,5162,72,72,5018,5018,5018,5018,5018,5018,5018,5018,5018,5018,5018,5018,5018,5018,5018,5018,5175,5175,5175,5175,5175,5175,0,0,5175,5175,5175,5175,5175,5175,0,0,5183,5183,5183,5183,5183,5183,5183,5183,5183,5183,5183,5183,5183,5183,5183,5183,5078,5078,5078,5078,5078,5078,5078,5078,5078,5078,5078,5078,5078,5078,5078,5078,5187,5187,5187,5187,5187,5187,0,0,5187,5187,5187,5187,5187,5187,0,0,5083,5083,5083,5083,5083,5083,5083,5083,0,5083,0,5083,0,5083,0,5083,5195,5195,5195,5195,5195,5195,5195,5195,5195,5195,5195,5195,5195,5195,5195,5195,5018,5018,5175,5175,5183,5183,5078,5078,5187,5187,5083,5083,5195,5195,0,0,5018,5018,5018,5018,5018,5018,5018,5018,5018,5018,5018,5018,5018,5018,5018,5018,5183,5183,5183,5183,5183,5183,5183,5183,5183,5183,5183,5183,5183,5183,5183,5183,5195,5195,5195,5195,5195,5195,5195,5195,5195,5195,5195,5195,5195,5195,5195,5195,5018,5018,5018,5018,5018,0,5018,5018,5018,5018,5018,5018,5018,0,0,0,0,0,5183,5183,5183,0,5183,5183,5175,5175,5183,5183,5183,0,0,0,5078,5078,5078,5078,0,0,5078,5078,5078,5078,5078,5078,0,0,0,0,5083,5083,5083,5083,5057,5057,5083,5083,5083,5083,5083,5083,5057,0,0,0,0,0,5195,5195,5195,0,5195,5195,5187,5187,5195,5195,5195,0,0,0,5201,0,2,2,2,2,5205,2,2,5209,5213,2,2,2,2,2,2,2,2,2,2,0,0,0,5218,1,1,1,1,1,1,1,1,1,1,1,0,0,0,2,0,0,5224,0,0,0,0,2,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,5230,0,0,2,0,0,0,0,0,0,5234,0,1,1,0,0,5237,0,0,5241,0,0,0,0,0,0,5248,0,0,0,5255,2,2,0,0,0,0,0,0,0,0,0,0,5261,0,0,5267,5267,5274,40,0,5280,0,0,0,0,0,0,0,5285,0,0,0,50,0,0,0,0,0,0,0,0,0,0,5291,0,0,0,0,0,24,32,52,70,5024,0,0,0,0,0,0,0,0,0,5296,0,0,0,0,0,0,0,0,5301,0,0,0,0,0,0,0,0,0,5305,0,5309,0,0,0,5314,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5320,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5325,0,0,0,0,0,0,0,0,0,0,0,0,0,5329,0,0,0,0,0,0,0,0,0,0,4971,5333,0,0,0,4971,0,0,0,0,2,0,0,0,0,0,4971,0,0,0,0,5337,2,0,0,0,0,0,4971,5078,0,0,0,4971,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5342,0,0,5347,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5352,0,0,0,0,0,0,0,0,0,0,5358,0,0,0,0,0,0,0,0,0,0,5325,0,0,0,0,0,0,0,5362,0,0,0,0,0,0,0,0,28,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5367,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5372,0,0,0,0,0,0,0,0,0,5320,0,0,0,0,5377,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5381,0,0,0,0,0,0,0,5386,0,0,0,0,0,0,0,0,0,5391,0,0,0,0,0,0,0,0,0,5396,5401,5401,0,0,0,5407,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5413,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5419,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5426,5386,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5248,0,0,5437,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5442,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5448,0,0,0,0,0,0,0,0,0,0,0,0,0,5453,5459,0,0,0,0,0,0,0,5453,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5248,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5464,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5471,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5476,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5325,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,24,24,26,26,26,26,26,26,28,28,30,30,30,30,30,30,30,30,30,30,32,32,32,32,32,32,32,32,32,32,34,34,36,36,38,38,38,38,38,38,38,38,38,38,40,40,40,40,44,44,44,44,44,44,46,46,46,46,46,46,46,46,48,48,48,48,48,48,50,50,50,50,50,50,50,50,52,52,52,52,52,52,52,52,54,54,54,54,58,58,58,58,58,58,58,58,60,60,60,60,60,60,60,60,60,60,62,62,62,62,62,62,62,62,64,64,64,64,64,64,64,64,64,64,66,66,66,66,68,68,68,68,68,68,68,68,68,68,70,70,70,70,72,72,74,74,74,74,74,74,38,62,68,72,24,60,24,26,28,30,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,40,40,40,40,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,64,64,64,64,64,64,64,64,64,64,64,64,64,64,72,72,72,72,72,72,72,72,16,18,20,22,0,0,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,32,32,32,32,32,32,0,0,32,32,32,32,32,32,0,0,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,52,52,52,52,52,52,5386,0,52,52,52,52,52,52,2,5480,64,64,64,64,64,64,64,64,0,64,0,64,0,64,0,64,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,24,24,32,32,32,32,40,40,52,52,64,64,52,52,0,0,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,24,24,24,24,24,0,24,24,24,24,24,24,24,0,40,0,0,0,32,32,32,0,32,32,32,32,32,32,32,0,0,0,40,40,40,40,0,0,40,40,40,40,40,40,0,0,0,0,64,64,64,64,58,58,64,64,64,64,64,64,58,0,0,0,0,0,52,52,52,0,52,52,52,52,52,52,52,0,0,0,5485,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5491,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,5496,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5501,0,0,0,0,0,0,0,0,0,0,5506,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5509,0,5255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5514,0,0,0,5519,50,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5524,0,0,0,0,0,5529,0,0,0,0,0,5534,0,0,0,5540,5544,5547,5550,46,5553,50,5557,1134,68,2406,30,1786,44,62,5561,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5564,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5568,0,5573,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5578,0,0,0,0,5564,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,40,892,5583,5587,66,2819,5590,5594,5599,70,2891,5602,46,28,30,48,40,892,5583,5587,66,2819,5590,5594,5599,70,2891,5602,46,28,30,48,6,30,10,12,14,16,18,20,22,0,6,8,10,12,14,16,18,20,22,0,0,0,0,0,0,0,0,0,0,0,0,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,66,0,0,66,0,0,0,0,0,5606,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5612,0,0,0,0,5617,0,0,0,0,0,0,0,0,0,5622,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5629,0,0,0,0,5291,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5635,0,0,0,5629,0,0,0,0,5642,0,0,0,0,0,0,0,0,0,0,0,0,0,5647,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5651,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5325,5655,0,0,0,0,0,0,0,0,5285,0,0,0,5367,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5661,5661,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5666,0,0,0,0,5671,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,2,0,0,5676,5682,0,0,0,0,5688,0,0,0,0,0,0,0,0,0,0,5693,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5699,0,0,0,0,0,0,5291,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5476,5704,5704,0,0,0,0,0,0,0,0,0,0,0,5708,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5712,0,0,5717,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5721,5721,5721,5721,5721,5721,5721,5721,5721,5721,5721,609,609,0,5721,5721,0,0,609,609,5721,5726,0,609,609,609,0,5464,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5693,0,0,0,0,0,0,0,0,5730,0,0,2,2,0,0,0,0,0,0,0,0,5721,0,0,0,0,0,0,0,0,0,0,5682,5682,5682,0,0,0,5721,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5721,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,272,272,272,272,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,5682,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5735,5739,5744,5749,5757,5763,5769,5777,5783,5790,5795,40,5803,5810,5815,5823,5831,5837,5841,5848,5854,5860,5867,5871,5877,5882,3468,5886,3386,5891,988,5898,5903,5908,5913,670,5921,5921,1318,5925,5933,5925,5937,5942,5950,5958,5969,0,5735,5739,5744,5749,5757,5763,5769,5777,5783,5790,5795,40,5803,5810,5815,5823,5831,5837,5841,5848,5854,5860,5867,5871,5877,5882,3468,5886,3386,5891,988,5898,5903,5908,5913,670,5921,5921,1318,5925,5933,5925,5937,5942,5950,5958,5969,0,46,46,46,54,58,24,62,38,38,44,44,74,74,5018,48,24,0,66,68,68,66,1432,1432,5978,32,58,52,4971,42,4971,0,0,5987,5987,5992,5992,5051,5051,5997,5997,6003,6003,6007,6007,6011,6011,6016,6016,6021,6021,6028,6028,6034,6034,6039,6039,2599,2599,2950,2950,6045,6045,52,52,3457,3457,2668,2668,6049,6049,6054,6054,4500,4500,1733,1733,4237,4237,6058,6058,6062,6062,6066,6066,6076,6076,6080,6080,6066,6066,6066,6066,6080,6080,6076,6076,283,283,6094,6094,6076,6076,6076,6076,6102,6102,6066,6066,6076,6076,6076,6076,6111,6111,6076,6076,6076,6076,6076,6076,6076,6076,6076,6076,6076,6076,6076,6076,6076,6076,6076,6076,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,603,1635,1639,1643,410,1647,1651,1655,609,1659,1663,1667,1671,1084,1675,1679,1602,331,1684,606,1688,1693,1698,1703,1707,1712,1717,1721,1725,1606,1729,1611,1616,1620,1623,482,1627,1631,0,0,0,0,0,0,0,0,0,0,855,6120,6124,6129,6133,6139,6146,6150,6154,6159,6164,6170,6174,6178,6182,6189,6195,6139,6182,6199,3175,6204,6182,6209,6182,347,6213,6218,6182,6226,6230,4506,6182,6182,6234,670,1447,6238,6243,6182,6248,6253,6257,6262,6267,6271,6276,6281,6286,6290,6294,6298,6302,6313,0,0,0,0,0,0,0,0,0,6318,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6332,6336,6340,6344,6348,6353,6357,6361,6365,6369,782,6374,6378,6382,6387,6391,6396,6401,6406,6410,6415,6420,6426,0,0,0,0,0,0,0,0,0,992,6431,6435,6439,6444,6449,4430,0,6453,6457,6461,6465,6470,6475,6479,0,6483,6487,6491,6495,6500,6505,6509,0,6513,6518,6523,6528,6534,6540,6545,0,6550,6554,6558,6562,6567,6572,6576,0,6580,6584,6588,6592,6597,6602,6606,0,6610,6614,6618,6622,6627,6632,6636,0,6640,6644,6648,6652,6657,6662,6666,0,2806,2830,425,432,3162,464,836,407,413,410,52,3468,6670,6673,2851,429,3400,3338,988,6676,5937,6682,24,335,6688,6694,6267,670,6704,6713,5933,6704,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,220,5682,220,5682,6720,6725,6725,6725,6725,6725,6725,6734,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,24,24,40,40,64,64,32,32,52,52,836,915,2998,3228,2995,3225,3009,3239,1311,3242,826,1044,2678,3126,2675,3123,2689,464,1325,3137,806,816,324,3120,2840,2840,3183,2851,432,2854,3194,842,2950,2947,2957,1400,429,800,803,2526,70,3457,2523,2792,3454,1620,2806,3468,2537,2809,3471,845,2599,2596,2610,2613,855,855,670,670,1318,1318,819,2654,2651,2665,2668,852,852,1783,482,3114,50,2816,836,3009,0,0,0,0,0,0,0,0,0,2,24,24,40,40,64,64,32,32,52,52,836,915,2998,3228,2995,3225,3009,3239,1311,3242,826,1044,2678,3126,2675,3123,2689,66,66,66,66,816,324,3120,2840,2840,3183,2851,432,2854,3194,842,2950,2947,2957,1400,429,800,803,2526,2795,3457,2523,2792,3454,1620,2806,3468,2537,2809,3471,845,2599,2596,2610,2613,855,855,670,670,1318,1318,819,2654,2651,2665,2668,852,52,1783,482,3114,50,2816,836,3009,985,2819,2830,2833,0,0,0,0,0,0,0,0,0,0,26,54,48,34,30,62,50,46,36,44,38,42,56,70,124,321,121,58,74,28,60,24,52,32,4535,905,1518,908,139,603,410,4454,5030,6670,40,64,371,66,106,6743,4927,0,0,0,6746,6753,6765,6777,6783,6795,6807,6814,6826,6832,6845,6857,6869,6880,6894,6908,6920,6926,6932,6943,6954,6959,6969,6975,6981,6992,7000,7008,7016,7024,24,97,855,475,1765,32,1768,1772,52,852,1775,109,1318,64,1779,482,1783,670,1786,347,40,0,7030,2017,2030,2041,2096,2126,7041,7058,7072,7090,7102,7113,7127,7141,7154,7167,7185,7203,7215,7229,7243,7262,7274,7285,7297,7308,7319,7327,7338,7347,7361,7378,7394,2182,1858,1864,1883,1930,1937,1948,1999,7405,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2792,3126,3208,3225,773,7412,776,7416,4934,7420,7424,4943,7428,7431,7435,7440,1437,1429,7445,7449,54,62,44,38,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2995,2678,2675,2854,2947,429,2526,2523,1620,2537,2596,819,2654,2651,2665,2668,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7454,52,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7460,7467,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,24,0,26,0,44,0,46,0,28,40,34,0,48,60,54,0,32,0,38,0,52,0,58,0,30,42,36,0,50,62,56,0,0,0,0,0,64,0,66,0,0,0,0,0,70,0,0,0,0,0,0,0,74,0,0,0,0,68,0,0,72,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5688,5606,0,0,7473,7478,7482,0,0,0,0,0,7487,0,0,0,0,0,0,0,0,0,7491,0,0,0,0,0,5442,0,0,0,0,7495,0,0,5688,0,0,0,7500,5426,0,7504,7511,7516,7521,5218,7528,5655,5491,7478,7533,0,0,7538,7542,5476,7548,7555,7558,0,0,0,0,5314,7565,5708,7478,7571,0,7576,7582,7588,5476,7592,7599,5666,5386,7605,0,0,0,0,7500,0,0,0,5381,5459,7495,7588,5476,7610,7616,5413,0,0,0,5347,7622,5476,5301,5325,7628,7632,7637,0,0,0,7643,7500,5296,7648,0,7576,0,7653,5237,7658,7663,5296,7667,7538,7672,5629,7675,7681,7687,7628,7692,7696,7700,7706,7710,7715,7653,5629,7719,0,7723,5666,7730,0,0,5296,7734,7738,5320,0,7742,7658,0,7746,7752,7757,7628,7763,7667,5453,5661,5337,0,0,5617,0,5666,5301,0,7632,0,5325,0,0,0,0,7768,0,7774,7779,7786,7790,0,7795,5342,0,0,7790,7800,0,5391,5301,0,7599,5568,7805,5655,0,0,0,5224,7811,7582,7817,0,0,5401,7592,5329,5426,0,7823,5661,0,5358,5381,7588,0,0,0,5337,5426,7706,0,7828,5564,7632,5280,5381,0,0,7834,7839,0,7843,0,0,7849,0,5301,5396,7853,7858,0,7667,7864,7867,5476,5291,7872,5407,0,7710,5248,7710,0,7672,0,7516,5291,7588,7675,7877,0,0,7605,7883,5407,7576,7888,5661,5301,0,7710,5237,5407,0,5325,0,7893,5573,7898,5568,0,7904,7779,7908,0,7849,0,5291,5666,7914,7920,7924,7672,7930,7864,5329,0,0,7935,7495,7940,7946,7628,0,7952,5476,5274,7817,7957,0,5333,5391,0,7962,5642,5381,7967,0,5699,7482,0,7972,7977,7982,7986,5730,7990,0,5485,7663,0,7864,5573,5661,5573,7994,0,0,7811,7588,5337,0,7667,7999,7500,5391,0,0,8005,0,7849,5671,7834,5688,5476,5396,0,8010,8015,7883,7565,8022,5708,5564,8028,7849,5337,5396,0,8033,8039,8044,5396,5301,8048,8052,8057,0,7487,0,0,5333,7516,5476,5730,0,7500,5726,7696,0,0,0,0,0,0,0,8028,7994,5661,5377,8062,8068,8073,8077,7482,0,0,0,0,0,0,8082,8087,7904,7491,5325,7853,7653,7592,7582,7752,5329,5448,8039,8093,0,5606,8099,0,0,0,0,0,0,0,7491,5391,5529,5501,8104,8110,7888,8115,7864,5661,0,7864,8119,7752,7800,7982,5717,5367,7800,5358,5325,5730,7972,0,0,0,0,8126,7663,0,0,8131,7883,8126,8073,8136,5301,7675,5519,0,0,0,0,0,7582,5377,8140,8144,8149,7972,7663,5237,0,7867,0,0,0,0,5573,5325,8154,7738,7834,7500,0,8159,0,0,0,0,7491,7521,0,5367,7571,5476,7839,0,0,5274,7658,8164,5476,7972,5476,5274,8170,5325,7653,0,8174,5301,0,5347,8179,7653,7834,0,0,7834,7653,0,7710,8184,8154,0,5358,5367,5534,8190,0,5337,8196,7500,8028,5358,8052,5485,5708,5708,0,0,0,0,8170,0,7571,8201,5381,7663,8205,7839,8048,0,0,0,0,8077,7511,8211,8217,0,5358,8222,0,5573,7653,5606,8227,0,0,0,0,5564,7888,7628,7491,8005,7653,7908,0,7908,0,7610,0,8201,7710,5661,8077,7843,5476,0,7800,8015,5367,8234,0,0,5325,8239,7491,5325,7482,0,8245,5476,5661,8052,5218,7653,7877,7658,5629,7972,8222,8249,7952,7877,5666,0,5237,0,0,8255,8261,8267,0,7610,5564,0,0,7786,0,0,5396,8039,0,5524,8272,0,5261,8277,8077,5564,5524,7867,8282,0,0,5237,7500,8005,8249,8287,0,5325,8293,7675,5476,7628,5476,7834,0,8297,8052,8302,0,5337,0,7528,5358,0,7828,0,8201,0,7487,7696,0,7790,8267,0,0,8255,0,8174,0,0,7495,5381,0,7696,7888,0,0,0,7888,0,0,7867,0,7742,5448,8179,8307,0,5352,5476,0,7571,8312,7867,8316,7528,5337,7930,7610,0,0,0,0,0,0,7738,5347,7800,8322,7576,7834,0,5329,0,5514,7746,0,7872,8048,5496,5386,0,5442,0,5320,7858,0,8005,8302,0,5274,7972,0,0,0,5401,8329,7500,5651,5296,7715,0,8334,5476,8131,5629,7706,8267,5320,5564,5476,8245,0,5401,8340,8179,8170,5329,7588,5362,5708,8345,7542,0,0,0,0,8297,7914,8349,7653,8354,7696,5708,5274,7538,0,0,5347,0,8354,7582,5534,8359,8249,5453,5509,5651,8077,5726,8365,5401,7972,5209,8370,7500,8052,8329,7972,8010,8104,8131,0,8104,8375,7605,8087,8239,5381,5661,5693,5381,8164,8211,0,5717,5642,8381,5476,7843,5218,7482,0,7588,0,7516,8387,7790,8391,8397,7628,7491,8131,5651,7667,7752,0,0,7828,7610,0,5426,8402,8255,7746,8249,8196,0,5509,8407,7663,0,8411,8417,5401,5309,0,7805,7571,8073,0,5642,8422,5325,0,8039,5325,7994,0,0,7500,8184,8267,0,7904,5578,8170,7994,5237,7706,5476,5661,7839,5688,8068,5453,7706,5325,0,0,0,7828,8149,8427,0,0,7482,8433,5325,5296,5437,5347,5386,8170,8196,5491,0,5381,7500,0,5218,8307,7710,0,8438,5464,5342,7990,8443,8052,7558,5529,8447,7710,5401,8345,7710,0,7521,7924,5396,8451,5688,8149,5564,8217,8211,7843,5480,7653,8211,8073,0,7706,7653,0,7610,0,7681,8149,7706,8365,5651,8456,8427,7521,8461,0,7706,0,5329,0,8267,7864,7768,8438,7994,7768,5320,8438,0,0,8391,5642,5291,5301,7908,8461,8467,8245,0,8149,7957,7542,5708,8473,0,8211,8479,0,5708,0,5237,5564,0,8484,8489,8316,5726,7864,0,5325,5325,5396,5285,8397,8473,8249,8126,7994,5325,5708,7628,8052,8217,8494,8447,8498,0,5301,5329,5453,5396,8277,0,7672,0,5651,7628,0,8170,0,0,8427,0,5476,0,5325,5358,0,8504,0,8010,5717,7692,5381,7622,0,0,8316,0,7839,5358,8509,5301,0,7962,7495,0,5325,8514,5274,5280,7864,7790,0,0,7853,0,8255,0,0,7478,0,8519,5377,5401,5358,0,8211,5529,8527,5666,0,5241,5573,7800,7610,0,7482,0,5241,7542,8375,8077,5476,0,5325,5325,8533,7628,8484,7811,8539,0,8093,5325,8543,7687,7839,7883,8239,5476,7999,5274,7710,7839,7710,7834,7843,8307,7610,7877,0,8422,5496,7663,7710,0,7616,5496,7853,0,8422,5496,5642,8548,0,0,8255,5401,8196,5329,7834,0,0,5476,7877,7592,5419,0,5485,0,7582,0,5676,7653,8539,0,0,8062,0,7710,8438,5358,0,8329,5329,0,5617,5358,0,5358,0,5274,7994,5432,7696,5676,0,5655,7930,5476,7628,5726,8365,5651,8447,7487,0,0,0,5261,7658,7715,5485,8411,8164,8554,8179,0,0,0,0,0,8539,8316,7738,5426,0,7888,5237,8316,0,5377,5261,5407,7972,0,7482,0,0,7811,7548,7706,0,0,5661,5661,8115,7994,0,0,7738,8427,8381,0,0,0,5476,8504,5320,5496,5314,0,7746,5325,7565,8456,7663,8010,5708,8196,5280,7675,0,0,8255,0,8316,0,5337,0,8543,5564,5573,7605,0,5573,0,8560,8566,5291,0,5496,8571,8577,5301,7500,0,7628,8370,5301,5730,7817,7990,8467,8407,5296,0,8582,7592,8365,5564,7867,7930,5237,7839,8334,0,5237,5688,5464,0,0,5442,8589,0,8407,8407,8594,8514,8093,8087,7828,8179,5459,7935,5352,0,8170,5325,8277,5606,8467,0,7774,7706,7628,5401,0,0,0,0,7628,5325,7994,5651,8402,5661,7500,5237,5688,5296,0,7628,7867,8598,7805,7888,7957,0,8334,7658,7576,7482,0,7893,7914,8467,5476,7643,7719,7491,8438,5501,7849,0,7482,8604,8447,5708,8527,5401,8227,7877,7538,8539,0,5329,0,5476,5396,0,8422,7864,5396,7962,8447,5401,5301,5274,7834,7610,8514,5407,0,0,8411,7628,8154,7622,5442,8370,0,5333,5381,7994,5476,7811,7849,8179,5347,7482,5661,0,7632,8093,7542,8154,0,8494,0,0,5717,0,5459,5218,5325,8608,8613,5237,8617,7500,5476,7982,5325,5726,5606,0,7542,7715,0,7790,7482,5671,7904,5274,7790,7565,8387,0,8022,7994,5529,0,8625,8484,7864,5209,8402,5358,8631,0,8577,0,0,7908,0,8370,0,7605,5248,5274,8190,0,5688,8456,7952,7696,7817,7723,0,8149,5301,8033,8589,8073,8494,8057,0,7888,0,8594,7738,7972,8473,7786,0,0,5224,7972,7582,7558,7999,8028,7516,8312,5325,8438,7994,7935,8131,0,8613,0,8201,0,8005,8149,7653,7616,7972,5381,5426,5661,8329,5261,7542,5661,7588,8370,5651,7643,0,0,5296,8136,8022,8543,7511,5381,5464,5347,0,7982,8307,8154,5717,5642,8604,7952,5407,5407,5442,5309,7538,5296,8514,8179,7672,7920,7924,8170,8170,5699,0,0,8635,0,8484,5396,5274,5661,0,7588,7893,8604,7491,0,0,0,8196,5296,8068,0,8322,5237,5476,0,8249,8641,5347,8052,7839,8533,8647,7632,5651,0,0,0,5661,8073,5296,7706,5661,0,0,8073,7542,8282,5285,5291,8653,8022,8170,7864,8077,0,5459,5459,0,7952,0,7706,7805,0,7628,8196,0,7990,5564,0,8539,5274,7952,7849,8658,7653,8316,8073,5261,5358,5329,7491,8447,8663,8589,7757,5329,7853,5401,7990,8589,5655,8663,5401,7790,0,7542,7990,8670,8255,5358,0,7482,0,5261,7588,7730,7872,5314,5329,8093,5496,0,7811,0,0,7977,8282,7982,8307,0,7957,0,5676,7990,5612,5717,5578,5693,8676,7605,7834,8334,5496,0,0,0,0,5476,0,0,5337,8234,5642,5642,5391,7817,7706,8682,0,0,5730,5651,5564,7982,8687,7883,0,0,7834,0,0,5726,0,8227,8391,0,8222,0,0,0,5274,0,0,0,7790,7843,7823,8456,8033,0,0,8694,0,7867,5491,0,8653,5459,5329,0,0,0,0,7628,7658,7877,7800,7746,7811,0,8699,7811,5730,5485,8073,5274,5301,5309,0,8211,8647,8052,7924,0,5274,7588,7994,7935,0,5309,8554,7849,0,8635,8093,0,8217,0,7734,8354,8073,0,5296,5459,7834,8170,5285,7908,8577,7628,5377,0,7478,8062,7675,8052,0,0,0,0,5464,5564,0,0,5471,0,8705,5285,0,7528,0,0,8467,5291,5396,0,7898,8711,0,0,7994,0,5712,7487,8411,5329,0,0,0,7849,5617,7672,5213,8164,5688,8577,7817,5274,5237,0,0,5453,0,0,0,5661,5666,0,8498,5314,7893,7571,5459,5325,7849,5325,0,0,0,0,0,5647,5274,7834,5629,7738,8539,5291,8608,7653,5642,8170,7872,7898,0,8077,5606,8716,0,0,5337,7746,0,0,8716,5426,7706,0,8682,8316,7696,7977,8196,7790,7864,5301,7710,0,7849,5381,5325,0,8721,5730,5671,0,5501,7719,0,5325,0,7723,7849,0,5274,5381,5396,5358,0,0,5655,0,0,5391,0,8022,7972,8543,0,0,0,7843,5358,5274,7898,5491,0,0,7920,7877,5358,7588,8154,8727,7616,8732,5419,5362,7786,7565,0,0,7738,8402,0,8407,8297,8739,7935,8245,7982,8402,5329,5676,5329,7542,8174,5655,0,5301,8340,7706,0,0,5377,8093,5726,5401,5329,5320,7817,5578,8473,5309,8745,0,0,8548,7734,5309,8473,5407,8234,0,0,0,8577,5301,7632,7914,7746,5407,8539,7930,0,5401,0,8329,8751,5699,7610,8397,0,5291,0,5617,0,5661,0,5347,8140,5476,7495,5301,8354,0,5476,0,5325,8756,5661,0,5209,7990,5296,5726,0,0,0,8631,0,8329,0,7914,5568,7867,8302,7500,8387,8312,8443,5337,5209,5401,5309,5367,5476,7867,5651,5285,0,7710,5391,0,7482,5305,5476,0,7719,5309,7491,0,5699,7935,8375,0,5241,0,0,0,0,0,0,8402,0,8345,5519,8179,8732,7687,0,5325,8073,0,0,7843,8422,0,8093,7864,8494,5401,8762,8514,5347,7994,8676,7908,7663,5437,5296,5476,5305,5209,8543,5413,0,5358,5301,5329,7632,0,7883,0,5699,8033,0,7558,8484,5568,5325,8093,0,8670,8509,7872,8287,8766,0,7957,8222,0,0,8222,8164,0,5666,0,0,5726,0,0,7972,8772,8164,8443,7616,7790,8716,8411,0,0,5629,7653,5372,8164,0,0,7734,0,8772,0,8297,8381,8577,5459,5459,7548,0,7672,7883,0,7952,5325,8447,5476,8184,7628,7599,8039,8115,7834,8402,5274,5285,5320,5564,8456,0,0,0,0,8201,8411,7710,7730,5476,8411,0,8217,5347,0,7637,0,8190,7628,7628,0,0,0,0,7738,0,0,0,0,8170,5661,5237,5407,0,7533,7738,8190,5274,5453,0,0,0,0,0,5651,5325,8131,7752,0,7599,5337,8115,5358,5651,0,5661,8010,5476,0,5666,7616,0,5309,5617,7482,5325,0,7588,0,0,0,7599,7746,7588,5476,5437,7719,5325,7632,0,7790,7687,5342,7972,8411,5301,0,0,0,0,0,0,0,8255,8721,0,5655,0,8077,7667,5661,5642,5661,0,8766,0,0,7610,8033,5651,5699,0,8136,0,0,0,7588,5661,8073,5693,8498,0,8519,7935,7653,7883,8052,0,0,0,7914,5651,7877,8514,7653,8402,5291,7849,7893,5391,7935,7914,7555,5564,7800,0,0,0,0,5476,5442,0,0,8222,5666,7990,7828,5358,5342,5717,5358,5476,5274,8447,7616,7605,8104,8527,7500,8647,7478,8239,8777,7967,0,8411,5642,7811,5213,5448,0,8217,5485,5237,0,8039,0,0,7834,5529,5573,7946,7616,0,0,0,5401,5274,7811,0,0,5401,5261,8777,7930,5407,5320,8010,7828,0,7904,7628,0,0,7700,5666,5476,5491,0,7877,8783,0,5309,5362,0,0,0,8239,5712,8484,0,7511,7653,0,5218,5309,7710,8504,8789,0,0,8062,5606,0,0,0,0,8073,7723,0,5320,8402,5296,8783,8307,8625,7864,7994,5501,8772,0,8099,7849,5218,5296,0,7628,8548,7834,5688,7999,7592,7658,0,0,0,0,0,0,8422,7516,7592,7687,0,7849,0,7500,0,0,0,8402,8745,5305,0,0,5413,5301,0,0,7834,5717,5305,7930,5676,5459,8670,0,7478,7834,0,5291,0,7658,7653,0,7828,5325,5381,0,0,0,5661,7986,8010,8154,5237,8077,5651,8297,8498,7482,5651,0,5291,0,8316,5509,0,5301,8670,8571,8795,8282,0,7681,0,7930,7491,7858,7877,7982,8800,0,8345,8104,7542,7930,0,5501,0,5480,5480,7571,8093,0,7952,0,5391,5730,8577,0,7487,0,7930,8504,8762,8073,7779,7839,5358,5325,8548,0,7849,5301,8467,8354,0,7877,8539,5666,5309,5248,7487,7734,5476,0,0,7811,8272,8613,7616,7616,7648,7482,5391,7482,5291,8068,8190,0,0,7867,7605,0,0,5337,0,0,5237,5391,5476,5305,0,0,7982,7675,7478,0,5485,8805,5391,8447,0,7738,0,5573,7877,8647,7757,5386,5386,8811,8131,7628,5730,0,0,0,7982,7924,0,5274,0,8164,7957,7999,8179,8239,8647,8370,8010,7653,7883,8427,0,7738,7605,8282,5407,7628,5314,5337,5301,0,0,0,7877,5401,0,0,8484,7734,5688,7817,5209,7628,0,0,8705,8816,5712,0,8484,0,7500,5255,8411,7790,0,0,0,0,5476,5337,0,5255,0,8222,5296,0,0,0,8201,8211,7986,5647,7478,5301,8093,0,5325,7667,0,7888,5291,5491,7930,0,0,0,0,0,7986,8411,5342,5647,5459,0,0,0,0,0,7888,0,0,5342,5358,5647,7719,8179,5647,7746,0,7672,0,0,8427,5358,5325,8433,0,5301,0,0,5342,0,5320,0,0,7864,0,0,0,0,7723,7632,7482,8068,7786,7628,5666,7930,8028,7858,5401,5688,5401,0,0,5301,5693,8631,7576,0,5426,8608,8010,5352,8126,5480,0,7864,8126,7706,5573,7817,8316,7653,7558,7977,7811,5426,7828,8349,7582,7864,8821,8577,8119,7742,8539,7628,8732,8164,0,5629,8827,8647,8617,5329,8316,5241,5301,7730,0,0,0,0,8625,5476,7653,5661,7632,7511,0,7883,0,0,8772,0,0,0,5337,7823,0,8461,7667,7710,5568,5509,5301,7511,8577,5367,0,8345,7628,8170,8110,8329,0,8451,8179,8833,5218,5564,8821,0,5237,5320,5285,5285,7653,8015,0,0,8839,8033,8010,5325,0,0,7786,7478,0,7867,5320,0,5480,8762,7487,8297,7715,5564,8093,5325,5519,8190,8716,0,5381,5301,8245,5325,0,7672,7914,5301,7843,8845,7482,0,8196,7867,7935,5337,8201,5464,5699,8277,0,0,7500,7898,7990,7706,0,8119,0,0,7576,5464,8422,7982,7930,0,0,0,5325,7786,0,5524,7637,7538,7605,8422,8422,5401,7843,0,0,0,5491,7663,5274,0,5237,0,8422,8179,5514,0,5381,5501,8658,0,5642,8479,7977,5666,7834,5329,8422,7616,7920,7632,5301,5432,0,7790,8126,0,0,5642,7849,8104,7982,8381,5442,5301,5629,7811,5358,0,7935,7924,8245,5708,5529,0,0,0,8297,0,5372,5509,7738,8222,0,7834,0,7605,8387,8010,5337,0,8422,8249,5617,5309,7786,7706,8255,5285,7834,0,8795,7746,5274,8589,8136,0,7811,8816,7558,0,5291,5237,7706,8608,5712,7786,0,0,8010,5726,7877,8598,5358,7790,8851,7786,8062,7811,7632,8560,7977,7768,0,8211,8201,7786,0,7715,7663,7616,8598,7843,5381,8539,7977,0,8751,8504,7834,8762,8539,0,7843,5274,0,5426,7930,8345,5651,7706,7706,8494,5617,7628,7977,7558,5642,7616,7924,5325,5381,7653,8438,7957,8509,5642,7834,7962,7952,5464,7616,8119,5496,5401,0,8190,8732,7935,8447,5726,7622,8154,7628,7823,7982,8554,0,7542,5617,5419,5708,8349,8211,8427,8411,5285,5291,8789,5358,5391,5301,5305,8577,7763,5305,5237,7877,5726,5285,8154,0,7500,7700,8316,5730,7628,0,0,8073,8857,0,8287,0,5381,0,5426,5296,5391,0,0,0,5642,7628,7898,5381,5578,0,5617,8539,7582,7839,5564,8438,5655,5655,0,7834,7757,8062,7817,0,7672,8625,7986,8402,8048,8451,7834,0,5381,0,8039,5612,5509,5241,8077,7757,8277,7738,8402,0,8234,0,0,0,0,7746,0,8438,8170,7628,0,7999,8115,0,0,7533,7849,8131,8062,8149,7478,8287,0,5329,8140,5401,0,8255,5320,0,0,8433,0,5296,7588,8519,0,7610,0,5386,8772,7883,7994,8811,8245,5301,0,5274,7533,7986,0,5453,8359,7616,5274,5347,5305,7904,0,5564,5358,0,8154,5476,7511,0,0,5676,8154,7558,8307,7864,0,7834,8863,8762,7706,7628,7768,8154,8077,7946,8170,5617,0,0,5352,8391,8340,7957,5301,8104,0,8402,5261,0,7706,0,8277,8093,8239,8705,7628,5386,8287,7706,5476,8184,0,5407,8387,0,7805,0,0,0,5358,7883,8312,8184,7972,8783,5606,5606,8110,5476,8577,8345,7849,7723,5301,0,5209,7588,8467,8387,8762,5509,0,7582,5337,5296,5407,7872,8211,8170,0,0,8345,5342,8277,7643,8322,0,7888,0,8136,8179,5377,7500,8484,5464,7706,5381,7790,7834,0,7972,8422,0,7663,8334,8777,5629,8869,7643,7706,5573,5612,5314,8417,5647,8443,7957,7622,5301,7800,7786,8433,5396,5712,0,5401,8479,5261,7839,0,0,7972,7904,8402,5688,0,7610,0,7893,8039,7558,8484,7864,0,5291,8062,5285,8498,5642,8316,5496,5337,5320,5642,5717,7811,7843,5291,8033,0,0,7914,0,8391,8391,0,8519,8267,0,5309,8287,0,8772,0,7723,0,7558,0,7628,7558,8316,0,8255,0,8170,5347,5476,8164,0,0,7487,0,8048,0,8249,7952,0,0,8370,8255,8287,5699,8217,5301,7904,5381,0,7632,0,8267,0,7982,7482,0,7972,5401,0,8811,5407,7576,7605,7692,8136,8217,8115,7924,7605,7817,5476,0,0,8519,8149,8504,8164,0,8136,8604,0,0,5476,5291,5358,7558,7667,5442,5296,7710,7972,7834,0,0,8099,5224,7999,7653,7628,5491,7999,7893,8302,8093,7738,0,8211,7491,8222,8005,7795,7823,5717,0,7710,0,5612,7839,7576,7658,7908,8196,0,8762,8604,7811,0,8159,5241,7542,0,0,7994,0,0,5237,8136,7734,8359,8170,0,0,0,7533,7738,7542,0,8164,7632,7982,5448,0,7734,7763,0,8851,8349,5320,8093,5666,5419,8873,7972,7757,0,8589,7982,8010,5712,5342,5407,5629,5661,0,5305,8010,5666,0,8554,8093,0,8827,8267,8249,7628,7972,7706,7883,8154,7994,8772,7719,5661,5448,8022,0,7511,5476,0,5666,5301,7893,8577,7516,5274,5642,0,5432,5274,8261,5622,0,7883,8411,8093,8062,7706,8239,8282,5651,7982,7982,0,8604,8456,7723,8391,8484,8201,5712,8589,5712,0,0,5301,7768,0,8869,7521,0,5391,0,0,5347,5464,8484,7834,0,7730,8641,5661,5578,8514,5237,7800,0,5464,8772,7675,8387,5358,7632,8010,5301,8402,5496,5442,8539,8582,5573,0,7877,5651,7542,5688,5655,0,0,0,7786,7834,7710,8625,7715,8073,7473,8845,5642,7790,7599,0,0,0,8613,5291,0,8438,5419,0,8427,7571,8354,5224,0,7576,5358,8504,7628,0,8287,7696,5476,5651,8745,0,7599,5325,8201,0,5432,8010,5642,5301,8010,5726,5564,7696,0,0,0,8154,5309,7706,8170,8277,7935,7930,8816,5476,7500,7511,8329,5564,0,8566,8805,5413,7687,0,0,0,7742,8851,8845,5629,7952,5296,7738,0,5642,0,7706,7653,7672,5651,5651,0,5329,8010,7742,5651,5381,5564,5651,5464,7588,5642,8077,5309,5401,5358,8745,5377,8093,8857,7972,7482,8479,5442,7774,5651,7834,5347,5248,0,0,8721,5617,7632,0,0,7632,7605,0,5442,5676,7592,7696,5476,7872,7774,8504,5564,5347,5342,7628,5642,7828,8093,7605,7738,5255,7542,5291,7805,8201,7786,8879,0,7653,7653,8711,7982,8062,8539,5564,8190,5651,5712,7843,7786,7999,7738,7628,8548,5301,8239,7478,5666,5325,5666,5301,0,8073,8608,8005,5480,0,0,7999,7952,0,7500,8716,8287,7888,0,7582,7952,8073,0,7811,8190,8179,5301,8422,5464,5529,7982,8222,8297,7681,5564,8239,0,5476,5320,8312,7849,8140,0,8136,8345,8783,5329,8427,7738,0,0,0,8255,7588,0,8721,0,0,5573,0,7696,7696,8699,7706,7487,5573,0,7834,7898,8345,0,8884,8519,7904,0,5377,7653,7571,7904,5578,8631,8119,5358,7696,7605,7478,7752,7972,7576,5329,7752,8234,5688,7986,5437,5448,7746,7972,7706,8340,8647,5401,0,7610,7588,7706,8467,8527,0,5291,8539,7858,8721,8816,8504,5655,5671,7920,8772,8783,8104,0,8104,5305,5432,7706,5391,5358,5291,7487,0,5396,8136,5296,0,7696,0,8711,0,5237,7972,8504,8170,5459,5578,8670,8249,5358,7653,7628,5274,0,8766,8179,8201,0,7706,5325,5453,5329,7592,7653,5476,7774,8104,7972,5209,8245,0,5606,7576,0,8104,0,5578,0,8110,8888,5325,5476,8762,5291,5717,5325,0,0,5612,8893,7521,5464,7706,7605,8451,7710,5534,0,8898,7786,8509,8010,0,8340,7972,7877,5666,0,0,5578,7628,7952,5464,5309,0,8039,5514,8772,0,5237,7800,7888,5708,7920,7478,7663,8249,7920,8249,7924,7972,8073,7616,7994,5386,5347,7834,7877,7768,5655,7734,0,7658,7893,5320,0,8903,5496,8297,5606,7710,7738,7977,8598,5464,8239,0,0,0,5309,7864,0,5564,7888,0,7864,0,5642,8539,0,8539,8201,7800,7935,8099,7706,7715,8179,0,0,0,0,5337,0,8245,0,7588,5564,5325,5419,8340,8073,8909,7935,5564,8201,7478,0,7924,8391,8334,8211,0,8249,8340,7681,8509,8126,7675,7528,7706,0,0,8670,7946,8816,7675,8033,0,8010,7482,8608,8297,8915,8048,8010,5726,5391,7849,8411,5491,5305,8919,0,0,0,0,5496,7888,5337,8052,0,0,5274,5666,5309,7706,0,5712,0,0,0,0,7834,5476,7482,7706,5578,5237,5476,7491,7864,0,7972,7653,8287,0,8104,5224,7908,5442,0,5480,7723,0,8484,0,8140,5564,0,8249,5301,8577,7738,0,7786,7779,0,7986,7828,7839,0,0,0,5325,0,5496,7790,8762,0,7637,7872,8727,8821,0,8277,5426,0,5476,5712,0,7849,5325,0,7653,0,5301,5209,8443,5642,0,5301,7706,8811,5301,0,0,0,0,7588,5442,0,5661,7930,7500,5485,7734,8093,7521,7571,7757,8104,8745,7823,0,7672,7710,8670,7628,5396,5301,0,0,0,5301,0,0,8217,0,5476,8381,0,7982,5564,0,7558,7823,8604,0,5377,8196,8473,5342,7994,0,7719,7663,7864,5381,8739,7893,0,7482,0,5514,8307,5296,5661,8115,8772,8227,7972,5476,5564,7864,0,7667,0,5496,5274,7800,0,5358,8093,5381,8005,7977,0,0,7843,0,7893,5329,7687,7849,0,8447,7616,7675,8909,8149,8115,8005,0,7542,8170,8647,8282,8307,7516,5651,5314,5661,7982,5651,0,8925,8827,5717,7823,7605,7834,7653,0,5476,8375,8354,8297,8093,8929,7628,7555,0,5476,7555,8196,7542,5367,5573,5309,5651,0,8136,7653,8443,5367,7834,5647,0,0,5612,7482,5248,7576,8211,8467,7555,7622,5514,5509,5301,0,8136,5391,5358,7839,7898,0,5676,7521,7952,5213,0,8329,7687,5642,0,0,0,7864,7924,7681,5337,5291,5301,0,5301,0,5325,7982,8427,5564,8227,8721,8170,8249,0,7558,8711,0,5301,0,0,0,5476,5224,0,5730,5509,7710,0,5717,7653,8073,0,7511,8179,8179,5476,8190,7834,5612,5524,5218,0,0,0,7628,0,5578,7538,0,0,8617,5309,8721,7734,7516,0,8805,0,7986,5476,0,7839,7834,5381,0,7994,5274,8381,5564,5717,0,5305,5564,8716,5274,7752,5301,8179,7763,0,8447,7637,0,7500,7555,8349,0,8795,0,8560,0,0,7628,7994,7605,0,0,5476,0,0,5564,5358,7605,5209,5320,5367,8447,0,5285,8190,0,8417,8164,5459,7730,0,0,7628,0,0,0,5329,7653,0,5476,8397,8427,7588,5509,8447,8721,5291,5413,8179,0,7888,7706,5642,7952,8699,5730,8329,5661,0,5296,0,5661,8073,7990,0,7500,8126,0,5573,0,5377,5573,7710,5453,8721,8527,5661,0,7888,5291,5296,8833,7730,7888,8093,8249,0,8039,8249,7610,0,7616,0,8721,8140,5301,8762,0,7864,0,0,0,8407,8407,5419,5401,0,8670,5237,0,7994,0,0,7849,5337,5329,8277,7742,8119,5676,7706,0,8267,0,7706,0,8873,5325,8349,8519,8184,0,5301,8093,0,8033,0,5274,7982,0,8443,5491,5491,7643,0,7935,5377,0,7495,7972,7511,7893,5285,0,5708,7516,0,8705,8272,7920,7528,5261,5661,8631,8272,0,5237,5661,7920,5642,5642,7555,8052,8566,7482,8010,7823,7710,7599,8467,5367,7576,8467,5391,5651,0,5717,8174,7893,7982,8447,7839,5651,8411,0,8136,7628,7864,7972,8566,7500,7672,5296,8329,5386,7653,7977,8307,5396,0,0,8140,5237,8022,5651,7528,7478,7723,5241,5442,5426,8484,8170,7643,5377,7800,5407,7706,8087,5666,5509,7935,8179,5381,5337,5296,7687,7588,5717,5386,5237,0,0,7710,7994,5305,8234,0,0,5372,5296,8375,8239,8149,0,0,5280,5708,8077,5342,8349,8772,7528,5485,8345,7738,7877,7994,8641,5325,8033,7935,7500,5274,7528,0,0,0,5386,0,7834,5688,8062,8022,7667,8239,8170,0,7800,8577,0,5573,7710,7521,0,5712,5320,8604,7710,7786,7628,0,0,8239,8149,5320,5578,0,0,0,0,7864,0,8302,8548,5291,7667,0,7957,7994,0,7605,7986,0,5578,7999,0,5476,0,8447,0,0,5476,8052,8387,7811,7800,7800,5726,8149,8052,0,8514,5274,5655,5320,7571,7605,8131,8190,5476,5377,0,5309,8179,0,8201,7779,7972,5325,5509,8721,0,8745,7663,5564,7952,8131,5274,8821,7972,8473,5476,5612,5459,7952,8119,8329,8033,5617,8745,0,0,8104,8062,7582,7558,7994,5459,5320,0,5325,8925,7706,0,5564,5708,5564,8312,0,8772,7687,7935,5726,5337,7849,5730,7952,7864,5419,8267,7853,5688,0,5564,7571,7982,0,8073,0,5291,8539,5291,5564,5464,0,5218,7805,5612,7710,0,0,0,7800,8936,7706,5407,5358,0,7972,7605,5726,8427,5325,7828,0,5301,5301,7986,7768,0,5564,5496,5629,5391,8560,7867,7706,8073,8136,7853,5573,8140,8354,8539,8033,5573,5358,8211,7904,5606,8438,8577,8527,0,5688,7681,5564,8144,5407,0,0,0,5655,5688,8451,7710,8005,8577,7898,8762,7478,0,5291,5329,8227,0,5573,7779,5606,8653,8227,5291,5647,5396,7893,5358,0,5280,8494,5325,5726,8005,7982,8140,5342,0,0,5688,7920,7930,8631,5285,8164,0,8140,5459,7710,8451,8249,8190,7888,5432,5578,5573,7877,7952,8676,7967,8919,8277,8909,8354,7768,5320,8093,0,8196,5564,5617,7681,0,7663,0,7723,7757,8370,5261,8082,8427,7610,8484,5301,0,8438,8164,8354,5291,8756,8010,7706,8062,5564,5329,8062,5480,8438,5606,5676,7706,5241,5485,7817,5606,7843,7790,7482,5329,8267,8170,7920,0,5661,8411,0,0,8164,8940,7478,5496,7786,7877,5352,7800,0,0,8617,8946,5622,7877,0,8519,5342,7930,8509,0,7972,7994,8438,8093,0,8028,8093,7706,8354,0,5476,5237,8033,0,8164,8033,8789,5337,5325,8073,7565,0,0,8140,8539,0,7628,5717,7500,7672,7849,0,8126,7817,7592,0,8387,8293,5337,8022,5661,8777,5642,5320,7834,8952,8239,0,7628,8073,5342,0,7834,5666,7516,7658,8762,8354,5325,0,8267,0,0,0,8170,0,8033,0,7521,5274,0,7952,7628,5666,0,5647,8033,5426,5688,8560,0,8903,7774,8539,7834,0,0,0,7877,0,5301,5612,7538,7538,0,5629,8456,7957,0,8451,5647,7864,8179,5381,5377,5325,8903,5285,5358,5666,5476,8104,8104,8312,5301,5437,7658,8312,5606,8170,7500,8010,0,7500,7696,8154,0,8297,8048,0,0,7779,5377,5651,0,0,8433,5712,7482,7746,5647,8005,0,0,5651,8164,8039,0,5651,8170,7920,5309,7599,5325,8249,5407,5529,8222,8811,7877,5301,5301,5688,5471,7616,8267,8033,5325,8297,0,7672,0,7952,8354,5296,7920,5496,7888,7877,0,8739,5617,5426,5534,5391,7710,7491,7653,7893,7491,7834,8857,0,7482,7888,5274,0,0,7867,7877,7653,8249,8354,8140,7542,5309,5261,7715,0,0,0,5241,7972,8104,7628,8711,5509,5442,0,7588,8959,5606,8739,8140,5342,0,5381,5407,5708,5285,7491,0,7491,7610,5372,8222,5401,0,7811,7672,7994,5274,8964,8073,5241,7605,7904,8249,5661,0,0,0,7675,5301,7687,5651,0,7491,0,0,0,5661,0,0,0,5261,0,0,5261,5291,5325,7565,0,5453,5708,5573,7478,8721,5661,8805,5661,8903,0,8772,0,5367,7500,5358,7487,8154,5241,7478,0,8489,8663,5391,7811,8144,5564,8663,5274,8196,7867,5347,0,8387,0,5699,0,8104,7972,0,8005,7542,8560,5476,8447,5241,8663,0,5391,0,7839,5291,7500,8267,0,0,5573,8479,7828,5717,5377,8062,8447,0,5301,0,5274,0,5237,8190,0,0,0,8277,0,7715,7558,5407,5358,7706,8093,8052,7898,5629,8539,5564,5274,8969,0,0,0,7734,5296,7994,5476,7491,0,7935,8052,0,0,5274,7877,7643,0,7653,7839,0,7706,8005,8110,0,0,7504,0,7982,8402,0,5699,8539,7935,0,0,7834,8239,5358,0,0,0,0,7555,8222,7616,8062,7839,5280,5377,7628,5666,8222,0,5325,5564,5274,8433,0,7719,0,0,7628,0,7663,7653,7883,5717,8539,7982,8334,0,0,8093,8349,8349,5401,0,5529,5655,8312,5564,8417,5237,8217,7883,8267,5274,7482,0,8217,5413,7982,7893,7893,7542,7930,0,0,5391,5606,8427,5407,0,5296,5564,5509,5305,8255,8239,0,7763,5717,8062,7628,7706,7888,8608,0,7904,8539,8190,8539,5358,7576,8174,8184,5476,0,7977,8245,7888,5237,7883,7681,5661,8227,8467,8721,7779,5413,0,5329,5325,8190,5320,0,5320,7982,8267,7877,0,8164,7864,0,7904,8527,0,5578,5501,8721,8201,5717,0,5464,8762,5377,8073,7542,7986,7610,7994,8427,5347,0,8136,5358,5480,5285,0,8201,8170,8312,5367,7994,5564,7849,8010,7877,7982,8925,0,0,0,0,0,8010,5459,8062,7710,8222,7482,0,0,8073,8821,5442,7616,0,5671,0,8267,5655,8387,0,5730,8438,8456,5717,8411,0,8052,5651,8119,8682,5358,7888,8104,8976,8589,7558,8297,8982,7790,8073,8422,7920,5564,0,0,7516,0,8514,7478,7706,7972,8033,5367,7849,8940,0,5730,0,5564,7648,7643,8456,7542,0,5237,8391,8005,5717,0,5708,8589,8617,7957,5655,5296,8179,0,7516,8136,7653,8762,5309,7746,8010,7864,5386,8062,8062,5529,5529,0,5358,0,5337,5476,5529,7730,7628,5301,5301,8467,8217,8052,7867,8873,0,0,8039,8201,7994,7994,0,8345,7500,8987,7946,7924,0,5642,0,5358,0,7946,8272,7511,0,7605,0,7706,8783,5476,8307,8467,8140,0,8073,8179,7924,0,5476,8184,8670,8543,0,8282,5305,7663,8869,5617,0,7972,7924,5407,8467,8217,5377,7994,8329,7972,5476,8504,5391,7982,8884,5476,5407,5342,7616,8222,7982,7982,5661,0,7924,5401,0,8869,0,5407,7605,7616,7834,5309,8519,7883,0,7908,5476,7491,5407,8869,8381,7839,7542,5529,8073,5651,8839,5651,7779,7706,7706,8087,5358,8073,5413,5432,8447,7994,7811,8010,7706,7511,5564,8608,8608,0,7706,8658,5480,5476,8073,7858,8073,0,8190,0,0,7628,7710,5329,5476,5301,0,5453,5237,7478,0,5666,0,7999,8397,8287,0,8345,7696,7628,8873,5564,8302,7811,5573,5448,0,5358,5459,0,8539,5301,0,7653,5437,7786,7558,7957,5305,5651,8349,5708,7883,7605,5464,8010,8919,8316,0,8762,7982,7994,5325,7710,7516,0,8334,5407,8077,7632,5325,0,0,8077,5476,0,5509,8387,5280,8073,0,8093,8811,8154,8370,0,7946,8005,8433,0,7843,5358,7811,8312,7742,5407,5377,5342,0,8217,5708,5407,5305,7952,7908,8345,7538,8745,5501,0,8898,8052,7888,0,8716,0,5381,5564,8994,0,8227,8077,7800,0,7839,0,8144,0,8539,5564,7681,8443,8494,7893,7774,5352,5391,0,8110,7706,5496,7533,8073,7800,8548,7839,7952,5325,5347,0,8249,7746,7533,5329,8498,0,7511,5476,7752,5301,5301,8833,7605,7643,7914,7710,5426,7599,0,8154,7920,0,5712,7935,5712,8783,8170,8417,0,8447,8613,8093,8387,0,7706,0,0,7898,0,8115,5381,7628,7528,7930,7904,5480,0,8255,5337,8539,5381,5305,8119,5261,7706,5261,5651,7883,5476,8845,8845,7853,0,5529,5476,8805,7681,8711,7511,0,5301,0,5329,7500,8451,7904,7511,8170,8427,8170,0,8443,5274,7972,0,0,7972,0,0,7986,0,8845,7864,7715,7548,8539,7834,0,8845,0,7843,7628,0,8136,8370,5396,8427,0,7957,7877,5459,7994,8190,5372,8438,0,0,0,0,0,5480,8433,8739,8909,8028,8149,5329,5476,5661,7834,8745,7734,5442,5274,8721,5381,8277,8249,7491,0,5301,7482,0,0,8909,7628,0,0,5496,8762,8062,0,5237,0,7706,0,8467,5325,8267,7565,0,8560,5655,7982,0,0,5381,8456,8811,8190,0,8479,8255,7839,5459,7904,7681,5509,7839,7972,8126,7478,8222,7883,7904,8316,0,0,8484,7952,7839,5337,8467,8149,8484,8998,8028,7864,7864,5426,7849,7834,5647,8201,5413,5568,7805,0,7706,8467,0,0,0,5730,5464,0,5676,8005,7864,5325,5305,5248,8222,7478,5655,7500,8245,7710,0,8827,7538,5568,7834,8179,0,7849,0,5347,8316,7628,8560,5386,5301,5501,7734,8093,5708,8190,5476,8190,8249,0,5666,7834,8222,5459,8093,5391,5285,8577,5485,8170,5377,7920,8461,5285,8359,8201,8539,7811,5642,5301,5651,0,0,0,8504,0,0,8647,5329,8093,5476,7774,5261,0,5320,5480,5305,7849,8964,5224,5352,7643,0,8039,8201,5301,7877,8126,8451,8249,5612,8322,7972,8582,5358,5708,8249,5274,0,7853,0,7994,0,0,0,8149,7877,8447,8447,5301,7582,8170,5407,5564,8302,7687,8272,5407,8789,8387,5485,8811,8539,5407,5712,8245,5407,5617,5661,5437,8211,5301,8234,7628,7738,5578,7924,8641,0,7849,7757,7994,8267,7687,5726,0,0,0,8805,7786,0,8936,5564,8964,7738,7738,5314,7653,5255,7849,0,7576,8073,7511,7555,0,8174,8539,8302,5377,7908,5377,7706,5325,7710,8994,5309,7990,5301,8170,5726,7986,7786,5280,7706,5274,5407,5391,5274,7663,5396,8170,8115,5642,0,5325,5496,8795,0,0,7834,0,0,8316,7823,8354,0,7710,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5476,5693,8898,7706,8987,5367,0,5305,8015,8589,8987,5367,5325,8201,7628,7746,5671,5442,5442,5622,7867,7920,5391,5391,5688,5224,7491,8827,7582,7487,7558,9003,5688,7779,9003,5337,7779,7834,5224,8940,8234,8484,5717,8387,8322,7548,5325,5381,8527,8721,8732,7877,7516,5314,7605,0,5509,7883,7994,7605,5485,5301,8170,8959,5564,5476,5476,8716,0,8484,8484,5578,5642,5476,0,7972,7478,7687,7982,8048,5333,7548,5255,8334,8255,7982,8625,7558,7558,5476,7482,0,7763,8484,7706,7491,5237,7521,5671,8484,0,0,5320,0,5391,5325,7700,7977,0,5391,0,0,8349,8375,0,8613,5529,7834,5564,8302,8136,8811,0,0,0,0,8811,7710,7952,8811,8375,7516,5476,5291,5333,0,7628,5241,5391,5391,7696,5573,7628,7628,7628,8267,7982,7706,7478,5485,7487,5342,8682,8682,8387,5661,8387,7706,8387,5325,7853,7599,8756,7738,5285,8370,5476,7877,7946,7715,0,7521,5485,8805,7779,7521,5485,7491,8196,8073,5337,5661,7883,5401,7888,7994,8504,8504,5325,0,7599,5476,5391,8504,5333,5693,8115,5309,7734,5442,7904,8015,5309,5381,5224,8705,8827,9008,8589,8099,0,8777,5209,5391,7738,8015,5564,5274,5274,5480,8062,8316,8504,7542,8811,5476,8539,5491,8093,5476,8783,8227,7730,8987,5476,7715,8514,8504,7977,8783,7924,7542,7548,7920,5509,7478,5407,5381,5642,8527,8777,8504,7599,5501,8539,7565,7548,7706,8456,7628,7757,5471,7752,5476,7528,8756,5476,5325,7663,7478,5325,5564,8048,5519,5309,7930,7883,5564,5629,7548,5337,8154,5296,7628,8402,8732,8589,7994,8732,7935,8387,5274,8987,8227,8099,8777,8329,7528,7994,7605,7710,8190,8293,8073,7786,8447,8447,5661,8282,7500,8093,7576,7914,5726,7487,5413,7487,7977,7920,5476,7487,7663,5241,7828,7653,8349,7883,7605,8201,5726,5358,8670,7839,7994,8539,7605,7571,5337,7924,5377,8427,7849,5358,5480,5617,7628,5476,9008,7571,5568,8381,8316,8447,8190,5726,5218,8631,7542,0,9012,0,8456,8359,7849,8149,7521,5717,7924,8126,8048,8391,7977,7696,5224,5325,8727,8154,7952,7768,7681,5285,7839,5476,5391,5426,7914,5480,8795,7972,5671,8277,5476,7710,7473,8687,5301,7482,5391,5651,7605,7500,5337,8345,5329,8711,7696,8099,8316,5496,7710,8329,7817,7576,5476,8613,5407,5367,7977,5437,5329,0,5285,5655,8604,8255,7908,7637,8381,8789,5309,7478,5730,7592,7558,5655,7571,5442,8196,5329,8170,5320,8805,7914,5480,8073,7823,8052,8411,8422,7628,5237,8140,7864,5688,7500,8582,7692,7478,7667,5476,5564,7843,8443,8255,5301,5218,7643,5485,5274,8589,5213,7588,5564,5237,5301,5564,5255,8222,7628,7487,5367,7528,5519,7628,5377,7935,5442,0,7834,9016,5301,8277,7487,5407,5519,5564,7849,8170,7675,5213,5407,8473,5573,7893,8527,8387,8345,7930,7628,7528,5358,5407,8227,7710,5224,8365,5642,8402,9016,5509,8277,8777,8548,5717,8721,7930,5606,5320,5320,8514,8479,8772,5291,7805,5426,5352,5629,5730,5476,7706,5377,8811,5485,5381,5342,8227,5381,7565,7972,8571,5676,8548,8170,7542,8447,8099,5314,7994,7632,8022,8873,7643,7582,5209,8543,7478,8170,8716,7774,5407,8533,7491,7972,8302,8745,0,7616,7558,5407,7834,8699,7548,8104,7977,5381,7994,7628,5224,8893,5377,7994,7858,7834,8527,5629,8494,7864,5661,7935,8119,8795,8539,7571,5496,8805,7930,7491,5464,5642,8427,5442,7834,5337,5407,7500,7687,7839,5564,5358,7972,8548,7746,5325,5476,5661,8329,7487,8676,8604,5655,7742,7853,7853,7930,8925,5329,5381,7994,5501,8227,7952,5448,7972,7588,5367,5564,8467,8164,5301,8613,8267,8131,7538,7898,7828,5629,8052,5381,5237,5261,7542,5291,8777,5573,8589,7930,7675,5218,5642,8772,5612,7924,8048,5224,7977,5491,5437,5629,0,8888,5573,7495,8179,5666,8402,5218,5372,8548,5352,8022,5708,8732,7628,8533,8694,8987,8322,5485,7710,8302,7653,8015,8745,7834,8539,5237,5329,7930,8647,5309,5401,5329,7800,7542,5274,8772,7616,7582,5622,7521,5261,8255,7592,8422,9021,7734,5237,8149,8227,8687,8239,7706,8919,7877,7994,5325,8010,5296,8732,5407,7883,5285,8484,9026,5501,5274,5291,7864,5285,5407,8316,7516,8073,7786,0,7588,5274,5419,8438,7491,5309,7977,8255,7920,8527,7576,7663,8159,5476,7667,8789,7877,5476,8903,5485,8190,7908,5407,5573,7883,5285,8302,5437,0,8888,8345,8613,7658,5442,7637,5347,8447,5309,7542,8249,7478,8381,7723,8447,8227,8577,5666,5329,8582,8222,8762,8473,8365,7972,7487,5337,8052,8033,8033,5301,8909,7994,7610,5573,7877,8261,5320,5296,5301,7632,8365,7495,5629,7834,5666,7700,7696,7478,8267,8365,8467,7504,5248,7999,7504,5274,8687,8217,7990,8217,7746,5647,8227,7696,8217,7696,7528,5647,7487,7834,7834,5391,5391,8903,7542,8307,5501,7790,7914,8307,8126,5485,5301,5464,8613,7599,8028,7768,7779,7628,7904,7817,7511,5237,0,5347,7817,5606,8721,5426,5224,7706,8170,7828,5209,0,7924,5407,8087,5325,5476,5325,7877,7592,0,8297,8028,8467,7790,8461,8297,8604,7592,8604,5437,7795,7592,7790,7576,8711,8131,7500,7746,5651,8164,7482,5661,8795,7667,8789,5476,5651,5391,8721,8249,7548,8170,8467,8391,5568,0,5564,5661,5651,5224,7582,7658,8461,8527,5224,7982,5248,5291,7982,8582,7491,8873,7533,5564,8438,7582,5274,8577,5367,5407,5485,5320,5712,5647,7706,7786,9032,8022,5485,7779,8745,7757,8093,7582,8811,5407,7482,8694,5476,5301,8777,8391,9038,8402,7487,7888,5309,7516,7516,8381,5237,8762,5325,8010,8010,8010,8527,8170,5573,0,8527,0,0,5564,8527,5255,8527,8509,5464,8509,8811,8919,5255,5726,7504,7908,5647,5708,5573,5325,8903,7653,7653,5372,8479,7757,8479,8504,8504,8519,5501,7867,5476,5325,8795,7542,8879,5573,7752,5325,7883,5426,5396,5509,5291,5301,8354,8577,7511,8115,8461,8519,5564,5573,5726,8170,5261,8438,8093,7548,7533,5432,5381,5381,8222,5301,5261,5432,7877,5485,7795,8682,8479,8519,8005,7692,7888,7696,7972,9045,7768,5496,7839,7990,5381,7952,7839,7952,8509,7888,5325,5377,5485,7957,8682,8115,8467,8451,5529,7990,7986,7542,5496,8519,7795,5407,8451,5301,5377,7893,8057,7877,7706,8519,5209,8461,5509,8073,5325,7888,8745,7834,5314,5407,5325,8073,7834,8170,8154,8119,5407,7888,8676,7478,7795,5564,8119,5407,5717,7687,8509,8519,5676,7877,8641,5329,5301,8998,5261,8647,5568,5285,7795,8255,5291,5396,7687,5314,5401,8170,7920,7511,7952,5285,7952,5407,5407,5629,8154,5325,5407,5476,5407,7972,7877,8498,5305,5301,7605,5301,8387,7768,8282,7817,7977,7478,8349,8577,5309,8946,5661,7972,7582,7605,8293,5381,5726,8670,5476,7605,7622,5301,5485,8149,8149,5676,5568,7924,8631,7675,8711,8582,5381,8577,7849,5391,7990,5485,8052,8073,8438,7710,7843,5218,5218,7746,7990,8329,5676,8745,5329,8057,8249,8277,5333,8509,7746,7582,7500,7500,8795,7478,5476,8329,5534,8119,8149,7715,5329,8647,5391,5325,8196,8322,5285,7768,7924,5476,5291,8010,5676,8316,8170,7883,5661,8349,8329,8329,5329,5301,7935,8261,7768,8222,8670,8267,8484,8222,8131,7478,8267,0,0,5671,5671,8222,8827,0,7504,5352,8170,8272,5717,7734,8345,8174,5564,7817,8245,8484,7723,5358,5396,7930,5386,7710,7565,8484,5476,8925,5419,8756,5419,8582,7982,5367,5726,8411,7952,7867,8205,8582,7893,7982,7853,7952,7952,5296,7883,7952,5401,5401,7940,8762,8484,5726,5237,7920,5726,5476,5280,7834,8411,8447,5726,5391,7528,7542,8184,7730,8443,8119,7478,5296,8282,5391,5237,5509,5396,5661,5509,7930,8443,5314,5661,7883,8349,7823,7883,5325,8073,8952,8201,8582,8411,8201,8427,5280,5329,5337,5329,5237,7795,8494,5661,5381,5381,7994,8608,7723,7972,7790,7482,7994,8670,5325,5699,8375,5391,5676,5661,7500,5309,5699,7478,5325,7864,8745,5237,0,7653,8427,7864,8805,5301,5578,7653,5301,8387,8387,7834,5617,7972,7687,8334,0,7849,8387,7972,8604,8334,5377,5301,5617,5730,8805,8397,8451,7893,8467,8604,8467,7521,7834,5301,5291,8302,7828,5573,8484,8196,5708,7952,7834,7487,5301,8227,5347,5301,7834,7834,8467,7487,7817,7516,5688,5726,5726,0,5666,8762,5274,5622,8589,8179,8179,8179,8179,7663,5491,5337,5496,5325,5337,8617,8010,8087,8625,7904,8048,8893,5391,5320,5314,5726,8087,8411,7500,7977,7533,5448,5524,7994,5448,5459,7872,8827,5568,7786,8170,8093,7795,8272,5568,7972,5285,7999,7904,5693,7990,7658,7710,5391,5337,5688,8312,5661,8052,7487,8772,7710,5333,7757,5325,0,8062,7763,7500,8211,7710,5717,8190,5642,5209,7849,5325,7757,8879,8316,8391,5730,5301,5647,7521,7687,5367,7491,5329,9051,7538,7742,5529,5476,7667,5442,7516,8068,7482,7893,5358,8196,8196,5381,8201,8998,7904,5471,5501,7864,7653,8805,8560,8598,7706,8062,7972,7914,7478,7478,8783,8884,5529,5237,7805,8307,7752,5730,7742,7478,5524,8387,7667,5329,7864,40,5712,7663,7706,7558,7478,5524,5564,915,2998,7710,8119,8884,8068,5564,5476,5491,7742,5301,8126,8467,7908,3123,8322,7478,1325,3137,7768,9054,7752,8447,9059,8093,8297,5337,8539,7576,3194,7576,8964,5237,2957,1400,5255,5209,7786,5209,7994,7500,7849,5386,5367,8456,2806,7675,7914,7982,8391,8245,5726,8170,9062,8925,855,7888,670,8174,5358,5564,819,2654,7687,7849,8370,8484,5218,5564,5699,7576,50,9012,7786,9012,7571,8201,7610,7582,8381,0,7487,5274,8154,7706,7696,7864,8687,7687,5237,5476,8577,5209,7763,5651,7972,5642,5325,7576,5717,8952,8365,7675,7990,5296,826,8359,8272,5274,2675,8190,5519,8082,7834,8149,5476,7663,8751,7914,8316,8062,7504,7710,8631,5201,5437,842,2950,5213,7521,7663,8727,8582,8387,8245,7675,5358,8354,2792,5396,1620,7908,7888,2537,5325,8789,8711,9067,8052,8467,7610,855,8211,5717,7864,7710,8670,5301,8136,8443,2665,7692,7675,852,1783,8073,5578,7687,2816,836,3009,5333,5342,2830,8201,7653,7946,8845,8851,5717,5337,7834,7786,7786,8126,7653,5612,8104,5476,7663,7977,5647,5274,36,5301,5237,5629,7571,5688,124,7478,121,8387,8307,28,60,8196,7538,32,4535,905,1518,8149,139,5612,5372,7811,5030,8302,5325,64,371,8527,106,7982,7706,8087,7994,9045,8227,7696,5301,8322,8345,5381,9067,8184,7628,2381,8277,8302,162,5480,7982,7663,7576,26,8800,5314,5314,8987,8539,7946,5347,9051,7675,7521,8068,7478,7752,8402,8302,7982,7706,32,8272,7883,7883,852,1775,109,1318,8287,7849,8387,7706,670,8456,7779,5274,7920,8302,7986,8115,2409,2418,8994,2440,7719,5622,8077,2468,2475,2213,2216,7768,2229,8073,5693,7843,7675,2261,2265,7710,5377,8345,8484,7883,7990,5218,7994,7823,5261,762,56,7986,5381,5730,7653,5459,7576,7637,8082,9071,7628,7482,8365,5642,8494,7746,7982,8267,8732,5296,7811,7811,5237,7849,5325,8005,2792,7994,8302,7500,5464,8762,8077,8190,7779,7628,8940,7710,8255,7834,7883,7440,8179,5301,9067,7687,54,7622,7616,9054,0,8005,5237,7628,5381,7957,7692,5514,8154,5377,5642,7849,9051,5519,8322,7719,5218,7588,8062,5661,5476,5612,7538,5496,8370,7990,7738,8940,5606,8613,5448,8631,5325,8334,7478,5274,5391,5717,5209,5381,7632,5534,8631,7487,7710,8052,5612,7977,8370,5612,8196,8077,7849,0,8159,8044,5717,8136,9075,7663,0,8316,5358,5708,5708,5401,8402,5578,5305,5448,5448,8772,8539,7706,5285,5248,5285,8509,8772,8589,8340,7977,7663,7675,8647,7957,5205,7786,7675,7982,5296,8039,7742,5274,8115,8227,7500,8312,8407,7538,7538,7982,5666,8762,5205,5629,7491,5413,7616,0,5285,5651,7675,5396,8349,8297,7571,5352,8149,7675,5325,7605,8783,8005,8397,7675,7487,8052,5564,8239,8255,5237,5519,8772,8772,5305,8329,7864,9021,8010,7710,5296,8365,8519,8140,7883,7628,8068,7558,5285,7491,5237,7706,8052,5401,7500,8919,5296,7482,7734,5291,8196,8329,8077,5329,7487,7834,7616,8245,7883,7628,7576,5309,8789,8354,5296,7706,7864,5372,5476,5391,5285,8467,7663,5218,5291,7908,7628,9054,8479,5717,7528,5471,8903,0,8159,7920,7920,7482,8397,8381,8539,5347,7738,8154,8613,8052,5367,8387,7888,5237,5442,5325,5309,8052,5377,8227,0,0,8936,5377,5329,5296,8073,5337,8077,7482,7982,5305,5464,5578,5301,7511,0,7700,7675,5305,7834,5301,5329,7610,5564,7883,8033,8751,7920,7521,8154,5305,5237,7888,7692,7834,7877,7616,8261,7828,7986,7738,7675,5285,8287,7811,8154,5622,8077,7675,8936,5301,7877,7637,5301,5476,7632,7700,8365,7588,5237,0,5407,24,7605,64,8077,7700,836,2998,7994,5296,1311,5688,7487,2675,5407,5296,7528,7482,7823,8641,8641,5471,8756,2947,7592,1400,429,8827,7982,1620,8467,5337,2599,8653,8827,7994,5647,7994,8099,819,8658,2651,8093,7786,852,1783,8039,5647,5337,8039,7482,7643,7734,7628,9080,8467,8099,7768,7628,8745,8039,8732,7994,9085,7768,9092,9097,8467,8467,7864,9104,5647,9113,8641,9122,5296,5476,8467,9130,8375,5647,8387,9137,8805,8119,9146,9152,9157,8387,5437,7994,5717,9164,7478,7952,7920,5476,8539,9172,9181,5655,5314,9187,9193,9201,9206,8582,8227,7706,5034,9214,5325,9220,7972,7972,8282,9224,9230,8196,9235,7667,9240,8068,7565,5501,8543,8772,8795,7920,7571,8946,5358,9247,9253,9259,9263,7908,8539,5485,5407,8772,5301,7904,7478,5501,8863,8312,7533,5629,8653,5726,8772,7972,5480,8811,5255,7828,7795,8447,7658,7920,7592,7924,9008,5708,7511,5688,7715,7990,8131,5529,7904,7710,7935,8093,9272,5564,7982,842,7805,7986,7610,7610,5329,9278,9281,8174,9285,5426,7582,9288,2462,5329,9298,9301,5666,5671,7482,5730,2465,7999,5564,8687,5642,7888,9305,7952,5496,7924,7482,8048,8131,8467,5459,5661,8800,7592,9308,7864,9312,7828,9316,7478,7473,9320,76,2406,8509,2468,5386,8345,5426,9326,7811,7898,8456,9329,5476,7482,3679,7500,7805,8433,8845,7663,9332,9335,5699,5218,142,9338,429,8349,7843,4262,7558,7834,5309,2422,5666,8577,8201,7558,9341,303,5391,8329,8039,2274,7491,8184,8539,7628,8201,8387,5676,5342,7920,7558,5509,8170,8099,5241,8571,5248,7582,5491,8772,8345,7774,5320,5413,8795,7972,7888,5476,7972,5476,8456,5325,9032,7706,5514,8170,8447,7692,7990,5629,8653,8447,5407,8217,5309,8461,7628,7864,5352,7786,5647,8873,0,8387,7542,0,8345,0,7888,5386,5647,7558,7482,7643,5358,5401,8039,5459,5622,5730,8222,8222,7628,8539,7790,5381,8821,7864,8845,8795,8548,7628,5464,7864,5642,7834,8222,5325,5712,8227,8762,5480,7482,8527,7548,5381,5655,8527,8461,8732,5407,0,0,7521,5464,8873,8676,0,8190,5325,5325,7908,7616,7738,7558,5218,8509,7588,7588,5391,5651,7738,5534,7558,5647,5629,5699,7548,5301,5352,7898,8159,8205,8217,5606,7478,7558,8329,5717,5655,7663,7817,7834,8795,5606,8467,7752,5661,7511,0,7843,8227,5352,5413,8033,8140,5329,7742,7542,5712,5305,5622,8617,5320,7957,7710,7800,8473,5485,7706,5320,8539,8015,8795,5218,7828,8033,7972,5237,8039,8322,5309,8539,8987,7715,8402,7834,7738,8833,7706,8322,7779,0,8863,8255,8833,7500,5261,5261,7904,7734,7908,7582,8010,5699,5305,5471,5471,5471,8539,8119,7888,7888,8772,8919,7478,5501,5464,8772,8245,7491,0,0,7628,8322,5325,8255,8800,5476,7920,5358,7828,5419,7491,5218,8073,8772,5347,8170,8359,8903,8261,7542,8329,5347,5237,7849,7663,8387,8479,8052,8821,0,5666,8582,5329,7834,8772,7994,8359,7610,7610,7872,5301,7516,8261,0,8329,7834,5666,7904,0,5391,8504,0,9345,9345,8119,5476,8349,7990,7605,9345,7982,7982,8653,5476,7982,7500,8653,8087,8211,9021,8087,5476,7972,7786,5573,5419,8527,7930,0,8411,5342,8658,8093,5564,7571,5367,7504,0,5386,5367,8005,5237,8082,8467,7790,7588,7888,7888,7491,8745,0,8131,8131,7706,8249,8249,7482,8154,8033,8245,8115,5606,7658,5564,8625,5642,7924,8560,5524,5391,8543,7658,7853,7834,5358,5476,7473,7977,7888,0,8582,8267,7977,8994,8869,5401,7811,8539,7834,8174,7768,7706,8716,8527,5661,5501,7828,0,8005,7967,7811,7706,8509,7687,8543,5476,5419,8272,8205,8543,5237,7521,7893,7757,8329,8946,7828,5708,5617,5534,7533,5708,7478,5708,5419,5401,7888,8267,5419,5391,5501,8154,5358,5401,7888,8293,8293,5693,8716,7542,5407,7738,8484,7823,5496,8052,5274,8010,5325,8851,8613,7893,7599,8062,9345,5564,7538,7883,8504,5564,5485,7834,5661,7752,7548,8994,8762,5325,8946,7548,5642,5309,8267,7622,8456,0,8354,9345,8816,7834,8136,7528,5501,5358,7628,5480,8527,8467,7565,7478,7628,7952,8762,7904,8447,7576,5314,7999,8245,8716,8467,7853,8190,7972,7864,5712,5305,7706,5358,7914,7867,7864,7849,7500,8048,5241,8438,8282,7715,5564,8093,5209,5209,5391,8297,5261,7924,7800,5381,7786,7487,5426,7994,5209,8170,5261,8751,8504,5642,8316,5419,5320,5325,5671,8987,8144,5676,5285,8131,7715,5407,5407,5476,8184,7972,5325,5325,5274,7946,8687,7667,7473,7834,8391,8577,8456,7834,5337,7834,5496,7914,7482,7710,7952,7768,5209,8022,7994,8062,8631,7957,8387,7648,5285,8375,5255,5274,8670,5301,7558,7675,8211,0,5612,7478,7994,7990,8277,8287,5693,8929,5426,7823,7628,7495,8456,8028,5676,7914,7972,7653,8539,9345,7864,8751,8422,7653,7746,7478,7834,7478,5237,7834,7628,7487,7628,8631,0,5274,8170,5726,8839,7706,5274,8863,7582,8227,5329,7663,7864,7864,7957,7746,8827,8057,8170,8312,7774,5693,5509,8473,7675,5320,7706,5296,5564,7864,8494,8772,7893,0,5381,5606,8447,7768,5485,7643,5485,7542,7828,5426,7982,8631,8277,5358,7482,5442,8287,5564,5485,8099,7834,5347,8653,7482,8387,0,5301,7828,5274,0,5396,7616,7877,7914,8805,8903,5642,7478,7823,8893,7977,7853,7500,7628,7994,5377,8110,5712,7883,8821,8196,0,7478,7542,8104,7790,5564,5381,8676,5237,7548,5712,5464,7746,8345,7616,8190,0,7994,5712,8467,5655,5688,5377,5661,5480,5401,7790,8297,7487,7858,7994,8631,8484,7982,5708,0,0,7500,7853,7952,7967,5642,7920,5237,8467,7616,8164,8613,7710,7511,5712,7533,5708,7538,8131,8005,8196,7977,5514,5655,8467,5496,5218,8391,7616,5325,7588,5453,5274,8272,8334,7843,5386,8222,7663,7920,8751,5476,8647,7628,5666,8190,7800,5476,8015,8756,5218,8447,5301,8539,7952,7834,5309,5622,8227,8604,7653,5362,8149,5305,5578,7982,7982,5708,5362,8322,0,8959,7786,7478,5285,5480,8427,7790,5274,5274,5305,8239,5401,5396,7952,8919,7972,7500,0,5396,5237,5296,7648,5237,7834,7877,5285,5712,8010,8010,5274,5476,7994,5285,5564,5391,5358,5261,5342,8322,5401,7811,0,5453,7582,5476,8179,7663,8929,8766,7538,7681,5442,5309,7839,7628,8751,0,7500,8716,7834,7658,7616,8179,5453,0,7616,7746,0,7538,7914,5426,8447,8762,7511,8467,5347,7834,8617,8093,5285,8929,5347,5274,7616,8617,8952,7768,5651,5301,8375,7834,7605,5347,5209,5381,5291,5291,8571,8267,5209,5209,8879,7962,5564,7930,5209,7675,7528,8249,7487,7658,8222,5325,7786,8293,5529,0,5622,8370,8375,7962,8359,7763,8827,7542,5320,7877,8387,5209,8447,5564,5209,5301,5529,8073,8613,8277,8077,8077,7616,8375,7746,7605,8164,7738,7952,8533,7723,7628,8087,8345,5647,8022,5509,8110,5642,8062,5476,5485,9032,5651,7605,8903,8062,8548,8721,7576,5693,5509,5476,8222,5391,5391,5248,7914,7990,8190,5391,5337,7811,5476,7681,5391,5274,7817,7558,8658,7817,7675,5437,7687,8222,8370,7834,7675,7977,7914,8033,8164,5464,5651,5568,8739,8888,7588,7774,8365,5325,8467,5325,7482,5651,5568,8745,5699,5655,5407,5564,8381,5224,7811,5712,8196,7653,7628,5391,8381,8196,8381,7972,7628,8222,8739,8381,8196,5305,5496,8170,7795,8196,7982,7478,8239,5391,7605,8533,7914,7994,5661,8739,5296,8239,7667,7811,5476,5476,8222,8196,5248,8222,8527,8879,8217,7487,8329,8479,7672,8217,8087,8312,8527,5622,5564,5617,7990,5419,5419,5622,7994,9021,8329,5320,8217,8479,7675,5325,8670,7696,7696,7696,5205,5407,5320,8033,8987,8987,0,5205,8227,8239,5274,5274,0,7599,7599,5337,8239,8239,5642,8211,7599,7599,7599,5205,5642,7888,8005,7548,8484,8811,7786,8811,8422,8811,8811,5391,7482,7710,8898,8447,5309,7994,5453,8170,7920,8554,5237,5358,8170,5381,5606,5726,5377,5381,7478,7757,5391,5391,5255,5325,5661,8033,5237,8447,8427,5237,0,7800,7864,7957,5255,5377,7893,5320,5661,5647,5329,5329,5237,8554,5329,8170,5661,8170,5291,8239,5291,5320,5237,7935,8068,8447,5261,0,5274,5301,5529,0,0,7610,5476,7706,8504,7478,7653,7914,7628,5573,5342,7706,0,8354,8282,5642,8608,8387,7478,5381,7864,5325,7542,5501,8467,7706,8433,7542,7706,5496,5381,5726,8461,5274,5708,5347,8479,7904,7571,7571,7924,8170,8461,7990,8131,5529,7930,5301,7681,8170,7834,5564,5519,7977,8093,5480,8456,5337,5491,8582,8354,5726,7982,8312,8438,8345,7681,8093,7710,0,7582,0,8005,5519,7790,8316,5529,5476,0,7849,7990,7632,7864,5564,8329,5459,5329,8345,7696,5671,7768,8316,5476,7715,5391,8345,7994,7982,7972,5651,5301,5325,8316,7994,5337,0,5367,5301,5642,5285,5241,8375,5285,7864,7864,7628,7491,8201,8255,8658,8527,8527,5386,5301,5337,5274,8062,8479,7914,7558,5647,8845,7667,8052,5367,7482,7628,7843,8795,8149,8277,5274,5699,8571,5248,5248,7738,0,5396,8170,8277,7706,8438,8653,8653,8443,7786,8402,8387,8387,8461,8099,8099,8873,5291,7888,5241,8039,7482,7582,7653,5241,7994,5642,7920,7834,8022,5381,5413,8443,5291,7582,8427,7786,7482,0,8115,5464,7628,7994,7924,8527,5688,5471,5377,5476,7972,5391,5437,5642,7864,7605,8795,5329,7834,5712,8811,5325,5325,7811,8805,8119,5712,7542,7478,7628,8548,5347,5291,7834,7834,7994,8548,5496,5342,8164,0,8196,7628,0,7957,5647,8217,5237,5534,8777,8903,8062,5381,7663,7511,7478,8022,8255,5209,7994,5413,7828,8451,7542,5218,8077,8451,5325,0,0,8022,8548,5419,8239,0,7877,5459,8433,5693,5647,7957,8015,8427,8427,5708,8340,5726,8322,8397,8397,8479,8479,5237,7628,8073,7610,7521,8554,8073,8196,5285,7834,8149,8427,7516,8239,8239,5309,8919,7888,9021,5285,7952,5642,8255,5642,5291,8427,5476,5529,5386,7491,7491,5476,7864,5274,5325,5661,7990,5237,8539,5708,8397,0,8447,8164,8479,8093,8925,7628,8354,7482,0,5381,5301,5342,7610,7610,7828,7616,5237,8170,7877,7616,8005,7834,7994,5386,7768,8783,8498,8375,7828,7828,0,7834,7834,7834,5386,7834,8732,7952,8732,7576,5464,5485,8329,8783,8783,8577,7817,7571,8255,8170,7817,0,7478,0,0,7637,5688,5688,5325,5476,7487,7904,7972,7999,7521,5476,5309,8329,5676,0,8329,5309,5564,8925,5358,5391,8201,5693,8952,8010,8077,5391,5501,8994,7972,5237,7982,7883,7994,8015,5629,5491,7538,8456,8994,8964,5564,5401,7972,7576,8073,7972,8539,5305,5476,5476,5255,5280,5676,8613,8952,5491,5241,8839,8255,5655,5391,8658,5237,7898,5491,7952,5442,5255,8015,8302,5509,5491,7994,8227,8302,7706,8115,8039,7790,8762,5730,5241,7500,5651,7994,8494,5564,5476,7898,5255,0,7817,7533,5464,8479,5651,7977,8909,5296,7548,5261,7800,7715,8473,8039,8115,7715,7898,8015,7592,7877,5564,7972,7982,8010,8519,5358,0,0,5651,8255,7877,5501,8249,7898,5442,7763,5573,5381,5274,5347,8811,5255,8184,7542,5224,5224,5426,8811,5642,7811,5337,5337,5325,7834,7920,8805,8115,8687,9345,5305,8745,5358,8196,5471,8519,7952,8387,8126,5381,7500,5329,7478,0,7692,7616,8539,8174,7828,8387,7622,8845,7839,5564,8316,8334,7893,7521,5476,7972,7681,7972,5519,8762,7571,7675,5647,7952,7692,8334,8805,5337,8201,5693,7558,8277,7930,5325,8345,5320,8756,5218,5480,8022,5320,8745,7628,7628,7622,5448,8604,7521,7893,8484,7849,5296,7511,8302,5401,7843,5448,5407,8057,8745,8484,8484,8196,5708,8144,7957,7482,8239,5491,5329,5476,5573,7877,5647,7487,7528,7622,8227,7478,7893,8687,0,7908,5358,8322,5661,7516,7516,8239,5329,0,7616,5274,8805,5218,5301,8805,7482,8329,7834,8805,8539,8312,5407,5296,8716,5296,7817,8184,8509,8411,5476,7706,8789,5501,8170,7834,5476,8205,5358,5476,5476,7696,8589,5391,7696,5391,5391,7817,7757,7482,7982,5564,8062,7478,8422,7710,5419,7904,7914,8539,8015,5291,8272,5564,8539,5651,5274,7982,8783,8293,5485,5655,5476,5651,7768,5509,8670,8893,8190,5485,5471,8015,5419,8322,5352,7883,8322,5358,5358,5617,7883,5407,8131,0,8048,5358,5568,0,5432,7675,7883,8144,8322,8062,5651,8144,5509,5291,5325,5325,7952,8903,5329,5329,8641,5296,7972,5296,5296,5476,5476,5476,5476,8154,8154,5261,5426,7752,8316,7834,7834,7628,7710,7774,8473,7757,8888,5352,5218,8647,8015,7616,7710,7710,5314,5480,5325,8334,7548,5476,7599,7935,5358,7710,8093,5564,7599,5241,8140,7599,5485,5491,5237,8329,8727,7924,8359,5329,5730,8631,7558,7972,7500,5485,5647,8827,0,8277,8827,8407,5213,5237,0,7706,8227,7972,8827,7576,8277,7628,5661,5381,5407,7710,7977,8411,5464,5564,8329,7994,8334,5642,7994,5237,5241,8647,7710,8407,5241,5241,5432,8407,5248,7935,5285,7994,5285,5296,5712,7610,7521,8222,5726,7528,5320,5358,5476,5333,8504,8479,5693,5671,5325,8504,8504,7877,8772,8594,8594,8811,7706,5391,8879,7972,7599,8211,5237,8010,7616,5606,8438,8438,7548,5248,7478,5325,7478,5237,7491,5337,5509,8827,7548,7908,7628,8411,7972,7706,8402,8033,7658,8068,7542,8184,7643,7504,8816,7599,5274,7528,8756,7982,8509,5501,8359,7658,8022,7478,7742,8227,8519,8170,5476,8222,8783,8438,8456,7571,8982,7924,5568,8282,8293,5386,5241,8994,8201,8964,7786,7982,8170,8245,5401,7487,5442,8539,5491,5476,5647,5337,5564,5325,5352,5426,8467,8447,8625,5564,5237,5358,5337,7867,8190,8827,5224,5464,7500,5573,7920,5237,5237,8772,0,8548,8217,0,0,5476,7710,8504,8329,5391,5237,8149,7946,8582,7715,7972,5661,5401,7681,5464,5459,8052,8571,7952,7946,5237,7675,5320,0,7473,5688,7924,5296,5296,7710,7977,5476,7504,8625,7516,5296,5209,7500,7710,7521,8293,8727,8869,7990,8316,5606,7817,7768,5237,5280,8354,5352,8800,8407,5296,7864,0,8316,7834,8509,8604,5386,8267,8211,5218,5218,8467,7920,8653,8255,8354,7628,7628,5381,5237,5578,7516,5377,7653,8052,7867,5377,8201,5476,7542,5296,5237,7930,7800,5476,7946,8022,7768,7558,5296,7478,7478,5337,5301,7779,7811,8827,5476,8354,5301,8566,5386,7864,5699,8190,7542,7478,8438,8827,7893,7930,7888,8402,8227,8514,5301,5325,8721,8721,5426,8479,7706,8571,5606,8099,5237,8795,8653,8447,8745,5442,5471,8039,7877,7779,5509,8467,5309,5325,7516,7628,8154,7849,7768,8772,5377,5377,8077,7599,8287,8201,7643,5237,5629,7528,7994,5296,7864,7872,8548,5407,5218,7828,8170,8179,7558,8407,7930,7867,8179,7883,8721,7888,5386,8267,7521,8863,5459,5464,8104,7723,9071,5426,8604,8411,7643,8548,5377,8255,5442,7930,8190,7994,5717,7542,7994,7628,7628,5358,8190,7811,8438,5358,5476,7746,5218,8509,8903,7482,7864,8033,8711,7990,7990,7628,7663,7867,7834,7495,8811,8267,8548,8159,8873,5501,0,8005,8005,5699,7817,8267,7588,7588,7706,5642,8022,5464,5325,7786,8170,8519,8447,5661,8509,5241,5218,8340,7962,7914,8073,8509,8467,5661,7643,5218,7924,5301,5514,8272,7482,7839,7500,7542,7658,5464,8267,7914,8391,0,5617,8827,8647,5305,7715,8039,7710,8179,8179,8179,8402,8438,8594,8015,8316,5708,8617,7800,8721,5699,5372,8484,5296,8509,5401,7742,8022,5309,7482,5329,8987,7994,8641,7800,7542,5617,5218,8745,8756,8539,7972,7957,5676,7706,7706,7628,5255,8239,8827,5337,5248,7972,8316,7558,7706,5726,5352,7930,5432,8104,5285,8833,7710,5401,5255,8005,5296,8255,7558,7482,7482,5237,5237,7883,8772,7888,8217,8217,7588,5291,8604,7675,8010,5501,8149,8149,5248,7653,7706,5274,8438,5485,8239,7478,8179,5291,8140,5274,8772,8119,7920,5476,5573,5274,5386,7883,8772,5485,8022,7653,5285,8082,7811,7582,8196,8196,5726,8340,8800,5661,7616,5708,7790,5476,7516,7719,7667,8359,8514,5347,7663,7516,7834,7795,5367,7710,7628,7482,5491,8249,7663,8249,8217,7706,5305,5347,8514,5442,7972,7495,7495,7834,7924,8073,7972,8582,8582,5337,5564,7511,7763,7558,0,7877,8249,5347,8359,8190,8261,7877,5325,8170,7811,5617,5476,5401,7823,5651,5629,5291,8461,8461,8461,5717,8354,7478,5407,7500,5320,8164,5237,7558,8494,5381,5717,5407,8322,8154,8322,8427,7582,7706,7977,5459,9353,7977,5325,5391,8795,5325,8005,5671,8919,8427,8519,5717,5407,5381,7628,5407,7834,5329,5237,8427,5237,5237,8287,5491,5726,7982,7982,7982,7864,5391,5301,7790,7982,5301,7565,5612,8411,7828,7592,8987,5476,5476,5261,7982,7893,7834,8087,9358,7774,7687,5688,5333,8201,7904,8245,8705,5564,0,5437,5480,8015,7757,8756,7628,7692,7653,7914,5496,5476,7786,5568,7478,5480,7542,7972,8504,8144,8514,5514,7924,8816,8282,7935,7648,5237,7542,8282,7977,7628,5564,5708,5237,7920,7972,5209,7864,5471,7999,7558,5325,7834,8582,8411,8783,8170,7752,7982,8354,5291,7904,8196,5655,5241,8267,5509,8293,5476,5320,9361,8057,7853,8307,8756,5578,8057,5564,8174,7904,5708,8115,8641,5568,8099,8322,0,7982,8222,5224,7972,5352,8772,7734,7920,7658,5642,5655,7687,7924,8222,7849,8447,5476,8539,7710,7920,8925,5305,5712,7914,8387,5442,5726,8438,5573,7977,5564,8427,7605,7883,7637,7715,8184,7986,5564,8174,8282,5213,8093,8136,8625,7542,8170,5480,7904,5480,5480,5708,8170,5314,7533,7999,8126,8126,8539,8447,8170,8144,7610,5407,0,5218,5347,8381,8073,8115,7542,8727,7795,5391,5381,5241,8566,7817,7817,7768,8969,8879,8365,8898,7710,5661,8604,5296,8751,5635,5391,8136,8073,7710,7795,7972,8144,7888,7888,7972,7867,8345,8789,5655,5717,5285,7692,7582,8613,7681,8577,7687,5329,5459,8631,5291,0,8170,7972,8375,8387,9361,7738,5661,5386,8903,5285,5241,5325,5296,8329,0,7663,5480,7495,8451,8073,8845,5377,5655,7558,5612,5612,8946,5712,7610,8170,5352,5407,5476,8805,5261,7495,5509,5661,5496,8527,5285,7478,7667,8484,8316,8653,8154,5647,5314,8057,5333,7904,7653,8670,8077,5676,8115,8022,7491,5291,8201,7811,8201,9021,5476,8533,7672,5448,5480,8149,7962,7898,5407,7811,8479,0,5509,8196,5352,5617,8577,8438,8514,5564,8126,8170,8479,8494,7663,5676,8354,8548,8033,7805,5381,5647,8543,8136,8184,7495,8443,8494,5237,5274,7558,7828,5514,8099,8745,8461,7888,8087,7757,8057,8539,8015,8234,5325,8272,5280,7706,5213,5320,7542,8093,5476,8387,5291,5241,7779,7795,5476,8154,5261,5241,5329,7774,8772,7935,5224,5381,5377,8571,8422,7834,8451,7967,8170,5606,7542,8800,8126,8087,5381,5329,8039,0,0,7972,7883,0,5274,5514,8721,5352,8467,7495,5407,5655,8484,5407,7628,7834,8005,7823,8062,8110,7920,7994,8159,7967,8190,7622,5377,8077,5496,5391,8548,5655,5476,8598,7946,8411,7924,7811,7834,8857,8345,7500,8387,8494,7990,8663,5325,5377,7986,7986,7558,8509,8484,8484,5647,5381,5296,8845,5248,8851,5617,5661,8467,7542,7491,5496,7687,7930,5642,0,0,5347,7752,8196,7877,5717,7957,8548,8845,5285,8131,8196,5218,5699,5442,7710,8427,7962,7962,8073,5573,8164,5413,8451,5514,7990,5642,8479,7972,8293,5661,5407,5448,5688,5524,5274,8851,8940,5309,7763,7864,7805,7495,5261,7738,5381,5629,7533,8282,8245,5301,8272,7982,7972,8631,5367,7542,7752,8322,5606,5655,7864,5237,7495,7768,5496,7687,5717,7478,8869,5617,8756,5617,5320,8126,5642,8888,5448,8772,7730,7877,5612,8239,5248,8519,8039,5224,8527,8952,8539,7706,0,8533,5401,5629,7710,8721,5329,7632,7957,8548,5671,7982,7687,8519,5629,5396,8402,8716,5305,5419,7952,7616,7972,5708,7972,8077,7800,5261,5568,5320,5612,8641,5285,5305,5305,5578,5274,8946,8647,5419,7482,8131,7542,5329,5325,7616,5291,8959,8959,8149,5471,5274,8821,8005,8365,5476,8329,7558,7558,7730,5386,7946,7487,7542,5464,8245,9021,8184,7516,5241,5296,9345,5285,5325,8340,7883,7883,7935,8073,7935,5291,7675,8239,8543,5564,8255,8073,8451,5314,5622,5480,7734,8196,5471,8184,0,5661,5329,5285,8498,7738,7653,8255,9361,5407,8811,5218,5666,8144,5329,5261,5314,8115,7734,8287,5325,8903,5612,8340,8745,5485,7811,5381,8196,7908,7883,5237,5717,7920,8073,5708,8170,7491,0,0,5448,5651,5325,7658,5314,8479,5426,5347,8936,8170,7491,8613,7491,7491,8447,7982,5325,8888,8381,5717,7972,5381,8144,5305,5407,5661,8577,8772,8126,5448,5329,5329,7648,7972,7533,7924,5666,7730,5320,8365,8184,5274,7667,8154,5301,7986,7653,7616,5329,7610,7542,7542,8365,7542,5347,8589,7616,5712,8261,7877,0,8498,5237,5617,7632,7667,5651,5301,8365,5329,8772,8857,5301,7828,8631,8903,5285,5291,5347,5301,7700,7972,7952,7952,7706,7528,7734,5342,8087,8898,5337,5671,5476,7817,8811,8282,7565,5241,8073,7828,5568,8438,7478,7786,7849,8604,7675,5651,5573,5717,8539,7500,5285,8438,8033,8484,5655,7888,7628,7710,5708,8126,7500,5285,7888,5401,8077,5358,8227,7828,7888,5476,8811,8589,7990,7834,5471,7706,8307,7675,7888,5285,5485,7924,5367,8438,5320,7663,8255,7663,5241,8539,5655,5564,5320,8239,5726,7504,5237,5285,0,5285,5314,5476,5401,5358,5301,7675,7675,7752,5529,7706,7706,8533,8888,5291,8533,0,7893,8282,8282,5347,7628,5347,7994,8307,8119,8239,7977,7982,5661,7977,7628,5655,5285,8494,7853,5573,5309,7710,7482,5564,8322,8427,5726,5314,8427,8676,5314,7487,7528,5314,5314,8196,7516,5314,5573,8676,7605,7565,5661,8560,7628,5391,8456,5337,0,8334,7706,8427,7790,5329,8456,7920,7511,5564,7565,8190,5485,5485,8447,8443,7999,5476,7511,8670,5407,0,5476,7706,7972,8010,8647,8010,8427,8625,5342,7628,7478,5325,5325,5325,8154,8915,7883,8484,7972,5372,5661,7681,8329,7500,7500,7500,8811,7653,7658,8539,7500,7877,5391,8582,7924,5391,7599,8438,8438,8068,8104,7478,8267,7930,8608,8115,8282,5381,8653,8119,7982,7565,8052,7952,8227,8190,8391,7643,5501,8196,7982,5476,5237,7528,7834,8115,7565,8772,7914,8170,7924,8365,5224,5426,7616,8190,8456,5655,8093,8104,8052,5712,7571,5305,8411,7500,7643,7999,8548,5391,5391,7628,7893,5459,7790,8447,8227,7752,7582,7663,5224,8608,7576,7610,5274,8582,7681,8783,5391,5464,5464,8190,8005,7500,5285,5309,7972,5309,8987,8316,8062,7834,5671,7521,8635,7675,7491,8267,5296,7653,7653,7667,5509,5274,8653,7576,5237,7558,8119,8201,5578,5578,7478,7653,5296,8052,8033,5509,5606,5314,8397,7576,7734,5485,5237,5261,5476,5237,8745,7706,5485,7952,5655,5476,7972,8345,5509,7516,7779,8227,7599,7675,8365,0,8190,8190,5476,5367,8267,5296,5564,8438,8005,7849,7616,8762,7994,5320,8745,7790,7823,5407,8699,8345,7924,8104,5642,5612,5309,8391,5285,8509,5524,5534,8227,7706,8052,7834,5301,7663,5325,7952,8514,8365,5661,8052,7715,5305,8827,8447,8015,5296,8222,7653,8190,8732,8239,5274,7883,5485,8959,7516,8068,5237,5476,5325,5464,7658,7491,7491,5301,8772,8316,7675,7893,8196,7999,8052,5476,7521,5426,9367,5285,8222,5485,7834,7663,7491,8613,5320,8249,8329,5642,7734,5301,8033,8582,5459,0,7834,8154,5329,5237,8164,7610,7700,7632,8375,8635,5629,7834,5573,8354,8354,5726,5476,8845,7491,7982,7849,5320,8340,8340,0,7800,8554,8554,5377,8397,8179,7500,5296,7482,7867,5501,7920,8354,5337,8821,5352,8282,5564,8093,7893,5726,0,8293,7681,8851,5655,7843,7843,5676,8391,5464,7599,8068,7999,5325,7706,7616,8548,7599,8316,7843,0,8249,7610,7715,8919,7994,5305,8543,7687,7605,7605,0,7605,8504,7904,8312,7888,7888,8479,5301,5688,5325,8484,5358,5519,8805,7839,8302,0,8925,7768,7542,7628,8811,7478,5496,5261,8329,8010,7478,5209,5301,5426,7774,8879,8504,8670,5480,8539,8015,8211,7710,5476,7786,7817,8762,5476,7706,5320,8461,7681,0,0,0,8277,0,8211,7924,7538,7622,7487,8467,8560,7893,7930,5381,7582,5524,5642,5274,5573,8658,8994,5320,5396,7528,5442,7605,5442,8022,8282,8022,5325,8354,5309,8131,5325,7790,7920,5358,7599,8608,7565,5501,5476,5564,7823,5237,7982,8387,8307,8329,5655,5642,7516,7872,7864,5712,7999,8039,7972,8827,8267,0,8307,5320,5372,0,5301,0,5407,7558,0,8322,8527,7823,7675,5274,7692,5255,5476,5237,7972,8625,7675,7977,7977,8131,5564,5305,5476,7491,7491,5391,8077,5358,7888,5476,8093,5224,8447,7986,7849,7533,8010,7548,5491,7839,7924,5564,8073,8711,8811,7706,8297,8110,7790,7999,8022,5578,5367,5337,7914,8170,5480,7571,7823,8381,5218,8539,7972,7687,5496,7883,7786,0,8484,5708,5564,5407,8073,7888,7990,8716,7605,5358,7511,7637,7687,7487,7605,8456,5391,8625,5496,5642,5291,8484,5391,7972,7511,5712,0,8164,7687,0,8473,8427,5381,7610,7582,5329,0,5301,5347,5218,5320,8329,8969,7706,5655,7706,5301,5476,7521,5655,5301,7588,7795,8795,5224,8504,7675,8073,8504,5224,5209,5442,5476,5381,7500,7605,5407,8397,7696,7696,5337,8048,7817,8898,8149,8427,5301,0,7924,7849,8682,7972,7710,5717,5437,8375,5564,5381,8560,7952,8272,8687,7994,8582,8613,8345,8345,5676,5476,5314,7692,7972,7723,8316,8940,8940,7811,5381,8484,5529,7888,8863,7628,8365,0,7616,0,0,8427,8387,5386,5655,8903,7706,8255,5396,7908,5419,9345,8329,5612,8302,5655,7930,8805,7795,5485,8073,8543,5564,7872,8316,5291,5237,7843,7511,8527,7706,7752,7667,8811,8140,7779,5688,8805,5337,5712,7898,7610,5352,9345,8539,8190,5647,5372,5708,7786,5358,8539,7653,5209,7972,8504,7930,8845,5407,7811,5509,7495,7977,7681,5325,7675,5329,7811,8670,8433,5501,8022,8249,7478,5301,5301,8307,8433,7616,5612,8170,5377,5381,8653,5314,5320,7877,8010,7994,5485,5301,5224,0,0,8272,7972,8277,5401,5407,5314,8093,5301,7706,5224,9032,8827,7542,7746,7706,7706,7774,8234,7877,8594,7893,5213,7898,8057,7643,8548,7558,5372,5325,5301,5352,7628,7628,7786,7643,7582,5629,8461,7599,8539,5237,8010,7558,8427,7706,8467,7834,7628,7768,5476,9367,8504,7805,8873,7706,5314,5564,7990,8277,7967,7967,5314,8721,5501,5501,8033,7723,8077,5509,8039,5329,8052,5381,5476,5442,8170,8170,7558,7571,7779,8322,7972,8863,8387,8170,7930,5285,5314,5209,8888,5352,5693,5573,0,0,0,5407,7952,5237,8762,7542,0,0,0,7632,7972,0,0,0,0,5352,8427,0,5480,9367,7888,7491,8998,7994,7994,8676,7977,8548,5407,5476,7914,5237,7834,7834,8732,8427,8104,7628,7849,7687,8494,7858,5358,5642,8154,7500,8893,7924,7986,7834,8543,7643,8005,5381,8005,7487,8527,5661,5480,7972,5407,7715,7790,5573,7982,7982,5401,8873,8805,7823,7628,5337,5712,8022,8190,8190,7616,5655,7858,7491,5325,5381,7491,5573,8598,7628,8694,7994,5712,8539,5325,5381,8509,5688,7616,8110,7946,7957,5333,0,0,8751,0,5671,8772,5347,8267,7628,8033,5329,8170,0,0,0,5661,7977,5476,8427,5564,8716,5651,7843,8164,7786,5407,8170,7738,5642,5655,7898,8302,8467,5209,8391,7588,7977,5642,5381,5464,8811,7893,7687,7542,7538,7962,8467,5661,8164,5391,7972,8402,8267,8805,7511,8164,5629,5699,8533,7487,8119,7738,7990,5237,7786,7706,8898,5524,7962,7533,8272,5717,8329,7828,8417,5325,8851,8131,7805,8322,5496,7542,8359,5712,7500,8461,5524,5314,5480,0,7924,7828,7977,5407,8397,0,0,8888,7605,0,5237,7706,5401,5296,5218,7542,8039,5671,5671,8641,5396,8140,9367,8402,5413,5337,7982,5419,7982,7811,8005,5476,8077,5524,8756,7952,7952,8340,7800,5309,8539,9345,5333,7843,8033,8827,5301,5519,8745,8617,8010,8316,8721,5325,5612,5666,5329,7779,5651,7957,8783,7588,7990,5320,5629,8473,5329,8484,5320,7687,5320,8015,8514,5305,5453,7924,7681,5352,7605,8302,5237,7768,7946,5407,8827,0,0,8322,0,7616,7696,7528,7972,8255,8397,8827,7734,5320,5396,8005,5655,9021,8354,8427,5237,8329,7828,8048,8811,5305,7478,8255,5386,7516,7511,8255,5274,8489,8010,8427,5480,8149,8267,8598,8422,7558,5629,8249,8170,7558,7588,5291,5291,8772,5296,5325,7495,7521,5480,8381,7872,7605,8519,8833,5501,7723,8297,7946,8433,7786,7511,8149,5524,5573,0,0,0,0,5325,8307,0,5329,0,0,8467,7738,5320,5419,8772,7516,8789,7482,5237,5342,5261,8397,8190,7558,8811,8170,8397,5476,8196,7734,7834,5666,8527,5296,8903,5325,5342,8073,5358,5693,5573,9361,7908,5325,5381,7977,8745,5578,5407,8322,8479,5476,8473,8022,5617,7516,0,5496,8249,7482,8272,7658,7746,7706,0,8888,8154,5325,7542,5651,8381,5476,5524,5407,7482,7696,8745,7834,7706,5651,7999,7952,8104,5325,8005,8312,8919,5573,0,7746,5337,7972,8687,7542,5666,5666,7730,5329,5301,8498,7672,7763,5296,7742,5329,5381,5524,8762,8467,5301,7893,5314,5448,5401,0,5573,0,7605,5329,7834,5301,7605,8033,5381,7864,7588,8359,8077,7628,7610,8277,0,5274,0,8170,7675,8093,7616,5407,7482,5337,7616,7521,8789,8073,7877,5347,8170,8617,5617,7994,8827,7768,5726,0,0,7628,7632,5301,8365,8375,8903,5291,0,5347,5347,7605,5666,5301,7904,7700,7628,8093,0,7542,7839,7811,7528,7628,7628,7542,7742,7500,8783,5573,7710,8509,5476,5291,5237,7500,5367,7628,7908,7843,8739,8851,5237,7663,5476,7706,7982,7710,8196,8739,8795,8739,8795,8732,8302,0,7482,7528,5661,7628,7542,7675,5476,5717,7478,8772,5309,7742,7982,5377,7811,7500,9054,5237,7675,7500,5237,0,5401,5573,5476,8795,7628,8287,7811,7972,5241,7839,8201,7478,7706,8201,8201,8082,8170,7542,7710,7719,7710,7719,7548,5342,5342,5301,8451,7628,5301,7952,5491,5491,7487,5407,5578,5305,5305,5642,5305,8140,7924,5606,8119,5491,8987,7500,8329,5320,8179,5291,8647,5280,5688,7588,8745,8267,5401,5476,8998,7972,7491,8179,7643,7883,5325,7491,0,8267,7752,5442,8888,5377,5309,8987,7482,7757,8140,5296,8498,5476,7883,8762,5419,5401,8888,8762,0,5407,5320,7742,8676,7605,7482,8745,5476,8302,5699,7990,5642,7667,7828,5296,5296,7786,5699,5325,5476,7742,5296,8676,5476,7675,7478,8721,7715,5712,5712,7663,7571,8762,7628,5358,5358,5358,7920,7920,5358,7877,7790,0,0,7734,0,7977,8427,8159,7715,5480,8329,7696,8164,5274,8170,7715,8052,5688,8307,0,8772,8456,8170,7888,8402,5358,8589,0,7790,5342,7628,7628,5480,7849,5407,7738,8589,5329,7715,5301,8316,8164,8227,7734,7632,8427,5514,8427,8249,7632,5726,5459,5391,8539,8438,5291,8211,7706,8959,8716,7706,8479,5274,8732,5501,8915,8028,0,5564,7914,7582,8745,7706,7482,5237,8370,7924,8345,8387,7990,8745,8387,7582,7883,5329,8745,7924,8267,8267,8839,8589,5241,5224,5218,8903,0,5333,8447,8068,8010,7952,8805,7972,5688,8888,8115,7746,8498,5296,7757,5476,5496,5314,8732,5509,8010,5491,5237,5480,8211,5688,7706,5261,5213,7653,7542,7478,7478,8329,7487,8613,7817,5419,7710,7478,0,0,5629,7972,7710,7542,5651,7628,7599,8745,5485,7872,7667,8062,7658,7768,5325,8411,8411,8811,7752,7548,7565,7504,5291,8560,0,7706,5501,7500,7500,8196,5476,8494,8267,8467,8560,7834,8033,8033,7883,5337,5471,7982,8154,7867,7715,8110,5712,7738,7746,7478,5248,5606,5358,8302,7972,8456,7533,8863,8925,8131,7511,5712,8115,8527,7742,5301,8099,8777,8527,7994,7982,5305,5712,5320,8170,8365,5480,5480,5480,7849,5301,5651,5476,8048,7893,5337,5606,7972,7999,7786,8427,7834,7487,8582,7592,8170,5661,5688,5476,7977,7548,7768,8073,5296,5651,8543,5314,5573,5333,5337,7786,8062,8811,8048,7790,7487,7982,5255,7839,8010,7710,7588,8381,7558,8093,8174,8073,7706,7487,8447,8170,8354,7605,8119,5666,8190,5529,5564,7533,8438,7658,7924,5325,5218,8721,5413,5529,7610,5329,0,8073,5661,8312,8115,5485,7482,7576,5325,5476,5296,5296,8397,7558,7482,7994,5730,5407,7924,8577,7487,5325,7696,5426,5564,7730,5612,7972,7482,7478,5237,8898,7605,5419,7632,0,8345,7582,5476,8711,5666,5476,5651,7768,5309,5305,7994,7675,5661,8062,7500,8851,8582,8272,7867,8170,7696,7576,8613,5255,8329,7504,7972,8687,7811,8391,8154,8631,5280,5213,7478,5726,7511,5476,7977,5485,7542,5419,5285,7558,5391,5314,8604,0,7908,5325,7511,7877,7643,7982,8789,8329,5309,8577,5688,7994,5578,7667,7653,7898,8211,5314,5337,5237,8073,8307,5509,8062,5476,7734,7616,5347,8052,7843,7653,5301,8845,5564,7478,5401,8104,8527,5476,7628,8316,8149,8370,5309,7977,5248,5534,5712,5342,7558,8456,5274,7914,5647,8653,8751,8077,7653,5485,7675,5617,8184,5647,5218,7675,5274,8805,7864,7588,8068,5676,8433,5377,5301,8839,7487,5666,8839,8272,8762,8149,8277,5401,7994,8494,8267,7811,8539,0,8489,5407,8015,7719,5564,8721,5426,8087,8969,8387,8287,8015,7491,8571,8494,7653,5480,7582,7849,8494,8170,8811,7779,7643,7738,5314,7828,7867,8407,5676,5209,5237,5642,7706,7786,8039,7653,7516,5629,7576,5352,8052,8227,5320,7706,7565,7710,5329,5386,8170,8272,8827,5666,7972,5352,7893,8022,5606,7920,7883,7628,8447,7628,5329,8811,5651,5485,8093,8099,7482,8402,5726,8359,7628,8184,7914,8647,8104,8631,8467,8277,7643,8745,7834,7542,5606,7622,7972,7482,5651,8543,8467,7752,9071,7893,8745,8467,7990,5325,5617,8467,0,5329,5209,8762,0,5407,8438,7920,0,7628,8467,7914,7914,8110,7811,7605,5407,8699,7628,5688,8805,5726,8762,8527,7687,8073,8494,8494,8539,7994,7752,8613,5661,8604,7994,5717,8461,7834,8062,8190,5651,7990,7790,7616,7834,5337,8062,7622,5426,5712,5437,7643,8716,8005,5391,7864,5213,5712,5401,7706,7706,5712,5606,8694,7994,8179,8641,7746,5296,5305,7500,5325,9054,5407,5407,7982,8527,7521,5476,7482,8427,5391,5381,7558,5464,8772,7628,5358,8438,5391,5647,8119,5218,5726,7548,0,8484,5285,0,7482,5629,7610,8154,8467,7823,8282,5337,7768,7805,7779,7877,7834,8104,8077,5209,5509,5391,7800,7616,0,8005,0,5407,7500,7672,7952,5671,0,0,8312,5309,7952,5629,8467,5612,8467,5401,5642,8249,9032,8119,7990,7658,8245,8631,7511,8131,5514,8391,7687,5391,5476,8099,7538,7734,7994,5301,7774,7478,5237,7752,8322,8115,5391,7588,5476,5655,5448,8267,5519,7482,8164,7643,7588,7588,8447,7738,5391,8613,7994,7533,5573,5573,8334,5534,8777,7763,7849,7828,8052,5464,5237,5209,8539,7972,7616,5564,5381,5396,5717,5209,8272,8909,5342,5358,5285,5296,8234,7482,5524,7610,7972,7834,5617,7800,7616,8104,5329,5347,8375,0,8888,8772,7628,5448,7982,5358,8473,7972,5419,5568,7914,8987,8539,5651,5708,5329,7982,7982,5337,7877,8010,5218,8234,7800,8745,7628,8647,5325,8387,5285,7706,5237,5325,5329,5329,7610,5309,8039,8827,7957,7972,5671,8322,5301,7834,8340,5285,8827,8658,8641,7742,8909,7491,5237,5651,5629,5305,8987,7653,5401,5347,8631,5301,7542,8527,8190,5476,7800,5209,8211,8756,5666,5352,5320,8015,8015,5248,7500,7811,8144,5407,7834,8519,8239,8402,5377,7924,5419,8827,7616,8062,8329,5320,8721,7616,7675,0,0,7500,5401,7972,7994,7920,5291,5285,8312,8903,5296,5381,7478,8994,5325,7533,7952,7675,7542,7542,5237,5329,5237,8190,5471,5464,8438,8489,7588,8239,5655,7548,5476,8539,5509,7883,8772,8783,8329,8005,0,8670,5647,7605,8589,9372,5358,5261,7877,7877,5320,8316,7734,7516,7994,7719,7719,7558,7592,7558,5396,5285,8149,7935,8811,8879,7946,7487,5320,5352,7653,8267,7511,8062,5564,8052,7849,5274,5407,5261,5237,0,0,5347,0,7628,7516,8438,5372,8903,5509,8115,5661,7628,5301,5391,5529,8093,7800,5209,5218,7908,8179,5401,7828,7491,5708,7811,5655,7877,7800,7883,7883,5476,5342,7920,8170,7738,8196,5325,5314,5401,8789,8039,5309,5501,7719,5325,5342,5296,5573,7738,8022,5693,0,7605,8277,8888,5401,5651,5391,5320,5651,8381,7616,7616,8249,5309,7706,7920,5325,8052,8613,8397,8494,8272,7482,7482,8217,7839,8154,5485,5347,7667,7663,7734,5314,7994,8888,7786,7542,5426,0,8144,7893,0,0,5407,7994,7632,8365,5329,5301,5337,7924,5329,7487,5381,7616,8762,7599,5296,5661,7533,7914,8473,7877,5305,7511,5407,7734,7719,7558,7786,8888,8154,5274,5329,8196,7653,7616,5218,5301,5485,7675,7616,5342,7994,5661,8359,8052,7605,7610,8277,8217,8010,7982,8277,0,0,7616,5651,5325,5401,5407,7616,5501,7516,5476,5407,8354,7877,5491,8261,5407,5347,8010,8617,8467,5314,8527,5617,5666,5347,8827,5726,5218,7542,8048,8721,5699,7834,8052,0,7730,8365,8375,7834,5301,5651,5261,8772,8903,5285,7877,0,8052,7904,7605,5347,5347,7700,5509,8375,8329,5274,7834,8811,7834,7628,8154,7487,7763,8687,8919,5296,7675,7675,0,8062,8093,5372,5622,8484,7687,5661,7710,5314,5437,5437,8179,7924,7706,7548,5501,8816,7592,7752,8312,5476,5329,7805,7920,8509,7533,7834,8509,8334,7715,8783,8239,7952,8756,8068,8687,7528,7972,8687,8687,7994,8322,0,8245,5367,5241,7605,7990,7999,5564,7904,7888,7888,8093,5314,8190,8170,8772,8174,7592,8174,7658,7658,5224,7924,8316,7653,7605,7687,7828,7994,5391,5401,7710,5464,0,7982,8851,5347,5485,5285,7500,5426,7768,8577,7811,7924,7675,5519,5274,7482,7478,7576,5642,5391,7994,8316,5529,5437,8509,8062,7632,5367,7605,8190,5241,8312,7834,5296,8687,5578,5296,8898,0,8010,8670,7491,5296,0,5629,5309,9071,0,5237,5564,7592,7935,7734,5485,5314,8805,5509,8370,5352,7843,5261,7982,8527,7710,8164,7982,0,5320,7849,8329,7692,5291,7675,5237,7834,7653,9345,7667,8539,5661,5325,7478,0,0,7653,7834,7811,8514,8170,5442,7930,5501,7516,8653,7643,8068,5237,8402,7478,8062,8170,5564,8494,5285,8827,8527,5255,7723,8893,5237,7723,7528,5314,7834,7834,5476,5291,7628,8461,8297,7920,7786,0,8119,8227,8670,0,0,0,0,8033,7849,8005,7548,8676,5367,5296,8527,5401,8190,5426,5464,5285,5407,5358,7616,7605,7994,8641,5606,5237,8699,8699,7877,7834,7592,7592,7628,5712,8302,7994,7491,7528,7723,8110,5712,7811,7500,7999,7994,8010,5688,5342,7924,8577,7605,0,5524,7795,8222,7982,8267,5367,0,0,8411,8131,8422,5629,8783,5261,8869,8073,5464,5661,5237,7478,5237,8267,7849,7849,5237,8267,7504,8716,5261,0,5642,8329,5651,5401,7616,7478,8164,0,0,8322,7511,5237,5358,8473,8548,5329,5407,8087,5476,7957,8527,5342,5476,8316,5291,8548,8267,7982,5476,7972,5708,7994,8239,7653,7742,9071,7592,7800,0,8987,8498,8833,5407,5237,5237,5237,5476,7675,7710,5464,7877,7491,7542,8297,7834,5274,8255,9021,8919,5471,7914,5285,5501,7487,8239,7628,7516,8316,8670,5501,8010,7834,8329,5347,5712,5629,5476,5485,8514,0,0,7616,7628,5476,5529,5347,7658,5372,8179,5342,5237,5699,8827,5401,5296,7605,5661,8093,7994,5476,5661,7999,5296,0,0,5347,8613,5274,8898,8329,5309,5442,5442,5642,7849,5347,8473,8164,8987,5305,8222,8893,8015,8589,5708,5367,8582,8851,7628,7746,5329,5442,5442,7834,5237,7920,5391,5391,5688,8261,8354,5347,7582,5291,8316,8721,5688,7779,5651,5629,7779,7834,5224,8093,8498,7628,9361,8387,8994,5241,5325,5381,8467,7663,7994,7877,7516,5291,5564,7491,7904,5459,7491,5642,8443,8617,7696,8322,8519,5717,8205,8716,8322,8484,8322,7858,8282,7533,8670,5407,5213,8762,7982,7853,5333,7548,5459,7898,8255,7982,5337,7558,8762,8387,7558,8816,7763,8751,8484,8711,5480,7715,8149,8504,9377,7565,7790,7715,5391,7478,7834,7977,7930,5391,5407,7786,5337,8375,8119,7715,8539,7542,7768,7768,5209,8594,5237,8211,8946,7542,7478,7786,5237,5301,5301,7516,5325,8461,7972,8543,7768,8489,8762,8170,7977,5407,8527,7858,7990,8170,8898,5573,7478,7930,7632,5381,7538,8682,7994,5301,8387,8316,8387,5419,7853,5301,8762,8577,7920,8647,8222,5237,5442,7994,8005,7521,7768,8010,7904,8010,5688,7491,7774,8073,8345,5381,9345,8687,7538,5337,8756,8504,5325,8387,7599,7811,9345,8267,8582,8816,8539,8745,7548,5442,7930,7920,8170,8447,8119,8174,5367,9008,7982,8093,7893,8777,8447,5391,5337,8131,8354,8170,7883,8312,7786,8316,8381,7811,8727,5285,7849,7999,5325,5476,5261,8227,8164,8087,8316,8149,8762,5367,5391,5396,5241,7628,7962,7628,5358,7478,5237,5676,5301,5367,7482,7940,7843,7930,7972,7834,8302,5301,8456,5274,7757,5471,7752,5642,7904,8756,8447,8473,7482,7478,5237,5407,8048,8653,7834,8039,7883,5651,8227,5476,7972,5241,5296,8249,7774,8140,5617,7994,8732,7632,7982,8548,8987,7994,8527,8494,8329,5426,7605,7790,7994,8467,5274,8641,8387,5386,5661,7977,5730,8411,5337,5337,5712,7687,5642,7962,8073,7977,5396,8467,5448,7663,8467,5491,7628,5391,7883,7605,8201,5655,8519,8670,7800,5485,5419,7715,8015,7877,5708,5377,8427,7849,5358,5291,5358,5358,5464,7734,7571,7628,8316,5642,8239,8851,7675,5218,8631,5237,5717,5676,8762,5296,7908,5274,5661,7738,5274,8329,8381,8048,8154,8417,7696,8577,5386,8687,8087,7952,7738,5274,5651,8261,7811,5386,7632,5274,7706,5291,8190,7622,5209,5329,5329,7628,7588,7599,7482,5391,5693,7605,7500,5325,8062,8539,7768,8811,8484,7628,5496,7710,8329,7538,7576,7478,8613,7752,5381,8387,5501,5329,5413,8354,5291,8604,5291,5509,7637,5712,7883,7920,7994,7811,5274,7558,8093,5491,5476,8345,5255,7828,5564,8190,5237,8073,7839,7823,7977,8670,8312,7628,7990,8297,7864,7914,5476,8443,7977,8438,5261,7511,5358,5655,5655,5291,8048,7610,5309,5285,5407,8589,8687,5274,7576,7817,7834,5519,7924,7500,7632,7487,7605,7528,5519,8329,5377,7696,5442,5642,5367,7946,7952,5248,7500,8282,8456,5564,7849,8170,7643,5213,7864,7558,5377,7893,7478,8387,7667,7930,7930,8805,5274,8287,7653,8190,5224,5688,7768,7843,5301,5519,5564,7511,7491,5237,8093,5301,5606,5401,5612,8514,8479,8772,5291,7805,8427,5352,5629,5730,8170,8033,5377,7752,5485,5381,7828,5573,5314,8456,7558,7982,7706,8548,8653,8227,7706,5413,5509,5329,8827,8721,7834,7757,7930,7516,8196,7920,8994,8716,7774,5407,8048,7491,7723,8302,8745,7643,7628,7790,5712,7834,8190,7548,5426,7977,5381,7994,5655,7994,8893,7811,5381,8732,5407,5622,7924,8494,7768,5367,7935,8467,8795,5386,7982,7616,7628,7930,7872,7719,7511,8427,8164,5612,5642,5407,7500,5309,7839,7616,7538,7972,8548,5629,5301,7843,7952,5655,8322,8451,8604,7999,5642,7663,7853,5647,8925,5329,5622,8827,5309,5476,8402,8827,7972,5301,5367,5612,5688,8190,5708,5401,7800,8015,7538,7898,7616,5629,5329,5381,8919,5261,8833,8329,8777,8903,7516,7930,7723,5218,5464,8772,7734,5485,8010,5309,7511,5325,5437,5485,7663,5358,8179,5726,5372,8903,8402,8234,5372,5296,7811,7719,5342,8732,7628,7628,5309,5329,8888,5485,7752,8397,7653,5237,5325,8190,8821,8154,5671,5666,8647,5301,5401,5329,7800,7542,7723,5578,7616,7582,5622,7610,5261,8255,8365,8422,7616,5651,7521,5237,8721,8479,8365,7811,7795,8073,5459,8222,7982,7972,8647,8282,8261,5301,8631,9026,5419,7542,5291,7864,7565,5407,5534,7742,8073,7786,0,7588,8093,5476,5255,7839,5309,7977,8255,7710,8527,8903,8249,8057,8863,7667,8411,7576,5655,8903,5485,7616,7706,5407,5573,8539,7742,8249,5622,5352,7516,8833,7478,7920,7883,5534,7616,7834,8811,5491,7914,7478,5606,7653,8227,8119,8577,8119,7877,7877,8222,8119,7588,8365,5218,8952,5329,5564,5218,5413,8527,8381,5606,5337,7977,7914,8261,7828,5296,7823,7828,5255,8805,5396,8805,7768,5209,8249,5358,8267,8365,8467,7511,8227,7715,8267,8010,5564,8845,5606,5381,5381,7768,7994,7696,5606,7696,7528,7533,7487,7834,7834,5391,7511,8543,5655,5573,7715,7790,8604,8307,8126,5358,8245,7972,5329,7706,5329,7768,7779,8010,5396,7628,7628,5237,7667,5476,7817,7628,5459,5442,5224,8903,8287,5325,5509,9382,7924,5407,8641,5666,5325,5496,7877,7592,8641,7516,8028,5419,5442,8461,5459,5459,7920,8077,5437,5320,5320,7972,5476,8519,8131,5693,5358,5381,8239,7817,5717,8484,7667,8789,5261,5651,8293,5301,7924,8033,5337,7904,5381,5568,7972,5564,5661,5358,5476,5301,7658,8519,8527,7605,8174,7920,8811,7990,7839,5661,8873,7883,5655,8048,7972,8909,8170,5325,7893,5726,7828,7977,5274,5496,5224,9032,5241,5218,5485,7768,5248,8316,5476,8509,7994,5296,7888,7924,5301,7972,8727,8387,5712,8307,5485,7675,8316,7516,8211,7920,7675,7940,7734,5301,7972,8451,8170,7478,8302,8149,8087,7811,5274,8527,5352,8527,8721,8772,7893,7538,7516,7710,5325,7828,8345,7710,5358,7930,8438,7786,8217,7864,7994,7628,8402,8479,7605,8504,7883,5501,7867,5325,7628,5730,8527,7986,7924,7752,5647,7628,7795,5396,7811,7692,7977,7482,5476,5329,5514,5291,7710,5237,8721,5476,7752,5325,8519,8282,5666,7511,7637,8087,8293,7828,8245,8959,8772,7877,8473,7795,8140,7632,5476,8548,5442,8015,8533,7972,9045,5699,5496,7957,5329,5305,5309,7482,7616,5464,7888,8239,7610,5485,7957,8149,5274,7893,7883,5529,7990,7834,8282,5496,8519,8625,5407,7628,7994,5476,7893,7920,5666,5301,5320,7883,8461,7828,8073,8277,8959,5325,7710,7924,5274,5381,5241,7834,5301,8154,8277,5407,7828,5274,7616,7482,5726,5218,8772,7828,7687,8509,8375,8073,7877,7952,8312,8048,8919,8048,8126,8126,7867,5358,5372,5372,7790,8407,5314,5381,5464,7952,7839,8093,5524,7952,5407,5285,5352,5524,7663,7864,8052,5407,5358,5509,8498,5305,5237,7663,7592,8052,5464,8052,7817,7977,7478,8349,8577,8312,8946,5285,7972,7582,7605,5301,8647,5726,5285,7920,8811,8174,7576,7667,8149,8879,5699,5568,7786,7667,7667,7576,7687,5381,8427,8762,8438,7990,5485,7628,7930,7999,7548,9054,5218,7616,7849,5476,8329,5676,7849,8608,8427,7834,5407,7849,7628,8005,7582,5671,8479,7533,7478,5688,8119,8479,5329,8427,8249,5329,5309,5391,5407,7533,8721,8345,5329,7924,7576,8903,8010,7786,5301,7715,7558,8811,7500,8211,8211,7972,7706,7935,5606,7521,5471,7528,5237,7533,8222,5471,7478,8267,8119,9389,8267,7746,7533,8827,7622,7883,5712,7790,8795,5274,7742,8345,8174,5241,5642,7914,8154,7723,5655,5396,7930,5386,7710,8119,5712,5476,7605,5655,5655,7746,8582,8467,5459,5476,5209,5209,8783,7687,8190,7893,7982,7853,5342,7952,5651,7883,5476,7696,8391,8190,7710,8582,5676,8711,5655,7681,7924,7834,5305,7548,8447,7999,5241,7528,7667,8670,7653,7811,8539,7478,5296,5676,7864,5509,5274,5237,8653,8277,5407,5261,5314,7643,5509,8093,7823,7883,8577,9394,5485,5241,8582,8277,5342,5676,8839,5342,8762,5329,5358,7715,7643,8447,5329,5476,5381,7774,7576,7628,7643,7482,7994,8670,5325,5699,8375,5391,5676,5661,8762,5309,5699,5377,8005,5524,7872,8711,7500,8048,7752,7622,5442,5301,5651,5534,5568,8387,8033,7990,5448,5367,7723,8334,8391,7800,8387,7972,8015,8334,7757,5301,5305,8598,8827,7957,7710,7800,8647,7558,5325,8249,7834,5301,8959,8302,8255,7734,7605,8919,7914,8598,8239,7487,5301,8795,7491,7500,8316,8711,7516,8005,5274,7516,7663,5296,8427,5407,7786,8762,5726,5622,8589,5514,8179,8329,8179,7663,8249,5337,8888,7746,5337,8582,5291,8190,7746,8154,8048,8893,7610,8721,7800,5726,5573,5629,8795,7605,7790,5309,5524,7628,5448,8604,7872,5391,5476,7786,7972,8093,7914,7616,8170,7972,5285,8451,8676,7663,5285,8833,8154,8126,5391,5688,8312,5325,5209,8811,7478,5480,7692,8322,5237,8010,8582,8903,7538,8302,7883,5717,5301,5564,5209,7849,8154,7757,8879,7706,8795,5381,5501,7864,8387,7920,5578,7834,5342,5622,7935,5471,5529,7834,7667,8527,8048,8068,7687,5726,7628,7632,5480,5381,8539,8533,5655,7663,7893,7715,7605,5301,8411,8293,5255,5352,8093,8174,5333,8312,8073,8884,7914,8925,7495,5301,7610,8316,7742,5301,5524,5573,7667,5329,7605,5717,8154,7663,5386,7977,5329,7994,5564,7632,8800,5426,8119,8316,8068,5237,5476,5491,8851,5367,8255,8467,7908,8255,8322,8946,7675,5699,7768,7843,7752,7628,9059,5367,8211,5337,8539,7935,7935,7864,7511,7616,8211,5699,7834,8302,8653,7628,7994,7500,7849,5386,5407,8456,8022,7675,8946,5352,8391,8863,8571,8554,7706,8925,8745,7516,7667,8073,5693,5564,7757,7849,7687,5329,7663,5342,5699,5564,7930,7576,8217,7478,7706,8099,5509,7828,8461,8456,7706,8033,7487,7834,5459,5693,8762,5480,5381,7616,8411,5476,5358,7994,8851,5655,8676,5367,8903,7576,5386,5352,5407,8539,8772,5496,7473,8359,8272,5274,8190,5699,5699,7538,7834,8184,5476,7663,7839,7914,7487,5629,7898,5396,8631,7994,8940,5666,8451,5655,5367,7706,5401,7533,7994,8245,7675,5578,7990,7986,5396,9399,8234,5622,7877,5325,5708,5352,5329,5329,8795,8322,8033,8211,5666,7864,7706,5305,7706,8402,8443,8745,8287,7675,5325,8149,8073,5726,8833,8919,7904,7763,7516,5342,7828,5464,7533,8925,8255,8539,5301,5337,5285,7786,7786,8255,5471,5612,7628,5476,7849,7977,5647,5666,7811,5573,5237,5699,8903,5476,5419,7920,5372,8387,8751,7706,7663,8196,5407,7628,8821,8249,9406,8149,7779,5612,7763,8936,5274,8582,5666,5666,7972,5301,5301,8010,5699,8087,7616,9045,7610,7696,5301,8073,8617,5381,9067,8365,7834,5391,5391,5301,8705,5617,8354,7487,7706,7738,8800,5661,5274,5274,7972,7706,7972,5413,8217,7548,8068,7478,5391,5337,7972,7681,5564,5564,5651,8443,7972,7491,5209,7571,5726,7982,7605,7914,5342,7839,7637,5651,5329,7628,7521,7986,7681,8647,7605,7952,5367,7719,5325,8077,5655,5524,7834,5309,8033,5671,8073,5693,8479,8154,8272,7706,7710,8721,8397,8484,5329,5224,5309,8479,7823,5329,5261,5578,7986,5296,5730,5237,7482,7576,8154,5655,5564,8467,7482,5274,7924,5377,5476,5712,7487,8539,5296,5314,5655,5218,5325,5325,8005,7487,7538,7738,7500,8190,8762,7628,5237,5325,7628,7877,8772,7908,5342,5301,9054,8447,8479,5301,8261,8354,7622,8365,5666,8110,7628,7628,7710,5381,8196,7849,5647,5519,7487,5642,5647,9051,5496,8811,7719,5274,5224,8062,5688,5476,5248,5501,8052,8370,7990,7622,8940,5606,5358,7972,8631,5651,8334,7478,5274,8447,5301,5337,8443,7920,7904,8631,5305,7558,8052,8196,7924,8370,7972,7972,5320,8170,5209,8154,5325,7558,8136,9075,7663,7849,8316,5209,7972,5381,5401,8762,5476,5305,5296,5448,8772,5237,7706,7843,5564,8115,8839,5329,8589,8811,7977,5377,7558,5647,8670,8839,7786,8099,5329,7786,7571,8504,9032,8115,8126,5325,7972,7972,8653,8873,7982,7990,5224,5442,5629,7628,7588,7616,9411,5476,5651,8411,5396,8349,5358,7571,5352,7548,8548,7500,7558,8479,7752,8397,7675,7487,5325,5564,5655,8255,8479,7977,5325,5524,5524,7786,7864,5342,8010,5325,5296,7715,5261,8514,7972,5325,5329,7588,5325,7616,7752,5688,7719,5401,7500,5464,5296,5325,5342,7675,8196,5285,5314,8316,7487,7834,5342,8789,7719,5296,8261,5309,8789,8354,5325,8422,7752,5372,8154,7817,5329,8473,7663,8261,5314,7908,7628,5529,8631,8484,7723,5237,7723,8571,7628,7920,5485,5642,8732,9032,5647,5347,7867,8533,5642,8411,8222,5642,5224,8631,7605,5285,8255,8052,7478,7952,5642,7972,8519,5642,7681,5285,8519,7592,7675,7482,7982,8498,8494,7883,7692,7990,9417,7500,7588,5305,8005,8307,5329,7482,8494,8631,8387,7628,8170,7723,5642,5642,7681,8783,7628,5606,7757,8170,8239,5237,7986,8005,7675,5285,8287,8739,7610,7558,8402,7675,5372,8498,8255,7637,8307,5372,7632,7867,5301,7588,5391,9423,7542,8925,8062,7706,7542,7700,5391,5320,7994,8170,8427,7605,7487,7610,5224,5485,5485,8015,5476,7487,7667,8062,8316,8022,7592,7858,8267,5320,5485,5296,5381,5255,8676,8670,8827,7994,5647,7994,8099,5485,8795,5485,7605,7605,5333,7658,7628,5647,8811,8211,7605,7643,8762,5325,7675,7904,8099,5325,5655,7999,7962,8732,7994,8467,7982,8461,7675,8433,7920,5358,5407,5647,5647,5261,8119,5367,8539,8467,8136,7710,5647,5301,5647,8438,8222,7681,7487,5564,8387,8543,7994,8245,5209,8539,8093,8115,8293,5564,8131,8010,7977,5717,8010,5391,9427,8312,8582,5407,7723,7610,5305,8411,7977,7952,7972,8282,8329,5642,5274,5358,7723,7795,8919,5285,5309,7768,7962,8613,8048,8582,7605,8316,5426,8245,5485,8604,7908,5568,5485,5358,8635,5301,5241,7478,5501,8267,5647,8994,5301,7843,8170,8721,5407,5480,8316,5255,7828,7558,7940,5391,7920,7571,7675,8670,8805,8604,7834,5524,7908,8811,5442,7904,8461,7935,8093,7542,5564,5407,7972,8277,7986,5358,5358,5358,5717,7710,8174,7628,5407,7999,7786,7710,5241,5485,8302,7576,5671,8073,5325,7516,7940,7667,5564,7687,7786,8571,7542,5496,7667,7805,8721,8467,8467,8170,5661,8115,7867,5480,7632,7883,7675,8893,5407,7473,8411,8272,7521,8509,9435,5655,8119,5426,5391,7605,8354,8456,7904,5476,7482,7675,7500,5381,5464,8845,7663,8010,7565,5622,7858,8329,7605,8062,7867,5730,8190,7622,7542,5309,8005,5666,7957,8267,7849,9441,8201,5442,5524,7893,8893,5241,8131,8077,7542,7675,8498,7817,8334,8762,5301,5358,5314,5573,8635,7710,7605,7582,7610,5347,8345,8201,5301,5296,5358,8539,7888,7834,5352,9367,5622,5325,8647,8307,7628,7763,5622,8115,5237,8039,5476,8447,7877,5568,8140,8461,5442,5325,7952,7588,7957,7687,5329,8184,5612,8498,8345,5612,7888,8676,5647,7558,8073,7643,5358,8903,8239,7883,7828,5564,5407,8438,8005,8539,8255,8919,5464,7962,8149,8365,7675,8762,5391,7864,5642,5213,8222,5325,8811,8227,8762,5480,7834,8073,8903,5381,7990,7610,7542,5401,8073,7576,8277,7521,5347,8873,7628,8354,8052,5655,7658,5377,7616,5442,5325,5218,8509,8909,7588,5391,8010,5448,5534,7558,5314,8909,5329,5329,5407,5480,7898,8159,8277,7610,5606,7478,5347,7542,8354,7548,5726,7817,8411,8676,8857,5301,7752,7632,7616,9447,7843,7500,5651,8539,8010,8140,5329,7914,8293,5661,5666,5274,5209,8447,8879,7710,7542,8473,5358,8282,7478,8539,8015,8110,5501,5358,8402,7972,5301,8039,8322,5309,7904,5301,7715,8170,8312,5305,8140,8184,8322,7779,7588,7681,5301,7706,7588,5261,8316,5209,8604,8354,7576,8010,9345,8126,5471,5501,5471,8539,8119,7779,5274,8772,7779,8179,8845,5301,8354,8245,7491,9452,8402,8126,8015,7516,8548,5485,8039,7920,8589,8589,5419,7491,8110,8073,5730,7500,8170,7982,5407,8365,7839,5301,5347,5564,8447,7930,8387,5519,5524,5629,5688,5666,8340,5329,7834,5651,8589,5501,5372,8756,7872,5305,7516,8261,9457,8329,7779,5419,7904,8073,5391,8504,8548,5274,7495,8641,8077,5301,7990,8539,9345,7681,5347,5651,5476,8484,5237,8653,5241,8484,9021,5325,5496,7576,8329,8354,8062,7628,7849,5509,8504,7752,7752,5688,8136,5209,7853,8816,8998,5381,5320,8104,7920,7482,8302,8062,7972,5325,5501,8267,8504,7883,5309,7588,7565,5612,8249,7482,8154,8033,5309,5564,7972,7658,5209,5442,5642,7687,5666,5237,5564,5661,7914,7853,7605,5726,5476,7605,8670,8811,7924,5564,5480,5655,5491,5314,5391,7548,5274,8443,7592,8282,8170,8716,8527,8397,5501,5485,8504,7946,5661,5381,7605,5442,7795,8126,5291,8582,8272,7839,8543,5237,8272,5661,7757,5285,7768,7828,7632,8190,5224,7533,5708,9462,8316,8164,7681,7482,5666,5419,7768,7500,5329,5459,8316,7487,5419,8293,5296,5291,7972,5407,5676,7710,7746,5655,5329,5274,5688,5320,7898,8613,7675,5509,8196,8845,5564,5377,5519,8504,5564,5237,5564,8805,5342,7548,8653,5564,5485,7982,7548,7834,5309,8267,5325,8456,5391,8548,7516,7888,5301,5329,7779,5442,7768,7628,5480,7706,9032,7565,5509,7542,5274,8087,7994,7706,8272,5509,8461,7599,8716,8863,7774,8190,8402,8099,7511,7706,8427,7930,8287,8093,7746,7706,7867,8772,5241,8234,7967,5476,5209,8093,7779,5309,7893,7872,5261,7628,8548,5381,5329,7500,5426,7994,5209,8170,7521,5407,7990,5274,8821,7746,7706,8676,7548,8539,8438,5676,8467,5661,7715,7487,5688,8411,7811,8845,5325,7746,5274,5564,7994,7628,8131,7622,5661,5401,8456,8411,8267,7834,5377,7795,7972,7710,7952,7768,5209,8022,8467,8062,7500,7957,8387,7648,5285,7616,5309,5476,8863,8447,7898,7786,7533,7576,5407,8451,7768,8617,8267,5367,8952,8929,5426,8272,5564,8267,5655,5524,8613,7982,5437,8909,5274,7588,5655,8548,8422,7653,7774,5358,8527,7478,5301,5612,7482,5237,8548,5666,5622,7542,7800,7972,5329,5305,8647,5401,5651,8190,8548,5325,5261,5342,8010,8952,5413,5476,5514,8711,7576,8322,7643,8473,5237,5320,5519,5296,5564,5296,8255,8833,7571,7972,5261,8589,7516,7628,8010,8239,5485,9021,5407,7648,7877,7872,5519,5296,5396,5442,8287,8322,5485,8245,8119,5296,5237,7482,5407,8170,7811,5372,5274,5381,5285,8073,7877,5476,5386,5342,5476,8635,7500,5325,8888,7542,5347,7734,8329,8857,7706,5712,7883,5305,5666,5661,8857,8582,5337,7500,5666,5274,7877,5237,5329,7877,7616,7774,7521,5274,8397,8857,7632,5237,8479,5347,5688,5377,7487,8484,7628,8062,7576,5274,7849,8354,5325,5509,8582,5325,8504,7994,8267,7853,8104,7920,8302,8461,8136,8467,8548,8099,5501,7972,7752,7565,7533,5708,8816,5320,5274,8811,5661,5564,5401,8443,7914,5237,7972,7548,7576,8282,5564,5314,8670,5476,5485,5491,7898,8164,5381,7692,7648,8647,7946,5296,9462,8190,5419,7632,5291,5285,8316,8845,7675,5676,5519,5309,5342,8272,5325,5377,5325,7500,8093,5578,7500,7706,7893,8287,8015,8234,8119,7994,7746,8087,5413,5442,7790,7511,7768,8548,8427,5509,5329,8863,5209,7990,7521,5407,7746,5347,5377,7622,7706,7834,5296,7487,7888,8676,8411,5274,8131,8863,7811,8539,5329,8411,8438,8467,5309,5564,8613,5655,8527,7582,5524,7877,5301,5476,5407,8888,8647,7800,5666,7616,5612,8711,5514,5661,8239,5261,8833,5419,7542,5372,7811,5285,8857,8998,7538,8461,8998,5699,8762,7511,8073,5255,5730,8617,8093,7616,7616,8745,5367,7616,8617,8772,7768,7706,5534,7616,5666,8772,5329,8721,7599,5291,5291,7599,7653,5209,7632,5564,7962,8048,7786,7605,8170,7790,7786,8438,8461,7904,7795,7786,5676,5564,7516,7834,7999,8397,7795,5314,7628,7972,7542,8048,7823,5320,7487,7920,7538,7511,7904,8048,5301,8783,7994,5358,5325,8833,8316,7746,5325,5676,5651,7952,7632,7920,5325,5325,8375,7924,7763,8322,7738,5712,8062,5476,5337,5501,5651,5524,7924,7786,8548,8721,7576,8093,5476,7605,8539,5519,7542,5476,5274,8164,8658,8658,7542,7811,8397,5274,5476,5274,7817,5274,7628,8845,5381,5629,8467,5237,8010,7834,5501,5261,5401,5666,8845,8417,8322,7877,7628,7817,5476,5248,5534,5501,8062,5325,7710,8402,5564,8745,9054,5476,7986,5476,7920,8093,7511,7972,5726,5237,7628,7521,5237,8196,7706,8255,7628,8222,7675,7719,8196,5419,8539,8402,7893,8272,8302,7478,7605,5407,7605,5391,7858,8548,5509,5296,5730,7849,7849,7653,5708,8647,5476,5401,5726,8222,7516,9054,8255,7487,8010,5476,5296,8190,8479,5642,8149,5622,8898,7790,5578,7706,8131,5622,7994,9021,5459,7696,9045,8821,7696,8716,5622,5666,7696,5209,8845,8783,8052,8267,8994,8987,7710,7487,8227,7977,8170,7849,5573,8149,7599,5325,5629,7742,7957,8417,8131,8334,7599,7957,5642,7888,8005,5337,5305,8811,7696,5578,8805,7491,8245,8022,8196,7710,7710,8447,7883,8062,8845,8170,7920,8077,7883,5358,8170,8093,5241,5337,5377,8239,7610,7972,8381,5391,7696,8387,5459,7795,5237,5401,8427,8119,8577,8751,7864,8170,5255,8539,8039,7752,7500,5647,8827,5329,5237,8805,5329,8170,8005,8170,8005,8827,5291,5534,5237,7935,5401,8827,5708,8119,8022,8805,8005,8077,7972,7883,8381,7706,8504,7478,8805,7610,7628,7628,5342,7487,7588,5476,7588,7487,7999,8387,8110,5476,5333,5325,7542,5501,8340,5717,8433,7811,5464,5496,8504,7675,8461,7576,8467,8762,8461,8164,8811,7571,8494,8227,7786,7972,7653,5564,7893,5301,7681,8170,5407,7565,9032,5337,8136,8560,8800,5337,7817,7628,8354,5642,5309,8312,7542,5237,7681,7893,7710,5485,7658,7914,7548,8015,5661,7914,7994,7576,5459,7883,7893,7904,8073,5726,8329,7930,7795,7658,5209,7692,7972,8316,5476,5209,5564,8334,5655,5274,7571,8456,7977,8119,7972,8222,5337,5726,7982,5301,5476,7482,7500,7924,7610,7582,9012,5329,5485,8293,7834,8658,7473,5476,8687,5671,5717,7582,7972,7675,7914,7504,7696,7864,5426,7858,8766,5209,7628,7558,7681,7972,8277,5274,5661,8402,5661,5305,8349,5325,5396,8170,7908,7730,8205,7706,5386,5651,8789,8375,5509,8073,8461,8721,5688,5285,5485,7888,7946,8451,8577,7582,8805,5712,8104,7914,5661,7834,8397,5381,5519,8443,5480,8174,7558,7786,5564,8307,5480,5453,7628,7994,7924,7795,5688,5401,8015,8402,7972,5391,7576,7920,7864,7605,8795,5329,8005,7805,8811,5606,8028,5485,8805,7986,5476,8345,8504,7914,8287,5564,5564,8170,7893,8322,5509,5496,5342,8164,8548,5693,7478,5712,7957,5622,7972,8694,7795,7742,8903,8345,5426,5386,7628,7478,7823,8255,7548,7994,7864,8159,5647,5642,5407,7994,5285,7628,7977,8676,5358,8227,5564,5274,8447,7746,8631,8909,8422,7898,7957,5329,8631,8427,5708,7588,8863,5717,5476,8073,8239,5325,7920,7628,5524,7610,8888,8554,8227,8196,8039,7834,8663,8647,5419,5564,5629,5305,5237,5622,5329,5285,7952,5329,7972,5642,5291,5401,8316,5352,8447,7687,8239,8402,7864,7675,5325,8010,7972,5285,5261,7478,8402,8489,7521,5342,5501,7616,8772,9361,7883,7908,8789,8068,5401,5358,5218,5291,5573,5476,5676,7986,5401,5514,8005,7786,7706,5386,8888,8329,8613,8154,8205,7828,8473,7834,8739,7986,7834,5329,8154,7952,7632,5726,8205,8375,8447,8205,8033,8577,8494,8687,8205,7516,8687,5209,7478,8077,5442,5325,5688,5688,5325,8077,7972,7972,7972,7999,5459,7972,5519,7658,5655,8484,8329,7628,5496,5642,7628,5248,8201,5237,8484,7628,7628,5426,8170,8484,7528,5617,5617,7883,7994,5391,8772,5320,7538,5606,7883,7734,7734,8721,7972,7576,8732,8598,5367,7478,7576,8479,8461,5261,5476,8613,8994,5491,5241,8282,8732,8560,7565,8282,5699,7898,7548,5407,8777,8093,7605,8115,7888,8073,5274,5717,8732,7977,5329,8062,8334,5237,5730,5564,7500,8527,7994,8670,7628,5476,8805,5255,7994,7817,8249,5464,8479,5464,8087,8548,8411,7790,5459,7800,7898,5496,5476,5514,8777,8340,7957,5491,7877,5642,8316,7982,8903,8772,5329,5476,5381,5407,8255,8249,7706,5329,5329,7877,8617,8682,7779,5407,5407,7719,7834,5564,5255,7834,7834,8340,8340,5476,7811,8805,5688,7663,8716,7681,8805,5381,5352,5509,5476,8745,5358,7763,5471,7542,7628,8387,8851,7723,5647,5367,7706,8211,5209,5296,8539,8174,7521,5358,5564,8068,7994,7478,7972,7706,5261,7752,7542,8504,8998,5568,5381,5329,7500,5325,8196,7706,8467,5501,7904,7872,7528,5325,5396,8277,7565,7478,5291,8131,7972,8267,8196,5708,5573,7790,8387,7893,7622,8560,8827,7482,5337,8411,5476,5296,7994,5301,5401,7864,5274,8227,8777,8249,7588,8484,8467,8297,8093,7658,7681,8539,7622,7723,5301,5573,7990,7715,7487,8222,8131,8438,5476,7893,8170,7920,8893,7692,7605,8447,7516,5224,5261,5688,5642,7616,8543,8062,7616,7687,7582,8170,5459,8077,8811,8539,5255,5712,5564,8716,5296,5358,8184,5564,5314,7790,8010,7867,7790,7790,7904,5209,5305,5358,5476,7710,5325,5485,7610,7696,5453,5391,7817,7616,7723,5717,8391,5301,8164,7482,8682,7542,7904,8033,8539,5519,5291,8577,7478,5325,8005,8604,5248,7839,8131,8687,8211,7710,5285,7768,5564,8670,7605,5209,5419,5296,7482,5496,8048,8164,8613,5248,8211,8316,5617,7883,7605,8329,7811,7473,7768,5671,8245,5485,5426,7768,8340,5485,7696,8345,8087,7710,8504,5407,5377,5464,5255,5301,5329,8149,5296,9345,5296,7977,7648,5358,5476,8255,5296,7706,8903,5426,8164,7643,7616,7632,7616,8329,5309,7962,7482,8349,8062,7576,5642,8015,7616,7710,8307,5564,8504,7482,7849,5358,5476,8267,8539,5647,5342,5342,7558,7599,7478,8140,5237,5485,5301,5564,7605,5305,5301,9345,5325,7888,5688,8302,5612,8033,5485,8170,5712,8249,5426,5485,7935,7528,7667,7834,8805,7757,8451,5509,7653,5337,7628,7977,7599,5337,8816,8670,5274,7843,5564,7864,5305,8334,5642,7823,7715,8795,8277,5401,5391,8494,5241,5401,8154,5337,7616,7616,7994,8104,8211,5712,7839,5509,5485,8539,5726,7582,5407,7967,7786,7986,5329,8170,7994,7667,8504,8653,7849,8772,5209,8594,8039,5564,8099,8227,5442,8022,7805,5237,8514,7774,7904,5301,5647,8073,7653,8222,8196,5676,5237,7491,8539,5381,7734,8903,5309,7999,8411,8845,5396,7786,8093,7893,5309,8345,7599,5413,7576,7834,8170,5407,7516,8772,5320,5606,8479,8359,7706,8022,8402,8272,8227,7930,8227,5476,7893,8277,7706,8249,5255,7994,7883,8302,7811,7834,5476,5241,8994,8201,8964,8716,7982,8170,8484,8964,7632,5442,8539,8249,5476,5647,5337,7616,7616,7616,7675,7730,5688,7990,7521,5509,7628,5337,5564,5401,8190,8467,7823,8115,8494,8104,7675,7628,7858,7790,8345,7864,7632,9467,8154,7795,8504,7746,7571,7571,8170,8222,8110,7715,5661,5661,5726,5407,5564,5329,8052,9054,8527,8062,5237,5730,5320,5647,7605,5688,7521,7914,5717,5381,5485,5651,5464,7914,7734,5671,7582,7500,7542,7994,8073,7994,8994,7990,7982,8205,7977,8676,5642,7667,8827,5352,7994,5274,8005,8805,7643,5237,5391,7706,8604,5386,5642,8467,5218,5218,8467,8539,8653,8721,8354,5529,7877,8509,8005,5578,5419,7957,7994,5213,7867,5448,7482,5476,7542,5391,5237,7930,7843,8293,8249,7849,5699,7940,8467,5301,8170,5237,8334,5573,7811,5647,5476,8354,5655,7542,8443,8312,8451,8467,5573,7628,7908,7533,7734,7734,7888,8851,8227,5501,5301,5241,5407,5325,8893,8777,8869,8571,8052,7962,5655,8391,8653,7500,7511,5237,7786,8039,8164,5534,5671,8451,5391,5629,7632,8613,5612,5274,7930,5642,5377,5358,8548,7599,8287,5519,8604,5237,5347,7528,5325,5301,7864,7872,7628,5407,7616,5305,7757,7681,7790,8316,7605,5352,8179,5401,8827,5237,5255,5688,5309,8104,5459,7994,8422,7723,7628,5476,5325,8239,5358,5329,7588,8201,5442,7632,8190,7994,5717,8093,5325,8647,8234,7653,8539,7588,5329,5617,8987,7746,7763,8329,7800,8073,8539,8451,5578,9367,8190,7994,7663,5708,5651,7957,8140,7548,7774,8159,5419,5651,8827,5453,5296,7667,7482,5407,7834,5320,7482,8005,8033,7982,8302,7786,8170,8519,8205,5661,8322,8307,5401,7516,5568,7663,5358,5301,8467,5325,8329,5218,8010,8249,7742,7877,7828,8329,5285,7872,7872,5464,7628,8255,8391,5396,5407,8827,8267,8222,5337,5726,5329,7648,5296,7864,8909,8438,5291,8397,8316,8613,5501,8005,8598,7872,8387,7500,5564,5291,8903,7478,8316,7487,7675,5237,8987,7994,8641,7706,7542,8267,7962,8093,7628,5367,5218,5325,8062,7487,7706,5666,5255,8267,7628,5237,8052,8073,8052,7663,7994,5296,7994,5325,7839,7521,8375,7763,5476,8873,5419,8005,5296,8322,5401,7990,8467,8245,5377,5629,5661,5358,8427,7962,5401,8010,5693,5381,7786,5661,8149,5407,8898,8062,7730,7528,8329,5642,8239,5448,5320,8329,8217,5274,7994,8766,5442,8349,8613,8647,7658,7706,8772,5485,5655,7696,8447,7616,5524,8827,7675,7706,8048,5407,7500,8005,5381,5708,7757,5476,5347,5309,8777,7622,7723,7867,5274,7516,7742,7795,7588,5329,5476,7500,5491,5301,5476,7986,5666,7706,8539,7972,7930,8909,5642,5305,7495,8647,8010,5448,8772,8422,7723,5337,7994,7511,5296,7558,5524,7877,8249,5301,5320,5573,7663,7516,5372,8170,8033,8277,8154,5480,7478,7872,5629,7706,7946,5329,7588,5717,8211,8267,8751,7628,5320,8164,5237,7558,5305,5381,7588,5407,8322,8077,8073,8261,5476,5274,7628,8170,9353,5401,7482,8322,7616,7610,8316,7994,8354,8093,5726,5717,8010,5651,7628,8005,5347,5325,8903,8427,5666,5666,5396,8527,7972,7994,7982,8427,8359,5301,5325,5651,7982,8359,7632,5325,8411,7828,5407,8987,5476,5666,7768,7675,7893,7834,8514,5432,7982,7982,5329,8293,5329,7487,7675,7542,5573,7982,5437,5480,5564,7500,7500,5329,7692,7628,8052,5496,8170,8039,8222,7834,8427,7542,8005,8282,5237,5320,5248,5688,7757,5325,5688,7558,5391,7542,8539,5578,7628,5564,8811,5237,8062,5296,8249,5717,5342,5367,7637,5391,5476,7538,8411,8783,7864,8994,7710,8354,5291,7752,7872,7898,5358,8354,5509,7667,7706,5320,7482,7706,5606,8467,5291,5296,8196,7706,8174,8387,7839,7715,8641,5568,5501,8560,7817,5372,5564,5224,5381,5564,7710,8307,8647,5274,5642,5655,5688,5337,7687,7849,7710,5337,7849,7653,8170,5301,5564,8297,7687,8131,7920,8073,5274,7605,7757,5432,5224,7786,8297,5726,5617,8964,8093,7786,7883,7786,7616,5301,7558,5726,8711,8170,7839,5296,5480,8211,5564,7924,8631,8577,7605,5476,5274,8144,5285,8170,8144,5255,5325,5201,5218,5476,8381,5305,7723,7867,7952,7817,7972,7800,5241,7972,7977,7648,7487,7706,5426,8577,5688,8670,5218,7977,8839,8751,5635,7864,8136,5320,8190,8527,7914,5655,5564,5274,5578,7478,5564,5301,7843,5358,5573,8467,7582,8613,7883,7834,8805,5329,8839,8631,7795,7972,8022,7893,8170,5651,9361,7706,5661,7667,7687,8249,8322,7487,5237,8099,5301,5459,7681,8272,8451,8811,7653,7628,5655,7893,7920,7994,5471,5476,8467,8170,7768,7542,5476,8447,8745,7994,5509,8039,5509,7582,7864,8282,8539,8484,8316,7924,7616,8039,7877,8057,7986,7990,5325,7849,8805,8349,7500,7746,7628,5381,5391,8190,5464,7834,8411,8110,7994,5564,8467,5712,7994,5564,8821,5661,5337,5688,7790,5367,7616,5391,5248,5629,7605,8548,5377,5564,8467,5296,7663,5676,8762,7982,5688,5459,5301,7795,8267,8170,7823,7957,8658,8164,7616,5274,7558,7843,8334,7487,5237,8461,5237,8467,5534,8057,5448,8015,8164,5325,5325,7478,5688,7653,8196,5476,8093,5396,5629,5476,5241,8716,7849,7982,5296,7538,8391,9471,7774,7616,8909,7628,5381,5377,8571,7800,7834,8987,5578,8340,7710,8539,5708,5329,8087,7972,5629,8033,8647,5726,7920,7628,5407,7632,7957,8196,7548,7482,5419,8952,5655,5285,5509,7972,5578,7538,7538,8039,7511,7790,5237,8827,7967,8190,7622,5377,8015,8211,7521,5305,5655,5476,5688,8594,7972,7924,5352,5285,5726,5432,8239,7533,7952,5237,5325,5622,5464,7893,8149,5291,8509,5296,7482,7877,5285,5261,7648,5248,8851,5248,8329,7487,7542,7558,8903,7687,5661,5261,5476,5485,5347,7877,7706,7839,7521,5617,7632,8845,7616,7637,8196,8115,8190,5401,7605,8115,5661,8211,5661,7706,8164,5413,8249,8052,8821,8154,5314,7972,8888,5661,7763,8010,5666,5524,7986,5651,5301,8104,5301,5688,8077,5329,8762,7675,7605,7610,5301,7610,8245,7491,5413,8987,7786,5676,7616,7542,5237,8179,5726,7768,8762,5237,7800,5291,5381,7605,7687,5661,5464,8816,8456,8293,7528,7548,5642,7696,5448,7763,5237,5426,7834,8795,5248,8519,8039,8190,5320,5274,8316,7610,5381,8533,8387,7982,7994,8721,5248,7994,7957,8548,7946,5726,5476,5476,8201,5396,7628,8473,5496,5476,5261,8033,5564,8234,5501,8952,5381,8136,5568,7883,8915,7548,7548,5305,7706,5578,5274,7972,8504,8196,5309,7667,8467,5712,7637,5708,5453,8959,8959,7977,5480,5274,5491,8222,8174,5642,8329,7558,8670,8772,8170,7946,5320,5519,5655,5476,8994,8073,8539,8631,5296,8234,7972,5325,8297,7533,7883,7790,8073,7935,5568,5274,8239,5726,7930,8234,5237,8451,5314,5622,5564,5476,8196,7692,8504,5419,7977,8879,5305,5381,7738,7632,8613,7605,7952,7482,7774,8577,8144,5329,9345,8903,8115,7734,8800,5453,5320,7977,8653,7558,5301,5676,5381,8057,7908,5476,7628,5655,7511,5688,8658,5325,5476,8201,9345,8839,8302,5325,5301,5401,5401,7692,5407,8936,7877,5358,8613,7491,8467,8093,7982,8227,5442,7888,8473,7779,8227,8456,5305,7893,8467,7632,8039,7834,8762,5237,7972,8170,7972,7533,7972,7795,7730,5320,5377,5377,5564,7667,5661,8411,5459,8653,7616,5519,7610,7849,8467,8222,8222,5564,7628,8641,7834,5296,7930,5573,5329,5237,5617,8267,8245,5651,8245,8359,8164,8772,8613,8716,7592,8631,8282,8068,7710,8940,5453,7616,5381,7542,8359,7692,5401,8222,5301,5578,5391,5329,5671,5476,5661,5274,7994,8473,5241,8073,5419,9367,8222,7521,7786,7734,8604,7675,5407,5573,5325,7883,8925,5285,8073,7521,7528,5432,7648,7628,7710,5708,7888,7952,8340,5342,8789,7877,5401,5358,5309,8903,5320,8772,5358,5347,7834,8613,7706,8307,5320,8631,5391,8126,5661,8073,8033,5320,7610,5237,5274,5347,8539,5491,5564,5320,5391,5407,7533,5476,5285,8387,5237,5314,5642,8527,8772,5301,8473,5564,7904,7849,7706,5325,5407,8888,5291,8533,7952,7893,8282,8282,5651,7628,7763,5391,7487,8427,8239,5291,5651,7681,5401,5642,7972,5285,5237,5261,7994,5237,7710,7628,5347,8322,8762,8196,5314,5325,8391,7616,8131,7528,5314,5309,8721,7516,5314,7632,5726,7605,7994,5291,8560,7628,5347,7914,8539,8721,5407,8721,8427,7952,5651,5391,8427,5347,5291,5325,5237,8539,5485,7628,8131,5309,5726,5285,8484,5309,8140,5291,7706,7972,5325,7786,7883,8397,8539,8987,5396,7768,5717,7710,5381,7952,7817,8062,5381,7643,5688,5661,7588,8447,5325,7500,7972,7687,5358,5426,7982,8987,7877,7972,5529,5573,5391,5476,5329,5291,8068,7834,5237,7834,7930,5693,5564,5688,5381,8653,8062,5325,7565,8329,7952,8062,8190,8272,7500,5381,5476,8504,8329,5237,5261,7706,5480,5325,8772,7914,7864,7924,8387,5642,8022,7616,8190,7528,5291,8093,8884,8052,5337,7571,5305,7565,7500,8783,5617,8548,5391,8068,7500,7893,5476,7588,8447,7849,7752,7582,7500,5655,7605,5241,7610,5209,5209,8427,7786,5391,5464,5459,8093,8539,7500,5301,5309,7533,5309,8811,5476,8170,5708,7687,5480,5476,7675,7999,5255,5358,7504,5726,7904,5509,8443,8653,7576,7839,7558,5218,7500,8329,5476,7478,7653,5391,8052,5285,5391,5606,5496,8131,7952,7768,5485,5381,5396,5671,7521,7994,7914,5442,8316,5655,8427,8391,7864,5296,7516,7779,7795,7599,5413,7681,7710,5666,7605,8582,7473,8267,7628,8909,5325,7972,8504,7616,7843,7994,8582,7864,5391,7823,7883,8073,8345,5337,7946,8255,5612,5309,8391,7628,8509,7558,5381,8227,7478,7478,5524,8022,7734,5296,7952,8851,5655,8851,8762,7715,5305,8839,8447,7990,5296,8222,7653,5342,8732,8190,7893,7710,7738,5476,8136,7482,7757,7920,5325,7877,8033,9032,5325,7706,8772,8863,7994,7893,8745,5407,5241,5476,7967,5426,5314,7779,5407,7605,8052,8099,7914,8473,8359,7858,7628,5459,7500,7858,5391,8190,5391,7643,7834,7864,5329,8539,5661,5564,7700,7632,5407,8635,7628,5209,8732,5237,5296,7482,8345,5274,7823,8033,8527,7605,8340,7834,7946,8190,8554,7495,7706,8711,7491,7994,5296,8909,7967,5261,5407,8073,5337,5464,8154,5717,7616,5651,7675,5651,5237,8322,8033,8293,5377,7588,7898,7710,7542,5391,5419,8467,5661,5529,7706,5642,5642,7599,7628,8473,8827,8745,5301,5305,8919,8987,5578,9476,7687,8115,5381,5401,7957,8504,7742,8312,5237,5314,5708,5301,5309,5578,5476,7982,5419,7800,7839,7653,5396,7877,7768,7542,7719,5237,5617,8217,5241,5386,5347,7864,5209,5291,5325,9021,5285,8073,5296,5622,7715,8982,7687,5391,8255,8772,8982,7734,8119,7706,5372,8772,7681,9481,7542,9487,5285,5485,5401,8417,7538,7663,8427,7920,5296,7893,5476,5476,5261,8261,5642,7542,5573,8658,7982,7576,8052,7491,7616,7605,7628,5407,5296,8762,5325,8190,8365,5666,7914,7994,7920,5301,7599,8411,5578,7834,5476,5442,7823,5442,7982,7877,8261,7482,5347,8033,7516,5578,7811,8365,7999,8903,7972,7834,8762,7834,5325,5693,5564,8504,5325,5381,8062,8272,8261,5261,7706,7823,8329,5476,8329,5325,5476,5419,5296,7742,8170,8387,8884,7500,7864,8099,5476,8022,8527,5617,7565,5291,5241,7786,7849,5255,8443,5391,7849,7687,7588,5655,8539,7967,7839,5726,7999,8711,5476,5476,8582,5666,5391,7795,5391,5381,5296,7558,7605,7914,5396,7883,8131,7768,7952,8329,5476,5241,5671,7521,5496,7643,7500,5708,5381,7478,7628,8255,7478,5524,5337,5296,8582,8851,8022,7663,8745,7605,7967,7495,8762,5314,7893,7990,7994,7628,8839,7914,7757,7877,7779,9032,5342,8772,5381,5476,8711,8033,5459,5464,5407,5661,8293,7491,7994,7864,7628,8190,7877,5209,8345,7834,8539,5651,7858,8795,5305,8903,7588,5661,5642,7898,5391,7542,5651,5309,7800,5578,5407,9476,8772,8982,8255,5347,7734,5291,7834,7542,8427,8033,7786,7849,8062,5367,5291,8062,7653,8062,5237,5381,8154,8239,7653,8687,7610,8307,5419,7706,5391,5301,8919,5509,5358,5320,5274,8527,8940,8940,7811,7834,5391,5573,5296,8863,7628,8068,9494,5407,7904,5730,7864,8387,7521,7811,8903,8800,5671,5726,7908,5237,8888,8052,7628,7605,7977,7930,5237,8073,7752,7811,8888,5564,8548,5501,5476,7972,8222,7637,7653,7920,8136,7667,8811,8136,5337,7757,8805,7487,5519,7811,7610,5352,7849,5305,8190,7790,5301,8447,5358,7628,7977,8641,7790,7920,5237,7930,8170,5305,5573,8772,7495,5291,7930,5655,7675,5564,7774,7817,8594,5476,8560,8249,8751,8154,8010,8772,8721,8115,7972,7696,7605,5391,8653,5209,7696,7952,7858,8411,8349,5491,8119,8582,7893,8964,5476,7710,7790,7849,5358,5329,8504,5296,5671,9032,5209,7977,7746,9353,7706,5671,8205,5407,7616,7893,5655,5617,8888,7643,5688,7558,8732,5325,7576,8277,8365,7487,8033,8987,5606,8456,8845,5274,8349,5407,5342,5564,8772,8827,8467,7972,7628,8015,8762,5309,8504,8598,8267,7706,5437,8277,8527,8277,7967,8119,7663,5622,5564,8131,8159,8115,8077,7994,8039,8033,8052,7972,8863,8473,8267,8833,8772,8365,7834,8322,5261,8863,7616,5309,7930,5285,8205,5358,8762,5320,7834,5573,8190,9501,8811,5407,7930,5655,5564,7542,7817,7774,8115,5274,8126,8015,8154,7972,8010,8772,8751,8411,8131,7605,8721,7696,5407,5358,5391,8964,7952,8582,5491,7790,7893,7849,5476,9353,7972,7977,5296,5209,8504,5329,8205,5209,5671,5309,5688,5655,8277,5617,5564,8762,5325,5320,8987,7487,8005,7487,8845,8456,8772,8277,5407,8863,5564,5622,8159,8115,7834,8365,8805,8833,5261,7616,8811,7710,8190,5617,7823,7504,5237,7491,7849,7558,5578,5367,5629,7967,7967,5301,8484,5564,7999,8811,7706,5261,7723,8110,5274,7957,5291,9509,9516,7839,8033,5671,8772,8170,8783,7628,8033,5329,7605,8354,5726,5381,7710,5573,7795,5529,7839,7681,7888,8577,8811,5612,5407,8170,7999,5642,7482,8170,8302,8467,5629,8287,8402,7977,5726,5381,5688,8811,5377,5726,7542,5464,8255,8255,5642,5372,5377,7972,8365,8365,8443,8994,8222,7692,7990,5471,5291,5564,7738,5407,5237,7972,7730,8898,8994,7706,8354,8322,5480,7658,5476,8184,5325,8851,7904,5459,7692,5480,7977,7839,8174,7500,7605,5524,5459,7972,5564,7533,8170,5261,8073,8447,8170,5301,8682,5476,5325,5491,5274,5285,5296,7605,5622,7473,5635,7952,7723,8005,8140,7710,5329,5413,7972,7977,7681,7774,5407,8005,8255,5358,5274,7888,5325,8170,5325,5320,5647,5573,9345,8077,7675,8073,7710,8658,8711,5320,7843,5218,8316,5442,8255,5612,7738,5407,7706,8494,7994,5314,5381,5325,8077,8170,8170,8099,5329,8873,8359,8170,7710,5509,7768,5377,8073,8443,7867,5325,8140,5237,7774,8548,5352,7972,5241,7828,7972,7628,7888,7696,8104,5218,7548,8539,8827,8033,8663,5407,8005,5629,8170,5564,8443,5459,7858,8110,8048,5377,5496,7478,5407,8479,8451,5237,7738,8322,8427,7828,8427,5325,8077,7800,7511,8427,5358,5248,5329,8170,8140,5629,5491,5612,5237,8005,5325,7972,8322,8539,7800,8548,5401,5413,5372,5501,5432,8422,7946,8919,8554,7511,8010,5573,5573,5471,8073,8140,8589,5291,8307,7516,5329,8255,8255,7734,7738,5320,8498,8772,5372,7738,7482,5358,7605,8170,5573,8255,5471,5442,5325,7478,8354,8184,7516,8577,7972,5301,7972,7877,5573,8676,7994,7610,7516,5274,9361,8857,5347,5661,8261,5661,8077,5407,5726,5381,8498,8857,8022,8005,5291,7516,7914,7817,7482,8272,5726,5377,7888,7888,8888,8154,5325,7542,5651,8381,5476,5629,5407,7482,7834,8745,7834,5726,5651,8149,7952,8104,5325,5377,8312,8919,7628,7935,8387,7952,7667,7994,8354,5666,8539,8190,8010,8504,8498,5329,5320,8068,7742,5329,7864,8136,7706,7790,8821,8504,8010,5622,8062,9525,5726,5464,8539,8093,5491,5301,5655,8010,5381,8608,5352,8359,7786,7628,7610,7605,8164,7864,7904,7576,7972,5642,7990,5476,8745,5391,5255,7696,7723,8170,5285,5347,5329,8509,7768,7576,5437,7972,5617,7779,7628,8670,7632,7811,8267,5578,5509,5564,8745,7576,8447,8093,5578,8427,7779,5209,5296,7599,8287,8039,7839,7811,5352,7542,8234,8184,7742,7500,7930,8099,7710,7779,5476,8110,5325,7500,5367,8732,8694,8658,5717,5337,8062,5320,5564,7706,5564,7710,8196,8427,7628,7752,8795,7786,5655,5367,8467,5329,8484,8783,5622,7675,7643,5717,7935,5285,8427,7734,8149,5501,8010,7516,5717,7719,8795,7811,5476,5325,8217,7696,7628,5274,8062,5666,8456,5301,5301,5329,8201,7935,8387,7952,8190,8082,8504,5622,7864,8099,8821,8062,7692,7990,5329,7576,7972,5476,7982,5655,5301,5642,8745,5391,5437,7972,5285,5642,7768,5329,5285,5578,5564,7779,8184,7930,5296,8234,7599,5291,8287,5209,8694,5564,5325,8267,5320,8456,8467,5367,8427,5329,7935,7516,7528,7786,5655,7839,7920,5442,8888,5377,7986,8987,7482,8282,8411,8411,8411,5476,8411,8762,7839,8411,8411,8033,8613,8789,5320,5655,8676,8287,7482,8745,8411,8411,5699,7990,8239,8245,7877,5296,7542,7628,5699,7706,8329,5476,8039,8349,7706,7675,7599,8721,9032,7616,5712,8267,5309,8560,8387,8010,7478,8245,7864,7811,5578,7877,5309,8467,7994,5401,7710,7935,8447,7681,7972,5476,7592,7977,8164,5491,7696,8539,8312,5688,5459,8115,8272,5320,8170,7888,5485,5296,8316,5337,5651,5413,5325,8716,5476,5381,8863,8577,8329,8422,8022,7795,8272,8334,5730,8447,7632,8427,8190,8329,8201,5337,7675,5688,7853,7605,5688,8539,8539,5647,5485,5377,8307,8479,5578,8316,8687,7478,5391,7558,7588,5372,8658,8527,5401,5612,5237,5301,7924,8345,8387,7990,8745,8387,7811,5491,5329,8745,7576,5309,8267,8287,8005,7994,5224,5476,8245,9531,7632,5358,7495,7628,8903,8805,5471,5342,8888,8732,7710,8498,7628,7757,5655,5337,8267,8732,8411,8039,7864,5367,5464,5688,8479,8245,7994,5213,5476,8131,5642,7478,7511,8329,7738,8539,5419,8467,7588,7738,7542,5629,5642,7710,8015,5708,5391,7599,7710,5485,5372,5578,5471,8539,7768,7710,8451,7516,9021,7648,7542,8190,7628,5476,7478,8239,8170,5391,5358,5642,8349,5661,5342,7811,8427,8909,7696,7622,8411,8411,7986,5471,8467,8154,7632,5301,5476,5712,8919,7706,5218,5248,7653,7628,8211,7972,7723,7533,8582,5564,8756,8888,7565,5426,8136,7742,7914,7898,8467,8879,7994,5661,5305,7478,5320,5337,7653,7658,5688,5358,8456,5224,8670,7930,8048,8539,7967,7491,7516,7999,7952,7605,5391,7487,7628,7592,5717,5237,7972,5476,8329,5730,7768,5285,5237,5651,8543,7843,7977,7908,5241,7786,8267,7834,7558,8307,7710,5329,5564,7478,5564,5524,8052,8381,7977,8845,7667,7616,8073,5237,7930,5301,8267,8201,7675,7706,7920,8745,8039,7533,8772,7967,5255,8277,8447,8033,5337,5529,7521,7883,8170,5218,8255,5476,8762,7834,5712,8893,7930,7864,7628,5676,7628,8267,5730,8005,7521,5407,5448,8577,8391,5237,8613,5573,5209,7967,5612,7478,7482,8267,8052,5218,5358,5305,8783,5564,8239,7482,5622,7982,8255,7834,8015,8010,5309,7500,8919,5358,7528,5358,8554,7994,5241,7790,5261,7516,8312,7883,8249,7491,8340,7908,7972,8249,7967,8582,5401,8631,5280,5337,7706,7834,7877,5476,8093,7811,5237,8527,8365,5301,5337,5693,5688,5314,8456,7576,5476,8560,7643,8484,7834,8397,7790,7883,7500,7853,5578,5501,7653,7898,8267,7658,5606,5280,5480,7571,7653,7786,7588,7734,7616,5437,8391,7632,7653,5442,8845,8316,7972,5274,5419,7558,7482,5647,7675,5712,7692,7940,5666,7734,5534,5712,7834,5237,8929,7994,5329,5347,7834,8272,8456,8427,8104,7675,8397,8287,8140,8653,5377,5274,8762,7982,7500,5426,8772,8433,5377,5301,8312,7487,5448,5651,7768,5442,8451,8267,5218,8608,7687,8370,5629,5419,8647,8489,7628,5301,7719,8149,5476,5419,7734,5285,5237,8772,8312,8789,5476,5301,8170,5480,5476,8929,8613,8329,8811,7834,8093,5651,5314,8929,7528,5285,5237,5209,7834,8411,7774,5391,5337,5391,5391,5301,7548,7491,7779,5301,5309,7706,5688,5476,7757,8479,7999,5693,8312,5688,7849,5564,5655,8022,7904,7920,5564,8716,7757,5261,5329,5568,8732,5209,8010,7628,5396,7653,7817,7706,7628,8184,8539,8647,5237,5476,7637,5391,5647,5237,8293,7542,5606,5407,7920,7482,7482,7904,7565,8033,5426,7853,8354,7834,5564,5325,8136,7528,9542,5291,5471,8131,7482,7542,8282,5325,9550,8783,8816,5501,8267,8110,8196,7920,5407,8062,7628,7667,8805,5726,8762,8527,5671,8915,8154,7658,8756,7994,7752,8613,5661,7888,5209,8447,8461,5391,8438,7786,7864,8093,7790,5476,7786,7904,7920,7628,5426,5712,8201,5337,7828,7977,5391,7864,5213,8964,8170,8427,7706,5617,8190,7999,8222,7849,5358,8119,5573,5391,8073,7605,7710,8925,5407,8316,7542,7521,5476,7511,7542,5391,5381,8354,5464,7924,8282,8073,5381,8131,5320,5241,7715,5726,7548,9556,8484,7715,7883,7482,5476,7487,8582,9012,7823,5407,5337,5426,7805,5285,7710,7696,5717,5224,5391,8711,7977,7482,7616,7576,5248,8987,8316,5305,5666,5325,5671,7500,8504,9021,7972,7723,5629,8467,5274,8467,7768,7920,8964,7605,5730,8391,7473,5642,5274,5274,5519,5514,8391,8149,5325,7920,8613,5651,5476,7482,8687,8345,9562,5337,7719,8898,7542,8375,7588,5476,5655,7653,7872,5391,8946,5688,7675,7588,5519,8447,5377,8451,8613,7994,7533,8307,5329,5712,7843,5509,7528,8267,7930,7478,7588,7628,7877,8805,8073,7653,7977,8062,8498,8527,7877,8272,7972,5342,8190,7478,7478,8234,7482,5524,5329,5426,7542,7914,7653,7616,8104,5573,5347,8170,5274,8964,8211,7734,5448,7982,7872,7558,5524,5301,8594,7914,7605,8539,5651,5708,8397,8170,8227,8467,5407,8461,5218,8272,8227,8099,7473,8093,5325,5329,5285,8322,5237,5676,8438,5329,5352,8345,7920,5274,8387,8863,5671,9051,8571,7738,8653,8762,8827,7805,5209,5241,8543,7491,8827,8658,8772,5693,7706,7542,5314,7706,7628,5309,8721,7790,8227,5606,5237,5401,8272,7786,8451,5352,5320,5329,8249,5329,5396,8473,8144,8277,8800,8519,8239,8716,5377,8365,5419,8827,7616,8062,8329,7779,8721,8514,8509,7616,8539,5401,8039,5274,8762,5647,7994,8827,5564,8110,5296,7864,8110,8033,5377,7687,8062,7924,8676,5367,5237,8946,5237,5464,7994,5464,7999,5496,7867,8239,8062,7548,5476,8711,5509,8255,5730,7853,8329,7811,7491,8670,5647,7605,5407,8022,8005,5261,8190,7888,5381,5655,7734,7548,7994,5519,7719,5712,5213,7558,5396,5285,8149,8287,7738,7898,7946,5401,5612,5237,7511,8267,7491,8417,5564,8164,5629,5612,8322,5717,8851,7805,8073,5347,7730,5358,8940,8438,5209,7478,7616,5464,7681,7511,8509,7962,8302,5448,7800,8052,5655,5655,7632,5476,8467,5629,8077,5237,7977,7877,7538,7883,7883,5476,5342,7920,8170,7738,8196,5329,5314,7742,8443,8641,5309,5501,8190,5401,5342,5708,5573,5305,7632,5358,7994,7511,8539,8255,5401,5476,5329,5708,8946,8322,8402,7706,8249,5629,7800,5218,7877,8052,5485,8473,5320,7957,5519,8827,7610,8365,8154,5485,5347,5367,7663,8756,5314,7994,8888,7786,7542,5426,5396,5325,7734,5296,8322,8312,7516,5612,5519,8589,7558,8005,7924,5329,5386,5381,7616,5342,8010,5296,7768,7924,5629,7521,5291,5285,9021,8239,5381,8149,8217,8772,8365,5325,5274,7548,8919,8387,7616,5218,5301,5485,7675,7734,8964,7994,5661,8359,8052,7605,7610,7893,5342,5329,5676,5296,7628,5401,7616,8255,7542,5314,5666,7616,8964,7811,7491,7888,8039,8903,8170,5501,8245,7930,5476,7663,8548,5314,8527,7605,7946,8863,5325,8077,7738,8154,8745,8888,5699,7834,8381,7500,5407,5407,8375,7834,7972,5651,5301,8772,8903,8857,8582,8987,5352,7986,7605,8851,5347,5329,8473,8222,8329,5274,7834,7610,7864,5329,7528,7487,5347,8073,5407,5642,7877,7521,5407,5237,8721,8777,8077,5666,7687,5661,7710,7632,8857,8375,5372,8077,5291,5629,5320,8816,5309,5688,5476,5655,5693,7999,8312,7757,5647,7542,8732,5261,7715,8010,7757,8514,8293,8068,7637,7528,5671,8201,7658,8170,5471,8783,7548,8136,7930,8461,8282,7542,5642,8196,7667,7478,8131,8756,7565,8154,7853,8816,7904,7628,7542,5241,7542,7786,8073,7864,8312,8201,7904,8354,8857,7715,7883,7977,7828,5337,8964,8073,8093,8851,7542,7511,7768,5391,8190,5617,5358,8447,7920,7888,7478,8898,8149,7696,7994,8316,5337,7558,7977,7491,5386,5367,8903,8316,5329,7757,7482,8509,7687,7605,5274,8805,9003,8010,5396,7768,8302,7977,5642,5717,8391,5241,7719,5285,5476,7877,5248,5629,8345,7482,8613,7605,8149,7734,5261,8277,8594,5401,8946,7675,5612,5301,5241,5573,8039,5524,8964,5519,8451,5329,8527,7528,7511,8509,5407,7872,5377,7843,7542,8170,9051,8322,7888,5606,8451,7790,8543,8653,8407,7473,8653,8402,5237,7786,7632,7805,8863,5309,8827,5274,5676,8154,8057,8772,5693,5407,8170,8249,5209,7867,5291,8509,8322,8022,7864,5496,8255,7548,8676,5448,5464,7811,7663,8762,5712,7957,8005,7893,5712,5305,5655,8527,5717,8077,5426,5676,8077,8136,7511,8052,7898,5476,7977,8888,5237,8473,5629,7800,7632,7592,5218,5485,8539,8443,8190,7491,8772,5291,8239,7734,5329,8217,5347,7734,8498,8322,8919,8154,5666,7605,5314,5401,5476,5496,8473,8267,5367,7521,8227,8411,8131,5708,5459,5726,8239,7555,8227,8514,5661,8969,5261,5237,8267,7834,5358,7653,5358,7504,8509,8756,5413,8062,8489,8589,5274,5274,5407,8438,9568,0,8322,7687,5386,5358,5352,5367,5329,8411,5358,8489,7849,8721,5717,5717,8048,5291,8062,7952,8438,5476,8653,7843,5329,8805,7653,8170,8354,8354,7800,5726,7516,8227,8635,5407,7834,8438,7834,7864,7643,7628,7752,7521,7491,7542,5726,7834,7752,8282,8345,7994,7482,8144,5699,5347,8762,8239,7628,5606,8077,7738,8509,7849,5699,8519,5347,8307,5629,8005,5629,8721,8647,8795,5237,5296,7877,7920,8903,7811,7738,8179,5342,8514,8969,5261,7834,5296,5358,7752,8519,8489,7994,5274,8062,5407,8438,8756,8514,7687,5386,7952,7752,7738,8438,5329,5642,8048,5717,7849,8653,8484,8354,7843,8893,7628,7834,8227,5237,7752,7643,7834,7864,7877,5347,5726,7834,8144,5699,5717,5606,7738,5699,8795,5347,5564,5564,5333,8217,7528,7542,7478,5476,5480,7605,7924,8093,7864,7628,8282,9577,8946,8267,8821,7972,7920,5485,7565,7924,7482,5655,5381,7491,7904,5726,8539,8443,7571,7828,7696,9051,5480,5717,8312,5224,5564,5325,5329,7610,8033,5426,7888,7957,5305,5419,5320,7888,5274,7696,5459,7628,5671,5261,5337,8255,5426,8387,7558,5358,5367,5261,8119,7972,5480,8307,8467,5655,5573,5274,7790,8077,8267,5274,8456,8456,7967,5476,5407,8099,7482,8170,7805,8033,7920,8093,8272,5274,5329,8594,5274,8211,7605,7924,8705,7786,5248,5301,5301,7628,5377,7628,7610,7994,7994,8077,8217,5342,7977,5464,5381,5342,7482,5671,7834,5296,5717,8267,7632,7994,7663,5237,7994,5325,8015,8316,5708,5419,7482,5301,7648,7516,8422,8647,8222,5342,5342,7628,5274,5442,8447,8010,5325,8010,5237,7482,7864,5296,7610,5381,5301,5301,5301,8863,8756,7972,9032,7667,7823,5476,5699,7834,7542,8387,7504,8387,5325,7786,7811,7972,8131,7667,7839,5218,8170,5573,7982,8925,7632,7628,5442,7757,5342,7653,8154,8617,8721,5573,8925,5218,5325,5237,5442,7511,5301,7823,5325,8925,5261,7738,7628,7628,5529,8136,8762,5367,5391,7752,5501,8334,8267,5301,5358,8608,8093,5666,8345,8222,8249,7828,7843,5426,7478,7999,7500,5325,7715,5274,7675,7687,8805,5655,8456,5712,8093,7706,7482,8154,8302,7893,5534,8427,7482,8447,8548,5651,7516,5476,7582,7616,8387,8249,8617,8093,5367,8062,7482,7632,8349,8267,7511,8249,8888,7478,7994,8154,7482,5237,5476,7663,7883,8919,5274,5386,5329,7977,5730,5325,5337,5337,7904,7920,7994,7962,8073,5325,8349,8249,5448,7538,5301,8154,7663,5391,5491,7610,8093,7663,8519,5301,7800,5485,5419,7715,8015,7877,8745,5485,8052,8402,5485,5291,8745,5485,5485,7828,5485,7628,7893,5642,8898,5651,7746,9591,8174,7491,5606,5676,7491,5717,5693,5496,5407,8504,8539,8329,7478,8504,8196,5309,5529,8577,7904,7482,7730,8136,5305,8443,8245,8282,5476,5642,8272,5480,7977,8062,8174,7924,5209,5329,7977,7628,5325,5661,5688,8345,8727,7817,7904,8245,8255,8539,5509,8811,8484,7681,8255,8190,8571,7538,7738,8015,5224,7752,8170,7986,5661,8110,7898,5476,5688,8267,7849,5509,7715,8170,5407,8411,8539,5407,5274,8322,8131,7738,7930,8345,7533,5717,5564,8144,5237,7957,7839,8131,7977,5325,8312,5419,7990,8245,8154,5274,7542,8762,8631,5407,5261,7994,8504,5564,5712,5676,5717,7610,5309,7653,8227,5301,8110,8329,5617,7994,7834,5519,8272,8131,8267,7588,7605,7994,8800,8762,8222,8762,7994,8504,5367,7653,7994,8267,8272,8484,8484,5274,5661,5274,5325,7482,7864,8267,8670,7478,5352,7946,7616,8267,7930,7482,7482,7521,7982,7491,5693,8745,7533,7521,8598,7653,7500,7511,7500,5237,8022,8005,7706,8560,7628,5509,8282,5471,7828,8751,7533,8312,8093,7628,5485,5666,7849,8255,7864,7994,7994,5381,5314,8456,5476,7982,8370,8217,7858,5255,7706,5564,7977,7853,8827,8005,7977,7757,5606,7516,7616,7667,8994,7653,5485,8422,8048,8751,8277,8422,5381,7643,7628,5693,5712,7834,7653,5407,7990,5491,7592,8196,5476,8159,5377,7864,7864,7834,7643,8795,5218,5622,7834,5274,8676,5476,8467,8940,7982,7828,5419,7692,5666,8239,8647,5391,7800,7706,7648,8052,7478,7786,5309,7542,5296,8427,7511,5629,5301,5274,8751,5329,5347,8077,7768,7491,5693,8745,7653,7521,8598,7500,7500,5509,7786,5471,7706,8282,8022,8560,7628,5329,8093,8312,5485,5381,7977,8015,7653,7616,7616,8370,5476,8751,8919,8422,7653,8329,7616,7990,5377,8239,7864,5622,7834,7864,8077,7800,7828,8940,8052,5325,8427,8613,8751,7768,8527,8473,5372,8903,5367,8427,8473,7730,7811,7658,8577,7795,8190,7628,8170,5329,7487,8087,7924,5642,5448,8509,5514,8010,7511,5237,8239,8647,8647,5301,8473,8110,5301,8239,7723,7719,8527,5342,8527,7610,5329,8473,7730,8170,7616,5448,7521,5237,8647,8473,8473,7893,8010,8073,7893,5391,7982,7972,5325,5693,8261,5480,8631,7962,7521,8068,8504,7628,7565,7710,7482,8010,9596,9609,7482,7982,5476,5476,5358,7839,9621,7511,7839,7710,7487,8222,5391,8057,8370,5255,5606,5285,5655,5224,7839,8316,7839,7521,7924,8539,7696,7834,5622,5352,8179,8073,8028,7864,8201,7667,8307,7588,7628,5491,5642,7643,5606,5391,5407,8863,5224,5274,7877,7877,8772,7893,7588,7994,8721,7864,8699,7643,7982,5464,8964,5296,5407,5730,7849,5426,7687,7994,5564,7823,7828,5255,8073,5396,5237,8005,7511,5448,5358,7491,8267,5305,7511,7800,7715,7628,5519,5309,8845,8005,5622,5381,7710,7994,5476,5325,7648,7558,5218,8272,5296,7521,8427,5501,8543,8249,7834,7715,7877,7521,8433,8857,5358,5391,7972,5325,7706,5426,8068,5237,8504,7628,7710,8010,7482,5407,5391,8222,7487,5459,5476,7696,7648,7521,5325,5509,5285,8119,5224,8073,5666,7864,7628,8028,9633,8641,7643,5274,8721,5496,8005,5459,5448,7877,8077,5305,5320,7511,5519,5309,7800,8589,5622,7700,8087,8005,8039,7521,8484,7576,8447,5358,8073,9641,5301,7893,8033,8345,7904,5564,5274,7752,7528,8402,5358,5426,7538,7628,8527,7653,8539,5480,5480,7710,8329,7605,5661,7706,7883,8915,7730,7482,7752,7972,5325,7893,5726,8073,8222,7908,5480,5476,5726,5241,5726,7592,7768,7999,8467,5352,7576,8170,7605,8293,8170,7920,8205,7977,8093,5655,7658,5564,7675,5391,5358,5480,7920,7487,7940,7734,7858,8272,7972,8164,7478,7582,8149,7768,7914,5274,7696,8370,8073,8721,7482,7632,7538,7516,5661,5325,8170,8022,8196,8211,7779,7653,5647,8190,8422,7667,7628,7558,7528,7663,5329,8863,7576,5617,5325,8653,8272,8277,7986,7990,7706,7706,7628,7893,5514,7834,5381,5642,7478,5476,5329,7858,7542,7893,5464,5407,8154,7752,5377,8519,5367,8548,8005,8110,8087,7795,5480,8005,5448,7542,7558,7972,7511,8140,8909,5237,8340,5442,7834,8467,7967,5514,5261,5301,7972,5329,5305,5237,7632,8015,5305,5708,8179,8647,8827,5726,5358,5274,7628,7500,5396,7849,7588,7675,7516,7877,5471,8789,5480,8833,8772,5285,8964,7834,5301,8427,5485,5476,7828,7516,8888,7967,7834,7710,5329,5274,7521,5325,8617,8170,5237,7811,5301,8473,7538,7628,5480,8329,7710,5726,7828,8073,5329,8205,5391,7487,5564,8170,7967,7605,5480,8293,7977,5476,7658,7675,7538,7790,5285,5396,7632,8370,7858,7839,5301,7558,7834,5325,5285,7667,7706,7706,7990,8863,7653,5358,8179,7858,7972,5237,5514,7478,5708,7511,7542,5261,8647,7632,8827,7877,7967,5325,5285,7521,7786,5464,5301,7994,7849,8811,7920,8608,7853,5661,7667,5358,7710,5699,8539,7692,8370,8255,8131,7473,5717,8427,8845,7858,5358,7990,9012,7930,5342,7957,8073,7675,7616,7849,7839,8739,8888,5305,8608,7957,5386,8762,8205,5342,5377,8888,8739,8479,5524,5564,5688,8119,8255,5329,5372,8473,5301,8653,5377,7565,7533,8721,7790,7883,5320,7576,8048,7681,5352,5209,8048,8297,8811,8174,7920,7790,5564,7706,8164,5726,7521,5519,7795,5325,5352,9361,8670,8438,8391,5301,5391,8548,5377,5352,8022,7622,7768,5712,8598,5407,7888,7982,7986,8484,7706,5401,5655,8888,8245,5305,8589,7800,7800,9026,7500,5712,5305,7605,8789,7811,7908,8539,8888,8577,8261,8307,5209,5386,8062,5237,8307,7653,7610,5342,8484,8227,5459,7628,5301,5676,8190,7542,8582,8548,8711,5655,8987,7628,7952,5305,5325,7706,7999,8005,7643,7904,8312,5712,7500,7834,7675,7779,7628,8422,7706,7599,7779,7994,8277,7710,8647,5606,5305,5325,7500,5391,7834,8427,7628,8479,5241,5301,8277,7817,5480,7757,5342,8762,7864,5358,8302,8560,8068,5329,5476,5381,8010,7576,7628,5329,7752,7982,5426,5237,7565,5501,8136,5337,5712,8762,7849,5367,5726,7653,7920,7872,5480,7500,5688,5255,7622,5358,5325,7994,8170,5568,8903,8033,7990,5448,8184,7723,7658,8222,5564,7687,8115,7786,5476,7757,7742,5305,5381,5320,7957,7710,7696,8345,7994,7681,7605,7482,8577,7632,8316,8255,7706,7605,7994,5285,8598,7952,5274,5717,8795,7491,7500,8316,8711,7888,7667,5274,7800,7675,5296,8427,5407,7628,7999,5578,8234,8845,5514,7478,5688,5642,5564,5509,5337,5301,8302,5301,8582,5291,8190,7746,8154,5329,5218,8447,5209,7706,8745,7521,5629,8104,5325,7757,7867,7516,7576,8851,8277,7893,8447,5476,8653,5329,8484,8227,5485,8170,8093,7967,5301,8676,7663,5285,8184,8154,8126,5391,5693,7914,5325,5391,5730,7478,5480,7692,8322,5325,8010,8582,8903,7538,8302,7883,7994,7628,8658,8110,5459,5464,5401,7834,5688,5688,5407,5501,7864,8387,5564,8159,5407,5367,5622,7982,5471,7533,7834,7752,5407,8052,5305,7687,5726,7511,7632,5391,5391,7482,8533,5655,7738,5642,7715,8164,7542,7706,7752,8893,5352,5401,5708,5333,5296,8073,5325,7681,8925,5407,5514,7800,5237,5688,8473,5325,5325,7605,7768,7605,5622,8154,8015,8756,5529,5432,5291,5726,7521,8073,5285,7834,7588,5352,9021,5261,5261,8010,5291,7516,8329,7622,5237,0,8946,7675,8721,5730,7908,8062,5514,8427,5367,8211,8119,5301,8227,7935,7864,7511,7616,5325,7500,7834,8302,5301,7628,5301,7763,5655,7521,7864,5329,8721,5301,8946,7628,7834,8863,5337,8554,5329,7565,8745,7516,8073,5255,8184,5329,7757,5407,5564,5329,8222,5730,5699,7658,7952,5381,8217,7994,7696,8099,5509,7828,8461,5325,5285,5274,8821,7521,8329,8845,5301,5401,5407,5301,5391,7681,8234,8302,5509,5655,5325,5367,8745,8093,5386,7967,7893,8653,8227,7786,8447,8184,7757,5485,8190,5391,5209,5501,5459,8184,7588,7864,7839,7511,8159,7864,5688,5564,5464,7994,8940,8411,5514,5708,7706,7738,7482,5642,7994,8267,5333,8473,5529,5432,7800,8438,5218,5622,7877,5291,5261,7516,9021,5329,8795,5301,8033,7482,5453,5476,5564,5305,8484,8201,7834,5564,7757,5325,5325,5261,8811,5391,8527,8391,8222,8467,7972,5693,8196,5564,5501,7752,5407,8539,7628,8998,5285,5291,5291,7920,7811,5655,8222,7834,8387,8154,8533,5666,7990,7742,5325,7977,8903,8093,5419,5564,5480,7628,5301,8411,7972,8509,8467,7628,5726,7675,7972,7883,8170,5337,7786,8936,7628,7924,5666,8387,8964,7628,5301,7616,8863,7478,7696,7795,7663,7610,7834,8073,8617,5325,8577,7605,7834,5391,8062,5301,8613,8711,5717,8504,5285,5519,7576,7972,7632,5274,7972,7706,7972,7977,5325,7628,7811,5476,8201,7478,5676,7628,8073,8329,5651,5358,5237,7667,8170,5647,5485,5377,7864,7864,8582,7982,7478,5651,5329,7628,7521,7478,5255,5320,5564,8345,7999,5352,5325,5524,7930,7757,5329,5699,5407,8170,5647,8539,8467,7706,5301,7491,8863,8721,8863,8093,8119,7706,5485,5476,7972,5485,5209,8277,7582,7706,8104,8845,8170,5726,8154,5655,5325,5320,7478,7710,7924,8110,5476,5688,5377,7982,5377,7864,5381,7790,5564,8104,5647,7834,7849,8467,7858,8267,7706,7982,7616,5471,7715,8170,8772,8777,7565,5301,7616,8447,8190,5534,5391,7849,5573,5629,5367,8893,7511,5325,7786,5407,8196,7653,5209,5519,8447,5642,7834,5325,5301,5606,5568,5377,5224,8447,5647,7538,5285,5524,5606,8033,5301,5622,5578,8845,5642,5476,7742,7710,7972,8239,8164,7957,5358,8617,5314,7920,7478,5291,7482,7768,7487,5285,7924,5396,5358,7972,7588,5464,8010,5285,8239,7834,8316,8484,5274,5274,5647,8349,9021,7628,7616,5329,8641,7605,5529,5476,7920,5320,7632,7706,5476,5325,5578,7628,8427,8811,7924,5377,8381,5647,5651,8839,8249,8539,8354,7628,5666,8222,5329,7898,7610,5325,8354,7616,8721,8873,5301,8375,5453,8484,5325,8467,8391,9471,7742,8387,5237,8222,5655,7786,7582,5329,8387,7548,7924,7500,7972,5726,8467,5401,5480,7487,7972,7696,7795,5519,8479,7977,5717,8375,8062,7786,8073,5301,5676,7982,7864,7628,5274,5377,7478,5699,7622,8345,5325,7930,5352,5688,8104,8845,5476,5464,7982,5325,7864,7786,7734,5209,5712,7715,8159,5642,5342,8789,7719,5296,5407,7849,7628,7616,5578,8239,8239,5285,8484,7628,5329,8473,8427,7616,8154,5301,8721,5529,5329,8484,7723,5407,5274,8451,7628,5407,7834,8451,5329,5337,8140,5325,8473,8533,5642,7605,7667,7605,5407,5651,5651,7478,7511,8033,7478,7952,8447,7706,5329,8484,7667,5285,5301,7592,7834,7977,5651,5301,5617,7883,7516,5485,5325,7500,7588,8140,8349,8349,5717,7482,5564,7746,8387,7628,8174,5726,5642,8711,7681,8783,7628,5726,7746,8170,8527,5564,5726,7746,7538,5305,5305,5296,7610,7967,8402,5501,5464,5464,8255,7723,8307,7853,7946,7867,5301,7946,5320,5301,8184,7710,9372,9372,5476,7542,7883,5237,7622,5305,5305,7542,5491,5573,5337,7828,5476,5367,5476,5726,7667,7834,5485,7628,5301,8903,8762,8179,7482,5726,7834,8772,8345,5655,5622,8179,5476,5712,7883,7834,8762,5485,7972,5501,5564,5564,8438,8438,8467,8140,5726,9646,8762,5325,7675,8211,5708,5432,5480,5358,8467,8387,5480,5693,5651,8716,7675,5209,7786,5358,7582,5501,8272,8467,7920,8227,5524,7706,8136,5629,7786,5320,5320,5501,7893,7752,7904,5564,8604,8316,5726,8119,5391,5337,5391,8805,7478,8184,5485,7643,8170,7834,5647,5377,5237,5274,7834,5407,5358,7610,5688,7653,7632,7478,5730,5237,5717,7687,5274,5534,7687,8789,7700,7706,8533,5325,5209,5325,5325,7706,5325,7710,5325,8033,7849,8387,8800,5661,8174,5358,5391,5209,7710,8184,8170,7681,8093,8093,5573,7768,5661,8800,8077,7653,8316,8287,8653,7628,7940,5476,8447,8451,7967,5726,8805,5274,7742,7864,8494,5476,8287,7967,7828,8267,9654,8387,7710,8033,7734,8277,8170,8093,8174,7681,5209,8800,7628,8287,5726,8494,7610,7710,5241,8334,7834,7610,5329,7817,8795,7516,7940,7738,7610,7817,8795,7952,5688,7768,7952,8354,8721,7849,8604,5661,8073,8115,7867,5480,7632,7883,7675,8893,5407,8190,8411,7962,7521,5274,5255,5655,8119,7982,5391,7605,8354,8104,5329,7478,7582,7675,5325,5381,5464,5426,5712,8010,7805,5622,7858,8527,7605,8062,7867,5730,5688,7622,7542,0,8005,9657,7957,8267,7849,5629,8354,5442,5524,7893,8893,5241,8131,8077,7542,7675,8498,7817,8334,8762,5301,5358,5314,5573,8635,7710,7605,8322,7610,5347,5407,8201,5301,5296,5358,8539,8827,7834,5352,9367,5622,5213,8647,8307,7628,7763,5622,8115,5237,8039,5476,7982,7877,5568,8140,5255,5442,5325,7952,7588,7957,7687,5329,8184,5612,8498,9662,5612,5333,8676,9670,7675,8073,5651,7487,8903,8239,7883,7828,5564,5407,8438,8005,5491,8255,8919,5464,7962,8149,8365,7675,8762,5391,8365,9676,5213,9680,5213,8811,8170,8762,5329,7834,8073,8903,8159,7990,7610,7542,5401,8073,7576,8277,9686,5347,8005,7628,8354,8052,5655,7658,5377,5651,5442,5325,9690,9680,8909,5622,7576,8010,5448,7576,9695,5314,8909,5329,5329,5407,5480,7616,7628,8277,7610,9701,5401,5347,7542,8354,7548,5726,5401,8411,8676,8857,5301,7487,7632,7616,8354,5314,7500,5651,8539,8010,7914,5578,7914,8293,5661,5666,5274,5209,8447,8879,9710,7542,9715,5358,8282,7478,8302,8756,8110,5501,5358,8402,9721,5301,7710,9726,9736,7904,5301,8811,8170,8312,5305,8140,8184,7576,5301,7588,7681,5301,7706,7588,8062,8316,5209,8604,8354,7576,7516,9345,8126,9740,5501,5325,9745,9751,7779,5274,5564,7779,8179,8845,5301,8354,5329,8170,7706,8402,8126,8015,7516,8548,5485,8039,9759,8589,8589,5629,8411,8110,7746,5730,7500,8548,7982,5407,8365,7839,5301,5661,5564,8447,7930,7786,5519,5524,5629,5688,9751,8340,9345,5629,5651,8589,5501,5372,8756,5419,5305,8589,8589,7495,5237,7779,5419,7908,8073,7811,985,8548,5274,7495,8641,8077,5301,7571,8539,8077,7681,5347,5651,5285,8484,5237,7817,5241,8484,5337,5325,5496,7576,8329,8354,8062,7628,7849,5509,8504,7752,7752,5688,8136,5209,7853,8816,8998,5381,5320,8104,7920,7482,8302,8062,7972,5325,5501,8267,8504,7883,5309,7588,7565,5612,8402,8484,7687,9766,5309,5564,7972,7839,5209,5442,8062,7687,5666,5237,5564,5661,7914,7930,7605,5726,8093,7605,8670,8811,7924,5564,5480,5655,5491,5314,5391,7548,5274,8443,7592,8282,8170,5305,5320,8397,9772,5485,8504,7946,5661,5381,7605,5442,7795,8126,5291,8582,7982,7839,8845,8845,8272,5661,7692,5285,7768,5671,7632,8190,5224,5274,5564,9462,8316,8164,7681,7482,5666,5661,7768,7500,8099,5459,8316,7487,5419,7521,5296,5291,7972,5407,5676,7710,7746,5655,5329,7558,5688,5320,7898,8316,7675,5509,8196,8845,5519,5377,5519,5661,8062,5237,5564,8805,5342,8217,8653,5564,5485,7982,7972,7834,7592,8527,5325,9778,9783,8548,7516,7888,5301,5329,7779,5442,7768,8670,7706,7706,9032,7706,5509,7542,5274,8087,7994,7706,8272,5509,8461,7599,5413,8863,7774,8039,8402,8099,7511,7706,8427,7930,8287,8093,7746,7706,7867,8772,8548,8234,7967,5476,5209,5426,7779,5309,7893,7872,8438,7628,8548,8010,5329,7500,9789,8015,9796,7500,7521,5407,7990,5274,8821,7746,7706,8676,7548,8539,8438,7622,8467,5661,8222,7487,5688,8411,7811,8845,8827,7746,7994,5564,7994,7628,8131,7622,5661,5401,8548,8411,8267,7482,5377,7795,7972,8267,7558,7877,5491,5367,8467,8548,7500,9804,9810,8845,9367,7616,5309,5476,8863,8447,7898,7786,7533,7576,5407,8451,7768,8617,8267,5367,8952,5237,8164,8272,5564,8267,5655,5524,8613,7982,5437,8909,5274,7588,5655,8548,8272,9818,7774,5358,8527,8140,5301,5612,7482,5237,8548,5666,5622,7542,7800,7972,5329,5305,8647,5401,5651,8190,8548,5325,5261,5342,8010,8952,5413,5476,5514,8711,7576,8322,7643,9824,5237,9829,5519,8297,8190,5296,8255,8833,7571,7972,5261,8589,7516,7628,8010,8239,8287,9021,5407,7648,7877,7872,5519,5296,5396,8857,5237,8322,9835,8245,8119,5296,5237,7719,5407,5419,7811,5372,8827,5381,5285,8073,7877,5476,5386,5342,5476,8635,7500,5325,8888,7542,5347,7734,8329,8857,7706,5352,5301,5305,5666,5661,8857,8582,5337,7500,5666,5274,7877,5568,5329,7877,7616,7774,7521,5274,8397,8857,7632,5237,8479,5347,5666,5401,7487,8484,7628,8062,7576,5274,7849,8354,5325,5509,8582,5325,8504,7994,8267,8062,8104,7920,8302,8461,8136,8504,8548,8099,5501,7972,7752,7565,7605,7482,8816,5320,5274,8811,5661,5564,5401,8443,7914,5237,7972,7548,7576,8282,5564,5314,8670,5476,5485,5491,7898,8164,5381,7692,7648,5459,7946,5296,9462,8190,5419,7632,5291,5285,8316,8845,7675,5676,5519,5237,5342,8272,5325,5377,5325,7500,8093,9839,7500,7706,7893,8287,8015,8234,8119,7994,7746,8087,5413,5442,8272,7511,7768,8548,8427,5509,5329,8863,5209,7990,7521,5407,7746,5347,5377,7622,7706,8267,5296,7487,7888,8676,8411,5274,8131,8863,7811,8539,5329,8411,8438,8467,5309,5564,8613,5655,8527,8952,5524,7877,5301,5476,5407,8888,8647,7800,5666,7616,5612,8711,5514,5661,8239,5261,8833,5419,7542,5372,7811,5285,8857,8998,5661,8461,8998,5699,8998,9844,8073,5255,5730,9853,8461,7616,7616,8745,5367,8721,9021,8772,8227,7706,5534,7616,5666,8772,5329,8721,7599,7599,8461,7599,7653,9858,7632,5564,5651,8048,7786,7605,8170,7790,7786,8438,8461,7904,7795,5377,5676,5564,7516,7834,7999,8397,7795,5314,7628,7972,8345,8048,7823,5320,7487,7920,7538,7511,7904,8048,5301,8783,7994,5358,5325,8833,8316,7511,5325,5676,5651,7999,7632,7920,5325,5325,8375,7924,7763,8322,7738,5712,7924,5337,5337,5501,7904,5524,7924,7786,8322,8205,5524,8093,5476,7605,8539,5519,7542,5476,5274,8164,8658,8658,7542,7811,8397,5274,5476,9863,8322,5274,7628,8845,5381,5629,8467,5237,8010,5261,5501,5261,5401,5666,8845,8417,8322,7877,7628,7817,5476,5248,5534,5501,8062,7710,7710,8402,5564,5367,9054,5476,7986,5476,7920,8093,7511,7972,5726,5237,5661,7521,5237,5237,7706,8255,5296,5296,7675,7719,8062,5419,8539,8402,7893,8272,8302,7710,7605,5407,8190,5391,7858,8548,5509,5296,5730,7849,7849,7653,5708,8647,5476,5401,5726,9873,7516,9054,8255,5708,8010,5476,5296,8190,8479,5642,8149,9877,8898,7790,5578,7706,8131,8131,8131,5459,5459,7696,9045,8821,7696,8716,5622,5666,8805,5209,8845,8783,8052,8267,8994,7920,7710,7487,5573,7977,8170,7849,5573,8149,8099,5325,5629,7742,7957,8417,8131,8334,8115,7957,5325,8149,8154,5337,5305,8359,7696,5578,8805,7491,8245,8022,8196,8267,7710,7883,7883,8062,8845,7972,9881,8077,7883,5655,7935,8093,5241,5337,8631,8239,7610,7972,8381,7681,7696,8387,5459,7795,9886,5401,8052,8119,8577,8751,5485,8170,5358,8539,8039,7752,7500,5255,8827,9891,9900,8805,7628,8827,8005,9904,8005,8827,5401,5534,8005,5401,5401,8827,5708,8119,8022,8805,8005,8077,7972,7883,8381,7867,5325,8805,8805,7610,7628,7628,7999,7487,7588,5476,7588,7487,7999,7999,8110,5476,5333,5325,5688,8800,8340,5717,8539,7811,5464,5476,8504,7675,8613,7576,8467,8762,8461,8164,8811,5496,8494,8227,7786,7972,7653,5564,7893,5501,8456,8334,5407,7565,9032,5337,8136,8560,8800,8297,7817,7628,7752,5642,5309,7920,7542,5237,5237,7893,8800,5485,7658,7914,7548,8015,5661,7914,7994,7576,5459,7883,7893,7904,8073,5726,5606,7930,7795,7658,5209,7692,7972,8447,5255,5209,5564,8334,5655,5274,7571,8456,7977,8119,7972,8222,7715,5726,7982,7990,5476,7482,7500,7924,7610,7582,9012,5329,5485,8293,7834,8334,7473,5476,8687,5671,5717,7582,7972,7675,7504,7504,7696,7864,5426,7858,8766,5209,7952,773,9915,2533,3110,9919,3464,9924,2802,9929,9934,9939,9945,3447,2826,2847,3306,9950,9955,2550,2661,3190,9961,2685,2300,3133,3157,2871,3215,9966,3179,3005,9971,3235,2606,2953,2977,40,609,2526,9977,1783,9981,3457,9985,2795,9989,9993,9997,10002,1733,2819,324,3297,10006,10010,2547,2654,3120,10015,2678,2700,3126,3148,2864,3208,10019,347,2998,10023,3228,2599,2950,2968,24,603,10028,429,10033,852,10037,803,972,800,10041,9312,10045,10050,829,833,985,806,955,959,10055,839,819,816,10060,826,988,1044,1464,926,809,10064,855,836,1659,10068,915,845,842,848,776,10073,4081,3560,10077,3573,10082,10087,10091,10096,10101,10107,4021,10112,3609,4035,10116,10121,3809,4003,10127,10131,3849,3912,10136,10140,3707,10145,10149,3959,3661,10154,10160,3747,3787,10164,64,606,2523,10169,3103,10173,3454,10177,2792,10181,10185,10189,10194,2738,2816,2840,3293,10198,10202,2544,2651,3183,10207,2675,2696,3123,3144,2861,3205,10211,670,2995,10215,3225,2596,2947,2964,52,1084,10220,2537,9220,3114,10225,3471,10229,2809,10233,10237,10241,10246,10250,2759,2833,2854,1321,10255,10259,1426,2668,3194,10264,1325,327,3137,3166,2878,3222,10268,1318,1311,10272,3242,2613,1400,2986,32,410,10277,1620,10282,482,10286,3468,10290,2806,10294,10298,10302,10307,10312,10316,3451,2830,2851,3311,10321,10325,2554,2665,432,10330,2689,2305,464,3162,2875,3219,452,1772,3009,10334,10339,3239,10345,2610,2957,2982,106,10349,0,0,0,10360,10360,10360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,8,10,12,14,16,18,20,22,10360,10360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,10366,10366,5777,5777,4344,4344,5078,5078,6688,6688,6694,6694,10373,10373,10379,10379,5898,5898,6704,6704,670,670,6704,6704,10387,10387,10394,10394,6704,6704,1736,1736,0,0,10402,10402,10402,10402,10402,10402,10407,10407,10417,10417,10427,10427,10434,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,10446,10446,10450,10450,10455,10455,6540,6540,10460,10460,2851,2851,3613,3613,10465,10465,10470,10470,10475,10475,4198,4198,3917,3917,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,10480,10480,10480,10480,10480,10480,10480,10480,168,179,184,10488,193,168,179,184,10488,193,168,179,184,10495,193,618,618,618,10505,249,249,249,249,10511,10520,10520,10527,10527,10527,10527,10541,10541,10546,10546,10549,10549,10558,10558,10558,10558,4971,4971,770,770,1451,1451,908,908,5150,5150,5150,5150,1521,1521,28,28,44,44,44,44,44,44,10568,10568,46,46,52,52,52,52,776,776,54,54,54,54,54,54,56,56,56,56,58,58,10575,10575,66,66,10579,10579,10582,10582,10593,10593,10593,10593,10599,10599,5234,5234,4924,4924,10604,10604,10608,10611,10615,10619,10623,10575,4971,10627,10631,5070,5070,5070,5070,5070,5070,5070,46,46,5070,5070,5070,5070,5070,5070,10634,10645,10651,10658,10658,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,34,54,48,40,48,24,40,10667,64,32,52,10676,1311,1314,3242,4177,875,2878,3342,3222,10684,3648,4056,2514,10688,2854,1321,3194,10255,1400,3471,3373,2809,10229,2613,2668,1426,10693,1325,2537,24,40,64,32,776,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,836,911,915,922,926,812,809,848,806,955,816,842,803,968,800,845,1144,1454,1148,852,1464,1044,24,855,819,839,988,826,429,24,40,64,32,52,479,2885,833,1060,773,852,855,933,937,942,951,10697,10707,5004,10717,819,819,863,0,0,0,0,0,0,0,0,0,0,0,0,875,884,24,770,40,892,64,895,58,664,46,1057,32,773,905,52,776,908,836,911,915,918,922,926,812,809,929,848,933,937,942,946,951,806,955,816,959,842,803,968,800,972,845,855,819,839,985,988,992,826,429,976,10727,770,40,892,64,895,58,664,46,1057,32,773,905,52,776,908,1011,0,0,0,0,0,0,0,0,0,0,0,0,6,8,10,12,14,16,18,20,22,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,8,10,12,14,16,18,20,22,836,911,915,922,826,988,1044,848,806,10733,842,803,968,845,816,800,819,855,839,852,955,429,985,926,24,109,40,776,0,0,0,0,0,0,0,0,3715,10737,836,915,922,806,816,842,803,800,845,926,809,848,826,819,839,855,852,429,10041,10068,10060,10742,24,40,64,32,905,52,908,1786,10747,106,50,58,38,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,24,40,64,32,905,52,836,911,915,918,10750,922,812,10755,809,929,10760,10765,10769,806,955,816,959,10774,842,942,803,10778,968,800,972,10782,845,1073,855,819,839,985,992,826,429,770,40,892,1518,64,109,52,905,908,1440,855,819,839,852,0,0,0,0,0,0,0,0,0,4580,4580,4580,4580,4580,4580,4580,4580,4580,4580,4580,4580,4580,4580,0,0,0,6,8,10,12,14,16,18,20,22,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7558,7681,7972,8402,5712,5661,8402,5661,5305,8349,5325,10786,0,7908,7730,8205,7706,5386,5651,8789,8375,5509,8073,7752,8721,5688,5285,5485,8110,7946,8451,8577,5261,8805,5712,8104,7914,5661,8407,8397,8140,5519,7528,5480,8174,7558,8028,5564,8307,5480,5453,10798,7920,7786,7795,5301,5401,8015,8402,5381,7779,7576,7920,8473,8099,7858,8039,8005,7805,7883,5606,8028,5485,5381,7986,5476,8345,8504,7914,8287,5564,5564,8170,7893,8322,5509,7582,7920,8039,8548,5693,7478,5712,8821,5622,7972,8694,7795,7742,8539,8345,5426,5386,7628,8732,7823,8267,7548,8110,7864,8159,5647,5642,5407,7994,5285,7628,7977,8676,5358,8227,5564,5274,8447,7746,8631,8909,8422,7898,7542,5329,8631,5448,5629,7588,8863,5717,5476,8073,8239,5325,7920,5661,5524,5329,8888,7742,8227,5329,8039,8334,8663,8647,5419,5564,5629,5305,5237,5622,5329,5285,7616,5329,7972,10803,8104,5401,8316,5352,8447,7687,8239,8402,7952,7675,8909,8010,7972,5285,5261,7478,8402,8489,7521,5342,5501,7616,8772,9361,7883,7908,8789,8068,5401,5358,5218,5291,5573,5476,5676,7986,5401,5514,8068,7786,7706,8402,8888,8329,8613,8154,8205,5274,8473,5426,8739,7986,7834,5329,8154,8205,7632,5726,8205,8375,8447,8205,8033,7542,8494,8687,8205,7516,8687,5209,5285,8077,5442,5325,5524,5442,7746,8077,7972,7972,5717,5407,5459,7972,5519,7658,5655,8484,5274,7628,5496,5642,7628,5248,5237,5237,8484,7628,7628,5426,8170,8484,7528,5617,5617,10809,8484,5391,8772,5320,5391,5606,7883,7734,7734,8721,5396,8772,8732,8598,5367,7478,7576,8479,8461,5261,5476,0,8994,7658,8010,8282,8732,8560,7565,8282,5699,10817,7548,5407,8777,8093,7605,8115,7888,8073,5274,5717,8732,7977,5329,8062,8334,5237,0,5564,5372,8527,5301,8670,7628,7843,8805,0,7994,8073,8249,8184,8170,5464,8087,8548,8411,7790,5459,10825,7898,5496,5476,5514,8777,8340,7957,5491,10830,5642,8316,10836,8903,8772,5329,5476,5381,5407,8154,8249,7706,5329,5329,7877,8617,8682,7779,5407,5407,7719,7834,5564,5255,7834,7834,8340,8340,5476,5333,8805,5688,7663,8716,7681,5285,5381,5352,5509,5476,7637,7746,7763,8811,7542,7628,7628,8851,7723,5647,5367,7706,8211,5209,5296,5342,7972,7521,5358,5564,8068,7994,7478,7972,7706,5261,7752,7542,8504,8998,5568,5381,5329,7500,5325,8196,7706,8467,5501,7904,7872,7528,5325,5396,5396,7565,7478,5291,8131,7972,8267,8196,5708,5573,7790,8387,7893,8705,8560,8827,7482,5337,8411,5476,10844,7994,5301,7920,7864,5274,8227,8777,8249,7588,5476,8467,8297,8093,7658,7681,8539,7622,7723,5301,5218,7990,7715,8456,8222,8131,8438,5476,5476,8170,7920,8893,7692,7605,8447,8073,5224,5261,5688,5642,5274,8543,8062,7616,7687,7582,8170,5459,8077,8811,7982,5255,5712,5564,8119,7786,5358,7994,5564,5314,7790,8010,7867,7790,7790,7904,5209,5305,5209,8539,7710,5325,5485,7610,0,5453,0,5529,7616,7723,5717,8391,5301,8164,7482,8682,7542,7637,8033,7628,5519,5209,8577,7478,5325,8005,8604,5248,7839,8131,8687,8211,7710,5285,5285,5564,7628,7605,5209,5419,5296,7482,5496,8048,8164,8613,5248,8211,8316,7548,0,7605,8329,7811,7473,7768,5671,8245,5485,5426,7768,8340,5485,7696,8345,8087,7710,8504,5407,5377,5464,5255,5301,5309,8149,5320,9345,8245,7977,7648,5358,8115,8255,5296,7706,8903,0,8164,7643,7616,7632,7616,8329,5309,7962,7482,8349,8062,7576,5642,8762,7994,5573,8307,5564,8504,7482,7849,5358,8201,8267,8539,5647,5342,5342,7558,8033,7478,5432,5237,8845,5301,5564,7605,5305,5301,9345,5325,7888,5688,8302,5612,8033,8527,8170,5712,8249,5426,5485,7935,7528,7667,7834,8805,7757,8451,5509,7653,5337,8451,7977,7599,5337,8816,8670,5274,7843,5564,7864,5305,7752,5381,7823,7715,8795,8277,5401,5391,8494,10850,5401,8154,5337,7616,7616,10857,8104,8211,8211,7839,5509,5485,8539,5726,7582,5407,7967,7786,7986,5329,8170,7994,7667,8077,8653,7849,7734,5209,5524,8039,5564,8099,8227,5442,8022,7805,8427,8514,7774,7904,5301,5647,8073,7653,8222,8196,5676,5237,8196,8539,5381,7734,8903,5309,7999,7658,8845,5396,7786,8093,7893,5309,8345,7599,5413,7576,7834,8170,5407,7516,8772,5320,5606,8479,7982,7706,7849,8402,8272,8104,7930,8227,7811,7893,8277,7706,8249,5255,7994,7883,8302,7811,7834,5476,7681,7706,5509,8604,8716,10862,5480,8484,8964,7632,0,0,8249,0,10874,0,7616,7616,7616,7675,7730,5688,7990,7521,5509,7628,7628,5564,5401,8190,8467,7823,8115,8494,8104,7675,7628,7858,7790,8345,7864,7632,7616,8154,7795,5419,7746,7571,7571,8170,8222,8110,5237,5661,8345,5726,5407,5564,5329,5485,9054,8527,8062,8062,5730,7834,5647,7605,5209,7521,7914,5717,5381,5485,5651,5464,7914,7734,5671,7582,7576,7542,7994,8073,7994,8994,5325,7982,8205,7977,8676,5642,7667,8827,7768,7994,5274,8005,8805,7643,5237,5391,7706,5347,8548,5642,8467,5712,8267,5320,8539,5622,8721,9751,5529,7877,8509,8005,0,5419,7957,7994,5213,0,5448,7482,5391,8104,5391,8267,5655,7843,8293,8249,7849,5699,7940,8467,5301,8170,5237,8334,5573,7500,5647,7511,8494,5655,7542,8443,8312,8451,8467,5573,7628,7908,7533,7734,7734,8136,8851,5237,5501,8267,5241,5407,5325,8893,8777,8869,5651,8052,7962,5655,8391,5448,7500,7511,5237,7786,7843,8164,5534,5671,8451,5391,5629,7632,8613,5612,5274,7930,5642,7952,5358,8548,8234,8925,5519,8604,8370,5347,0,5325,5301,8179,7843,7628,0,7616,5305,7757,7681,7790,8316,7605,5352,8345,5401,8827,5237,5255,5688,5309,8104,5381,7994,8422,8340,7628,5476,5325,8239,5358,5329,7588,8201,8015,7632,5419,7800,7834,8093,5325,8647,8234,7653,8539,7588,5329,5617,8987,8539,7763,8329,7800,8073,8539,8451,5578,9367,8190,7994,7982,5708,5651,7957,8140,7548,7774,8312,5419,5651,8827,5453,5296,7667,7482,5407,7834,5320,7482,8005,8033,7982,8302,5568,7542,7538,8205,10880,8322,8307,5401,7516,5568,7663,5358,5301,7994,5325,8329,8119,8010,8249,7742,7877,7828,8329,5285,7872,7872,5666,7628,8255,5573,5396,5407,8349,8267,8222,5337,5726,5329,7648,5296,7864,8909,7893,5291,8397,8048,8613,5501,8005,8598,7872,8387,7500,5564,5291,8903,7478,8316,7487,7675,5237,7610,8267,0,7706,5407,8267,7962,8093,7628,5367,5218,5325,8062,7487,8789,5666,8190,8267,7628,5237,8052,8073,8052,7663,7994,5296,7994,5325,7839,7521,8375,7763,5476,8873,5419,8179,7914,8322,5401,7990,8467,8245,5377,5629,5661,5358,8427,7962,5401,8010,5693,5381,7786,5661,5320,5407,8898,8062,7730,7528,8329,5642,10888,5448,5320,8329,8217,8751,7994,8766,5442,8349,8613,8647,7658,7706,5372,8033,5655,7696,8447,7616,5524,8827,7675,7706,8048,5407,7500,8005,5381,8411,7757,5651,5347,5309,8777,7622,7723,7867,5274,10893,7742,5274,7588,5329,5476,7500,5661,5301,5476,7986,5666,7675,8539,7972,7930,8909,5642,5305,7811,8647,8010,5448,8772,8422,7723,8255,7994,7511,5296,0,5524,8267,0,5301,5320,5573,7663,7516,5372,8190,8033,8277,8154,5480,7478,7872,7872,7706,7946,5329,7588,8422,8211,8267,8751,7628,8329,5325,7592,5274,5305,10898,7588,7592,0,8077,8073,8261,5476,5274,7628,8170,5401,5401,7482,8322,7616,7610,8316,7994,8354,8093,5726,5642,8010,5651,5347,8005,5347,5325,8903,9516,5666,5666,5396,8527,7972,7994,8005,8427,8359,5301,5325,5651,5666,8359,7632,5325,8005,5329,5407,8589,0,5666,7768,7675,5476,8375,8514,5432,7982,7982,5329,9641,5329,7487,7675,7542,5573,7982,7500,8451,5564,7500,7500,5329,7982,7628,8052,5285,8170,8039,8222,7834,8427,8427,8005,8282,5237,5320,5248,5688,7757,5325,5688,7558,5391,0,8539,5578,5617,7628,8811,5209,8062,5296,8249,5717,5342,5367,7637,5391,5476,7538,7521,7565,7864,8994,7710,7542,7752,7752,7872,7898,5358,8354,8354,7667,7706,8297,7482,7706,5606,8467,5291,5296,8196,7706,7548,8387,7839,7715,7599,5501,5501,8560,7817,5372,5564,8297,5381,5564,7710,8307,8647,5274,8447,8594,5688,5337,7687,5255,7710,5337,7849,7653,8170,5301,5564,8297,7687,8131,7920,8073,5274,7605,7757,5432,5224,7786,8297,5726,5617,8964,8093,7786,7883,7786,7616,5301,7558,5726,8711,5717,7839,5296,5296,8211,5564,7924,8631,8577,7605,5476,5274,8144,5285,5301,5476,5255,5325,5201,5617,5476,7599,5305,7723,7867,7952,7817,7972,7800,10904,7972,7977,7648,7487,7706,5426,8577,5688,8670,5218,7977,8839,7935,8126,7864,7653,5320,8190,8527,7914,5655,5564,5274,5578,7478,5564,5301,7843,5358,5573,8467,5337,5381,7883,7834,8805,7828,8839,5296,7795,7972,8022,7893,8170,5651,7706,7706,7628,7667,7687,8249,8322,7487,5237,8099,5301,5459,7681,8272,8653,8811,7653,7628,7898,7893,7920,7994,5471,5476,8467,7588,7768,7542,7872,8447,8745,7994,7779,8039,5509,7582,7864,8282,8539,7599,8179,7924,7616,8039,7877,0,7986,7990,5325,7849,8805,8349,7500,7746,7628,5381,5391,8190,5464,7834,8411,8110,7994,5564,8467,5712,7994,5564,8821,5661,5337,5688,7790,5367,7616,5391,5248,5629,7605,8548,5377,5564,8467,5296,8249,7986,8762,7982,5688,5459,5301,7795,8267,8170,7823,7957,8658,8164,7616,5419,0,7843,8334,7487,5237,7839,5237,8467,5534,5401,5448,8282,8164,8164,5325,7478,5688,7653,8196,5476,5358,5396,5629,5476,8762,8716,7849,7982,5296,7538,8391,5476,7752,7616,8909,7628,8777,9423,10904,7800,0,8987,5578,8340,7710,8539,5708,5329,7994,7972,5629,8033,8647,5726,7920,7628,5407,7632,7957,8196,7548,7482,5419,8952,7752,5285,5509,7972,5578,7538,7538,8039,7511,7790,5237,8827,5301,7800,7675,10909,8015,8211,7521,5305,8397,7487,5688,8594,7972,5352,5352,5285,5726,5432,8239,7533,7952,5237,5325,5622,5464,7893,8149,5291,5291,5296,7482,7877,5285,5261,7648,7675,8711,5248,8329,7487,10919,7558,8903,5301,5661,5261,5476,5485,8245,7877,7706,7839,7521,5617,7632,8196,7616,7637,5301,8115,8190,5401,7605,8115,5661,8211,5661,7706,8164,5407,8249,8052,8821,8154,5314,5381,8888,7849,7763,8010,5666,5381,7986,5651,5301,8104,5301,5688,8077,5329,8762,7675,7605,7610,5301,7610,8527,7491,5413,8987,7786,5676,7616,0,5237,8179,5726,7768,8762,8179,7800,5291,5381,7605,7687,5661,5464,8816,8456,8293,7528,7548,5305,7696,7990,7763,5237,5426,7834,8795,8467,0,8093,8190,5320,5274,8316,7610,5381,5274,8387,7982,7994,8479,5248,7994,8479,9032,7946,5726,5476,5476,8201,8811,7628,8473,5496,5476,5261,8033,5564,8234,5501,8952,5381,8136,7548,7883,8915,7548,7548,5661,7706,5661,8297,7972,8504,8196,5309,7667,8467,5712,7637,5708,5453,5296,8297,7977,5480,8093,5491,8222,8174,5642,7571,5358,8670,8772,8170,7849,5320,5519,5655,5476,8994,8073,8539,8631,5564,8234,7972,7972,8297,7533,5476,7790,5480,8136,5568,5274,7877,5726,7930,8234,5237,8884,8073,9818,5564,5476,7710,7692,8504,5419,7977,8879,5305,5381,7696,7632,8613,7605,7952,7482,7774,8577,10923,10934,9345,8903,0,8653,8800,5453,5320,7977,8653,7558,5301,5676,7914,8057,5717,5476,7628,5655,7511,5688,8658,5325,5476,8201,9345,8839,8302,8658,5301,5401,5401,7692,5407,8998,7877,5358,8234,8272,8467,8093,7710,8227,5442,7888,8473,7779,8227,8456,8456,7893,8467,7632,8039,7834,8762,5237,7972,8170,7706,5325,7972,7795,8800,7935,5377,5377,5564,5248,5661,8411,5459,8653,8676,5519,5519,7849,8467,8222,8222,5564,7628,8641,7834,5296,7930,5573,5329,10940,10945,8267,8245,8131,8245,8359,8164,8467,8613,8716,7592,5612,8282,8068,7710,8940,5453,7616,5381,7542,8359,7692,5401,8222,5301,5578,5391,5329,5476,5459,5661,5274,7994,8473,8340,5325,5419,9367,8222,7521,10952,7734,5407,5622,5407,8397,5325,7883,8925,8010,8073,7521,7528,5432,7648,7800,5347,5708,7888,7952,8340,5342,8789,7877,5401,5358,5309,8903,5320,8772,5358,5347,7734,8613,7972,0,5320,8631,5391,8126,5661,8073,8033,8277,7610,5237,5274,5347,5578,5491,10961,8365,5391,5407,7533,5476,8297,8387,5237,5237,5642,8527,8772,0,8473,5564,7904,7849,5325,5325,5407,8721,8411,7834,7952,5291,7858,7790,5651,5651,7763,5391,7487,8427,7632,5291,5651,7681,5401,5642,7972,7667,5237,5261,7994,5237,5606,7628,5347,7864,8762,8196,8334,5325,8391,7616,8131,5726,8427,5309,8721,8919,5407,7632,5726,5407,7994,5291,5726,7632,5347,7914,8539,8721,5407,8721,7834,7952,5651,5391,8427,5347,5291,5325,5237,8539,5606,7628,8131,5309,5726,5285,8484,5309,8140,5291,7972,8783,5325,7786,7883,8397,8539,8987,5396,7768,5717,7710,5381,7952,7817,8062,5381,7643,5688,5426,7588,8447,5325,5329,7972,7687,5358,5426,7982,8987,7817,7972,5529,5573,5237,5476,5329,5291,5237,7834,5237,7834,7834,5693,5564,5688,5688,5285,8062,5325,8010,8329,7757,8062,5496,8272,7500,5381,5476,8504,8329,7482,5261,7706,5480,5325,8329,7482,7864,5501,8387,5642,8022,7914,7482,7528,5291,7675,8884,8033,5337,7972,7504,7565,7528,8783,5617,5274,8302,8068,7500,5476,5476,7588,7710,7849,7914,7849,7500,5655,7605,5241,8131,5209,5209,8427,7786,5564,7768,5459,8093,8539,7924,5301,5386,7533,7576,8811,5476,8170,5708,7687,5480,5476,5726,7999,5255,5358,7504,5726,7904,8245,8443,8272,7605,7839,5578,5218,7500,8329,5476,5464,7849,5391,5496,5285,5391,8727,5496,8131,7952,7768,5296,5381,5396,5671,7521,7994,7914,5442,8316,5651,8427,8391,7864,5296,7834,7504,7795,7696,5413,7681,7710,5666,7605,8582,7473,7478,7628,8909,5325,7972,8504,7588,7843,7864,8582,7864,5391,8805,7883,8073,7877,5337,7946,8255,8196,9045,8345,7628,7675,7558,5381,5274,7478,7478,5524,8022,7734,5296,5485,8851,5655,8851,8762,10969,8227,8839,5381,7990,5726,8827,7675,5342,7599,8190,7893,7710,7738,5476,8136,7482,7757,7920,8287,7877,8033,9032,5325,7706,8772,8863,7994,8170,8745,5407,5241,8115,7967,7542,5314,7779,5407,7605,8052,8099,7914,8473,8359,7858,7628,5459,7500,7858,5391,8190,5391,7643,5396,7864,7548,8539,5661,5564,7734,8805,5407,7706,7628,5209,8732,5237,5296,7482,8345,5274,7823,8033,8527,7605,7924,7834,7946,8190,5717,7495,7706,8711,7491,7994,0,8909,7967,5261,5407,8073,7692,5464,8154,5717,7616,5651,7675,5651,5237,8322,8033,9641,5377,7588,7898,7710,7542,5391,5419,8467,5661,5529,8272,5642,5642,0,7628,8473,8827,8745,5301,5305,5305,8987,5578,9476,5407,8115,5381,5401,7957,8179,7742,8721,5237,5314,5708,5708,5309,5578,5476,7982,5419,7800,8783,7653,5396,7877,7500,8833,7719,5237,5617,8217,5241,5386,5347,7864,7616,5291,5325,9021,5285,8073,5296,5622,7715,8982,7687,5391,8255,8772,8982,7734,8119,8190,5372,8772,8903,5342,7542,5325,5285,5485,5401,8417,5476,7663,8427,7920,5296,5396,5476,5476,5261,8261,8417,7542,8863,7738,7982,7576,8052,7491,7616,5407,7628,5407,5296,8762,5578,8190,8365,5666,7914,7994,7877,5301,5476,8411,5578,7834,7864,5442,7994,5442,5642,7877,8261,7482,5347,8033,8154,5578,7811,8365,5476,8903,8427,7834,8762,7834,5325,5693,5564,8504,5325,5381,8062,8272,8261,5261,7706,5480,8329,5476,8329,5325,8504,5419,5296,7742,8170,8387,8884,7500,7864,8099,7504,8022,8527,5617,7565,5291,5241,7786,7849,5255,8443,5391,7504,7687,7588,5655,8539,7967,7839,5726,7999,5358,5476,5476,8582,5666,5391,7795,5391,5381,5296,7558,7605,7914,5396,7883,8131,7768,7952,8329,5476,5241,5671,7521,5496,7643,7500,7576,5381,7478,7628,8255,7478,5524,5337,5296,8582,8851,8022,7663,8745,7605,7967,7495,8762,5314,7893,7990,7994,7628,8839,7914,7757,7877,7779,9032,5342,8772,7914,5476,8711,8033,5459,5464,5407,5661,9641,7491,7994,7864,7628,8190,7877,5209,8345,7834,8539,5651,7858,7500,5305,8903,7588,5661,5642,7898,5391,7542,5651,5309,7800,5578,5407,9476,8772,8982,8255,5347,7734,5291,7834,7542,8427,8033,7786,7542,8062,5367,5291,8062,7653,8062,5237,5237,8154,8239,7653,8762,7610,8307,5419,7706,5391,5301,8919,5509,5358,5320,5274,8527,7972,7972,7834,7834,5391,5573,5296,8068,5476,8068,5476,5407,7904,5730,7864,8140,7521,7811,5407,8800,5671,5726,5564,5237,8888,8052,7628,7605,7977,0,5237,8073,7752,7811,8888,8539,8548,5501,5476,7972,8222,7637,7653,7920,8136,7920,8131,8136,5337,7757,5305,7487,5519,7811,8653,7849,7849,5305,7653,7790,5301,8447,5358,7628,7977,8641,7790,7920,5237,7864,8170,5305,5573,8772,7811,5291,7930,5655,8467,5564,7774,7817,8594,5476,8560,5509,8751,8154,8010,8772,8721,8115,7972,7696,7605,5391,5358,5209,7696,7952,7858,8411,8349,5491,8119,8582,7893,8964,5476,7710,7790,7849,5358,5329,8504,5296,5671,7858,5209,7977,7500,9353,5285,5671,8205,5407,7616,8329,5655,5617,8888,8888,5688,5617,8732,8205,7576,8277,8365,7487,8033,8987,5606,8456,8845,5274,8349,5407,5342,5564,8772,8827,8827,7972,5325,8015,8762,5309,7504,8598,8267,8222,5437,8277,8527,8777,5325,8119,7663,5622,5564,8131,8159,8115,8239,7994,8126,8033,5622,7972,8863,8473,8267,8833,8772,8365,7834,10978,5261,5509,7616,5309,8811,5274,8205,5358,8762,5320,7834,9259,8190,7610,8811,8205,7930,5655,5564,8467,7817,7774,8115,5274,8126,8015,8154,7972,8010,8772,8751,8411,8131,7605,8721,7696,5407,5358,5391,8964,7952,8582,5491,7790,7893,7849,5476,9353,7972,7977,5296,5209,8504,5329,8205,5209,5671,5309,5688,5655,8277,5617,5564,8762,5325,5320,8987,7487,5358,7576,8845,8456,8772,8277,8527,8863,5564,5622,8159,8115,7834,8365,8267,8833,5261,7616,8811,7710,5237,5617,7823,7504,5237,7558,7849,7558,5578,5367,5629,7967,7967,5301,8484,5564,7999,8811,7706,5261,7723,8196,5274,7839,5291,8196,7710,7839,8033,8033,5459,8170,8783,8539,7719,8427,7605,8354,5726,5381,7710,5573,7795,5529,7839,7681,7888,8577,8811,5612,8140,5237,7999,7588,7482,8170,5407,5699,5629,8287,8402,5329,5726,8903,5688,5209,5377,5726,7710,5464,8255,8255,5642,5372,5377,10982,8365,8365,8443,8994,8222,7692,7990,5471,5291,5564,8033,5407,7565,7972,7730,8354,8994,7706,8354,8322,5480,7658,5476,8184,8093,5712,7904,5459,7692,5480,7977,7839,8174,5280,7605,8170,5459,7972,5564,7533,8170,5261,8073,8447,8170,5301,8682,5476,5325,5491,5274,5285,7888,7605,5622,7473,5635,7952,7723,8005,7521,7710,5329,5413,7972,7977,7681,7774,5407,7738,8255,5358,5274,7888,5325,8170,5325,5320,5647,5573,5485,8077,7675,8073,7710,8658,8711,5320,7843,5218,5285,5442,8255,0,7738,5407,7706,8494,7994,5314,5381,5325,8077,8170,8170,8099,5329,8873,8359,8170,7710,5509,7768,5377,8073,8443,7867,5325,8140,8548,7774,8548,5352,7972,5241,7828,7972,7628,7888,5471,8104,5218,7548,8539,5578,8033,8663,5407,7795,5629,8170,5564,8443,5459,7858,8110,7495,5377,5496,8422,5407,8479,8451,5237,7738,8322,8427,7828,5377,5325,8077,7800,7511,8427,5358,5248,5329,8239,8140,5629,5491,5612,5237,8005,5325,7972,8322,8539,7800,8548,5401,5413,5372,8184,5432,8422,8170,8919,8554,5274,8010,5573,7548,5471,8073,8140,8443,5291,5291,7516,7738,8255,8255,7734,8239,5471,8498,8582,5372,7738,5358,5358,7605,8170,5573,8255,5471,5442,5325,7478,8354,8184,7516,8577,7972,5301,7972,7877,5573,8676,7994,7610,7516,5274,7994,8857,5347,5661,8261,5661,8077,7738,5726,5381,8498,8857,5237,8005,5291,7516,7914,7817,7883,10986,5726,5377,7888,7888,7817,7843,10994,7632,7663,5325,8170,5629,11001,11009,7834,11013,8756,5726,7957,8149,5480,7972,11023,5377,8479,11023,7628,7935,8387,7952,7667,7994,8354,7528,8539,8190,8010,8504,5261,8322,5320,8068,8033,5491,7864,8136,7706,7790,8821,8504,8010,5622,8062,7982,5726,5464,8539,8093,5491,5708,5655,8010,8582,8608,5352,7930,7786,7692,8174,7605,8164,7864,7904,7576,7972,5642,7990,5476,8745,5391,5255,7696,7723,8170,5285,8687,5329,8509,7768,7576,5437,7972,5617,7779,7628,8670,5337,7811,8267,5578,5509,5564,8745,7576,8447,8093,5578,8427,7779,5209,5296,7599,8287,8039,8795,5476,5352,7542,8234,8184,7858,8721,7930,8099,5213,7779,8821,8110,5325,7924,5274,8732,8694,8658,5717,5337,8062,5320,5564,5209,5564,7752,8543,8427,7628,7752,8272,7786,5655,5367,8467,5329,8484,8783,5622,7994,7643,10830,7935,5285,8427,7734,8149,5501,8010,7516,5717,7719,8795,7811,5476,5325,8217,7696,7628,5274,8062,5666,8456,5301,5301,5329,7516,7935,8387,7952,8190,8539,8504,5622,7864,8099,8821,8062,7692,7990,5329,7576,7972,5476,7982,5655,5301,5642,8745,5391,5437,7972,5285,7576,7768,5329,5285,5578,5564,7779,8184,7930,5296,8234,7599,7779,8287,5209,8694,5564,5325,7752,5320,8456,8467,5367,8427,5329,7935,7516,7528,7786,7839,7839,7920,8397,8411,7986,7986,7839,5529,8282,8411,8411,8411,0,8411,8282,7839,8411,8411,8033,8613,8789,8789,5655,8287,8287,11031,8705,8411,8411,11039,11044,8239,8245,7877,8811,7542,7628,7628,7706,8329,5476,8039,8349,7706,8925,7599,7977,9032,7616,5377,8267,5309,8560,8387,8010,7478,8245,7864,7811,5578,11048,5309,8467,7994,5401,7710,7935,8447,7681,7972,5476,7592,7977,8033,5491,7696,8539,8312,7599,5459,8115,8272,5320,5480,11056,5485,5296,8316,5337,5651,5413,5325,8716,5476,5381,8863,8577,8329,8422,8022,7795,8272,8334,5730,8447,5471,7592,8190,8329,8201,5337,7675,5688,7853,7605,5688,8539,8539,5647,5485,5377,8307,5476,5578,8316,8687,7478,5391,7558,7588,5372,8658,8527,5401,5612,5296,5301,11061,8277,8543,8451,5291,5413,7811,5491,5329,5337,7576,5309,7628,8287,8005,7994,5377,5476,8245,8467,7632,5358,7495,7628,8903,5342,5471,5342,7834,8732,7710,5377,7628,5391,5655,5337,8267,7864,8411,8039,7864,5367,5464,5688,8479,8245,7994,11067,5476,8131,5642,5573,7511,8329,7738,8539,7710,8467,7588,7738,7542,0,5642,8721,8015,5708,5391,8604,7710,7588,5372,5578,5471,8539,7957,7710,8451,7516,9021,7648,7542,8190,7628,5476,7478,8239,8170,5391,5358,5642,8349,5661,5342,7811,8427,8909,7696,7622,8411,8411,7986,5301,8467,5642,7632,5301,5476,8805,8919,7706,5218,5261,7653,7628,8211,8613,7723,0,8582,5564,8756,8888,7565,5426,8136,7528,7914,7898,8467,8879,8154,5661,7898,7478,8170,5337,7653,7658,5688,5358,8456,5224,8670,7930,8631,8539,7967,7491,7516,8582,7952,7605,5391,7692,7628,5671,5717,5237,7972,5325,8329,5730,5426,5285,5237,7952,7495,7843,7977,7908,5241,11075,8267,7834,7558,8307,7710,5329,5564,7478,5564,5524,8052,7843,7977,8845,7667,7616,8073,5237,7930,5301,8267,8201,7675,7706,7920,8745,8039,7576,8772,7967,5255,8277,8447,8033,5337,8201,7521,7883,8170,5218,8255,5476,8762,7834,5712,8893,7930,7864,7628,5676,7628,8267,5730,8005,7521,7521,5448,5629,8391,5237,8613,5573,5209,7967,8170,7478,7521,8267,8052,5218,5358,5305,8783,5564,8239,7482,5622,7982,8255,7834,8015,8010,8255,7500,8919,5358,7528,5358,8554,7994,5241,7790,5261,7516,8312,7883,8249,7491,8340,7908,8527,8249,7967,8582,5401,8365,7877,5337,7706,7834,7877,8365,8093,7811,5237,8527,8365,5301,5337,5693,5688,5314,8456,7576,5476,8560,7628,8484,7834,8397,7790,7883,7500,7853,5655,5501,11082,0,8267,7658,5606,5280,5480,7571,7653,7786,7588,8312,5442,5437,8391,7632,8287,5442,5337,8316,7972,5274,5419,7558,7482,5647,7675,5712,7692,7940,5666,7734,8397,8370,7834,5237,8929,7994,5329,5347,7834,8272,8456,8427,8104,8772,8397,8287,8140,8653,5377,7746,8762,7982,7500,5426,8772,8484,8104,8267,8312,7990,5448,5651,7768,5442,8451,8267,5218,8608,7687,8370,5629,5419,8647,5261,7628,5301,5372,8149,5476,5419,7734,5285,5237,8772,8312,8789,5476,5301,8170,5285,5476,8929,8613,8329,5442,7834,8093,5651,5651,8929,7528,5285,5237,5651,7834,8411,7774,5391,5337,5391,5391,5301,7548,7491,7779,5301,5309,5309,5688,5476,7757,8479,7999,5693,8312,5688,7849,5564,5655,7972,7904,8375,5564,8716,7757,5261,8255,5568,8732,5209,8010,7628,5396,7653,7817,7706,8211,8915,8539,7487,5237,5476,7637,5391,5647,5237,8293,7542,11094,5407,7920,7491,7482,7904,7565,8033,5426,7853,8354,7834,5564,7920,8136,7528,7864,5291,5471,8131,7482,7542,8282,5325,8504,8783,8816,5501,8267,5325,8196,7920,8039,8062,7482,7667,5391,5476,7548,8077,5671,8915,8154,7658,8756,11104,11112,11119,0,7888,5209,8447,5647,5391,8438,7786,7864,8093,5224,5476,7786,7904,7920,7628,7487,7571,8201,5337,7828,7977,5655,5391,5391,8964,8170,8427,5391,5617,8190,7999,8222,7849,5358,8119,5573,5391,8073,7605,7710,8925,8312,8316,7542,5564,8533,7511,7542,5564,5301,8354,7920,7924,8282,8073,5381,8131,5320,5241,7715,8447,8077,8539,7977,7715,7883,7914,5476,7487,8582,9012,7930,5407,8316,5426,8062,5285,7710,7696,5717,5224,5391,8711,7977,7482,7667,7576,5248,8987,8316,5305,5666,5325,7628,7500,8504,9021,7972,7723,5261,7710,5274,5426,7768,7920,8964,7605,5730,8391,7473,5642,5274,5274,5519,7667,5496,8149,5325,7920,8613,5651,5476,7482,8687,8345,9562,5337,7719,8898,7542,8375,11126,7663,7757,7653,7872,5391,8946,5688,7675,5578,5519,8205,5377,8451,7795,7817,7548,8307,5329,5712,7843,5509,7528,8267,7930,7478,7588,7628,7877,8805,8073,7653,7977,8062,8498,8527,7877,5509,7972,7487,8190,7478,7478,7681,7817,5314,9471,5426,7542,7914,7653,9471,5661,5573,5241,8170,5274,8964,8211,7734,5301,7533,7872,7558,5524,5301,8594,11135,7605,11142,5647,7511,8397,8170,8227,8467,5407,8461,7757,8272,8227,8099,7473,8093,7930,5329,5301,8322,8057,5676,8438,8397,5352,8345,7920,5274,8387,8863,5666,9051,8571,7738,8653,8762,7994,7805,5209,5241,8543,8077,8827,8658,8772,5693,7706,7542,5314,7706,7628,5309,8721,7790,8227,5606,5237,5401,8272,7786,8451,5320,5655,5329,8249,5329,5396,8473,5205,8277,8800,11147,8201,8716,5509,8365,0,8407,5274,0,8154,7779,5933,8514,8509,7616,8539,5401,8039,5274,8762,5647,7994,8827,5564,8110,5325,7864,8110,8033,5377,7687,8062,7924,8676,5367,7628,8946,5426,5464,7994,5564,7999,5496,7867,5617,8062,8005,5606,8711,8255,8255,5730,7853,8827,7811,7491,8438,5407,8676,5407,8022,8005,7982,8190,7888,5381,5655,8411,7548,5209,5519,7491,5712,5213,7663,5381,0,5712,8287,7738,7898,5367,5401,5612,5237,7511,8443,7491,8417,5534,8164,5629,5612,8322,5717,8851,7805,8073,7533,7730,5358,8940,8461,5209,7478,7616,5464,7681,7511,8509,7962,8302,5448,5509,8052,5655,5655,7632,5476,8467,5629,8077,5237,7977,5717,7538,5676,11126,11104,5612,0,0,0,8136,5329,5612,7742,8443,8641,5519,8721,8190,5401,8087,5708,7800,5305,7632,5358,7994,7511,8539,8255,8827,5476,5329,5708,8946,8322,8402,7706,8227,5629,7800,5218,7877,8527,5485,8473,5320,7957,5519,8827,7610,8365,5407,8340,5301,5367,5237,8756,0,5413,0,0,5241,5329,5396,5325,7734,5296,8322,8312,7516,5612,5519,8589,7558,8005,7487,7511,5386,7946,8959,5342,8010,8255,7768,7924,5629,7521,5291,5285,9021,8239,5381,8149,8217,8772,8365,5325,5407,7548,8919,8387,7616,8217,5291,8417,5377,7734,8964,0,0,5693,5261,8509,5407,7893,5342,5329,5676,5296,7628,5401,5314,8255,7542,5314,5666,5358,8964,7811,7491,7888,8039,8903,8170,5501,8245,7930,5476,7663,8548,8329,7757,7605,7946,8863,5325,8077,7738,8154,8745,8888,7616,8005,8381,7500,5407,5407,11155,5496,7972,7763,5301,5666,5325,8857,8582,8987,5352,7986,8762,8851,8287,5329,8473,8222,5329,0,0,7610,7864,5329,7528,5407,5347,8073,5407,5642,7877,7521,5407,5237,8721,8777,8077,5666,8498,5726,7533,7632,8857,8375,5372,8077,5291,5629,5320,5347,5309,5688,5476,5655,5693,7999,8312,7757,5647,7542,8732,5261,5325,8010,7757,8514,8293,5237,7637,5426,5671,8201,7658,8170,5471,8783,7548,8136,7930,8461,8282,7542,5642,8196,7667,7478,8131,8756,7565,8154,7853,8816,7904,7628,7542,5241,7542,7786,8073,7864,8312,8201,7904,8354,8857,7715,7883,7977,7828,5337,8964,8073,8093,8851,7542,7511,8222,5391,8190,5617,5358,8447,7920,7888,5426,8898,8149,7696,8211,8387,5337,7558,7977,7491,5386,7972,8903,8316,5329,7757,7482,8509,7687,7605,5274,8805,9003,5274,5396,7768,8302,7977,5642,5717,8391,5241,7719,5285,5476,7877,5248,5629,8345,7482,8613,7605,8149,7734,7478,8277,8594,5401,8946,7675,5612,5301,5241,5573,8039,5524,8964,5519,8451,9471,8527,7528,7511,8509,5407,7872,5377,7843,7542,8170,9051,8322,7888,5606,8451,7790,8543,7706,8407,7473,8653,8227,5237,7786,7632,7805,8863,5309,7972,5274,5676,8154,8057,8772,5693,5407,8170,8249,5209,7867,7616,8509,8322,8022,7864,5496,8255,7548,8676,5448,5464,7811,7663,8762,5712,7957,5209,7893,5712,5305,5655,8073,5717,8077,5629,5676,8077,8136,7511,8052,7898,5476,7977,8888,8164,8473,5629,7800,7632,5413,5218,5485,8539,8443,8190,7511,8772,5291,8239,7734,5329,8217,5347,7734,8498,8322,8919,8154,5666,7811,5314,5401,5476,5496,8473,7986,7877,7521,8227,8227,8484,5708,5459,5726,8239,5651,8227,8514,7538,8969,5261,8154,8514,7834,5358,7653,5358,8589,8509,8756,5413,8062,8489,8589,5274,5274,5407,8438,5367,11161,8307,7687,5386,5407,5352,5367,8093,8411,5358,8489,7849,8721,5717,5717,8048,5573,8062,7952,8438,7719,8653,7843,5329,8805,8302,8170,8354,8354,7877,5726,7516,8227,8635,8653,7834,8438,7834,7864,7643,7628,7752,7521,8222,7521,5726,5642,7752,8282,8345,7994,7482,8144,5699,5347,8762,0,11167,5606,8077,7738,8509,7849,5699,8519,8721,8307,7706,8005,5629,8721,8647,8795,5237,5296,7877,7920,8903,7811,7738,7752,0,8514,8969,5261,7834,7653,5358,7752,8519,8489,7994,5274,8062,5407,8438,8756,8514,7687,5386,7952,7752,7738,8438,5329,8509,8048,5717,7849,8653,8484,8354,7843,8762,7628,7834,8227,5237,7752,7643,7834,7864,7877,5347,5726,5296,8144,5699,5717,5606,7738,5699,8795,7811,5564,5564,5333,8217,7528,7542,7478,5476,5480,7482,7924,8307,7864,8119,8282,8456,8946,8267,8821,7972,7920,5485,7565,7924,7482,5655,5381,7558,7864,5726,8539,8443,7571,7828,8093,9051,5480,5480,8312,5224,5564,5325,5329,7610,8033,5426,7888,7957,5305,5419,5320,7888,5274,7696,7952,7628,5671,5261,8329,8255,5426,8104,5564,5358,5367,5261,8119,7972,7734,8307,8467,5655,5573,5274,7853,8077,8267,5274,8456,8456,7967,5476,8217,8099,7482,8170,7805,8033,7920,8093,8272,5274,5329,8119,5274,7482,7605,7924,8705,5261,5248,7834,7482,7628,5377,7628,7610,7994,7994,8077,8217,5342,8345,5464,5381,5342,7482,5671,7834,5296,5717,8267,7478,7994,7663,5237,5629,5325,8015,8479,5708,5237,7482,11175,7648,7516,8422,8919,7920,5342,5342,7628,5274,5501,8447,7696,5325,8479,5237,7482,7864,5296,7610,5237,5301,5301,5301,8863,7849,7972,9032,7667,7823,5476,5699,7834,7542,8387,7504,8387,5325,7786,7811,7972,8131,7667,7839,5218,8170,5573,7982,8925,7632,7628,5442,7757,5342,7653,8154,8617,8721,5573,8925,5218,5325,5237,5442,7511,5301,7823,5529,8925,5325,5325,7628,7628,5529,8136,8998,7719,7715,7752,5501,8334,8267,5301,5301,8608,8093,5666,8345,8222,8249,7828,8903,5426,7478,7999,7500,5325,7715,8033,7675,7687,8805,5655,8456,5712,8093,7706,5442,8154,8302,7893,5534,8427,7482,8447,5442,8068,7516,0,7582,7616,7478,8093,8617,8093,5367,8062,7482,5305,8349,8267,7511,8249,8888,7478,7994,8154,7482,5237,5476,7663,7883,8919,5274,7628,5329,7610,5491,5325,8334,7924,7904,7920,7994,0,5237,5325,8349,8249,8249,5666,5301,8154,7663,7893,5491,7610,8093,7663,8527,5301,8222,0,7849,7849,5224,8745,8745,5485,5606,5655,5485,7558,8745,5485,5485,7828,5485,5606,7893,7893,8898,5651,7746,7746,8174,7491,5606,5296,7491,5717,5693,5496,5407,8504,8539,8762,7478,8504,8196,5309,5529,8816,7904,7482,7730,8136,5305,8443,8245,8282,5476,5642,8272,5480,7977,8062,8174,7924,11180,7482,7977,8272,5325,5661,8345,8345,8727,7817,11186,8245,8255,8805,5509,7616,5342,7681,8255,8190,8571,5413,7738,8015,5224,8144,8170,7986,5661,8110,7898,5476,5688,5688,7849,7675,7715,8170,5407,8411,8539,5407,11194,8272,8131,7738,7930,5661,7533,5717,5358,8144,5629,7957,7952,8255,5529,5325,5407,5419,7877,8245,8154,5274,7542,8762,8631,5407,5347,7994,8504,5564,5712,5676,5717,7994,8255,7653,8227,0,8110,8329,5617,7994,5717,7930,8272,8131,8267,0,5358,7994,5296,8762,8631,8762,7994,8504,5564,7653,7994,8267,8272,8484,8484,5274,5661,5274,5325,7482,8925,8267,8670,5333,5352,7946,7616,8267,5352,7482,7482,7521,7982,7491,5693,8745,7533,7521,8598,7653,7500,5476,7500,7786,8022,8005,7706,8560,7628,5509,8282,5471,8539,7883,7533,8312,8093,8604,5485,5666,7849,8255,7864,7864,7994,5381,7795,7914,5476,7914,8370,8217,7858,5255,5666,5564,7977,7853,5296,8005,7977,5333,5606,7558,7616,7667,7982,7653,5485,8422,8422,8751,8277,8422,5209,5209,7805,5693,8277,7834,7653,5407,7990,8402,7592,8196,5476,8159,5377,7864,7864,7834,7643,8795,5218,5622,7834,5274,7528,5476,8467,8940,7828,7828,5419,7692,5666,8239,8647,5476,7800,7706,7648,8052,8255,7786,8329,7542,5296,8427,8613,8062,8888,5274,8751,5329,5347,8077,7768,7491,5693,8745,7653,7521,8598,7500,7500,5509,7786,5471,7706,8282,8022,8560,7628,5329,8093,8312,5485,5381,7977,5606,7653,7616,7592,8370,5476,8751,5296,8422,7653,7616,7616,7990,5377,5218,7864,5622,7834,7864,8077,7800,7828,8940,8052,5666,8427,8613,8751,7768,8527,8473,11198,5564,5367,8427,8473,7730,7904,7658,8577,7795,8190,8670,8170,5358,7487,7994,7924,5642,5448,8509,5514,8010,7511,5237,8239,8647,8647,7511,8473,8473,8473,8239,0,7719,8527,8473,8527,7924,8427,8473,7730,8170,7487,5448,5642,7511,8647,8473,8473,7893,8010,7893,7893,5391,5391,8179,5325,5693,7487,5480,8427,7962,7521,8068,8504,7628,5676,7710,7482,8010,8010,7962,7482,7605,5476,8533,5358,5381,8272,7511,7839,8964,7487,8222,5391,7888,8370,8504,5606,5285,7977,5224,5642,8316,7839,7521,7924,7924,7696,7834,5333,5476,8179,8073,8028,7864,8201,7667,8307,7588,7628,5391,5642,7643,8039,5391,5407,8863,5224,5274,8201,7491,8772,7893,8015,7994,8721,7864,8699,7643,7982,5464,8964,5296,5407,5730,7849,5426,5501,7994,7786,5496,8022,5629,8073,5524,5237,8005,7511,5448,8272,7491,8267,5305,5629,7800,5358,7628,5519,5309,8589,8005,5622,5261,7710,7883,5476,5325,7648,7558,5218,8272,5296,7521,8427,5501,8370,8249,7834,5305,7877,7521,7632,8857,7700,5391,5693,5325,5480,5426,8068,5237,8504,7628,7710,8010,7482,5407,5391,8222,7487,7888,5476,7696,7648,7521,7977,5333,5285,5476,5224,8073,8307,7864,7628,8028,7667,8039,7643,5274,8721,5496,8005,7786,5448,7877,7491,5305,8073,7511,5519,5309,7800,8589,5622,7700,8087,8005,8039,7521,5501,7904,8447,5358,8073,5647,7653,7893,5407,8345,7663,5564,5274,7752,7528,5501,8888,5426,7538,7628,8527,7653,8539,5480,5480,7710,8329,7605,7972,8456,7528,8915,7730,7482,7752,7972,7883,5329,5337,8073,8222,7908,5480,5476,5726,0,5726,7592,8073,7999,8467,5352,7576,8170,7605,8293,8170,7920,8205,7977,8093,5655,7658,5564,7924,5391,5358,5480,5480,7487,7511,7538,7858,8272,7972,8164,8909,7582,8329,7768,7914,7592,7696,8370,8073,7605,7482,7632,11206,7883,5661,7511,8170,8022,8196,8211,7779,7653,5647,8190,8422,7667,7864,7558,7528,7663,5329,8863,7576,5617,7858,8653,8272,8277,8548,7990,7706,7706,7834,7893,5514,7834,5381,5642,7478,7858,8827,7858,7542,7893,5464,5407,8154,7628,5377,7768,5367,8548,8005,8110,7487,7795,5480,8005,5448,7542,7558,7972,7511,8334,8909,5237,8340,8762,7834,8467,7967,5514,5261,5301,7972,8617,5329,5237,7632,8015,5305,5708,8179,8647,8827,5726,5358,7972,7628,7500,5396,8073,7588,7675,7516,7877,5471,7511,5480,8833,8772,5285,8964,7834,7632,8427,5485,5476,7491,5480,8888,7967,7834,5352,5329,8909,7521,5325,8617,8170,5237,7811,5301,8473,7538,7628,5480,8329,7710,5726,8915,8073,5329,8205,5391,7487,5564,8170,7967,7605,5480,8293,7977,5476,7658,7675,7538,7482,5285,5396,7632,8370,7858,8473,5301,7558,7834,7528,8196,7667,7706,7706,7990,8863,8548,7588,8179,7858,7972,8005,5514,7478,5708,7511,7542,5261,8647,7632,8827,7877,7967,5325,8617,7521,7786,7994,7994,7994,7628,8811,5476,8608,7853,5661,8222,5358,7710,5377,8539,7692,8370,8255,8131,7473,5717,8422,8845,7858,5358,7990,9012,7628,5342,7957,8073,7675,8334,8073,7839,8739,8888,5305,8239,7957,5386,8762,8205,5342,5377,8888,8739,5329,5524,5524,8255,8898,8255,8149,5372,8473,8653,8653,5377,7565,5519,8297,7790,7883,8653,8888,8048,7681,5352,5209,8048,8297,5377,8174,7920,7790,5564,7696,8164,5726,7817,5519,7795,5325,5352,9361,8670,8302,5377,5301,8888,8548,5377,5352,8022,5241,7768,8548,8598,5407,7888,7982,7986,8484,7706,5401,5655,8888,5352,5305,8589,7800,7800,9026,7500,8577,7542,7542,8789,7811,7908,8381,8888,8577,8261,8307,8307,5386,8062,5237,8307,7653,8307,8307,8484,8227,7628,7628,5301,5676,5564,7542,7952,8548,7511,7952,8987,7628,7952,5712,5325,7706,5381,8005,7643,7904,8312,5712,7500,7834,7675,7779,7628,8422,7706,7599,7779,7994,5407,7710,8647,5358,5305,5325,7500,5442,7834,8427,7628,8479,8504,5325,11212,7817,5480,7757,5325,7500,7864,7864,8302,8560,8068,5305,5381,7914,8010,8467,5358,5329,7752,7982,5329,8925,7565,5501,8136,5337,11217,11225,7849,5367,5726,7653,7920,8093,5480,8073,5688,5255,5564,5358,5325,7994,8170,7757,8073,5337,8234,7920,8184,5426,7658,8222,5564,7687,8170,7786,11231,8316,11239,7738,5381,5320,5730,7521,7696,8345,7994,7681,7605,7482,8577,7632,8316,5476,7706,5224,7994,5285,8201,7952,5274,5717,5296,11243,11249,8898,11255,7888,7667,5377,7800,7675,8925,8302,8196,7628,8028,5578,8234,8845,7588,7478,5688,8805,5564,5509,5337,5301,8302,8302,5524,8249,11261,11267,11274,11285,5218,8447,5209,7706,8745,7521,8028,8104,5325,7757,7867,7786,7576,7582,8277,7893,8447,5476,8653,5329,8484,8227,5485,8099,8093,7967,5301,8249,8548,7972,8184,11295,11303,11310,5391,7914,7643,5391,5730,5426,7605,7986,8548,5325,8411,8411,7811,7768,8115,7994,7994,7628,8658,8110,5459,5464,5401,7834,5688,5688,5407,5358,7864,7924,5564,8159,5407,5367,5480,7982,11319,8893,11328,7752,5407,8052,7478,7565,5514,7511,7538,5391,5391,7482,11336,8909,7738,5642,5717,8164,7542,7706,7752,8893,11339,5401,5708,5333,5296,8438,5325,7681,5726,5407,5514,7800,5237,5688,8473,5325,5325,7605,5419,5688,5622,5218,8015,8756,5529,5432,5291,5726,7521,8073,5285,8329,7588,5464,9021,5261,5261,8010,5291,7516,8329,7622,5237,11349,11354,5501,8721,5730,7908,9353,5514,8427,8811,7952,8119,5301,8227,11339,11360,11368,8613,5325,7500,8154,11360,5301,8577,5301,7763,5655,7521,7864,5329,8721,5301,5274,7628,8479,5325,5337,8068,5329,7565,7904,7849,8073,5255,8184,5329,5337,7687,5564,8073,8222,5730,7920,7658,7952,5381,8898,7994,7696,8316,8115,5730,7908,5325,5285,5274,8925,7521,8329,8845,5301,5401,5407,5301,5391,7681,8234,8302,5509,7667,5325,5218,8745,8093,7706,7967,7893,8653,8227,7786,8447,8184,7757,5485,7914,5391,5209,5501,5459,5358,8227,5391,7752,7994,8159,7864,5688,5564,5464,7768,5419,8411,5514,5708,7706,7738,7482,5642,7565,5407,5333,8473,5529,5432,7800,8438,5218,7994,5237,5291,5261,7516,9021,8154,8811,5301,8427,8721,5453,5476,5564,5301,8484,8201,7834,5564,7757,5325,8527,11375,8811,5391,8527,8391,8222,8467,7972,7982,8196,5564,5501,7752,5407,5391,7628,8998,11380,5291,5291,7920,7811,5655,8222,7834,8387,5241,7565,8527,7752,7742,8594,7977,8293,8093,7763,5564,5480,7752,5301,8411,7972,5717,8467,5209,5726,7675,7972,7883,8170,5337,7786,7548,7628,7924,8164,8387,8964,7628,11386,7616,8863,7478,7696,7795,7663,7972,7834,7946,5285,5325,8577,7605,8504,5476,8062,7632,8613,8711,5717,8504,5285,5519,7576,7972,7632,11393,11402,9457,8375,7977,5325,7628,7811,5480,8201,7478,5676,7628,8073,8329,8329,5358,5237,7667,8170,5647,5485,5377,7864,7864,8582,7982,7478,7914,8277,11408,11417,5329,5255,5320,5564,8345,7999,5352,8196,7542,7930,7757,5329,5699,5407,8170,5647,8387,8467,7706,5301,7491,8863,8571,8863,8653,8119,7706,5485,5476,5476,5485,5209,8277,7582,7706,8104,8845,8170,5726,11425,11432,5325,5320,0,7710,7622,8110,8345,5688,5377,7982,5377,7864,5381,7790,5564,8104,5647,7834,7849,8467,7858,8267,5712,7982,7616,5471,7715,8170,11445,8777,7565,7786,7616,8467,8190,5534,5391,7849,5573,5629,5367,8893,7511,5325,7786,5407,9032,7653,5209,5209,8447,5642,7834,5325,5301,5606,5568,5377,5377,8447,5647,7538,5285,5524,5606,8033,5301,5622,5578,5708,5642,5476,7742,7710,7972,8239,8164,7957,5358,8617,5314,7628,7478,5291,7482,7768,7487,5285,5476,5396,5358,7616,7588,5464,8010,5285,8239,7834,8898,8484,5274,5274,5647,8349,9021,7628,7616,5329,8641,5274,5529,5476,7920,5320,7632,7706,5476,5325,5578,7628,8427,7491,7924,7920,8381,8154,5651,7616,8249,8539,8354,7628,5666,8222,5329,7849,7610,8617,8354,7616,8721,5726,5301,8375,5453,8484,5325,8467,8391,5391,7742,8387,8777,8222,5655,7786,7582,5329,8387,7675,7924,8093,7972,5726,8467,5529,5480,7487,7972,7696,7795,5519,7946,7576,5717,8375,8062,7478,8073,5301,5676,7982,7864,7628,5274,5377,7478,5699,7622,8345,8653,7930,5352,7542,8104,8845,8467,7588,7982,7849,7864,7786,5688,5209,5712,7715,8447,5642,5534,7511,5325,8447,5407,7849,5476,7616,5578,8239,8239,5285,8484,7628,5329,8190,8427,7616,8154,8249,8721,8617,5329,5309,8093,5407,5274,8451,5407,5407,7834,8451,5329,5337,8140,5325,8473,8140,8473,7605,7667,7605,5407,5651,5651,7478,7511,8033,7667,7516,8447,7706,5329,8484,7667,5485,5301,7521,7834,7977,5651,5301,5617,8015,7516,5485,5325,8093,7834,8140,8349,8349,5717,8783,5564,7746,7746,5564,8174,5726,5726,8711,5564,5274,8277,5726,7746,0,8527,5564,5726,7746,7538,5305,5305,5296,7538,7967,5362,5501,5464,5464,5309,8687,5606,7853,7946,5237,8582,7946,5320,5301,8184,7710,9372,9372,5476,7542,7883,5237,8641,5305,5305,7542,5491,5573,5337,7828,5476,5367,7834,5726,5712,7834,5485,7628,5301,8903,8762,8179,7482,8345,7834,8772,8345,5655,5491,8179,5476,5712,7883,7834,8762,5329,7972,5501,5564,5564,8438,8438,8467,8140,5726,8783,8631,7605,7972,8211,5708,5432,5480,5358,8467,8783,5480,5693,5651,8716,5693,5209,7786,7786,7582,5501,8272,8467,7920,8227,5524,7706,8467,5629,8909,5320,5320,5501,7893,7752,7904,7757,5480,8316,5726,8119,5391,5337,5391,8805,7478,8184,5485,7643,8170,7834,5647,5377,5237,5274,7834,5666,5358,5642,5688,7653,7478,7478,5730,5237,5717,7687,5519,5534,7687,8789,7700,7706,8533,5325,5209,5325,5325,7706,5325,7710,8033,8033,7849,8387,8800,5661,8174,8451,5391,5209,7710,8184,8170,7681,8093,8093,5573,7768,5661,8800,8077,8484,5642,8287,8653,7628,5573,5476,8447,8451,7967,5726,5362,5274,7742,7864,8494,5476,8287,7967,7828,5573,5309,8387,7710,8033,7849,8800,8170,8093,8174,7681,5209,8800,7628,8287,5726,8494,7610,8334,7817,8334,7834,7610,7610,7817,8795,7738,8093,7738,7610,7817,8795,7952,5688,5432,7952,8354,7805,7849,5291,5661,7628,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4269,11454,0,0,11459,0,0,0,11464,0,0,0,0,0,0,0,11469,11474,0,11479,0,11484,0,11490,0,0,0,0,11495,11500,0,0,0,0,0,0,11506,0,0,0,0,0,0,0,0,0,0,0,11512,0,0,0,0,0,0,0,11519,0,0,0,0,0,0,0,0,0,0,0,11525,5599,40,11528,11531,11535,335,11539,4899,11543,24,11546,11549,11553,11556,380,11560,52,11563,11566,32,3103,11569,11573,2795,11577,11581,11586,11591,11595,11600,11604,800,11608,11612,11617,11621,11626,11630,2809,11634,11638,2806,11642,11646,11650,2792,9676,11654,11659,11663,11667,11671,11674,11678,11683,11687,11691,3457,11695,11699,11704,11708,11713,11717,803,9686,11721,11726,11730,11735,11739,3471,11743,11747,11751,3454,11755,9690,11759,11763,11767,11771,11774,11778,11783,11787,11792,11797,11801,11806,11812,11818,11823,11829,11834,1073,11839,11844,11850,11855,11861,11866,11871,11875,11880,11885,11889,11894,11899,11904,11908,11913,11919,11924,11929,11934,11938,11943,11948,11953,11957,11962,11968,11973,11979,11984,11989,9710,11993,11998,12003,12007,12012,12017,12022,12026,12031,12037,12042,9721,12047,12051,12056,12062,12067,12072,12077,12081,12086,12092,12097,12103,12108,12113,12117,12122,12128,12133,12139,12144,12149,12153,12158,12163,12168,12172,12177,12183,9740,12188,12192,9745,12197,12202,12206,2599,12210,12214,12219,12223,12228,12232,845,12236,12240,12245,12250,12254,12259,12263,2613,12267,12271,2610,12275,12279,2596,12283,12287,12292,12296,12300,12304,12307,12311,12315,1733,12319,12323,12327,833,12331,12335,2759,12339,12343,12347,2738,12351,12355,12360,12364,12368,12372,12375,12379,12383,2819,12387,12391,12396,12401,12405,12410,12414,985,12418,12422,12426,2833,12430,12434,12438,12442,12446,2816,12450,12454,12459,12463,12467,10579,12471,12475,12480,12484,12488,3120,12492,12496,12501,12505,12510,12514,816,12518,12522,12527,618,12531,3194,12535,12539,432,12543,12547,12551,3183,12555,12559,12564,12568,12572,324,12576,12580,5230,12585,12590,12594,806,12598,12602,12607,12612,12616,12621,12625,2854,4993,12629,2851,12633,12637,12641,2840,12645,12649,12654,12658,12663,2496,12668,12673,12679,12684,12690,12695,942,12700,12705,12711,12716,12722,12727,2514,12732,12737,2510,12742,12747,12752,3201,12757,12762,12768,12773,12778,10015,12783,12788,12794,12799,12804,10060,12809,12814,12819,10264,12824,12829,10330,12834,12839,12844,10207,12849,12854,12860,12865,12870,12875,12879,12884,12890,12896,12901,12907,12912,3064,12917,12922,12928,12933,12938,12943,12948,12953,12957,12962,12967,12971,2950,12975,12979,12984,12988,12993,842,12997,13001,13006,13010,13015,13019,1400,13023,13027,2957,13031,13035,13039,2947,13043,13047,13052,13056,13061,13066,13070,13075,13081,13086,13092,13097,4878,13102,13107,13113,13118,13124,13129,13133,13138,13143,13147,13152,13157,13162,13166,13171,13177,13182,13187,13192,13196,13201,13207,13212,13216,2547,13220,13224,13229,13234,13238,13243,13247,839,13251,13255,13260,13265,13269,13274,13278,1426,13282,13286,2554,13290,13294,13298,2544,13302,13306,13311,13315,13319,4493,13323,13327,13332,13336,13340,3228,13344,13348,13353,13358,13362,13367,13371,915,13375,13379,13384,13389,13393,13398,13402,3242,13406,13410,13414,3239,13418,13422,13426,3225,13430,13434,13439,13443,13447,2998,13451,13455,13460,13464,13469,13473,836,13477,13481,13486,13490,13495,13499,1311,13503,13507,13511,3009,13515,13519,13523,2995,13527,13531,13536,13540,13545,3271,13550,13556,13561,13567,13572,1060,13577,13582,13588,13594,13599,13605,13610,3289,13615,13620,13625,3285,13630,13635,13640,3267,13645,13650,13656,13661,13667,13672,13677,13682,13686,13691,13697,13702,13708,13713,13718,13722,13727,13732,13736,13741,13746,13751,13755,13760,13766,13771,13776,13781,13785,13790,13796,13802,13807,13813,13818,13823,13827,13832,13838,13844,13849,13855,13860,13865,13869,13874,13879,13883,13888,13894,13899,13905,13910,922,13915,13920,13926,13932,13937,13942,4136,13947,13952,13957,13961,13966,13970,1623,13975,13979,429,13983,13987,13992,13997,14001,14006,14010,2537,14014,14018,1620,14022,14026,14030,852,14034,14038,14043,14047,14052,3114,14056,14060,482,14064,14068,14072,3126,14076,14080,14085,14089,14094,14098,1044,14102,14106,14111,14115,14120,14124,3137,14128,14132,464,14136,14140,14144,3123,14148,14152,14157,14161,14165,14169,14172,14176,14181,14185,14189,2864,14193,14197,14202,14207,14211,14216,14220,926,14224,14228,14233,14237,14242,14246,2878,14250,14254,2875,14258,14262,14266,2861,14270,14274,14279,14283,14287,5159,14291,14295,14300,14304,14309,6491,14314,14319,14325,14331,14336,14342,14347,6483,14352,14357,6509,14362,14367,6505,14372,14377,6487,14382,14387,14393,14398,14403,14408,14412,14417,9839,14423,14428,14433,14437,14442,14448,14453,14459,14464,14469,14473,14478,14484,14489,14494,14499,14504,14508,14513,14517,14522,14528,14533,14538,14543,14547,14552,14558,14563,14567,2678,14571,14575,14580,14584,14589,14593,826,14597,14601,14606,14610,14615,14619,1325,14623,14627,2689,14631,14635,14639,2675,14643,14647,14652,14656,14660,14664,14667,14671,14676,14680,14685,6435,14690,14695,14701,14706,14712,14717,992,14722,14727,14732,4430,14737,14742,6449,14747,14752,14757,6431,14762,9853,14767,14772,14776,14781,14787,14792,14797,1464,14802,14807,14813,14818,14824,14829,3166,14834,14839,14844,3162,14849,14854,9858,3144,14859,14864,14870,14875,14880,14885,14889,14894,14900,14905,14910,812,14915,14920,14926,14932,14937,14943,14948,3342,14953,14958,14963,3338,14968,14973,3320,14978,14983,14989,14994,14999,15004,15008,15013,15019,15024,822,15029,15035,15040,15045,10693,15050,15055,15060,15065,15069,15074,15079,15084,15088,15093,15099,15104,15109,15114,15118,15123,15129,15134,15139,4604,15144,15149,15154,15158,15163,15168,15173,15177,15182,15187,15192,15196,15201,15207,15212,15217,15222,15226,15231,15237,15242,15247,988,15252,15257,15263,15268,15274,15279,327,15284,15289,15294,2305,15299,15304,15309,2696,15314,15319,15325,15330,15335,15340,15344,15349,15355,15360,15364,819,15368,15372,15377,15381,15386,15390,2668,15394,15398,2665,15402,15406,15410,2651,15414,15418,15423,15427,15431,4486,15435,15439,15444,15448,15452,3208,15456,15460,15465,15470,15474,15479,15484,15489,15493,15498,15502,3222,15506,15510,15514,3205,15518,15522,15527,9873,15531,5156,15535,15539,15544,15548,15552,2712,15556,15560,15565,9877,15570,15575,15580,3499,15585,15590,15594,2726,15598,15602,15606,2709,15610,15614,15619,15623,15627,15631,15634,15638,15643,15647,15652,4282,15657,15662,15668,15674,15679,15685,15691,15696,15702,15707,4269,15712,15717,15722,4265,15727,15732,15738,15743,15748,15753,15757,15762,15767,10019,15772,15777,15783,15789,15794,15800,15806,15811,15816,10268,15821,15826,10211,9881,15831,15837,15842,15847,15852,15856,15861,15867,15872,15877,2968,15882,15887,15893,15899,15904,15910,9886,15916,15922,15927,2986,15932,15937,15942,2964,15947,15952,15956,2891,15960,15964,15969,9900,15974,15979,15984,15988,15992,2905,15996,16000,16004,16008,16011,16015,16020,16024,16028,347,16032,16036,16041,16046,16050,16055,16060,16065,16069,16074,16078,1318,16082,16086,16090,670,16094,16098,16103,16107,16111,1124,16115,16119,16124,0,0,0,15590,2547,13443,15882,14291,6435,13615,13418,2599,13771,13332,11894,12267,1318,11747,13844,12590,915,0,0,12768,11659,13594,15932,2840,11563,15717,14120,11763,12149,16024,12459,15340,12438,1044,3222,0,15753,13398,15674,3114,3183,15325,13234,5159,14237,14193,13869,15242,0,15284,3338,14319,0,3009,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2995,16128,0,0,16132,0,0,0,16136,0,0,0,0,0,0,0,16140,16144,0,16148,0,16152,0,0,0,0,0,0,16157,0,0,0,16162,0,0,0,16168,0,0,0,0,0,0,0,0,0,0,0,0,16174,0,0,0,0,0,0,3030,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16181,0,0,0,0,0,0,3016,16187,0,0,16192,0,0,0,16197,0,0,0,0,0,0,0,16202,16207,0,16212,0,16217,0,0,0,0,0,0,6584,0,0,0,16223,0,0,0,16228,0,0,0,0,0,0,0,16233,0,0,0,0,0,0,0,0,0,0,0,16238,16242,0,0,16247,0,0,0,16252,0,0,0,0,0,0,0,16257,16262,0,0,0,16267,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2998,16273,0,0,16277,0,0,0,16281,0,0,0,0,0,0,0,16285,16289,0,16293,0,16297,0,0,0,0,0,0,806,16302,0,0,1655,0,0,0,16306,16310,0,0,0,0,0,0,16315,16319,0,16323,16327,16332,0,0,0,0,0,0,16337,16341,0,0,16346,0,0,0,16351,0,0,0,0,0,0,0,16356,16361,0,16366,16371,16377,0,0,0,0,0,0,4073,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16383,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16389,16393,0,0,16398,0,0,0,16403,0,16408,0,0,0,0,0,16414,16419,0,16424,16429,16435,0,0,0,0,0,0,2851,16441,0,0,16445,0,0,0,16449,0,0,0,0,0,0,0,16453,16457,0,16461,0,16465,0,0,0,0,0,0,16470,0,0,0,16475,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16481,0,0,0,0,0,0,0,4061,0,0,0,16488,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2854,16493,0,0,16497,0,0,0,16501,0,0,0,0,0,0,0,16505,16509,0,16513,0,16517,0,0,0,0,4993,0,2857,0,0,0,16522,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16527,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16532,0,0,0,16536,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16541,0,16546,0,0,0,0,0,0,4069,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2840,16552,0,0,16556,0,0,0,16560,0,0,0,0,0,0,0,10627,16564,0,16568,0,16572,0,0,0,0,0,0,16577,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16582,0,0,0,0,0,0,0,3613,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3617,16589,0,0,16594,0,0,0,16599,0,0,0,0,0,0,0,16604,16609,0,0,0,16614,0,0,0,0,0,0,16620,0,0,0,16624,0,0,0,16629,0,0,0,0,0,0,0,16634,0,0,0,0,16639,0,0,0,0,0,0,16645,16649,0,0,16654,0,0,16659,16664,0,16669,0,0,0,0,0,16675,16680,0,16685,0,0,0,0,0,0,0,0,4065,0,0,0,16690,0,0,0,16695,0,0,0,0,0,0,0,16700,16705,0,0,0,0,0,0,0,0,0,0,324,16710,0,0,16714,0,0,0,16718,0,0,0,0,0,0,0,16722,16726,0,16730,0,16734,0,0,0,0,0,0,803,16739,16743,0,16748,0,0,0,16752,0,16756,0,0,0,0,0,16761,16765,0,16769,16773,16778,0,0,0,11713,0,0,16783,16787,0,0,16792,0,0,0,16797,0,0,0,0,0,0,0,16802,16807,0,16812,16817,16823,0,0,0,0,0,0,16829,16833,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16838,16842,0,0,16847,0,0,0,16852,0,0,0,0,0,0,0,16857,16862,0,16867,16872,16878,0,0,0,0,0,0,3468,16884,0,0,16888,0,0,0,16892,0,0,0,0,0,0,0,16896,16900,0,16904,0,16908,0,0,0,0,0,0,16913,0,0,0,16918,0,0,0,16924,0,0,0,0,0,0,0,16930,16936,0,0,16942,16949,0,0,0,0,0,0,16956,0,0,0,0,0,0,0,16960,0,0,0,0,0,0,0,0,16965,0,16970,0,0,0,0,0,0,0,0,3471,16975,0,0,16979,0,0,0,16983,0,0,0,0,0,0,0,16987,16991,0,16995,0,16999,0,0,0,0,0,0,2779,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,17004,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,17010,0,0,0,17014,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,17019,0,0,0,17023,0,0,0,17028,0,0,0,0,0,0,0,0,17033,0,17038,0,0,0,0,0,0,0,0,3454,17043,0,0,17047,0,0,17051,17055,0,17059,0,0,0,0,0,17064,17068,0,17072,0,17076,0,0,0,0,0,0,17081,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,17086,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3577,0,0,0,17093,0,0,0,17098,0,0,0,0,0,0,0,17103,0,0,17108,0,0,0,0,0,0,0,0,17113,0,0,0,17117,0,0,0,17122,0,0,0,0,0,0,0,17127,0,0,17132,0,17137,0,0,0,0,0,0,17143,0,0,0,17147,0,0,0,17152,0,0,0,0,0,0,0,17157,17162,0,17167,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3457,17172,0,0,17176,0,0,0,17180,0,0,0,0,0,0,0,17184,17188,0,17192,0,17196,0,0,0,0,0,0,429,17201,0,0,10033,0,0,0,17205,0,0,0,0,17209,0,0,17214,17218,0,17222,0,17226,0,0,0,0,0,0,1616,17231,0,0,17236,0,0,0,17241,0,0,0,0,0,0,0,17246,17251,0,17256,17261,17267,0,0,0,0,0,0,17273,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,17277,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,17283,17287,0,0,17292,0,0,0,17297,0,17302,0,0,0,0,0,17308,17313,0,17318,0,17323,0,0,0,0,0,0,1620,17329,0,0,10282,0,0,0,17333,0,0,0,0,0,0,0,17337,17341,0,17345,0,10541,0,0,0,0,0,0,17349,17354,0,0,17360,0,0,0,17366,0,0,0,0,0,0,0,17372,17378,0,17384,17390,17397,0,0,0,0,0,0,17404,0,0,0,17408,0,0,0,17413,0,0,0,0,0,0,0,0,17418,0,0,0,0,0,0,0,0,0,0,2537,17423,0,0,9220,0,0,0,17427,0,0,0,0,17431,0,0,17436,17440,0,17444,0,17448,0,0,0,14006,0,0,4211,17453,0,0,17458,0,0,0,17463,0,0,0,0,0,0,0,0,0,0,17468,0,17473,0,0,0,0,0,0,17479,17484,0,0,17490,0,0,0,0,0,0,0,0,0,0,0,0,0,0,17496,0,17502,0,0,0,0,0,0,1631,17509,0,0,17514,0,0,0,17519,0,0,0,0,0,0,0,0,17524,0,17529,0,17534,0,0,0,0,0,0,17540,0,0,0,17544,0,0,0,17549,0,0,0,0,0,0,0,0,17554,0,17559,0,0,0,0,0,0,0,0,2523,17564,0,0,10169,0,0,0,17568,0,0,0,0,17572,0,0,17577,0,0,17581,0,17585,0,0,0,0,0,0,17590,0,0,0,17595,0,0,0,17601,0,0,0,0,0,0,0,17607,0,0,0,0,17613,0,0,0,0,0,0,4198,17620,0,0,915,17625,17629,17634,1639,17639,17644,17649,17653,17657,17662,17667,17672,17677,17682,17687,17692,17696,17700,17705,17709,17714,17719,17723,17727,13367,13375,17731,17735,17739,17744,17750,17756,17761,17767,17773,17778,17783,17789,17795,17801,17807,17813,17819,17825,17830,17835,17841,17846,17852,17858,17863,17868,17873,17878,17883,6640,17888,17893,17899,17905,17910,17916,17922,17927,17932,17938,17944,17950,17956,17962,17968,17974,17979,17984,17990,17995,18001,18007,18012,18017,18022,18027,18032,18037,18042,18048,18055,18062,18068,18075,18082,18088,18094,18101,18108,18115,18122,18129,18136,18143,18149,18155,18162,18168,18175,18182,18188,18194,18200,18206,18212,1140,18218,18223,18229,18235,18240,18246,18252,18257,18262,18268,18274,18280,18286,18292,18298,18304,18309,18314,18320,18325,18331,18337,18342,18347,18352,18357,18362,3239,18367,18371,18376,10345,18381,18386,18391,18395,18399,18404,18409,18414,18419,18424,18429,18434,18438,18442,18447,18451,18456,18461,18465,18469,13410,13418,18473,18477,18482,18488,18495,18502,18508,18515,18522,18528,18534,18541,18548,18555,18562,18569,18576,18583,18589,18595,18602,18608,18615,18622,18628,18634,18640,18646,18652,6662,18658,18663,18669,18675,18680,18686,18692,18697,18702,18708,18714,18720,18726,18732,18738,18744,18749,18754,18760,18765,18771,18777,18782,18787,18792,18797,18802,3242,18807,18811,18816,18821,18825,18830,18835,18839,18843,18848,18853,18858,18863,18868,18873,18878,18882,18886,18891,18895,18900,18905,18909,18913,13398,13406,18917,3245,18921,18926,18932,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,6,24,54,24,54,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,18938,18943,18949,18955,18960,18965,18971,18977,18983,18989,18995,19001,19007,19012,19017,19023,19028,19034,19040,19045,19050,19055,19060,19065,19070,19075,19081,19088,19095,19101,19108,19115,19121,19127,19134,19141,19148,19155,19162,19169,19176,19182,19188,19195,19201,19208,19215,19221,19227,19233,19239,19245,19251,19255,19260,19266,19272,19277,19283,19289,19294,19299,19305,19311,19317,19323,19329,19335,19341,19346,19351,19357,19362,19368,19374,19379,19384,19389,19394,19399,6666,19404,19409,19415,10825,19421,19427,19433,19438,19443,19449,19455,19461,19467,19473,19479,19485,19490,19495,19501,19506,19512,19518,19523,19528,19533,19538,19543,3225,19548,19552,19557,19562,19566,19571,19576,19580,19584,19589,19594,19599,19604,19609,19614,19619,19623,19627,19632,19636,19641,19646,19650,19654,13422,13430,19658,19662,19667,19673,19680,19687,19693,19700,19707,19713,19719,19726,19733,19740,19747,19754,19761,19768,19774,19780,19787,19793,19800,19807,19813,19819,19825,19831,19837,3263,19843,19848,19854,19860,19865,19871,19877,19882,19887,19893,19899,19905,19911,19917,19923,19929,19934,19939,19945,19950,19956,19962,19967,19972,19977,19982,19987,3249,19992,19997,20003,20009,20014,20020,20026,20031,20036,20042,20048,20054,20060,20066,20072,20078,20083,20088,20094,20099,20105,20111,20116,20121,20126,20131,20136,6644,20141,20146,20152,20158,20163,20169,20175,20180,20185,20191,20197,20203,20209,20215,20221,20227,20232,20237,20243,20248,20254,20260,20265,20270,20275,20280,20285,20290,20294,20299,20305,20311,20316,20322,20328,20333,20338,20344,20350,20356,20362,20368,20374,20380,20385,20390,20396,7478,8154,20401,20406,20411,20416,20421,20426,6648,20431,20436,20442,20448,20453,20459,20465,20470,20475,20481,20487,20493,20499,20505,20511,20517,20522,20527,20533,20538,20544,20550,20555,20560,20565,20570,20575,3228,20580,20584,20589,20594,20598,20603,20608,20612,20616,20621,20626,20631,20636,20641,20646,20651,20655,20659,20664,20668,20673,20678,20682,20686,13336,13344,20690,1060,20694,20699,20705,20711,20716,20722,20728,20733,20738,20744,20750,20756,20762,20768,20774,20780,20785,20790,20796,20801,20807,20813,20818,20823,13567,13577,20828,20833,20838,20844,20851,20858,20864,20871,20878,20884,20890,20897,20904,20911,20918,20925,20932,20939,20945,20951,20958,20964,20971,20978,20984,20990,20996,21002,21008,21014,21019,21025,21032,21039,21045,21052,21059,21065,21071,21078,21085,21092,21099,21106,21113,21120,21126,21132,21139,21145,21152,21159,21165,21171,21177,21183,21189,21195,21201,21208,21216,21224,21231,21239,21247,21254,21261,21269,21277,21285,21293,21301,21309,21317,21324,21331,21339,21346,21354,21362,21369,21376,21383,21390,21397,21404,21409,21415,21422,21429,21435,21442,21449,21455,21461,21468,21475,21482,21489,21496,21503,21510,21516,21522,21529,21535,21542,21549,21555,21561,21567,21573,21579,3285,21585,21590,21596,21602,21607,21613,21619,21624,21629,21635,21641,21647,21653,21659,21665,21671,21676,21681,21687,21692,21698,21704,21709,21714,13620,13630,21719,21724,21730,21737,21745,21753,21760,21768,21776,21783,21790,21798,21806,21814,21822,21830,21838,21846,21853,21860,21868,21875,21883,21891,21898,21905,21912,21919,21926,21933,21938,21944,21951,21958,21964,21971,21978,21984,21990,21997,22004,22011,22018,22025,22032,22039,22045,22051,22058,22064,22071,22078,22084,22090,22096,22102,22108,3289,22114,22119,22125,22131,22136,22142,22148,22153,22158,22164,22170,22176,22182,22188,22194,22200,22205,22210,22216,22221,22227,22233,22238,22243,13605,13615,22248,6410,22253,22259,22266,22273,22279,22286,22293,22299,22305,22312,22319,22326,22333,22340,22347,22354,22360,22366,22373,22379,22386,22393,22399,22405,22411,22417,22423,22429,22435,22442,22450,22458,22465,22473,22481,22488,22495,22503,22511,22519,22527,22535,22543,22551,22558,22565,22573,22580,22588,22596,22603,22610,22617,22624,22631,22638,22643,22649,22656,22663,22669,22676,22683,22689,22695,22702,22709,22716,22723,22730,22737,22744,22750,22756,22763,22769,22776,22783,22789,22795,22801,22807,22813,22819,22824,22830,22837,22844,22850,22857,22864,22870,22876,22883,22890,22897,22904,22911,22918,22925,22931,22937,22944,22950,22957,22964,22970,22976,22982,22988,22994,3267,23000,23005,23011,23017,23022,23028,23034,23039,23044,23050,23056,23062,23068,23074,23080,23086,23091,23096,23102,23107,23113,23119,23124,23129,13635,13645,23134,23139,23145,23152,23160,23168,23175,23183,23191,23198,23205,23213,23221,23229,23237,23245,23253,23261,23268,23275,23283,23290,23298,23306,23313,23320,23327,23334,23341,6426,23348,23354,23361,23368,23374,23381,23388,23394,23400,23407,23414,23421,23428,23435,23442,23449,23455,23461,23468,23474,23481,23488,23494,23500,23506,23512,23518,6415,23524,23530,23537,23544,23550,23557,23564,23570,23576,23583,23590,23597,23604,23611,23618,23625,23631,23637,23644,23650,23657,23664,23670,23676,23682,23688,23694,23700,23705,23711,23718,23725,23731,23738,23745,23751,23757,23764,23771,23778,23785,23792,23799,23806,23812,23818,23825,23831,23838,23845,23851,23857,23863,23869,23875,23881,23886,23892,23899,23906,23912,23919,23926,23932,23938,23945,23952,23959,23966,23973,23980,23987,23993,23999,24006,24012,24019,24026,24032,24038,24044,24050,24056,24062,24067,24073,24080,24087,24093,24100,24107,24113,24119,24126,24133,24140,24147,24154,24161,24168,24174,24180,24187,24193,24200,24207,24213,24219,24225,24231,24237,3271,24243,24248,24254,24260,24265,24271,24277,24282,24287,24293,24299,24305,24311,24317,24323,24329,24334,24339,24345,24350,24356,24362,24367,24372,13540,24377,24382,842,24387,24391,24396,24401,24405,24410,24415,24419,24423,24428,24433,24438,24443,24448,24453,24458,24462,24466,24471,24475,24480,24485,24489,24493,24497,12997,3488,24501,24505,24510,24516,24522,24527,24533,24539,24544,24549,24555,24561,24567,24573,24579,24585,24591,24596,24601,24607,24612,24618,24624,24629,24634,24639,24644,24649,848,24654,24659,24665,10893,24671,24677,24683,24688,24693,24699,24705,24711,24717,24723,24729,24735,24740,24745,24751,24756,24762,24768,24773,24778,24783,24788,24793,24798,24803,24809,24816,24823,24829,24836,24843,24849,24855,24862,24869,24876,24883,24890,24897,24904,24910,24916,24923,24929,24936,24943,24949,24955,24961,24967,24973,24979,24983,24988,24994,25000,25005,25011,25017,25022,25027,25033,25039,25045,25051,25057,25063,25069,25074,25079,25085,25090,25096,25102,25107,25112,25117,25122,25127,2957,25132,25136,25141,25146,25150,25155,25160,25164,25168,25173,25178,25183,25188,25193,25198,25203,25207,25211,25216,25220,25225,25230,25234,25238,25242,13031,25246,25250,25255,25261,25268,25275,25281,25288,25295,25301,25307,25314,25321,25328,25335,25342,25349,25356,25362,25368,25375,25381,25388,25395,25401,25407,25413,25419,25425,2982,25431,25436,25442,25448,25453,25459,25465,25470,25475,25481,25487,25493,25499,25505,25511,25517,25522,25527,25533,25538,25544,25550,25555,25560,25565,25570,25575,1400,25580,25584,25589,25594,25598,25603,25608,25612,25616,25621,25626,25631,25636,25641,25646,25651,25655,25659,25664,25668,25673,25678,25682,25686,13015,13023,25690,2960,25694,25699,25705,25711,25716,25722,25728,25733,25738,25744,25750,25756,25762,25768,25774,25780,25785,25790,25796,25801,25807,25813,25818,25823,25828,25833,25838,25843,25848,25854,25861,25868,25874,25881,25888,25894,25900,25907,25914,25921,25928,25935,25942,25949,25955,25961,25968,25974,25981,25988,25994,26000,26006,26012,26018,26024,26028,26033,26039,26045,26050,26056,26062,26067,26072,26078,26084,26090,26096,26102,26108,26114,26119,26124,26130,26135,26141,26147,26152,26157,26162,26167,26172,2986,26177,26182,26188,26194,26199,26205,26211,26216,26221,26227,26233,26239,26245,26251,26257,26263,26268,26273,26279,26284,26290,26296,26301,26306,15922,15932,26311,2947,26316,26320,26325,26330,26334,26339,26344,26348,26352,26357,26362,26367,26372,26377,26382,10623,26387,26391,26396,26400,26405,26410,26414,26418,13035,13043,26422,26426,26431,26437,26444,26451,26457,26464,26471,26477,26483,26490,26497,26504,26511,26518,26525,26532,26538,26544,26551,26557,26564,26571,26577,26583,26589,26595,26601,3791,26607,26612,26618,26624,26629,26635,26641,26646,26651,26657,26663,26669,26675,26681,26687,26693,26698,26703,26709,26714,26720,26726,26731,26736,26741,26746,26751,26756,26760,26765,26771,26777,26782,26788,26794,26799,26804,26810,26816,26822,26828,26834,26840,26846,26851,26856,26862,26867,26873,26879,26884,26889,26894,26899,26904,2964,26909,26914,26920,26926,26931,26937,26943,26948,26953,26959,26965,26971,26977,26983,26989,26995,27000,27005,27011,27016,27022,27028,27033,27038,15937,15947,27043,27048,27052,27057,27063,27069,27074,27080,27086,27091,27096,27102,27108,27114,27120,27126,27132,27138,27143,27148,27154,27159,27165,27171,27176,27181,27186,27191,27196,2968,27201,27206,27212,27218,27223,27229,27235,27240,27245,27251,27257,27263,27269,27275,27281,27287,27292,27297,27303,27308,27314,27320,27325,27330,15872,15882,27335,2950,27340,27344,27349,27354,27358,27363,27368,27372,27376,27381,27386,27391,27396,27401,27406,27411,27415,27419,27424,27428,27433,27438,27442,27446,12967,12975,27450,816,27454,27458,27463,27468,27472,27477,27482,681,27486,27491,27496,27501,27506,27511,27516,27521,10919,27525,27530,27534,27539,27544,27548,27552,12510,12518,27556,27560,27564,27569,27575,27581,27586,27592,27598,27603,27608,27614,27620,27626,27632,27638,27644,27650,27655,27660,27666,27671,27677,27683,27688,27693,27698,27703,27708,27713,27717,27722,27728,27734,27739,27745,27751,27756,27761,27767,27773,27779,27785,27791,27797,27803,27808,27813,27819,27824,27830,27836,27841,27846,27851,27856,27861,27866,27871,27877,27884,27891,27897,27904,27911,27917,27923,27930,27937,27944,27951,27958,27965,27972,27978,27984,27991,27997,28004,28011,28017,28023,28029,28035,28041,28047,28051,28056,28062,28068,28073,28079,28085,28090,28095,28101,28107,28113,28119,28125,28131,28137,28142,28147,28153,28158,28164,28170,28175,28180,28185,28190,28195,432,82,28200,28205,28210,28214,28219,28224,28228,28232,28237,28242,28247,28252,28257,28262,28267,28271,28275,28280,28284,28289,28294,28298,28302,28306,12543,28310,28314,28319,28325,28332,28339,28345,28352,28359,28365,28371,28378,28385,28392,28399,28406,28413,28420,28426,28432,28439,28445,28452,28459,28465,28471,28477,28483,28489,28495,28499,28504,28510,28516,28521,28527,28533,28538,28543,28549,28555,28561,28567,28573,28579,28585,28590,28595,28601,28606,28612,28618,28623,28628,28633,28638,28643,3194,28648,28652,28657,1643,28662,28667,28672,28676,28680,28685,28690,28695,28700,28705,28710,28715,28719,28723,28728,28732,28737,28742,28746,28750,618,12535,28754,3197,28758,28763,28769,28775,28780,28786,28792,28797,28802,28808,28814,28820,28826,28832,28838,28844,28849,28854,28860,28865,28871,28877,28882,28887,28892,28897,28902,28907,28912,28918,28925}
+#define UTFASCIILOOKUP {1,1,1,1,1,1,1,1,1,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,2,1,2,2,1,1,2,2,2,2,4,6,8,10,12,14,16,18,20,22,2,2,1,1,1,1,1,24,26,28,30,32,34,36,38,40,42,44,46,48,50,52,54,56,58,60,62,64,66,68,70,72,74,1,2,1,1,1,1,24,26,28,30,32,34,36,38,40,42,44,46,48,50,52,54,56,58,60,62,64,66,68,70,72,74,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,28,76,1,72,1,79,1,28,24,1,1,2,58,2,82,86,8,10,1,64,54,1,2,6,52,1,88,91,94,1,24,24,24,24,24,24,97,28,32,32,32,32,40,40,40,40,30,50,52,52,52,52,52,70,52,64,64,64,64,64,100,79,24,24,24,24,24,24,97,28,32,32,32,32,40,40,40,40,30,50,52,52,52,52,52,2,52,64,64,64,64,72,100,72,24,24,24,24,24,24,28,28,28,28,28,28,28,28,30,30,30,30,32,32,32,32,32,32,32,32,32,32,36,36,36,36,36,36,36,36,38,38,38,38,40,40,40,40,40,40,40,40,40,40,103,103,42,42,44,44,44,46,46,46,46,46,46,46,46,46,46,50,50,50,50,50,50,50,106,106,52,52,52,52,52,52,109,109,58,58,58,58,58,58,60,60,60,60,60,60,60,60,62,62,62,62,62,62,64,64,64,64,64,64,64,64,64,64,64,64,68,68,72,72,72,74,74,74,74,74,74,60,26,26,26,26,16,16,52,28,28,30,30,30,30,30,10,1,32,34,34,36,36,112,40,40,44,44,46,46,68,50,50,52,52,52,115,115,54,54,118,8,8,121,121,62,62,62,62,64,64,72,66,72,72,74,74,124,124,124,124,8,14,14,127,68,1,1,1,1,130,130,130,133,133,133,136,136,136,24,24,40,40,52,52,64,64,64,64,64,64,64,64,64,64,1,24,24,24,24,97,97,36,36,36,36,44,44,52,52,52,52,124,124,42,130,30,130,36,36,112,68,50,50,24,24,97,97,52,52,24,24,24,24,32,32,32,32,40,40,40,40,52,52,52,52,58,58,58,58,64,64,64,64,60,60,62,62,72,72,38,38,50,30,139,139,74,74,24,24,32,32,52,52,52,52,52,52,52,52,72,72,46,50,62,42,142,145,24,28,28,46,62,60,74,148,148,26,64,66,32,32,42,42,56,56,58,58,72,72,24,24,24,26,52,28,30,30,32,1,1,32,32,32,32,42,36,36,36,36,64,72,38,38,40,40,40,46,46,46,153,68,68,48,50,50,50,52,109,52,34,58,58,58,58,58,58,58,58,58,60,60,42,60,60,62,62,64,64,66,1,68,72,72,74,74,74,74,1,1,1,28,1,26,32,36,38,42,44,46,56,1,1,130,130,130,127,127,156,159,162,153,165,1,38,38,44,38,42,58,58,58,58,68,72,1,1,1,1,1,1,1,1,1,1,1,1,66,1,66,1,2,2,2,2,1,2,2,2,2,1,1,1,66,1,2,66,2,1,2,1,1,58,70,36,46,60,70,1,168,179,184,188,193,203,207,66,1,1,212,217,220,225,231,236,236,236,243,249,256,262,256,262,266,266,220,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,272,272,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,272,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,24,32,40,52,64,28,30,38,48,58,62,66,70,278,278,283,283,1,2,289,289,0,0,1,0,0,0,1,0,0,0,0,0,1,1,24,2,32,32,40,0,52,0,64,52,40,24,26,36,30,32,74,32,100,40,44,46,48,50,300,52,54,58,0,60,62,64,303,306,76,52,40,64,24,32,32,40,64,24,26,36,30,32,74,32,100,40,44,46,48,50,70,52,54,58,60,60,62,64,303,306,76,52,40,64,52,64,52,0,26,100,64,64,64,303,54,2,309,309,315,315,68,68,56,56,318,318,121,121,34,34,306,306,38,38,36,36,321,321,324,324,44,58,28,42,0,0,0,327,327,0,331,331,0,0,0,0,335,338,341,344,335,130,40,347,42,133,136,350,354,40,64,357,24,26,66,36,30,335,124,74,40,40,44,46,48,50,52,54,58,60,62,64,34,306,127,321,121,361,366,72,1,32,371,374,24,26,66,36,30,335,124,74,40,40,44,46,48,50,52,54,58,60,62,64,34,306,127,321,121,361,366,72,1,32,371,374,335,338,341,344,335,130,40,347,42,133,136,350,354,40,64,357,52,52,32,32,335,335,32,32,335,335,52,52,338,338,300,300,76,76,34,34,72,72,72,72,64,64,52,52,52,52,380,380,56,56,383,1,1,1,1,0,388,395,40,40,1,1,58,58,36,36,36,36,36,36,124,124,74,74,44,44,44,44,44,44,44,44,50,50,106,106,54,54,306,306,60,60,62,62,64,64,64,64,306,306,403,403,321,321,321,321,38,38,321,321,321,321,1,124,124,44,44,407,407,50,50,410,410,321,321,413,413,416,24,24,24,24,97,97,335,335,1,1,1,1,124,124,74,74,130,130,40,40,40,40,52,52,52,52,52,52,32,32,64,64,64,64,64,64,321,321,425,425,72,72,425,425,429,429,429,429,432,432,435,435,439,439,443,443,448,448,452,452,456,456,460,460,464,464,407,407,467,467,471,471,475,475,479,479,482,482,485,485,407,407,410,410,0,0,0,0,0,0,0,0,0,0,0,0,0,24,26,36,30,32,74,32,32,62,124,40,46,306,127,44,38,130,377,321,48,72,50,121,52,321,54,42,491,60,66,62,58,127,68,54,44,52,34,0,0,220,0,0,0,0,0,0,0,24,26,36,30,32,74,32,32,62,124,40,46,306,127,44,38,130,377,321,48,72,50,121,52,321,54,42,491,60,66,62,58,127,68,54,44,52,34,494,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,24,52,40,32,32,24,24,52,0,64,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,497,26,36,30,38,66,74,306,62,72,44,44,46,48,48,50,50,60,502,54,54,127,127,56,58,121,62,0,0,0,0,0,66,507,40,0,0,0,0,0,0,0,0,0,0,0,0,0,0,510,0,516,0,0,0,0,0,0,0,0,0,0,0,522,528,540,547,559,564,0,497,0,0,0,0,0,0,0,0,0,0,574,24,497,68,497,72,497,26,580,62,100,42,38,306,30,584,58,74,60,121,60,30,62,74,587,36,591,591,597,597,597,0,34,56,44,46,48,50,38,68,497,72,603,606,609,24,64,40,68,0,0,0,0,0,0,0,0,66,612,618,0,0,0,0,6,8,10,12,14,16,18,20,22,0,0,0,0,622,626,497,497,497,497,179,179,179,64,179,630,633,26,62,62,54,100,637,640,38,644,647,38,321,650,654,30,30,657,584,660,30,30,30,664,58,58,58,58,58,58,42,58,60,60,60,60,60,62,377,34,34,34,66,34,303,56,56,306,44,44,44,106,44,36,36,50,36,36,36,46,46,46,46,50,50,50,50,50,38,321,667,38,38,580,68,109,109,64,670,670,68,66,72,72,72,68,32,673,72,72,0,97,677,626,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,681,685,0,6,8,10,12,14,16,18,20,22,121,30,377,689,689,696,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,700,700,26,36,36,30,30,38,68,74,38,62,62,72,706,44,46,48,50,60,60,32,54,54,60,56,58,121,62,709,709,709,24,24,24,24,24,24,32,32,32,32,40,40,64,64,64,52,0,0,0,0,0,70,56,0,0,0,0,0,0,717,717,717,622,622,622,622,622,622,622,640,640,681,681,685,725,587,587,587,730,730,591,591,591,734,734,739,739,739,744,685,685,725,640,640,725,685,640,497,497,597,597,597,748,748,673,673,640,725,725,752,38,121,50,58,26,46,44,756,66,48,34,584,100,46,36,644,60,30,74,62,72,54,42,321,630,762,306,100,74,121,60,30,62,74,765,377,56,68,24,770,40,773,64,776,32,779,52,782,0,785,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,8,10,12,14,16,18,20,22,24,773,40,32,64,776,52,789,50,800,803,806,809,812,816,819,822,826,829,833,836,839,842,845,848,842,429,852,855,848,858,858,858,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,863,875,884,24,24,770,40,892,64,895,58,46,898,32,32,905,898,52,52,908,836,911,915,918,922,926,812,809,929,848,933,937,942,946,951,806,955,816,959,842,963,803,968,800,972,845,855,819,822,839,976,980,985,988,992,826,429,0,0,996,1002,770,40,892,64,895,58,664,898,32,32,905,898,52,52,908,1011,0,0,0,1018,1025,0,0,0,0,0,479,1034,1039,1044,1047,471,833,1053,664,1057,46,1057,0,0,0,6,8,10,12,14,16,18,20,22,0,179,898,0,0,0,0,0,0,0,0,1060,1064,148,1068,1073,0,863,875,884,0,24,770,40,892,64,895,58,46,0,0,32,905,0,0,52,908,836,911,915,918,922,926,812,809,929,848,933,937,942,946,951,806,955,816,959,842,0,803,968,800,972,845,855,819,0,839,0,0,0,988,992,826,429,0,0,996,1002,770,40,892,64,895,58,664,0,0,32,905,0,0,52,908,1011,1077,0,0,0,0,0,0,0,0,0,0,0,0,0,822,471,0,1053,664,1057,46,1057,0,0,0,6,8,10,12,14,16,18,20,22,819,819,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,50,50,38,0,24,770,40,892,64,895,58,46,410,32,32,905,1084,52,52,908,44,306,36,377,106,28,321,42,1087,644,630,633,654,660,1090,62,100,30,584,50,1093,54,303,26,637,48,72,58,664,46,46,1097,66,121,79,60,38,0,0,996,0,770,40,892,64,895,58,664,410,32,32,905,1084,52,52,908,1011,0,0,1101,1105,0,0,0,0,0,0,56,1111,1115,74,1119,491,34,1124,664,1057,46,1057,0,0,0,6,8,10,12,14,16,18,20,22,0,0,0,0,0,1127,0,0,0,0,0,0,0,0,0,0,0,50,50,38,0,24,770,40,892,64,895,58,664,0,0,32,905,0,0,52,908,44,306,36,377,106,28,321,42,1087,644,630,633,654,660,1090,62,100,30,584,50,0,54,303,26,637,48,72,58,0,46,976,0,985,121,79,60,38,0,0,996,1002,770,40,892,64,895,58,664,898,0,32,905,898,0,52,908,1011,0,0,0,0,0,0,0,0,0,0,0,0,0,0,664,491,0,1124,664,1057,46,1057,0,0,0,6,8,10,12,14,16,18,20,22,58,58,1134,1134,0,0,0,0,0,0,0,0,0,0,0,0,0,863,50,884,0,24,770,40,892,64,895,58,46,0,0,773,905,0,0,776,908,44,306,36,377,106,28,321,42,1087,644,630,633,654,660,1090,62,100,30,584,50,0,54,303,26,1137,48,72,58,0,46,1057,0,66,121,992,60,38,0,0,996,1002,770,40,892,64,895,58,664,0,0,773,905,0,0,776,908,1011,0,0,0,0,0,0,0,0,0,0,0,1111,1115,74,664,471,34,1053,664,1057,46,1057,0,0,0,6,8,10,12,14,16,18,20,22,50,38,0,0,1140,0,0,0,0,0,0,0,0,0,0,0,0,50,50,38,0,24,770,40,892,64,895,58,0,410,32,32,905,1084,52,52,908,44,306,36,377,106,28,321,42,1087,644,630,633,654,660,1090,62,100,30,584,50,963,54,303,26,637,48,855,58,822,46,1057,980,66,121,79,60,38,0,0,0,0,770,40,892,64,895,58,664,410,32,32,905,1084,52,52,908,1011,0,0,1101,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,664,0,0,0,0,0,0,6,8,10,12,14,16,18,20,22,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,50,50,38,0,24,770,40,892,64,895,58,46,0,32,32,905,0,52,52,908,44,306,36,377,106,28,321,42,1087,644,630,633,654,660,1090,62,100,30,584,50,0,54,303,26,637,48,72,58,822,46,1057,0,985,121,79,60,38,0,0,0,1002,770,40,892,64,895,58,664,0,32,32,905,0,52,52,908,1011,0,0,0,0,0,0,0,0,0,0,1144,1148,0,0,664,491,0,1124,664,1057,46,1057,0,0,0,6,8,10,12,14,16,18,20,22,0,0,0,0,0,0,0,0,0,6,8,10,6,8,10,1152,0,0,50,38,0,24,770,40,892,64,895,58,46,0,32,773,905,0,52,776,908,44,911,915,918,106,28,812,42,929,644,630,937,942,946,1090,62,955,816,959,50,1093,54,968,800,972,48,72,58,664,46,1057,1097,66,988,79,60,38,0,0,996,1002,770,40,892,64,895,58,664,0,32,773,905,0,52,776,908,1011,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,833,0,664,1057,46,1057,0,0,0,6,8,10,12,14,16,18,20,22,0,1158,1170,0,0,0,0,0,0,0,0,0,0,0,0,0,0,50,50,38,0,24,770,40,892,64,895,58,46,0,32,773,905,0,52,776,908,44,306,36,377,106,28,321,42,1087,644,630,633,654,660,1090,62,100,30,584,50,0,54,303,26,637,48,72,58,664,46,1057,980,66,121,79,60,38,0,0,0,1002,770,40,892,64,895,58,664,0,32,773,905,0,52,776,908,1011,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,664,1057,46,1057,0,0,0,6,8,10,12,14,16,18,20,22,0,0,0,0,0,0,0,0,0,0,1182,1182,1182,1182,1182,1182,0,0,50,38,0,24,770,40,892,64,895,58,46,1189,32,773,905,1198,52,776,908,44,306,36,377,106,28,321,42,1087,644,630,633,654,660,1090,62,100,30,584,50,1205,54,303,26,637,48,72,58,664,46,1057,1205,66,121,79,60,38,1216,1224,0,1232,770,40,892,64,895,58,664,1240,32,773,905,0,52,776,908,0,0,1250,1261,1267,1261,1267,1261,0,1267,0,1272,1285,1267,1293,1285,1285,1097,1299,664,1057,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1267,1267,0,0,0,0,0,0,0,0,0,0,0,0,0,1311,50,38,1314,24,770,40,892,64,895,58,46,1318,32,773,905,1321,52,776,908,44,306,36,377,106,28,321,42,1087,644,630,633,654,660,1090,62,100,30,584,50,1325,54,303,26,637,48,72,58,664,46,1057,1097,66,121,79,60,38,1328,0,0,0,770,40,892,64,895,58,905,1336,32,773,905,1348,52,776,908,1352,1361,1370,0,6,8,10,12,14,16,18,20,22,1378,1389,0,0,0,0,664,1057,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1311,50,38,1314,24,770,97,1396,40,892,64,895,58,664,46,1057,32,773,905,52,776,908,1321,0,1400,44,306,36,377,106,1403,28,321,42,1087,644,1407,1411,630,633,654,660,1090,1415,62,100,30,584,50,770,1420,54,303,26,637,48,1423,72,58,1426,46,0,0,66,121,79,60,38,1057,34,0,0,0,0,0,0,0,0,770,97,1396,40,892,64,14,895,18,58,32,773,905,52,776,908,46,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,664,1057,0,0,0,0,0,0,0,0,0,0,0,0,1429,44,306,306,306,306,306,106,650,321,321,321,321,72,30,62,100,100,100,50,30,62,100,100,100,50,26,54,303,34,303,34,303,48,72,58,58,46,46,68,60,60,60,38,46,1432,38,1432,24,24,770,1437,40,892,1440,1443,64,895,0,0,0,0,1447,637,32,97,52,905,905,1451,812,809,0,848,933,937,942,48,951,806,955,816,959,842,803,968,800,972,845,1144,1454,1148,1459,852,1464,1044,1468,855,819,839,988,992,826,429,24,1471,1476,1487,822,0,0,0,0,770,40,892,64,895,58,664,46,1057,32,773,52,776,1491,1496,40,44,306,1501,306,0,1505,106,321,1509,60,1514,0,644,0,0,836,911,915,918,30,38,100,100,0,50,26,54,303,34,303,34,955,48,72,58,803,46,800,68,845,1144,60,38,1459,852,1464,1044,24,855,770,1437,40,892,72,1124,64,895,1476,52,46,644,0,0,32,1518,52,1521,905,0,0,0,0,0,0,0,0,48,1524,1524,0,0,0,0,0,0,0,0,0,0,0,0,1529,1532,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1101,911,915,918,922,926,812,809,929,848,1535,933,937,942,946,951,806,955,816,959,842,803,968,800,972,845,855,819,839,852,826,429,976,24,1540,40,892,64,895,32,1545,52,908,1549,770,40,892,64,895,32,905,1545,1545,32,875,618,884,1011,1554,1559,1559,1559,1559,1566,44,306,36,377,106,28,321,42,20,644,630,633,654,660,1090,62,100,30,584,50,54,303,26,637,48,127,350,130,357,68,124,74,1545,72,58,46,121,1572,60,38,24,1576,58,1580,1580,1580,1588,1588,1588,770,40,892,64,895,58,664,46,1057,32,773,52,776,48,38,40,892,1540,1540,1540,1540,1540,1540,1540,1540,1540,1540,1540,1540,1596,1596,44,306,36,377,106,28,321,42,20,644,630,633,654,660,1090,62,100,30,584,50,54,303,26,637,48,127,350,130,357,68,124,74,1602,72,58,46,121,79,60,38,24,1576,68,72,58,1606,70,1611,1616,1620,1623,482,1627,1631,0,0,0,0,0,0,0,0,0,0,603,1635,1639,1643,410,1647,1651,1655,609,1659,1663,1667,1671,1084,1675,1679,1602,331,1684,606,1688,1693,1698,1703,1707,1712,1717,1721,1725,1606,1729,1611,1616,1620,1623,482,1627,1631,1733,1736,1739,1639,587,0,1745,0,0,0,44,306,36,377,106,28,321,42,1087,644,1754,630,633,654,660,1090,630,100,30,584,50,54,303,26,637,48,72,58,46,68,60,38,1057,24,0,40,892,64,895,32,0,52,908,0,770,40,892,64,895,32,905,0,0,0,50,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,50,58,46,32,121,79,58,664,46,1057,58,664,46,1057,0,0,0,0,0,0,1758,24,97,855,475,1765,32,1768,1772,52,852,1775,109,1318,64,1779,482,1783,670,1786,347,40,1789,1793,1797,1802,1808,1813,1818,1824,1830,1836,1841,1845,1850,1854,1858,1864,1871,1878,1883,1888,1892,1897,1905,1910,1914,1919,1925,1930,1937,1943,1948,1953,1958,1964,1969,1973,1978,1982,1986,1991,1999,2005,24,26,36,30,32,66,74,62,40,44,46,48,50,52,54,124,58,60,62,64,54,44,36,56,121,321,28,74,28,321,70,42,38,32,72,68,2014,109,2017,2030,2041,2055,2069,2083,2096,2114,2126,2139,24,26,36,30,32,66,74,62,40,44,46,48,50,52,54,124,58,60,62,64,54,44,36,56,121,321,28,74,28,321,70,42,38,32,72,68,2014,109,34,2158,2170,2182,0,0,0,0,0,0,36,2194,50,30,654,58,48,26,1137,60,79,2197,42,2201,28,44,62,54,38,106,1090,1420,2204,2207,2210,664,491,2210,1423,2213,2216,2219,2222,2226,2229,2233,2237,2241,2245,2249,2252,2255,2258,2219,2261,2265,2268,2271,2274,2277,2280,2283,2287,60,2291,2294,2297,315,318,121,2300,2305,327,2309,74,36,30,48,26,60,74,2314,42,28,62,54,50,42,0,0,2318,2322,2326,321,2329,2334,2338,2341,762,56,2344,2349,2355,2361,0,0,800,24,97,855,475,1765,32,1768,1772,52,852,1775,109,1318,64,1779,482,1783,670,1786,347,40,1789,1793,1797,1802,1808,1813,1818,1824,1830,1836,1841,1845,1850,1854,1858,1864,1871,1878,1883,1888,1892,1897,1905,1910,1914,1919,1925,1930,1937,1943,1948,1953,1958,1964,1969,1973,1978,1982,1986,1982,64,2366,1910,2371,895,770,773,32,52,852,36,2194,2375,50,136,2378,30,46,2381,2384,2387,162,2390,2393,2396,48,26,2226,60,79,106,42,28,44,62,54,38,2399,2402,106,1420,2406,2409,2412,2207,2415,2418,2422,2425,2428,1057,2432,2436,2440,2444,2448,2452,153,2456,2459,2462,2465,1423,2468,2471,2475,2478,2481,2213,2484,2258,303,2341,2265,2271,2487,2280,74,36,79,1318,306,50,2406,2409,2338,2341,1529,2490,1532,2493,56,2496,2500,2505,2510,2514,2518,429,2523,2526,2529,2533,1620,2537,2540,839,2544,2547,2197,2550,2554,1426,2557,2561,2565,2569,2573,2578,2583,2587,2591,845,2596,2599,2602,2606,2610,2613,2616,2222,2620,2624,2628,2633,2638,2642,2646,819,2651,2654,2657,2661,2665,2668,2671,826,2675,2678,2681,2685,2689,1325,2692,988,2696,2700,2704,2300,2305,327,2309,479,2709,2712,2715,2719,2723,2726,2729,2734,2738,2741,2745,2750,2755,2759,2762,2318,2322,2766,2770,2329,2334,2775,2779,2783,2788,2344,2349,2355,2361,0,0,800,2792,2795,2798,2802,2806,2809,2812,985,2816,2819,2822,2826,2830,2833,2836,806,2840,324,2843,2847,2851,2854,2857,926,2861,2864,2867,2871,2875,2878,2881,2885,2888,2891,2894,2898,2902,2905,2908,2912,2916,2920,2924,2929,2934,2938,2943,842,2947,2950,785,2953,2957,1400,2960,848,2964,2968,2972,2977,2982,2986,2990,24,32,40,52,64,66,915,836,836,2995,2998,3001,3005,3009,1311,2526,3012,2523,3016,3020,3025,3030,1426,2544,3034,3038,3042,3046,3051,3056,3060,3064,3068,2957,3073,3078,3084,3090,3095,3099,852,3103,1783,3106,3110,482,3114,2678,1325,2675,3117,816,806,432,2851,3120,1044,3123,3126,3129,3133,464,3137,3140,1464,3144,3148,3152,3157,3162,3166,3170,855,670,347,3175,3179,1772,1318,855,816,3183,3120,3186,3190,432,3194,3197,942,3201,2496,2500,2505,2510,2514,2518,809,3205,3208,3211,3215,3219,3222,2540,915,3225,3228,3231,3235,3239,3242,0,3245,0,3249,3253,3258,3263,0,0,1060,3267,3271,3275,3280,3285,3289,0,955,3293,3297,3301,3306,3311,1321,3315,812,3320,3324,3328,3333,3338,3342,3346,968,3351,3355,3359,3364,3369,3373,3377,1144,3382,3386,3390,3395,3400,3404,3408,3413,3417,3421,3425,3430,3435,3439,0,833,2738,1733,3443,3447,3451,2759,2762,803,3454,3457,3460,3464,3468,3471,2779,3474,2788,3478,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,24,32,40,52,64,66,915,836,3239,3228,3242,3225,3482,429,1620,2526,2537,2523,112,839,2554,2547,1426,2544,3485,845,2610,2599,2613,2596,842,3064,3488,2957,2950,1400,2947,3492,3095,3099,3495,3499,3503,3507,826,60,2689,2678,1325,2675,3117,816,806,432,2851,3120,324,3194,3183,3511,3514,3518,3522,3526,3530,3534,3538,1144,3400,3386,3404,3382,3542,852,482,1783,3114,3103,3546,855,1772,347,1318,670,3549,0,0,0,0,0,0,0,0,0,0,0,0,32,3552,40,892,52,776,776,773,40,24,770,482,482,1783,1783,3556,3556,3114,3114,3560,3560,3560,852,852,3106,3106,3106,905,68,0,62,44,121,60,50,68,50,0,68,28,0,46,410,609,1084,603,3468,3564,3457,3569,3471,3573,3573,2533,2526,803,3460,2943,2943,3577,3577,3581,3581,3586,3586,3590,3590,2779,2779,3595,3595,3595,54,54,38,2851,3600,324,3605,2854,3609,3609,3190,3120,806,2843,3613,3613,3617,3617,3621,3621,3626,3626,3630,3630,2857,2857,3635,3635,3635,62,3640,3644,3648,933,3009,3652,2998,3657,1311,3661,3661,836,3001,3030,3030,3016,3016,3665,3665,3670,3670,3674,3674,3012,3012,3020,3020,3020,44,3679,3682,3686,3690,3694,2875,3698,2864,3703,2878,3707,3707,926,2867,3711,3711,3715,3715,3719,3719,3724,3724,3728,3728,2881,2881,3733,3733,3733,28,100,2610,3738,2599,3743,2613,3747,3747,845,2602,3751,3751,3755,3755,3759,3759,3764,3764,3768,3768,2616,2616,3773,3773,3773,48,48,2481,48,48,2957,3778,2950,3783,1400,3787,3787,842,785,3791,3791,2960,2960,3795,3795,3795,50,106,2378,2554,3800,2547,3805,1426,3809,3809,839,2197,3813,3813,3817,3817,3821,3821,3826,3826,3830,3830,2557,2557,3835,3835,46,46,46,2689,3840,2678,3845,1325,3849,3849,826,2681,3853,3853,3857,3857,3861,3861,3866,3866,3870,3870,2692,2692,3875,3875,3875,60,60,3880,60,2297,3883,3880,3887,3892,3897,3902,2305,2700,3907,327,3912,988,2704,3917,3917,3922,3922,3927,3927,3933,3933,3938,3938,2309,2309,3944,3944,121,1772,3950,347,3955,1318,3959,3959,855,3175,3963,3963,3967,3967,3971,3971,3976,3976,3980,3980,3985,3985,3989,3989,3989,72,72,72,347,2665,2665,2554,3994,2654,3999,2668,4003,1426,819,2657,839,4007,4007,58,58,58,3451,4012,1733,4017,2759,4021,833,3443,4025,4025,34,3311,3311,3297,3297,4030,4030,1321,4035,955,3301,4040,4040,100,4046,4051,4056,937,633,4061,4065,4069,4073,1620,2526,4077,2537,4081,429,2529,38,38,4085,4088,2712,4093,2726,4097,479,2715,56,4101,4106,4111,4116,2665,2654,2668,819,4121,4127,4131,4136,4140,922,4145,106,1403,2305,2700,327,988,3311,3297,1321,955,100,4150,4154,4159,4163,467,4168,2396,3311,3297,4030,1321,4035,955,3301,100,26,32,40,52,24,482,1783,3114,852,2957,2950,1400,842,3009,2998,1311,836,1620,2526,2537,429,4173,4177,425,4181,4186,918,2651,2668,2665,2661,2654,819,3103,3114,482,3110,1783,852,4190,4194,4198,4202,4207,4211,3293,1321,3311,3306,3297,955,4215,3648,3640,4219,3644,933,3454,3471,3468,3464,3457,803,54,3225,3242,3239,3235,3228,915,4224,1314,4228,4232,4237,911,4241,4245,4249,4253,4258,1487,4262,2947,1400,2957,2953,2950,842,2596,2613,2610,2606,2599,845,670,1318,1772,3179,347,855,3205,3205,3222,3219,3215,3208,3208,809,4265,4269,4273,4277,4282,1064,2544,1426,2554,2550,2547,839,4286,4290,4294,4298,4303,3514,4307,4159,4311,4315,4150,467,4320,4111,4101,4325,4106,4116,3534,3530,3522,4331,3526,3518,3123,3137,464,3133,3126,1044,74,74,4336,4340,4344,4348,4353,1148,2675,1325,2689,2685,2678,826,2696,327,2305,2300,2700,988,121,3382,3404,3400,3395,3386,1144,3320,3342,3338,3333,3324,812,4357,4362,4367,4372,4378,4383,70,839,4388,4392,4397,4402,4408,4413,4419,4424,0,0,0,0,0,0,0,0,0,836,26,46,34,60,50,38,30,62,28,56,48,36,106,74,58,24,52,64,32,40,321,100,303,54,70,54,1426,2833,988,4430,826,34,66,64,118,72,68,100,100,24,52,4434,97,52,52,52,109,1084,58,44,28,44,36,106,36,36,68,38,38,38,38,50,50,50,40,32,42,36,97,24,1765,54,74,60,60,60,28,74,62,62,30,26,26,54,54,32,48,48,48,46,46,106,106,30,52,4437,4441,2709,2709,2709,60,118,118,118,56,70,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,4445,0,0,0,0,0,0,0,0,0,6,8,10,12,14,16,18,20,22,0,0,0,0,0,0,24,32,40,52,64,109,1440,773,842,4454,800,803,479,915,845,839,826,988,806,816,812,809,855,819,852,833,836,911,1144,1044,2529,4458,467,3148,3324,4462,4462,4462,4462,4462,4462,4462,4462,4462,4462,4462,4462,4462,4462,4462,4462,4462,4462,4462,4462,4462,4462,4462,4462,4462,4462,4467,4467,4467,4467,4467,4467,4467,4467,4467,4467,4467,4467,4467,4467,4467,4467,4467,4467,4467,4467,4467,4467,4472,4472,4472,4472,4472,0,0,0,0,0,0,0,0,44,306,36,377,106,28,321,42,1087,644,62,633,30,660,1090,62,100,30,584,50,54,303,26,637,48,72,58,46,66,121,79,60,38,46,56,24,770,40,892,64,4479,895,4482,4486,4489,4493,4496,32,905,776,776,908,24,770,770,40,892,72,1124,64,895,4500,109,855,335,32,97,905,776,908,48,38,24,0,0,0,58,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4503,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,836,911,915,918,922,926,812,809,929,4506,806,955,816,959,842,803,968,800,972,845,855,819,839,852,988,992,826,429,0,0,0,24,40,64,773,905,776,908,32,52,855,819,852,0,0,0,0,836,922,875,806,842,803,845,819,839,4510,4520,4530,0,0,0,0,3809,0,0,0,0,0,0,6,8,10,12,14,16,18,20,22,836,2885,922,1144,826,855,806,955,839,803,968,845,833,985,429,479,911,1454,842,24,40,773,4535,64,776,52,1440,32,4538,905,0,0,4542,4542,4542,4542,4542,0,0,0,0,0,0,0,0,0,0,0,179,479,179,179,179,836,2885,922,179,179,179,1144,826,855,179,179,179,806,955,842,179,179,179,803,968,845,179,179,179,833,985,839,179,179,179,429,816,800,179,179,4548,4552,0,0,0,0,0,0,4556,770,892,64,895,32,97,52,782,1440,1521,4562,4566,507,4569,4573,4577,4580,4580,4580,4580,4580,4580,4580,0,0,0,0,0,0,0,0,0,6,8,10,12,14,16,18,20,22,0,0,0,0,4586,4590,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,836,915,922,4595,803,800,845,4600,806,816,842,4604,926,809,848,4608,855,819,839,985,826,24,429,40,64,32,52,97,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4613,4613,4617,4623,4630,4636,4636,4642,4642,4648,4648,819,819,839,839,4654,4660,4667,4667,836,836,915,915,922,926,926,809,809,848,806,806,816,816,842,806,806,816,816,842,803,803,800,800,845,855,819,839,852,826,826,826,429,4673,4681,4613,4613,4688,4688,819,819,839,839,4693,4693,4693,4693,4700,4700,0,752,4706,4711,4716,2830,4719,4723,0,0,0,0,0,6,8,10,12,14,16,18,20,22,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4730,4739,4749,24,40,64,97,52,32,1786,836,479,915,922,926,809,1044,848,806,816,842,803,833,985,800,845,855,819,839,852,826,2885,429,4759,4769,4778,4786,4795,4803,4814,4823,4831,4842,0,0,0,911,4850,0,6,8,10,12,14,16,18,20,22,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,836,4854,911,915,4858,922,926,812,809,848,806,955,816,842,803,4862,968,833,4866,800,4870,845,4874,1144,1454,1148,855,819,839,429,4878,985,826,988,852,24,855,819,770,40,52,776,64,895,32,44,48,46,50,54,58,62,4882,4890,4895,996,0,0,0,0,0,0,0,0,0,6,8,10,12,14,16,18,20,22,0,0,0,933,937,942,0,6,8,10,12,14,16,18,20,22,839,4899,4902,4454,4905,2197,4908,4912,4916,4920,2547,4924,4927,4930,4934,2544,4937,4940,4943,4566,2554,4947,4950,410,4954,1426,4958,4962,4965,4968,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4971,4971,97,4971,4971,4971,4971,4971,4979,40,4971,4971,4971,4971,4971,4971,4971,4984,4984,4984,109,4971,4993,4997,4971,4971,4971,4971,4971,4984,4984,4984,4971,4971,4971,4971,5004,587,4971,4971,4971,4971,4971,4971,4971,4971,4971,4971,4971,4971,4971,4971,4971,4971,4971,4971,4971,4971,4971,4971,4971,4971,4971,4971,4971,4971,4971,24,5011,5018,5011,26,30,32,5024,4979,5011,36,5011,44,48,5030,52,4979,4993,4997,54,62,64,4984,5011,66,587,5034,5039,5045,5039,3324,40,58,64,66,5034,5051,5057,3355,3324,1440,26,30,34,48,50,54,58,58,60,62,74,36,5061,5070,100,40,5078,54,64,5083,26,30,34,36,44,46,48,50,54,58,60,5091,66,70,74,24,5018,30,32,32,4979,5024,40,52,5091,64,5095,5011,28,28,5099,5103,34,5112,5120,5011,40,5078,4971,4971,42,46,46,4971,48,5011,50,50,4971,5127,3355,60,5091,62,64,5083,4971,66,5011,74,74,74,5095,5134,0,0,0,0,0,0,0,0,0,0,58,0,0,0,0,0,0,0,0,5140,97,1451,5150,28,5070,5099,36,4971,44,46,4971,4971,50,4971,4971,58,60,60,74,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,24,24,26,26,26,26,26,26,28,28,30,30,30,30,30,30,30,30,30,30,32,32,32,32,32,32,32,32,32,32,34,34,24,32,40,52,64,52,64,773,50,106,26,54,56,36,48,46,60,121,62,30,321,42,72,58,68,34,44,911,127,74,38,5153,2396,124,321,48,32,40,52,64,52,64,106,26,54,56,36,48,62,30,321,42,127,72,68,44,36,38,5156,644,130,32,40,4577,64,64,106,44,36,38,54,121,62,30,42,34,36,38,127,74,58,321,124,40,44,58,34,124,64,64,64,64,66,66,66,66,68,38,70,68,48,68,68,24,40,44,106,28,630,633,654,1090,62,30,54,303,79,124,74,24,62,124,377,106,28,1087,933,660,62,584,79,5159,124,74,64,72,637,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,40,40,40,40,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,64,64,64,64,64,64,64,64,64,64,64,64,64,64,72,72,72,72,72,72,72,72,5162,5162,5162,5162,72,72,5018,5018,5018,5018,5018,5018,5018,5018,5018,5018,5018,5018,5018,5018,5018,5018,5175,5175,5175,5175,5175,5175,0,0,5175,5175,5175,5175,5175,5175,0,0,5183,5183,5183,5183,5183,5183,5183,5183,5183,5183,5183,5183,5183,5183,5183,5183,5078,5078,5078,5078,5078,5078,5078,5078,5078,5078,5078,5078,5078,5078,5078,5078,5187,5187,5187,5187,5187,5187,0,0,5187,5187,5187,5187,5187,5187,0,0,5083,5083,5083,5083,5083,5083,5083,5083,0,5083,0,5083,0,5083,0,5083,5195,5195,5195,5195,5195,5195,5195,5195,5195,5195,5195,5195,5195,5195,5195,5195,5018,5018,5175,5175,5183,5183,5078,5078,5187,5187,5083,5083,5195,5195,0,0,5018,5018,5018,5018,5018,5018,5018,5018,5018,5018,5018,5018,5018,5018,5018,5018,5183,5183,5183,5183,5183,5183,5183,5183,5183,5183,5183,5183,5183,5183,5183,5183,5195,5195,5195,5195,5195,5195,5195,5195,5195,5195,5195,5195,5195,5195,5195,5195,5018,5018,5018,5018,5018,0,5018,5018,5018,5018,5018,5018,5018,0,0,0,0,0,5183,5183,5183,0,5183,5183,5175,5175,5183,5183,5183,0,0,0,5078,5078,5078,5078,0,0,5078,5078,5078,5078,5078,5078,0,0,0,0,5083,5083,5083,5083,5057,5057,5083,5083,5083,5083,5083,5083,5057,0,0,0,0,0,5195,5195,5195,0,5195,5195,5187,5187,5195,5195,5195,0,0,0,5201,0,2,2,2,2,5205,2,2,5209,5213,2,2,2,2,2,2,2,2,2,2,0,0,0,5218,1,1,1,1,1,1,1,1,1,1,1,0,0,0,2,0,0,5224,0,0,0,0,2,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,5230,0,0,2,0,0,0,0,0,0,5234,0,1,1,0,0,5237,0,0,5241,0,0,0,0,0,0,5248,0,0,0,5255,2,2,0,0,0,0,0,0,0,0,0,0,5261,0,0,5267,5267,5274,40,0,5280,0,0,0,0,0,0,0,5285,0,0,0,50,0,0,0,0,0,0,0,0,0,0,5291,0,0,0,0,0,24,32,52,70,5024,0,0,0,0,0,0,0,0,0,5296,0,0,0,0,0,0,0,0,5301,0,0,0,0,0,0,0,0,0,5305,0,5309,0,0,0,5314,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5320,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5325,0,0,0,0,0,0,0,0,0,0,0,0,0,5329,0,0,0,0,0,0,0,0,0,0,4971,5333,0,0,0,4971,0,0,0,0,2,0,0,0,0,0,4971,0,0,0,0,5337,2,0,0,0,0,0,4971,5078,0,0,0,4971,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5342,0,0,5347,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5352,0,0,0,0,0,0,0,0,0,0,5358,0,0,0,0,0,0,0,0,0,0,5325,0,0,0,0,0,0,0,5362,0,0,0,0,0,0,0,0,28,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5367,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5372,0,0,0,0,0,0,0,0,0,5320,0,0,0,0,5377,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5381,0,0,0,0,0,0,0,5386,0,0,0,0,0,0,0,0,0,5391,0,0,0,0,0,0,0,0,0,5396,5401,5401,0,0,0,5407,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5413,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5419,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5426,5386,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5248,0,0,5437,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5442,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5448,0,0,0,0,0,0,0,0,0,0,0,0,0,5453,5459,0,0,0,0,0,0,0,5453,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5248,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5464,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5471,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5476,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5325,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,24,24,26,26,26,26,26,26,28,28,30,30,30,30,30,30,30,30,30,30,32,32,32,32,32,32,32,32,32,32,34,34,36,36,38,38,38,38,38,38,38,38,38,38,40,40,40,40,44,44,44,44,44,44,46,46,46,46,46,46,46,46,48,48,48,48,48,48,50,50,50,50,50,50,50,50,52,52,52,52,52,52,52,52,54,54,54,54,58,58,58,58,58,58,58,58,60,60,60,60,60,60,60,60,60,60,62,62,62,62,62,62,62,62,64,64,64,64,64,64,64,64,64,64,66,66,66,66,68,68,68,68,68,68,68,68,68,68,70,70,70,70,72,72,74,74,74,74,74,74,38,62,68,72,24,60,24,26,28,30,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,40,40,40,40,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,64,64,64,64,64,64,64,64,64,64,64,64,64,64,72,72,72,72,72,72,72,72,16,18,20,22,0,0,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,32,32,32,32,32,32,0,0,32,32,32,32,32,32,0,0,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,52,52,52,52,52,52,5386,0,52,52,52,52,52,52,2,5480,64,64,64,64,64,64,64,64,0,64,0,64,0,64,0,64,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,24,24,32,32,32,32,40,40,52,52,64,64,52,52,0,0,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,24,24,24,24,24,0,24,24,24,24,24,24,24,0,40,0,0,0,32,32,32,0,32,32,32,32,32,32,32,0,0,0,40,40,40,40,0,0,40,40,40,40,40,40,0,0,0,0,64,64,64,64,58,58,64,64,64,64,64,64,58,0,0,0,0,0,52,52,52,0,52,52,52,52,52,52,52,0,0,0,5485,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5491,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,5496,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5501,0,0,0,0,0,0,0,0,0,0,5506,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5509,0,5255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5514,0,0,0,5519,50,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5524,0,0,0,0,0,5529,0,0,0,0,0,5534,0,0,0,5540,5544,5547,5550,46,5553,50,5557,1134,68,2406,30,1786,44,62,5561,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5564,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5568,0,5573,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5578,0,0,0,0,5564,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,40,892,5583,5587,66,2819,5590,5594,5599,70,2891,5602,46,28,30,48,40,892,5583,5587,66,2819,5590,5594,5599,70,2891,5602,46,28,30,48,6,30,10,12,14,16,18,20,22,0,6,8,10,12,14,16,18,20,22,0,0,0,0,0,0,0,0,0,0,0,0,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,66,0,0,66,0,0,0,0,0,5606,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5612,0,0,0,0,5617,0,0,0,0,0,0,0,0,0,5622,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5629,0,0,0,0,5291,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5635,0,0,0,5629,0,0,0,0,5642,0,0,0,0,0,0,0,0,0,0,0,0,0,5647,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5651,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5325,5655,0,0,0,0,0,0,0,0,5285,0,0,0,5367,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5661,5661,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5666,0,0,0,0,5671,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,2,0,0,5676,5682,0,0,0,0,5688,0,0,0,0,0,0,0,0,0,0,5693,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5699,0,0,0,0,0,0,5291,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5476,5704,5704,0,0,0,0,0,0,0,0,0,0,0,5708,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5712,0,0,5717,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5721,5721,5721,5721,5721,5721,5721,5721,5721,5721,5721,609,609,0,5721,5721,0,0,609,609,5721,5726,0,609,609,609,0,5464,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5693,0,0,0,0,0,0,0,0,5730,0,0,2,2,0,0,0,0,0,0,0,0,5721,0,0,0,0,0,0,0,0,0,0,5682,5682,5682,0,0,0,5721,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5721,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,272,272,272,272,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,5682,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5735,5739,5744,5749,5757,5763,5769,5777,5783,5790,5795,40,5803,5810,5815,5823,5831,5837,5841,5848,5854,5860,5867,5871,5877,5882,3468,5886,3386,5891,988,5898,5903,5908,5913,670,5921,5921,1318,5925,5933,5925,5937,5942,5950,5958,5969,0,5735,5739,5744,5749,5757,5763,5769,5777,5783,5790,5795,40,5803,5810,5815,5823,5831,5837,5841,5848,5854,5860,5867,5871,5877,5882,3468,5886,3386,5891,988,5898,5903,5908,5913,670,5921,5921,1318,5925,5933,5925,5937,5942,5950,5958,5969,0,46,46,46,54,58,24,62,38,38,44,44,74,74,5018,48,24,0,66,68,68,66,1432,1432,5978,32,58,52,4971,42,4971,0,0,5987,5987,5992,5992,5051,5051,5997,5997,6003,6003,6007,6007,6011,6011,6016,6016,6021,6021,6028,6028,6034,6034,6039,6039,2599,2599,2950,2950,6045,6045,52,52,3457,3457,2668,2668,6049,6049,6054,6054,4500,4500,1733,1733,4237,4237,6058,6058,6062,6062,6066,6066,6076,6076,6080,6080,6066,6066,6066,6066,6080,6080,6076,6076,283,283,6094,6094,6076,6076,6076,6076,6102,6102,6066,6066,6076,6076,6076,6076,6111,6111,6076,6076,6076,6076,6076,6076,6076,6076,6076,6076,6076,6076,6076,6076,6076,6076,6076,6076,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,603,1635,1639,1643,410,1647,1651,1655,609,1659,1663,1667,1671,1084,1675,1679,1602,331,1684,606,1688,1693,1698,1703,1707,1712,1717,1721,1725,1606,1729,1611,1616,1620,1623,482,1627,1631,0,0,0,0,0,0,0,0,0,0,855,6120,6124,6129,6133,6139,6146,6150,6154,6159,6164,6170,6174,6178,6182,6189,6195,6139,6182,6199,3175,6204,6182,6209,6182,347,6213,6218,6182,6226,6230,4506,6182,6182,6234,670,1447,6238,6243,6182,6248,6253,6257,6262,6267,6271,6276,6281,6286,6290,6294,6298,6302,6313,0,0,0,0,0,0,0,0,0,6318,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6332,6336,6340,6344,6348,6353,6357,6361,6365,6369,782,6374,6378,6382,6387,6391,6396,6401,6406,6410,6415,6420,6426,0,0,0,0,0,0,0,0,0,992,6431,6435,6439,6444,6449,4430,0,6453,6457,6461,6465,6470,6475,6479,0,6483,6487,6491,6495,6500,6505,6509,0,6513,6518,6523,6528,6534,6540,6545,0,6550,6554,6558,6562,6567,6572,6576,0,6580,6584,6588,6592,6597,6602,6606,0,6610,6614,6618,6622,6627,6632,6636,0,6640,6644,6648,6652,6657,6662,6666,0,2806,2830,425,432,3162,464,836,407,413,410,52,3468,6670,6673,2851,429,3400,3338,988,6676,5937,6682,24,335,6688,6694,6267,670,6704,6713,5933,6704,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,220,5682,220,5682,6720,6725,6725,6725,6725,6725,6725,6734,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,24,24,40,40,64,64,32,32,52,52,836,915,2998,3228,2995,3225,3009,3239,1311,3242,826,1044,2678,3126,2675,3123,2689,464,1325,3137,806,816,324,3120,2840,2840,3183,2851,432,2854,3194,842,2950,2947,2957,1400,429,800,803,2526,70,3457,2523,2792,3454,1620,2806,3468,2537,2809,3471,845,2599,2596,2610,2613,855,855,670,670,1318,1318,819,2654,2651,2665,2668,852,852,1783,482,3114,50,2816,836,3009,0,0,0,0,0,0,0,0,0,2,24,24,40,40,64,64,32,32,52,52,836,915,2998,3228,2995,3225,3009,3239,1311,3242,826,1044,2678,3126,2675,3123,2689,66,66,66,66,816,324,3120,2840,2840,3183,2851,432,2854,3194,842,2950,2947,2957,1400,429,800,803,2526,2795,3457,2523,2792,3454,1620,2806,3468,2537,2809,3471,845,2599,2596,2610,2613,855,855,670,670,1318,1318,819,2654,2651,2665,2668,852,52,1783,482,3114,50,2816,836,3009,985,2819,2830,2833,0,0,0,0,0,0,0,0,0,0,26,54,48,34,30,62,50,46,36,44,38,42,56,70,124,321,121,58,74,28,60,24,52,32,4535,905,1518,908,139,603,410,4454,5030,6670,40,64,371,66,106,6743,4927,0,0,0,6746,6753,6765,6777,6783,6795,6807,6814,6826,6832,6845,6857,6869,6880,6894,6908,6920,6926,6932,6943,6954,6959,6969,6975,6981,6992,7000,7008,7016,7024,24,97,855,475,1765,32,1768,1772,52,852,1775,109,1318,64,1779,482,1783,670,1786,347,40,0,7030,2017,2030,2041,2096,2126,7041,7058,7072,7090,7102,7113,7127,7141,7154,7167,7185,7203,7215,7229,7243,7262,7274,7285,7297,7308,7319,7327,7338,7347,7361,7378,7394,2182,1858,1864,1883,1930,1937,1948,1999,7405,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2792,3126,3208,3225,773,7412,776,7416,4934,7420,7424,4943,7428,7431,7435,7440,1437,1429,7445,7449,54,62,44,38,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2995,2678,2675,2854,2947,429,2526,2523,1620,2537,2596,819,2654,2651,2665,2668,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7454,52,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7460,7467,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,24,0,26,0,44,0,46,0,28,40,34,0,48,60,54,0,32,0,38,0,52,0,58,0,30,42,36,0,50,62,56,0,0,0,0,0,64,0,66,0,0,0,0,0,70,0,0,0,0,0,0,0,74,0,0,0,0,68,0,0,72,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5688,5606,0,0,7473,7478,7482,0,0,0,0,0,7487,0,0,0,0,0,0,0,0,0,7491,0,0,0,0,0,5442,0,0,0,0,7495,0,0,5688,0,0,0,7500,5426,0,7504,7511,7516,7521,5218,7528,5655,5491,7478,7533,0,0,7538,7542,5476,7548,7555,7558,0,0,0,0,5314,7565,5708,7478,7571,0,7576,7582,7588,5476,7592,7599,5666,5386,7605,0,0,0,0,7500,0,0,0,5381,5459,7495,7588,5476,7610,7616,5413,0,0,0,5347,7622,5476,5301,5325,7628,7632,7637,0,0,0,7643,7500,5296,7648,0,7576,0,7653,5237,7658,7663,5296,7667,7538,7672,5629,7675,7681,7687,7628,7692,7696,7700,7706,7710,7715,7653,5629,7719,0,7723,5666,7730,0,0,5296,7734,7738,5320,0,7742,7658,0,7746,7752,7757,7628,7763,7667,5453,5661,5337,0,0,5617,0,5666,5301,0,7632,0,5325,0,0,0,0,7768,0,7774,7779,7786,7790,0,7795,5342,0,0,7790,7800,0,5391,5301,0,7599,5568,7805,5655,0,0,0,5224,7811,7582,7817,0,0,5401,7592,5329,5426,0,7823,5661,0,5358,5381,7588,0,0,0,5337,5426,7706,0,7828,5564,7632,5280,5381,0,0,7834,7839,0,7843,0,0,7849,0,5301,5396,7853,7858,0,7667,7864,7867,5476,5291,7872,5407,0,7710,5248,7710,0,7672,0,7516,5291,7588,7675,7877,0,0,7605,7883,5407,7576,7888,5661,5301,0,7710,5237,5407,0,5325,0,7893,5573,7898,5568,0,7904,7779,7908,0,7849,0,5291,5666,7914,7920,7924,7672,7930,7864,5329,0,0,7935,7495,7940,7946,7628,0,7952,5476,5274,7817,7957,0,5333,5391,0,7962,5642,5381,7967,0,5699,7482,0,7972,7977,7982,7986,5730,7990,0,5485,7663,0,7864,5573,5661,5573,7994,0,0,7811,7588,5337,0,7667,7999,7500,5391,0,0,8005,0,7849,5671,7834,5688,5476,5396,0,8010,8015,7883,7565,8022,5708,5564,8028,7849,5337,5396,0,8033,8039,8044,5396,5301,8048,8052,8057,0,7487,0,0,5333,7516,5476,5730,0,7500,5726,7696,0,0,0,0,0,0,0,8028,7994,5661,5377,8062,8068,8073,8077,7482,0,0,0,0,0,0,8082,8087,7904,7491,5325,7853,7653,7592,7582,7752,5329,5448,8039,8093,0,5606,8099,0,0,0,0,0,0,0,7491,5391,5529,5501,8104,8110,7888,8115,7864,5661,0,7864,8119,7752,7800,7982,5717,5367,7800,5358,5325,5730,7972,0,0,0,0,8126,7663,0,0,8131,7883,8126,8073,8136,5301,7675,5519,0,0,0,0,0,7582,5377,8140,8144,8149,7972,7663,5237,0,7867,0,0,0,0,5573,5325,8154,7738,7834,7500,0,8159,0,0,0,0,7491,7521,0,5367,7571,5476,7839,0,0,5274,7658,8164,5476,7972,5476,5274,8170,5325,7653,0,8174,5301,0,5347,8179,7653,7834,0,0,7834,7653,0,7710,8184,8154,0,5358,5367,5534,8190,0,5337,8196,7500,8028,5358,8052,5485,5708,5708,0,0,0,0,8170,0,7571,8201,5381,7663,8205,7839,8048,0,0,0,0,8077,7511,8211,8217,0,5358,8222,0,5573,7653,5606,8227,0,0,0,0,5564,7888,7628,7491,8005,7653,7908,0,7908,0,7610,0,8201,7710,5661,8077,7843,5476,0,7800,8015,5367,8234,0,0,5325,8239,7491,5325,7482,0,8245,5476,5661,8052,5218,7653,7877,7658,5629,7972,8222,8249,7952,7877,5666,0,5237,0,0,8255,8261,8267,0,7610,5564,0,0,7786,0,0,5396,8039,0,5524,8272,0,5261,8277,8077,5564,5524,7867,8282,0,0,5237,7500,8005,8249,8287,0,5325,8293,7675,5476,7628,5476,7834,0,8297,8052,8302,0,5337,0,7528,5358,0,7828,0,8201,0,7487,7696,0,7790,8267,0,0,8255,0,8174,0,0,7495,5381,0,7696,7888,0,0,0,7888,0,0,7867,0,7742,5448,8179,8307,0,5352,5476,0,7571,8312,7867,8316,7528,5337,7930,7610,0,0,0,0,0,0,7738,5347,7800,8322,7576,7834,0,5329,0,5514,7746,0,7872,8048,5496,5386,0,5442,0,5320,7858,0,8005,8302,0,5274,7972,0,0,0,5401,8329,7500,5651,5296,7715,0,8334,5476,8131,5629,7706,8267,5320,5564,5476,8245,0,5401,8340,8179,8170,5329,7588,5362,5708,8345,7542,0,0,0,0,8297,7914,8349,7653,8354,7696,5708,5274,7538,0,0,5347,0,8354,7582,5534,8359,8249,5453,5509,5651,8077,5726,8365,5401,7972,5209,8370,7500,8052,8329,7972,8010,8104,8131,0,8104,8375,7605,8087,8239,5381,5661,5693,5381,8164,8211,0,5717,5642,8381,5476,7843,5218,7482,0,7588,0,7516,8387,7790,8391,8397,7628,7491,8131,5651,7667,7752,0,0,7828,7610,0,5426,8402,8255,7746,8249,8196,0,5509,8407,7663,0,8411,8417,5401,5309,0,7805,7571,8073,0,5642,8422,5325,0,8039,5325,7994,0,0,7500,8184,8267,0,7904,5578,8170,7994,5237,7706,5476,5661,7839,5688,8068,5453,7706,5325,0,0,0,7828,8149,8427,0,0,7482,8433,5325,5296,5437,5347,5386,8170,8196,5491,0,5381,7500,0,5218,8307,7710,0,8438,5464,5342,7990,8443,8052,7558,5529,8447,7710,5401,8345,7710,0,7521,7924,5396,8451,5688,8149,5564,8217,8211,7843,5480,7653,8211,8073,0,7706,7653,0,7610,0,7681,8149,7706,8365,5651,8456,8427,7521,8461,0,7706,0,5329,0,8267,7864,7768,8438,7994,7768,5320,8438,0,0,8391,5642,5291,5301,7908,8461,8467,8245,0,8149,7957,7542,5708,8473,0,8211,8479,0,5708,0,5237,5564,0,8484,8489,8316,5726,7864,0,5325,5325,5396,5285,8397,8473,8249,8126,7994,5325,5708,7628,8052,8217,8494,8447,8498,0,5301,5329,5453,5396,8277,0,7672,0,5651,7628,0,8170,0,0,8427,0,5476,0,5325,5358,0,8504,0,8010,5717,7692,5381,7622,0,0,8316,0,7839,5358,8509,5301,0,7962,7495,0,5325,8514,5274,5280,7864,7790,0,0,7853,0,8255,0,0,7478,0,8519,5377,5401,5358,0,8211,5529,8527,5666,0,5241,5573,7800,7610,0,7482,0,5241,7542,8375,8077,5476,0,5325,5325,8533,7628,8484,7811,8539,0,8093,5325,8543,7687,7839,7883,8239,5476,7999,5274,7710,7839,7710,7834,7843,8307,7610,7877,0,8422,5496,7663,7710,0,7616,5496,7853,0,8422,5496,5642,8548,0,0,8255,5401,8196,5329,7834,0,0,5476,7877,7592,5419,0,5485,0,7582,0,5676,7653,8539,0,0,8062,0,7710,8438,5358,0,8329,5329,0,5617,5358,0,5358,0,5274,7994,5432,7696,5676,0,5655,7930,5476,7628,5726,8365,5651,8447,7487,0,0,0,5261,7658,7715,5485,8411,8164,8554,8179,0,0,0,0,0,8539,8316,7738,5426,0,7888,5237,8316,0,5377,5261,5407,7972,0,7482,0,0,7811,7548,7706,0,0,5661,5661,8115,7994,0,0,7738,8427,8381,0,0,0,5476,8504,5320,5496,5314,0,7746,5325,7565,8456,7663,8010,5708,8196,5280,7675,0,0,8255,0,8316,0,5337,0,8543,5564,5573,7605,0,5573,0,8560,8566,5291,0,5496,8571,8577,5301,7500,0,7628,8370,5301,5730,7817,7990,8467,8407,5296,0,8582,7592,8365,5564,7867,7930,5237,7839,8334,0,5237,5688,5464,0,0,5442,8589,0,8407,8407,8594,8514,8093,8087,7828,8179,5459,7935,5352,0,8170,5325,8277,5606,8467,0,7774,7706,7628,5401,0,0,0,0,7628,5325,7994,5651,8402,5661,7500,5237,5688,5296,0,7628,7867,8598,7805,7888,7957,0,8334,7658,7576,7482,0,7893,7914,8467,5476,7643,7719,7491,8438,5501,7849,0,7482,8604,8447,5708,8527,5401,8227,7877,7538,8539,0,5329,0,5476,5396,0,8422,7864,5396,7962,8447,5401,5301,5274,7834,7610,8514,5407,0,0,8411,7628,8154,7622,5442,8370,0,5333,5381,7994,5476,7811,7849,8179,5347,7482,5661,0,7632,8093,7542,8154,0,8494,0,0,5717,0,5459,5218,5325,8608,8613,5237,8617,7500,5476,7982,5325,5726,5606,0,7542,7715,0,7790,7482,5671,7904,5274,7790,7565,8387,0,8022,7994,5529,0,8625,8484,7864,5209,8402,5358,8631,0,8577,0,0,7908,0,8370,0,7605,5248,5274,8190,0,5688,8456,7952,7696,7817,7723,0,8149,5301,8033,8589,8073,8494,8057,0,7888,0,8594,7738,7972,8473,7786,0,0,5224,7972,7582,7558,7999,8028,7516,8312,5325,8438,7994,7935,8131,0,8613,0,8201,0,8005,8149,7653,7616,7972,5381,5426,5661,8329,5261,7542,5661,7588,8370,5651,7643,0,0,5296,8136,8022,8543,7511,5381,5464,5347,0,7982,8307,8154,5717,5642,8604,7952,5407,5407,5442,5309,7538,5296,8514,8179,7672,7920,7924,8170,8170,5699,0,0,8635,0,8484,5396,5274,5661,0,7588,7893,8604,7491,0,0,0,8196,5296,8068,0,8322,5237,5476,0,8249,8641,5347,8052,7839,8533,8647,7632,5651,0,0,0,5661,8073,5296,7706,5661,0,0,8073,7542,8282,5285,5291,8653,8022,8170,7864,8077,0,5459,5459,0,7952,0,7706,7805,0,7628,8196,0,7990,5564,0,8539,5274,7952,7849,8658,7653,8316,8073,5261,5358,5329,7491,8447,8663,8589,7757,5329,7853,5401,7990,8589,5655,8663,5401,7790,0,7542,7990,8670,8255,5358,0,7482,0,5261,7588,7730,7872,5314,5329,8093,5496,0,7811,0,0,7977,8282,7982,8307,0,7957,0,5676,7990,5612,5717,5578,5693,8676,7605,7834,8334,5496,0,0,0,0,5476,0,0,5337,8234,5642,5642,5391,7817,7706,8682,0,0,5730,5651,5564,7982,8687,7883,0,0,7834,0,0,5726,0,8227,8391,0,8222,0,0,0,5274,0,0,0,7790,7843,7823,8456,8033,0,0,8694,0,7867,5491,0,8653,5459,5329,0,0,0,0,7628,7658,7877,7800,7746,7811,0,8699,7811,5730,5485,8073,5274,5301,5309,0,8211,8647,8052,7924,0,5274,7588,7994,7935,0,5309,8554,7849,0,8635,8093,0,8217,0,7734,8354,8073,0,5296,5459,7834,8170,5285,7908,8577,7628,5377,0,7478,8062,7675,8052,0,0,0,0,5464,5564,0,0,5471,0,8705,5285,0,7528,0,0,8467,5291,5396,0,7898,8711,0,0,7994,0,5712,7487,8411,5329,0,0,0,7849,5617,7672,5213,8164,5688,8577,7817,5274,5237,0,0,5453,0,0,0,5661,5666,0,8498,5314,7893,7571,5459,5325,7849,5325,0,0,0,0,0,5647,5274,7834,5629,7738,8539,5291,8608,7653,5642,8170,7872,7898,0,8077,5606,8716,0,0,5337,7746,0,0,8716,5426,7706,0,8682,8316,7696,7977,8196,7790,7864,5301,7710,0,7849,5381,5325,0,8721,5730,5671,0,5501,7719,0,5325,0,7723,7849,0,5274,5381,5396,5358,0,0,5655,0,0,5391,0,8022,7972,8543,0,0,0,7843,5358,5274,7898,5491,0,0,7920,7877,5358,7588,8154,8727,7616,8732,5419,5362,7786,7565,0,0,7738,8402,0,8407,8297,8739,7935,8245,7982,8402,5329,5676,5329,7542,8174,5655,0,5301,8340,7706,0,0,5377,8093,5726,5401,5329,5320,7817,5578,8473,5309,8745,0,0,8548,7734,5309,8473,5407,8234,0,0,0,8577,5301,7632,7914,7746,5407,8539,7930,0,5401,0,8329,8751,5699,7610,8397,0,5291,0,5617,0,5661,0,5347,8140,5476,7495,5301,8354,0,5476,0,5325,8756,5661,0,5209,7990,5296,5726,0,0,0,8631,0,8329,0,7914,5568,7867,8302,7500,8387,8312,8443,5337,5209,5401,5309,5367,5476,7867,5651,5285,0,7710,5391,0,7482,5305,5476,0,7719,5309,7491,0,5699,7935,8375,0,5241,0,0,0,0,0,0,8402,0,8345,5519,8179,8732,7687,0,5325,8073,0,0,7843,8422,0,8093,7864,8494,5401,8762,8514,5347,7994,8676,7908,7663,5437,5296,5476,5305,5209,8543,5413,0,5358,5301,5329,7632,0,7883,0,5699,8033,0,7558,8484,5568,5325,8093,0,8670,8509,7872,8287,8766,0,7957,8222,0,0,8222,8164,0,5666,0,0,5726,0,0,7972,8772,8164,8443,7616,7790,8716,8411,0,0,5629,7653,5372,8164,0,0,7734,0,8772,0,8297,8381,8577,5459,5459,7548,0,7672,7883,0,7952,5325,8447,5476,8184,7628,7599,8039,8115,7834,8402,5274,5285,5320,5564,8456,0,0,0,0,8201,8411,7710,7730,5476,8411,0,8217,5347,0,7637,0,8190,7628,7628,0,0,0,0,7738,0,0,0,0,8170,5661,5237,5407,0,7533,7738,8190,5274,5453,0,0,0,0,0,5651,5325,8131,7752,0,7599,5337,8115,5358,5651,0,5661,8010,5476,0,5666,7616,0,5309,5617,7482,5325,0,7588,0,0,0,7599,7746,7588,5476,5437,7719,5325,7632,0,7790,7687,5342,7972,8411,5301,0,0,0,0,0,0,0,8255,8721,0,5655,0,8077,7667,5661,5642,5661,0,8766,0,0,7610,8033,5651,5699,0,8136,0,0,0,7588,5661,8073,5693,8498,0,8519,7935,7653,7883,8052,0,0,0,7914,5651,7877,8514,7653,8402,5291,7849,7893,5391,7935,7914,7555,5564,7800,0,0,0,0,5476,5442,0,0,8222,5666,7990,7828,5358,5342,5717,5358,5476,5274,8447,7616,7605,8104,8527,7500,8647,7478,8239,8777,7967,0,8411,5642,7811,5213,5448,0,8217,5485,5237,0,8039,0,0,7834,5529,5573,7946,7616,0,0,0,5401,5274,7811,0,0,5401,5261,8777,7930,5407,5320,8010,7828,0,7904,7628,0,0,7700,5666,5476,5491,0,7877,8783,0,5309,5362,0,0,0,8239,5712,8484,0,7511,7653,0,5218,5309,7710,8504,8789,0,0,8062,5606,0,0,0,0,8073,7723,0,5320,8402,5296,8783,8307,8625,7864,7994,5501,8772,0,8099,7849,5218,5296,0,7628,8548,7834,5688,7999,7592,7658,0,0,0,0,0,0,8422,7516,7592,7687,0,7849,0,7500,0,0,0,8402,8745,5305,0,0,5413,5301,0,0,7834,5717,5305,7930,5676,5459,8670,0,7478,7834,0,5291,0,7658,7653,0,7828,5325,5381,0,0,0,5661,7986,8010,8154,5237,8077,5651,8297,8498,7482,5651,0,5291,0,8316,5509,0,5301,8670,8571,8795,8282,0,7681,0,7930,7491,7858,7877,7982,8800,0,8345,8104,7542,7930,0,5501,0,5480,5480,7571,8093,0,7952,0,5391,5730,8577,0,7487,0,7930,8504,8762,8073,7779,7839,5358,5325,8548,0,7849,5301,8467,8354,0,7877,8539,5666,5309,5248,7487,7734,5476,0,0,7811,8272,8613,7616,7616,7648,7482,5391,7482,5291,8068,8190,0,0,7867,7605,0,0,5337,0,0,5237,5391,5476,5305,0,0,7982,7675,7478,0,5485,8805,5391,8447,0,7738,0,5573,7877,8647,7757,5386,5386,8811,8131,7628,5730,0,0,0,7982,7924,0,5274,0,8164,7957,7999,8179,8239,8647,8370,8010,7653,7883,8427,0,7738,7605,8282,5407,7628,5314,5337,5301,0,0,0,7877,5401,0,0,8484,7734,5688,7817,5209,7628,0,0,8705,8816,5712,0,8484,0,7500,5255,8411,7790,0,0,0,0,5476,5337,0,5255,0,8222,5296,0,0,0,8201,8211,7986,5647,7478,5301,8093,0,5325,7667,0,7888,5291,5491,7930,0,0,0,0,0,7986,8411,5342,5647,5459,0,0,0,0,0,7888,0,0,5342,5358,5647,7719,8179,5647,7746,0,7672,0,0,8427,5358,5325,8433,0,5301,0,0,5342,0,5320,0,0,7864,0,0,0,0,7723,7632,7482,8068,7786,7628,5666,7930,8028,7858,5401,5688,5401,0,0,5301,5693,8631,7576,0,5426,8608,8010,5352,8126,5480,0,7864,8126,7706,5573,7817,8316,7653,7558,7977,7811,5426,7828,8349,7582,7864,8821,8577,8119,7742,8539,7628,8732,8164,0,5629,8827,8647,8617,5329,8316,5241,5301,7730,0,0,0,0,8625,5476,7653,5661,7632,7511,0,7883,0,0,8772,0,0,0,5337,7823,0,8461,7667,7710,5568,5509,5301,7511,8577,5367,0,8345,7628,8170,8110,8329,0,8451,8179,8833,5218,5564,8821,0,5237,5320,5285,5285,7653,8015,0,0,8839,8033,8010,5325,0,0,7786,7478,0,7867,5320,0,5480,8762,7487,8297,7715,5564,8093,5325,5519,8190,8716,0,5381,5301,8245,5325,0,7672,7914,5301,7843,8845,7482,0,8196,7867,7935,5337,8201,5464,5699,8277,0,0,7500,7898,7990,7706,0,8119,0,0,7576,5464,8422,7982,7930,0,0,0,5325,7786,0,5524,7637,7538,7605,8422,8422,5401,7843,0,0,0,5491,7663,5274,0,5237,0,8422,8179,5514,0,5381,5501,8658,0,5642,8479,7977,5666,7834,5329,8422,7616,7920,7632,5301,5432,0,7790,8126,0,0,5642,7849,8104,7982,8381,5442,5301,5629,7811,5358,0,7935,7924,8245,5708,5529,0,0,0,8297,0,5372,5509,7738,8222,0,7834,0,7605,8387,8010,5337,0,8422,8249,5617,5309,7786,7706,8255,5285,7834,0,8795,7746,5274,8589,8136,0,7811,8816,7558,0,5291,5237,7706,8608,5712,7786,0,0,8010,5726,7877,8598,5358,7790,8851,7786,8062,7811,7632,8560,7977,7768,0,8211,8201,7786,0,7715,7663,7616,8598,7843,5381,8539,7977,0,8751,8504,7834,8762,8539,0,7843,5274,0,5426,7930,8345,5651,7706,7706,8494,5617,7628,7977,7558,5642,7616,7924,5325,5381,7653,8438,7957,8509,5642,7834,7962,7952,5464,7616,8119,5496,5401,0,8190,8732,7935,8447,5726,7622,8154,7628,7823,7982,8554,0,7542,5617,5419,5708,8349,8211,8427,8411,5285,5291,8789,5358,5391,5301,5305,8577,7763,5305,5237,7877,5726,5285,8154,0,7500,7700,8316,5730,7628,0,0,8073,8857,0,8287,0,5381,0,5426,5296,5391,0,0,0,5642,7628,7898,5381,5578,0,5617,8539,7582,7839,5564,8438,5655,5655,0,7834,7757,8062,7817,0,7672,8625,7986,8402,8048,8451,7834,0,5381,0,8039,5612,5509,5241,8077,7757,8277,7738,8402,0,8234,0,0,0,0,7746,0,8438,8170,7628,0,7999,8115,0,0,7533,7849,8131,8062,8149,7478,8287,0,5329,8140,5401,0,8255,5320,0,0,8433,0,5296,7588,8519,0,7610,0,5386,8772,7883,7994,8811,8245,5301,0,5274,7533,7986,0,5453,8359,7616,5274,5347,5305,7904,0,5564,5358,0,8154,5476,7511,0,0,5676,8154,7558,8307,7864,0,7834,8863,8762,7706,7628,7768,8154,8077,7946,8170,5617,0,0,5352,8391,8340,7957,5301,8104,0,8402,5261,0,7706,0,8277,8093,8239,8705,7628,5386,8287,7706,5476,8184,0,5407,8387,0,7805,0,0,0,5358,7883,8312,8184,7972,8783,5606,5606,8110,5476,8577,8345,7849,7723,5301,0,5209,7588,8467,8387,8762,5509,0,7582,5337,5296,5407,7872,8211,8170,0,0,8345,5342,8277,7643,8322,0,7888,0,8136,8179,5377,7500,8484,5464,7706,5381,7790,7834,0,7972,8422,0,7663,8334,8777,5629,8869,7643,7706,5573,5612,5314,8417,5647,8443,7957,7622,5301,7800,7786,8433,5396,5712,0,5401,8479,5261,7839,0,0,7972,7904,8402,5688,0,7610,0,7893,8039,7558,8484,7864,0,5291,8062,5285,8498,5642,8316,5496,5337,5320,5642,5717,7811,7843,5291,8033,0,0,7914,0,8391,8391,0,8519,8267,0,5309,8287,0,8772,0,7723,0,7558,0,7628,7558,8316,0,8255,0,8170,5347,5476,8164,0,0,7487,0,8048,0,8249,7952,0,0,8370,8255,8287,5699,8217,5301,7904,5381,0,7632,0,8267,0,7982,7482,0,7972,5401,0,8811,5407,7576,7605,7692,8136,8217,8115,7924,7605,7817,5476,0,0,8519,8149,8504,8164,0,8136,8604,0,0,5476,5291,5358,7558,7667,5442,5296,7710,7972,7834,0,0,8099,5224,7999,7653,7628,5491,7999,7893,8302,8093,7738,0,8211,7491,8222,8005,7795,7823,5717,0,7710,0,5612,7839,7576,7658,7908,8196,0,8762,8604,7811,0,8159,5241,7542,0,0,7994,0,0,5237,8136,7734,8359,8170,0,0,0,7533,7738,7542,0,8164,7632,7982,5448,0,7734,7763,0,8851,8349,5320,8093,5666,5419,8873,7972,7757,0,8589,7982,8010,5712,5342,5407,5629,5661,0,5305,8010,5666,0,8554,8093,0,8827,8267,8249,7628,7972,7706,7883,8154,7994,8772,7719,5661,5448,8022,0,7511,5476,0,5666,5301,7893,8577,7516,5274,5642,0,5432,5274,8261,5622,0,7883,8411,8093,8062,7706,8239,8282,5651,7982,7982,0,8604,8456,7723,8391,8484,8201,5712,8589,5712,0,0,5301,7768,0,8869,7521,0,5391,0,0,5347,5464,8484,7834,0,7730,8641,5661,5578,8514,5237,7800,0,5464,8772,7675,8387,5358,7632,8010,5301,8402,5496,5442,8539,8582,5573,0,7877,5651,7542,5688,5655,0,0,0,7786,7834,7710,8625,7715,8073,7473,8845,5642,7790,7599,0,0,0,8613,5291,0,8438,5419,0,8427,7571,8354,5224,0,7576,5358,8504,7628,0,8287,7696,5476,5651,8745,0,7599,5325,8201,0,5432,8010,5642,5301,8010,5726,5564,7696,0,0,0,8154,5309,7706,8170,8277,7935,7930,8816,5476,7500,7511,8329,5564,0,8566,8805,5413,7687,0,0,0,7742,8851,8845,5629,7952,5296,7738,0,5642,0,7706,7653,7672,5651,5651,0,5329,8010,7742,5651,5381,5564,5651,5464,7588,5642,8077,5309,5401,5358,8745,5377,8093,8857,7972,7482,8479,5442,7774,5651,7834,5347,5248,0,0,8721,5617,7632,0,0,7632,7605,0,5442,5676,7592,7696,5476,7872,7774,8504,5564,5347,5342,7628,5642,7828,8093,7605,7738,5255,7542,5291,7805,8201,7786,8879,0,7653,7653,8711,7982,8062,8539,5564,8190,5651,5712,7843,7786,7999,7738,7628,8548,5301,8239,7478,5666,5325,5666,5301,0,8073,8608,8005,5480,0,0,7999,7952,0,7500,8716,8287,7888,0,7582,7952,8073,0,7811,8190,8179,5301,8422,5464,5529,7982,8222,8297,7681,5564,8239,0,5476,5320,8312,7849,8140,0,8136,8345,8783,5329,8427,7738,0,0,0,8255,7588,0,8721,0,0,5573,0,7696,7696,8699,7706,7487,5573,0,7834,7898,8345,0,8884,8519,7904,0,5377,7653,7571,7904,5578,8631,8119,5358,7696,7605,7478,7752,7972,7576,5329,7752,8234,5688,7986,5437,5448,7746,7972,7706,8340,8647,5401,0,7610,7588,7706,8467,8527,0,5291,8539,7858,8721,8816,8504,5655,5671,7920,8772,8783,8104,0,8104,5305,5432,7706,5391,5358,5291,7487,0,5396,8136,5296,0,7696,0,8711,0,5237,7972,8504,8170,5459,5578,8670,8249,5358,7653,7628,5274,0,8766,8179,8201,0,7706,5325,5453,5329,7592,7653,5476,7774,8104,7972,5209,8245,0,5606,7576,0,8104,0,5578,0,8110,8888,5325,5476,8762,5291,5717,5325,0,0,5612,8893,7521,5464,7706,7605,8451,7710,5534,0,8898,7786,8509,8010,0,8340,7972,7877,5666,0,0,5578,7628,7952,5464,5309,0,8039,5514,8772,0,5237,7800,7888,5708,7920,7478,7663,8249,7920,8249,7924,7972,8073,7616,7994,5386,5347,7834,7877,7768,5655,7734,0,7658,7893,5320,0,8903,5496,8297,5606,7710,7738,7977,8598,5464,8239,0,0,0,5309,7864,0,5564,7888,0,7864,0,5642,8539,0,8539,8201,7800,7935,8099,7706,7715,8179,0,0,0,0,5337,0,8245,0,7588,5564,5325,5419,8340,8073,8909,7935,5564,8201,7478,0,7924,8391,8334,8211,0,8249,8340,7681,8509,8126,7675,7528,7706,0,0,8670,7946,8816,7675,8033,0,8010,7482,8608,8297,8915,8048,8010,5726,5391,7849,8411,5491,5305,8919,0,0,0,0,5496,7888,5337,8052,0,0,5274,5666,5309,7706,0,5712,0,0,0,0,7834,5476,7482,7706,5578,5237,5476,7491,7864,0,7972,7653,8287,0,8104,5224,7908,5442,0,5480,7723,0,8484,0,8140,5564,0,8249,5301,8577,7738,0,7786,7779,0,7986,7828,7839,0,0,0,5325,0,5496,7790,8762,0,7637,7872,8727,8821,0,8277,5426,0,5476,5712,0,7849,5325,0,7653,0,5301,5209,8443,5642,0,5301,7706,8811,5301,0,0,0,0,7588,5442,0,5661,7930,7500,5485,7734,8093,7521,7571,7757,8104,8745,7823,0,7672,7710,8670,7628,5396,5301,0,0,0,5301,0,0,8217,0,5476,8381,0,7982,5564,0,7558,7823,8604,0,5377,8196,8473,5342,7994,0,7719,7663,7864,5381,8739,7893,0,7482,0,5514,8307,5296,5661,8115,8772,8227,7972,5476,5564,7864,0,7667,0,5496,5274,7800,0,5358,8093,5381,8005,7977,0,0,7843,0,7893,5329,7687,7849,0,8447,7616,7675,8909,8149,8115,8005,0,7542,8170,8647,8282,8307,7516,5651,5314,5661,7982,5651,0,8925,8827,5717,7823,7605,7834,7653,0,5476,8375,8354,8297,8093,8929,7628,7555,0,5476,7555,8196,7542,5367,5573,5309,5651,0,8136,7653,8443,5367,7834,5647,0,0,5612,7482,5248,7576,8211,8467,7555,7622,5514,5509,5301,0,8136,5391,5358,7839,7898,0,5676,7521,7952,5213,0,8329,7687,5642,0,0,0,7864,7924,7681,5337,5291,5301,0,5301,0,5325,7982,8427,5564,8227,8721,8170,8249,0,7558,8711,0,5301,0,0,0,5476,5224,0,5730,5509,7710,0,5717,7653,8073,0,7511,8179,8179,5476,8190,7834,5612,5524,5218,0,0,0,7628,0,5578,7538,0,0,8617,5309,8721,7734,7516,0,8805,0,7986,5476,0,7839,7834,5381,0,7994,5274,8381,5564,5717,0,5305,5564,8716,5274,7752,5301,8179,7763,0,8447,7637,0,7500,7555,8349,0,8795,0,8560,0,0,7628,7994,7605,0,0,5476,0,0,5564,5358,7605,5209,5320,5367,8447,0,5285,8190,0,8417,8164,5459,7730,0,0,7628,0,0,0,5329,7653,0,5476,8397,8427,7588,5509,8447,8721,5291,5413,8179,0,7888,7706,5642,7952,8699,5730,8329,5661,0,5296,0,5661,8073,7990,0,7500,8126,0,5573,0,5377,5573,7710,5453,8721,8527,5661,0,7888,5291,5296,8833,7730,7888,8093,8249,0,8039,8249,7610,0,7616,0,8721,8140,5301,8762,0,7864,0,0,0,8407,8407,5419,5401,0,8670,5237,0,7994,0,0,7849,5337,5329,8277,7742,8119,5676,7706,0,8267,0,7706,0,8873,5325,8349,8519,8184,0,5301,8093,0,8033,0,5274,7982,0,8443,5491,5491,7643,0,7935,5377,0,7495,7972,7511,7893,5285,0,5708,7516,0,8705,8272,7920,7528,5261,5661,8631,8272,0,5237,5661,7920,5642,5642,7555,8052,8566,7482,8010,7823,7710,7599,8467,5367,7576,8467,5391,5651,0,5717,8174,7893,7982,8447,7839,5651,8411,0,8136,7628,7864,7972,8566,7500,7672,5296,8329,5386,7653,7977,8307,5396,0,0,8140,5237,8022,5651,7528,7478,7723,5241,5442,5426,8484,8170,7643,5377,7800,5407,7706,8087,5666,5509,7935,8179,5381,5337,5296,7687,7588,5717,5386,5237,0,0,7710,7994,5305,8234,0,0,5372,5296,8375,8239,8149,0,0,5280,5708,8077,5342,8349,8772,7528,5485,8345,7738,7877,7994,8641,5325,8033,7935,7500,5274,7528,0,0,0,5386,0,7834,5688,8062,8022,7667,8239,8170,0,7800,8577,0,5573,7710,7521,0,5712,5320,8604,7710,7786,7628,0,0,8239,8149,5320,5578,0,0,0,0,7864,0,8302,8548,5291,7667,0,7957,7994,0,7605,7986,0,5578,7999,0,5476,0,8447,0,0,5476,8052,8387,7811,7800,7800,5726,8149,8052,0,8514,5274,5655,5320,7571,7605,8131,8190,5476,5377,0,5309,8179,0,8201,7779,7972,5325,5509,8721,0,8745,7663,5564,7952,8131,5274,8821,7972,8473,5476,5612,5459,7952,8119,8329,8033,5617,8745,0,0,8104,8062,7582,7558,7994,5459,5320,0,5325,8925,7706,0,5564,5708,5564,8312,0,8772,7687,7935,5726,5337,7849,5730,7952,7864,5419,8267,7853,5688,0,5564,7571,7982,0,8073,0,5291,8539,5291,5564,5464,0,5218,7805,5612,7710,0,0,0,7800,8936,7706,5407,5358,0,7972,7605,5726,8427,5325,7828,0,5301,5301,7986,7768,0,5564,5496,5629,5391,8560,7867,7706,8073,8136,7853,5573,8140,8354,8539,8033,5573,5358,8211,7904,5606,8438,8577,8527,0,5688,7681,5564,8144,5407,0,0,0,5655,5688,8451,7710,8005,8577,7898,8762,7478,0,5291,5329,8227,0,5573,7779,5606,8653,8227,5291,5647,5396,7893,5358,0,5280,8494,5325,5726,8005,7982,8140,5342,0,0,5688,7920,7930,8631,5285,8164,0,8140,5459,7710,8451,8249,8190,7888,5432,5578,5573,7877,7952,8676,7967,8919,8277,8909,8354,7768,5320,8093,0,8196,5564,5617,7681,0,7663,0,7723,7757,8370,5261,8082,8427,7610,8484,5301,0,8438,8164,8354,5291,8756,8010,7706,8062,5564,5329,8062,5480,8438,5606,5676,7706,5241,5485,7817,5606,7843,7790,7482,5329,8267,8170,7920,0,5661,8411,0,0,8164,8940,7478,5496,7786,7877,5352,7800,0,0,8617,8946,5622,7877,0,8519,5342,7930,8509,0,7972,7994,8438,8093,0,8028,8093,7706,8354,0,5476,5237,8033,0,8164,8033,8789,5337,5325,8073,7565,0,0,8140,8539,0,7628,5717,7500,7672,7849,0,8126,7817,7592,0,8387,8293,5337,8022,5661,8777,5642,5320,7834,8952,8239,0,7628,8073,5342,0,7834,5666,7516,7658,8762,8354,5325,0,8267,0,0,0,8170,0,8033,0,7521,5274,0,7952,7628,5666,0,5647,8033,5426,5688,8560,0,8903,7774,8539,7834,0,0,0,7877,0,5301,5612,7538,7538,0,5629,8456,7957,0,8451,5647,7864,8179,5381,5377,5325,8903,5285,5358,5666,5476,8104,8104,8312,5301,5437,7658,8312,5606,8170,7500,8010,0,7500,7696,8154,0,8297,8048,0,0,7779,5377,5651,0,0,8433,5712,7482,7746,5647,8005,0,0,5651,8164,8039,0,5651,8170,7920,5309,7599,5325,8249,5407,5529,8222,8811,7877,5301,5301,5688,5471,7616,8267,8033,5325,8297,0,7672,0,7952,8354,5296,7920,5496,7888,7877,0,8739,5617,5426,5534,5391,7710,7491,7653,7893,7491,7834,8857,0,7482,7888,5274,0,0,7867,7877,7653,8249,8354,8140,7542,5309,5261,7715,0,0,0,5241,7972,8104,7628,8711,5509,5442,0,7588,8959,5606,8739,8140,5342,0,5381,5407,5708,5285,7491,0,7491,7610,5372,8222,5401,0,7811,7672,7994,5274,8964,8073,5241,7605,7904,8249,5661,0,0,0,7675,5301,7687,5651,0,7491,0,0,0,5661,0,0,0,5261,0,0,5261,5291,5325,7565,0,5453,5708,5573,7478,8721,5661,8805,5661,8903,0,8772,0,5367,7500,5358,7487,8154,5241,7478,0,8489,8663,5391,7811,8144,5564,8663,5274,8196,7867,5347,0,8387,0,5699,0,8104,7972,0,8005,7542,8560,5476,8447,5241,8663,0,5391,0,7839,5291,7500,8267,0,0,5573,8479,7828,5717,5377,8062,8447,0,5301,0,5274,0,5237,8190,0,0,0,8277,0,7715,7558,5407,5358,7706,8093,8052,7898,5629,8539,5564,5274,8969,0,0,0,7734,5296,7994,5476,7491,0,7935,8052,0,0,5274,7877,7643,0,7653,7839,0,7706,8005,8110,0,0,7504,0,7982,8402,0,5699,8539,7935,0,0,7834,8239,5358,0,0,0,0,7555,8222,7616,8062,7839,5280,5377,7628,5666,8222,0,5325,5564,5274,8433,0,7719,0,0,7628,0,7663,7653,7883,5717,8539,7982,8334,0,0,8093,8349,8349,5401,0,5529,5655,8312,5564,8417,5237,8217,7883,8267,5274,7482,0,8217,5413,7982,7893,7893,7542,7930,0,0,5391,5606,8427,5407,0,5296,5564,5509,5305,8255,8239,0,7763,5717,8062,7628,7706,7888,8608,0,7904,8539,8190,8539,5358,7576,8174,8184,5476,0,7977,8245,7888,5237,7883,7681,5661,8227,8467,8721,7779,5413,0,5329,5325,8190,5320,0,5320,7982,8267,7877,0,8164,7864,0,7904,8527,0,5578,5501,8721,8201,5717,0,5464,8762,5377,8073,7542,7986,7610,7994,8427,5347,0,8136,5358,5480,5285,0,8201,8170,8312,5367,7994,5564,7849,8010,7877,7982,8925,0,0,0,0,0,8010,5459,8062,7710,8222,7482,0,0,8073,8821,5442,7616,0,5671,0,8267,5655,8387,0,5730,8438,8456,5717,8411,0,8052,5651,8119,8682,5358,7888,8104,8976,8589,7558,8297,8982,7790,8073,8422,7920,5564,0,0,7516,0,8514,7478,7706,7972,8033,5367,7849,8940,0,5730,0,5564,7648,7643,8456,7542,0,5237,8391,8005,5717,0,5708,8589,8617,7957,5655,5296,8179,0,7516,8136,7653,8762,5309,7746,8010,7864,5386,8062,8062,5529,5529,0,5358,0,5337,5476,5529,7730,7628,5301,5301,8467,8217,8052,7867,8873,0,0,8039,8201,7994,7994,0,8345,7500,8987,7946,7924,0,5642,0,5358,0,7946,8272,7511,0,7605,0,7706,8783,5476,8307,8467,8140,0,8073,8179,7924,0,5476,8184,8670,8543,0,8282,5305,7663,8869,5617,0,7972,7924,5407,8467,8217,5377,7994,8329,7972,5476,8504,5391,7982,8884,5476,5407,5342,7616,8222,7982,7982,5661,0,7924,5401,0,8869,0,5407,7605,7616,7834,5309,8519,7883,0,7908,5476,7491,5407,8869,8381,7839,7542,5529,8073,5651,8839,5651,7779,7706,7706,8087,5358,8073,5413,5432,8447,7994,7811,8010,7706,7511,5564,8608,8608,0,7706,8658,5480,5476,8073,7858,8073,0,8190,0,0,7628,7710,5329,5476,5301,0,5453,5237,7478,0,5666,0,7999,8397,8287,0,8345,7696,7628,8873,5564,8302,7811,5573,5448,0,5358,5459,0,8539,5301,0,7653,5437,7786,7558,7957,5305,5651,8349,5708,7883,7605,5464,8010,8919,8316,0,8762,7982,7994,5325,7710,7516,0,8334,5407,8077,7632,5325,0,0,8077,5476,0,5509,8387,5280,8073,0,8093,8811,8154,8370,0,7946,8005,8433,0,7843,5358,7811,8312,7742,5407,5377,5342,0,8217,5708,5407,5305,7952,7908,8345,7538,8745,5501,0,8898,8052,7888,0,8716,0,5381,5564,8994,0,8227,8077,7800,0,7839,0,8144,0,8539,5564,7681,8443,8494,7893,7774,5352,5391,0,8110,7706,5496,7533,8073,7800,8548,7839,7952,5325,5347,0,8249,7746,7533,5329,8498,0,7511,5476,7752,5301,5301,8833,7605,7643,7914,7710,5426,7599,0,8154,7920,0,5712,7935,5712,8783,8170,8417,0,8447,8613,8093,8387,0,7706,0,0,7898,0,8115,5381,7628,7528,7930,7904,5480,0,8255,5337,8539,5381,5305,8119,5261,7706,5261,5651,7883,5476,8845,8845,7853,0,5529,5476,8805,7681,8711,7511,0,5301,0,5329,7500,8451,7904,7511,8170,8427,8170,0,8443,5274,7972,0,0,7972,0,0,7986,0,8845,7864,7715,7548,8539,7834,0,8845,0,7843,7628,0,8136,8370,5396,8427,0,7957,7877,5459,7994,8190,5372,8438,0,0,0,0,0,5480,8433,8739,8909,8028,8149,5329,5476,5661,7834,8745,7734,5442,5274,8721,5381,8277,8249,7491,0,5301,7482,0,0,8909,7628,0,0,5496,8762,8062,0,5237,0,7706,0,8467,5325,8267,7565,0,8560,5655,7982,0,0,5381,8456,8811,8190,0,8479,8255,7839,5459,7904,7681,5509,7839,7972,8126,7478,8222,7883,7904,8316,0,0,8484,7952,7839,5337,8467,8149,8484,8998,8028,7864,7864,5426,7849,7834,5647,8201,5413,5568,7805,0,7706,8467,0,0,0,5730,5464,0,5676,8005,7864,5325,5305,5248,8222,7478,5655,7500,8245,7710,0,8827,7538,5568,7834,8179,0,7849,0,5347,8316,7628,8560,5386,5301,5501,7734,8093,5708,8190,5476,8190,8249,0,5666,7834,8222,5459,8093,5391,5285,8577,5485,8170,5377,7920,8461,5285,8359,8201,8539,7811,5642,5301,5651,0,0,0,8504,0,0,8647,5329,8093,5476,7774,5261,0,5320,5480,5305,7849,8964,5224,5352,7643,0,8039,8201,5301,7877,8126,8451,8249,5612,8322,7972,8582,5358,5708,8249,5274,0,7853,0,7994,0,0,0,8149,7877,8447,8447,5301,7582,8170,5407,5564,8302,7687,8272,5407,8789,8387,5485,8811,8539,5407,5712,8245,5407,5617,5661,5437,8211,5301,8234,7628,7738,5578,7924,8641,0,7849,7757,7994,8267,7687,5726,0,0,0,8805,7786,0,8936,5564,8964,7738,7738,5314,7653,5255,7849,0,7576,8073,7511,7555,0,8174,8539,8302,5377,7908,5377,7706,5325,7710,8994,5309,7990,5301,8170,5726,7986,7786,5280,7706,5274,5407,5391,5274,7663,5396,8170,8115,5642,0,5325,5496,8795,0,0,7834,0,0,8316,7823,8354,0,7710,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5476,5693,8898,7706,8987,5367,0,5305,8015,8589,8987,5367,5325,8201,7628,7746,5671,5442,5442,5622,7867,7920,5391,5391,5688,5224,7491,8827,7582,7487,7558,9003,5688,7779,9003,5337,7779,7834,5224,8940,8234,8484,5717,8387,8322,7548,5325,5381,8527,8721,8732,7877,7516,5314,7605,0,5509,7883,7994,7605,5485,5301,8170,8959,5564,5476,5476,8716,0,8484,8484,5578,5642,5476,0,7972,7478,7687,7982,8048,5333,7548,5255,8334,8255,7982,8625,7558,7558,5476,7482,0,7763,8484,7706,7491,5237,7521,5671,8484,0,0,5320,0,5391,5325,7700,7977,0,5391,0,0,8349,8375,0,8613,5529,7834,5564,8302,8136,8811,0,0,0,0,8811,7710,7952,8811,8375,7516,5476,5291,5333,0,7628,5241,5391,5391,7696,5573,7628,7628,7628,8267,7982,7706,7478,5485,7487,5342,8682,8682,8387,5661,8387,7706,8387,5325,7853,7599,8756,7738,5285,8370,5476,7877,7946,7715,0,7521,5485,8805,7779,7521,5485,7491,8196,8073,5337,5661,7883,5401,7888,7994,8504,8504,5325,0,7599,5476,5391,8504,5333,5693,8115,5309,7734,5442,7904,8015,5309,5381,5224,8705,8827,9008,8589,8099,0,8777,5209,5391,7738,8015,5564,5274,5274,5480,8062,8316,8504,7542,8811,5476,8539,5491,8093,5476,8783,8227,7730,8987,5476,7715,8514,8504,7977,8783,7924,7542,7548,7920,5509,7478,5407,5381,5642,8527,8777,8504,7599,5501,8539,7565,7548,7706,8456,7628,7757,5471,7752,5476,7528,8756,5476,5325,7663,7478,5325,5564,8048,5519,5309,7930,7883,5564,5629,7548,5337,8154,5296,7628,8402,8732,8589,7994,8732,7935,8387,5274,8987,8227,8099,8777,8329,7528,7994,7605,7710,8190,8293,8073,7786,8447,8447,5661,8282,7500,8093,7576,7914,5726,7487,5413,7487,7977,7920,5476,7487,7663,5241,7828,7653,8349,7883,7605,8201,5726,5358,8670,7839,7994,8539,7605,7571,5337,7924,5377,8427,7849,5358,5480,5617,7628,5476,9008,7571,5568,8381,8316,8447,8190,5726,5218,8631,7542,0,9012,0,8456,8359,7849,8149,7521,5717,7924,8126,8048,8391,7977,7696,5224,5325,8727,8154,7952,7768,7681,5285,7839,5476,5391,5426,7914,5480,8795,7972,5671,8277,5476,7710,7473,8687,5301,7482,5391,5651,7605,7500,5337,8345,5329,8711,7696,8099,8316,5496,7710,8329,7817,7576,5476,8613,5407,5367,7977,5437,5329,0,5285,5655,8604,8255,7908,7637,8381,8789,5309,7478,5730,7592,7558,5655,7571,5442,8196,5329,8170,5320,8805,7914,5480,8073,7823,8052,8411,8422,7628,5237,8140,7864,5688,7500,8582,7692,7478,7667,5476,5564,7843,8443,8255,5301,5218,7643,5485,5274,8589,5213,7588,5564,5237,5301,5564,5255,8222,7628,7487,5367,7528,5519,7628,5377,7935,5442,0,7834,9016,5301,8277,7487,5407,5519,5564,7849,8170,7675,5213,5407,8473,5573,7893,8527,8387,8345,7930,7628,7528,5358,5407,8227,7710,5224,8365,5642,8402,9016,5509,8277,8777,8548,5717,8721,7930,5606,5320,5320,8514,8479,8772,5291,7805,5426,5352,5629,5730,5476,7706,5377,8811,5485,5381,5342,8227,5381,7565,7972,8571,5676,8548,8170,7542,8447,8099,5314,7994,7632,8022,8873,7643,7582,5209,8543,7478,8170,8716,7774,5407,8533,7491,7972,8302,8745,0,7616,7558,5407,7834,8699,7548,8104,7977,5381,7994,7628,5224,8893,5377,7994,7858,7834,8527,5629,8494,7864,5661,7935,8119,8795,8539,7571,5496,8805,7930,7491,5464,5642,8427,5442,7834,5337,5407,7500,7687,7839,5564,5358,7972,8548,7746,5325,5476,5661,8329,7487,8676,8604,5655,7742,7853,7853,7930,8925,5329,5381,7994,5501,8227,7952,5448,7972,7588,5367,5564,8467,8164,5301,8613,8267,8131,7538,7898,7828,5629,8052,5381,5237,5261,7542,5291,8777,5573,8589,7930,7675,5218,5642,8772,5612,7924,8048,5224,7977,5491,5437,5629,0,8888,5573,7495,8179,5666,8402,5218,5372,8548,5352,8022,5708,8732,7628,8533,8694,8987,8322,5485,7710,8302,7653,8015,8745,7834,8539,5237,5329,7930,8647,5309,5401,5329,7800,7542,5274,8772,7616,7582,5622,7521,5261,8255,7592,8422,9021,7734,5237,8149,8227,8687,8239,7706,8919,7877,7994,5325,8010,5296,8732,5407,7883,5285,8484,9026,5501,5274,5291,7864,5285,5407,8316,7516,8073,7786,0,7588,5274,5419,8438,7491,5309,7977,8255,7920,8527,7576,7663,8159,5476,7667,8789,7877,5476,8903,5485,8190,7908,5407,5573,7883,5285,8302,5437,0,8888,8345,8613,7658,5442,7637,5347,8447,5309,7542,8249,7478,8381,7723,8447,8227,8577,5666,5329,8582,8222,8762,8473,8365,7972,7487,5337,8052,8033,8033,5301,8909,7994,7610,5573,7877,8261,5320,5296,5301,7632,8365,7495,5629,7834,5666,7700,7696,7478,8267,8365,8467,7504,5248,7999,7504,5274,8687,8217,7990,8217,7746,5647,8227,7696,8217,7696,7528,5647,7487,7834,7834,5391,5391,8903,7542,8307,5501,7790,7914,8307,8126,5485,5301,5464,8613,7599,8028,7768,7779,7628,7904,7817,7511,5237,0,5347,7817,5606,8721,5426,5224,7706,8170,7828,5209,0,7924,5407,8087,5325,5476,5325,7877,7592,0,8297,8028,8467,7790,8461,8297,8604,7592,8604,5437,7795,7592,7790,7576,8711,8131,7500,7746,5651,8164,7482,5661,8795,7667,8789,5476,5651,5391,8721,8249,7548,8170,8467,8391,5568,0,5564,5661,5651,5224,7582,7658,8461,8527,5224,7982,5248,5291,7982,8582,7491,8873,7533,5564,8438,7582,5274,8577,5367,5407,5485,5320,5712,5647,7706,7786,9032,8022,5485,7779,8745,7757,8093,7582,8811,5407,7482,8694,5476,5301,8777,8391,9038,8402,7487,7888,5309,7516,7516,8381,5237,8762,5325,8010,8010,8010,8527,8170,5573,0,8527,0,0,5564,8527,5255,8527,8509,5464,8509,8811,8919,5255,5726,7504,7908,5647,5708,5573,5325,8903,7653,7653,5372,8479,7757,8479,8504,8504,8519,5501,7867,5476,5325,8795,7542,8879,5573,7752,5325,7883,5426,5396,5509,5291,5301,8354,8577,7511,8115,8461,8519,5564,5573,5726,8170,5261,8438,8093,7548,7533,5432,5381,5381,8222,5301,5261,5432,7877,5485,7795,8682,8479,8519,8005,7692,7888,7696,7972,9045,7768,5496,7839,7990,5381,7952,7839,7952,8509,7888,5325,5377,5485,7957,8682,8115,8467,8451,5529,7990,7986,7542,5496,8519,7795,5407,8451,5301,5377,7893,8057,7877,7706,8519,5209,8461,5509,8073,5325,7888,8745,7834,5314,5407,5325,8073,7834,8170,8154,8119,5407,7888,8676,7478,7795,5564,8119,5407,5717,7687,8509,8519,5676,7877,8641,5329,5301,8998,5261,8647,5568,5285,7795,8255,5291,5396,7687,5314,5401,8170,7920,7511,7952,5285,7952,5407,5407,5629,8154,5325,5407,5476,5407,7972,7877,8498,5305,5301,7605,5301,8387,7768,8282,7817,7977,7478,8349,8577,5309,8946,5661,7972,7582,7605,8293,5381,5726,8670,5476,7605,7622,5301,5485,8149,8149,5676,5568,7924,8631,7675,8711,8582,5381,8577,7849,5391,7990,5485,8052,8073,8438,7710,7843,5218,5218,7746,7990,8329,5676,8745,5329,8057,8249,8277,5333,8509,7746,7582,7500,7500,8795,7478,5476,8329,5534,8119,8149,7715,5329,8647,5391,5325,8196,8322,5285,7768,7924,5476,5291,8010,5676,8316,8170,7883,5661,8349,8329,8329,5329,5301,7935,8261,7768,8222,8670,8267,8484,8222,8131,7478,8267,0,0,5671,5671,8222,8827,0,7504,5352,8170,8272,5717,7734,8345,8174,5564,7817,8245,8484,7723,5358,5396,7930,5386,7710,7565,8484,5476,8925,5419,8756,5419,8582,7982,5367,5726,8411,7952,7867,8205,8582,7893,7982,7853,7952,7952,5296,7883,7952,5401,5401,7940,8762,8484,5726,5237,7920,5726,5476,5280,7834,8411,8447,5726,5391,7528,7542,8184,7730,8443,8119,7478,5296,8282,5391,5237,5509,5396,5661,5509,7930,8443,5314,5661,7883,8349,7823,7883,5325,8073,8952,8201,8582,8411,8201,8427,5280,5329,5337,5329,5237,7795,8494,5661,5381,5381,7994,8608,7723,7972,7790,7482,7994,8670,5325,5699,8375,5391,5676,5661,7500,5309,5699,7478,5325,7864,8745,5237,0,7653,8427,7864,8805,5301,5578,7653,5301,8387,8387,7834,5617,7972,7687,8334,0,7849,8387,7972,8604,8334,5377,5301,5617,5730,8805,8397,8451,7893,8467,8604,8467,7521,7834,5301,5291,8302,7828,5573,8484,8196,5708,7952,7834,7487,5301,8227,5347,5301,7834,7834,8467,7487,7817,7516,5688,5726,5726,0,5666,8762,5274,5622,8589,8179,8179,8179,8179,7663,5491,5337,5496,5325,5337,8617,8010,8087,8625,7904,8048,8893,5391,5320,5314,5726,8087,8411,7500,7977,7533,5448,5524,7994,5448,5459,7872,8827,5568,7786,8170,8093,7795,8272,5568,7972,5285,7999,7904,5693,7990,7658,7710,5391,5337,5688,8312,5661,8052,7487,8772,7710,5333,7757,5325,0,8062,7763,7500,8211,7710,5717,8190,5642,5209,7849,5325,7757,8879,8316,8391,5730,5301,5647,7521,7687,5367,7491,5329,9051,7538,7742,5529,5476,7667,5442,7516,8068,7482,7893,5358,8196,8196,5381,8201,8998,7904,5471,5501,7864,7653,8805,8560,8598,7706,8062,7972,7914,7478,7478,8783,8884,5529,5237,7805,8307,7752,5730,7742,7478,5524,8387,7667,5329,7864,40,5712,7663,7706,7558,7478,5524,5564,915,2998,7710,8119,8884,8068,5564,5476,5491,7742,5301,8126,8467,7908,3123,8322,7478,1325,3137,7768,9054,7752,8447,9059,8093,8297,5337,8539,7576,3194,7576,8964,5237,2957,1400,5255,5209,7786,5209,7994,7500,7849,5386,5367,8456,2806,7675,7914,7982,8391,8245,5726,8170,9062,8925,855,7888,670,8174,5358,5564,819,2654,7687,7849,8370,8484,5218,5564,5699,7576,50,9012,7786,9012,7571,8201,7610,7582,8381,0,7487,5274,8154,7706,7696,7864,8687,7687,5237,5476,8577,5209,7763,5651,7972,5642,5325,7576,5717,8952,8365,7675,7990,5296,826,8359,8272,5274,2675,8190,5519,8082,7834,8149,5476,7663,8751,7914,8316,8062,7504,7710,8631,5201,5437,842,2950,5213,7521,7663,8727,8582,8387,8245,7675,5358,8354,2792,5396,1620,7908,7888,2537,5325,8789,8711,9067,8052,8467,7610,855,8211,5717,7864,7710,8670,5301,8136,8443,2665,7692,7675,852,1783,8073,5578,7687,2816,836,3009,5333,5342,2830,8201,7653,7946,8845,8851,5717,5337,7834,7786,7786,8126,7653,5612,8104,5476,7663,7977,5647,5274,36,5301,5237,5629,7571,5688,124,7478,121,8387,8307,28,60,8196,7538,32,4535,905,1518,8149,139,5612,5372,7811,5030,8302,5325,64,371,8527,106,7982,7706,8087,7994,9045,8227,7696,5301,8322,8345,5381,9067,8184,7628,2381,8277,8302,162,5480,7982,7663,7576,26,8800,5314,5314,8987,8539,7946,5347,9051,7675,7521,8068,7478,7752,8402,8302,7982,7706,32,8272,7883,7883,852,1775,109,1318,8287,7849,8387,7706,670,8456,7779,5274,7920,8302,7986,8115,2409,2418,8994,2440,7719,5622,8077,2468,2475,2213,2216,7768,2229,8073,5693,7843,7675,2261,2265,7710,5377,8345,8484,7883,7990,5218,7994,7823,5261,762,56,7986,5381,5730,7653,5459,7576,7637,8082,9071,7628,7482,8365,5642,8494,7746,7982,8267,8732,5296,7811,7811,5237,7849,5325,8005,2792,7994,8302,7500,5464,8762,8077,8190,7779,7628,8940,7710,8255,7834,7883,7440,8179,5301,9067,7687,54,7622,7616,9054,0,8005,5237,7628,5381,7957,7692,5514,8154,5377,5642,7849,9051,5519,8322,7719,5218,7588,8062,5661,5476,5612,7538,5496,8370,7990,7738,8940,5606,8613,5448,8631,5325,8334,7478,5274,5391,5717,5209,5381,7632,5534,8631,7487,7710,8052,5612,7977,8370,5612,8196,8077,7849,0,8159,8044,5717,8136,9075,7663,0,8316,5358,5708,5708,5401,8402,5578,5305,5448,5448,8772,8539,7706,5285,5248,5285,8509,8772,8589,8340,7977,7663,7675,8647,7957,5205,7786,7675,7982,5296,8039,7742,5274,8115,8227,7500,8312,8407,7538,7538,7982,5666,8762,5205,5629,7491,5413,7616,0,5285,5651,7675,5396,8349,8297,7571,5352,8149,7675,5325,7605,8783,8005,8397,7675,7487,8052,5564,8239,8255,5237,5519,8772,8772,5305,8329,7864,9021,8010,7710,5296,8365,8519,8140,7883,7628,8068,7558,5285,7491,5237,7706,8052,5401,7500,8919,5296,7482,7734,5291,8196,8329,8077,5329,7487,7834,7616,8245,7883,7628,7576,5309,8789,8354,5296,7706,7864,5372,5476,5391,5285,8467,7663,5218,5291,7908,7628,9054,8479,5717,7528,5471,8903,0,8159,7920,7920,7482,8397,8381,8539,5347,7738,8154,8613,8052,5367,8387,7888,5237,5442,5325,5309,8052,5377,8227,0,0,8936,5377,5329,5296,8073,5337,8077,7482,7982,5305,5464,5578,5301,7511,0,7700,7675,5305,7834,5301,5329,7610,5564,7883,8033,8751,7920,7521,8154,5305,5237,7888,7692,7834,7877,7616,8261,7828,7986,7738,7675,5285,8287,7811,8154,5622,8077,7675,8936,5301,7877,7637,5301,5476,7632,7700,8365,7588,5237,0,5407,24,7605,64,8077,7700,836,2998,7994,5296,1311,5688,7487,2675,5407,5296,7528,7482,7823,8641,8641,5471,8756,2947,7592,1400,429,8827,7982,1620,8467,5337,2599,8653,8827,7994,5647,7994,8099,819,8658,2651,8093,7786,852,1783,8039,5647,5337,8039,7482,7643,7734,7628,9080,8467,8099,7768,7628,8745,8039,8732,7994,9085,7768,9092,9097,8467,8467,7864,9104,5647,9113,8641,9122,5296,5476,8467,9130,8375,5647,8387,9137,8805,8119,9146,9152,9157,8387,5437,7994,5717,9164,7478,7952,7920,5476,8539,9172,9181,5655,5314,9187,9193,9201,9206,8582,8227,7706,5034,9214,5325,9220,7972,7972,8282,9224,9230,8196,9235,7667,9240,8068,7565,5501,8543,8772,8795,7920,7571,8946,5358,9247,9253,9259,9263,7908,8539,5485,5407,8772,5301,7904,7478,5501,8863,8312,7533,5629,8653,5726,8772,7972,5480,8811,5255,7828,7795,8447,7658,7920,7592,7924,9008,5708,7511,5688,7715,7990,8131,5529,7904,7710,7935,8093,9272,5564,7982,842,7805,7986,7610,7610,5329,9278,9281,8174,9285,5426,7582,9288,2462,5329,9298,9301,5666,5671,7482,5730,2465,7999,5564,8687,5642,7888,9305,7952,5496,7924,7482,8048,8131,8467,5459,5661,8800,7592,9308,7864,9312,7828,9316,7478,7473,9320,76,2406,8509,2468,5386,8345,5426,9326,7811,7898,8456,9329,5476,7482,3679,7500,7805,8433,8845,7663,9332,9335,5699,5218,142,9338,429,8349,7843,4262,7558,7834,5309,2422,5666,8577,8201,7558,9341,303,5391,8329,8039,2274,7491,8184,8539,7628,8201,8387,5676,5342,7920,7558,5509,8170,8099,5241,8571,5248,7582,5491,8772,8345,7774,5320,5413,8795,7972,7888,5476,7972,5476,8456,5325,9032,7706,5514,8170,8447,7692,7990,5629,8653,8447,5407,8217,5309,8461,7628,7864,5352,7786,5647,8873,0,8387,7542,0,8345,0,7888,5386,5647,7558,7482,7643,5358,5401,8039,5459,5622,5730,8222,8222,7628,8539,7790,5381,8821,7864,8845,8795,8548,7628,5464,7864,5642,7834,8222,5325,5712,8227,8762,5480,7482,8527,7548,5381,5655,8527,8461,8732,5407,0,0,7521,5464,8873,8676,0,8190,5325,5325,7908,7616,7738,7558,5218,8509,7588,7588,5391,5651,7738,5534,7558,5647,5629,5699,7548,5301,5352,7898,8159,8205,8217,5606,7478,7558,8329,5717,5655,7663,7817,7834,8795,5606,8467,7752,5661,7511,0,7843,8227,5352,5413,8033,8140,5329,7742,7542,5712,5305,5622,8617,5320,7957,7710,7800,8473,5485,7706,5320,8539,8015,8795,5218,7828,8033,7972,5237,8039,8322,5309,8539,8987,7715,8402,7834,7738,8833,7706,8322,7779,0,8863,8255,8833,7500,5261,5261,7904,7734,7908,7582,8010,5699,5305,5471,5471,5471,8539,8119,7888,7888,8772,8919,7478,5501,5464,8772,8245,7491,0,0,7628,8322,5325,8255,8800,5476,7920,5358,7828,5419,7491,5218,8073,8772,5347,8170,8359,8903,8261,7542,8329,5347,5237,7849,7663,8387,8479,8052,8821,0,5666,8582,5329,7834,8772,7994,8359,7610,7610,7872,5301,7516,8261,0,8329,7834,5666,7904,0,5391,8504,0,9345,9345,8119,5476,8349,7990,7605,9345,7982,7982,8653,5476,7982,7500,8653,8087,8211,9021,8087,5476,7972,7786,5573,5419,8527,7930,0,8411,5342,8658,8093,5564,7571,5367,7504,0,5386,5367,8005,5237,8082,8467,7790,7588,7888,7888,7491,8745,0,8131,8131,7706,8249,8249,7482,8154,8033,8245,8115,5606,7658,5564,8625,5642,7924,8560,5524,5391,8543,7658,7853,7834,5358,5476,7473,7977,7888,0,8582,8267,7977,8994,8869,5401,7811,8539,7834,8174,7768,7706,8716,8527,5661,5501,7828,0,8005,7967,7811,7706,8509,7687,8543,5476,5419,8272,8205,8543,5237,7521,7893,7757,8329,8946,7828,5708,5617,5534,7533,5708,7478,5708,5419,5401,7888,8267,5419,5391,5501,8154,5358,5401,7888,8293,8293,5693,8716,7542,5407,7738,8484,7823,5496,8052,5274,8010,5325,8851,8613,7893,7599,8062,9345,5564,7538,7883,8504,5564,5485,7834,5661,7752,7548,8994,8762,5325,8946,7548,5642,5309,8267,7622,8456,0,8354,9345,8816,7834,8136,7528,5501,5358,7628,5480,8527,8467,7565,7478,7628,7952,8762,7904,8447,7576,5314,7999,8245,8716,8467,7853,8190,7972,7864,5712,5305,7706,5358,7914,7867,7864,7849,7500,8048,5241,8438,8282,7715,5564,8093,5209,5209,5391,8297,5261,7924,7800,5381,7786,7487,5426,7994,5209,8170,5261,8751,8504,5642,8316,5419,5320,5325,5671,8987,8144,5676,5285,8131,7715,5407,5407,5476,8184,7972,5325,5325,5274,7946,8687,7667,7473,7834,8391,8577,8456,7834,5337,7834,5496,7914,7482,7710,7952,7768,5209,8022,7994,8062,8631,7957,8387,7648,5285,8375,5255,5274,8670,5301,7558,7675,8211,0,5612,7478,7994,7990,8277,8287,5693,8929,5426,7823,7628,7495,8456,8028,5676,7914,7972,7653,8539,9345,7864,8751,8422,7653,7746,7478,7834,7478,5237,7834,7628,7487,7628,8631,0,5274,8170,5726,8839,7706,5274,8863,7582,8227,5329,7663,7864,7864,7957,7746,8827,8057,8170,8312,7774,5693,5509,8473,7675,5320,7706,5296,5564,7864,8494,8772,7893,0,5381,5606,8447,7768,5485,7643,5485,7542,7828,5426,7982,8631,8277,5358,7482,5442,8287,5564,5485,8099,7834,5347,8653,7482,8387,0,5301,7828,5274,0,5396,7616,7877,7914,8805,8903,5642,7478,7823,8893,7977,7853,7500,7628,7994,5377,8110,5712,7883,8821,8196,0,7478,7542,8104,7790,5564,5381,8676,5237,7548,5712,5464,7746,8345,7616,8190,0,7994,5712,8467,5655,5688,5377,5661,5480,5401,7790,8297,7487,7858,7994,8631,8484,7982,5708,0,0,7500,7853,7952,7967,5642,7920,5237,8467,7616,8164,8613,7710,7511,5712,7533,5708,7538,8131,8005,8196,7977,5514,5655,8467,5496,5218,8391,7616,5325,7588,5453,5274,8272,8334,7843,5386,8222,7663,7920,8751,5476,8647,7628,5666,8190,7800,5476,8015,8756,5218,8447,5301,8539,7952,7834,5309,5622,8227,8604,7653,5362,8149,5305,5578,7982,7982,5708,5362,8322,0,8959,7786,7478,5285,5480,8427,7790,5274,5274,5305,8239,5401,5396,7952,8919,7972,7500,0,5396,5237,5296,7648,5237,7834,7877,5285,5712,8010,8010,5274,5476,7994,5285,5564,5391,5358,5261,5342,8322,5401,7811,0,5453,7582,5476,8179,7663,8929,8766,7538,7681,5442,5309,7839,7628,8751,0,7500,8716,7834,7658,7616,8179,5453,0,7616,7746,0,7538,7914,5426,8447,8762,7511,8467,5347,7834,8617,8093,5285,8929,5347,5274,7616,8617,8952,7768,5651,5301,8375,7834,7605,5347,5209,5381,5291,5291,8571,8267,5209,5209,8879,7962,5564,7930,5209,7675,7528,8249,7487,7658,8222,5325,7786,8293,5529,0,5622,8370,8375,7962,8359,7763,8827,7542,5320,7877,8387,5209,8447,5564,5209,5301,5529,8073,8613,8277,8077,8077,7616,8375,7746,7605,8164,7738,7952,8533,7723,7628,8087,8345,5647,8022,5509,8110,5642,8062,5476,5485,9032,5651,7605,8903,8062,8548,8721,7576,5693,5509,5476,8222,5391,5391,5248,7914,7990,8190,5391,5337,7811,5476,7681,5391,5274,7817,7558,8658,7817,7675,5437,7687,8222,8370,7834,7675,7977,7914,8033,8164,5464,5651,5568,8739,8888,7588,7774,8365,5325,8467,5325,7482,5651,5568,8745,5699,5655,5407,5564,8381,5224,7811,5712,8196,7653,7628,5391,8381,8196,8381,7972,7628,8222,8739,8381,8196,5305,5496,8170,7795,8196,7982,7478,8239,5391,7605,8533,7914,7994,5661,8739,5296,8239,7667,7811,5476,5476,8222,8196,5248,8222,8527,8879,8217,7487,8329,8479,7672,8217,8087,8312,8527,5622,5564,5617,7990,5419,5419,5622,7994,9021,8329,5320,8217,8479,7675,5325,8670,7696,7696,7696,5205,5407,5320,8033,8987,8987,0,5205,8227,8239,5274,5274,0,7599,7599,5337,8239,8239,5642,8211,7599,7599,7599,5205,5642,7888,8005,7548,8484,8811,7786,8811,8422,8811,8811,5391,7482,7710,8898,8447,5309,7994,5453,8170,7920,8554,5237,5358,8170,5381,5606,5726,5377,5381,7478,7757,5391,5391,5255,5325,5661,8033,5237,8447,8427,5237,0,7800,7864,7957,5255,5377,7893,5320,5661,5647,5329,5329,5237,8554,5329,8170,5661,8170,5291,8239,5291,5320,5237,7935,8068,8447,5261,0,5274,5301,5529,0,0,7610,5476,7706,8504,7478,7653,7914,7628,5573,5342,7706,0,8354,8282,5642,8608,8387,7478,5381,7864,5325,7542,5501,8467,7706,8433,7542,7706,5496,5381,5726,8461,5274,5708,5347,8479,7904,7571,7571,7924,8170,8461,7990,8131,5529,7930,5301,7681,8170,7834,5564,5519,7977,8093,5480,8456,5337,5491,8582,8354,5726,7982,8312,8438,8345,7681,8093,7710,0,7582,0,8005,5519,7790,8316,5529,5476,0,7849,7990,7632,7864,5564,8329,5459,5329,8345,7696,5671,7768,8316,5476,7715,5391,8345,7994,7982,7972,5651,5301,5325,8316,7994,5337,0,5367,5301,5642,5285,5241,8375,5285,7864,7864,7628,7491,8201,8255,8658,8527,8527,5386,5301,5337,5274,8062,8479,7914,7558,5647,8845,7667,8052,5367,7482,7628,7843,8795,8149,8277,5274,5699,8571,5248,5248,7738,0,5396,8170,8277,7706,8438,8653,8653,8443,7786,8402,8387,8387,8461,8099,8099,8873,5291,7888,5241,8039,7482,7582,7653,5241,7994,5642,7920,7834,8022,5381,5413,8443,5291,7582,8427,7786,7482,0,8115,5464,7628,7994,7924,8527,5688,5471,5377,5476,7972,5391,5437,5642,7864,7605,8795,5329,7834,5712,8811,5325,5325,7811,8805,8119,5712,7542,7478,7628,8548,5347,5291,7834,7834,7994,8548,5496,5342,8164,0,8196,7628,0,7957,5647,8217,5237,5534,8777,8903,8062,5381,7663,7511,7478,8022,8255,5209,7994,5413,7828,8451,7542,5218,8077,8451,5325,0,0,8022,8548,5419,8239,0,7877,5459,8433,5693,5647,7957,8015,8427,8427,5708,8340,5726,8322,8397,8397,8479,8479,5237,7628,8073,7610,7521,8554,8073,8196,5285,7834,8149,8427,7516,8239,8239,5309,8919,7888,9021,5285,7952,5642,8255,5642,5291,8427,5476,5529,5386,7491,7491,5476,7864,5274,5325,5661,7990,5237,8539,5708,8397,0,8447,8164,8479,8093,8925,7628,8354,7482,0,5381,5301,5342,7610,7610,7828,7616,5237,8170,7877,7616,8005,7834,7994,5386,7768,8783,8498,8375,7828,7828,0,7834,7834,7834,5386,7834,8732,7952,8732,7576,5464,5485,8329,8783,8783,8577,7817,7571,8255,8170,7817,0,7478,0,0,7637,5688,5688,5325,5476,7487,7904,7972,7999,7521,5476,5309,8329,5676,0,8329,5309,5564,8925,5358,5391,8201,5693,8952,8010,8077,5391,5501,8994,7972,5237,7982,7883,7994,8015,5629,5491,7538,8456,8994,8964,5564,5401,7972,7576,8073,7972,8539,5305,5476,5476,5255,5280,5676,8613,8952,5491,5241,8839,8255,5655,5391,8658,5237,7898,5491,7952,5442,5255,8015,8302,5509,5491,7994,8227,8302,7706,8115,8039,7790,8762,5730,5241,7500,5651,7994,8494,5564,5476,7898,5255,0,7817,7533,5464,8479,5651,7977,8909,5296,7548,5261,7800,7715,8473,8039,8115,7715,7898,8015,7592,7877,5564,7972,7982,8010,8519,5358,0,0,5651,8255,7877,5501,8249,7898,5442,7763,5573,5381,5274,5347,8811,5255,8184,7542,5224,5224,5426,8811,5642,7811,5337,5337,5325,7834,7920,8805,8115,8687,9345,5305,8745,5358,8196,5471,8519,7952,8387,8126,5381,7500,5329,7478,0,7692,7616,8539,8174,7828,8387,7622,8845,7839,5564,8316,8334,7893,7521,5476,7972,7681,7972,5519,8762,7571,7675,5647,7952,7692,8334,8805,5337,8201,5693,7558,8277,7930,5325,8345,5320,8756,5218,5480,8022,5320,8745,7628,7628,7622,5448,8604,7521,7893,8484,7849,5296,7511,8302,5401,7843,5448,5407,8057,8745,8484,8484,8196,5708,8144,7957,7482,8239,5491,5329,5476,5573,7877,5647,7487,7528,7622,8227,7478,7893,8687,0,7908,5358,8322,5661,7516,7516,8239,5329,0,7616,5274,8805,5218,5301,8805,7482,8329,7834,8805,8539,8312,5407,5296,8716,5296,7817,8184,8509,8411,5476,7706,8789,5501,8170,7834,5476,8205,5358,5476,5476,7696,8589,5391,7696,5391,5391,7817,7757,7482,7982,5564,8062,7478,8422,7710,5419,7904,7914,8539,8015,5291,8272,5564,8539,5651,5274,7982,8783,8293,5485,5655,5476,5651,7768,5509,8670,8893,8190,5485,5471,8015,5419,8322,5352,7883,8322,5358,5358,5617,7883,5407,8131,0,8048,5358,5568,0,5432,7675,7883,8144,8322,8062,5651,8144,5509,5291,5325,5325,7952,8903,5329,5329,8641,5296,7972,5296,5296,5476,5476,5476,5476,8154,8154,5261,5426,7752,8316,7834,7834,7628,7710,7774,8473,7757,8888,5352,5218,8647,8015,7616,7710,7710,5314,5480,5325,8334,7548,5476,7599,7935,5358,7710,8093,5564,7599,5241,8140,7599,5485,5491,5237,8329,8727,7924,8359,5329,5730,8631,7558,7972,7500,5485,5647,8827,0,8277,8827,8407,5213,5237,0,7706,8227,7972,8827,7576,8277,7628,5661,5381,5407,7710,7977,8411,5464,5564,8329,7994,8334,5642,7994,5237,5241,8647,7710,8407,5241,5241,5432,8407,5248,7935,5285,7994,5285,5296,5712,7610,7521,8222,5726,7528,5320,5358,5476,5333,8504,8479,5693,5671,5325,8504,8504,7877,8772,8594,8594,8811,7706,5391,8879,7972,7599,8211,5237,8010,7616,5606,8438,8438,7548,5248,7478,5325,7478,5237,7491,5337,5509,8827,7548,7908,7628,8411,7972,7706,8402,8033,7658,8068,7542,8184,7643,7504,8816,7599,5274,7528,8756,7982,8509,5501,8359,7658,8022,7478,7742,8227,8519,8170,5476,8222,8783,8438,8456,7571,8982,7924,5568,8282,8293,5386,5241,8994,8201,8964,7786,7982,8170,8245,5401,7487,5442,8539,5491,5476,5647,5337,5564,5325,5352,5426,8467,8447,8625,5564,5237,5358,5337,7867,8190,8827,5224,5464,7500,5573,7920,5237,5237,8772,0,8548,8217,0,0,5476,7710,8504,8329,5391,5237,8149,7946,8582,7715,7972,5661,5401,7681,5464,5459,8052,8571,7952,7946,5237,7675,5320,0,7473,5688,7924,5296,5296,7710,7977,5476,7504,8625,7516,5296,5209,7500,7710,7521,8293,8727,8869,7990,8316,5606,7817,7768,5237,5280,8354,5352,8800,8407,5296,7864,0,8316,7834,8509,8604,5386,8267,8211,5218,5218,8467,7920,8653,8255,8354,7628,7628,5381,5237,5578,7516,5377,7653,8052,7867,5377,8201,5476,7542,5296,5237,7930,7800,5476,7946,8022,7768,7558,5296,7478,7478,5337,5301,7779,7811,8827,5476,8354,5301,8566,5386,7864,5699,8190,7542,7478,8438,8827,7893,7930,7888,8402,8227,8514,5301,5325,8721,8721,5426,8479,7706,8571,5606,8099,5237,8795,8653,8447,8745,5442,5471,8039,7877,7779,5509,8467,5309,5325,7516,7628,8154,7849,7768,8772,5377,5377,8077,7599,8287,8201,7643,5237,5629,7528,7994,5296,7864,7872,8548,5407,5218,7828,8170,8179,7558,8407,7930,7867,8179,7883,8721,7888,5386,8267,7521,8863,5459,5464,8104,7723,9071,5426,8604,8411,7643,8548,5377,8255,5442,7930,8190,7994,5717,7542,7994,7628,7628,5358,8190,7811,8438,5358,5476,7746,5218,8509,8903,7482,7864,8033,8711,7990,7990,7628,7663,7867,7834,7495,8811,8267,8548,8159,8873,5501,0,8005,8005,5699,7817,8267,7588,7588,7706,5642,8022,5464,5325,7786,8170,8519,8447,5661,8509,5241,5218,8340,7962,7914,8073,8509,8467,5661,7643,5218,7924,5301,5514,8272,7482,7839,7500,7542,7658,5464,8267,7914,8391,0,5617,8827,8647,5305,7715,8039,7710,8179,8179,8179,8402,8438,8594,8015,8316,5708,8617,7800,8721,5699,5372,8484,5296,8509,5401,7742,8022,5309,7482,5329,8987,7994,8641,7800,7542,5617,5218,8745,8756,8539,7972,7957,5676,7706,7706,7628,5255,8239,8827,5337,5248,7972,8316,7558,7706,5726,5352,7930,5432,8104,5285,8833,7710,5401,5255,8005,5296,8255,7558,7482,7482,5237,5237,7883,8772,7888,8217,8217,7588,5291,8604,7675,8010,5501,8149,8149,5248,7653,7706,5274,8438,5485,8239,7478,8179,5291,8140,5274,8772,8119,7920,5476,5573,5274,5386,7883,8772,5485,8022,7653,5285,8082,7811,7582,8196,8196,5726,8340,8800,5661,7616,5708,7790,5476,7516,7719,7667,8359,8514,5347,7663,7516,7834,7795,5367,7710,7628,7482,5491,8249,7663,8249,8217,7706,5305,5347,8514,5442,7972,7495,7495,7834,7924,8073,7972,8582,8582,5337,5564,7511,7763,7558,0,7877,8249,5347,8359,8190,8261,7877,5325,8170,7811,5617,5476,5401,7823,5651,5629,5291,8461,8461,8461,5717,8354,7478,5407,7500,5320,8164,5237,7558,8494,5381,5717,5407,8322,8154,8322,8427,7582,7706,7977,5459,9353,7977,5325,5391,8795,5325,8005,5671,8919,8427,8519,5717,5407,5381,7628,5407,7834,5329,5237,8427,5237,5237,8287,5491,5726,7982,7982,7982,7864,5391,5301,7790,7982,5301,7565,5612,8411,7828,7592,8987,5476,5476,5261,7982,7893,7834,8087,9358,7774,7687,5688,5333,8201,7904,8245,8705,5564,0,5437,5480,8015,7757,8756,7628,7692,7653,7914,5496,5476,7786,5568,7478,5480,7542,7972,8504,8144,8514,5514,7924,8816,8282,7935,7648,5237,7542,8282,7977,7628,5564,5708,5237,7920,7972,5209,7864,5471,7999,7558,5325,7834,8582,8411,8783,8170,7752,7982,8354,5291,7904,8196,5655,5241,8267,5509,8293,5476,5320,9361,8057,7853,8307,8756,5578,8057,5564,8174,7904,5708,8115,8641,5568,8099,8322,0,7982,8222,5224,7972,5352,8772,7734,7920,7658,5642,5655,7687,7924,8222,7849,8447,5476,8539,7710,7920,8925,5305,5712,7914,8387,5442,5726,8438,5573,7977,5564,8427,7605,7883,7637,7715,8184,7986,5564,8174,8282,5213,8093,8136,8625,7542,8170,5480,7904,5480,5480,5708,8170,5314,7533,7999,8126,8126,8539,8447,8170,8144,7610,5407,0,5218,5347,8381,8073,8115,7542,8727,7795,5391,5381,5241,8566,7817,7817,7768,8969,8879,8365,8898,7710,5661,8604,5296,8751,5635,5391,8136,8073,7710,7795,7972,8144,7888,7888,7972,7867,8345,8789,5655,5717,5285,7692,7582,8613,7681,8577,7687,5329,5459,8631,5291,0,8170,7972,8375,8387,9361,7738,5661,5386,8903,5285,5241,5325,5296,8329,0,7663,5480,7495,8451,8073,8845,5377,5655,7558,5612,5612,8946,5712,7610,8170,5352,5407,5476,8805,5261,7495,5509,5661,5496,8527,5285,7478,7667,8484,8316,8653,8154,5647,5314,8057,5333,7904,7653,8670,8077,5676,8115,8022,7491,5291,8201,7811,8201,9021,5476,8533,7672,5448,5480,8149,7962,7898,5407,7811,8479,0,5509,8196,5352,5617,8577,8438,8514,5564,8126,8170,8479,8494,7663,5676,8354,8548,8033,7805,5381,5647,8543,8136,8184,7495,8443,8494,5237,5274,7558,7828,5514,8099,8745,8461,7888,8087,7757,8057,8539,8015,8234,5325,8272,5280,7706,5213,5320,7542,8093,5476,8387,5291,5241,7779,7795,5476,8154,5261,5241,5329,7774,8772,7935,5224,5381,5377,8571,8422,7834,8451,7967,8170,5606,7542,8800,8126,8087,5381,5329,8039,0,0,7972,7883,0,5274,5514,8721,5352,8467,7495,5407,5655,8484,5407,7628,7834,8005,7823,8062,8110,7920,7994,8159,7967,8190,7622,5377,8077,5496,5391,8548,5655,5476,8598,7946,8411,7924,7811,7834,8857,8345,7500,8387,8494,7990,8663,5325,5377,7986,7986,7558,8509,8484,8484,5647,5381,5296,8845,5248,8851,5617,5661,8467,7542,7491,5496,7687,7930,5642,0,0,5347,7752,8196,7877,5717,7957,8548,8845,5285,8131,8196,5218,5699,5442,7710,8427,7962,7962,8073,5573,8164,5413,8451,5514,7990,5642,8479,7972,8293,5661,5407,5448,5688,5524,5274,8851,8940,5309,7763,7864,7805,7495,5261,7738,5381,5629,7533,8282,8245,5301,8272,7982,7972,8631,5367,7542,7752,8322,5606,5655,7864,5237,7495,7768,5496,7687,5717,7478,8869,5617,8756,5617,5320,8126,5642,8888,5448,8772,7730,7877,5612,8239,5248,8519,8039,5224,8527,8952,8539,7706,0,8533,5401,5629,7710,8721,5329,7632,7957,8548,5671,7982,7687,8519,5629,5396,8402,8716,5305,5419,7952,7616,7972,5708,7972,8077,7800,5261,5568,5320,5612,8641,5285,5305,5305,5578,5274,8946,8647,5419,7482,8131,7542,5329,5325,7616,5291,8959,8959,8149,5471,5274,8821,8005,8365,5476,8329,7558,7558,7730,5386,7946,7487,7542,5464,8245,9021,8184,7516,5241,5296,9345,5285,5325,8340,7883,7883,7935,8073,7935,5291,7675,8239,8543,5564,8255,8073,8451,5314,5622,5480,7734,8196,5471,8184,0,5661,5329,5285,8498,7738,7653,8255,9361,5407,8811,5218,5666,8144,5329,5261,5314,8115,7734,8287,5325,8903,5612,8340,8745,5485,7811,5381,8196,7908,7883,5237,5717,7920,8073,5708,8170,7491,0,0,5448,5651,5325,7658,5314,8479,5426,5347,8936,8170,7491,8613,7491,7491,8447,7982,5325,8888,8381,5717,7972,5381,8144,5305,5407,5661,8577,8772,8126,5448,5329,5329,7648,7972,7533,7924,5666,7730,5320,8365,8184,5274,7667,8154,5301,7986,7653,7616,5329,7610,7542,7542,8365,7542,5347,8589,7616,5712,8261,7877,0,8498,5237,5617,7632,7667,5651,5301,8365,5329,8772,8857,5301,7828,8631,8903,5285,5291,5347,5301,7700,7972,7952,7952,7706,7528,7734,5342,8087,8898,5337,5671,5476,7817,8811,8282,7565,5241,8073,7828,5568,8438,7478,7786,7849,8604,7675,5651,5573,5717,8539,7500,5285,8438,8033,8484,5655,7888,7628,7710,5708,8126,7500,5285,7888,5401,8077,5358,8227,7828,7888,5476,8811,8589,7990,7834,5471,7706,8307,7675,7888,5285,5485,7924,5367,8438,5320,7663,8255,7663,5241,8539,5655,5564,5320,8239,5726,7504,5237,5285,0,5285,5314,5476,5401,5358,5301,7675,7675,7752,5529,7706,7706,8533,8888,5291,8533,0,7893,8282,8282,5347,7628,5347,7994,8307,8119,8239,7977,7982,5661,7977,7628,5655,5285,8494,7853,5573,5309,7710,7482,5564,8322,8427,5726,5314,8427,8676,5314,7487,7528,5314,5314,8196,7516,5314,5573,8676,7605,7565,5661,8560,7628,5391,8456,5337,0,8334,7706,8427,7790,5329,8456,7920,7511,5564,7565,8190,5485,5485,8447,8443,7999,5476,7511,8670,5407,0,5476,7706,7972,8010,8647,8010,8427,8625,5342,7628,7478,5325,5325,5325,8154,8915,7883,8484,7972,5372,5661,7681,8329,7500,7500,7500,8811,7653,7658,8539,7500,7877,5391,8582,7924,5391,7599,8438,8438,8068,8104,7478,8267,7930,8608,8115,8282,5381,8653,8119,7982,7565,8052,7952,8227,8190,8391,7643,5501,8196,7982,5476,5237,7528,7834,8115,7565,8772,7914,8170,7924,8365,5224,5426,7616,8190,8456,5655,8093,8104,8052,5712,7571,5305,8411,7500,7643,7999,8548,5391,5391,7628,7893,5459,7790,8447,8227,7752,7582,7663,5224,8608,7576,7610,5274,8582,7681,8783,5391,5464,5464,8190,8005,7500,5285,5309,7972,5309,8987,8316,8062,7834,5671,7521,8635,7675,7491,8267,5296,7653,7653,7667,5509,5274,8653,7576,5237,7558,8119,8201,5578,5578,7478,7653,5296,8052,8033,5509,5606,5314,8397,7576,7734,5485,5237,5261,5476,5237,8745,7706,5485,7952,5655,5476,7972,8345,5509,7516,7779,8227,7599,7675,8365,0,8190,8190,5476,5367,8267,5296,5564,8438,8005,7849,7616,8762,7994,5320,8745,7790,7823,5407,8699,8345,7924,8104,5642,5612,5309,8391,5285,8509,5524,5534,8227,7706,8052,7834,5301,7663,5325,7952,8514,8365,5661,8052,7715,5305,8827,8447,8015,5296,8222,7653,8190,8732,8239,5274,7883,5485,8959,7516,8068,5237,5476,5325,5464,7658,7491,7491,5301,8772,8316,7675,7893,8196,7999,8052,5476,7521,5426,9367,5285,8222,5485,7834,7663,7491,8613,5320,8249,8329,5642,7734,5301,8033,8582,5459,0,7834,8154,5329,5237,8164,7610,7700,7632,8375,8635,5629,7834,5573,8354,8354,5726,5476,8845,7491,7982,7849,5320,8340,8340,0,7800,8554,8554,5377,8397,8179,7500,5296,7482,7867,5501,7920,8354,5337,8821,5352,8282,5564,8093,7893,5726,0,8293,7681,8851,5655,7843,7843,5676,8391,5464,7599,8068,7999,5325,7706,7616,8548,7599,8316,7843,0,8249,7610,7715,8919,7994,5305,8543,7687,7605,7605,0,7605,8504,7904,8312,7888,7888,8479,5301,5688,5325,8484,5358,5519,8805,7839,8302,0,8925,7768,7542,7628,8811,7478,5496,5261,8329,8010,7478,5209,5301,5426,7774,8879,8504,8670,5480,8539,8015,8211,7710,5476,7786,7817,8762,5476,7706,5320,8461,7681,0,0,0,8277,0,8211,7924,7538,7622,7487,8467,8560,7893,7930,5381,7582,5524,5642,5274,5573,8658,8994,5320,5396,7528,5442,7605,5442,8022,8282,8022,5325,8354,5309,8131,5325,7790,7920,5358,7599,8608,7565,5501,5476,5564,7823,5237,7982,8387,8307,8329,5655,5642,7516,7872,7864,5712,7999,8039,7972,8827,8267,0,8307,5320,5372,0,5301,0,5407,7558,0,8322,8527,7823,7675,5274,7692,5255,5476,5237,7972,8625,7675,7977,7977,8131,5564,5305,5476,7491,7491,5391,8077,5358,7888,5476,8093,5224,8447,7986,7849,7533,8010,7548,5491,7839,7924,5564,8073,8711,8811,7706,8297,8110,7790,7999,8022,5578,5367,5337,7914,8170,5480,7571,7823,8381,5218,8539,7972,7687,5496,7883,7786,0,8484,5708,5564,5407,8073,7888,7990,8716,7605,5358,7511,7637,7687,7487,7605,8456,5391,8625,5496,5642,5291,8484,5391,7972,7511,5712,0,8164,7687,0,8473,8427,5381,7610,7582,5329,0,5301,5347,5218,5320,8329,8969,7706,5655,7706,5301,5476,7521,5655,5301,7588,7795,8795,5224,8504,7675,8073,8504,5224,5209,5442,5476,5381,7500,7605,5407,8397,7696,7696,5337,8048,7817,8898,8149,8427,5301,0,7924,7849,8682,7972,7710,5717,5437,8375,5564,5381,8560,7952,8272,8687,7994,8582,8613,8345,8345,5676,5476,5314,7692,7972,7723,8316,8940,8940,7811,5381,8484,5529,7888,8863,7628,8365,0,7616,0,0,8427,8387,5386,5655,8903,7706,8255,5396,7908,5419,9345,8329,5612,8302,5655,7930,8805,7795,5485,8073,8543,5564,7872,8316,5291,5237,7843,7511,8527,7706,7752,7667,8811,8140,7779,5688,8805,5337,5712,7898,7610,5352,9345,8539,8190,5647,5372,5708,7786,5358,8539,7653,5209,7972,8504,7930,8845,5407,7811,5509,7495,7977,7681,5325,7675,5329,7811,8670,8433,5501,8022,8249,7478,5301,5301,8307,8433,7616,5612,8170,5377,5381,8653,5314,5320,7877,8010,7994,5485,5301,5224,0,0,8272,7972,8277,5401,5407,5314,8093,5301,7706,5224,9032,8827,7542,7746,7706,7706,7774,8234,7877,8594,7893,5213,7898,8057,7643,8548,7558,5372,5325,5301,5352,7628,7628,7786,7643,7582,5629,8461,7599,8539,5237,8010,7558,8427,7706,8467,7834,7628,7768,5476,9367,8504,7805,8873,7706,5314,5564,7990,8277,7967,7967,5314,8721,5501,5501,8033,7723,8077,5509,8039,5329,8052,5381,5476,5442,8170,8170,7558,7571,7779,8322,7972,8863,8387,8170,7930,5285,5314,5209,8888,5352,5693,5573,0,0,0,5407,7952,5237,8762,7542,0,0,0,7632,7972,0,0,0,0,5352,8427,0,5480,9367,7888,7491,8998,7994,7994,8676,7977,8548,5407,5476,7914,5237,7834,7834,8732,8427,8104,7628,7849,7687,8494,7858,5358,5642,8154,7500,8893,7924,7986,7834,8543,7643,8005,5381,8005,7487,8527,5661,5480,7972,5407,7715,7790,5573,7982,7982,5401,8873,8805,7823,7628,5337,5712,8022,8190,8190,7616,5655,7858,7491,5325,5381,7491,5573,8598,7628,8694,7994,5712,8539,5325,5381,8509,5688,7616,8110,7946,7957,5333,0,0,8751,0,5671,8772,5347,8267,7628,8033,5329,8170,0,0,0,5661,7977,5476,8427,5564,8716,5651,7843,8164,7786,5407,8170,7738,5642,5655,7898,8302,8467,5209,8391,7588,7977,5642,5381,5464,8811,7893,7687,7542,7538,7962,8467,5661,8164,5391,7972,8402,8267,8805,7511,8164,5629,5699,8533,7487,8119,7738,7990,5237,7786,7706,8898,5524,7962,7533,8272,5717,8329,7828,8417,5325,8851,8131,7805,8322,5496,7542,8359,5712,7500,8461,5524,5314,5480,0,7924,7828,7977,5407,8397,0,0,8888,7605,0,5237,7706,5401,5296,5218,7542,8039,5671,5671,8641,5396,8140,9367,8402,5413,5337,7982,5419,7982,7811,8005,5476,8077,5524,8756,7952,7952,8340,7800,5309,8539,9345,5333,7843,8033,8827,5301,5519,8745,8617,8010,8316,8721,5325,5612,5666,5329,7779,5651,7957,8783,7588,7990,5320,5629,8473,5329,8484,5320,7687,5320,8015,8514,5305,5453,7924,7681,5352,7605,8302,5237,7768,7946,5407,8827,0,0,8322,0,7616,7696,7528,7972,8255,8397,8827,7734,5320,5396,8005,5655,9021,8354,8427,5237,8329,7828,8048,8811,5305,7478,8255,5386,7516,7511,8255,5274,8489,8010,8427,5480,8149,8267,8598,8422,7558,5629,8249,8170,7558,7588,5291,5291,8772,5296,5325,7495,7521,5480,8381,7872,7605,8519,8833,5501,7723,8297,7946,8433,7786,7511,8149,5524,5573,0,0,0,0,5325,8307,0,5329,0,0,8467,7738,5320,5419,8772,7516,8789,7482,5237,5342,5261,8397,8190,7558,8811,8170,8397,5476,8196,7734,7834,5666,8527,5296,8903,5325,5342,8073,5358,5693,5573,9361,7908,5325,5381,7977,8745,5578,5407,8322,8479,5476,8473,8022,5617,7516,0,5496,8249,7482,8272,7658,7746,7706,0,8888,8154,5325,7542,5651,8381,5476,5524,5407,7482,7696,8745,7834,7706,5651,7999,7952,8104,5325,8005,8312,8919,5573,0,7746,5337,7972,8687,7542,5666,5666,7730,5329,5301,8498,7672,7763,5296,7742,5329,5381,5524,8762,8467,5301,7893,5314,5448,5401,0,5573,0,7605,5329,7834,5301,7605,8033,5381,7864,7588,8359,8077,7628,7610,8277,0,5274,0,8170,7675,8093,7616,5407,7482,5337,7616,7521,8789,8073,7877,5347,8170,8617,5617,7994,8827,7768,5726,0,0,7628,7632,5301,8365,8375,8903,5291,0,5347,5347,7605,5666,5301,7904,7700,7628,8093,0,7542,7839,7811,7528,7628,7628,7542,7742,7500,8783,5573,7710,8509,5476,5291,5237,7500,5367,7628,7908,7843,8739,8851,5237,7663,5476,7706,7982,7710,8196,8739,8795,8739,8795,8732,8302,0,7482,7528,5661,7628,7542,7675,5476,5717,7478,8772,5309,7742,7982,5377,7811,7500,9054,5237,7675,7500,5237,0,5401,5573,5476,8795,7628,8287,7811,7972,5241,7839,8201,7478,7706,8201,8201,8082,8170,7542,7710,7719,7710,7719,7548,5342,5342,5301,8451,7628,5301,7952,5491,5491,7487,5407,5578,5305,5305,5642,5305,8140,7924,5606,8119,5491,8987,7500,8329,5320,8179,5291,8647,5280,5688,7588,8745,8267,5401,5476,8998,7972,7491,8179,7643,7883,5325,7491,0,8267,7752,5442,8888,5377,5309,8987,7482,7757,8140,5296,8498,5476,7883,8762,5419,5401,8888,8762,0,5407,5320,7742,8676,7605,7482,8745,5476,8302,5699,7990,5642,7667,7828,5296,5296,7786,5699,5325,5476,7742,5296,8676,5476,7675,7478,8721,7715,5712,5712,7663,7571,8762,7628,5358,5358,5358,7920,7920,5358,7877,7790,0,0,7734,0,7977,8427,8159,7715,5480,8329,7696,8164,5274,8170,7715,8052,5688,8307,0,8772,8456,8170,7888,8402,5358,8589,0,7790,5342,7628,7628,5480,7849,5407,7738,8589,5329,7715,5301,8316,8164,8227,7734,7632,8427,5514,8427,8249,7632,5726,5459,5391,8539,8438,5291,8211,7706,8959,8716,7706,8479,5274,8732,5501,8915,8028,0,5564,7914,7582,8745,7706,7482,5237,8370,7924,8345,8387,7990,8745,8387,7582,7883,5329,8745,7924,8267,8267,8839,8589,5241,5224,5218,8903,0,5333,8447,8068,8010,7952,8805,7972,5688,8888,8115,7746,8498,5296,7757,5476,5496,5314,8732,5509,8010,5491,5237,5480,8211,5688,7706,5261,5213,7653,7542,7478,7478,8329,7487,8613,7817,5419,7710,7478,0,0,5629,7972,7710,7542,5651,7628,7599,8745,5485,7872,7667,8062,7658,7768,5325,8411,8411,8811,7752,7548,7565,7504,5291,8560,0,7706,5501,7500,7500,8196,5476,8494,8267,8467,8560,7834,8033,8033,7883,5337,5471,7982,8154,7867,7715,8110,5712,7738,7746,7478,5248,5606,5358,8302,7972,8456,7533,8863,8925,8131,7511,5712,8115,8527,7742,5301,8099,8777,8527,7994,7982,5305,5712,5320,8170,8365,5480,5480,5480,7849,5301,5651,5476,8048,7893,5337,5606,7972,7999,7786,8427,7834,7487,8582,7592,8170,5661,5688,5476,7977,7548,7768,8073,5296,5651,8543,5314,5573,5333,5337,7786,8062,8811,8048,7790,7487,7982,5255,7839,8010,7710,7588,8381,7558,8093,8174,8073,7706,7487,8447,8170,8354,7605,8119,5666,8190,5529,5564,7533,8438,7658,7924,5325,5218,8721,5413,5529,7610,5329,0,8073,5661,8312,8115,5485,7482,7576,5325,5476,5296,5296,8397,7558,7482,7994,5730,5407,7924,8577,7487,5325,7696,5426,5564,7730,5612,7972,7482,7478,5237,8898,7605,5419,7632,0,8345,7582,5476,8711,5666,5476,5651,7768,5309,5305,7994,7675,5661,8062,7500,8851,8582,8272,7867,8170,7696,7576,8613,5255,8329,7504,7972,8687,7811,8391,8154,8631,5280,5213,7478,5726,7511,5476,7977,5485,7542,5419,5285,7558,5391,5314,8604,0,7908,5325,7511,7877,7643,7982,8789,8329,5309,8577,5688,7994,5578,7667,7653,7898,8211,5314,5337,5237,8073,8307,5509,8062,5476,7734,7616,5347,8052,7843,7653,5301,8845,5564,7478,5401,8104,8527,5476,7628,8316,8149,8370,5309,7977,5248,5534,5712,5342,7558,8456,5274,7914,5647,8653,8751,8077,7653,5485,7675,5617,8184,5647,5218,7675,5274,8805,7864,7588,8068,5676,8433,5377,5301,8839,7487,5666,8839,8272,8762,8149,8277,5401,7994,8494,8267,7811,8539,0,8489,5407,8015,7719,5564,8721,5426,8087,8969,8387,8287,8015,7491,8571,8494,7653,5480,7582,7849,8494,8170,8811,7779,7643,7738,5314,7828,7867,8407,5676,5209,5237,5642,7706,7786,8039,7653,7516,5629,7576,5352,8052,8227,5320,7706,7565,7710,5329,5386,8170,8272,8827,5666,7972,5352,7893,8022,5606,7920,7883,7628,8447,7628,5329,8811,5651,5485,8093,8099,7482,8402,5726,8359,7628,8184,7914,8647,8104,8631,8467,8277,7643,8745,7834,7542,5606,7622,7972,7482,5651,8543,8467,7752,9071,7893,8745,8467,7990,5325,5617,8467,0,5329,5209,8762,0,5407,8438,7920,0,7628,8467,7914,7914,8110,7811,7605,5407,8699,7628,5688,8805,5726,8762,8527,7687,8073,8494,8494,8539,7994,7752,8613,5661,8604,7994,5717,8461,7834,8062,8190,5651,7990,7790,7616,7834,5337,8062,7622,5426,5712,5437,7643,8716,8005,5391,7864,5213,5712,5401,7706,7706,5712,5606,8694,7994,8179,8641,7746,5296,5305,7500,5325,9054,5407,5407,7982,8527,7521,5476,7482,8427,5391,5381,7558,5464,8772,7628,5358,8438,5391,5647,8119,5218,5726,7548,0,8484,5285,0,7482,5629,7610,8154,8467,7823,8282,5337,7768,7805,7779,7877,7834,8104,8077,5209,5509,5391,7800,7616,0,8005,0,5407,7500,7672,7952,5671,0,0,8312,5309,7952,5629,8467,5612,8467,5401,5642,8249,9032,8119,7990,7658,8245,8631,7511,8131,5514,8391,7687,5391,5476,8099,7538,7734,7994,5301,7774,7478,5237,7752,8322,8115,5391,7588,5476,5655,5448,8267,5519,7482,8164,7643,7588,7588,8447,7738,5391,8613,7994,7533,5573,5573,8334,5534,8777,7763,7849,7828,8052,5464,5237,5209,8539,7972,7616,5564,5381,5396,5717,5209,8272,8909,5342,5358,5285,5296,8234,7482,5524,7610,7972,7834,5617,7800,7616,8104,5329,5347,8375,0,8888,8772,7628,5448,7982,5358,8473,7972,5419,5568,7914,8987,8539,5651,5708,5329,7982,7982,5337,7877,8010,5218,8234,7800,8745,7628,8647,5325,8387,5285,7706,5237,5325,5329,5329,7610,5309,8039,8827,7957,7972,5671,8322,5301,7834,8340,5285,8827,8658,8641,7742,8909,7491,5237,5651,5629,5305,8987,7653,5401,5347,8631,5301,7542,8527,8190,5476,7800,5209,8211,8756,5666,5352,5320,8015,8015,5248,7500,7811,8144,5407,7834,8519,8239,8402,5377,7924,5419,8827,7616,8062,8329,5320,8721,7616,7675,0,0,7500,5401,7972,7994,7920,5291,5285,8312,8903,5296,5381,7478,8994,5325,7533,7952,7675,7542,7542,5237,5329,5237,8190,5471,5464,8438,8489,7588,8239,5655,7548,5476,8539,5509,7883,8772,8783,8329,8005,0,8670,5647,7605,8589,9372,5358,5261,7877,7877,5320,8316,7734,7516,7994,7719,7719,7558,7592,7558,5396,5285,8149,7935,8811,8879,7946,7487,5320,5352,7653,8267,7511,8062,5564,8052,7849,5274,5407,5261,5237,0,0,5347,0,7628,7516,8438,5372,8903,5509,8115,5661,7628,5301,5391,5529,8093,7800,5209,5218,7908,8179,5401,7828,7491,5708,7811,5655,7877,7800,7883,7883,5476,5342,7920,8170,7738,8196,5325,5314,5401,8789,8039,5309,5501,7719,5325,5342,5296,5573,7738,8022,5693,0,7605,8277,8888,5401,5651,5391,5320,5651,8381,7616,7616,8249,5309,7706,7920,5325,8052,8613,8397,8494,8272,7482,7482,8217,7839,8154,5485,5347,7667,7663,7734,5314,7994,8888,7786,7542,5426,0,8144,7893,0,0,5407,7994,7632,8365,5329,5301,5337,7924,5329,7487,5381,7616,8762,7599,5296,5661,7533,7914,8473,7877,5305,7511,5407,7734,7719,7558,7786,8888,8154,5274,5329,8196,7653,7616,5218,5301,5485,7675,7616,5342,7994,5661,8359,8052,7605,7610,8277,8217,8010,7982,8277,0,0,7616,5651,5325,5401,5407,7616,5501,7516,5476,5407,8354,7877,5491,8261,5407,5347,8010,8617,8467,5314,8527,5617,5666,5347,8827,5726,5218,7542,8048,8721,5699,7834,8052,0,7730,8365,8375,7834,5301,5651,5261,8772,8903,5285,7877,0,8052,7904,7605,5347,5347,7700,5509,8375,8329,5274,7834,8811,7834,7628,8154,7487,7763,8687,8919,5296,7675,7675,0,8062,8093,5372,5622,8484,7687,5661,7710,5314,5437,5437,8179,7924,7706,7548,5501,8816,7592,7752,8312,5476,5329,7805,7920,8509,7533,7834,8509,8334,7715,8783,8239,7952,8756,8068,8687,7528,7972,8687,8687,7994,8322,0,8245,5367,5241,7605,7990,7999,5564,7904,7888,7888,8093,5314,8190,8170,8772,8174,7592,8174,7658,7658,5224,7924,8316,7653,7605,7687,7828,7994,5391,5401,7710,5464,0,7982,8851,5347,5485,5285,7500,5426,7768,8577,7811,7924,7675,5519,5274,7482,7478,7576,5642,5391,7994,8316,5529,5437,8509,8062,7632,5367,7605,8190,5241,8312,7834,5296,8687,5578,5296,8898,0,8010,8670,7491,5296,0,5629,5309,9071,0,5237,5564,7592,7935,7734,5485,5314,8805,5509,8370,5352,7843,5261,7982,8527,7710,8164,7982,0,5320,7849,8329,7692,5291,7675,5237,7834,7653,9345,7667,8539,5661,5325,7478,0,0,7653,7834,7811,8514,8170,5442,7930,5501,7516,8653,7643,8068,5237,8402,7478,8062,8170,5564,8494,5285,8827,8527,5255,7723,8893,5237,7723,7528,5314,7834,7834,5476,5291,7628,8461,8297,7920,7786,0,8119,8227,8670,0,0,0,0,8033,7849,8005,7548,8676,5367,5296,8527,5401,8190,5426,5464,5285,5407,5358,7616,7605,7994,8641,5606,5237,8699,8699,7877,7834,7592,7592,7628,5712,8302,7994,7491,7528,7723,8110,5712,7811,7500,7999,7994,8010,5688,5342,7924,8577,7605,0,5524,7795,8222,7982,8267,5367,0,0,8411,8131,8422,5629,8783,5261,8869,8073,5464,5661,5237,7478,5237,8267,7849,7849,5237,8267,7504,8716,5261,0,5642,8329,5651,5401,7616,7478,8164,0,0,8322,7511,5237,5358,8473,8548,5329,5407,8087,5476,7957,8527,5342,5476,8316,5291,8548,8267,7982,5476,7972,5708,7994,8239,7653,7742,9071,7592,7800,0,8987,8498,8833,5407,5237,5237,5237,5476,7675,7710,5464,7877,7491,7542,8297,7834,5274,8255,9021,8919,5471,7914,5285,5501,7487,8239,7628,7516,8316,8670,5501,8010,7834,8329,5347,5712,5629,5476,5485,8514,0,0,7616,7628,5476,5529,5347,7658,5372,8179,5342,5237,5699,8827,5401,5296,7605,5661,8093,7994,5476,5661,7999,5296,0,0,5347,8613,5274,8898,8329,5309,5442,5442,5642,7849,5347,8473,8164,8987,5305,8222,8893,8015,8589,5708,5367,8582,8851,7628,7746,5329,5442,5442,7834,5237,7920,5391,5391,5688,8261,8354,5347,7582,5291,8316,8721,5688,7779,5651,5629,7779,7834,5224,8093,8498,7628,9361,8387,8994,5241,5325,5381,8467,7663,7994,7877,7516,5291,5564,7491,7904,5459,7491,5642,8443,8617,7696,8322,8519,5717,8205,8716,8322,8484,8322,7858,8282,7533,8670,5407,5213,8762,7982,7853,5333,7548,5459,7898,8255,7982,5337,7558,8762,8387,7558,8816,7763,8751,8484,8711,5480,7715,8149,8504,9377,7565,7790,7715,5391,7478,7834,7977,7930,5391,5407,7786,5337,8375,8119,7715,8539,7542,7768,7768,5209,8594,5237,8211,8946,7542,7478,7786,5237,5301,5301,7516,5325,8461,7972,8543,7768,8489,8762,8170,7977,5407,8527,7858,7990,8170,8898,5573,7478,7930,7632,5381,7538,8682,7994,5301,8387,8316,8387,5419,7853,5301,8762,8577,7920,8647,8222,5237,5442,7994,8005,7521,7768,8010,7904,8010,5688,7491,7774,8073,8345,5381,9345,8687,7538,5337,8756,8504,5325,8387,7599,7811,9345,8267,8582,8816,8539,8745,7548,5442,7930,7920,8170,8447,8119,8174,5367,9008,7982,8093,7893,8777,8447,5391,5337,8131,8354,8170,7883,8312,7786,8316,8381,7811,8727,5285,7849,7999,5325,5476,5261,8227,8164,8087,8316,8149,8762,5367,5391,5396,5241,7628,7962,7628,5358,7478,5237,5676,5301,5367,7482,7940,7843,7930,7972,7834,8302,5301,8456,5274,7757,5471,7752,5642,7904,8756,8447,8473,7482,7478,5237,5407,8048,8653,7834,8039,7883,5651,8227,5476,7972,5241,5296,8249,7774,8140,5617,7994,8732,7632,7982,8548,8987,7994,8527,8494,8329,5426,7605,7790,7994,8467,5274,8641,8387,5386,5661,7977,5730,8411,5337,5337,5712,7687,5642,7962,8073,7977,5396,8467,5448,7663,8467,5491,7628,5391,7883,7605,8201,5655,8519,8670,7800,5485,5419,7715,8015,7877,5708,5377,8427,7849,5358,5291,5358,5358,5464,7734,7571,7628,8316,5642,8239,8851,7675,5218,8631,5237,5717,5676,8762,5296,7908,5274,5661,7738,5274,8329,8381,8048,8154,8417,7696,8577,5386,8687,8087,7952,7738,5274,5651,8261,7811,5386,7632,5274,7706,5291,8190,7622,5209,5329,5329,7628,7588,7599,7482,5391,5693,7605,7500,5325,8062,8539,7768,8811,8484,7628,5496,7710,8329,7538,7576,7478,8613,7752,5381,8387,5501,5329,5413,8354,5291,8604,5291,5509,7637,5712,7883,7920,7994,7811,5274,7558,8093,5491,5476,8345,5255,7828,5564,8190,5237,8073,7839,7823,7977,8670,8312,7628,7990,8297,7864,7914,5476,8443,7977,8438,5261,7511,5358,5655,5655,5291,8048,7610,5309,5285,5407,8589,8687,5274,7576,7817,7834,5519,7924,7500,7632,7487,7605,7528,5519,8329,5377,7696,5442,5642,5367,7946,7952,5248,7500,8282,8456,5564,7849,8170,7643,5213,7864,7558,5377,7893,7478,8387,7667,7930,7930,8805,5274,8287,7653,8190,5224,5688,7768,7843,5301,5519,5564,7511,7491,5237,8093,5301,5606,5401,5612,8514,8479,8772,5291,7805,8427,5352,5629,5730,8170,8033,5377,7752,5485,5381,7828,5573,5314,8456,7558,7982,7706,8548,8653,8227,7706,5413,5509,5329,8827,8721,7834,7757,7930,7516,8196,7920,8994,8716,7774,5407,8048,7491,7723,8302,8745,7643,7628,7790,5712,7834,8190,7548,5426,7977,5381,7994,5655,7994,8893,7811,5381,8732,5407,5622,7924,8494,7768,5367,7935,8467,8795,5386,7982,7616,7628,7930,7872,7719,7511,8427,8164,5612,5642,5407,7500,5309,7839,7616,7538,7972,8548,5629,5301,7843,7952,5655,8322,8451,8604,7999,5642,7663,7853,5647,8925,5329,5622,8827,5309,5476,8402,8827,7972,5301,5367,5612,5688,8190,5708,5401,7800,8015,7538,7898,7616,5629,5329,5381,8919,5261,8833,8329,8777,8903,7516,7930,7723,5218,5464,8772,7734,5485,8010,5309,7511,5325,5437,5485,7663,5358,8179,5726,5372,8903,8402,8234,5372,5296,7811,7719,5342,8732,7628,7628,5309,5329,8888,5485,7752,8397,7653,5237,5325,8190,8821,8154,5671,5666,8647,5301,5401,5329,7800,7542,7723,5578,7616,7582,5622,7610,5261,8255,8365,8422,7616,5651,7521,5237,8721,8479,8365,7811,7795,8073,5459,8222,7982,7972,8647,8282,8261,5301,8631,9026,5419,7542,5291,7864,7565,5407,5534,7742,8073,7786,0,7588,8093,5476,5255,7839,5309,7977,8255,7710,8527,8903,8249,8057,8863,7667,8411,7576,5655,8903,5485,7616,7706,5407,5573,8539,7742,8249,5622,5352,7516,8833,7478,7920,7883,5534,7616,7834,8811,5491,7914,7478,5606,7653,8227,8119,8577,8119,7877,7877,8222,8119,7588,8365,5218,8952,5329,5564,5218,5413,8527,8381,5606,5337,7977,7914,8261,7828,5296,7823,7828,5255,8805,5396,8805,7768,5209,8249,5358,8267,8365,8467,7511,8227,7715,8267,8010,5564,8845,5606,5381,5381,7768,7994,7696,5606,7696,7528,7533,7487,7834,7834,5391,7511,8543,5655,5573,7715,7790,8604,8307,8126,5358,8245,7972,5329,7706,5329,7768,7779,8010,5396,7628,7628,5237,7667,5476,7817,7628,5459,5442,5224,8903,8287,5325,5509,9382,7924,5407,8641,5666,5325,5496,7877,7592,8641,7516,8028,5419,5442,8461,5459,5459,7920,8077,5437,5320,5320,7972,5476,8519,8131,5693,5358,5381,8239,7817,5717,8484,7667,8789,5261,5651,8293,5301,7924,8033,5337,7904,5381,5568,7972,5564,5661,5358,5476,5301,7658,8519,8527,7605,8174,7920,8811,7990,7839,5661,8873,7883,5655,8048,7972,8909,8170,5325,7893,5726,7828,7977,5274,5496,5224,9032,5241,5218,5485,7768,5248,8316,5476,8509,7994,5296,7888,7924,5301,7972,8727,8387,5712,8307,5485,7675,8316,7516,8211,7920,7675,7940,7734,5301,7972,8451,8170,7478,8302,8149,8087,7811,5274,8527,5352,8527,8721,8772,7893,7538,7516,7710,5325,7828,8345,7710,5358,7930,8438,7786,8217,7864,7994,7628,8402,8479,7605,8504,7883,5501,7867,5325,7628,5730,8527,7986,7924,7752,5647,7628,7795,5396,7811,7692,7977,7482,5476,5329,5514,5291,7710,5237,8721,5476,7752,5325,8519,8282,5666,7511,7637,8087,8293,7828,8245,8959,8772,7877,8473,7795,8140,7632,5476,8548,5442,8015,8533,7972,9045,5699,5496,7957,5329,5305,5309,7482,7616,5464,7888,8239,7610,5485,7957,8149,5274,7893,7883,5529,7990,7834,8282,5496,8519,8625,5407,7628,7994,5476,7893,7920,5666,5301,5320,7883,8461,7828,8073,8277,8959,5325,7710,7924,5274,5381,5241,7834,5301,8154,8277,5407,7828,5274,7616,7482,5726,5218,8772,7828,7687,8509,8375,8073,7877,7952,8312,8048,8919,8048,8126,8126,7867,5358,5372,5372,7790,8407,5314,5381,5464,7952,7839,8093,5524,7952,5407,5285,5352,5524,7663,7864,8052,5407,5358,5509,8498,5305,5237,7663,7592,8052,5464,8052,7817,7977,7478,8349,8577,8312,8946,5285,7972,7582,7605,5301,8647,5726,5285,7920,8811,8174,7576,7667,8149,8879,5699,5568,7786,7667,7667,7576,7687,5381,8427,8762,8438,7990,5485,7628,7930,7999,7548,9054,5218,7616,7849,5476,8329,5676,7849,8608,8427,7834,5407,7849,7628,8005,7582,5671,8479,7533,7478,5688,8119,8479,5329,8427,8249,5329,5309,5391,5407,7533,8721,8345,5329,7924,7576,8903,8010,7786,5301,7715,7558,8811,7500,8211,8211,7972,7706,7935,5606,7521,5471,7528,5237,7533,8222,5471,7478,8267,8119,9389,8267,7746,7533,8827,7622,7883,5712,7790,8795,5274,7742,8345,8174,5241,5642,7914,8154,7723,5655,5396,7930,5386,7710,8119,5712,5476,7605,5655,5655,7746,8582,8467,5459,5476,5209,5209,8783,7687,8190,7893,7982,7853,5342,7952,5651,7883,5476,7696,8391,8190,7710,8582,5676,8711,5655,7681,7924,7834,5305,7548,8447,7999,5241,7528,7667,8670,7653,7811,8539,7478,5296,5676,7864,5509,5274,5237,8653,8277,5407,5261,5314,7643,5509,8093,7823,7883,8577,9394,5485,5241,8582,8277,5342,5676,8839,5342,8762,5329,5358,7715,7643,8447,5329,5476,5381,7774,7576,7628,7643,7482,7994,8670,5325,5699,8375,5391,5676,5661,8762,5309,5699,5377,8005,5524,7872,8711,7500,8048,7752,7622,5442,5301,5651,5534,5568,8387,8033,7990,5448,5367,7723,8334,8391,7800,8387,7972,8015,8334,7757,5301,5305,8598,8827,7957,7710,7800,8647,7558,5325,8249,7834,5301,8959,8302,8255,7734,7605,8919,7914,8598,8239,7487,5301,8795,7491,7500,8316,8711,7516,8005,5274,7516,7663,5296,8427,5407,7786,8762,5726,5622,8589,5514,8179,8329,8179,7663,8249,5337,8888,7746,5337,8582,5291,8190,7746,8154,8048,8893,7610,8721,7800,5726,5573,5629,8795,7605,7790,5309,5524,7628,5448,8604,7872,5391,5476,7786,7972,8093,7914,7616,8170,7972,5285,8451,8676,7663,5285,8833,8154,8126,5391,5688,8312,5325,5209,8811,7478,5480,7692,8322,5237,8010,8582,8903,7538,8302,7883,5717,5301,5564,5209,7849,8154,7757,8879,7706,8795,5381,5501,7864,8387,7920,5578,7834,5342,5622,7935,5471,5529,7834,7667,8527,8048,8068,7687,5726,7628,7632,5480,5381,8539,8533,5655,7663,7893,7715,7605,5301,8411,8293,5255,5352,8093,8174,5333,8312,8073,8884,7914,8925,7495,5301,7610,8316,7742,5301,5524,5573,7667,5329,7605,5717,8154,7663,5386,7977,5329,7994,5564,7632,8800,5426,8119,8316,8068,5237,5476,5491,8851,5367,8255,8467,7908,8255,8322,8946,7675,5699,7768,7843,7752,7628,9059,5367,8211,5337,8539,7935,7935,7864,7511,7616,8211,5699,7834,8302,8653,7628,7994,7500,7849,5386,5407,8456,8022,7675,8946,5352,8391,8863,8571,8554,7706,8925,8745,7516,7667,8073,5693,5564,7757,7849,7687,5329,7663,5342,5699,5564,7930,7576,8217,7478,7706,8099,5509,7828,8461,8456,7706,8033,7487,7834,5459,5693,8762,5480,5381,7616,8411,5476,5358,7994,8851,5655,8676,5367,8903,7576,5386,5352,5407,8539,8772,5496,7473,8359,8272,5274,8190,5699,5699,7538,7834,8184,5476,7663,7839,7914,7487,5629,7898,5396,8631,7994,8940,5666,8451,5655,5367,7706,5401,7533,7994,8245,7675,5578,7990,7986,5396,9399,8234,5622,7877,5325,5708,5352,5329,5329,8795,8322,8033,8211,5666,7864,7706,5305,7706,8402,8443,8745,8287,7675,5325,8149,8073,5726,8833,8919,7904,7763,7516,5342,7828,5464,7533,8925,8255,8539,5301,5337,5285,7786,7786,8255,5471,5612,7628,5476,7849,7977,5647,5666,7811,5573,5237,5699,8903,5476,5419,7920,5372,8387,8751,7706,7663,8196,5407,7628,8821,8249,9406,8149,7779,5612,7763,8936,5274,8582,5666,5666,7972,5301,5301,8010,5699,8087,7616,9045,7610,7696,5301,8073,8617,5381,9067,8365,7834,5391,5391,5301,8705,5617,8354,7487,7706,7738,8800,5661,5274,5274,7972,7706,7972,5413,8217,7548,8068,7478,5391,5337,7972,7681,5564,5564,5651,8443,7972,7491,5209,7571,5726,7982,7605,7914,5342,7839,7637,5651,5329,7628,7521,7986,7681,8647,7605,7952,5367,7719,5325,8077,5655,5524,7834,5309,8033,5671,8073,5693,8479,8154,8272,7706,7710,8721,8397,8484,5329,5224,5309,8479,7823,5329,5261,5578,7986,5296,5730,5237,7482,7576,8154,5655,5564,8467,7482,5274,7924,5377,5476,5712,7487,8539,5296,5314,5655,5218,5325,5325,8005,7487,7538,7738,7500,8190,8762,7628,5237,5325,7628,7877,8772,7908,5342,5301,9054,8447,8479,5301,8261,8354,7622,8365,5666,8110,7628,7628,7710,5381,8196,7849,5647,5519,7487,5642,5647,9051,5496,8811,7719,5274,5224,8062,5688,5476,5248,5501,8052,8370,7990,7622,8940,5606,5358,7972,8631,5651,8334,7478,5274,8447,5301,5337,8443,7920,7904,8631,5305,7558,8052,8196,7924,8370,7972,7972,5320,8170,5209,8154,5325,7558,8136,9075,7663,7849,8316,5209,7972,5381,5401,8762,5476,5305,5296,5448,8772,5237,7706,7843,5564,8115,8839,5329,8589,8811,7977,5377,7558,5647,8670,8839,7786,8099,5329,7786,7571,8504,9032,8115,8126,5325,7972,7972,8653,8873,7982,7990,5224,5442,5629,7628,7588,7616,9411,5476,5651,8411,5396,8349,5358,7571,5352,7548,8548,7500,7558,8479,7752,8397,7675,7487,5325,5564,5655,8255,8479,7977,5325,5524,5524,7786,7864,5342,8010,5325,5296,7715,5261,8514,7972,5325,5329,7588,5325,7616,7752,5688,7719,5401,7500,5464,5296,5325,5342,7675,8196,5285,5314,8316,7487,7834,5342,8789,7719,5296,8261,5309,8789,8354,5325,8422,7752,5372,8154,7817,5329,8473,7663,8261,5314,7908,7628,5529,8631,8484,7723,5237,7723,8571,7628,7920,5485,5642,8732,9032,5647,5347,7867,8533,5642,8411,8222,5642,5224,8631,7605,5285,8255,8052,7478,7952,5642,7972,8519,5642,7681,5285,8519,7592,7675,7482,7982,8498,8494,7883,7692,7990,9417,7500,7588,5305,8005,8307,5329,7482,8494,8631,8387,7628,8170,7723,5642,5642,7681,8783,7628,5606,7757,8170,8239,5237,7986,8005,7675,5285,8287,8739,7610,7558,8402,7675,5372,8498,8255,7637,8307,5372,7632,7867,5301,7588,5391,9423,7542,8925,8062,7706,7542,7700,5391,5320,7994,8170,8427,7605,7487,7610,5224,5485,5485,8015,5476,7487,7667,8062,8316,8022,7592,7858,8267,5320,5485,5296,5381,5255,8676,8670,8827,7994,5647,7994,8099,5485,8795,5485,7605,7605,5333,7658,7628,5647,8811,8211,7605,7643,8762,5325,7675,7904,8099,5325,5655,7999,7962,8732,7994,8467,7982,8461,7675,8433,7920,5358,5407,5647,5647,5261,8119,5367,8539,8467,8136,7710,5647,5301,5647,8438,8222,7681,7487,5564,8387,8543,7994,8245,5209,8539,8093,8115,8293,5564,8131,8010,7977,5717,8010,5391,9427,8312,8582,5407,7723,7610,5305,8411,7977,7952,7972,8282,8329,5642,5274,5358,7723,7795,8919,5285,5309,7768,7962,8613,8048,8582,7605,8316,5426,8245,5485,8604,7908,5568,5485,5358,8635,5301,5241,7478,5501,8267,5647,8994,5301,7843,8170,8721,5407,5480,8316,5255,7828,7558,7940,5391,7920,7571,7675,8670,8805,8604,7834,5524,7908,8811,5442,7904,8461,7935,8093,7542,5564,5407,7972,8277,7986,5358,5358,5358,5717,7710,8174,7628,5407,7999,7786,7710,5241,5485,8302,7576,5671,8073,5325,7516,7940,7667,5564,7687,7786,8571,7542,5496,7667,7805,8721,8467,8467,8170,5661,8115,7867,5480,7632,7883,7675,8893,5407,7473,8411,8272,7521,8509,9435,5655,8119,5426,5391,7605,8354,8456,7904,5476,7482,7675,7500,5381,5464,8845,7663,8010,7565,5622,7858,8329,7605,8062,7867,5730,8190,7622,7542,5309,8005,5666,7957,8267,7849,9441,8201,5442,5524,7893,8893,5241,8131,8077,7542,7675,8498,7817,8334,8762,5301,5358,5314,5573,8635,7710,7605,7582,7610,5347,8345,8201,5301,5296,5358,8539,7888,7834,5352,9367,5622,5325,8647,8307,7628,7763,5622,8115,5237,8039,5476,8447,7877,5568,8140,8461,5442,5325,7952,7588,7957,7687,5329,8184,5612,8498,8345,5612,7888,8676,5647,7558,8073,7643,5358,8903,8239,7883,7828,5564,5407,8438,8005,8539,8255,8919,5464,7962,8149,8365,7675,8762,5391,7864,5642,5213,8222,5325,8811,8227,8762,5480,7834,8073,8903,5381,7990,7610,7542,5401,8073,7576,8277,7521,5347,8873,7628,8354,8052,5655,7658,5377,7616,5442,5325,5218,8509,8909,7588,5391,8010,5448,5534,7558,5314,8909,5329,5329,5407,5480,7898,8159,8277,7610,5606,7478,5347,7542,8354,7548,5726,7817,8411,8676,8857,5301,7752,7632,7616,9447,7843,7500,5651,8539,8010,8140,5329,7914,8293,5661,5666,5274,5209,8447,8879,7710,7542,8473,5358,8282,7478,8539,8015,8110,5501,5358,8402,7972,5301,8039,8322,5309,7904,5301,7715,8170,8312,5305,8140,8184,8322,7779,7588,7681,5301,7706,7588,5261,8316,5209,8604,8354,7576,8010,9345,8126,5471,5501,5471,8539,8119,7779,5274,8772,7779,8179,8845,5301,8354,8245,7491,9452,8402,8126,8015,7516,8548,5485,8039,7920,8589,8589,5419,7491,8110,8073,5730,7500,8170,7982,5407,8365,7839,5301,5347,5564,8447,7930,8387,5519,5524,5629,5688,5666,8340,5329,7834,5651,8589,5501,5372,8756,7872,5305,7516,8261,9457,8329,7779,5419,7904,8073,5391,8504,8548,5274,7495,8641,8077,5301,7990,8539,9345,7681,5347,5651,5476,8484,5237,8653,5241,8484,9021,5325,5496,7576,8329,8354,8062,7628,7849,5509,8504,7752,7752,5688,8136,5209,7853,8816,8998,5381,5320,8104,7920,7482,8302,8062,7972,5325,5501,8267,8504,7883,5309,7588,7565,5612,8249,7482,8154,8033,5309,5564,7972,7658,5209,5442,5642,7687,5666,5237,5564,5661,7914,7853,7605,5726,5476,7605,8670,8811,7924,5564,5480,5655,5491,5314,5391,7548,5274,8443,7592,8282,8170,8716,8527,8397,5501,5485,8504,7946,5661,5381,7605,5442,7795,8126,5291,8582,8272,7839,8543,5237,8272,5661,7757,5285,7768,7828,7632,8190,5224,7533,5708,9462,8316,8164,7681,7482,5666,5419,7768,7500,5329,5459,8316,7487,5419,8293,5296,5291,7972,5407,5676,7710,7746,5655,5329,5274,5688,5320,7898,8613,7675,5509,8196,8845,5564,5377,5519,8504,5564,5237,5564,8805,5342,7548,8653,5564,5485,7982,7548,7834,5309,8267,5325,8456,5391,8548,7516,7888,5301,5329,7779,5442,7768,7628,5480,7706,9032,7565,5509,7542,5274,8087,7994,7706,8272,5509,8461,7599,8716,8863,7774,8190,8402,8099,7511,7706,8427,7930,8287,8093,7746,7706,7867,8772,5241,8234,7967,5476,5209,8093,7779,5309,7893,7872,5261,7628,8548,5381,5329,7500,5426,7994,5209,8170,7521,5407,7990,5274,8821,7746,7706,8676,7548,8539,8438,5676,8467,5661,7715,7487,5688,8411,7811,8845,5325,7746,5274,5564,7994,7628,8131,7622,5661,5401,8456,8411,8267,7834,5377,7795,7972,7710,7952,7768,5209,8022,8467,8062,7500,7957,8387,7648,5285,7616,5309,5476,8863,8447,7898,7786,7533,7576,5407,8451,7768,8617,8267,5367,8952,8929,5426,8272,5564,8267,5655,5524,8613,7982,5437,8909,5274,7588,5655,8548,8422,7653,7774,5358,8527,7478,5301,5612,7482,5237,8548,5666,5622,7542,7800,7972,5329,5305,8647,5401,5651,8190,8548,5325,5261,5342,8010,8952,5413,5476,5514,8711,7576,8322,7643,8473,5237,5320,5519,5296,5564,5296,8255,8833,7571,7972,5261,8589,7516,7628,8010,8239,5485,9021,5407,7648,7877,7872,5519,5296,5396,5442,8287,8322,5485,8245,8119,5296,5237,7482,5407,8170,7811,5372,5274,5381,5285,8073,7877,5476,5386,5342,5476,8635,7500,5325,8888,7542,5347,7734,8329,8857,7706,5712,7883,5305,5666,5661,8857,8582,5337,7500,5666,5274,7877,5237,5329,7877,7616,7774,7521,5274,8397,8857,7632,5237,8479,5347,5688,5377,7487,8484,7628,8062,7576,5274,7849,8354,5325,5509,8582,5325,8504,7994,8267,7853,8104,7920,8302,8461,8136,8467,8548,8099,5501,7972,7752,7565,7533,5708,8816,5320,5274,8811,5661,5564,5401,8443,7914,5237,7972,7548,7576,8282,5564,5314,8670,5476,5485,5491,7898,8164,5381,7692,7648,8647,7946,5296,9462,8190,5419,7632,5291,5285,8316,8845,7675,5676,5519,5309,5342,8272,5325,5377,5325,7500,8093,5578,7500,7706,7893,8287,8015,8234,8119,7994,7746,8087,5413,5442,7790,7511,7768,8548,8427,5509,5329,8863,5209,7990,7521,5407,7746,5347,5377,7622,7706,7834,5296,7487,7888,8676,8411,5274,8131,8863,7811,8539,5329,8411,8438,8467,5309,5564,8613,5655,8527,7582,5524,7877,5301,5476,5407,8888,8647,7800,5666,7616,5612,8711,5514,5661,8239,5261,8833,5419,7542,5372,7811,5285,8857,8998,7538,8461,8998,5699,8762,7511,8073,5255,5730,8617,8093,7616,7616,8745,5367,7616,8617,8772,7768,7706,5534,7616,5666,8772,5329,8721,7599,5291,5291,7599,7653,5209,7632,5564,7962,8048,7786,7605,8170,7790,7786,8438,8461,7904,7795,7786,5676,5564,7516,7834,7999,8397,7795,5314,7628,7972,7542,8048,7823,5320,7487,7920,7538,7511,7904,8048,5301,8783,7994,5358,5325,8833,8316,7746,5325,5676,5651,7952,7632,7920,5325,5325,8375,7924,7763,8322,7738,5712,8062,5476,5337,5501,5651,5524,7924,7786,8548,8721,7576,8093,5476,7605,8539,5519,7542,5476,5274,8164,8658,8658,7542,7811,8397,5274,5476,5274,7817,5274,7628,8845,5381,5629,8467,5237,8010,7834,5501,5261,5401,5666,8845,8417,8322,7877,7628,7817,5476,5248,5534,5501,8062,5325,7710,8402,5564,8745,9054,5476,7986,5476,7920,8093,7511,7972,5726,5237,7628,7521,5237,8196,7706,8255,7628,8222,7675,7719,8196,5419,8539,8402,7893,8272,8302,7478,7605,5407,7605,5391,7858,8548,5509,5296,5730,7849,7849,7653,5708,8647,5476,5401,5726,8222,7516,9054,8255,7487,8010,5476,5296,8190,8479,5642,8149,5622,8898,7790,5578,7706,8131,5622,7994,9021,5459,7696,9045,8821,7696,8716,5622,5666,7696,5209,8845,8783,8052,8267,8994,8987,7710,7487,8227,7977,8170,7849,5573,8149,7599,5325,5629,7742,7957,8417,8131,8334,7599,7957,5642,7888,8005,5337,5305,8811,7696,5578,8805,7491,8245,8022,8196,7710,7710,8447,7883,8062,8845,8170,7920,8077,7883,5358,8170,8093,5241,5337,5377,8239,7610,7972,8381,5391,7696,8387,5459,7795,5237,5401,8427,8119,8577,8751,7864,8170,5255,8539,8039,7752,7500,5647,8827,5329,5237,8805,5329,8170,8005,8170,8005,8827,5291,5534,5237,7935,5401,8827,5708,8119,8022,8805,8005,8077,7972,7883,8381,7706,8504,7478,8805,7610,7628,7628,5342,7487,7588,5476,7588,7487,7999,8387,8110,5476,5333,5325,7542,5501,8340,5717,8433,7811,5464,5496,8504,7675,8461,7576,8467,8762,8461,8164,8811,7571,8494,8227,7786,7972,7653,5564,7893,5301,7681,8170,5407,7565,9032,5337,8136,8560,8800,5337,7817,7628,8354,5642,5309,8312,7542,5237,7681,7893,7710,5485,7658,7914,7548,8015,5661,7914,7994,7576,5459,7883,7893,7904,8073,5726,8329,7930,7795,7658,5209,7692,7972,8316,5476,5209,5564,8334,5655,5274,7571,8456,7977,8119,7972,8222,5337,5726,7982,5301,5476,7482,7500,7924,7610,7582,9012,5329,5485,8293,7834,8658,7473,5476,8687,5671,5717,7582,7972,7675,7914,7504,7696,7864,5426,7858,8766,5209,7628,7558,7681,7972,8277,5274,5661,8402,5661,5305,8349,5325,5396,8170,7908,7730,8205,7706,5386,5651,8789,8375,5509,8073,8461,8721,5688,5285,5485,7888,7946,8451,8577,7582,8805,5712,8104,7914,5661,7834,8397,5381,5519,8443,5480,8174,7558,7786,5564,8307,5480,5453,7628,7994,7924,7795,5688,5401,8015,8402,7972,5391,7576,7920,7864,7605,8795,5329,8005,7805,8811,5606,8028,5485,8805,7986,5476,8345,8504,7914,8287,5564,5564,8170,7893,8322,5509,5496,5342,8164,8548,5693,7478,5712,7957,5622,7972,8694,7795,7742,8903,8345,5426,5386,7628,7478,7823,8255,7548,7994,7864,8159,5647,5642,5407,7994,5285,7628,7977,8676,5358,8227,5564,5274,8447,7746,8631,8909,8422,7898,7957,5329,8631,8427,5708,7588,8863,5717,5476,8073,8239,5325,7920,7628,5524,7610,8888,8554,8227,8196,8039,7834,8663,8647,5419,5564,5629,5305,5237,5622,5329,5285,7952,5329,7972,5642,5291,5401,8316,5352,8447,7687,8239,8402,7864,7675,5325,8010,7972,5285,5261,7478,8402,8489,7521,5342,5501,7616,8772,9361,7883,7908,8789,8068,5401,5358,5218,5291,5573,5476,5676,7986,5401,5514,8005,7786,7706,5386,8888,8329,8613,8154,8205,7828,8473,7834,8739,7986,7834,5329,8154,7952,7632,5726,8205,8375,8447,8205,8033,8577,8494,8687,8205,7516,8687,5209,7478,8077,5442,5325,5688,5688,5325,8077,7972,7972,7972,7999,5459,7972,5519,7658,5655,8484,8329,7628,5496,5642,7628,5248,8201,5237,8484,7628,7628,5426,8170,8484,7528,5617,5617,7883,7994,5391,8772,5320,7538,5606,7883,7734,7734,8721,7972,7576,8732,8598,5367,7478,7576,8479,8461,5261,5476,8613,8994,5491,5241,8282,8732,8560,7565,8282,5699,7898,7548,5407,8777,8093,7605,8115,7888,8073,5274,5717,8732,7977,5329,8062,8334,5237,5730,5564,7500,8527,7994,8670,7628,5476,8805,5255,7994,7817,8249,5464,8479,5464,8087,8548,8411,7790,5459,7800,7898,5496,5476,5514,8777,8340,7957,5491,7877,5642,8316,7982,8903,8772,5329,5476,5381,5407,8255,8249,7706,5329,5329,7877,8617,8682,7779,5407,5407,7719,7834,5564,5255,7834,7834,8340,8340,5476,7811,8805,5688,7663,8716,7681,8805,5381,5352,5509,5476,8745,5358,7763,5471,7542,7628,8387,8851,7723,5647,5367,7706,8211,5209,5296,8539,8174,7521,5358,5564,8068,7994,7478,7972,7706,5261,7752,7542,8504,8998,5568,5381,5329,7500,5325,8196,7706,8467,5501,7904,7872,7528,5325,5396,8277,7565,7478,5291,8131,7972,8267,8196,5708,5573,7790,8387,7893,7622,8560,8827,7482,5337,8411,5476,5296,7994,5301,5401,7864,5274,8227,8777,8249,7588,8484,8467,8297,8093,7658,7681,8539,7622,7723,5301,5573,7990,7715,7487,8222,8131,8438,5476,7893,8170,7920,8893,7692,7605,8447,7516,5224,5261,5688,5642,7616,8543,8062,7616,7687,7582,8170,5459,8077,8811,8539,5255,5712,5564,8716,5296,5358,8184,5564,5314,7790,8010,7867,7790,7790,7904,5209,5305,5358,5476,7710,5325,5485,7610,7696,5453,5391,7817,7616,7723,5717,8391,5301,8164,7482,8682,7542,7904,8033,8539,5519,5291,8577,7478,5325,8005,8604,5248,7839,8131,8687,8211,7710,5285,7768,5564,8670,7605,5209,5419,5296,7482,5496,8048,8164,8613,5248,8211,8316,5617,7883,7605,8329,7811,7473,7768,5671,8245,5485,5426,7768,8340,5485,7696,8345,8087,7710,8504,5407,5377,5464,5255,5301,5329,8149,5296,9345,5296,7977,7648,5358,5476,8255,5296,7706,8903,5426,8164,7643,7616,7632,7616,8329,5309,7962,7482,8349,8062,7576,5642,8015,7616,7710,8307,5564,8504,7482,7849,5358,5476,8267,8539,5647,5342,5342,7558,7599,7478,8140,5237,5485,5301,5564,7605,5305,5301,9345,5325,7888,5688,8302,5612,8033,5485,8170,5712,8249,5426,5485,7935,7528,7667,7834,8805,7757,8451,5509,7653,5337,7628,7977,7599,5337,8816,8670,5274,7843,5564,7864,5305,8334,5642,7823,7715,8795,8277,5401,5391,8494,5241,5401,8154,5337,7616,7616,7994,8104,8211,5712,7839,5509,5485,8539,5726,7582,5407,7967,7786,7986,5329,8170,7994,7667,8504,8653,7849,8772,5209,8594,8039,5564,8099,8227,5442,8022,7805,5237,8514,7774,7904,5301,5647,8073,7653,8222,8196,5676,5237,7491,8539,5381,7734,8903,5309,7999,8411,8845,5396,7786,8093,7893,5309,8345,7599,5413,7576,7834,8170,5407,7516,8772,5320,5606,8479,8359,7706,8022,8402,8272,8227,7930,8227,5476,7893,8277,7706,8249,5255,7994,7883,8302,7811,7834,5476,5241,8994,8201,8964,8716,7982,8170,8484,8964,7632,5442,8539,8249,5476,5647,5337,7616,7616,7616,7675,7730,5688,7990,7521,5509,7628,5337,5564,5401,8190,8467,7823,8115,8494,8104,7675,7628,7858,7790,8345,7864,7632,9467,8154,7795,8504,7746,7571,7571,8170,8222,8110,7715,5661,5661,5726,5407,5564,5329,8052,9054,8527,8062,5237,5730,5320,5647,7605,5688,7521,7914,5717,5381,5485,5651,5464,7914,7734,5671,7582,7500,7542,7994,8073,7994,8994,7990,7982,8205,7977,8676,5642,7667,8827,5352,7994,5274,8005,8805,7643,5237,5391,7706,8604,5386,5642,8467,5218,5218,8467,8539,8653,8721,8354,5529,7877,8509,8005,5578,5419,7957,7994,5213,7867,5448,7482,5476,7542,5391,5237,7930,7843,8293,8249,7849,5699,7940,8467,5301,8170,5237,8334,5573,7811,5647,5476,8354,5655,7542,8443,8312,8451,8467,5573,7628,7908,7533,7734,7734,7888,8851,8227,5501,5301,5241,5407,5325,8893,8777,8869,8571,8052,7962,5655,8391,8653,7500,7511,5237,7786,8039,8164,5534,5671,8451,5391,5629,7632,8613,5612,5274,7930,5642,5377,5358,8548,7599,8287,5519,8604,5237,5347,7528,5325,5301,7864,7872,7628,5407,7616,5305,7757,7681,7790,8316,7605,5352,8179,5401,8827,5237,5255,5688,5309,8104,5459,7994,8422,7723,7628,5476,5325,8239,5358,5329,7588,8201,5442,7632,8190,7994,5717,8093,5325,8647,8234,7653,8539,7588,5329,5617,8987,7746,7763,8329,7800,8073,8539,8451,5578,9367,8190,7994,7663,5708,5651,7957,8140,7548,7774,8159,5419,5651,8827,5453,5296,7667,7482,5407,7834,5320,7482,8005,8033,7982,8302,7786,8170,8519,8205,5661,8322,8307,5401,7516,5568,7663,5358,5301,8467,5325,8329,5218,8010,8249,7742,7877,7828,8329,5285,7872,7872,5464,7628,8255,8391,5396,5407,8827,8267,8222,5337,5726,5329,7648,5296,7864,8909,8438,5291,8397,8316,8613,5501,8005,8598,7872,8387,7500,5564,5291,8903,7478,8316,7487,7675,5237,8987,7994,8641,7706,7542,8267,7962,8093,7628,5367,5218,5325,8062,7487,7706,5666,5255,8267,7628,5237,8052,8073,8052,7663,7994,5296,7994,5325,7839,7521,8375,7763,5476,8873,5419,8005,5296,8322,5401,7990,8467,8245,5377,5629,5661,5358,8427,7962,5401,8010,5693,5381,7786,5661,8149,5407,8898,8062,7730,7528,8329,5642,8239,5448,5320,8329,8217,5274,7994,8766,5442,8349,8613,8647,7658,7706,8772,5485,5655,7696,8447,7616,5524,8827,7675,7706,8048,5407,7500,8005,5381,5708,7757,5476,5347,5309,8777,7622,7723,7867,5274,7516,7742,7795,7588,5329,5476,7500,5491,5301,5476,7986,5666,7706,8539,7972,7930,8909,5642,5305,7495,8647,8010,5448,8772,8422,7723,5337,7994,7511,5296,7558,5524,7877,8249,5301,5320,5573,7663,7516,5372,8170,8033,8277,8154,5480,7478,7872,5629,7706,7946,5329,7588,5717,8211,8267,8751,7628,5320,8164,5237,7558,5305,5381,7588,5407,8322,8077,8073,8261,5476,5274,7628,8170,9353,5401,7482,8322,7616,7610,8316,7994,8354,8093,5726,5717,8010,5651,7628,8005,5347,5325,8903,8427,5666,5666,5396,8527,7972,7994,7982,8427,8359,5301,5325,5651,7982,8359,7632,5325,8411,7828,5407,8987,5476,5666,7768,7675,7893,7834,8514,5432,7982,7982,5329,8293,5329,7487,7675,7542,5573,7982,5437,5480,5564,7500,7500,5329,7692,7628,8052,5496,8170,8039,8222,7834,8427,7542,8005,8282,5237,5320,5248,5688,7757,5325,5688,7558,5391,7542,8539,5578,7628,5564,8811,5237,8062,5296,8249,5717,5342,5367,7637,5391,5476,7538,8411,8783,7864,8994,7710,8354,5291,7752,7872,7898,5358,8354,5509,7667,7706,5320,7482,7706,5606,8467,5291,5296,8196,7706,8174,8387,7839,7715,8641,5568,5501,8560,7817,5372,5564,5224,5381,5564,7710,8307,8647,5274,5642,5655,5688,5337,7687,7849,7710,5337,7849,7653,8170,5301,5564,8297,7687,8131,7920,8073,5274,7605,7757,5432,5224,7786,8297,5726,5617,8964,8093,7786,7883,7786,7616,5301,7558,5726,8711,8170,7839,5296,5480,8211,5564,7924,8631,8577,7605,5476,5274,8144,5285,8170,8144,5255,5325,5201,5218,5476,8381,5305,7723,7867,7952,7817,7972,7800,5241,7972,7977,7648,7487,7706,5426,8577,5688,8670,5218,7977,8839,8751,5635,7864,8136,5320,8190,8527,7914,5655,5564,5274,5578,7478,5564,5301,7843,5358,5573,8467,7582,8613,7883,7834,8805,5329,8839,8631,7795,7972,8022,7893,8170,5651,9361,7706,5661,7667,7687,8249,8322,7487,5237,8099,5301,5459,7681,8272,8451,8811,7653,7628,5655,7893,7920,7994,5471,5476,8467,8170,7768,7542,5476,8447,8745,7994,5509,8039,5509,7582,7864,8282,8539,8484,8316,7924,7616,8039,7877,8057,7986,7990,5325,7849,8805,8349,7500,7746,7628,5381,5391,8190,5464,7834,8411,8110,7994,5564,8467,5712,7994,5564,8821,5661,5337,5688,7790,5367,7616,5391,5248,5629,7605,8548,5377,5564,8467,5296,7663,5676,8762,7982,5688,5459,5301,7795,8267,8170,7823,7957,8658,8164,7616,5274,7558,7843,8334,7487,5237,8461,5237,8467,5534,8057,5448,8015,8164,5325,5325,7478,5688,7653,8196,5476,8093,5396,5629,5476,5241,8716,7849,7982,5296,7538,8391,9471,7774,7616,8909,7628,5381,5377,8571,7800,7834,8987,5578,8340,7710,8539,5708,5329,8087,7972,5629,8033,8647,5726,7920,7628,5407,7632,7957,8196,7548,7482,5419,8952,5655,5285,5509,7972,5578,7538,7538,8039,7511,7790,5237,8827,7967,8190,7622,5377,8015,8211,7521,5305,5655,5476,5688,8594,7972,7924,5352,5285,5726,5432,8239,7533,7952,5237,5325,5622,5464,7893,8149,5291,8509,5296,7482,7877,5285,5261,7648,5248,8851,5248,8329,7487,7542,7558,8903,7687,5661,5261,5476,5485,5347,7877,7706,7839,7521,5617,7632,8845,7616,7637,8196,8115,8190,5401,7605,8115,5661,8211,5661,7706,8164,5413,8249,8052,8821,8154,5314,7972,8888,5661,7763,8010,5666,5524,7986,5651,5301,8104,5301,5688,8077,5329,8762,7675,7605,7610,5301,7610,8245,7491,5413,8987,7786,5676,7616,7542,5237,8179,5726,7768,8762,5237,7800,5291,5381,7605,7687,5661,5464,8816,8456,8293,7528,7548,5642,7696,5448,7763,5237,5426,7834,8795,5248,8519,8039,8190,5320,5274,8316,7610,5381,8533,8387,7982,7994,8721,5248,7994,7957,8548,7946,5726,5476,5476,8201,5396,7628,8473,5496,5476,5261,8033,5564,8234,5501,8952,5381,8136,5568,7883,8915,7548,7548,5305,7706,5578,5274,7972,8504,8196,5309,7667,8467,5712,7637,5708,5453,8959,8959,7977,5480,5274,5491,8222,8174,5642,8329,7558,8670,8772,8170,7946,5320,5519,5655,5476,8994,8073,8539,8631,5296,8234,7972,5325,8297,7533,7883,7790,8073,7935,5568,5274,8239,5726,7930,8234,5237,8451,5314,5622,5564,5476,8196,7692,8504,5419,7977,8879,5305,5381,7738,7632,8613,7605,7952,7482,7774,8577,8144,5329,9345,8903,8115,7734,8800,5453,5320,7977,8653,7558,5301,5676,5381,8057,7908,5476,7628,5655,7511,5688,8658,5325,5476,8201,9345,8839,8302,5325,5301,5401,5401,7692,5407,8936,7877,5358,8613,7491,8467,8093,7982,8227,5442,7888,8473,7779,8227,8456,5305,7893,8467,7632,8039,7834,8762,5237,7972,8170,7972,7533,7972,7795,7730,5320,5377,5377,5564,7667,5661,8411,5459,8653,7616,5519,7610,7849,8467,8222,8222,5564,7628,8641,7834,5296,7930,5573,5329,5237,5617,8267,8245,5651,8245,8359,8164,8772,8613,8716,7592,8631,8282,8068,7710,8940,5453,7616,5381,7542,8359,7692,5401,8222,5301,5578,5391,5329,5671,5476,5661,5274,7994,8473,5241,8073,5419,9367,8222,7521,7786,7734,8604,7675,5407,5573,5325,7883,8925,5285,8073,7521,7528,5432,7648,7628,7710,5708,7888,7952,8340,5342,8789,7877,5401,5358,5309,8903,5320,8772,5358,5347,7834,8613,7706,8307,5320,8631,5391,8126,5661,8073,8033,5320,7610,5237,5274,5347,8539,5491,5564,5320,5391,5407,7533,5476,5285,8387,5237,5314,5642,8527,8772,5301,8473,5564,7904,7849,7706,5325,5407,8888,5291,8533,7952,7893,8282,8282,5651,7628,7763,5391,7487,8427,8239,5291,5651,7681,5401,5642,7972,5285,5237,5261,7994,5237,7710,7628,5347,8322,8762,8196,5314,5325,8391,7616,8131,7528,5314,5309,8721,7516,5314,7632,5726,7605,7994,5291,8560,7628,5347,7914,8539,8721,5407,8721,8427,7952,5651,5391,8427,5347,5291,5325,5237,8539,5485,7628,8131,5309,5726,5285,8484,5309,8140,5291,7706,7972,5325,7786,7883,8397,8539,8987,5396,7768,5717,7710,5381,7952,7817,8062,5381,7643,5688,5661,7588,8447,5325,7500,7972,7687,5358,5426,7982,8987,7877,7972,5529,5573,5391,5476,5329,5291,8068,7834,5237,7834,7930,5693,5564,5688,5381,8653,8062,5325,7565,8329,7952,8062,8190,8272,7500,5381,5476,8504,8329,5237,5261,7706,5480,5325,8772,7914,7864,7924,8387,5642,8022,7616,8190,7528,5291,8093,8884,8052,5337,7571,5305,7565,7500,8783,5617,8548,5391,8068,7500,7893,5476,7588,8447,7849,7752,7582,7500,5655,7605,5241,7610,5209,5209,8427,7786,5391,5464,5459,8093,8539,7500,5301,5309,7533,5309,8811,5476,8170,5708,7687,5480,5476,7675,7999,5255,5358,7504,5726,7904,5509,8443,8653,7576,7839,7558,5218,7500,8329,5476,7478,7653,5391,8052,5285,5391,5606,5496,8131,7952,7768,5485,5381,5396,5671,7521,7994,7914,5442,8316,5655,8427,8391,7864,5296,7516,7779,7795,7599,5413,7681,7710,5666,7605,8582,7473,8267,7628,8909,5325,7972,8504,7616,7843,7994,8582,7864,5391,7823,7883,8073,8345,5337,7946,8255,5612,5309,8391,7628,8509,7558,5381,8227,7478,7478,5524,8022,7734,5296,7952,8851,5655,8851,8762,7715,5305,8839,8447,7990,5296,8222,7653,5342,8732,8190,7893,7710,7738,5476,8136,7482,7757,7920,5325,7877,8033,9032,5325,7706,8772,8863,7994,7893,8745,5407,5241,5476,7967,5426,5314,7779,5407,7605,8052,8099,7914,8473,8359,7858,7628,5459,7500,7858,5391,8190,5391,7643,7834,7864,5329,8539,5661,5564,7700,7632,5407,8635,7628,5209,8732,5237,5296,7482,8345,5274,7823,8033,8527,7605,8340,7834,7946,8190,8554,7495,7706,8711,7491,7994,5296,8909,7967,5261,5407,8073,5337,5464,8154,5717,7616,5651,7675,5651,5237,8322,8033,8293,5377,7588,7898,7710,7542,5391,5419,8467,5661,5529,7706,5642,5642,7599,7628,8473,8827,8745,5301,5305,8919,8987,5578,9476,7687,8115,5381,5401,7957,8504,7742,8312,5237,5314,5708,5301,5309,5578,5476,7982,5419,7800,7839,7653,5396,7877,7768,7542,7719,5237,5617,8217,5241,5386,5347,7864,5209,5291,5325,9021,5285,8073,5296,5622,7715,8982,7687,5391,8255,8772,8982,7734,8119,7706,5372,8772,7681,9481,7542,9487,5285,5485,5401,8417,7538,7663,8427,7920,5296,7893,5476,5476,5261,8261,5642,7542,5573,8658,7982,7576,8052,7491,7616,7605,7628,5407,5296,8762,5325,8190,8365,5666,7914,7994,7920,5301,7599,8411,5578,7834,5476,5442,7823,5442,7982,7877,8261,7482,5347,8033,7516,5578,7811,8365,7999,8903,7972,7834,8762,7834,5325,5693,5564,8504,5325,5381,8062,8272,8261,5261,7706,7823,8329,5476,8329,5325,5476,5419,5296,7742,8170,8387,8884,7500,7864,8099,5476,8022,8527,5617,7565,5291,5241,7786,7849,5255,8443,5391,7849,7687,7588,5655,8539,7967,7839,5726,7999,8711,5476,5476,8582,5666,5391,7795,5391,5381,5296,7558,7605,7914,5396,7883,8131,7768,7952,8329,5476,5241,5671,7521,5496,7643,7500,5708,5381,7478,7628,8255,7478,5524,5337,5296,8582,8851,8022,7663,8745,7605,7967,7495,8762,5314,7893,7990,7994,7628,8839,7914,7757,7877,7779,9032,5342,8772,5381,5476,8711,8033,5459,5464,5407,5661,8293,7491,7994,7864,7628,8190,7877,5209,8345,7834,8539,5651,7858,8795,5305,8903,7588,5661,5642,7898,5391,7542,5651,5309,7800,5578,5407,9476,8772,8982,8255,5347,7734,5291,7834,7542,8427,8033,7786,7849,8062,5367,5291,8062,7653,8062,5237,5381,8154,8239,7653,8687,7610,8307,5419,7706,5391,5301,8919,5509,5358,5320,5274,8527,8940,8940,7811,7834,5391,5573,5296,8863,7628,8068,9494,5407,7904,5730,7864,8387,7521,7811,8903,8800,5671,5726,7908,5237,8888,8052,7628,7605,7977,7930,5237,8073,7752,7811,8888,5564,8548,5501,5476,7972,8222,7637,7653,7920,8136,7667,8811,8136,5337,7757,8805,7487,5519,7811,7610,5352,7849,5305,8190,7790,5301,8447,5358,7628,7977,8641,7790,7920,5237,7930,8170,5305,5573,8772,7495,5291,7930,5655,7675,5564,7774,7817,8594,5476,8560,8249,8751,8154,8010,8772,8721,8115,7972,7696,7605,5391,8653,5209,7696,7952,7858,8411,8349,5491,8119,8582,7893,8964,5476,7710,7790,7849,5358,5329,8504,5296,5671,9032,5209,7977,7746,9353,7706,5671,8205,5407,7616,7893,5655,5617,8888,7643,5688,7558,8732,5325,7576,8277,8365,7487,8033,8987,5606,8456,8845,5274,8349,5407,5342,5564,8772,8827,8467,7972,7628,8015,8762,5309,8504,8598,8267,7706,5437,8277,8527,8277,7967,8119,7663,5622,5564,8131,8159,8115,8077,7994,8039,8033,8052,7972,8863,8473,8267,8833,8772,8365,7834,8322,5261,8863,7616,5309,7930,5285,8205,5358,8762,5320,7834,5573,8190,9501,8811,5407,7930,5655,5564,7542,7817,7774,8115,5274,8126,8015,8154,7972,8010,8772,8751,8411,8131,7605,8721,7696,5407,5358,5391,8964,7952,8582,5491,7790,7893,7849,5476,9353,7972,7977,5296,5209,8504,5329,8205,5209,5671,5309,5688,5655,8277,5617,5564,8762,5325,5320,8987,7487,8005,7487,8845,8456,8772,8277,5407,8863,5564,5622,8159,8115,7834,8365,8805,8833,5261,7616,8811,7710,8190,5617,7823,7504,5237,7491,7849,7558,5578,5367,5629,7967,7967,5301,8484,5564,7999,8811,7706,5261,7723,8110,5274,7957,5291,9509,9516,7839,8033,5671,8772,8170,8783,7628,8033,5329,7605,8354,5726,5381,7710,5573,7795,5529,7839,7681,7888,8577,8811,5612,5407,8170,7999,5642,7482,8170,8302,8467,5629,8287,8402,7977,5726,5381,5688,8811,5377,5726,7542,5464,8255,8255,5642,5372,5377,7972,8365,8365,8443,8994,8222,7692,7990,5471,5291,5564,7738,5407,5237,7972,7730,8898,8994,7706,8354,8322,5480,7658,5476,8184,5325,8851,7904,5459,7692,5480,7977,7839,8174,7500,7605,5524,5459,7972,5564,7533,8170,5261,8073,8447,8170,5301,8682,5476,5325,5491,5274,5285,5296,7605,5622,7473,5635,7952,7723,8005,8140,7710,5329,5413,7972,7977,7681,7774,5407,8005,8255,5358,5274,7888,5325,8170,5325,5320,5647,5573,9345,8077,7675,8073,7710,8658,8711,5320,7843,5218,8316,5442,8255,5612,7738,5407,7706,8494,7994,5314,5381,5325,8077,8170,8170,8099,5329,8873,8359,8170,7710,5509,7768,5377,8073,8443,7867,5325,8140,5237,7774,8548,5352,7972,5241,7828,7972,7628,7888,7696,8104,5218,7548,8539,8827,8033,8663,5407,8005,5629,8170,5564,8443,5459,7858,8110,8048,5377,5496,7478,5407,8479,8451,5237,7738,8322,8427,7828,8427,5325,8077,7800,7511,8427,5358,5248,5329,8170,8140,5629,5491,5612,5237,8005,5325,7972,8322,8539,7800,8548,5401,5413,5372,5501,5432,8422,7946,8919,8554,7511,8010,5573,5573,5471,8073,8140,8589,5291,8307,7516,5329,8255,8255,7734,7738,5320,8498,8772,5372,7738,7482,5358,7605,8170,5573,8255,5471,5442,5325,7478,8354,8184,7516,8577,7972,5301,7972,7877,5573,8676,7994,7610,7516,5274,9361,8857,5347,5661,8261,5661,8077,5407,5726,5381,8498,8857,8022,8005,5291,7516,7914,7817,7482,8272,5726,5377,7888,7888,8888,8154,5325,7542,5651,8381,5476,5629,5407,7482,7834,8745,7834,5726,5651,8149,7952,8104,5325,5377,8312,8919,7628,7935,8387,7952,7667,7994,8354,5666,8539,8190,8010,8504,8498,5329,5320,8068,7742,5329,7864,8136,7706,7790,8821,8504,8010,5622,8062,9525,5726,5464,8539,8093,5491,5301,5655,8010,5381,8608,5352,8359,7786,7628,7610,7605,8164,7864,7904,7576,7972,5642,7990,5476,8745,5391,5255,7696,7723,8170,5285,5347,5329,8509,7768,7576,5437,7972,5617,7779,7628,8670,7632,7811,8267,5578,5509,5564,8745,7576,8447,8093,5578,8427,7779,5209,5296,7599,8287,8039,7839,7811,5352,7542,8234,8184,7742,7500,7930,8099,7710,7779,5476,8110,5325,7500,5367,8732,8694,8658,5717,5337,8062,5320,5564,7706,5564,7710,8196,8427,7628,7752,8795,7786,5655,5367,8467,5329,8484,8783,5622,7675,7643,5717,7935,5285,8427,7734,8149,5501,8010,7516,5717,7719,8795,7811,5476,5325,8217,7696,7628,5274,8062,5666,8456,5301,5301,5329,8201,7935,8387,7952,8190,8082,8504,5622,7864,8099,8821,8062,7692,7990,5329,7576,7972,5476,7982,5655,5301,5642,8745,5391,5437,7972,5285,5642,7768,5329,5285,5578,5564,7779,8184,7930,5296,8234,7599,5291,8287,5209,8694,5564,5325,8267,5320,8456,8467,5367,8427,5329,7935,7516,7528,7786,5655,7839,7920,5442,8888,5377,7986,8987,7482,8282,8411,8411,8411,5476,8411,8762,7839,8411,8411,8033,8613,8789,5320,5655,8676,8287,7482,8745,8411,8411,5699,7990,8239,8245,7877,5296,7542,7628,5699,7706,8329,5476,8039,8349,7706,7675,7599,8721,9032,7616,5712,8267,5309,8560,8387,8010,7478,8245,7864,7811,5578,7877,5309,8467,7994,5401,7710,7935,8447,7681,7972,5476,7592,7977,8164,5491,7696,8539,8312,5688,5459,8115,8272,5320,8170,7888,5485,5296,8316,5337,5651,5413,5325,8716,5476,5381,8863,8577,8329,8422,8022,7795,8272,8334,5730,8447,7632,8427,8190,8329,8201,5337,7675,5688,7853,7605,5688,8539,8539,5647,5485,5377,8307,8479,5578,8316,8687,7478,5391,7558,7588,5372,8658,8527,5401,5612,5237,5301,7924,8345,8387,7990,8745,8387,7811,5491,5329,8745,7576,5309,8267,8287,8005,7994,5224,5476,8245,9531,7632,5358,7495,7628,8903,8805,5471,5342,8888,8732,7710,8498,7628,7757,5655,5337,8267,8732,8411,8039,7864,5367,5464,5688,8479,8245,7994,5213,5476,8131,5642,7478,7511,8329,7738,8539,5419,8467,7588,7738,7542,5629,5642,7710,8015,5708,5391,7599,7710,5485,5372,5578,5471,8539,7768,7710,8451,7516,9021,7648,7542,8190,7628,5476,7478,8239,8170,5391,5358,5642,8349,5661,5342,7811,8427,8909,7696,7622,8411,8411,7986,5471,8467,8154,7632,5301,5476,5712,8919,7706,5218,5248,7653,7628,8211,7972,7723,7533,8582,5564,8756,8888,7565,5426,8136,7742,7914,7898,8467,8879,7994,5661,5305,7478,5320,5337,7653,7658,5688,5358,8456,5224,8670,7930,8048,8539,7967,7491,7516,7999,7952,7605,5391,7487,7628,7592,5717,5237,7972,5476,8329,5730,7768,5285,5237,5651,8543,7843,7977,7908,5241,7786,8267,7834,7558,8307,7710,5329,5564,7478,5564,5524,8052,8381,7977,8845,7667,7616,8073,5237,7930,5301,8267,8201,7675,7706,7920,8745,8039,7533,8772,7967,5255,8277,8447,8033,5337,5529,7521,7883,8170,5218,8255,5476,8762,7834,5712,8893,7930,7864,7628,5676,7628,8267,5730,8005,7521,5407,5448,8577,8391,5237,8613,5573,5209,7967,5612,7478,7482,8267,8052,5218,5358,5305,8783,5564,8239,7482,5622,7982,8255,7834,8015,8010,5309,7500,8919,5358,7528,5358,8554,7994,5241,7790,5261,7516,8312,7883,8249,7491,8340,7908,7972,8249,7967,8582,5401,8631,5280,5337,7706,7834,7877,5476,8093,7811,5237,8527,8365,5301,5337,5693,5688,5314,8456,7576,5476,8560,7643,8484,7834,8397,7790,7883,7500,7853,5578,5501,7653,7898,8267,7658,5606,5280,5480,7571,7653,7786,7588,7734,7616,5437,8391,7632,7653,5442,8845,8316,7972,5274,5419,7558,7482,5647,7675,5712,7692,7940,5666,7734,5534,5712,7834,5237,8929,7994,5329,5347,7834,8272,8456,8427,8104,7675,8397,8287,8140,8653,5377,5274,8762,7982,7500,5426,8772,8433,5377,5301,8312,7487,5448,5651,7768,5442,8451,8267,5218,8608,7687,8370,5629,5419,8647,8489,7628,5301,7719,8149,5476,5419,7734,5285,5237,8772,8312,8789,5476,5301,8170,5480,5476,8929,8613,8329,8811,7834,8093,5651,5314,8929,7528,5285,5237,5209,7834,8411,7774,5391,5337,5391,5391,5301,7548,7491,7779,5301,5309,7706,5688,5476,7757,8479,7999,5693,8312,5688,7849,5564,5655,8022,7904,7920,5564,8716,7757,5261,5329,5568,8732,5209,8010,7628,5396,7653,7817,7706,7628,8184,8539,8647,5237,5476,7637,5391,5647,5237,8293,7542,5606,5407,7920,7482,7482,7904,7565,8033,5426,7853,8354,7834,5564,5325,8136,7528,9542,5291,5471,8131,7482,7542,8282,5325,9550,8783,8816,5501,8267,8110,8196,7920,5407,8062,7628,7667,8805,5726,8762,8527,5671,8915,8154,7658,8756,7994,7752,8613,5661,7888,5209,8447,8461,5391,8438,7786,7864,8093,7790,5476,7786,7904,7920,7628,5426,5712,8201,5337,7828,7977,5391,7864,5213,8964,8170,8427,7706,5617,8190,7999,8222,7849,5358,8119,5573,5391,8073,7605,7710,8925,5407,8316,7542,7521,5476,7511,7542,5391,5381,8354,5464,7924,8282,8073,5381,8131,5320,5241,7715,5726,7548,9556,8484,7715,7883,7482,5476,7487,8582,9012,7823,5407,5337,5426,7805,5285,7710,7696,5717,5224,5391,8711,7977,7482,7616,7576,5248,8987,8316,5305,5666,5325,5671,7500,8504,9021,7972,7723,5629,8467,5274,8467,7768,7920,8964,7605,5730,8391,7473,5642,5274,5274,5519,5514,8391,8149,5325,7920,8613,5651,5476,7482,8687,8345,9562,5337,7719,8898,7542,8375,7588,5476,5655,7653,7872,5391,8946,5688,7675,7588,5519,8447,5377,8451,8613,7994,7533,8307,5329,5712,7843,5509,7528,8267,7930,7478,7588,7628,7877,8805,8073,7653,7977,8062,8498,8527,7877,8272,7972,5342,8190,7478,7478,8234,7482,5524,5329,5426,7542,7914,7653,7616,8104,5573,5347,8170,5274,8964,8211,7734,5448,7982,7872,7558,5524,5301,8594,7914,7605,8539,5651,5708,8397,8170,8227,8467,5407,8461,5218,8272,8227,8099,7473,8093,5325,5329,5285,8322,5237,5676,8438,5329,5352,8345,7920,5274,8387,8863,5671,9051,8571,7738,8653,8762,8827,7805,5209,5241,8543,7491,8827,8658,8772,5693,7706,7542,5314,7706,7628,5309,8721,7790,8227,5606,5237,5401,8272,7786,8451,5352,5320,5329,8249,5329,5396,8473,8144,8277,8800,8519,8239,8716,5377,8365,5419,8827,7616,8062,8329,7779,8721,8514,8509,7616,8539,5401,8039,5274,8762,5647,7994,8827,5564,8110,5296,7864,8110,8033,5377,7687,8062,7924,8676,5367,5237,8946,5237,5464,7994,5464,7999,5496,7867,8239,8062,7548,5476,8711,5509,8255,5730,7853,8329,7811,7491,8670,5647,7605,5407,8022,8005,5261,8190,7888,5381,5655,7734,7548,7994,5519,7719,5712,5213,7558,5396,5285,8149,8287,7738,7898,7946,5401,5612,5237,7511,8267,7491,8417,5564,8164,5629,5612,8322,5717,8851,7805,8073,5347,7730,5358,8940,8438,5209,7478,7616,5464,7681,7511,8509,7962,8302,5448,7800,8052,5655,5655,7632,5476,8467,5629,8077,5237,7977,7877,7538,7883,7883,5476,5342,7920,8170,7738,8196,5329,5314,7742,8443,8641,5309,5501,8190,5401,5342,5708,5573,5305,7632,5358,7994,7511,8539,8255,5401,5476,5329,5708,8946,8322,8402,7706,8249,5629,7800,5218,7877,8052,5485,8473,5320,7957,5519,8827,7610,8365,8154,5485,5347,5367,7663,8756,5314,7994,8888,7786,7542,5426,5396,5325,7734,5296,8322,8312,7516,5612,5519,8589,7558,8005,7924,5329,5386,5381,7616,5342,8010,5296,7768,7924,5629,7521,5291,5285,9021,8239,5381,8149,8217,8772,8365,5325,5274,7548,8919,8387,7616,5218,5301,5485,7675,7734,8964,7994,5661,8359,8052,7605,7610,7893,5342,5329,5676,5296,7628,5401,7616,8255,7542,5314,5666,7616,8964,7811,7491,7888,8039,8903,8170,5501,8245,7930,5476,7663,8548,5314,8527,7605,7946,8863,5325,8077,7738,8154,8745,8888,5699,7834,8381,7500,5407,5407,8375,7834,7972,5651,5301,8772,8903,8857,8582,8987,5352,7986,7605,8851,5347,5329,8473,8222,8329,5274,7834,7610,7864,5329,7528,7487,5347,8073,5407,5642,7877,7521,5407,5237,8721,8777,8077,5666,7687,5661,7710,7632,8857,8375,5372,8077,5291,5629,5320,8816,5309,5688,5476,5655,5693,7999,8312,7757,5647,7542,8732,5261,7715,8010,7757,8514,8293,8068,7637,7528,5671,8201,7658,8170,5471,8783,7548,8136,7930,8461,8282,7542,5642,8196,7667,7478,8131,8756,7565,8154,7853,8816,7904,7628,7542,5241,7542,7786,8073,7864,8312,8201,7904,8354,8857,7715,7883,7977,7828,5337,8964,8073,8093,8851,7542,7511,7768,5391,8190,5617,5358,8447,7920,7888,7478,8898,8149,7696,7994,8316,5337,7558,7977,7491,5386,5367,8903,8316,5329,7757,7482,8509,7687,7605,5274,8805,9003,8010,5396,7768,8302,7977,5642,5717,8391,5241,7719,5285,5476,7877,5248,5629,8345,7482,8613,7605,8149,7734,5261,8277,8594,5401,8946,7675,5612,5301,5241,5573,8039,5524,8964,5519,8451,5329,8527,7528,7511,8509,5407,7872,5377,7843,7542,8170,9051,8322,7888,5606,8451,7790,8543,8653,8407,7473,8653,8402,5237,7786,7632,7805,8863,5309,8827,5274,5676,8154,8057,8772,5693,5407,8170,8249,5209,7867,5291,8509,8322,8022,7864,5496,8255,7548,8676,5448,5464,7811,7663,8762,5712,7957,8005,7893,5712,5305,5655,8527,5717,8077,5426,5676,8077,8136,7511,8052,7898,5476,7977,8888,5237,8473,5629,7800,7632,7592,5218,5485,8539,8443,8190,7491,8772,5291,8239,7734,5329,8217,5347,7734,8498,8322,8919,8154,5666,7605,5314,5401,5476,5496,8473,8267,5367,7521,8227,8411,8131,5708,5459,5726,8239,7555,8227,8514,5661,8969,5261,5237,8267,7834,5358,7653,5358,7504,8509,8756,5413,8062,8489,8589,5274,5274,5407,8438,9568,0,8322,7687,5386,5358,5352,5367,5329,8411,5358,8489,7849,8721,5717,5717,8048,5291,8062,7952,8438,5476,8653,7843,5329,8805,7653,8170,8354,8354,7800,5726,7516,8227,8635,5407,7834,8438,7834,7864,7643,7628,7752,7521,7491,7542,5726,7834,7752,8282,8345,7994,7482,8144,5699,5347,8762,8239,7628,5606,8077,7738,8509,7849,5699,8519,5347,8307,5629,8005,5629,8721,8647,8795,5237,5296,7877,7920,8903,7811,7738,8179,5342,8514,8969,5261,7834,5296,5358,7752,8519,8489,7994,5274,8062,5407,8438,8756,8514,7687,5386,7952,7752,7738,8438,5329,5642,8048,5717,7849,8653,8484,8354,7843,8893,7628,7834,8227,5237,7752,7643,7834,7864,7877,5347,5726,7834,8144,5699,5717,5606,7738,5699,8795,5347,5564,5564,5333,8217,7528,7542,7478,5476,5480,7605,7924,8093,7864,7628,8282,9577,8946,8267,8821,7972,7920,5485,7565,7924,7482,5655,5381,7491,7904,5726,8539,8443,7571,7828,7696,9051,5480,5717,8312,5224,5564,5325,5329,7610,8033,5426,7888,7957,5305,5419,5320,7888,5274,7696,5459,7628,5671,5261,5337,8255,5426,8387,7558,5358,5367,5261,8119,7972,5480,8307,8467,5655,5573,5274,7790,8077,8267,5274,8456,8456,7967,5476,5407,8099,7482,8170,7805,8033,7920,8093,8272,5274,5329,8594,5274,8211,7605,7924,8705,7786,5248,5301,5301,7628,5377,7628,7610,7994,7994,8077,8217,5342,7977,5464,5381,5342,7482,5671,7834,5296,5717,8267,7632,7994,7663,5237,7994,5325,8015,8316,5708,5419,7482,5301,7648,7516,8422,8647,8222,5342,5342,7628,5274,5442,8447,8010,5325,8010,5237,7482,7864,5296,7610,5381,5301,5301,5301,8863,8756,7972,9032,7667,7823,5476,5699,7834,7542,8387,7504,8387,5325,7786,7811,7972,8131,7667,7839,5218,8170,5573,7982,8925,7632,7628,5442,7757,5342,7653,8154,8617,8721,5573,8925,5218,5325,5237,5442,7511,5301,7823,5325,8925,5261,7738,7628,7628,5529,8136,8762,5367,5391,7752,5501,8334,8267,5301,5358,8608,8093,5666,8345,8222,8249,7828,7843,5426,7478,7999,7500,5325,7715,5274,7675,7687,8805,5655,8456,5712,8093,7706,7482,8154,8302,7893,5534,8427,7482,8447,8548,5651,7516,5476,7582,7616,8387,8249,8617,8093,5367,8062,7482,7632,8349,8267,7511,8249,8888,7478,7994,8154,7482,5237,5476,7663,7883,8919,5274,5386,5329,7977,5730,5325,5337,5337,7904,7920,7994,7962,8073,5325,8349,8249,5448,7538,5301,8154,7663,5391,5491,7610,8093,7663,8519,5301,7800,5485,5419,7715,8015,7877,8745,5485,8052,8402,5485,5291,8745,5485,5485,7828,5485,7628,7893,5642,8898,5651,7746,9591,8174,7491,5606,5676,7491,5717,5693,5496,5407,8504,8539,8329,7478,8504,8196,5309,5529,8577,7904,7482,7730,8136,5305,8443,8245,8282,5476,5642,8272,5480,7977,8062,8174,7924,5209,5329,7977,7628,5325,5661,5688,8345,8727,7817,7904,8245,8255,8539,5509,8811,8484,7681,8255,8190,8571,7538,7738,8015,5224,7752,8170,7986,5661,8110,7898,5476,5688,8267,7849,5509,7715,8170,5407,8411,8539,5407,5274,8322,8131,7738,7930,8345,7533,5717,5564,8144,5237,7957,7839,8131,7977,5325,8312,5419,7990,8245,8154,5274,7542,8762,8631,5407,5261,7994,8504,5564,5712,5676,5717,7610,5309,7653,8227,5301,8110,8329,5617,7994,7834,5519,8272,8131,8267,7588,7605,7994,8800,8762,8222,8762,7994,8504,5367,7653,7994,8267,8272,8484,8484,5274,5661,5274,5325,7482,7864,8267,8670,7478,5352,7946,7616,8267,7930,7482,7482,7521,7982,7491,5693,8745,7533,7521,8598,7653,7500,7511,7500,5237,8022,8005,7706,8560,7628,5509,8282,5471,7828,8751,7533,8312,8093,7628,5485,5666,7849,8255,7864,7994,7994,5381,5314,8456,5476,7982,8370,8217,7858,5255,7706,5564,7977,7853,8827,8005,7977,7757,5606,7516,7616,7667,8994,7653,5485,8422,8048,8751,8277,8422,5381,7643,7628,5693,5712,7834,7653,5407,7990,5491,7592,8196,5476,8159,5377,7864,7864,7834,7643,8795,5218,5622,7834,5274,8676,5476,8467,8940,7982,7828,5419,7692,5666,8239,8647,5391,7800,7706,7648,8052,7478,7786,5309,7542,5296,8427,7511,5629,5301,5274,8751,5329,5347,8077,7768,7491,5693,8745,7653,7521,8598,7500,7500,5509,7786,5471,7706,8282,8022,8560,7628,5329,8093,8312,5485,5381,7977,8015,7653,7616,7616,8370,5476,8751,8919,8422,7653,8329,7616,7990,5377,8239,7864,5622,7834,7864,8077,7800,7828,8940,8052,5325,8427,8613,8751,7768,8527,8473,5372,8903,5367,8427,8473,7730,7811,7658,8577,7795,8190,7628,8170,5329,7487,8087,7924,5642,5448,8509,5514,8010,7511,5237,8239,8647,8647,5301,8473,8110,5301,8239,7723,7719,8527,5342,8527,7610,5329,8473,7730,8170,7616,5448,7521,5237,8647,8473,8473,7893,8010,8073,7893,5391,7982,7972,5325,5693,8261,5480,8631,7962,7521,8068,8504,7628,7565,7710,7482,8010,9596,9609,7482,7982,5476,5476,5358,7839,9621,7511,7839,7710,7487,8222,5391,8057,8370,5255,5606,5285,5655,5224,7839,8316,7839,7521,7924,8539,7696,7834,5622,5352,8179,8073,8028,7864,8201,7667,8307,7588,7628,5491,5642,7643,5606,5391,5407,8863,5224,5274,7877,7877,8772,7893,7588,7994,8721,7864,8699,7643,7982,5464,8964,5296,5407,5730,7849,5426,7687,7994,5564,7823,7828,5255,8073,5396,5237,8005,7511,5448,5358,7491,8267,5305,7511,7800,7715,7628,5519,5309,8845,8005,5622,5381,7710,7994,5476,5325,7648,7558,5218,8272,5296,7521,8427,5501,8543,8249,7834,7715,7877,7521,8433,8857,5358,5391,7972,5325,7706,5426,8068,5237,8504,7628,7710,8010,7482,5407,5391,8222,7487,5459,5476,7696,7648,7521,5325,5509,5285,8119,5224,8073,5666,7864,7628,8028,9633,8641,7643,5274,8721,5496,8005,5459,5448,7877,8077,5305,5320,7511,5519,5309,7800,8589,5622,7700,8087,8005,8039,7521,8484,7576,8447,5358,8073,9641,5301,7893,8033,8345,7904,5564,5274,7752,7528,8402,5358,5426,7538,7628,8527,7653,8539,5480,5480,7710,8329,7605,5661,7706,7883,8915,7730,7482,7752,7972,5325,7893,5726,8073,8222,7908,5480,5476,5726,5241,5726,7592,7768,7999,8467,5352,7576,8170,7605,8293,8170,7920,8205,7977,8093,5655,7658,5564,7675,5391,5358,5480,7920,7487,7940,7734,7858,8272,7972,8164,7478,7582,8149,7768,7914,5274,7696,8370,8073,8721,7482,7632,7538,7516,5661,5325,8170,8022,8196,8211,7779,7653,5647,8190,8422,7667,7628,7558,7528,7663,5329,8863,7576,5617,5325,8653,8272,8277,7986,7990,7706,7706,7628,7893,5514,7834,5381,5642,7478,5476,5329,7858,7542,7893,5464,5407,8154,7752,5377,8519,5367,8548,8005,8110,8087,7795,5480,8005,5448,7542,7558,7972,7511,8140,8909,5237,8340,5442,7834,8467,7967,5514,5261,5301,7972,5329,5305,5237,7632,8015,5305,5708,8179,8647,8827,5726,5358,5274,7628,7500,5396,7849,7588,7675,7516,7877,5471,8789,5480,8833,8772,5285,8964,7834,5301,8427,5485,5476,7828,7516,8888,7967,7834,7710,5329,5274,7521,5325,8617,8170,5237,7811,5301,8473,7538,7628,5480,8329,7710,5726,7828,8073,5329,8205,5391,7487,5564,8170,7967,7605,5480,8293,7977,5476,7658,7675,7538,7790,5285,5396,7632,8370,7858,7839,5301,7558,7834,5325,5285,7667,7706,7706,7990,8863,7653,5358,8179,7858,7972,5237,5514,7478,5708,7511,7542,5261,8647,7632,8827,7877,7967,5325,5285,7521,7786,5464,5301,7994,7849,8811,7920,8608,7853,5661,7667,5358,7710,5699,8539,7692,8370,8255,8131,7473,5717,8427,8845,7858,5358,7990,9012,7930,5342,7957,8073,7675,7616,7849,7839,8739,8888,5305,8608,7957,5386,8762,8205,5342,5377,8888,8739,8479,5524,5564,5688,8119,8255,5329,5372,8473,5301,8653,5377,7565,7533,8721,7790,7883,5320,7576,8048,7681,5352,5209,8048,8297,8811,8174,7920,7790,5564,7706,8164,5726,7521,5519,7795,5325,5352,9361,8670,8438,8391,5301,5391,8548,5377,5352,8022,7622,7768,5712,8598,5407,7888,7982,7986,8484,7706,5401,5655,8888,8245,5305,8589,7800,7800,9026,7500,5712,5305,7605,8789,7811,7908,8539,8888,8577,8261,8307,5209,5386,8062,5237,8307,7653,7610,5342,8484,8227,5459,7628,5301,5676,8190,7542,8582,8548,8711,5655,8987,7628,7952,5305,5325,7706,7999,8005,7643,7904,8312,5712,7500,7834,7675,7779,7628,8422,7706,7599,7779,7994,8277,7710,8647,5606,5305,5325,7500,5391,7834,8427,7628,8479,5241,5301,8277,7817,5480,7757,5342,8762,7864,5358,8302,8560,8068,5329,5476,5381,8010,7576,7628,5329,7752,7982,5426,5237,7565,5501,8136,5337,5712,8762,7849,5367,5726,7653,7920,7872,5480,7500,5688,5255,7622,5358,5325,7994,8170,5568,8903,8033,7990,5448,8184,7723,7658,8222,5564,7687,8115,7786,5476,7757,7742,5305,5381,5320,7957,7710,7696,8345,7994,7681,7605,7482,8577,7632,8316,8255,7706,7605,7994,5285,8598,7952,5274,5717,8795,7491,7500,8316,8711,7888,7667,5274,7800,7675,5296,8427,5407,7628,7999,5578,8234,8845,5514,7478,5688,5642,5564,5509,5337,5301,8302,5301,8582,5291,8190,7746,8154,5329,5218,8447,5209,7706,8745,7521,5629,8104,5325,7757,7867,7516,7576,8851,8277,7893,8447,5476,8653,5329,8484,8227,5485,8170,8093,7967,5301,8676,7663,5285,8184,8154,8126,5391,5693,7914,5325,5391,5730,7478,5480,7692,8322,5325,8010,8582,8903,7538,8302,7883,7994,7628,8658,8110,5459,5464,5401,7834,5688,5688,5407,5501,7864,8387,5564,8159,5407,5367,5622,7982,5471,7533,7834,7752,5407,8052,5305,7687,5726,7511,7632,5391,5391,7482,8533,5655,7738,5642,7715,8164,7542,7706,7752,8893,5352,5401,5708,5333,5296,8073,5325,7681,8925,5407,5514,7800,5237,5688,8473,5325,5325,7605,7768,7605,5622,8154,8015,8756,5529,5432,5291,5726,7521,8073,5285,7834,7588,5352,9021,5261,5261,8010,5291,7516,8329,7622,5237,0,8946,7675,8721,5730,7908,8062,5514,8427,5367,8211,8119,5301,8227,7935,7864,7511,7616,5325,7500,7834,8302,5301,7628,5301,7763,5655,7521,7864,5329,8721,5301,8946,7628,7834,8863,5337,8554,5329,7565,8745,7516,8073,5255,8184,5329,7757,5407,5564,5329,8222,5730,5699,7658,7952,5381,8217,7994,7696,8099,5509,7828,8461,5325,5285,5274,8821,7521,8329,8845,5301,5401,5407,5301,5391,7681,8234,8302,5509,5655,5325,5367,8745,8093,5386,7967,7893,8653,8227,7786,8447,8184,7757,5485,8190,5391,5209,5501,5459,8184,7588,7864,7839,7511,8159,7864,5688,5564,5464,7994,8940,8411,5514,5708,7706,7738,7482,5642,7994,8267,5333,8473,5529,5432,7800,8438,5218,5622,7877,5291,5261,7516,9021,5329,8795,5301,8033,7482,5453,5476,5564,5305,8484,8201,7834,5564,7757,5325,5325,5261,8811,5391,8527,8391,8222,8467,7972,5693,8196,5564,5501,7752,5407,8539,7628,8998,5285,5291,5291,7920,7811,5655,8222,7834,8387,8154,8533,5666,7990,7742,5325,7977,8903,8093,5419,5564,5480,7628,5301,8411,7972,8509,8467,7628,5726,7675,7972,7883,8170,5337,7786,8936,7628,7924,5666,8387,8964,7628,5301,7616,8863,7478,7696,7795,7663,7610,7834,8073,8617,5325,8577,7605,7834,5391,8062,5301,8613,8711,5717,8504,5285,5519,7576,7972,7632,5274,7972,7706,7972,7977,5325,7628,7811,5476,8201,7478,5676,7628,8073,8329,5651,5358,5237,7667,8170,5647,5485,5377,7864,7864,8582,7982,7478,5651,5329,7628,7521,7478,5255,5320,5564,8345,7999,5352,5325,5524,7930,7757,5329,5699,5407,8170,5647,8539,8467,7706,5301,7491,8863,8721,8863,8093,8119,7706,5485,5476,7972,5485,5209,8277,7582,7706,8104,8845,8170,5726,8154,5655,5325,5320,7478,7710,7924,8110,5476,5688,5377,7982,5377,7864,5381,7790,5564,8104,5647,7834,7849,8467,7858,8267,7706,7982,7616,5471,7715,8170,8772,8777,7565,5301,7616,8447,8190,5534,5391,7849,5573,5629,5367,8893,7511,5325,7786,5407,8196,7653,5209,5519,8447,5642,7834,5325,5301,5606,5568,5377,5224,8447,5647,7538,5285,5524,5606,8033,5301,5622,5578,8845,5642,5476,7742,7710,7972,8239,8164,7957,5358,8617,5314,7920,7478,5291,7482,7768,7487,5285,7924,5396,5358,7972,7588,5464,8010,5285,8239,7834,8316,8484,5274,5274,5647,8349,9021,7628,7616,5329,8641,7605,5529,5476,7920,5320,7632,7706,5476,5325,5578,7628,8427,8811,7924,5377,8381,5647,5651,8839,8249,8539,8354,7628,5666,8222,5329,7898,7610,5325,8354,7616,8721,8873,5301,8375,5453,8484,5325,8467,8391,9471,7742,8387,5237,8222,5655,7786,7582,5329,8387,7548,7924,7500,7972,5726,8467,5401,5480,7487,7972,7696,7795,5519,8479,7977,5717,8375,8062,7786,8073,5301,5676,7982,7864,7628,5274,5377,7478,5699,7622,8345,5325,7930,5352,5688,8104,8845,5476,5464,7982,5325,7864,7786,7734,5209,5712,7715,8159,5642,5342,8789,7719,5296,5407,7849,7628,7616,5578,8239,8239,5285,8484,7628,5329,8473,8427,7616,8154,5301,8721,5529,5329,8484,7723,5407,5274,8451,7628,5407,7834,8451,5329,5337,8140,5325,8473,8533,5642,7605,7667,7605,5407,5651,5651,7478,7511,8033,7478,7952,8447,7706,5329,8484,7667,5285,5301,7592,7834,7977,5651,5301,5617,7883,7516,5485,5325,7500,7588,8140,8349,8349,5717,7482,5564,7746,8387,7628,8174,5726,5642,8711,7681,8783,7628,5726,7746,8170,8527,5564,5726,7746,7538,5305,5305,5296,7610,7967,8402,5501,5464,5464,8255,7723,8307,7853,7946,7867,5301,7946,5320,5301,8184,7710,9372,9372,5476,7542,7883,5237,7622,5305,5305,7542,5491,5573,5337,7828,5476,5367,5476,5726,7667,7834,5485,7628,5301,8903,8762,8179,7482,5726,7834,8772,8345,5655,5622,8179,5476,5712,7883,7834,8762,5485,7972,5501,5564,5564,8438,8438,8467,8140,5726,9646,8762,5325,7675,8211,5708,5432,5480,5358,8467,8387,5480,5693,5651,8716,7675,5209,7786,5358,7582,5501,8272,8467,7920,8227,5524,7706,8136,5629,7786,5320,5320,5501,7893,7752,7904,5564,8604,8316,5726,8119,5391,5337,5391,8805,7478,8184,5485,7643,8170,7834,5647,5377,5237,5274,7834,5407,5358,7610,5688,7653,7632,7478,5730,5237,5717,7687,5274,5534,7687,8789,7700,7706,8533,5325,5209,5325,5325,7706,5325,7710,5325,8033,7849,8387,8800,5661,8174,5358,5391,5209,7710,8184,8170,7681,8093,8093,5573,7768,5661,8800,8077,7653,8316,8287,8653,7628,7940,5476,8447,8451,7967,5726,8805,5274,7742,7864,8494,5476,8287,7967,7828,8267,9654,8387,7710,8033,7734,8277,8170,8093,8174,7681,5209,8800,7628,8287,5726,8494,7610,7710,5241,8334,7834,7610,5329,7817,8795,7516,7940,7738,7610,7817,8795,7952,5688,7768,7952,8354,8721,7849,8604,5661,8073,8115,7867,5480,7632,7883,7675,8893,5407,8190,8411,7962,7521,5274,5255,5655,8119,7982,5391,7605,8354,8104,5329,7478,7582,7675,5325,5381,5464,5426,5712,8010,7805,5622,7858,8527,7605,8062,7867,5730,5688,7622,7542,0,8005,9657,7957,8267,7849,5629,8354,5442,5524,7893,8893,5241,8131,8077,7542,7675,8498,7817,8334,8762,5301,5358,5314,5573,8635,7710,7605,8322,7610,5347,5407,8201,5301,5296,5358,8539,8827,7834,5352,9367,5622,5213,8647,8307,7628,7763,5622,8115,5237,8039,5476,7982,7877,5568,8140,5255,5442,5325,7952,7588,7957,7687,5329,8184,5612,8498,9662,5612,5333,8676,9670,7675,8073,5651,7487,8903,8239,7883,7828,5564,5407,8438,8005,5491,8255,8919,5464,7962,8149,8365,7675,8762,5391,8365,9676,5213,9680,5213,8811,8170,8762,5329,7834,8073,8903,8159,7990,7610,7542,5401,8073,7576,8277,9686,5347,8005,7628,8354,8052,5655,7658,5377,5651,5442,5325,9690,9680,8909,5622,7576,8010,5448,7576,9695,5314,8909,5329,5329,5407,5480,7616,7628,8277,7610,9701,5401,5347,7542,8354,7548,5726,5401,8411,8676,8857,5301,7487,7632,7616,8354,5314,7500,5651,8539,8010,7914,5578,7914,8293,5661,5666,5274,5209,8447,8879,9710,7542,9715,5358,8282,7478,8302,8756,8110,5501,5358,8402,9721,5301,7710,9726,9736,7904,5301,8811,8170,8312,5305,8140,8184,7576,5301,7588,7681,5301,7706,7588,8062,8316,5209,8604,8354,7576,7516,9345,8126,9740,5501,5325,9745,9751,7779,5274,5564,7779,8179,8845,5301,8354,5329,8170,7706,8402,8126,8015,7516,8548,5485,8039,9759,8589,8589,5629,8411,8110,7746,5730,7500,8548,7982,5407,8365,7839,5301,5661,5564,8447,7930,7786,5519,5524,5629,5688,9751,8340,9345,5629,5651,8589,5501,5372,8756,5419,5305,8589,8589,7495,5237,7779,5419,7908,8073,7811,985,8548,5274,7495,8641,8077,5301,7571,8539,8077,7681,5347,5651,5285,8484,5237,7817,5241,8484,5337,5325,5496,7576,8329,8354,8062,7628,7849,5509,8504,7752,7752,5688,8136,5209,7853,8816,8998,5381,5320,8104,7920,7482,8302,8062,7972,5325,5501,8267,8504,7883,5309,7588,7565,5612,8402,8484,7687,9766,5309,5564,7972,7839,5209,5442,8062,7687,5666,5237,5564,5661,7914,7930,7605,5726,8093,7605,8670,8811,7924,5564,5480,5655,5491,5314,5391,7548,5274,8443,7592,8282,8170,5305,5320,8397,9772,5485,8504,7946,5661,5381,7605,5442,7795,8126,5291,8582,7982,7839,8845,8845,8272,5661,7692,5285,7768,5671,7632,8190,5224,5274,5564,9462,8316,8164,7681,7482,5666,5661,7768,7500,8099,5459,8316,7487,5419,7521,5296,5291,7972,5407,5676,7710,7746,5655,5329,7558,5688,5320,7898,8316,7675,5509,8196,8845,5519,5377,5519,5661,8062,5237,5564,8805,5342,8217,8653,5564,5485,7982,7972,7834,7592,8527,5325,9778,9783,8548,7516,7888,5301,5329,7779,5442,7768,8670,7706,7706,9032,7706,5509,7542,5274,8087,7994,7706,8272,5509,8461,7599,5413,8863,7774,8039,8402,8099,7511,7706,8427,7930,8287,8093,7746,7706,7867,8772,8548,8234,7967,5476,5209,5426,7779,5309,7893,7872,8438,7628,8548,8010,5329,7500,9789,8015,9796,7500,7521,5407,7990,5274,8821,7746,7706,8676,7548,8539,8438,7622,8467,5661,8222,7487,5688,8411,7811,8845,8827,7746,7994,5564,7994,7628,8131,7622,5661,5401,8548,8411,8267,7482,5377,7795,7972,8267,7558,7877,5491,5367,8467,8548,7500,9804,9810,8845,9367,7616,5309,5476,8863,8447,7898,7786,7533,7576,5407,8451,7768,8617,8267,5367,8952,5237,8164,8272,5564,8267,5655,5524,8613,7982,5437,8909,5274,7588,5655,8548,8272,9818,7774,5358,8527,8140,5301,5612,7482,5237,8548,5666,5622,7542,7800,7972,5329,5305,8647,5401,5651,8190,8548,5325,5261,5342,8010,8952,5413,5476,5514,8711,7576,8322,7643,9824,5237,9829,5519,8297,8190,5296,8255,8833,7571,7972,5261,8589,7516,7628,8010,8239,8287,9021,5407,7648,7877,7872,5519,5296,5396,8857,5237,8322,9835,8245,8119,5296,5237,7719,5407,5419,7811,5372,8827,5381,5285,8073,7877,5476,5386,5342,5476,8635,7500,5325,8888,7542,5347,7734,8329,8857,7706,5352,5301,5305,5666,5661,8857,8582,5337,7500,5666,5274,7877,5568,5329,7877,7616,7774,7521,5274,8397,8857,7632,5237,8479,5347,5666,5401,7487,8484,7628,8062,7576,5274,7849,8354,5325,5509,8582,5325,8504,7994,8267,8062,8104,7920,8302,8461,8136,8504,8548,8099,5501,7972,7752,7565,7605,7482,8816,5320,5274,8811,5661,5564,5401,8443,7914,5237,7972,7548,7576,8282,5564,5314,8670,5476,5485,5491,7898,8164,5381,7692,7648,5459,7946,5296,9462,8190,5419,7632,5291,5285,8316,8845,7675,5676,5519,5237,5342,8272,5325,5377,5325,7500,8093,9839,7500,7706,7893,8287,8015,8234,8119,7994,7746,8087,5413,5442,8272,7511,7768,8548,8427,5509,5329,8863,5209,7990,7521,5407,7746,5347,5377,7622,7706,8267,5296,7487,7888,8676,8411,5274,8131,8863,7811,8539,5329,8411,8438,8467,5309,5564,8613,5655,8527,8952,5524,7877,5301,5476,5407,8888,8647,7800,5666,7616,5612,8711,5514,5661,8239,5261,8833,5419,7542,5372,7811,5285,8857,8998,5661,8461,8998,5699,8998,9844,8073,5255,5730,9853,8461,7616,7616,8745,5367,8721,9021,8772,8227,7706,5534,7616,5666,8772,5329,8721,7599,7599,8461,7599,7653,9858,7632,5564,5651,8048,7786,7605,8170,7790,7786,8438,8461,7904,7795,5377,5676,5564,7516,7834,7999,8397,7795,5314,7628,7972,8345,8048,7823,5320,7487,7920,7538,7511,7904,8048,5301,8783,7994,5358,5325,8833,8316,7511,5325,5676,5651,7999,7632,7920,5325,5325,8375,7924,7763,8322,7738,5712,7924,5337,5337,5501,7904,5524,7924,7786,8322,8205,5524,8093,5476,7605,8539,5519,7542,5476,5274,8164,8658,8658,7542,7811,8397,5274,5476,9863,8322,5274,7628,8845,5381,5629,8467,5237,8010,5261,5501,5261,5401,5666,8845,8417,8322,7877,7628,7817,5476,5248,5534,5501,8062,7710,7710,8402,5564,5367,9054,5476,7986,5476,7920,8093,7511,7972,5726,5237,5661,7521,5237,5237,7706,8255,5296,5296,7675,7719,8062,5419,8539,8402,7893,8272,8302,7710,7605,5407,8190,5391,7858,8548,5509,5296,5730,7849,7849,7653,5708,8647,5476,5401,5726,9873,7516,9054,8255,5708,8010,5476,5296,8190,8479,5642,8149,9877,8898,7790,5578,7706,8131,8131,8131,5459,5459,7696,9045,8821,7696,8716,5622,5666,8805,5209,8845,8783,8052,8267,8994,7920,7710,7487,5573,7977,8170,7849,5573,8149,8099,5325,5629,7742,7957,8417,8131,8334,8115,7957,5325,8149,8154,5337,5305,8359,7696,5578,8805,7491,8245,8022,8196,8267,7710,7883,7883,8062,8845,7972,9881,8077,7883,5655,7935,8093,5241,5337,8631,8239,7610,7972,8381,7681,7696,8387,5459,7795,9886,5401,8052,8119,8577,8751,5485,8170,5358,8539,8039,7752,7500,5255,8827,9891,9900,8805,7628,8827,8005,9904,8005,8827,5401,5534,8005,5401,5401,8827,5708,8119,8022,8805,8005,8077,7972,7883,8381,7867,5325,8805,8805,7610,7628,7628,7999,7487,7588,5476,7588,7487,7999,7999,8110,5476,5333,5325,5688,8800,8340,5717,8539,7811,5464,5476,8504,7675,8613,7576,8467,8762,8461,8164,8811,5496,8494,8227,7786,7972,7653,5564,7893,5501,8456,8334,5407,7565,9032,5337,8136,8560,8800,8297,7817,7628,7752,5642,5309,7920,7542,5237,5237,7893,8800,5485,7658,7914,7548,8015,5661,7914,7994,7576,5459,7883,7893,7904,8073,5726,5606,7930,7795,7658,5209,7692,7972,8447,5255,5209,5564,8334,5655,5274,7571,8456,7977,8119,7972,8222,7715,5726,7982,7990,5476,7482,7500,7924,7610,7582,9012,5329,5485,8293,7834,8334,7473,5476,8687,5671,5717,7582,7972,7675,7504,7504,7696,7864,5426,7858,8766,5209,7952,773,9915,2533,3110,9919,3464,9924,2802,9929,9934,9939,9945,3447,2826,2847,3306,9950,9955,2550,2661,3190,9961,2685,2300,3133,3157,2871,3215,9966,3179,3005,9971,3235,2606,2953,2977,40,609,2526,9977,1783,9981,3457,9985,2795,9989,9993,9997,10002,1733,2819,324,3297,10006,10010,2547,2654,3120,10015,2678,2700,3126,3148,2864,3208,10019,347,2998,10023,3228,2599,2950,2968,24,603,10028,429,10033,852,10037,803,972,800,10041,9312,10045,10050,829,833,985,806,955,959,10055,839,819,816,10060,826,988,1044,1464,926,809,10064,855,836,1659,10068,915,845,842,848,776,10073,4081,3560,10077,3573,10082,10087,10091,10096,10101,10107,4021,10112,3609,4035,10116,10121,3809,4003,10127,10131,3849,3912,10136,10140,3707,10145,10149,3959,3661,10154,10160,3747,3787,10164,64,606,2523,10169,3103,10173,3454,10177,2792,10181,10185,10189,10194,2738,2816,2840,3293,10198,10202,2544,2651,3183,10207,2675,2696,3123,3144,2861,3205,10211,670,2995,10215,3225,2596,2947,2964,52,1084,10220,2537,9220,3114,10225,3471,10229,2809,10233,10237,10241,10246,10250,2759,2833,2854,1321,10255,10259,1426,2668,3194,10264,1325,327,3137,3166,2878,3222,10268,1318,1311,10272,3242,2613,1400,2986,32,410,10277,1620,10282,482,10286,3468,10290,2806,10294,10298,10302,10307,10312,10316,3451,2830,2851,3311,10321,10325,2554,2665,432,10330,2689,2305,464,3162,2875,3219,452,1772,3009,10334,10339,3239,10345,2610,2957,2982,106,10349,0,0,0,10360,10360,10360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,8,10,12,14,16,18,20,22,10360,10360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,10366,10366,5777,5777,4344,4344,5078,5078,6688,6688,6694,6694,10373,10373,10379,10379,5898,5898,6704,6704,670,670,6704,6704,10387,10387,10394,10394,6704,6704,1736,1736,0,0,10402,10402,10402,10402,10402,10402,10407,10407,10417,10417,10427,10427,10434,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,10446,10446,10450,10450,10455,10455,6540,6540,10460,10460,2851,2851,3613,3613,10465,10465,10470,10470,10475,10475,4198,4198,3917,3917,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,10480,10480,10480,10480,10480,10480,10480,10480,168,179,184,10488,193,168,179,184,10488,193,168,179,184,10495,193,618,618,618,10505,249,249,249,249,10511,10520,10520,10527,10527,10527,10527,10541,10541,10546,10546,10549,10549,10558,10558,10558,10558,4971,4971,770,770,1451,1451,908,908,5150,5150,5150,5150,1521,1521,28,28,44,44,44,44,44,44,10568,10568,46,46,52,52,52,52,776,776,54,54,54,54,54,54,56,56,56,56,58,58,10575,10575,66,66,10579,10579,10582,10582,10593,10593,10593,10593,10599,10599,5234,5234,4924,4924,10604,10604,10608,10611,10615,10619,10623,10575,4971,10627,10631,5070,5070,5070,5070,5070,5070,5070,46,46,5070,5070,5070,5070,5070,5070,10634,10645,10651,10658,10658,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,34,54,48,40,48,24,40,10667,64,32,52,10676,1311,1314,3242,4177,875,2878,3342,3222,10684,3648,4056,2514,10688,2854,1321,3194,10255,1400,3471,3373,2809,10229,2613,2668,1426,10693,1325,2537,24,40,64,32,776,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,836,911,915,922,926,812,809,848,806,955,816,842,803,968,800,845,1144,1454,1148,852,1464,1044,24,855,819,839,988,826,429,24,40,64,32,52,479,2885,833,1060,773,852,855,933,937,942,951,10697,10707,5004,10717,819,819,863,0,0,0,0,0,0,0,0,0,0,0,0,875,884,24,770,40,892,64,895,58,664,46,1057,32,773,905,52,776,908,836,911,915,918,922,926,812,809,929,848,933,937,942,946,951,806,955,816,959,842,803,968,800,972,845,855,819,839,985,988,992,826,429,976,10727,770,40,892,64,895,58,664,46,1057,32,773,905,52,776,908,1011,0,0,0,0,0,0,0,0,0,0,0,0,6,8,10,12,14,16,18,20,22,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,8,10,12,14,16,18,20,22,836,911,915,922,826,988,1044,848,806,10733,842,803,968,845,816,800,819,855,839,852,955,429,985,926,24,109,40,776,0,0,0,0,0,0,0,0,3715,10737,836,915,922,806,816,842,803,800,845,926,809,848,826,819,839,855,852,429,10041,10068,10060,10742,24,40,64,32,905,52,908,1786,10747,106,50,58,38,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,24,40,64,32,905,52,836,911,915,918,10750,922,812,10755,809,929,10760,10765,10769,806,955,816,959,10774,842,942,803,10778,968,800,972,10782,845,1073,855,819,839,985,992,826,429,770,40,892,1518,64,109,52,905,908,1440,855,819,839,852,0,0,0,0,0,0,0,0,0,4580,4580,4580,4580,4580,4580,4580,4580,4580,4580,4580,4580,4580,4580,0,0,0,6,8,10,12,14,16,18,20,22,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7558,7681,7972,8402,5712,5661,8402,5661,5305,8349,5325,10786,0,7908,7730,8205,7706,5386,5651,8789,8375,5509,8073,7752,8721,5688,5285,5485,8110,7946,8451,8577,5261,8805,5712,8104,7914,5661,8407,8397,8140,5519,7528,5480,8174,7558,8028,5564,8307,5480,5453,10798,7920,7786,7795,5301,5401,8015,8402,5381,7779,7576,7920,8473,8099,7858,8039,8005,7805,7883,5606,8028,5485,5381,7986,5476,8345,8504,7914,8287,5564,5564,8170,7893,8322,5509,7582,7920,8039,8548,5693,7478,5712,8821,5622,7972,8694,7795,7742,8539,8345,5426,5386,7628,8732,7823,8267,7548,8110,7864,8159,5647,5642,5407,7994,5285,7628,7977,8676,5358,8227,5564,5274,8447,7746,8631,8909,8422,7898,7542,5329,8631,5448,5629,7588,8863,5717,5476,8073,8239,5325,7920,5661,5524,5329,8888,7742,8227,5329,8039,8334,8663,8647,5419,5564,5629,5305,5237,5622,5329,5285,7616,5329,7972,10803,8104,5401,8316,5352,8447,7687,8239,8402,7952,7675,8909,8010,7972,5285,5261,7478,8402,8489,7521,5342,5501,7616,8772,9361,7883,7908,8789,8068,5401,5358,5218,5291,5573,5476,5676,7986,5401,5514,8068,7786,7706,8402,8888,8329,8613,8154,8205,5274,8473,5426,8739,7986,7834,5329,8154,8205,7632,5726,8205,8375,8447,8205,8033,7542,8494,8687,8205,7516,8687,5209,5285,8077,5442,5325,5524,5442,7746,8077,7972,7972,5717,5407,5459,7972,5519,7658,5655,8484,5274,7628,5496,5642,7628,5248,5237,5237,8484,7628,7628,5426,8170,8484,7528,5617,5617,10809,8484,5391,8772,5320,5391,5606,7883,7734,7734,8721,5396,8772,8732,8598,5367,7478,7576,8479,8461,5261,5476,0,8994,7658,8010,8282,8732,8560,7565,8282,5699,10817,7548,5407,8777,8093,7605,8115,7888,8073,5274,5717,8732,7977,5329,8062,8334,5237,0,5564,5372,8527,5301,8670,7628,7843,8805,0,7994,8073,8249,8184,8170,5464,8087,8548,8411,7790,5459,10825,7898,5496,5476,5514,8777,8340,7957,5491,10830,5642,8316,10836,8903,8772,5329,5476,5381,5407,8154,8249,7706,5329,5329,7877,8617,8682,7779,5407,5407,7719,7834,5564,5255,7834,7834,8340,8340,5476,5333,8805,5688,7663,8716,7681,5285,5381,5352,5509,5476,7637,7746,7763,8811,7542,7628,7628,8851,7723,5647,5367,7706,8211,5209,5296,5342,7972,7521,5358,5564,8068,7994,7478,7972,7706,5261,7752,7542,8504,8998,5568,5381,5329,7500,5325,8196,7706,8467,5501,7904,7872,7528,5325,5396,5396,7565,7478,5291,8131,7972,8267,8196,5708,5573,7790,8387,7893,8705,8560,8827,7482,5337,8411,5476,10844,7994,5301,7920,7864,5274,8227,8777,8249,7588,5476,8467,8297,8093,7658,7681,8539,7622,7723,5301,5218,7990,7715,8456,8222,8131,8438,5476,5476,8170,7920,8893,7692,7605,8447,8073,5224,5261,5688,5642,5274,8543,8062,7616,7687,7582,8170,5459,8077,8811,7982,5255,5712,5564,8119,7786,5358,7994,5564,5314,7790,8010,7867,7790,7790,7904,5209,5305,5209,8539,7710,5325,5485,7610,0,5453,0,5529,7616,7723,5717,8391,5301,8164,7482,8682,7542,7637,8033,7628,5519,5209,8577,7478,5325,8005,8604,5248,7839,8131,8687,8211,7710,5285,5285,5564,7628,7605,5209,5419,5296,7482,5496,8048,8164,8613,5248,8211,8316,7548,0,7605,8329,7811,7473,7768,5671,8245,5485,5426,7768,8340,5485,7696,8345,8087,7710,8504,5407,5377,5464,5255,5301,5309,8149,5320,9345,8245,7977,7648,5358,8115,8255,5296,7706,8903,0,8164,7643,7616,7632,7616,8329,5309,7962,7482,8349,8062,7576,5642,8762,7994,5573,8307,5564,8504,7482,7849,5358,8201,8267,8539,5647,5342,5342,7558,8033,7478,5432,5237,8845,5301,5564,7605,5305,5301,9345,5325,7888,5688,8302,5612,8033,8527,8170,5712,8249,5426,5485,7935,7528,7667,7834,8805,7757,8451,5509,7653,5337,8451,7977,7599,5337,8816,8670,5274,7843,5564,7864,5305,7752,5381,7823,7715,8795,8277,5401,5391,8494,10850,5401,8154,5337,7616,7616,10857,8104,8211,8211,7839,5509,5485,8539,5726,7582,5407,7967,7786,7986,5329,8170,7994,7667,8077,8653,7849,7734,5209,5524,8039,5564,8099,8227,5442,8022,7805,8427,8514,7774,7904,5301,5647,8073,7653,8222,8196,5676,5237,8196,8539,5381,7734,8903,5309,7999,7658,8845,5396,7786,8093,7893,5309,8345,7599,5413,7576,7834,8170,5407,7516,8772,5320,5606,8479,7982,7706,7849,8402,8272,8104,7930,8227,7811,7893,8277,7706,8249,5255,7994,7883,8302,7811,7834,5476,7681,7706,5509,8604,8716,10862,5480,8484,8964,7632,0,0,8249,0,10874,0,7616,7616,7616,7675,7730,5688,7990,7521,5509,7628,7628,5564,5401,8190,8467,7823,8115,8494,8104,7675,7628,7858,7790,8345,7864,7632,7616,8154,7795,5419,7746,7571,7571,8170,8222,8110,5237,5661,8345,5726,5407,5564,5329,5485,9054,8527,8062,8062,5730,7834,5647,7605,5209,7521,7914,5717,5381,5485,5651,5464,7914,7734,5671,7582,7576,7542,7994,8073,7994,8994,5325,7982,8205,7977,8676,5642,7667,8827,7768,7994,5274,8005,8805,7643,5237,5391,7706,5347,8548,5642,8467,5712,8267,5320,8539,5622,8721,9751,5529,7877,8509,8005,0,5419,7957,7994,5213,0,5448,7482,5391,8104,5391,8267,5655,7843,8293,8249,7849,5699,7940,8467,5301,8170,5237,8334,5573,7500,5647,7511,8494,5655,7542,8443,8312,8451,8467,5573,7628,7908,7533,7734,7734,8136,8851,5237,5501,8267,5241,5407,5325,8893,8777,8869,5651,8052,7962,5655,8391,5448,7500,7511,5237,7786,7843,8164,5534,5671,8451,5391,5629,7632,8613,5612,5274,7930,5642,7952,5358,8548,8234,8925,5519,8604,8370,5347,0,5325,5301,8179,7843,7628,0,7616,5305,7757,7681,7790,8316,7605,5352,8345,5401,8827,5237,5255,5688,5309,8104,5381,7994,8422,8340,7628,5476,5325,8239,5358,5329,7588,8201,8015,7632,5419,7800,7834,8093,5325,8647,8234,7653,8539,7588,5329,5617,8987,8539,7763,8329,7800,8073,8539,8451,5578,9367,8190,7994,7982,5708,5651,7957,8140,7548,7774,8312,5419,5651,8827,5453,5296,7667,7482,5407,7834,5320,7482,8005,8033,7982,8302,5568,7542,7538,8205,10880,8322,8307,5401,7516,5568,7663,5358,5301,7994,5325,8329,8119,8010,8249,7742,7877,7828,8329,5285,7872,7872,5666,7628,8255,5573,5396,5407,8349,8267,8222,5337,5726,5329,7648,5296,7864,8909,7893,5291,8397,8048,8613,5501,8005,8598,7872,8387,7500,5564,5291,8903,7478,8316,7487,7675,5237,7610,8267,0,7706,5407,8267,7962,8093,7628,5367,5218,5325,8062,7487,8789,5666,8190,8267,7628,5237,8052,8073,8052,7663,7994,5296,7994,5325,7839,7521,8375,7763,5476,8873,5419,8179,7914,8322,5401,7990,8467,8245,5377,5629,5661,5358,8427,7962,5401,8010,5693,5381,7786,5661,5320,5407,8898,8062,7730,7528,8329,5642,10888,5448,5320,8329,8217,8751,7994,8766,5442,8349,8613,8647,7658,7706,5372,8033,5655,7696,8447,7616,5524,8827,7675,7706,8048,5407,7500,8005,5381,8411,7757,5651,5347,5309,8777,7622,7723,7867,5274,10893,7742,5274,7588,5329,5476,7500,5661,5301,5476,7986,5666,7675,8539,7972,7930,8909,5642,5305,7811,8647,8010,5448,8772,8422,7723,8255,7994,7511,5296,0,5524,8267,0,5301,5320,5573,7663,7516,5372,8190,8033,8277,8154,5480,7478,7872,7872,7706,7946,5329,7588,8422,8211,8267,8751,7628,8329,5325,7592,5274,5305,10898,7588,7592,0,8077,8073,8261,5476,5274,7628,8170,5401,5401,7482,8322,7616,7610,8316,7994,8354,8093,5726,5642,8010,5651,5347,8005,5347,5325,8903,9516,5666,5666,5396,8527,7972,7994,8005,8427,8359,5301,5325,5651,5666,8359,7632,5325,8005,5329,5407,8589,0,5666,7768,7675,5476,8375,8514,5432,7982,7982,5329,9641,5329,7487,7675,7542,5573,7982,7500,8451,5564,7500,7500,5329,7982,7628,8052,5285,8170,8039,8222,7834,8427,8427,8005,8282,5237,5320,5248,5688,7757,5325,5688,7558,5391,0,8539,5578,5617,7628,8811,5209,8062,5296,8249,5717,5342,5367,7637,5391,5476,7538,7521,7565,7864,8994,7710,7542,7752,7752,7872,7898,5358,8354,8354,7667,7706,8297,7482,7706,5606,8467,5291,5296,8196,7706,7548,8387,7839,7715,7599,5501,5501,8560,7817,5372,5564,8297,5381,5564,7710,8307,8647,5274,8447,8594,5688,5337,7687,5255,7710,5337,7849,7653,8170,5301,5564,8297,7687,8131,7920,8073,5274,7605,7757,5432,5224,7786,8297,5726,5617,8964,8093,7786,7883,7786,7616,5301,7558,5726,8711,5717,7839,5296,5296,8211,5564,7924,8631,8577,7605,5476,5274,8144,5285,5301,5476,5255,5325,5201,5617,5476,7599,5305,7723,7867,7952,7817,7972,7800,10904,7972,7977,7648,7487,7706,5426,8577,5688,8670,5218,7977,8839,7935,8126,7864,7653,5320,8190,8527,7914,5655,5564,5274,5578,7478,5564,5301,7843,5358,5573,8467,5337,5381,7883,7834,8805,7828,8839,5296,7795,7972,8022,7893,8170,5651,7706,7706,7628,7667,7687,8249,8322,7487,5237,8099,5301,5459,7681,8272,8653,8811,7653,7628,7898,7893,7920,7994,5471,5476,8467,7588,7768,7542,7872,8447,8745,7994,7779,8039,5509,7582,7864,8282,8539,7599,8179,7924,7616,8039,7877,0,7986,7990,5325,7849,8805,8349,7500,7746,7628,5381,5391,8190,5464,7834,8411,8110,7994,5564,8467,5712,7994,5564,8821,5661,5337,5688,7790,5367,7616,5391,5248,5629,7605,8548,5377,5564,8467,5296,8249,7986,8762,7982,5688,5459,5301,7795,8267,8170,7823,7957,8658,8164,7616,5419,0,7843,8334,7487,5237,7839,5237,8467,5534,5401,5448,8282,8164,8164,5325,7478,5688,7653,8196,5476,5358,5396,5629,5476,8762,8716,7849,7982,5296,7538,8391,5476,7752,7616,8909,7628,8777,9423,10904,7800,0,8987,5578,8340,7710,8539,5708,5329,7994,7972,5629,8033,8647,5726,7920,7628,5407,7632,7957,8196,7548,7482,5419,8952,7752,5285,5509,7972,5578,7538,7538,8039,7511,7790,5237,8827,5301,7800,7675,10909,8015,8211,7521,5305,8397,7487,5688,8594,7972,5352,5352,5285,5726,5432,8239,7533,7952,5237,5325,5622,5464,7893,8149,5291,5291,5296,7482,7877,5285,5261,7648,7675,8711,5248,8329,7487,10919,7558,8903,5301,5661,5261,5476,5485,8245,7877,7706,7839,7521,5617,7632,8196,7616,7637,5301,8115,8190,5401,7605,8115,5661,8211,5661,7706,8164,5407,8249,8052,8821,8154,5314,5381,8888,7849,7763,8010,5666,5381,7986,5651,5301,8104,5301,5688,8077,5329,8762,7675,7605,7610,5301,7610,8527,7491,5413,8987,7786,5676,7616,0,5237,8179,5726,7768,8762,8179,7800,5291,5381,7605,7687,5661,5464,8816,8456,8293,7528,7548,5305,7696,7990,7763,5237,5426,7834,8795,8467,0,8093,8190,5320,5274,8316,7610,5381,5274,8387,7982,7994,8479,5248,7994,8479,9032,7946,5726,5476,5476,8201,8811,7628,8473,5496,5476,5261,8033,5564,8234,5501,8952,5381,8136,7548,7883,8915,7548,7548,5661,7706,5661,8297,7972,8504,8196,5309,7667,8467,5712,7637,5708,5453,5296,8297,7977,5480,8093,5491,8222,8174,5642,7571,5358,8670,8772,8170,7849,5320,5519,5655,5476,8994,8073,8539,8631,5564,8234,7972,7972,8297,7533,5476,7790,5480,8136,5568,5274,7877,5726,7930,8234,5237,8884,8073,9818,5564,5476,7710,7692,8504,5419,7977,8879,5305,5381,7696,7632,8613,7605,7952,7482,7774,8577,10923,10934,9345,8903,0,8653,8800,5453,5320,7977,8653,7558,5301,5676,7914,8057,5717,5476,7628,5655,7511,5688,8658,5325,5476,8201,9345,8839,8302,8658,5301,5401,5401,7692,5407,8998,7877,5358,8234,8272,8467,8093,7710,8227,5442,7888,8473,7779,8227,8456,8456,7893,8467,7632,8039,7834,8762,5237,7972,8170,7706,5325,7972,7795,8800,7935,5377,5377,5564,5248,5661,8411,5459,8653,8676,5519,5519,7849,8467,8222,8222,5564,7628,8641,7834,5296,7930,5573,5329,10940,10945,8267,8245,8131,8245,8359,8164,8467,8613,8716,7592,5612,8282,8068,7710,8940,5453,7616,5381,7542,8359,7692,5401,8222,5301,5578,5391,5329,5476,5459,5661,5274,7994,8473,8340,5325,5419,9367,8222,7521,10952,7734,5407,5622,5407,8397,5325,7883,8925,8010,8073,7521,7528,5432,7648,7800,5347,5708,7888,7952,8340,5342,8789,7877,5401,5358,5309,8903,5320,8772,5358,5347,7734,8613,7972,0,5320,8631,5391,8126,5661,8073,8033,8277,7610,5237,5274,5347,5578,5491,10961,8365,5391,5407,7533,5476,8297,8387,5237,5237,5642,8527,8772,0,8473,5564,7904,7849,5325,5325,5407,8721,8411,7834,7952,5291,7858,7790,5651,5651,7763,5391,7487,8427,7632,5291,5651,7681,5401,5642,7972,7667,5237,5261,7994,5237,5606,7628,5347,7864,8762,8196,8334,5325,8391,7616,8131,5726,8427,5309,8721,8919,5407,7632,5726,5407,7994,5291,5726,7632,5347,7914,8539,8721,5407,8721,7834,7952,5651,5391,8427,5347,5291,5325,5237,8539,5606,7628,8131,5309,5726,5285,8484,5309,8140,5291,7972,8783,5325,7786,7883,8397,8539,8987,5396,7768,5717,7710,5381,7952,7817,8062,5381,7643,5688,5426,7588,8447,5325,5329,7972,7687,5358,5426,7982,8987,7817,7972,5529,5573,5237,5476,5329,5291,5237,7834,5237,7834,7834,5693,5564,5688,5688,5285,8062,5325,8010,8329,7757,8062,5496,8272,7500,5381,5476,8504,8329,7482,5261,7706,5480,5325,8329,7482,7864,5501,8387,5642,8022,7914,7482,7528,5291,7675,8884,8033,5337,7972,7504,7565,7528,8783,5617,5274,8302,8068,7500,5476,5476,7588,7710,7849,7914,7849,7500,5655,7605,5241,8131,5209,5209,8427,7786,5564,7768,5459,8093,8539,7924,5301,5386,7533,7576,8811,5476,8170,5708,7687,5480,5476,5726,7999,5255,5358,7504,5726,7904,8245,8443,8272,7605,7839,5578,5218,7500,8329,5476,5464,7849,5391,5496,5285,5391,8727,5496,8131,7952,7768,5296,5381,5396,5671,7521,7994,7914,5442,8316,5651,8427,8391,7864,5296,7834,7504,7795,7696,5413,7681,7710,5666,7605,8582,7473,7478,7628,8909,5325,7972,8504,7588,7843,7864,8582,7864,5391,8805,7883,8073,7877,5337,7946,8255,8196,9045,8345,7628,7675,7558,5381,5274,7478,7478,5524,8022,7734,5296,5485,8851,5655,8851,8762,10969,8227,8839,5381,7990,5726,8827,7675,5342,7599,8190,7893,7710,7738,5476,8136,7482,7757,7920,8287,7877,8033,9032,5325,7706,8772,8863,7994,8170,8745,5407,5241,8115,7967,7542,5314,7779,5407,7605,8052,8099,7914,8473,8359,7858,7628,5459,7500,7858,5391,8190,5391,7643,5396,7864,7548,8539,5661,5564,7734,8805,5407,7706,7628,5209,8732,5237,5296,7482,8345,5274,7823,8033,8527,7605,7924,7834,7946,8190,5717,7495,7706,8711,7491,7994,0,8909,7967,5261,5407,8073,7692,5464,8154,5717,7616,5651,7675,5651,5237,8322,8033,9641,5377,7588,7898,7710,7542,5391,5419,8467,5661,5529,8272,5642,5642,0,7628,8473,8827,8745,5301,5305,5305,8987,5578,9476,5407,8115,5381,5401,7957,8179,7742,8721,5237,5314,5708,5708,5309,5578,5476,7982,5419,7800,8783,7653,5396,7877,7500,8833,7719,5237,5617,8217,5241,5386,5347,7864,7616,5291,5325,9021,5285,8073,5296,5622,7715,8982,7687,5391,8255,8772,8982,7734,8119,8190,5372,8772,8903,5342,7542,5325,5285,5485,5401,8417,5476,7663,8427,7920,5296,5396,5476,5476,5261,8261,8417,7542,8863,7738,7982,7576,8052,7491,7616,5407,7628,5407,5296,8762,5578,8190,8365,5666,7914,7994,7877,5301,5476,8411,5578,7834,7864,5442,7994,5442,5642,7877,8261,7482,5347,8033,8154,5578,7811,8365,5476,8903,8427,7834,8762,7834,5325,5693,5564,8504,5325,5381,8062,8272,8261,5261,7706,5480,8329,5476,8329,5325,8504,5419,5296,7742,8170,8387,8884,7500,7864,8099,7504,8022,8527,5617,7565,5291,5241,7786,7849,5255,8443,5391,7504,7687,7588,5655,8539,7967,7839,5726,7999,5358,5476,5476,8582,5666,5391,7795,5391,5381,5296,7558,7605,7914,5396,7883,8131,7768,7952,8329,5476,5241,5671,7521,5496,7643,7500,7576,5381,7478,7628,8255,7478,5524,5337,5296,8582,8851,8022,7663,8745,7605,7967,7495,8762,5314,7893,7990,7994,7628,8839,7914,7757,7877,7779,9032,5342,8772,7914,5476,8711,8033,5459,5464,5407,5661,9641,7491,7994,7864,7628,8190,7877,5209,8345,7834,8539,5651,7858,7500,5305,8903,7588,5661,5642,7898,5391,7542,5651,5309,7800,5578,5407,9476,8772,8982,8255,5347,7734,5291,7834,7542,8427,8033,7786,7542,8062,5367,5291,8062,7653,8062,5237,5237,8154,8239,7653,8762,7610,8307,5419,7706,5391,5301,8919,5509,5358,5320,5274,8527,7972,7972,7834,7834,5391,5573,5296,8068,5476,8068,5476,5407,7904,5730,7864,8140,7521,7811,5407,8800,5671,5726,5564,5237,8888,8052,7628,7605,7977,0,5237,8073,7752,7811,8888,8539,8548,5501,5476,7972,8222,7637,7653,7920,8136,7920,8131,8136,5337,7757,5305,7487,5519,7811,8653,7849,7849,5305,7653,7790,5301,8447,5358,7628,7977,8641,7790,7920,5237,7864,8170,5305,5573,8772,7811,5291,7930,5655,8467,5564,7774,7817,8594,5476,8560,5509,8751,8154,8010,8772,8721,8115,7972,7696,7605,5391,5358,5209,7696,7952,7858,8411,8349,5491,8119,8582,7893,8964,5476,7710,7790,7849,5358,5329,8504,5296,5671,7858,5209,7977,7500,9353,5285,5671,8205,5407,7616,8329,5655,5617,8888,8888,5688,5617,8732,8205,7576,8277,8365,7487,8033,8987,5606,8456,8845,5274,8349,5407,5342,5564,8772,8827,8827,7972,5325,8015,8762,5309,7504,8598,8267,8222,5437,8277,8527,8777,5325,8119,7663,5622,5564,8131,8159,8115,8239,7994,8126,8033,5622,7972,8863,8473,8267,8833,8772,8365,7834,10978,5261,5509,7616,5309,8811,5274,8205,5358,8762,5320,7834,9259,8190,7610,8811,8205,7930,5655,5564,8467,7817,7774,8115,5274,8126,8015,8154,7972,8010,8772,8751,8411,8131,7605,8721,7696,5407,5358,5391,8964,7952,8582,5491,7790,7893,7849,5476,9353,7972,7977,5296,5209,8504,5329,8205,5209,5671,5309,5688,5655,8277,5617,5564,8762,5325,5320,8987,7487,5358,7576,8845,8456,8772,8277,8527,8863,5564,5622,8159,8115,7834,8365,8267,8833,5261,7616,8811,7710,5237,5617,7823,7504,5237,7558,7849,7558,5578,5367,5629,7967,7967,5301,8484,5564,7999,8811,7706,5261,7723,8196,5274,7839,5291,8196,7710,7839,8033,8033,5459,8170,8783,8539,7719,8427,7605,8354,5726,5381,7710,5573,7795,5529,7839,7681,7888,8577,8811,5612,8140,5237,7999,7588,7482,8170,5407,5699,5629,8287,8402,5329,5726,8903,5688,5209,5377,5726,7710,5464,8255,8255,5642,5372,5377,10982,8365,8365,8443,8994,8222,7692,7990,5471,5291,5564,8033,5407,7565,7972,7730,8354,8994,7706,8354,8322,5480,7658,5476,8184,8093,5712,7904,5459,7692,5480,7977,7839,8174,5280,7605,8170,5459,7972,5564,7533,8170,5261,8073,8447,8170,5301,8682,5476,5325,5491,5274,5285,7888,7605,5622,7473,5635,7952,7723,8005,7521,7710,5329,5413,7972,7977,7681,7774,5407,7738,8255,5358,5274,7888,5325,8170,5325,5320,5647,5573,5485,8077,7675,8073,7710,8658,8711,5320,7843,5218,5285,5442,8255,0,7738,5407,7706,8494,7994,5314,5381,5325,8077,8170,8170,8099,5329,8873,8359,8170,7710,5509,7768,5377,8073,8443,7867,5325,8140,8548,7774,8548,5352,7972,5241,7828,7972,7628,7888,5471,8104,5218,7548,8539,5578,8033,8663,5407,7795,5629,8170,5564,8443,5459,7858,8110,7495,5377,5496,8422,5407,8479,8451,5237,7738,8322,8427,7828,5377,5325,8077,7800,7511,8427,5358,5248,5329,8239,8140,5629,5491,5612,5237,8005,5325,7972,8322,8539,7800,8548,5401,5413,5372,8184,5432,8422,8170,8919,8554,5274,8010,5573,7548,5471,8073,8140,8443,5291,5291,7516,7738,8255,8255,7734,8239,5471,8498,8582,5372,7738,5358,5358,7605,8170,5573,8255,5471,5442,5325,7478,8354,8184,7516,8577,7972,5301,7972,7877,5573,8676,7994,7610,7516,5274,7994,8857,5347,5661,8261,5661,8077,7738,5726,5381,8498,8857,5237,8005,5291,7516,7914,7817,7883,10986,5726,5377,7888,7888,7817,7843,10994,7632,7663,5325,8170,5629,11001,11009,7834,11013,8756,5726,7957,8149,5480,7972,11023,5377,8479,11023,7628,7935,8387,7952,7667,7994,8354,7528,8539,8190,8010,8504,5261,8322,5320,8068,8033,5491,7864,8136,7706,7790,8821,8504,8010,5622,8062,7982,5726,5464,8539,8093,5491,5708,5655,8010,8582,8608,5352,7930,7786,7692,8174,7605,8164,7864,7904,7576,7972,5642,7990,5476,8745,5391,5255,7696,7723,8170,5285,8687,5329,8509,7768,7576,5437,7972,5617,7779,7628,8670,5337,7811,8267,5578,5509,5564,8745,7576,8447,8093,5578,8427,7779,5209,5296,7599,8287,8039,8795,5476,5352,7542,8234,8184,7858,8721,7930,8099,5213,7779,8821,8110,5325,7924,5274,8732,8694,8658,5717,5337,8062,5320,5564,5209,5564,7752,8543,8427,7628,7752,8272,7786,5655,5367,8467,5329,8484,8783,5622,7994,7643,10830,7935,5285,8427,7734,8149,5501,8010,7516,5717,7719,8795,7811,5476,5325,8217,7696,7628,5274,8062,5666,8456,5301,5301,5329,7516,7935,8387,7952,8190,8539,8504,5622,7864,8099,8821,8062,7692,7990,5329,7576,7972,5476,7982,5655,5301,5642,8745,5391,5437,7972,5285,7576,7768,5329,5285,5578,5564,7779,8184,7930,5296,8234,7599,7779,8287,5209,8694,5564,5325,7752,5320,8456,8467,5367,8427,5329,7935,7516,7528,7786,7839,7839,7920,8397,8411,7986,7986,7839,5529,8282,8411,8411,8411,0,8411,8282,7839,8411,8411,8033,8613,8789,8789,5655,8287,8287,11031,8705,8411,8411,11039,11044,8239,8245,7877,8811,7542,7628,7628,7706,8329,5476,8039,8349,7706,8925,7599,7977,9032,7616,5377,8267,5309,8560,8387,8010,7478,8245,7864,7811,5578,11048,5309,8467,7994,5401,7710,7935,8447,7681,7972,5476,7592,7977,8033,5491,7696,8539,8312,7599,5459,8115,8272,5320,5480,11056,5485,5296,8316,5337,5651,5413,5325,8716,5476,5381,8863,8577,8329,8422,8022,7795,8272,8334,5730,8447,5471,7592,8190,8329,8201,5337,7675,5688,7853,7605,5688,8539,8539,5647,5485,5377,8307,5476,5578,8316,8687,7478,5391,7558,7588,5372,8658,8527,5401,5612,5296,5301,11061,8277,8543,8451,5291,5413,7811,5491,5329,5337,7576,5309,7628,8287,8005,7994,5377,5476,8245,8467,7632,5358,7495,7628,8903,5342,5471,5342,7834,8732,7710,5377,7628,5391,5655,5337,8267,7864,8411,8039,7864,5367,5464,5688,8479,8245,7994,11067,5476,8131,5642,5573,7511,8329,7738,8539,7710,8467,7588,7738,7542,0,5642,8721,8015,5708,5391,8604,7710,7588,5372,5578,5471,8539,7957,7710,8451,7516,9021,7648,7542,8190,7628,5476,7478,8239,8170,5391,5358,5642,8349,5661,5342,7811,8427,8909,7696,7622,8411,8411,7986,5301,8467,5642,7632,5301,5476,8805,8919,7706,5218,5261,7653,7628,8211,8613,7723,0,8582,5564,8756,8888,7565,5426,8136,7528,7914,7898,8467,8879,8154,5661,7898,7478,8170,5337,7653,7658,5688,5358,8456,5224,8670,7930,8631,8539,7967,7491,7516,8582,7952,7605,5391,7692,7628,5671,5717,5237,7972,5325,8329,5730,5426,5285,5237,7952,7495,7843,7977,7908,5241,11075,8267,7834,7558,8307,7710,5329,5564,7478,5564,5524,8052,7843,7977,8845,7667,7616,8073,5237,7930,5301,8267,8201,7675,7706,7920,8745,8039,7576,8772,7967,5255,8277,8447,8033,5337,8201,7521,7883,8170,5218,8255,5476,8762,7834,5712,8893,7930,7864,7628,5676,7628,8267,5730,8005,7521,7521,5448,5629,8391,5237,8613,5573,5209,7967,8170,7478,7521,8267,8052,5218,5358,5305,8783,5564,8239,7482,5622,7982,8255,7834,8015,8010,8255,7500,8919,5358,7528,5358,8554,7994,5241,7790,5261,7516,8312,7883,8249,7491,8340,7908,8527,8249,7967,8582,5401,8365,7877,5337,7706,7834,7877,8365,8093,7811,5237,8527,8365,5301,5337,5693,5688,5314,8456,7576,5476,8560,7628,8484,7834,8397,7790,7883,7500,7853,5655,5501,11082,0,8267,7658,5606,5280,5480,7571,7653,7786,7588,8312,5442,5437,8391,7632,8287,5442,5337,8316,7972,5274,5419,7558,7482,5647,7675,5712,7692,7940,5666,7734,8397,8370,7834,5237,8929,7994,5329,5347,7834,8272,8456,8427,8104,8772,8397,8287,8140,8653,5377,7746,8762,7982,7500,5426,8772,8484,8104,8267,8312,7990,5448,5651,7768,5442,8451,8267,5218,8608,7687,8370,5629,5419,8647,5261,7628,5301,5372,8149,5476,5419,7734,5285,5237,8772,8312,8789,5476,5301,8170,5285,5476,8929,8613,8329,5442,7834,8093,5651,5651,8929,7528,5285,5237,5651,7834,8411,7774,5391,5337,5391,5391,5301,7548,7491,7779,5301,5309,5309,5688,5476,7757,8479,7999,5693,8312,5688,7849,5564,5655,7972,7904,8375,5564,8716,7757,5261,8255,5568,8732,5209,8010,7628,5396,7653,7817,7706,8211,8915,8539,7487,5237,5476,7637,5391,5647,5237,8293,7542,11094,5407,7920,7491,7482,7904,7565,8033,5426,7853,8354,7834,5564,7920,8136,7528,7864,5291,5471,8131,7482,7542,8282,5325,8504,8783,8816,5501,8267,5325,8196,7920,8039,8062,7482,7667,5391,5476,7548,8077,5671,8915,8154,7658,8756,11104,11112,11119,0,7888,5209,8447,5647,5391,8438,7786,7864,8093,5224,5476,7786,7904,7920,7628,7487,7571,8201,5337,7828,7977,5655,5391,5391,8964,8170,8427,5391,5617,8190,7999,8222,7849,5358,8119,5573,5391,8073,7605,7710,8925,8312,8316,7542,5564,8533,7511,7542,5564,5301,8354,7920,7924,8282,8073,5381,8131,5320,5241,7715,8447,8077,8539,7977,7715,7883,7914,5476,7487,8582,9012,7930,5407,8316,5426,8062,5285,7710,7696,5717,5224,5391,8711,7977,7482,7667,7576,5248,8987,8316,5305,5666,5325,7628,7500,8504,9021,7972,7723,5261,7710,5274,5426,7768,7920,8964,7605,5730,8391,7473,5642,5274,5274,5519,7667,5496,8149,5325,7920,8613,5651,5476,7482,8687,8345,9562,5337,7719,8898,7542,8375,11126,7663,7757,7653,7872,5391,8946,5688,7675,5578,5519,8205,5377,8451,7795,7817,7548,8307,5329,5712,7843,5509,7528,8267,7930,7478,7588,7628,7877,8805,8073,7653,7977,8062,8498,8527,7877,5509,7972,7487,8190,7478,7478,7681,7817,5314,9471,5426,7542,7914,7653,9471,5661,5573,5241,8170,5274,8964,8211,7734,5301,7533,7872,7558,5524,5301,8594,11135,7605,11142,5647,7511,8397,8170,8227,8467,5407,8461,7757,8272,8227,8099,7473,8093,7930,5329,5301,8322,8057,5676,8438,8397,5352,8345,7920,5274,8387,8863,5666,9051,8571,7738,8653,8762,7994,7805,5209,5241,8543,8077,8827,8658,8772,5693,7706,7542,5314,7706,7628,5309,8721,7790,8227,5606,5237,5401,8272,7786,8451,5320,5655,5329,8249,5329,5396,8473,5205,8277,8800,11147,8201,8716,5509,8365,0,8407,5274,0,8154,7779,5933,8514,8509,7616,8539,5401,8039,5274,8762,5647,7994,8827,5564,8110,5325,7864,8110,8033,5377,7687,8062,7924,8676,5367,7628,8946,5426,5464,7994,5564,7999,5496,7867,5617,8062,8005,5606,8711,8255,8255,5730,7853,8827,7811,7491,8438,5407,8676,5407,8022,8005,7982,8190,7888,5381,5655,8411,7548,5209,5519,7491,5712,5213,7663,5381,0,5712,8287,7738,7898,5367,5401,5612,5237,7511,8443,7491,8417,5534,8164,5629,5612,8322,5717,8851,7805,8073,7533,7730,5358,8940,8461,5209,7478,7616,5464,7681,7511,8509,7962,8302,5448,5509,8052,5655,5655,7632,5476,8467,5629,8077,5237,7977,5717,7538,5676,11126,11104,5612,0,0,0,8136,5329,5612,7742,8443,8641,5519,8721,8190,5401,8087,5708,7800,5305,7632,5358,7994,7511,8539,8255,8827,5476,5329,5708,8946,8322,8402,7706,8227,5629,7800,5218,7877,8527,5485,8473,5320,7957,5519,8827,7610,8365,5407,8340,5301,5367,5237,8756,0,5413,0,0,5241,5329,5396,5325,7734,5296,8322,8312,7516,5612,5519,8589,7558,8005,7487,7511,5386,7946,8959,5342,8010,8255,7768,7924,5629,7521,5291,5285,9021,8239,5381,8149,8217,8772,8365,5325,5407,7548,8919,8387,7616,8217,5291,8417,5377,7734,8964,0,0,5693,5261,8509,5407,7893,5342,5329,5676,5296,7628,5401,5314,8255,7542,5314,5666,5358,8964,7811,7491,7888,8039,8903,8170,5501,8245,7930,5476,7663,8548,8329,7757,7605,7946,8863,5325,8077,7738,8154,8745,8888,7616,8005,8381,7500,5407,5407,11155,5496,7972,7763,5301,5666,5325,8857,8582,8987,5352,7986,8762,8851,8287,5329,8473,8222,5329,0,0,7610,7864,5329,7528,5407,5347,8073,5407,5642,7877,7521,5407,5237,8721,8777,8077,5666,8498,5726,7533,7632,8857,8375,5372,8077,5291,5629,5320,5347,5309,5688,5476,5655,5693,7999,8312,7757,5647,7542,8732,5261,5325,8010,7757,8514,8293,5237,7637,5426,5671,8201,7658,8170,5471,8783,7548,8136,7930,8461,8282,7542,5642,8196,7667,7478,8131,8756,7565,8154,7853,8816,7904,7628,7542,5241,7542,7786,8073,7864,8312,8201,7904,8354,8857,7715,7883,7977,7828,5337,8964,8073,8093,8851,7542,7511,8222,5391,8190,5617,5358,8447,7920,7888,5426,8898,8149,7696,8211,8387,5337,7558,7977,7491,5386,7972,8903,8316,5329,7757,7482,8509,7687,7605,5274,8805,9003,5274,5396,7768,8302,7977,5642,5717,8391,5241,7719,5285,5476,7877,5248,5629,8345,7482,8613,7605,8149,7734,7478,8277,8594,5401,8946,7675,5612,5301,5241,5573,8039,5524,8964,5519,8451,9471,8527,7528,7511,8509,5407,7872,5377,7843,7542,8170,9051,8322,7888,5606,8451,7790,8543,7706,8407,7473,8653,8227,5237,7786,7632,7805,8863,5309,7972,5274,5676,8154,8057,8772,5693,5407,8170,8249,5209,7867,7616,8509,8322,8022,7864,5496,8255,7548,8676,5448,5464,7811,7663,8762,5712,7957,5209,7893,5712,5305,5655,8073,5717,8077,5629,5676,8077,8136,7511,8052,7898,5476,7977,8888,8164,8473,5629,7800,7632,5413,5218,5485,8539,8443,8190,7511,8772,5291,8239,7734,5329,8217,5347,7734,8498,8322,8919,8154,5666,7811,5314,5401,5476,5496,8473,7986,7877,7521,8227,8227,8484,5708,5459,5726,8239,5651,8227,8514,7538,8969,5261,8154,8514,7834,5358,7653,5358,8589,8509,8756,5413,8062,8489,8589,5274,5274,5407,8438,5367,11161,8307,7687,5386,5407,5352,5367,8093,8411,5358,8489,7849,8721,5717,5717,8048,5573,8062,7952,8438,7719,8653,7843,5329,8805,8302,8170,8354,8354,7877,5726,7516,8227,8635,8653,7834,8438,7834,7864,7643,7628,7752,7521,8222,7521,5726,5642,7752,8282,8345,7994,7482,8144,5699,5347,8762,0,11167,5606,8077,7738,8509,7849,5699,8519,8721,8307,7706,8005,5629,8721,8647,8795,5237,5296,7877,7920,8903,7811,7738,7752,0,8514,8969,5261,7834,7653,5358,7752,8519,8489,7994,5274,8062,5407,8438,8756,8514,7687,5386,7952,7752,7738,8438,5329,8509,8048,5717,7849,8653,8484,8354,7843,8762,7628,7834,8227,5237,7752,7643,7834,7864,7877,5347,5726,5296,8144,5699,5717,5606,7738,5699,8795,7811,5564,5564,5333,8217,7528,7542,7478,5476,5480,7482,7924,8307,7864,8119,8282,8456,8946,8267,8821,7972,7920,5485,7565,7924,7482,5655,5381,7558,7864,5726,8539,8443,7571,7828,8093,9051,5480,5480,8312,5224,5564,5325,5329,7610,8033,5426,7888,7957,5305,5419,5320,7888,5274,7696,7952,7628,5671,5261,8329,8255,5426,8104,5564,5358,5367,5261,8119,7972,7734,8307,8467,5655,5573,5274,7853,8077,8267,5274,8456,8456,7967,5476,8217,8099,7482,8170,7805,8033,7920,8093,8272,5274,5329,8119,5274,7482,7605,7924,8705,5261,5248,7834,7482,7628,5377,7628,7610,7994,7994,8077,8217,5342,8345,5464,5381,5342,7482,5671,7834,5296,5717,8267,7478,7994,7663,5237,5629,5325,8015,8479,5708,5237,7482,11175,7648,7516,8422,8919,7920,5342,5342,7628,5274,5501,8447,7696,5325,8479,5237,7482,7864,5296,7610,5237,5301,5301,5301,8863,7849,7972,9032,7667,7823,5476,5699,7834,7542,8387,7504,8387,5325,7786,7811,7972,8131,7667,7839,5218,8170,5573,7982,8925,7632,7628,5442,7757,5342,7653,8154,8617,8721,5573,8925,5218,5325,5237,5442,7511,5301,7823,5529,8925,5325,5325,7628,7628,5529,8136,8998,7719,7715,7752,5501,8334,8267,5301,5301,8608,8093,5666,8345,8222,8249,7828,8903,5426,7478,7999,7500,5325,7715,8033,7675,7687,8805,5655,8456,5712,8093,7706,5442,8154,8302,7893,5534,8427,7482,8447,5442,8068,7516,0,7582,7616,7478,8093,8617,8093,5367,8062,7482,5305,8349,8267,7511,8249,8888,7478,7994,8154,7482,5237,5476,7663,7883,8919,5274,7628,5329,7610,5491,5325,8334,7924,7904,7920,7994,0,5237,5325,8349,8249,8249,5666,5301,8154,7663,7893,5491,7610,8093,7663,8527,5301,8222,0,7849,7849,5224,8745,8745,5485,5606,5655,5485,7558,8745,5485,5485,7828,5485,5606,7893,7893,8898,5651,7746,7746,8174,7491,5606,5296,7491,5717,5693,5496,5407,8504,8539,8762,7478,8504,8196,5309,5529,8816,7904,7482,7730,8136,5305,8443,8245,8282,5476,5642,8272,5480,7977,8062,8174,7924,11180,7482,7977,8272,5325,5661,8345,8345,8727,7817,11186,8245,8255,8805,5509,7616,5342,7681,8255,8190,8571,5413,7738,8015,5224,8144,8170,7986,5661,8110,7898,5476,5688,5688,7849,7675,7715,8170,5407,8411,8539,5407,11194,8272,8131,7738,7930,5661,7533,5717,5358,8144,5629,7957,7952,8255,5529,5325,5407,5419,7877,8245,8154,5274,7542,8762,8631,5407,5347,7994,8504,5564,5712,5676,5717,7994,8255,7653,8227,0,8110,8329,5617,7994,5717,7930,8272,8131,8267,0,5358,7994,5296,8762,8631,8762,7994,8504,5564,7653,7994,8267,8272,8484,8484,5274,5661,5274,5325,7482,8925,8267,8670,5333,5352,7946,7616,8267,5352,7482,7482,7521,7982,7491,5693,8745,7533,7521,8598,7653,7500,5476,7500,7786,8022,8005,7706,8560,7628,5509,8282,5471,8539,7883,7533,8312,8093,8604,5485,5666,7849,8255,7864,7864,7994,5381,7795,7914,5476,7914,8370,8217,7858,5255,5666,5564,7977,7853,5296,8005,7977,5333,5606,7558,7616,7667,7982,7653,5485,8422,8422,8751,8277,8422,5209,5209,7805,5693,8277,7834,7653,5407,7990,8402,7592,8196,5476,8159,5377,7864,7864,7834,7643,8795,5218,5622,7834,5274,7528,5476,8467,8940,7828,7828,5419,7692,5666,8239,8647,5476,7800,7706,7648,8052,8255,7786,8329,7542,5296,8427,8613,8062,8888,5274,8751,5329,5347,8077,7768,7491,5693,8745,7653,7521,8598,7500,7500,5509,7786,5471,7706,8282,8022,8560,7628,5329,8093,8312,5485,5381,7977,5606,7653,7616,7592,8370,5476,8751,5296,8422,7653,7616,7616,7990,5377,5218,7864,5622,7834,7864,8077,7800,7828,8940,8052,5666,8427,8613,8751,7768,8527,8473,11198,5564,5367,8427,8473,7730,7904,7658,8577,7795,8190,8670,8170,5358,7487,7994,7924,5642,5448,8509,5514,8010,7511,5237,8239,8647,8647,7511,8473,8473,8473,8239,0,7719,8527,8473,8527,7924,8427,8473,7730,8170,7487,5448,5642,7511,8647,8473,8473,7893,8010,7893,7893,5391,5391,8179,5325,5693,7487,5480,8427,7962,7521,8068,8504,7628,5676,7710,7482,8010,8010,7962,7482,7605,5476,8533,5358,5381,8272,7511,7839,8964,7487,8222,5391,7888,8370,8504,5606,5285,7977,5224,5642,8316,7839,7521,7924,7924,7696,7834,5333,5476,8179,8073,8028,7864,8201,7667,8307,7588,7628,5391,5642,7643,8039,5391,5407,8863,5224,5274,8201,7491,8772,7893,8015,7994,8721,7864,8699,7643,7982,5464,8964,5296,5407,5730,7849,5426,5501,7994,7786,5496,8022,5629,8073,5524,5237,8005,7511,5448,8272,7491,8267,5305,5629,7800,5358,7628,5519,5309,8589,8005,5622,5261,7710,7883,5476,5325,7648,7558,5218,8272,5296,7521,8427,5501,8370,8249,7834,5305,7877,7521,7632,8857,7700,5391,5693,5325,5480,5426,8068,5237,8504,7628,7710,8010,7482,5407,5391,8222,7487,7888,5476,7696,7648,7521,7977,5333,5285,5476,5224,8073,8307,7864,7628,8028,7667,8039,7643,5274,8721,5496,8005,7786,5448,7877,7491,5305,8073,7511,5519,5309,7800,8589,5622,7700,8087,8005,8039,7521,5501,7904,8447,5358,8073,5647,7653,7893,5407,8345,7663,5564,5274,7752,7528,5501,8888,5426,7538,7628,8527,7653,8539,5480,5480,7710,8329,7605,7972,8456,7528,8915,7730,7482,7752,7972,7883,5329,5337,8073,8222,7908,5480,5476,5726,0,5726,7592,8073,7999,8467,5352,7576,8170,7605,8293,8170,7920,8205,7977,8093,5655,7658,5564,7924,5391,5358,5480,5480,7487,7511,7538,7858,8272,7972,8164,8909,7582,8329,7768,7914,7592,7696,8370,8073,7605,7482,7632,11206,7883,5661,7511,8170,8022,8196,8211,7779,7653,5647,8190,8422,7667,7864,7558,7528,7663,5329,8863,7576,5617,7858,8653,8272,8277,8548,7990,7706,7706,7834,7893,5514,7834,5381,5642,7478,7858,8827,7858,7542,7893,5464,5407,8154,7628,5377,7768,5367,8548,8005,8110,7487,7795,5480,8005,5448,7542,7558,7972,7511,8334,8909,5237,8340,8762,7834,8467,7967,5514,5261,5301,7972,8617,5329,5237,7632,8015,5305,5708,8179,8647,8827,5726,5358,7972,7628,7500,5396,8073,7588,7675,7516,7877,5471,7511,5480,8833,8772,5285,8964,7834,7632,8427,5485,5476,7491,5480,8888,7967,7834,5352,5329,8909,7521,5325,8617,8170,5237,7811,5301,8473,7538,7628,5480,8329,7710,5726,8915,8073,5329,8205,5391,7487,5564,8170,7967,7605,5480,8293,7977,5476,7658,7675,7538,7482,5285,5396,7632,8370,7858,8473,5301,7558,7834,7528,8196,7667,7706,7706,7990,8863,8548,7588,8179,7858,7972,8005,5514,7478,5708,7511,7542,5261,8647,7632,8827,7877,7967,5325,8617,7521,7786,7994,7994,7994,7628,8811,5476,8608,7853,5661,8222,5358,7710,5377,8539,7692,8370,8255,8131,7473,5717,8422,8845,7858,5358,7990,9012,7628,5342,7957,8073,7675,8334,8073,7839,8739,8888,5305,8239,7957,5386,8762,8205,5342,5377,8888,8739,5329,5524,5524,8255,8898,8255,8149,5372,8473,8653,8653,5377,7565,5519,8297,7790,7883,8653,8888,8048,7681,5352,5209,8048,8297,5377,8174,7920,7790,5564,7696,8164,5726,7817,5519,7795,5325,5352,9361,8670,8302,5377,5301,8888,8548,5377,5352,8022,5241,7768,8548,8598,5407,7888,7982,7986,8484,7706,5401,5655,8888,5352,5305,8589,7800,7800,9026,7500,8577,7542,7542,8789,7811,7908,8381,8888,8577,8261,8307,8307,5386,8062,5237,8307,7653,8307,8307,8484,8227,7628,7628,5301,5676,5564,7542,7952,8548,7511,7952,8987,7628,7952,5712,5325,7706,5381,8005,7643,7904,8312,5712,7500,7834,7675,7779,7628,8422,7706,7599,7779,7994,5407,7710,8647,5358,5305,5325,7500,5442,7834,8427,7628,8479,8504,5325,11212,7817,5480,7757,5325,7500,7864,7864,8302,8560,8068,5305,5381,7914,8010,8467,5358,5329,7752,7982,5329,8925,7565,5501,8136,5337,11217,11225,7849,5367,5726,7653,7920,8093,5480,8073,5688,5255,5564,5358,5325,7994,8170,7757,8073,5337,8234,7920,8184,5426,7658,8222,5564,7687,8170,7786,11231,8316,11239,7738,5381,5320,5730,7521,7696,8345,7994,7681,7605,7482,8577,7632,8316,5476,7706,5224,7994,5285,8201,7952,5274,5717,5296,11243,11249,8898,11255,7888,7667,5377,7800,7675,8925,8302,8196,7628,8028,5578,8234,8845,7588,7478,5688,8805,5564,5509,5337,5301,8302,8302,5524,8249,11261,11267,11274,11285,5218,8447,5209,7706,8745,7521,8028,8104,5325,7757,7867,7786,7576,7582,8277,7893,8447,5476,8653,5329,8484,8227,5485,8099,8093,7967,5301,8249,8548,7972,8184,11295,11303,11310,5391,7914,7643,5391,5730,5426,7605,7986,8548,5325,8411,8411,7811,7768,8115,7994,7994,7628,8658,8110,5459,5464,5401,7834,5688,5688,5407,5358,7864,7924,5564,8159,5407,5367,5480,7982,11319,8893,11328,7752,5407,8052,7478,7565,5514,7511,7538,5391,5391,7482,11336,8909,7738,5642,5717,8164,7542,7706,7752,8893,11339,5401,5708,5333,5296,8438,5325,7681,5726,5407,5514,7800,5237,5688,8473,5325,5325,7605,5419,5688,5622,5218,8015,8756,5529,5432,5291,5726,7521,8073,5285,8329,7588,5464,9021,5261,5261,8010,5291,7516,8329,7622,5237,11349,11354,5501,8721,5730,7908,9353,5514,8427,8811,7952,8119,5301,8227,11339,11360,11368,8613,5325,7500,8154,11360,5301,8577,5301,7763,5655,7521,7864,5329,8721,5301,5274,7628,8479,5325,5337,8068,5329,7565,7904,7849,8073,5255,8184,5329,5337,7687,5564,8073,8222,5730,7920,7658,7952,5381,8898,7994,7696,8316,8115,5730,7908,5325,5285,5274,8925,7521,8329,8845,5301,5401,5407,5301,5391,7681,8234,8302,5509,7667,5325,5218,8745,8093,7706,7967,7893,8653,8227,7786,8447,8184,7757,5485,7914,5391,5209,5501,5459,5358,8227,5391,7752,7994,8159,7864,5688,5564,5464,7768,5419,8411,5514,5708,7706,7738,7482,5642,7565,5407,5333,8473,5529,5432,7800,8438,5218,7994,5237,5291,5261,7516,9021,8154,8811,5301,8427,8721,5453,5476,5564,5301,8484,8201,7834,5564,7757,5325,8527,11375,8811,5391,8527,8391,8222,8467,7972,7982,8196,5564,5501,7752,5407,5391,7628,8998,11380,5291,5291,7920,7811,5655,8222,7834,8387,5241,7565,8527,7752,7742,8594,7977,8293,8093,7763,5564,5480,7752,5301,8411,7972,5717,8467,5209,5726,7675,7972,7883,8170,5337,7786,7548,7628,7924,8164,8387,8964,7628,11386,7616,8863,7478,7696,7795,7663,7972,7834,7946,5285,5325,8577,7605,8504,5476,8062,7632,8613,8711,5717,8504,5285,5519,7576,7972,7632,11393,11402,9457,8375,7977,5325,7628,7811,5480,8201,7478,5676,7628,8073,8329,8329,5358,5237,7667,8170,5647,5485,5377,7864,7864,8582,7982,7478,7914,8277,11408,11417,5329,5255,5320,5564,8345,7999,5352,8196,7542,7930,7757,5329,5699,5407,8170,5647,8387,8467,7706,5301,7491,8863,8571,8863,8653,8119,7706,5485,5476,5476,5485,5209,8277,7582,7706,8104,8845,8170,5726,11425,11432,5325,5320,0,7710,7622,8110,8345,5688,5377,7982,5377,7864,5381,7790,5564,8104,5647,7834,7849,8467,7858,8267,5712,7982,7616,5471,7715,8170,11445,8777,7565,7786,7616,8467,8190,5534,5391,7849,5573,5629,5367,8893,7511,5325,7786,5407,9032,7653,5209,5209,8447,5642,7834,5325,5301,5606,5568,5377,5377,8447,5647,7538,5285,5524,5606,8033,5301,5622,5578,5708,5642,5476,7742,7710,7972,8239,8164,7957,5358,8617,5314,7628,7478,5291,7482,7768,7487,5285,5476,5396,5358,7616,7588,5464,8010,5285,8239,7834,8898,8484,5274,5274,5647,8349,9021,7628,7616,5329,8641,5274,5529,5476,7920,5320,7632,7706,5476,5325,5578,7628,8427,7491,7924,7920,8381,8154,5651,7616,8249,8539,8354,7628,5666,8222,5329,7849,7610,8617,8354,7616,8721,5726,5301,8375,5453,8484,5325,8467,8391,5391,7742,8387,8777,8222,5655,7786,7582,5329,8387,7675,7924,8093,7972,5726,8467,5529,5480,7487,7972,7696,7795,5519,7946,7576,5717,8375,8062,7478,8073,5301,5676,7982,7864,7628,5274,5377,7478,5699,7622,8345,8653,7930,5352,7542,8104,8845,8467,7588,7982,7849,7864,7786,5688,5209,5712,7715,8447,5642,5534,7511,5325,8447,5407,7849,5476,7616,5578,8239,8239,5285,8484,7628,5329,8190,8427,7616,8154,8249,8721,8617,5329,5309,8093,5407,5274,8451,5407,5407,7834,8451,5329,5337,8140,5325,8473,8140,8473,7605,7667,7605,5407,5651,5651,7478,7511,8033,7667,7516,8447,7706,5329,8484,7667,5485,5301,7521,7834,7977,5651,5301,5617,8015,7516,5485,5325,8093,7834,8140,8349,8349,5717,8783,5564,7746,7746,5564,8174,5726,5726,8711,5564,5274,8277,5726,7746,0,8527,5564,5726,7746,7538,5305,5305,5296,7538,7967,5362,5501,5464,5464,5309,8687,5606,7853,7946,5237,8582,7946,5320,5301,8184,7710,9372,9372,5476,7542,7883,5237,8641,5305,5305,7542,5491,5573,5337,7828,5476,5367,7834,5726,5712,7834,5485,7628,5301,8903,8762,8179,7482,8345,7834,8772,8345,5655,5491,8179,5476,5712,7883,7834,8762,5329,7972,5501,5564,5564,8438,8438,8467,8140,5726,8783,8631,7605,7972,8211,5708,5432,5480,5358,8467,8783,5480,5693,5651,8716,5693,5209,7786,7786,7582,5501,8272,8467,7920,8227,5524,7706,8467,5629,8909,5320,5320,5501,7893,7752,7904,7757,5480,8316,5726,8119,5391,5337,5391,8805,7478,8184,5485,7643,8170,7834,5647,5377,5237,5274,7834,5666,5358,5642,5688,7653,7478,7478,5730,5237,5717,7687,5519,5534,7687,8789,7700,7706,8533,5325,5209,5325,5325,7706,5325,7710,8033,8033,7849,8387,8800,5661,8174,8451,5391,5209,7710,8184,8170,7681,8093,8093,5573,7768,5661,8800,8077,8484,5642,8287,8653,7628,5573,5476,8447,8451,7967,5726,5362,5274,7742,7864,8494,5476,8287,7967,7828,5573,5309,8387,7710,8033,7849,8800,8170,8093,8174,7681,5209,8800,7628,8287,5726,8494,7610,8334,7817,8334,7834,7610,7610,7817,8795,7738,8093,7738,7610,7817,8795,7952,5688,5432,7952,8354,7805,7849,5291,5661,7628,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4269,11454,0,0,11459,0,0,0,11464,0,0,0,0,0,0,0,11469,11474,0,11479,0,11484,0,11490,0,0,0,0,11495,11500,0,0,0,0,0,0,11506,0,0,0,0,0,0,0,0,0,0,0,11512,0,0,0,0,0,0,0,11519,0,0,0,0,0,0,0,0,0,0,0,11525,5599,40,11528,11531,11535,335,11539,4899,11543,24,11546,11549,11553,11556,380,11560,52,11563,11566,32,3103,11569,11573,2795,11577,11581,11586,11591,11595,11600,11604,800,11608,11612,11617,11621,11626,11630,2809,11634,11638,2806,11642,11646,11650,2792,9676,11654,11659,11663,11667,11671,11674,11678,11683,11687,11691,3457,11695,11699,11704,11708,11713,11717,803,9686,11721,11726,11730,11735,11739,3471,11743,11747,11751,3454,11755,9690,11759,11763,11767,11771,11774,11778,11783,11787,11792,11797,11801,11806,11812,11818,11823,11829,11834,1073,11839,11844,11850,11855,11861,11866,11871,11875,11880,11885,11889,11894,11899,11904,11908,11913,11919,11924,11929,11934,11938,11943,11948,11953,11957,11962,11968,11973,11979,11984,11989,9710,11993,11998,12003,12007,12012,12017,12022,12026,12031,12037,12042,9721,12047,12051,12056,12062,12067,12072,12077,12081,12086,12092,12097,12103,12108,12113,12117,12122,12128,12133,12139,12144,12149,12153,12158,12163,12168,12172,12177,12183,9740,12188,12192,9745,12197,12202,12206,2599,12210,12214,12219,12223,12228,12232,845,12236,12240,12245,12250,12254,12259,12263,2613,12267,12271,2610,12275,12279,2596,12283,12287,12292,12296,12300,12304,12307,12311,12315,1733,12319,12323,12327,833,12331,12335,2759,12339,12343,12347,2738,12351,12355,12360,12364,12368,12372,12375,12379,12383,2819,12387,12391,12396,12401,12405,12410,12414,985,12418,12422,12426,2833,12430,12434,12438,12442,12446,2816,12450,12454,12459,12463,12467,10579,12471,12475,12480,12484,12488,3120,12492,12496,12501,12505,12510,12514,816,12518,12522,12527,618,12531,3194,12535,12539,432,12543,12547,12551,3183,12555,12559,12564,12568,12572,324,12576,12580,5230,12585,12590,12594,806,12598,12602,12607,12612,12616,12621,12625,2854,4993,12629,2851,12633,12637,12641,2840,12645,12649,12654,12658,12663,2496,12668,12673,12679,12684,12690,12695,942,12700,12705,12711,12716,12722,12727,2514,12732,12737,2510,12742,12747,12752,3201,12757,12762,12768,12773,12778,10015,12783,12788,12794,12799,12804,10060,12809,12814,12819,10264,12824,12829,10330,12834,12839,12844,10207,12849,12854,12860,12865,12870,12875,12879,12884,12890,12896,12901,12907,12912,3064,12917,12922,12928,12933,12938,12943,12948,12953,12957,12962,12967,12971,2950,12975,12979,12984,12988,12993,842,12997,13001,13006,13010,13015,13019,1400,13023,13027,2957,13031,13035,13039,2947,13043,13047,13052,13056,13061,13066,13070,13075,13081,13086,13092,13097,4878,13102,13107,13113,13118,13124,13129,13133,13138,13143,13147,13152,13157,13162,13166,13171,13177,13182,13187,13192,13196,13201,13207,13212,13216,2547,13220,13224,13229,13234,13238,13243,13247,839,13251,13255,13260,13265,13269,13274,13278,1426,13282,13286,2554,13290,13294,13298,2544,13302,13306,13311,13315,13319,4493,13323,13327,13332,13336,13340,3228,13344,13348,13353,13358,13362,13367,13371,915,13375,13379,13384,13389,13393,13398,13402,3242,13406,13410,13414,3239,13418,13422,13426,3225,13430,13434,13439,13443,13447,2998,13451,13455,13460,13464,13469,13473,836,13477,13481,13486,13490,13495,13499,1311,13503,13507,13511,3009,13515,13519,13523,2995,13527,13531,13536,13540,13545,3271,13550,13556,13561,13567,13572,1060,13577,13582,13588,13594,13599,13605,13610,3289,13615,13620,13625,3285,13630,13635,13640,3267,13645,13650,13656,13661,13667,13672,13677,13682,13686,13691,13697,13702,13708,13713,13718,13722,13727,13732,13736,13741,13746,13751,13755,13760,13766,13771,13776,13781,13785,13790,13796,13802,13807,13813,13818,13823,13827,13832,13838,13844,13849,13855,13860,13865,13869,13874,13879,13883,13888,13894,13899,13905,13910,922,13915,13920,13926,13932,13937,13942,4136,13947,13952,13957,13961,13966,13970,1623,13975,13979,429,13983,13987,13992,13997,14001,14006,14010,2537,14014,14018,1620,14022,14026,14030,852,14034,14038,14043,14047,14052,3114,14056,14060,482,14064,14068,14072,3126,14076,14080,14085,14089,14094,14098,1044,14102,14106,14111,14115,14120,14124,3137,14128,14132,464,14136,14140,14144,3123,14148,14152,14157,14161,14165,14169,14172,14176,14181,14185,14189,2864,14193,14197,14202,14207,14211,14216,14220,926,14224,14228,14233,14237,14242,14246,2878,14250,14254,2875,14258,14262,14266,2861,14270,14274,14279,14283,14287,5159,14291,14295,14300,14304,14309,6491,14314,14319,14325,14331,14336,14342,14347,6483,14352,14357,6509,14362,14367,6505,14372,14377,6487,14382,14387,14393,14398,14403,14408,14412,14417,9839,14423,14428,14433,14437,14442,14448,14453,14459,14464,14469,14473,14478,14484,14489,14494,14499,14504,14508,14513,14517,14522,14528,14533,14538,14543,14547,14552,14558,14563,14567,2678,14571,14575,14580,14584,14589,14593,826,14597,14601,14606,14610,14615,14619,1325,14623,14627,2689,14631,14635,14639,2675,14643,14647,14652,14656,14660,14664,14667,14671,14676,14680,14685,6435,14690,14695,14701,14706,14712,14717,992,14722,14727,14732,4430,14737,14742,6449,14747,14752,14757,6431,14762,9853,14767,14772,14776,14781,14787,14792,14797,1464,14802,14807,14813,14818,14824,14829,3166,14834,14839,14844,3162,14849,14854,9858,3144,14859,14864,14870,14875,14880,14885,14889,14894,14900,14905,14910,812,14915,14920,14926,14932,14937,14943,14948,3342,14953,14958,14963,3338,14968,14973,3320,14978,14983,14989,14994,14999,15004,15008,15013,15019,15024,822,15029,15035,15040,15045,10693,15050,15055,15060,15065,15069,15074,15079,15084,15088,15093,15099,15104,15109,15114,15118,15123,15129,15134,15139,4604,15144,15149,15154,15158,15163,15168,15173,15177,15182,15187,15192,15196,15201,15207,15212,15217,15222,15226,15231,15237,15242,15247,988,15252,15257,15263,15268,15274,15279,327,15284,15289,15294,2305,15299,15304,15309,2696,15314,15319,15325,15330,15335,15340,15344,15349,15355,15360,15364,819,15368,15372,15377,15381,15386,15390,2668,15394,15398,2665,15402,15406,15410,2651,15414,15418,15423,15427,15431,4486,15435,15439,15444,15448,15452,3208,15456,15460,15465,15470,15474,15479,15484,15489,15493,15498,15502,3222,15506,15510,15514,3205,15518,15522,15527,9873,15531,5156,15535,15539,15544,15548,15552,2712,15556,15560,15565,9877,15570,15575,15580,3499,15585,15590,15594,2726,15598,15602,15606,2709,15610,15614,15619,15623,15627,15631,15634,15638,15643,15647,15652,4282,15657,15662,15668,15674,15679,15685,15691,15696,15702,15707,4269,15712,15717,15722,4265,15727,15732,15738,15743,15748,15753,15757,15762,15767,10019,15772,15777,15783,15789,15794,15800,15806,15811,15816,10268,15821,15826,10211,9881,15831,15837,15842,15847,15852,15856,15861,15867,15872,15877,2968,15882,15887,15893,15899,15904,15910,9886,15916,15922,15927,2986,15932,15937,15942,2964,15947,15952,15956,2891,15960,15964,15969,9900,15974,15979,15984,15988,15992,2905,15996,16000,16004,16008,16011,16015,16020,16024,16028,347,16032,16036,16041,16046,16050,16055,16060,16065,16069,16074,16078,1318,16082,16086,16090,670,16094,16098,16103,16107,16111,1124,16115,16119,16124,0,0,0,15590,2547,13443,15882,14291,6435,13615,13418,2599,13771,13332,11894,12267,1318,11747,13844,12590,915,0,0,12768,11659,13594,15932,2840,11563,15717,14120,11763,12149,16024,12459,15340,12438,1044,3222,0,15753,13398,15674,3114,3183,15325,13234,5159,14237,14193,13869,15242,0,15284,3338,14319,0,3009,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2995,16128,0,0,16132,0,0,0,16136,0,0,0,0,0,0,0,16140,16144,0,16148,0,16152,0,0,0,0,0,0,16157,0,0,0,16162,0,0,0,16168,0,0,0,0,0,0,0,0,0,0,0,0,16174,0,0,0,0,0,0,3030,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16181,0,0,0,0,0,0,3016,16187,0,0,16192,0,0,0,16197,0,0,0,0,0,0,0,16202,16207,0,16212,0,16217,0,0,0,0,0,0,6584,0,0,0,16223,0,0,0,16228,0,0,0,0,0,0,0,16233,0,0,0,0,0,0,0,0,0,0,0,16238,16242,0,0,16247,0,0,0,16252,0,0,0,0,0,0,0,16257,16262,0,0,0,16267,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2998,16273,0,0,16277,0,0,0,16281,0,0,0,0,0,0,0,16285,16289,0,16293,0,16297,0,0,0,0,0,0,806,16302,0,0,1655,0,0,0,16306,16310,0,0,0,0,0,0,16315,16319,0,16323,16327,16332,0,0,0,0,0,0,16337,16341,0,0,16346,0,0,0,16351,0,0,0,0,0,0,0,16356,16361,0,16366,16371,16377,0,0,0,0,0,0,4073,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16383,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16389,16393,0,0,16398,0,0,0,16403,0,16408,0,0,0,0,0,16414,16419,0,16424,16429,16435,0,0,0,0,0,0,2851,16441,0,0,16445,0,0,0,16449,0,0,0,0,0,0,0,16453,16457,0,16461,0,16465,0,0,0,0,0,0,16470,0,0,0,16475,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16481,0,0,0,0,0,0,0,4061,0,0,0,16488,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2854,16493,0,0,16497,0,0,0,16501,0,0,0,0,0,0,0,16505,16509,0,16513,0,16517,0,0,0,0,4993,0,2857,0,0,0,16522,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16527,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16532,0,0,0,16536,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16541,0,16546,0,0,0,0,0,0,4069,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2840,16552,0,0,16556,0,0,0,16560,0,0,0,0,0,0,0,10627,16564,0,16568,0,16572,0,0,0,0,0,0,16577,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16582,0,0,0,0,0,0,0,3613,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3617,16589,0,0,16594,0,0,0,16599,0,0,0,0,0,0,0,16604,16609,0,0,0,16614,0,0,0,0,0,0,16620,0,0,0,16624,0,0,0,16629,0,0,0,0,0,0,0,16634,0,0,0,0,16639,0,0,0,0,0,0,16645,16649,0,0,16654,0,0,16659,16664,0,16669,0,0,0,0,0,16675,16680,0,16685,0,0,0,0,0,0,0,0,4065,0,0,0,16690,0,0,0,16695,0,0,0,0,0,0,0,16700,16705,0,0,0,0,0,0,0,0,0,0,324,16710,0,0,16714,0,0,0,16718,0,0,0,0,0,0,0,16722,16726,0,16730,0,16734,0,0,0,0,0,0,803,16739,16743,0,16748,0,0,0,16752,0,16756,0,0,0,0,0,16761,16765,0,16769,16773,16778,0,0,0,11713,0,0,16783,16787,0,0,16792,0,0,0,16797,0,0,0,0,0,0,0,16802,16807,0,16812,16817,16823,0,0,0,0,0,0,16829,16833,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16838,16842,0,0,16847,0,0,0,16852,0,0,0,0,0,0,0,16857,16862,0,16867,16872,16878,0,0,0,0,0,0,3468,16884,0,0,16888,0,0,0,16892,0,0,0,0,0,0,0,16896,16900,0,16904,0,16908,0,0,0,0,0,0,16913,0,0,0,16918,0,0,0,16924,0,0,0,0,0,0,0,16930,16936,0,0,16942,16949,0,0,0,0,0,0,16956,0,0,0,0,0,0,0,16960,0,0,0,0,0,0,0,0,16965,0,16970,0,0,0,0,0,0,0,0,3471,16975,0,0,16979,0,0,0,16983,0,0,0,0,0,0,0,16987,16991,0,16995,0,16999,0,0,0,0,0,0,2779,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,17004,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,17010,0,0,0,17014,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,17019,0,0,0,17023,0,0,0,17028,0,0,0,0,0,0,0,0,17033,0,17038,0,0,0,0,0,0,0,0,3454,17043,0,0,17047,0,0,17051,17055,0,17059,0,0,0,0,0,17064,17068,0,17072,0,17076,0,0,0,0,0,0,17081,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,17086,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3577,0,0,0,17093,0,0,0,17098,0,0,0,0,0,0,0,17103,0,0,17108,0,0,0,0,0,0,0,0,17113,0,0,0,17117,0,0,0,17122,0,0,0,0,0,0,0,17127,0,0,17132,0,17137,0,0,0,0,0,0,17143,0,0,0,17147,0,0,0,17152,0,0,0,0,0,0,0,17157,17162,0,17167,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3457,17172,0,0,17176,0,0,0,17180,0,0,0,0,0,0,0,17184,17188,0,17192,0,17196,0,0,0,0,0,0,429,17201,0,0,10033,0,0,0,17205,0,0,0,0,17209,0,0,17214,17218,0,17222,0,17226,0,0,0,0,0,0,1616,17231,0,0,17236,0,0,0,17241,0,0,0,0,0,0,0,17246,17251,0,17256,17261,17267,0,0,0,0,0,0,17273,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,17277,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,17283,17287,0,0,17292,0,0,0,17297,0,17302,0,0,0,0,0,17308,17313,0,17318,0,17323,0,0,0,0,0,0,1620,17329,0,0,10282,0,0,0,17333,0,0,0,0,0,0,0,17337,17341,0,17345,0,10541,0,0,0,0,0,0,17349,17354,0,0,17360,0,0,0,17366,0,0,0,0,0,0,0,17372,17378,0,17384,17390,17397,0,0,0,0,0,0,17404,0,0,0,17408,0,0,0,17413,0,0,0,0,0,0,0,0,17418,0,0,0,0,0,0,0,0,0,0,2537,17423,0,0,9220,0,0,0,17427,0,0,0,0,17431,0,0,17436,17440,0,17444,0,17448,0,0,0,14006,0,0,4211,17453,0,0,17458,0,0,0,17463,0,0,0,0,0,0,0,0,0,0,17468,0,17473,0,0,0,0,0,0,17479,17484,0,0,17490,0,0,0,0,0,0,0,0,0,0,0,0,0,0,17496,0,17502,0,0,0,0,0,0,1631,17509,0,0,17514,0,0,0,17519,0,0,0,0,0,0,0,0,17524,0,17529,0,17534,0,0,0,0,0,0,17540,0,0,0,17544,0,0,0,17549,0,0,0,0,0,0,0,0,17554,0,17559,0,0,0,0,0,0,0,0,2523,17564,0,0,10169,0,0,0,17568,0,0,0,0,17572,0,0,17577,0,0,17581,0,17585,0,0,0,0,0,0,17590,0,0,0,17595,0,0,0,17601,0,0,0,0,0,0,0,17607,0,0,0,0,17613,0,0,0,0,0,0,4198,17620,0,0,915,17625,17629,17634,1639,17639,17644,17649,17653,17657,17662,17667,17672,17677,17682,17687,17692,17696,17700,17705,17709,17714,17719,17723,17727,13367,13375,17731,17735,17739,17744,17750,17756,17761,17767,17773,17778,17783,17789,17795,17801,17807,17813,17819,17825,17830,17835,17841,17846,17852,17858,17863,17868,17873,17878,17883,6640,17888,17893,17899,17905,17910,17916,17922,17927,17932,17938,17944,17950,17956,17962,17968,17974,17979,17984,17990,17995,18001,18007,18012,18017,18022,18027,18032,18037,18042,18048,18055,18062,18068,18075,18082,18088,18094,18101,18108,18115,18122,18129,18136,18143,18149,18155,18162,18168,18175,18182,18188,18194,18200,18206,18212,1140,18218,18223,18229,18235,18240,18246,18252,18257,18262,18268,18274,18280,18286,18292,18298,18304,18309,18314,18320,18325,18331,18337,18342,18347,18352,18357,18362,3239,18367,18371,18376,10345,18381,18386,18391,18395,18399,18404,18409,18414,18419,18424,18429,18434,18438,18442,18447,18451,18456,18461,18465,18469,13410,13418,18473,18477,18482,18488,18495,18502,18508,18515,18522,18528,18534,18541,18548,18555,18562,18569,18576,18583,18589,18595,18602,18608,18615,18622,18628,18634,18640,18646,18652,6662,18658,18663,18669,18675,18680,18686,18692,18697,18702,18708,18714,18720,18726,18732,18738,18744,18749,18754,18760,18765,18771,18777,18782,18787,18792,18797,18802,3242,18807,18811,18816,18821,18825,18830,18835,18839,18843,18848,18853,18858,18863,18868,18873,18878,18882,18886,18891,18895,18900,18905,18909,18913,13398,13406,18917,3245,18921,18926,18932,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,6,24,54,24,54,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,18938,18943,18949,18955,18960,18965,18971,18977,18983,18989,18995,19001,19007,19012,19017,19023,19028,19034,19040,19045,19050,19055,19060,19065,19070,19075,19081,19088,19095,19101,19108,19115,19121,19127,19134,19141,19148,19155,19162,19169,19176,19182,19188,19195,19201,19208,19215,19221,19227,19233,19239,19245,19251,19255,19260,19266,19272,19277,19283,19289,19294,19299,19305,19311,19317,19323,19329,19335,19341,19346,19351,19357,19362,19368,19374,19379,19384,19389,19394,19399,6666,19404,19409,19415,10825,19421,19427,19433,19438,19443,19449,19455,19461,19467,19473,19479,19485,19490,19495,19501,19506,19512,19518,19523,19528,19533,19538,19543,3225,19548,19552,19557,19562,19566,19571,19576,19580,19584,19589,19594,19599,19604,19609,19614,19619,19623,19627,19632,19636,19641,19646,19650,19654,13422,13430,19658,19662,19667,19673,19680,19687,19693,19700,19707,19713,19719,19726,19733,19740,19747,19754,19761,19768,19774,19780,19787,19793,19800,19807,19813,19819,19825,19831,19837,3263,19843,19848,19854,19860,19865,19871,19877,19882,19887,19893,19899,19905,19911,19917,19923,19929,19934,19939,19945,19950,19956,19962,19967,19972,19977,19982,19987,3249,19992,19997,20003,20009,20014,20020,20026,20031,20036,20042,20048,20054,20060,20066,20072,20078,20083,20088,20094,20099,20105,20111,20116,20121,20126,20131,20136,6644,20141,20146,20152,20158,20163,20169,20175,20180,20185,20191,20197,20203,20209,20215,20221,20227,20232,20237,20243,20248,20254,20260,20265,20270,20275,20280,20285,20290,20294,20299,20305,20311,20316,20322,20328,20333,20338,20344,20350,20356,20362,20368,20374,20380,20385,20390,20396,7478,8154,20401,20406,20411,20416,20421,20426,6648,20431,20436,20442,20448,20453,20459,20465,20470,20475,20481,20487,20493,20499,20505,20511,20517,20522,20527,20533,20538,20544,20550,20555,20560,20565,20570,20575,3228,20580,20584,20589,20594,20598,20603,20608,20612,20616,20621,20626,20631,20636,20641,20646,20651,20655,20659,20664,20668,20673,20678,20682,20686,13336,13344,20690,1060,20694,20699,20705,20711,20716,20722,20728,20733,20738,20744,20750,20756,20762,20768,20774,20780,20785,20790,20796,20801,20807,20813,20818,20823,13567,13577,20828,20833,20838,20844,20851,20858,20864,20871,20878,20884,20890,20897,20904,20911,20918,20925,20932,20939,20945,20951,20958,20964,20971,20978,20984,20990,20996,21002,21008,21014,21019,21025,21032,21039,21045,21052,21059,21065,21071,21078,21085,21092,21099,21106,21113,21120,21126,21132,21139,21145,21152,21159,21165,21171,21177,21183,21189,21195,21201,21208,21216,21224,21231,21239,21247,21254,21261,21269,21277,21285,21293,21301,21309,21317,21324,21331,21339,21346,21354,21362,21369,21376,21383,21390,21397,21404,21409,21415,21422,21429,21435,21442,21449,21455,21461,21468,21475,21482,21489,21496,21503,21510,21516,21522,21529,21535,21542,21549,21555,21561,21567,21573,21579,3285,21585,21590,21596,21602,21607,21613,21619,21624,21629,21635,21641,21647,21653,21659,21665,21671,21676,21681,21687,21692,21698,21704,21709,21714,13620,13630,21719,21724,21730,21737,21745,21753,21760,21768,21776,21783,21790,21798,21806,21814,21822,21830,21838,21846,21853,21860,21868,21875,21883,21891,21898,21905,21912,21919,21926,21933,21938,21944,21951,21958,21964,21971,21978,21984,21990,21997,22004,22011,22018,22025,22032,22039,22045,22051,22058,22064,22071,22078,22084,22090,22096,22102,22108,3289,22114,22119,22125,22131,22136,22142,22148,22153,22158,22164,22170,22176,22182,22188,22194,22200,22205,22210,22216,22221,22227,22233,22238,22243,13605,13615,22248,6410,22253,22259,22266,22273,22279,22286,22293,22299,22305,22312,22319,22326,22333,22340,22347,22354,22360,22366,22373,22379,22386,22393,22399,22405,22411,22417,22423,22429,22435,22442,22450,22458,22465,22473,22481,22488,22495,22503,22511,22519,22527,22535,22543,22551,22558,22565,22573,22580,22588,22596,22603,22610,22617,22624,22631,22638,22643,22649,22656,22663,22669,22676,22683,22689,22695,22702,22709,22716,22723,22730,22737,22744,22750,22756,22763,22769,22776,22783,22789,22795,22801,22807,22813,22819,22824,22830,22837,22844,22850,22857,22864,22870,22876,22883,22890,22897,22904,22911,22918,22925,22931,22937,22944,22950,22957,22964,22970,22976,22982,22988,22994,3267,23000,23005,23011,23017,23022,23028,23034,23039,23044,23050,23056,23062,23068,23074,23080,23086,23091,23096,23102,23107,23113,23119,23124,23129,13635,13645,23134,23139,23145,23152,23160,23168,23175,23183,23191,23198,23205,23213,23221,23229,23237,23245,23253,23261,23268,23275,23283,23290,23298,23306,23313,23320,23327,23334,23341,6426,23348,23354,23361,23368,23374,23381,23388,23394,23400,23407,23414,23421,23428,23435,23442,23449,23455,23461,23468,23474,23481,23488,23494,23500,23506,23512,23518,6415,23524,23530,23537,23544,23550,23557,23564,23570,23576,23583,23590,23597,23604,23611,23618,23625,23631,23637,23644,23650,23657,23664,23670,23676,23682,23688,23694,23700,23705,23711,23718,23725,23731,23738,23745,23751,23757,23764,23771,23778,23785,23792,23799,23806,23812,23818,23825,23831,23838,23845,23851,23857,23863,23869,23875,23881,23886,23892,23899,23906,23912,23919,23926,23932,23938,23945,23952,23959,23966,23973,23980,23987,23993,23999,24006,24012,24019,24026,24032,24038,24044,24050,24056,24062,24067,24073,24080,24087,24093,24100,24107,24113,24119,24126,24133,24140,24147,24154,24161,24168,24174,24180,24187,24193,24200,24207,24213,24219,24225,24231,24237,3271,24243,24248,24254,24260,24265,24271,24277,24282,24287,24293,24299,24305,24311,24317,24323,24329,24334,24339,24345,24350,24356,24362,24367,24372,13540,24377,24382,842,24387,24391,24396,24401,24405,24410,24415,24419,24423,24428,24433,24438,24443,24448,24453,24458,24462,24466,24471,24475,24480,24485,24489,24493,24497,12997,3488,24501,24505,24510,24516,24522,24527,24533,24539,24544,24549,24555,24561,24567,24573,24579,24585,24591,24596,24601,24607,24612,24618,24624,24629,24634,24639,24644,24649,848,24654,24659,24665,10893,24671,24677,24683,24688,24693,24699,24705,24711,24717,24723,24729,24735,24740,24745,24751,24756,24762,24768,24773,24778,24783,24788,24793,24798,24803,24809,24816,24823,24829,24836,24843,24849,24855,24862,24869,24876,24883,24890,24897,24904,24910,24916,24923,24929,24936,24943,24949,24955,24961,24967,24973,24979,24983,24988,24994,25000,25005,25011,25017,25022,25027,25033,25039,25045,25051,25057,25063,25069,25074,25079,25085,25090,25096,25102,25107,25112,25117,25122,25127,2957,25132,25136,25141,25146,25150,25155,25160,25164,25168,25173,25178,25183,25188,25193,25198,25203,25207,25211,25216,25220,25225,25230,25234,25238,25242,13031,25246,25250,25255,25261,25268,25275,25281,25288,25295,25301,25307,25314,25321,25328,25335,25342,25349,25356,25362,25368,25375,25381,25388,25395,25401,25407,25413,25419,25425,2982,25431,25436,25442,25448,25453,25459,25465,25470,25475,25481,25487,25493,25499,25505,25511,25517,25522,25527,25533,25538,25544,25550,25555,25560,25565,25570,25575,1400,25580,25584,25589,25594,25598,25603,25608,25612,25616,25621,25626,25631,25636,25641,25646,25651,25655,25659,25664,25668,25673,25678,25682,25686,13015,13023,25690,2960,25694,25699,25705,25711,25716,25722,25728,25733,25738,25744,25750,25756,25762,25768,25774,25780,25785,25790,25796,25801,25807,25813,25818,25823,25828,25833,25838,25843,25848,25854,25861,25868,25874,25881,25888,25894,25900,25907,25914,25921,25928,25935,25942,25949,25955,25961,25968,25974,25981,25988,25994,26000,26006,26012,26018,26024,26028,26033,26039,26045,26050,26056,26062,26067,26072,26078,26084,26090,26096,26102,26108,26114,26119,26124,26130,26135,26141,26147,26152,26157,26162,26167,26172,2986,26177,26182,26188,26194,26199,26205,26211,26216,26221,26227,26233,26239,26245,26251,26257,26263,26268,26273,26279,26284,26290,26296,26301,26306,15922,15932,26311,2947,26316,26320,26325,26330,26334,26339,26344,26348,26352,26357,26362,26367,26372,26377,26382,10623,26387,26391,26396,26400,26405,26410,26414,26418,13035,13043,26422,26426,26431,26437,26444,26451,26457,26464,26471,26477,26483,26490,26497,26504,26511,26518,26525,26532,26538,26544,26551,26557,26564,26571,26577,26583,26589,26595,26601,3791,26607,26612,26618,26624,26629,26635,26641,26646,26651,26657,26663,26669,26675,26681,26687,26693,26698,26703,26709,26714,26720,26726,26731,26736,26741,26746,26751,26756,26760,26765,26771,26777,26782,26788,26794,26799,26804,26810,26816,26822,26828,26834,26840,26846,26851,26856,26862,26867,26873,26879,26884,26889,26894,26899,26904,2964,26909,26914,26920,26926,26931,26937,26943,26948,26953,26959,26965,26971,26977,26983,26989,26995,27000,27005,27011,27016,27022,27028,27033,27038,15937,15947,27043,27048,27052,27057,27063,27069,27074,27080,27086,27091,27096,27102,27108,27114,27120,27126,27132,27138,27143,27148,27154,27159,27165,27171,27176,27181,27186,27191,27196,2968,27201,27206,27212,27218,27223,27229,27235,27240,27245,27251,27257,27263,27269,27275,27281,27287,27292,27297,27303,27308,27314,27320,27325,27330,15872,15882,27335,2950,27340,27344,27349,27354,27358,27363,27368,27372,27376,27381,27386,27391,27396,27401,27406,27411,27415,27419,27424,27428,27433,27438,27442,27446,12967,12975,27450,816,27454,27458,27463,27468,27472,27477,27482,681,27486,27491,27496,27501,27506,27511,27516,27521,10919,27525,27530,27534,27539,27544,27548,27552,12510,12518,27556,27560,27564,27569,27575,27581,27586,27592,27598,27603,27608,27614,27620,27626,27632,27638,27644,27650,27655,27660,27666,27671,27677,27683,27688,27693,27698,27703,27708,27713,27717,27722,27728,27734,27739,27745,27751,27756,27761,27767,27773,27779,27785,27791,27797,27803,27808,27813,27819,27824,27830,27836,27841,27846,27851,27856,27861,27866,27871,27877,27884,27891,27897,27904,27911,27917,27923,27930,27937,27944,27951,27958,27965,27972,27978,27984,27991,27997,28004,28011,28017,28023,28029,28035,28041,28047,28051,28056,28062,28068,28073,28079,28085,28090,28095,28101,28107,28113,28119,28125,28131,28137,28142,28147,28153,28158,28164,28170,28175,28180,28185,28190,28195,432,82,28200,28205,28210,28214,28219,28224,28228,28232,28237,28242,28247,28252,28257,28262,28267,28271,28275,28280,28284,28289,28294,28298,28302,28306,12543,28310,28314,28319,28325,28332,28339,28345,28352,28359,28365,28371,28378,28385,28392,28399,28406,28413,28420,28426,28432,28439,28445,28452,28459,28465,28471,28477,28483,28489,28495,28499,28504,28510,28516,28521,28527,28533,28538,28543,28549,28555,28561,28567,28573,28579,28585,28590,28595,28601,28606,28612,28618,28623,28628,28633,28638,28643,3194,28648,28652,28657,1643,28662,28667,28672,28676,28680,28685,28690,28695,28700,28705,28710,28715,28719,28723,28728,28732,28737,28742,28746,28750,618,12535,28754,3197,28758,28763,28769,28775,28780,28786,28792,28797,28802,28808,28814,28820,28826,28832,28838,28844,28849,28854,28860,28865,28871,28877,28882,28887,28892,28897,28902,28907,28912,28918,28925}
+++ /dev/null
-add_executable(nominatim export.c geometry.cpp import.c index.c input.c nominatim.c postgresql.c sprompt.c)
-
-CHECK_SYMBOL_EXISTS(bswap_32 "byteswap.h" HAVE_BYTESWAP)
-CHECK_SYMBOL_EXISTS(bswap32 "sys/endian.h" HAVE_SYS_ENDIAN)
-
-target_compile_definitions(nominatim
- PRIVATE HAVE_BYTESWAP=$<BOOL:${HAVE_BYTESWAP}>
- PRIVATE HAVE_SYS_ENDIAN=$<BOOL:${HAVE_SYS_ENDIAN}>
-)
-
-target_link_libraries(nominatim ${LIBXML2_LIBRARIES} ${ZLIB_LIBRARIES} ${BZIP2_LIBRARIES} ${PostgreSQL_LIBRARIES} ${CMAKE_THREAD_LIBS_INIT})
-
+++ /dev/null
-/*
-*/
-
-#include <stdio.h>
-#include <unistd.h>
-#include <stdlib.h>
-#include <string.h>
-#include <assert.h>
-#include <time.h>
-#include <stdint.h>
-#include <pthread.h>
-
-#include <libpq-fe.h>
-
-#include "nominatim.h"
-#include "export.h"
-#include "postgresql.h"
-
-extern int verbose;
-
-int mode = 0;
-
-void nominatim_export(int rank_min, int rank_max, const char *conninfo, const char *structuredoutputfile)
-{
- xmlTextWriterPtr writer;
-
- int rankTotalDone;
-
- PGconn *conn;
- PGresult * res;
- PGresult * resSectors;
- PGresult * resPlaces;
-
- int rank;
- int i;
- int iSector;
- int tuples;
-
- const char *paramValues[2];
- int paramLengths[2];
- int paramFormats[2];
- uint32_t paramRank;
- uint32_t paramSector;
- uint32_t sector;
-
- Oid pg_prepare_params[2];
-
- conn = PQconnectdb(conninfo);
- if (PQstatus(conn) != CONNECTION_OK)
- {
- fprintf(stderr, "Connection to database failed: %s\n", PQerrorMessage(conn));
- exit(EXIT_FAILURE);
- }
-
- pg_prepare_params[0] = PG_OID_INT4;
- res = PQprepare(conn, "index_sectors",
- "select geometry_sector,count(*) from placex where rank_search = $1 and indexed_status = 0 group by geometry_sector order by geometry_sector",
- 1, pg_prepare_params);
- if (PQresultStatus(res) != PGRES_COMMAND_OK) exit(EXIT_FAILURE);
- PQclear(res);
-
- pg_prepare_params[0] = PG_OID_INT4;
- pg_prepare_params[1] = PG_OID_INT4;
- res = PQprepare(conn, "index_sector_places",
- "select place_id from placex where rank_search = $1 and geometry_sector = $2",
- 2, pg_prepare_params);
- if (PQresultStatus(res) != PGRES_COMMAND_OK) exit(EXIT_FAILURE);
- PQclear(res);
-
- nominatim_exportCreatePreparedQueries(conn);
-
- // Create the output file
- writer = nominatim_exportXMLStart(structuredoutputfile);
-
- for (rank = rank_min; rank <= rank_max; rank++)
- {
- printf("Starting rank %d\n", rank);
-
- paramRank = PGint32(rank);
- paramValues[0] = (char *)¶mRank;
- paramLengths[0] = sizeof(paramRank);
- paramFormats[0] = 1;
- resSectors = PQexecPrepared(conn, "index_sectors", 1, paramValues, paramLengths, paramFormats, 1);
- if (PQresultStatus(resSectors) != PGRES_TUPLES_OK)
- {
- fprintf(stderr, "index_sectors: SELECT failed: %s", PQerrorMessage(conn));
- PQclear(resSectors);
- exit(EXIT_FAILURE);
- }
- if (PQftype(resSectors, 0) != PG_OID_INT4)
- {
- fprintf(stderr, "Sector value has unexpected type\n");
- PQclear(resSectors);
- exit(EXIT_FAILURE);
- }
- if (PQftype(resSectors, 1) != PG_OID_INT8)
- {
- fprintf(stderr, "Sector value has unexpected type\n");
- PQclear(resSectors);
- exit(EXIT_FAILURE);
- }
-
- rankTotalDone = 0;
- for (iSector = 0; iSector < PQntuples(resSectors); iSector++)
- {
- sector = PGint32(*((uint32_t *)PQgetvalue(resSectors, iSector, 0)));
-
- // Get all the place_id's for this sector
- paramRank = PGint32(rank);
- paramValues[0] = (char *)¶mRank;
- paramLengths[0] = sizeof(paramRank);
- paramFormats[0] = 1;
- paramSector = PGint32(sector);
- paramValues[1] = (char *)¶mSector;
- paramLengths[1] = sizeof(paramSector);
- paramFormats[1] = 1;
- resPlaces = PQexecPrepared(conn, "index_sector_places", 2, paramValues, paramLengths, paramFormats, 1);
- if (PQresultStatus(resPlaces) != PGRES_TUPLES_OK)
- {
- fprintf(stderr, "index_sector_places: SELECT failed: %s", PQerrorMessage(conn));
- PQclear(resPlaces);
- exit(EXIT_FAILURE);
- }
- if (PQftype(resPlaces, 0) != PG_OID_INT8)
- {
- fprintf(stderr, "Place_id value has unexpected type\n");
- PQclear(resPlaces);
- exit(EXIT_FAILURE);
- }
-
- tuples = PQntuples(resPlaces);
- for (i = 0; i < tuples; i++)
- {
- nominatim_exportPlace(PGint64(*((uint64_t *)PQgetvalue(resPlaces, i, 0))), conn, writer, NULL, NULL);
- rankTotalDone++;
- if (rankTotalDone%1000 == 0) printf("Done %i (k)\n", rankTotalDone/1000);
- }
- PQclear(resPlaces);
- }
- PQclear(resSectors);
- }
-
- nominatim_exportXMLEnd(writer);
-
- PQfinish(conn);
-}
-
-void nominatim_exportCreatePreparedQueries(PGconn * conn)
-{
- Oid pg_prepare_params[2];
- PGresult * res;
-
- pg_prepare_params[0] = PG_OID_INT8;
- res = PQprepare(conn, "placex_details",
- "select placex.osm_type, placex.osm_id, placex.class, placex.type, placex.name, placex.housenumber, placex.country_code, ST_AsText(placex.geometry), placex.admin_level, placex.rank_address, placex.rank_search, placex.parent_place_id, parent.osm_type, parent.osm_id, placex.indexed_status, placex.linked_place_id from placex left outer join placex as parent on (placex.parent_place_id = parent.place_id) where placex.place_id = $1",
- 1, pg_prepare_params);
- if (PQresultStatus(res) != PGRES_COMMAND_OK)
- {
- fprintf(stderr, "Error preparing placex_details: %s", PQerrorMessage(conn));
- exit(EXIT_FAILURE);
- }
- PQclear(res);
-
- pg_prepare_params[0] = PG_OID_INT8;
- res = PQprepare(conn, "placex_address",
- "select osm_type,osm_id,class,type,distance,cached_rank_address,isaddress from place_addressline join placex on (address_place_id = placex.place_id) where place_addressline.place_id = $1 and address_place_id != place_addressline.place_id order by cached_rank_address asc,osm_type,osm_id",
- 1, pg_prepare_params);
- if (PQresultStatus(res) != PGRES_COMMAND_OK)
- {
- fprintf(stderr, "Error preparing placex_address: %s", PQerrorMessage(conn));
- exit(EXIT_FAILURE);
- }
- PQclear(res);
-
- pg_prepare_params[0] = PG_OID_INT8;
- res = PQprepare(conn, "placex_names",
- "select (each(name)).key,(each(name)).value from (select name from placex where place_id = $1) as x order by (each(name)).key",
- 1, pg_prepare_params);
- if (PQresultStatus(res) != PGRES_COMMAND_OK)
- {
- fprintf(stderr, "Error preparing placex_names: %s", PQerrorMessage(conn));
- exit(EXIT_FAILURE);
- }
- PQclear(res);
-
- pg_prepare_params[0] = PG_OID_INT8;
- res = PQprepare(conn, "placex_extratags",
- "select (each(extratags)).key,(each(extratags)).value from (select extratags from placex where place_id = $1) as x order by (each(extratags)).key",
- 1, pg_prepare_params);
- if (PQresultStatus(res) != PGRES_COMMAND_OK)
- {
- fprintf(stderr, "Error preparing placex_extratags: %s", PQerrorMessage(conn));
- exit(EXIT_FAILURE);
- }
- PQclear(res);
-}
-
-xmlTextWriterPtr nominatim_exportXMLStart(const char *structuredoutputfile)
-{
- xmlTextWriterPtr writer;
-
- writer = xmlNewTextWriterFilename(structuredoutputfile, 0);
- if (writer==NULL)
- {
- fprintf(stderr, "Unable to open %s\n", structuredoutputfile);
- exit(EXIT_FAILURE);
- }
- xmlTextWriterSetIndent(writer, 1);
- if (xmlTextWriterStartDocument(writer, NULL, "UTF8", NULL) < 0)
- {
- fprintf(stderr, "xmlTextWriterStartDocument failed\n");
- exit(EXIT_FAILURE);
- }
- if (xmlTextWriterStartElement(writer, BAD_CAST "osmStructured") < 0)
- {
- fprintf(stderr, "xmlTextWriterStartElement failed\n");
- exit(EXIT_FAILURE);
- }
- if (xmlTextWriterWriteAttribute(writer, BAD_CAST "version", BAD_CAST "0.1") < 0)
- {
- fprintf(stderr, "xmlTextWriterWriteAttribute failed\n");
- exit(EXIT_FAILURE);
- }
- if (xmlTextWriterWriteAttribute(writer, BAD_CAST "generator", BAD_CAST "Nominatim") < 0)
- {
- fprintf(stderr, "xmlTextWriterWriteAttribute failed\n");
- exit(EXIT_FAILURE);
- }
-
- mode = 0;
-
- return writer;
-}
-
-void nominatim_exportXMLEnd(xmlTextWriterPtr writer)
-{
- nominatim_exportEndMode(writer);
-
- // End <osmStructured>
- if (xmlTextWriterEndElement(writer) < 0)
- {
- fprintf(stderr, "xmlTextWriterEndElement failed\n");
- exit(EXIT_FAILURE);
- }
- if (xmlTextWriterEndDocument(writer) < 0)
- {
- fprintf(stderr, "xmlTextWriterEndDocument failed\n");
- exit(EXIT_FAILURE);
- }
- xmlFreeTextWriter(writer);
-}
-
-void nominatim_exportStartMode(xmlTextWriterPtr writer, int newMode)
-{
- if (mode == newMode) return;
-
- nominatim_exportEndMode(writer);
-
- switch(newMode)
- {
- case 0:
- break;
-
- case 1:
- if (xmlTextWriterStartElement(writer, BAD_CAST "add") < 0)
- {
- fprintf(stderr, "xmlTextWriterStartElement failed\n");
- exit(EXIT_FAILURE);
- }
- break;
-
- case 2:
- if (xmlTextWriterStartElement(writer, BAD_CAST "update") < 0)
- {
- fprintf(stderr, "xmlTextWriterStartElement failed\n");
- exit(EXIT_FAILURE);
- }
- break;
-
- case 3:
- if (xmlTextWriterStartElement(writer, BAD_CAST "delete") < 0)
- {
- fprintf(stderr, "xmlTextWriterStartElement failed\n");
- exit(EXIT_FAILURE);
- }
- break;
- }
- mode = newMode;
-}
-
-void nominatim_exportEndMode(xmlTextWriterPtr writer)
-{
- if (!mode) return;
-
- if (xmlTextWriterEndElement(writer) < 0)
- {
- fprintf(stderr, "xmlTextWriterEndElement failed\n");
- exit(EXIT_FAILURE);
- }
-}
-
-void nominatim_exportPlaceQueries(uint64_t place_id, PGconn * conn, struct export_data * querySet)
-{
- const char * paramValues[1];
- int paramLengths[1];
- int paramFormats[1];
- uint64_t paramPlaceID;
-
- paramPlaceID = PGint64(place_id);
- paramValues[0] = (char *)¶mPlaceID;
- paramLengths[0] = sizeof(paramPlaceID);
- paramFormats[0] = 1;
-
- querySet->res = PQexecPrepared(conn, "placex_details", 1, paramValues, paramLengths, paramFormats, 0);
- if (PQresultStatus(querySet->res) != PGRES_TUPLES_OK)
- {
- fprintf(stderr, "placex_details: SELECT failed: %s", PQerrorMessage(conn));
- PQclear(querySet->res);
- exit(EXIT_FAILURE);
- }
-
- querySet->resNames = PQexecPrepared(conn, "placex_names", 1, paramValues, paramLengths, paramFormats, 0);
- if (PQresultStatus(querySet->resNames) != PGRES_TUPLES_OK)
- {
- fprintf(stderr, "placex_names: SELECT failed: %s", PQerrorMessage(conn));
- PQclear(querySet->resNames);
- exit(EXIT_FAILURE);
- }
-
- querySet->resAddress = PQexecPrepared(conn, "placex_address", 1, paramValues, paramLengths, paramFormats, 0);
- if (PQresultStatus(querySet->resAddress) != PGRES_TUPLES_OK)
- {
- fprintf(stderr, "placex_address: SELECT failed: %s", PQerrorMessage(conn));
- PQclear(querySet->resAddress);
- exit(EXIT_FAILURE);
- }
-
- querySet->resExtraTags = PQexecPrepared(conn, "placex_extratags", 1, paramValues, paramLengths, paramFormats, 0);
- if (PQresultStatus(querySet->resExtraTags) != PGRES_TUPLES_OK)
- {
- fprintf(stderr, "placex_extratags: SELECT failed: %s", PQerrorMessage(conn));
- PQclear(querySet->resExtraTags);
- exit(EXIT_FAILURE);
- }
-}
-
-void nominatim_exportFreeQueries(struct export_data * querySet)
-{
- PQclear(querySet->res);
- PQclear(querySet->resNames);
- PQclear(querySet->resAddress);
- PQclear(querySet->resExtraTags);
-}
-
-/*
- * Requirements: the prepared queries must exist
- */
-void nominatim_exportPlace(uint64_t place_id, PGconn * conn,
- xmlTextWriterPtr writer, pthread_mutex_t * writer_mutex, struct export_data * prevQuerySet)
-{
- struct export_data querySet;
-
- int i;
-
- nominatim_exportPlaceQueries(place_id, conn, &querySet);
-
- // Add, modify or delete?
- if (prevQuerySet)
- {
- if ((PQgetvalue(prevQuerySet->res, 0, 14) && strcmp(PQgetvalue(prevQuerySet->res, 0, 14), "100") == 0) || PQntuples(querySet.res) == 0)
- {
- // Delete
- if (writer_mutex) pthread_mutex_lock( writer_mutex );
- nominatim_exportStartMode(writer, 3);
- xmlTextWriterStartElement(writer, BAD_CAST "feature");
- xmlTextWriterWriteFormatAttribute(writer, BAD_CAST "place_id", "%li", place_id);
- xmlTextWriterWriteAttribute(writer, BAD_CAST "type", BAD_CAST PQgetvalue(prevQuerySet->res, 0, 0));
- xmlTextWriterWriteAttribute(writer, BAD_CAST "id", BAD_CAST PQgetvalue(prevQuerySet->res, 0, 1));
- xmlTextWriterWriteAttribute(writer, BAD_CAST "key", BAD_CAST PQgetvalue(prevQuerySet->res, 0, 2));
- xmlTextWriterWriteAttribute(writer, BAD_CAST "value", BAD_CAST PQgetvalue(prevQuerySet->res, 0, 3));
- xmlTextWriterEndElement(writer);
- if (writer_mutex) pthread_mutex_unlock( writer_mutex );
- nominatim_exportFreeQueries(&querySet);
- return;
- }
- if (PQgetvalue(prevQuerySet->res, 0, 14) && strcmp(PQgetvalue(prevQuerySet->res, 0, 14), "1") == 0)
- {
- // Add
- if (writer_mutex) pthread_mutex_lock( writer_mutex );
- nominatim_exportStartMode(writer, 1);
- }
- else
- {
- // Update, but only if something has changed
-
- // TODO: detect changes
-
- if (writer_mutex) pthread_mutex_lock( writer_mutex );
- nominatim_exportStartMode(writer, 2);
- }
- }
- else
- {
- // Add
- if (writer_mutex) pthread_mutex_lock( writer_mutex );
- nominatim_exportStartMode(writer, 1);
- }
-
- xmlTextWriterStartElement(writer, BAD_CAST "feature");
- xmlTextWriterWriteFormatAttribute(writer, BAD_CAST "place_id", "%li", place_id);
- xmlTextWriterWriteAttribute(writer, BAD_CAST "type", BAD_CAST PQgetvalue(querySet.res, 0, 0));
- xmlTextWriterWriteAttribute(writer, BAD_CAST "id", BAD_CAST PQgetvalue(querySet.res, 0, 1));
- xmlTextWriterWriteAttribute(writer, BAD_CAST "key", BAD_CAST PQgetvalue(querySet.res, 0, 2));
- xmlTextWriterWriteAttribute(writer, BAD_CAST "value", BAD_CAST PQgetvalue(querySet.res, 0, 3));
- xmlTextWriterWriteAttribute(writer, BAD_CAST "rank", BAD_CAST PQgetvalue(querySet.res, 0, 9));
- xmlTextWriterWriteAttribute(writer, BAD_CAST "importance", BAD_CAST PQgetvalue(querySet.res, 0, 10));
- xmlTextWriterWriteAttribute(writer, BAD_CAST "parent_place_id", BAD_CAST PQgetvalue(querySet.res, 0, 11));
- xmlTextWriterWriteAttribute(writer, BAD_CAST "parent_type", BAD_CAST PQgetvalue(querySet.res, 0, 12));
- xmlTextWriterWriteAttribute(writer, BAD_CAST "parent_id", BAD_CAST PQgetvalue(querySet.res, 0, 13));
- xmlTextWriterWriteAttribute(writer, BAD_CAST "linked_place_id", BAD_CAST PQgetvalue(querySet.res, 0, 15));
-
- if (PQntuples(querySet.resNames))
- {
- xmlTextWriterStartElement(writer, BAD_CAST "names");
-
- for (i = 0; i < PQntuples(querySet.resNames); i++)
- {
- xmlTextWriterStartElement(writer, BAD_CAST "name");
- xmlTextWriterWriteAttribute(writer, BAD_CAST "type", BAD_CAST PQgetvalue(querySet.resNames, i, 0));
- xmlTextWriterWriteString(writer, BAD_CAST PQgetvalue(querySet.resNames, i, 1));
- xmlTextWriterEndElement(writer);
- }
-
- xmlTextWriterEndElement(writer);
- }
-
- if (PQgetvalue(querySet.res, 0, 5) && strlen(PQgetvalue(querySet.res, 0, 5)))
- {
- xmlTextWriterStartElement(writer, BAD_CAST "houseNumber");
- xmlTextWriterWriteString(writer, BAD_CAST PQgetvalue(querySet.res, 0, 5));
- xmlTextWriterEndElement(writer);
- }
-
- if (PQgetvalue(querySet.res, 0, 8) && strlen(PQgetvalue(querySet.res, 0, 8)))
- {
- xmlTextWriterStartElement(writer, BAD_CAST "adminLevel");
- xmlTextWriterWriteString(writer, BAD_CAST PQgetvalue(querySet.res, 0, 8));
- xmlTextWriterEndElement(writer);
- }
-
- if (PQgetvalue(querySet.res, 0, 6) && strlen(PQgetvalue(querySet.res, 0, 6)))
- {
- xmlTextWriterStartElement(writer, BAD_CAST "countryCode");
- xmlTextWriterWriteString(writer, BAD_CAST PQgetvalue(querySet.res, 0, 6));
- xmlTextWriterEndElement(writer);
- }
-
- if (PQntuples(querySet.resAddress) > 0)
- {
- xmlTextWriterStartElement(writer, BAD_CAST "address");
- for (i = 0; i < PQntuples(querySet.resAddress); i++)
- {
- xmlTextWriterStartElement(writer, BAD_CAST getRankLabel(atoi(PQgetvalue(querySet.resAddress, i, 5))));
- xmlTextWriterWriteAttribute(writer, BAD_CAST "rank", BAD_CAST PQgetvalue(querySet.resAddress, i, 5));
- xmlTextWriterWriteAttribute(writer, BAD_CAST "type", BAD_CAST PQgetvalue(querySet.resAddress, i, 0));
- xmlTextWriterWriteAttribute(writer, BAD_CAST "id", BAD_CAST PQgetvalue(querySet.resAddress, i, 1));
- xmlTextWriterWriteAttribute(writer, BAD_CAST "key", BAD_CAST PQgetvalue(querySet.resAddress, i, 2));
- xmlTextWriterWriteAttribute(writer, BAD_CAST "value", BAD_CAST PQgetvalue(querySet.resAddress, i, 3));
- xmlTextWriterWriteAttribute(writer, BAD_CAST "distance", BAD_CAST PQgetvalue(querySet.resAddress, i, 4));
- xmlTextWriterWriteAttribute(writer, BAD_CAST "isaddress", BAD_CAST PQgetvalue(querySet.resAddress, i, 6));
- xmlTextWriterEndElement(writer);
- }
- xmlTextWriterEndElement(writer);
- }
-
- if (PQntuples(querySet.resExtraTags))
- {
- xmlTextWriterStartElement(writer, BAD_CAST "tags");
-
- for (i = 0; i < PQntuples(querySet.resExtraTags); i++)
- {
- xmlTextWriterStartElement(writer, BAD_CAST "tag");
- xmlTextWriterWriteAttribute(writer, BAD_CAST "type", BAD_CAST PQgetvalue(querySet.resExtraTags, i, 0));
- xmlTextWriterWriteString(writer, BAD_CAST PQgetvalue(querySet.resExtraTags, i, 1));
- xmlTextWriterEndElement(writer);
- }
-
- xmlTextWriterEndElement(writer);
- }
-
-
- xmlTextWriterStartElement(writer, BAD_CAST "osmGeometry");
- xmlTextWriterWriteString(writer, BAD_CAST PQgetvalue(querySet.res, 0, 7));
- xmlTextWriterEndElement(writer);
-
- xmlTextWriterEndElement(writer); // </feature>
-
- if (writer_mutex) pthread_mutex_unlock( writer_mutex );
-
- nominatim_exportFreeQueries(&querySet);
-}
-
-const char * getRankLabel(int rank)
-{
- switch (rank)
- {
- case 0:
- case 1:
- return "continent";
- case 2:
- case 3:
- return "sea";
- case 4:
- case 5:
- case 6:
- case 7:
- return "country";
- case 8:
- case 9:
- case 10:
- case 11:
- return "state";
- case 12:
- case 13:
- case 14:
- case 15:
- return "county";
- case 16:
- return "city";
- case 17:
- return "town";
- case 18:
- return "village";
- case 19:
- return "unknown";
- case 20:
- return "suburb";
- case 21:
- return "postcode";
- case 22:
- return "neighborhood";
- case 23:
- return "postcode";
- case 24:
- return "unknown";
- case 25:
- return "postcode";
- case 26:
- return "street";
- case 27:
- return "access";
- case 28:
- return "building";
- case 29:
- default:
- return "other";
- }
-}
+++ /dev/null
-#ifndef EXPORT_H
-#define EXPORT_H
-
-#include <libxml/encoding.h>
-#include <libxml/xmlwriter.h>
-#include <stdint.h>
-
-struct export_data
-{
- PGresult * res;
- PGresult * resNames;
- PGresult * resAddress;
- PGresult * resExtraTags;
-};
-
-void nominatim_export(int rank_min, int rank_max, const char *conninfo, const char *structuredoutputfile);
-void nominatim_exportCreatePreparedQueries(PGconn * conn);
-
-xmlTextWriterPtr nominatim_exportXMLStart(const char *structuredoutputfile);
-void nominatim_exportXMLEnd(xmlTextWriterPtr writer);
-
-void nominatim_exportEndMode(xmlTextWriterPtr writer);
-
-void nominatim_exportPlaceQueries(uint64_t place_id, PGconn * conn, struct export_data * querySet);
-void nominatim_exportFreeQueries(struct export_data * querySet);
-
-void nominatim_exportPlace(uint64_t place_id, PGconn * conn,
- xmlTextWriterPtr writer, pthread_mutex_t * writer_mutex, struct export_data * prevQuerySet);
-const char * getRankLabel(int rank);
-
-#endif
+++ /dev/null
-/*
-*/
-#include <stdlib.h>
-#include <string.h>
-
-#include <libpq-fe.h>
-
-#include <libxml/xmlstring.h>
-#include <libxml/xmlreader.h>
-#include <libxml/hash.h>
-
-#include "nominatim.h"
-#include "import.h"
-#include "input.h"
-
-typedef enum { FILETYPE_NONE, FILETYPE_STRUCTUREDV0P1 } filetypes_t;
-typedef enum { FILEMODE_NONE, FILEMODE_ADD, FILEMODE_UPDATE, FILEMODE_DELETE } filemodes_t;
-
-#define MAX_FEATUREADDRESS 5000
-#define MAX_FEATURENAMES 10000
-#define MAX_FEATUREEXTRATAGS 10000
-#define MAX_FEATURENAMESTRING 1000000
-#define MAX_FEATUREEXTRATAGSTRING 500000
-
-struct feature_address
-{
- int place_id;
- int rankAddress;
- char isAddress[2];
- xmlChar * type;
- xmlChar * id;
- xmlChar * key;
- xmlChar * value;
- xmlChar * distance;
-};
-
-struct feature_tag
-{
- xmlChar * type;
- xmlChar * value;
-};
-
-struct feature
-{
- xmlChar * placeID;
- xmlChar * type;
- xmlChar * id;
- xmlChar * key;
- xmlChar * value;
- xmlChar * rankAddress;
- xmlChar * rankSearch;
- xmlChar * countryCode;
- xmlChar * parentPlaceID;
- xmlChar * parentType;
- xmlChar * parentID;
- xmlChar * adminLevel;
- xmlChar * houseNumber;
- xmlChar * geometry;
-} feature;
-
-int fileType = FILETYPE_NONE;
-int fileMode = FILEMODE_ADD;
-PGconn * conn;
-struct feature_address featureAddress[MAX_FEATUREADDRESS];
-struct feature_tag featureName[MAX_FEATURENAMES];
-struct feature_tag featureExtraTag[MAX_FEATUREEXTRATAGS];
-struct feature feature;
-int featureAddressLines = 0;
-int featureNameLines = 0;
-int featureExtraTagLines = 0;
-int featureCount = 0;
-xmlHashTablePtr partionTableTagsHash;
-xmlHashTablePtr partionTableTagsHashDelete;
-char featureNameString[MAX_FEATURENAMESTRING];
-char featureExtraTagString[MAX_FEATUREEXTRATAGSTRING];
-
-extern int verbose;
-
-void StartElement(xmlTextReaderPtr reader, const xmlChar *name)
-{
- char * value;
- float version;
- int isAddressLine;
-
- if (fileType == FILETYPE_NONE)
- {
- // Potential to handle other file types in the future / versions
- if (xmlStrEqual(name, BAD_CAST "osmStructured"))
- {
- value = (char*)xmlTextReaderGetAttribute(reader, BAD_CAST "version");
- version = strtof(value, NULL);
- xmlFree(value);
-
- if (version == (float)0.1)
- {
- fileType = FILETYPE_STRUCTUREDV0P1;
- fileMode = FILEMODE_ADD;
- }
- else
- {
- fprintf( stderr, "Unknown osmStructured version %f (%s)\n", version, value );
- exit_nicely();
- }
- }
- else
- {
- fprintf( stderr, "Unknown XML document type: %s\n", name );
- exit_nicely();
- }
- return;
- }
-
- if (xmlStrEqual(name, BAD_CAST "add"))
- {
- fileMode = FILEMODE_ADD;
- return;
- }
- if (xmlStrEqual(name, BAD_CAST "update"))
- {
- fileMode = FILEMODE_UPDATE;
- return;
- }
- if (xmlStrEqual(name, BAD_CAST "delete"))
- {
- fileMode = FILEMODE_DELETE;
- return;
- }
- if (fileMode == FILEMODE_NONE)
- {
- fprintf( stderr, "Unknown import mode in: %s\n", name );
- exit_nicely();
- }
-
- if (xmlStrEqual(name, BAD_CAST "feature"))
- {
- feature.placeID = xmlTextReaderGetAttribute(reader, BAD_CAST "place_id");
- feature.type = xmlTextReaderGetAttribute(reader, BAD_CAST "type");
- feature.id = xmlTextReaderGetAttribute(reader, BAD_CAST "id");
- feature.key = xmlTextReaderGetAttribute(reader, BAD_CAST "key");
- feature.value = xmlTextReaderGetAttribute(reader, BAD_CAST "value");
- feature.rankAddress = xmlTextReaderGetAttribute(reader, BAD_CAST "rank");
- feature.rankSearch = xmlTextReaderGetAttribute(reader, BAD_CAST "importance");
-
- feature.parentPlaceID = xmlTextReaderGetAttribute(reader, BAD_CAST "parent_place_id");
-/*
- if (strlen(feature.parentPlaceID) == 0)
- {
- xmlFree(feature.parentPlaceID);
- feature.parentPlaceID = NULL;
- }
-*/
- feature.parentType = xmlTextReaderGetAttribute(reader, BAD_CAST "parent_type");
- feature.parentID = xmlTextReaderGetAttribute(reader, BAD_CAST "parent_id");
-
- feature.countryCode = NULL;
- feature.adminLevel = NULL;
- feature.houseNumber = NULL;
- feature.geometry = NULL;
- featureAddressLines = 0;
- featureNameLines = 0;
- featureExtraTagLines = 0;
-
- return;
- }
- if (xmlStrEqual(name, BAD_CAST "names")) return;
- if (xmlStrEqual(name, BAD_CAST "name"))
- {
- if (featureNameLines < MAX_FEATURENAMES)
- {
- featureName[featureNameLines].type = xmlTextReaderGetAttribute(reader, BAD_CAST "type");
- featureName[featureNameLines].value = xmlTextReaderReadString(reader);
- featureNameLines++;
- }
- else
- {
- fprintf( stderr, "Too many name elements (%s%s)\n", feature.type, feature.id);
-// exit_nicely();
- }
- return;
- }
- if (xmlStrEqual(name, BAD_CAST "tags")) return;
- if (xmlStrEqual(name, BAD_CAST "tag"))
- {
- if (featureExtraTagLines < MAX_FEATUREEXTRATAGS)
- {
- featureExtraTag[featureExtraTagLines].type = xmlTextReaderGetAttribute(reader, BAD_CAST "type");
- featureExtraTag[featureExtraTagLines].value = xmlTextReaderReadString(reader);
- featureExtraTagLines++;
- }
- else
- {
- fprintf( stderr, "Too many extra tag elements (%s%s)\n", feature.type, feature.id);
-// exit_nicely();
- }
- return;
- }
- if (xmlStrEqual(name, BAD_CAST "osmGeometry"))
- {
- feature.geometry = xmlTextReaderReadString(reader);
- return;
- }
- if (xmlStrEqual(name, BAD_CAST "adminLevel"))
- {
- feature.adminLevel = xmlTextReaderReadString(reader);
- return;
- }
- if (xmlStrEqual(name, BAD_CAST "countryCode"))
- {
- feature.countryCode = xmlTextReaderReadString(reader);
- return;
- }
- if (xmlStrEqual(name, BAD_CAST "houseNumber"))
- {
- feature.houseNumber = xmlTextReaderReadString(reader);
- return;
- }
- if (xmlStrEqual(name, BAD_CAST "address"))
- {
- featureAddressLines = 0;
- return;
- }
- isAddressLine = 0;
- if (xmlStrEqual(name, BAD_CAST "continent"))
- {
- isAddressLine = 1;
- }
- else if (xmlStrEqual(name, BAD_CAST "sea"))
- {
- isAddressLine = 1;
- }
- else if (xmlStrEqual(name, BAD_CAST "country"))
- {
- isAddressLine = 1;
- }
- else if (xmlStrEqual(name, BAD_CAST "state"))
- {
- isAddressLine = 1;
- }
- else if (xmlStrEqual(name, BAD_CAST "county"))
- {
- isAddressLine = 1;
- }
- else if (xmlStrEqual(name, BAD_CAST "city"))
- {
- isAddressLine = 1;
- }
- else if (xmlStrEqual(name, BAD_CAST "town"))
- {
- isAddressLine = 1;
- }
- else if (xmlStrEqual(name, BAD_CAST "village"))
- {
- isAddressLine = 1;
- }
- else if (xmlStrEqual(name, BAD_CAST "unknown"))
- {
- isAddressLine = 1;
- }
- else if (xmlStrEqual(name, BAD_CAST "suburb"))
- {
- isAddressLine = 1;
- }
- else if (xmlStrEqual(name, BAD_CAST "postcode"))
- {
- isAddressLine = 1;
- }
- else if (xmlStrEqual(name, BAD_CAST "neighborhood"))
- {
- isAddressLine = 1;
- }
- else if (xmlStrEqual(name, BAD_CAST "street"))
- {
- isAddressLine = 1;
- }
- else if (xmlStrEqual(name, BAD_CAST "access"))
- {
- isAddressLine = 1;
- }
- else if (xmlStrEqual(name, BAD_CAST "building"))
- {
- isAddressLine = 1;
- }
- else if (xmlStrEqual(name, BAD_CAST "other"))
- {
- isAddressLine = 1;
- }
- if (isAddressLine)
- {
- if (featureAddressLines < MAX_FEATUREADDRESS)
- {
- value = (char*)xmlTextReaderGetAttribute(reader, BAD_CAST "rank");
- if (!value)
- {
- fprintf( stderr, "Address element missing rank\n");
- exit_nicely();
- }
- featureAddress[featureAddressLines].rankAddress = atoi(value);
- xmlFree(value);
-
- value = (char*)xmlTextReaderGetAttribute(reader, BAD_CAST "isaddress");
- if (!value)
- {
- fprintf( stderr, "Address element missing rank\n");
- exit_nicely();
- }
- if (*value == 't') strcpy(featureAddress[featureAddressLines].isAddress, "t");
- else strcpy(featureAddress[featureAddressLines].isAddress, "f");
- xmlFree(value);
-
- featureAddress[featureAddressLines].type = xmlTextReaderGetAttribute(reader, BAD_CAST "type");
- featureAddress[featureAddressLines].id = xmlTextReaderGetAttribute(reader, BAD_CAST "id");
- featureAddress[featureAddressLines].key = xmlTextReaderGetAttribute(reader, BAD_CAST "key");
- featureAddress[featureAddressLines].value = xmlTextReaderGetAttribute(reader, BAD_CAST "value");
- featureAddress[featureAddressLines].distance = xmlTextReaderGetAttribute(reader, BAD_CAST "distance");
-
- featureAddressLines++;
- }
- else
- {
- fprintf( stderr, "Too many address elements (%s%s)\n", feature.type, feature.id);
-// exit_nicely();
- }
-
- return;
- }
- fprintf(stderr, "%s: Unknown element name: %s\n", __FUNCTION__, name);
-}
-
-void EndElement(xmlTextReaderPtr reader, const xmlChar *name)
-{
- PGresult * res;
- const char * paramValues[14];
- char * place_id;
- char * partionQueryName;
- int i, namePos, lineTypeLen, lineValueLen;
-
- if (xmlStrEqual(name, BAD_CAST "feature"))
- {
- featureCount++;
- if (featureCount % 1000 == 0) printf("feature %i(k)\n", featureCount/1000);
-/*
- if (fileMode == FILEMODE_ADD)
- {
- resPlaceID = PQexecPrepared(conn, "get_new_place_id", 0, NULL, NULL, NULL, 0);
- if (PQresultStatus(resPlaceID) != PGRES_TUPLES_OK)
- {
- fprintf(stderr, "get_place_id: INSERT failed: %s", PQerrorMessage(conn));
- PQclear(resPlaceID);
- exit(EXIT_FAILURE);
- }
- }
- else
- {
- paramValues[0] = (const char *)feature.type;
- paramValues[1] = (const char *)feature.id;
- paramValues[2] = (const char *)feature.key;
- paramValues[3] = (const char *)feature.value;
- resPlaceID = PQexecPrepared(conn, "get_new_place_id", 4, paramValues, NULL, NULL, 0);
- if (PQresultStatus(resPlaceID) != PGRES_TUPLES_OK)
- {
- fprintf(stderr, "index_placex: INSERT failed: %s", PQerrorMessage(conn));
- PQclear(resPlaceID);
- exit(EXIT_FAILURE);
- }
- }
-*/
- place_id = (char *)feature.placeID;
-
- if (fileMode == FILEMODE_UPDATE || fileMode == FILEMODE_DELETE || fileMode == FILEMODE_ADD)
- {
- paramValues[0] = (const char *)place_id;
- if (verbose) fprintf(stderr, "placex_delete: %s\n", paramValues[0]);
- res = PQexecPrepared(conn, "placex_delete", 1, paramValues, NULL, NULL, 0);
- if (PQresultStatus(res) != PGRES_COMMAND_OK)
- {
- fprintf(stderr, "placex_delete: DELETE failed: %s", PQerrorMessage(conn));
- PQclear(res);
- exit(EXIT_FAILURE);
- }
- PQclear(res);
-
- if (verbose) fprintf(stderr, "search_name_delete: %s\n", paramValues[0]);
- res = PQexecPrepared(conn, "search_name_delete", 1, paramValues, NULL, NULL, 0);
- if (PQresultStatus(res) != PGRES_COMMAND_OK)
- {
- fprintf(stderr, "search_name_delete: DELETE failed: %s", PQerrorMessage(conn));
- PQclear(res);
- exit(EXIT_FAILURE);
- }
- PQclear(res);
-
- if (verbose) fprintf(stderr, "place_addressline_delete: %s\n", paramValues[0]);
- res = PQexecPrepared(conn, "place_addressline_delete", 1, paramValues, NULL, NULL, 0);
- if (PQresultStatus(res) != PGRES_COMMAND_OK)
- {
- fprintf(stderr, "place_addressline_delete: DELETE failed: %s", PQerrorMessage(conn));
- PQclear(res);
- exit(EXIT_FAILURE);
- }
- PQclear(res);
-
- partionQueryName = xmlHashLookup2(partionTableTagsHashDelete, feature.key, feature.value);
- if (partionQueryName)
- {
- res = PQexecPrepared(conn, partionQueryName, 1, paramValues, NULL, NULL, 0);
- if (PQresultStatus(res) != PGRES_COMMAND_OK)
- {
- fprintf(stderr, "%s: DELETE failed: %s", partionQueryName, PQerrorMessage(conn));
- PQclear(res);
- exit(EXIT_FAILURE);
- }
- PQclear(res);
- }
- }
-
- if (fileMode == FILEMODE_UPDATE || fileMode == FILEMODE_ADD)
- {
- // Insert into placex
- paramValues[0] = (const char *)place_id;
- paramValues[1] = (const char *)feature.type;
- paramValues[2] = (const char *)feature.id;
- paramValues[3] = (const char *)feature.key;
- paramValues[4] = (const char *)feature.value;
-
- featureNameString[0] = 0;
- if (featureNameLines)
- {
- namePos = 0;
- lineTypeLen = 0;
- lineValueLen = 0;
- for (i = 0; i < featureNameLines; i++)
- {
- lineTypeLen = (int)strlen((char *) featureName[i].type);
- lineValueLen = (int)strlen((char *) featureName[i].value);
- if (namePos+lineTypeLen+lineValueLen+7 > MAX_FEATURENAMESTRING)
- {
- fprintf(stderr, "feature name too long: %s", (const char *)featureName[i].value);
- break;
- }
- if (namePos) strcpy(featureNameString+(namePos++), ",");
- strcpy(featureNameString+(namePos++), "\"");
- strcpy(featureNameString+namePos, (char*) featureName[i].type);
- namePos += lineTypeLen;
- strcpy(featureNameString+namePos, "\"=>\"");
- namePos += 4;
- strcpy(featureNameString+namePos, (char *) featureName[i].value);
- namePos += lineValueLen;
- strcpy(featureNameString+(namePos++), "\"");
-
- xmlFree(featureName[i].type);
- xmlFree(featureName[i].value);
- }
- }
- paramValues[5] = (const char *)featureNameString;
-
- paramValues[6] = (const char *)feature.countryCode;
-
- featureExtraTagString[0] = 0;
- if (featureExtraTagLines)
- {
- namePos = 0;
- lineTypeLen = 0;
- lineValueLen = 0;
- for (i = 0; i < featureExtraTagLines; i++)
- {
- lineTypeLen = strlen((char *) featureExtraTag[i].type);
- lineValueLen = strlen((char *) featureExtraTag[i].value);
- if (namePos+lineTypeLen+lineValueLen+7 > MAX_FEATUREEXTRATAGSTRING)
- {
- fprintf(stderr, "feature extra tag too long: %s", (const char *)featureExtraTag[i].value);
- break;
- }
- if (namePos) strcpy(featureExtraTagString+(namePos++),",");
- strcpy(featureExtraTagString+(namePos++), "\"");
- strcpy(featureExtraTagString+namePos, (char *) featureExtraTag[i].type);
- namePos += lineTypeLen;
- strcpy(featureExtraTagString+namePos, "\"=>\"");
- namePos += 4;
- strcpy(featureExtraTagString+namePos, (char *) featureExtraTag[i].value);
- namePos += lineValueLen;
- strcpy(featureExtraTagString+(namePos++), "\"");
-
- xmlFree(featureExtraTag[i].type);
- xmlFree(featureExtraTag[i].value);
- }
- }
- paramValues[7] = (const char *)featureExtraTagString;
-
- if (xmlStrlen(feature.parentPlaceID) == 0)
- paramValues[8] = "0";
- else
- paramValues[8] = (const char *)feature.parentPlaceID;
-
- paramValues[9] = (const char *)feature.adminLevel;
- paramValues[10] = (const char *)feature.houseNumber;
- paramValues[11] = (const char *)feature.rankAddress;
- paramValues[12] = (const char *)feature.rankSearch;
- paramValues[13] = (const char *)feature.geometry;
- if (strlen(paramValues[3]) && strlen(paramValues[13]))
- {
- if (verbose) fprintf(stderr, "placex_insert: %s\n", paramValues[0]);
- res = PQexecPrepared(conn, "placex_insert", 14, paramValues, NULL, NULL, 0);
- if (PQresultStatus(res) != PGRES_COMMAND_OK)
- {
- fprintf(stderr, "index_placex: INSERT failed: %s", PQerrorMessage(conn));
- fprintf(stderr, "index_placex: INSERT failed: %s %s %s", paramValues[0], paramValues[1], paramValues[2]);
- PQclear(res);
- exit(EXIT_FAILURE);
- }
- PQclear(res);
- }
-
- for (i = 0; i < featureAddressLines; i++)
- {
- // insert into place_address
- paramValues[0] = (const char *)place_id;
- paramValues[1] = (const char *)featureAddress[i].distance;
- if (paramValues[1] == NULL || strlen(paramValues[1]) == 0) paramValues[1] = "0";
- paramValues[2] = (const char *)featureAddress[i].type;
- paramValues[3] = (const char *)featureAddress[i].id;
- paramValues[4] = (const char *)featureAddress[i].key;
- paramValues[5] = (const char *)featureAddress[i].value;
- paramValues[6] = (const char *)featureAddress[i].isAddress;
- if (verbose) fprintf(stderr, "placex_insert: %s %s\n", paramValues[2], paramValues[3]);
- res = PQexecPrepared(conn, "place_addressline_insert", 7, paramValues, NULL, NULL, 0);
- if (PQresultStatus(res) != PGRES_COMMAND_OK)
- {
- fprintf(stderr, "place_addressline_insert: INSERT failed: %s", PQerrorMessage(conn));
- fprintf(stderr, "(%s,%s,%s,%s,%s,%s,%s)",paramValues[0],paramValues[1],paramValues[2],paramValues[3],paramValues[4],paramValues[5],paramValues[6]);
- PQclear(res);
- exit(EXIT_FAILURE);
- }
- PQclear(res);
-
- xmlFree(featureAddress[i].type);
- xmlFree(featureAddress[i].id);
- xmlFree(featureAddress[i].key);
- xmlFree(featureAddress[i].value);
- xmlFree(featureAddress[i].distance);
- }
-
- if (featureNameLines)
- {
- if (xmlStrlen(feature.parentPlaceID) > 0 && featureAddressLines == 0)
- {
- paramValues[0] = (const char *)place_id;
- paramValues[1] = (const char *)feature.parentPlaceID;
- if (verbose) fprintf(stderr, "search_name_from_parent_insert: INSERT %s %s\n", paramValues[0], paramValues[1]);
- res = PQexecPrepared(conn, "search_name_from_parent_insert", 2, paramValues, NULL, NULL, 0);
- if (PQresultStatus(res) != PGRES_COMMAND_OK)
- {
- fprintf(stderr, "search_name_from_parent_insert: INSERT failed: %s", PQerrorMessage(conn));
- PQclear(res);
- exit(EXIT_FAILURE);
- }
- PQclear(res);
- }
- else
- {
- paramValues[0] = (const char *)place_id;
- if (verbose) fprintf(stderr, "search_name_insert: INSERT %s\n", paramValues[0]);
- res = PQexecPrepared(conn, "search_name_insert", 1, paramValues, NULL, NULL, 0);
- if (PQresultStatus(res) != PGRES_COMMAND_OK)
- {
- fprintf(stderr, "search_name_insert: INSERT failed: %s", PQerrorMessage(conn));
- PQclear(res);
- exit(EXIT_FAILURE);
- }
- PQclear(res);
- }
- }
-
- partionQueryName = xmlHashLookup2(partionTableTagsHash, feature.key, feature.value);
- if (partionQueryName)
- {
- // insert into partition table
- paramValues[0] = (const char *)place_id;
- paramValues[1] = (const char *)feature.geometry;
- res = PQexecPrepared(conn, partionQueryName, 2, paramValues, NULL, NULL, 0);
- if (PQresultStatus(res) != PGRES_COMMAND_OK)
- {
- fprintf(stderr, "%s: INSERT failed: %s", partionQueryName, PQerrorMessage(conn));
- PQclear(res);
- exit(EXIT_FAILURE);
- }
- PQclear(res);
- }
-
- }
- else
- {
- for (i = 0; i < featureAddressLines; i++)
- {
- xmlFree(featureAddress[i].type);
- xmlFree(featureAddress[i].id);
- xmlFree(featureAddress[i].key);
- xmlFree(featureAddress[i].value);
- xmlFree(featureAddress[i].distance);
- }
- }
-
- xmlFree(feature.placeID);
- xmlFree(feature.type);
- xmlFree(feature.id);
- xmlFree(feature.key);
- xmlFree(feature.value);
- xmlFree(feature.rankAddress);
- xmlFree(feature.rankSearch);
- if (feature.countryCode) xmlFree(feature.countryCode);
- if (feature.parentPlaceID) xmlFree(feature.parentPlaceID);
- if (feature.parentType) xmlFree(feature.parentType);
- if (feature.parentID) xmlFree(feature.parentID);
-// if (feature.name) xmlFree(feature.name);
- if (feature.adminLevel) xmlFree(feature.adminLevel);
- if (feature.houseNumber) xmlFree(feature.houseNumber);
- if (feature.geometry) xmlFree(feature.geometry);
-
-// PQclear(resPlaceID);
- }
-}
-
-static void processNode(xmlTextReaderPtr reader)
-{
- xmlChar *name;
- name = xmlTextReaderName(reader);
- if (name == NULL)
- {
- name = xmlStrdup(BAD_CAST "--");
- }
-
- switch (xmlTextReaderNodeType(reader))
- {
- case XML_READER_TYPE_ELEMENT:
- StartElement(reader, name);
- if (xmlTextReaderIsEmptyElement(reader))
- EndElement(reader, name); /* No end_element for self closing tags! */
- break;
- case XML_READER_TYPE_END_ELEMENT:
- EndElement(reader, name);
- break;
- case XML_READER_TYPE_TEXT:
- case XML_READER_TYPE_CDATA:
- case XML_READER_TYPE_SIGNIFICANT_WHITESPACE:
- /* Ignore */
- break;
- default:
- fprintf(stderr, "Unknown node type %d\n", xmlTextReaderNodeType(reader));
- break;
- }
-
- xmlFree(name);
-}
-
-int nominatim_import(const char *conninfo, const char *partionTagsFilename, const char *filename)
-{
- xmlTextReaderPtr reader;
- int ret = 0;
- PGresult * res;
- FILE * partionTagsFile;
- char * partionQueryName;
- char partionQuerySQL[1024];
-
- conn = PQconnectdb(conninfo);
- if (PQstatus(conn) != CONNECTION_OK)
- {
- fprintf(stderr, "Connection to database failed: %s\n", PQerrorMessage(conn));
- exit(EXIT_FAILURE);
- }
-
- partionTableTagsHash = xmlHashCreate(200);
- partionTableTagsHashDelete = xmlHashCreate(200);
-
- partionTagsFile = fopen(partionTagsFilename, "rt");
- if (!partionTagsFile)
- {
- fprintf(stderr, "Unable to read partition tags file: %s\n", partionTagsFilename);
- exit(EXIT_FAILURE);
- }
-
- char buffer[1024], osmkey[256], osmvalue[256];
- int fields;
- while (fgets(buffer, sizeof(buffer), partionTagsFile) != NULL)
- {
- fields = sscanf( buffer, "%23s %63s", osmkey, osmvalue );
-
- if ( fields <= 0 ) continue;
-
- if ( fields != 2 )
- {
- fprintf( stderr, "Error partition file\n");
- exit_nicely();
- }
- partionQueryName = malloc(strlen("partition_insert_")+strlen(osmkey)+strlen(osmvalue)+2);
- strcpy(partionQueryName, "partition_insert_");
- strcat(partionQueryName, osmkey);
- strcat(partionQueryName, "_");
- strcat(partionQueryName, osmvalue);
-
- strcpy(partionQuerySQL, "insert into place_classtype_");
- strcat(partionQuerySQL, osmkey);
- strcat(partionQuerySQL, "_");
- strcat(partionQuerySQL, osmvalue);
- strcat(partionQuerySQL, " (place_id, centroid) values ($1, ST_Centroid(st_setsrid($2, 4326)))");
-
- res = PQprepare(conn, partionQueryName, partionQuerySQL, 2, NULL);
- if (PQresultStatus(res) != PGRES_COMMAND_OK)
- {
- fprintf(stderr, "Failed to prepare %s: %s\n", partionQueryName, PQerrorMessage(conn));
- exit(EXIT_FAILURE);
- }
-
- xmlHashAddEntry2(partionTableTagsHash, BAD_CAST osmkey, BAD_CAST osmvalue, BAD_CAST partionQueryName);
-
- partionQueryName = malloc(strlen("partition_delete_")+strlen(osmkey)+strlen(osmvalue)+2);
- strcpy(partionQueryName, "partition_delete_");
- strcat(partionQueryName, osmkey);
- strcat(partionQueryName, "_");
- strcat(partionQueryName, osmvalue);
-
- strcpy(partionQuerySQL, "delete from place_classtype_");
- strcat(partionQuerySQL, osmkey);
- strcat(partionQuerySQL, "_");
- strcat(partionQuerySQL, osmvalue);
- strcat(partionQuerySQL, " where place_id = $1::integer");
-
- res = PQprepare(conn, partionQueryName, partionQuerySQL, 1, NULL);
- if (PQresultStatus(res) != PGRES_COMMAND_OK)
- {
- fprintf(stderr, "Failed to prepare %s: %s\n", partionQueryName, PQerrorMessage(conn));
- exit(EXIT_FAILURE);
- }
-
- xmlHashAddEntry2(partionTableTagsHashDelete, BAD_CAST osmkey, BAD_CAST osmvalue, BAD_CAST partionQueryName);
- }
-
- res = PQprepare(conn, "get_new_place_id",
- "select nextval('seq_place')",
- 0, NULL);
- if (PQresultStatus(res) != PGRES_COMMAND_OK)
- {
- fprintf(stderr, "Failed to prepare get_new_place_id: %s\n", PQerrorMessage(conn));
- exit(EXIT_FAILURE);
- }
-
- res = PQprepare(conn, "get_place_id",
- "select place_id from placex where osm_type = $1 and osm_id = $2 and class = $3 and type = $4",
- 4, NULL);
- if (PQresultStatus(res) != PGRES_COMMAND_OK)
- {
- fprintf(stderr, "Failed to prepare get_place_id: %s\n", PQerrorMessage(conn));
- exit(EXIT_FAILURE);
- }
-
- res = PQprepare(conn, "placex_insert",
- "insert into placex (place_id,osm_type,osm_id,class,type,name,country_code,extratags,parent_place_id,admin_level,housenumber,rank_address,rank_search,geometry) "
- "values ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11, $12, $13, st_setsrid($14, 4326))",
- 12, NULL);
- if (PQresultStatus(res) != PGRES_COMMAND_OK)
- {
- fprintf(stderr, "Failed to prepare placex_insert: %s\n", PQerrorMessage(conn));
- exit(EXIT_FAILURE);
- }
-
- res = PQprepare(conn, "search_name_insert",
- "insert into search_name (place_id, search_rank, address_rank, country_code, name_vector, nameaddress_vector, centroid) "
- "select place_id, rank_search, rank_address, country_code, make_keywords(name), "
- "(select uniq(sort(array_agg(parent_search_name.name_vector))) from search_name as parent_search_name where place_id in "
- "(select distinct address_place_id from place_addressline where place_addressline.place_id = $1 limit 1000)"
- "), st_centroid(geometry) from placex "
- "where place_id = $1",
- 1, NULL);
-
- if (PQresultStatus(res) != PGRES_COMMAND_OK)
- {
- fprintf(stderr, "Failed to prepare search_name_insert: %s\n", PQerrorMessage(conn));
- exit(EXIT_FAILURE);
- }
-
- res = PQprepare(conn, "search_name_from_parent_insert",
- "insert into search_name (place_id, search_rank, address_rank, country_code, name_vector, nameaddress_vector, centroid) "
- "select place_id, rank_search, rank_address, country_code, make_keywords(name), "
- "(select uniq(sort(name_vector+nameaddress_vector)) from search_name as parent_search_name "
- "where parent_search_name.place_id = $2 ), st_centroid(geometry) from placex "
- "where place_id = $1",
- 2, NULL);
- if (PQresultStatus(res) != PGRES_COMMAND_OK)
- {
- fprintf(stderr, "Failed to prepare search_name_insert: %s\n", PQerrorMessage(conn));
- exit(EXIT_FAILURE);
- }
-
- res = PQprepare(conn, "place_addressline_insert",
- "insert into place_addressline (place_id, address_place_id, fromarea, isaddress, distance, cached_rank_address) "
- "select $1, place_id, false, $7, $2, rank_address from placex where osm_type = $3 and osm_id = $4 and class = $5 and type = $6",
- 7, NULL);
- if (PQresultStatus(res) != PGRES_COMMAND_OK)
- {
- fprintf(stderr, "Failed to prepare place_addressline_insert: %s\n", PQerrorMessage(conn));
- exit(EXIT_FAILURE);
- }
-
- res = PQprepare(conn, "placex_delete",
- "delete from placex where place_id = $1",
- 1, NULL);
- if (PQresultStatus(res) != PGRES_COMMAND_OK)
- {
- fprintf(stderr, "Failed to prepare placex_delete: %s\n", PQerrorMessage(conn));
- exit(EXIT_FAILURE);
- }
-
- res = PQprepare(conn, "search_name_delete",
- "delete from search_name where place_id = $1",
- 1, NULL);
- if (PQresultStatus(res) != PGRES_COMMAND_OK)
- {
- fprintf(stderr, "Failed to prepare search_name_delete: %s\n", PQerrorMessage(conn));
- exit(EXIT_FAILURE);
- }
-
- res = PQprepare(conn, "place_addressline_delete",
- "delete from place_addressline where place_id = $1",
- 1, NULL);
- if (PQresultStatus(res) != PGRES_COMMAND_OK)
- {
- fprintf(stderr, "Failed to prepare place_addressline_delete: %s\n", PQerrorMessage(conn));
- exit(EXIT_FAILURE);
- }
-
- featureCount = 0;
-
- reader = inputUTF8(filename);
-
- if (reader == NULL)
- {
- fprintf(stderr, "Unable to open %s\n", filename);
- return 1;
- }
-
- ret = xmlTextReaderRead(reader);
- while (ret == 1)
- {
- processNode(reader);
- ret = xmlTextReaderRead(reader);
- }
- if (ret != 0)
- {
- fprintf(stderr, "%s : failed to parse\n", filename);
- return ret;
- }
-
- xmlFreeTextReader(reader);
- xmlHashFree(partionTableTagsHash, NULL);
- xmlHashFree(partionTableTagsHashDelete, NULL);
-
- return 0;
-}
+++ /dev/null
-#ifndef IMPORT_H
-#define IMPORT_H
-
-int nominatim_import(const char *conninfo, const char *partionTagsFilename, const char *filename);
-
-#endif
+++ /dev/null
-/*
- * triggers indexing (reparenting etc.) through setting resetting indexed_status: update placex/osmline set indexed_status = 0 where indexed_status > 0
- * triggers placex_update and osmline_update
-*/
-
-#include <stdio.h>
-#include <unistd.h>
-#include <stdlib.h>
-#include <string.h>
-#include <assert.h>
-#include <pthread.h>
-#include <time.h>
-#include <stdint.h>
-
-#include <libpq-fe.h>
-
-#include "nominatim.h"
-#include "index.h"
-#include "export.h"
-#include "postgresql.h"
-
-extern int verbose;
-
-void run_indexing(int rank, int interpolation, PGconn *conn, int num_threads,
-struct index_thread_data * thread_data, const char *structuredoutputfile)
-{
- int tuples, count, sleepcount;
- pthread_mutex_t count_mutex = PTHREAD_MUTEX_INITIALIZER;
-
- time_t rankStartTime;
- int rankTotalTuples;
- int rankCountTuples;
- float rankPerSecond;
-
- PGresult * resSectors;
- PGresult * resPlaces;
- PGresult * resNULL;
-
- int i;
- int iSector;
- int iResult;
-
- const char *paramValues[2];
- int paramLengths[2];
- int paramFormats[2];
- uint32_t paramRank;
- uint32_t paramSector;
- uint32_t sector;
-
- xmlTextWriterPtr writer;
- pthread_mutex_t writer_mutex = PTHREAD_MUTEX_INITIALIZER;
-
- // Create the output file
- writer = NULL;
- if (structuredoutputfile)
- {
- writer = nominatim_exportXMLStart(structuredoutputfile);
- }
-
- if (interpolation)
- {
- fprintf(stderr, "Starting interpolation lines (location_property_osmline)\n");
- }
- else
- {
- fprintf(stderr, "Starting rank %d\n", rank);
- }
-
- rankCountTuples = 0;
- rankPerSecond = 0;
-
- paramRank = PGint32(rank);
- paramValues[0] = (char *)¶mRank;
- paramLengths[0] = sizeof(paramRank);
- paramFormats[0] = 1;
-
- if (interpolation)
- {
- resSectors = PQexecPrepared(conn, "index_sectors_osmline", 0, NULL, 0, NULL, 1);
- }
- else
- {
- resSectors = PQexecPrepared(conn, "index_sectors", 1, paramValues, paramLengths, paramFormats, 1);
- }
- if (PQresultStatus(resSectors) != PGRES_TUPLES_OK)
- {
- fprintf(stderr, "index_sectors: SELECT failed: %s", PQerrorMessage(conn));
- PQclear(resSectors);
- exit(EXIT_FAILURE);
- }
- if (PQftype(resSectors, 0) != PG_OID_INT4)
- {
- fprintf(stderr, "Sector value has unexpected type\n");
- PQclear(resSectors);
- exit(EXIT_FAILURE);
- }
- if (PQftype(resSectors, 1) != PG_OID_INT8)
- {
- fprintf(stderr, "Sector value has unexpected type\n");
- PQclear(resSectors);
- exit(EXIT_FAILURE);
- }
-
- rankTotalTuples = 0;
- for (iSector = 0; iSector < PQntuples(resSectors); iSector++)
- {
- rankTotalTuples += PGint64(*((uint64_t *)PQgetvalue(resSectors, iSector, 1)));
- }
-
- rankStartTime = time(0);
- for (iSector = 0; iSector <= PQntuples(resSectors); iSector++)
- {
- if (iSector > 0)
- {
- resPlaces = PQgetResult(conn);
- if (PQresultStatus(resPlaces) != PGRES_TUPLES_OK)
- {
- fprintf(stderr, "index_sector_places: SELECT failed: %s", PQerrorMessage(conn));
- PQclear(resPlaces);
- exit(EXIT_FAILURE);
- }
- if (PQftype(resPlaces, 0) != PG_OID_INT8)
- {
- fprintf(stderr, "Place_id value has unexpected type\n");
- PQclear(resPlaces);
- exit(EXIT_FAILURE);
- }
- resNULL = PQgetResult(conn);
- if (resNULL != NULL)
- {
- fprintf(stderr, "Unexpected non-null response\n");
- exit(EXIT_FAILURE);
- }
- }
-
- if (iSector < PQntuples(resSectors))
- {
- sector = PGint32(*((uint32_t *)PQgetvalue(resSectors, iSector, 0)));
-// fprintf(stderr, "\n Starting sector %d size %ld\n", sector, PGint64(*((uint64_t *)PQgetvalue(resSectors, iSector, 1))));
-
- // Get all the place_id's for this sector
- paramRank = PGint32(rank);
- paramSector = PGint32(sector);
- if (rankTotalTuples-rankCountTuples < num_threads*1000)
- {
- // no sectors
- if (interpolation)
- {
- iResult = PQsendQueryPrepared(conn, "index_nosector_places_osmline", 0, NULL, 0, NULL, 1);
- }
- else
- {
- paramValues[0] = (char *)¶mRank;
- paramLengths[0] = sizeof(paramRank);
- paramFormats[0] = 1;
- iResult = PQsendQueryPrepared(conn, "index_nosector_places", 1, paramValues, paramLengths, paramFormats, 1);
- }
- }
- else
- {
- if (interpolation)
- {
- iResult = PQsendQueryPrepared(conn, "index_sector_places_osmline", 1, paramValues, paramLengths, paramFormats, 1);
- paramValues[0] = (char *)¶mSector;
- paramLengths[0] = sizeof(paramSector);
- paramFormats[0] = 1;
- }
- else
- {
- paramValues[0] = (char *)¶mRank;
- paramLengths[0] = sizeof(paramRank);
- paramFormats[0] = 1;
- paramValues[1] = (char *)¶mSector;
- paramLengths[1] = sizeof(paramSector);
- paramFormats[1] = 1;
- iResult = PQsendQueryPrepared(conn, "index_sector_places", 2, paramValues, paramLengths, paramFormats, 1);
- }
- }
- if (!iResult)
- {
- fprintf(stderr, "index_sector_places: SELECT failed: %s", PQerrorMessage(conn));
- PQclear(resPlaces);
- exit(EXIT_FAILURE);
- }
- }
- if (iSector > 0)
- {
- count = 0;
- rankPerSecond = 0;
- tuples = PQntuples(resPlaces);
-
- if (tuples > 0)
- {
- // Spawn threads
- for (i = 0; i < num_threads; i++)
- {
- thread_data[i].res = resPlaces;
- thread_data[i].tuples = tuples;
- thread_data[i].count = &count;
- thread_data[i].count_mutex = &count_mutex;
- thread_data[i].writer = writer;
- thread_data[i].writer_mutex = &writer_mutex;
- if (interpolation)
- {
- thread_data[i].table = 0; // use interpolations table
- }
- else
- {
- thread_data[i].table = 1; // use placex table
- }
- pthread_create(&thread_data[i].thread, NULL, &nominatim_indexThread, (void *)&thread_data[i]);
- }
-
- // Monitor threads to give user feedback
- sleepcount = 0;
- while (count < tuples)
- {
- usleep(1000);
-
- // Aim for one update per second
- if (sleepcount++ > 1000)
- {
- rankPerSecond = ((float)rankCountTuples + (float)count) / MAX(difftime(time(0), rankStartTime),1);
- if(interpolation)
- {
- fprintf(stderr, " Done %i in %i @ %f per second - Interpolation lines ETA (seconds): %f\n", (rankCountTuples + count), (int)(difftime(time(0), rankStartTime)), rankPerSecond, ((float)(rankTotalTuples - (rankCountTuples + count)))/rankPerSecond);
- }
- else
- {
- fprintf(stderr, " Done %i in %i @ %f per second - Rank %i ETA (seconds): %f\n", (rankCountTuples + count), (int)(difftime(time(0), rankStartTime)), rankPerSecond, rank, ((float)(rankTotalTuples - (rankCountTuples + count)))/rankPerSecond);
- }
-
- sleepcount = 0;
- }
- }
-
- // Wait for everything to finish
- for (i = 0; i < num_threads; i++)
- {
- pthread_join(thread_data[i].thread, NULL);
- }
-
- rankCountTuples += tuples;
- }
-
- // Finished sector
- rankPerSecond = (float)rankCountTuples / MAX(difftime(time(0), rankStartTime),1);
- fprintf(stderr, " Done %i in %i @ %f per second - ETA (seconds): %f\n", rankCountTuples, (int)(difftime(time(0), rankStartTime)), rankPerSecond, ((float)(rankTotalTuples - rankCountTuples))/rankPerSecond);
-
- PQclear(resPlaces);
- }
- if (rankTotalTuples-rankCountTuples < num_threads*20 && iSector < PQntuples(resSectors))
- {
- iSector = PQntuples(resSectors) - 1;
- }
- }
- // Finished rank
- fprintf(stderr, "\r Done %i in %i @ %f per second - FINISHED\n\n", rankCountTuples, (int)(difftime(time(0), rankStartTime)), rankPerSecond);
-
- PQclear(resSectors);
-}
-
-void nominatim_index(int rank_min, int rank_max, int num_threads, const char *conninfo, const char *structuredoutputfile)
-{
- struct index_thread_data *thread_data;
-
- PGconn *conn;
- PGresult *res;
- int num_rows = 0, status_code = 0;
- int db_has_locale = 0;
- char *result_string = NULL;
-
- int rank;
-
- int i;
-
- xmlTextWriterPtr writer;
- pthread_mutex_t writer_mutex = PTHREAD_MUTEX_INITIALIZER;
-
- Oid pg_prepare_params[2];
-
- conn = PQconnectdb(conninfo);
- if (PQstatus(conn) != CONNECTION_OK)
- {
- fprintf(stderr, "Connection to database failed: %s\n", PQerrorMessage(conn));
- exit(EXIT_FAILURE);
- }
-
- res = PQexec(conn, "SHOW lc_messages");
- status_code = PQresultStatus(res);
- if (status_code != PGRES_TUPLES_OK && status_code != PGRES_SINGLE_TUPLE) {
- fprintf(stderr, "Failed determining database locale: %s\n", PQerrorMessage(conn));
- exit(EXIT_FAILURE);
- }
- num_rows = PQntuples(res);
- if (num_rows > 0)
- {
- result_string = PQgetvalue(res, 0, 0);
- if (result_string && (strlen(result_string) > 0) && (strcasecmp(result_string, "C") != 0))
- {
- // non-default locale if the result exists, is non-empty, and is not "C"
- db_has_locale = 1;
- }
- }
-
- pg_prepare_params[0] = PG_OID_INT4;
- res = PQprepare(conn, "index_sectors",
- "select geometry_sector,count(*) from placex where rank_search = $1 and indexed_status > 0 group by geometry_sector order by geometry_sector",
- 1, pg_prepare_params);
- if (PQresultStatus(res) != PGRES_COMMAND_OK)
- {
- fprintf(stderr, "Failed preparing index_sectors: %s\n", PQerrorMessage(conn));
- exit(EXIT_FAILURE);
- }
- PQclear(res);
-
- res = PQprepare(conn, "index_sectors_osmline",
- "select geometry_sector,count(*) from location_property_osmline where indexed_status > 0 group by geometry_sector order by geometry_sector",
- 0, NULL);
- if (PQresultStatus(res) != PGRES_COMMAND_OK)
- {
- fprintf(stderr, "Failed preparing index_sectors: %s\n", PQerrorMessage(conn));
- exit(EXIT_FAILURE);
- }
- PQclear(res);
-
- pg_prepare_params[0] = PG_OID_INT4;
- res = PQprepare(conn, "index_nosectors",
- "select 0::integer,count(*) from placex where rank_search = $1 and indexed_status > 0",
- 1, pg_prepare_params);
- if (PQresultStatus(res) != PGRES_COMMAND_OK)
- {
- fprintf(stderr, "Failed preparing index_sectors: %s\n", PQerrorMessage(conn));
- exit(EXIT_FAILURE);
- }
- PQclear(res);
-
- pg_prepare_params[0] = PG_OID_INT4;
- pg_prepare_params[1] = PG_OID_INT4;
- res = PQprepare(conn, "index_sector_places",
- "select place_id from placex where rank_search = $1 and geometry_sector = $2 and indexed_status > 0",
- 2, pg_prepare_params);
- if (PQresultStatus(res) != PGRES_COMMAND_OK)
- {
- fprintf(stderr, "Failed preparing index_sector_places: %s\n", PQerrorMessage(conn));
- exit(EXIT_FAILURE);
- }
- PQclear(res);
-
- pg_prepare_params[0] = PG_OID_INT4;
- res = PQprepare(conn, "index_nosector_places",
- "select place_id from placex where rank_search = $1 and indexed_status > 0 order by geometry_sector",
- 1, pg_prepare_params);
- if (PQresultStatus(res) != PGRES_COMMAND_OK)
- {
- fprintf(stderr, "Failed preparing index_nosector_places: %s\n", PQerrorMessage(conn));
- exit(EXIT_FAILURE);
- }
- PQclear(res);
-
- pg_prepare_params[0] = PG_OID_INT4;
- res = PQprepare(conn, "index_sector_places_osmline",
- "select place_id from location_property_osmline where geometry_sector = $1 and indexed_status > 0",
- 1, pg_prepare_params);
- if (PQresultStatus(res) != PGRES_COMMAND_OK)
- {
- fprintf(stderr, "Failed preparing index_sector_places: %s\n", PQerrorMessage(conn));
- exit(EXIT_FAILURE);
- }
- PQclear(res);
-
- res = PQprepare(conn, "index_nosector_places_osmline",
- "select place_id from location_property_osmline where indexed_status > 0 order by geometry_sector",
- 0, NULL);
- if (PQresultStatus(res) != PGRES_COMMAND_OK)
- {
- fprintf(stderr, "Failed preparing index_nosector_places: %s\n", PQerrorMessage(conn));
- exit(EXIT_FAILURE);
- }
- PQclear(res);
-
- // Build the data for each thread
- thread_data = (struct index_thread_data *)malloc(sizeof(struct index_thread_data)*num_threads);
- for (i = 0; i < num_threads; i++)
- {
- thread_data[i].conn = PQconnectdb(conninfo);
- if (PQstatus(thread_data[i].conn) != CONNECTION_OK)
- {
- fprintf(stderr, "Connection to database failed: %s\n", PQerrorMessage(thread_data[i].conn));
- exit(EXIT_FAILURE);
- }
-
- pg_prepare_params[0] = PG_OID_INT8;
- res = PQprepare(thread_data[i].conn, "index_placex",
- "update placex set indexed_status = 0 where place_id = $1",
- 1, pg_prepare_params);
- if (PQresultStatus(res) != PGRES_COMMAND_OK)
- {
- fprintf(stderr, "Failed preparing index_placex: %s\n", PQerrorMessage(thread_data[i].conn));
- exit(EXIT_FAILURE);
- }
- PQclear(res);
-
- pg_prepare_params[0] = PG_OID_INT8;
- res = PQprepare(thread_data[i].conn, "index_osmline",
- "update location_property_osmline set indexed_status = 0 where place_id = $1",
- 1, pg_prepare_params);
- if (PQresultStatus(res) != PGRES_COMMAND_OK)
- {
- fprintf(stderr, "Failed preparing index_osmline: %s\n", PQerrorMessage(thread_data[i].conn));
- exit(EXIT_FAILURE);
- }
- PQclear(res);
-
- if (db_has_locale)
- {
- // Make sure the error message is not localized as we parse it later.
- res = PQexec(thread_data[i].conn, "SET lc_messages TO 'C'");
- if (PQresultStatus(res) != PGRES_COMMAND_OK)
- {
- fprintf(stderr, "Failed to set langauge: %s\n", PQerrorMessage(thread_data[i].conn));
- exit(EXIT_FAILURE);
- }
- PQclear(res);
- }
- nominatim_exportCreatePreparedQueries(thread_data[i].conn);
- }
-
- fprintf(stderr, "Starting indexing rank (%i to %i) using %i threads\n", rank_min, rank_max, num_threads);
-
- for (rank = rank_min; rank <= rank_max; rank++)
- {
- // OSMLINE: do reindexing (=> reparenting) for interpolation lines at rank 30, but before all other objects of rank 30
- // reason: houses (rank 30) depend on the updated interpolation line, when reparenting (see placex_update in functions.sql)
- if (rank == 30)
- {
- run_indexing(rank, 1, conn, num_threads, thread_data, structuredoutputfile);
- }
- run_indexing(rank, 0, conn, num_threads, thread_data, structuredoutputfile);
- }
- // Close all connections
- for (i = 0; i < num_threads; i++)
- {
- PQfinish(thread_data[i].conn);
- }
- PQfinish(conn);
-}
-
-void *nominatim_indexThread(void * thread_data_in)
-{
- struct index_thread_data * thread_data = (struct index_thread_data * )thread_data_in;
- struct export_data querySet;
-
- PGresult *res;
-
- const char *paramValues[1];
- int paramLengths[1];
- int paramFormats[1];
- uint64_t paramPlaceID;
- uint64_t place_id;
- time_t updateStartTime;
- unsigned table;
-
- table = thread_data->table;
-
- while (1)
- {
- pthread_mutex_lock( thread_data->count_mutex );
- if (*(thread_data->count) >= thread_data->tuples)
- {
- pthread_mutex_unlock( thread_data->count_mutex );
- break;
- }
-
- place_id = PGint64(*((uint64_t *)PQgetvalue(thread_data->res, *thread_data->count, 0)));
- (*thread_data->count)++;
-
- pthread_mutex_unlock( thread_data->count_mutex );
-
- if (verbose) fprintf(stderr, " Processing place_id %ld\n", place_id);
-
- updateStartTime = time(0);
- int done = 0;
-
- if (thread_data->writer)
- {
- nominatim_exportPlaceQueries(place_id, thread_data->conn, &querySet);
- }
-
- while(!done)
- {
- paramPlaceID = PGint64(place_id);
- paramValues[0] = (char *)¶mPlaceID;
- paramLengths[0] = sizeof(paramPlaceID);
- paramFormats[0] = 1;
- if (table == 1) // table=1 for placex
- {
- res = PQexecPrepared(thread_data->conn, "index_placex", 1, paramValues, paramLengths, paramFormats, 1);
- }
- else // table=0 for osmline
- {
- res = PQexecPrepared(thread_data->conn, "index_osmline", 1, paramValues, paramLengths, paramFormats, 1);
- }
- if (PQresultStatus(res) == PGRES_COMMAND_OK)
- done = 1;
- else
- {
- if (!strncmp(PQerrorMessage(thread_data->conn), "ERROR: deadlock detected", 25))
- {
- if (table == 1)
- {
- fprintf(stderr, "index_placex: UPDATE failed - deadlock, retrying (%ld)\n", place_id);
- }
- else
- {
- fprintf(stderr, "index_osmline: UPDATE failed - deadlock, retrying (%ld)\n", place_id);
- }
- PQclear(res);
- sleep(rand() % 10);
- }
- else
- {
- if (table == 1)
- {
- fprintf(stderr, "index_placex: UPDATE failed: %s", PQerrorMessage(thread_data->conn));
- }
- else
- {
- fprintf(stderr, "index_osmline: UPDATE failed: %s", PQerrorMessage(thread_data->conn));
- }
- PQclear(res);
- exit(EXIT_FAILURE);
- }
- }
- }
- PQclear(res);
- if (difftime(time(0), updateStartTime) > 1) fprintf(stderr, " Slow place_id %ld\n", place_id);
-
- if (thread_data->writer)
- {
- nominatim_exportPlace(place_id, thread_data->conn, thread_data->writer, thread_data->writer_mutex, &querySet);
- nominatim_exportFreeQueries(&querySet);
- }
- }
-
- return NULL;
-}
+++ /dev/null
-#ifndef INDEX_H
-#define INDEX_H
-
-#include <libxml/encoding.h>
-#include <libxml/xmlwriter.h>
-
-struct index_thread_data
-{
- pthread_t thread;
- PGconn * conn;
- PGresult * res;
- int tuples;
- int * count;
- pthread_mutex_t * count_mutex;
- xmlTextWriterPtr writer;
- pthread_mutex_t * writer_mutex;
- unsigned table;
-};
-void nominatim_index(int rank_min, int rank_max, int num_threads, const char *conninfo, const char *structuredoutputfile);
-void *nominatim_indexThread(void * thread_data_in);
-
-#endif
+++ /dev/null
-#define _FILE_OFFSET_BITS 64
-#define _LARGEFILE64_SOURCE
-
-#ifdef __MINGW_H
-# include <windows.h>
-#else
-#include <stdio.h>
-#include <stdlib.h>
-#include <unistd.h>
-#include <string.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <fcntl.h>
-#include <zlib.h>
-#endif
-
-#include <libxml/xmlreader.h>
-#include <bzlib.h>
-
-#include "input.h"
-
-struct Input
-{
- char *name;
- enum { plainFile, gzipFile, bzip2File } type;
- void *fileHandle;
- // needed by bzip2 when decompressing from multiple streams. other
- // decompressors must ignore it.
- FILE *systemHandle;
- int eof;
- char buf[4096];
- int buf_ptr, buf_fill;
-};
-
-// tries to re-open the bz stream at the next stream start.
-// returns 0 on success, -1 on failure.
-int bzReOpen(struct Input *ctx, int *error)
-{
- // for copying out the last unused part of the block which
- // has an EOS token in it. needed for re-initialising the
- // next stream.
- unsigned char unused[BZ_MAX_UNUSED];
- void *unused_tmp_ptr = NULL;
- int nUnused, i;
-
- BZ2_bzReadGetUnused(error, (BZFILE *)(ctx->fileHandle), &unused_tmp_ptr, &nUnused);
- if (*error != BZ_OK) return -1;
-
- // when bzReadClose is called the unused buffer is deallocated,
- // so it needs to be copied somewhere safe first.
- for (i = 0; i < nUnused; ++i)
- unused[i] = ((unsigned char *)unused_tmp_ptr)[i];
-
- BZ2_bzReadClose(error, (BZFILE *)(ctx->fileHandle));
- if (*error != BZ_OK) return -1;
-
- // reassign the file handle
- ctx->fileHandle = BZ2_bzReadOpen(error, ctx->systemHandle, 0, 0, unused, nUnused);
- if (ctx->fileHandle == NULL || *error != BZ_OK) return -1;
-
- return 0;
-}
-
-int readFile(void *context, char * buffer, int len)
-{
- struct Input *ctx = context;
- void *f = ctx->fileHandle;
- int l = 0, error = 0;
-
- if (ctx->eof || (len == 0))
- return 0;
-
- switch (ctx->type)
- {
- case plainFile:
- l = read(*(int *)f, buffer, len);
- if (l <= 0) ctx->eof = 1;
- break;
- case gzipFile:
- l = gzread((gzFile)f, buffer, len);
- if (l <= 0) ctx->eof = 1;
- break;
- case bzip2File:
- l = BZ2_bzRead(&error, (BZFILE *)f, buffer, len);
-
- // error codes BZ_OK and BZ_STREAM_END are both "OK", but the stream
- // end means the reader needs to be reset from the original handle.
- if (error != BZ_OK)
- {
- // for stream errors, try re-opening the stream before admitting defeat.
- if (error != BZ_STREAM_END || bzReOpen(ctx, &error) != 0)
- {
- l = 0;
- ctx->eof = 1;
- }
- }
- break;
- default:
- fprintf(stderr, "Bad file type\n");
- break;
- }
-
- if (l < 0)
- {
- fprintf(stderr, "File reader received error %d (%d)\n", l, error);
- l = 0;
- }
-
- return l;
-}
-
-char inputGetChar(void *context)
-{
- struct Input *ctx = context;
-
- if (ctx->buf_ptr == ctx->buf_fill)
- {
- ctx->buf_fill = readFile(context, &ctx->buf[0], sizeof(ctx->buf));
- ctx->buf_ptr = 0;
- if (ctx->buf_fill == 0)
- return 0;
- if (ctx->buf_fill < 0)
- {
- perror("Error while reading file");
- exit(1);
- }
- }
- //readFile(context, &c, 1);
- return ctx->buf[ctx->buf_ptr++];
-}
-
-int inputEof(void *context)
-{
- return ((struct Input *)context)->eof;
-}
-
-void *inputOpen(const char *name)
-{
- const char *ext = strrchr(name, '.');
- struct Input *ctx = malloc (sizeof(*ctx));
-
- if (!ctx)
- return NULL;
-
- memset(ctx, 0, sizeof(*ctx));
-
- ctx->name = strdup(name);
-
- if (ext && !strcmp(ext, ".gz"))
- {
- ctx->fileHandle = (void *)gzopen(name, "rb");
- ctx->type = gzipFile;
- }
- else if (ext && !strcmp(ext, ".bz2"))
- {
- int error = 0;
- ctx->systemHandle = fopen(name, "rb");
- if (!ctx->systemHandle)
- {
- fprintf(stderr, "error while opening file %s\n", name);
- exit(10);
- }
-
- ctx->fileHandle = (void *)BZ2_bzReadOpen(&error, ctx->systemHandle, 0, 0, NULL, 0);
- ctx->type = bzip2File;
-
- }
- else
- {
- int *pfd = malloc(sizeof(pfd));
- if (pfd)
- {
- if (!strcmp(name, "-"))
- {
- *pfd = STDIN_FILENO;
- }
- else
- {
- int flags = O_RDONLY;
-#ifdef O_LARGEFILE
- flags |= O_LARGEFILE;
-#endif
- *pfd = open(name, flags);
- if (*pfd < 0)
- {
- free(pfd);
- pfd = NULL;
- }
- }
- }
- ctx->fileHandle = (void *)pfd;
- ctx->type = plainFile;
- }
- if (!ctx->fileHandle)
- {
- fprintf(stderr, "error while opening file %s\n", name);
- exit(10);
- }
- ctx->buf_ptr = 0;
- ctx->buf_fill = 0;
- return (void *)ctx;
-}
-
-int inputClose(void *context)
-{
- struct Input *ctx = context;
- void *f = ctx->fileHandle;
-
- switch (ctx->type)
- {
- case plainFile:
- close(*(int *)f);
- free(f);
- break;
- case gzipFile:
- gzclose((gzFile)f);
- break;
- case bzip2File:
- BZ2_bzclose((BZFILE *)f);
- break;
- default:
- fprintf(stderr, "Bad file type\n");
- break;
- }
-
- free(ctx->name);
- free(ctx);
- return 0;
-}
-
-xmlTextReaderPtr inputUTF8(const char *name)
-{
- void *ctx = inputOpen(name);
-
- if (!ctx)
- {
- fprintf(stderr, "Input reader create failed for: %s\n", name);
- return NULL;
- }
-
- return xmlReaderForIO(readFile, inputClose, (void *)ctx, NULL, NULL, 0);
-}
+++ /dev/null
-#ifndef INPUT_H
-#define INPUT_H
-
-int readFile(void *context, char * buffer, int len);
-int inputClose(void *context);
-void *inputOpen(const char *name);
-char inputGetChar(void *context);
-int inputEof(void *context);
-xmlTextReaderPtr inputUTF8(const char *name);
-
-#endif
+++ /dev/null
-/*
-#-----------------------------------------------------------------------------
-# nominatim - [description]
-#-----------------------------------------------------------------------------
-# Copyright 2010, Brian Quinion
-# Based on osm2pgsql
-#
-# This program is free software; you can redistribute it and/or
-# modify it under the terms of the GNU General Public License
-# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-#-----------------------------------------------------------------------------
-*/
-
-#define _GNU_SOURCE
-#include <stdio.h>
-#include <unistd.h>
-#include <stdlib.h>
-#include <string.h>
-#include <assert.h>
-#include <getopt.h>
-#include <libgen.h>
-#include <pthread.h>
-#include <time.h>
-
-#include <libpq-fe.h>
-
-#include "nominatim.h"
-#include "postgresql.h"
-#include "sprompt.h"
-#include "index.h"
-#include "export.h"
-#include "import.h"
-
-int verbose;
-
-void exit_nicely(void)
-{
- fprintf(stderr, "Error occurred, cleaning up\n");
- exit(1);
-}
-
-void short_usage(char *arg0)
-{
- const char *name = basename(arg0);
-
- fprintf(stderr, "Usage error. For further information see:\n");
- fprintf(stderr, "\t%s -h|--help\n", name);
-}
-
-static void long_usage(char *arg0)
-{
- const char *name = basename(arg0);
-
- fprintf(stderr, "Usage:\n");
- fprintf(stderr, "\t%s [options] planet.osms\n", name);
- fprintf(stderr, "\nThis will import the structured osm data into a PostgreSQL database\n");
- fprintf(stderr, "suitable for nominatim search engine\n");
- fprintf(stderr, "\nOptions:\n");
- fprintf(stderr, " -d|--database\tThe name of the PostgreSQL database to connect\n");
- fprintf(stderr, " \tto (default: nominatim).\n");
- fprintf(stderr, " -U|--username\tPostgresql user name.\n");
- fprintf(stderr, " -W|--password\tForce password prompt.\n");
- fprintf(stderr, " -H|--host\t\tDatabase server hostname or socket location.\n");
- fprintf(stderr, " -P|--port\t\tDatabase server port.\n");
- fprintf(stderr, " -i|--index\t\tIndex the database.\n");
- fprintf(stderr, " -e|--export\t\tGenerate a structured file.\n");
- fprintf(stderr, " -I|--import\t\tImport a structured file.\n");
- fprintf(stderr, " -r|--minrank\t\tMinimum / starting rank. (default: 0))\n");
- fprintf(stderr, " -R|--maxrank\t\tMaximum / finishing rank. (default: 30)\n");
- fprintf(stderr, " -t|--threads\t\tNumber of threads to create for indexing.\n");
- fprintf(stderr, " -F|--file\t\tfile to use (either to import or export).\n");
- fprintf(stderr, " -T|--tagfile\t\tfile containing 'special' tag pairs\n");
- fprintf(stderr, " \t(default: partitionedtags.def).\n");
- fprintf(stderr, " -h|--help\t\tHelp information.\n");
- fprintf(stderr, " -v|--verbose\t\tVerbose output.\n");
- fprintf(stderr, "\n");
-
- if (sizeof(int*) == 4)
- {
- fprintf(stderr, "\n\nYou are running this on 32bit system - this will not work\n");
- }
-}
-
-int main(int argc, char *argv[])
-{
- int long_usage_bool=0;
- int pass_prompt=0;
- const char *db = "nominatim";
- const char *username=NULL;
- const char *host=NULL;
- const char *password=NULL;
- const char *port = "5432";
- const char *conninfo = NULL;
- int index = 0;
- int export = 0;
- int import = 0;
- int minrank = 0;
- int maxrank = 30;
- int threads = 1;
- const char *file = NULL;
- const char *tagsfile = "partitionedtags.def";
-
- //import = 1;
- //structuredinputfile = "out.osms";
-
- PGconn *conn;
-
- fprintf(stderr, "nominatim version %s\n\n", NOMINATIM_VERSION);
-
- while (1)
- {
- int c, option_index = 0;
- static struct option long_options[] =
- {
- {"help", 0, 0, 'h'},
-
- {"verbose", 0, 0, 'v'},
-
- {"database", 1, 0, 'd'},
- {"username", 1, 0, 'U'},
- {"password", 0, 0, 'W'},
- {"host", 1, 0, 'H'},
- {"port", 1, 0, 'P'},
-
- {"index", 0, 0, 'i'},
- {"export", 0, 0, 'e'},
- {"import", 1, 0, 'I'},
- {"threads", 1, 0, 't'},
- {"file", 1, 0, 'F'},
- {"tagsfile", 1, 0, 'T'},
-
- {"minrank", 1, 0, 'r'},
- {"maxrank", 1, 0, 'R'},
-
-
-
- {0, 0, 0, 0}
- };
-
- c = getopt_long(argc, argv, "vhd:U:WH:P:ieIt:F:T:r:R:", long_options, &option_index);
- if (c == -1)
- break;
-
- switch (c)
- {
- case 'v':
- verbose=1;
- break;
- case 'd':
- db=optarg;
- break;
- case 'U':
- username=optarg;
- break;
- case 'W':
- pass_prompt=1;
- break;
- case 'H':
- host=optarg;
- break;
- case 'P':
- port=optarg;
- break;
- case 'h':
- long_usage_bool=1;
- break;
- case 'i':
- index=1;
- break;
- case 'e':
- export=1;
- break;
- case 'I':
- import=1;
- break;
- case 't':
- threads=atoi(optarg);
- break;
- case 'r':
- minrank=atoi(optarg);
- break;
- case 'R':
- maxrank=atoi(optarg);
- break;
- case 'F':
- file=optarg;
- break;
- case 'T':
- tagsfile=optarg;
- break;
- case '?':
- default:
- short_usage(argv[0]);
- exit(EXIT_FAILURE);
- }
- }
-
- if (long_usage_bool)
- {
- long_usage(argv[0]);
- exit(EXIT_FAILURE);
- }
-
- if (threads < 1) threads = 1;
-
- /*
- if (argc == optind) { // No non-switch arguments
- short_usage(argv[0]);
- exit(EXIT_FAILURE);
- }
- */
- if (index && import)
- {
- fprintf(stderr, "Error: --index and --import options can not be used on the same database!\n");
- exit(EXIT_FAILURE);
- }
-
- if (pass_prompt)
- password = simple_prompt("Password:", 100, 0);
- else
- {
- password = getenv("PGPASS");
- }
-
- // Test the database connection
- conninfo = build_conninfo(db, username, password, host, port);
- conn = PQconnectdb(conninfo);
- if (PQstatus(conn) != CONNECTION_OK)
- {
- fprintf(stderr, "Connection to database failed: %s\n", PQerrorMessage(conn));
- exit(EXIT_FAILURE);
- }
- PQfinish(conn);
-
- if (!index && !export && !import)
- {
- fprintf(stderr, "Please select index, export or import.\n");
- exit(EXIT_FAILURE);
- }
- if (index) nominatim_index(minrank, maxrank, threads, conninfo, file);
- if (export) nominatim_export(minrank, maxrank, conninfo, file);
- if (import) nominatim_import(conninfo, tagsfile, file);
-
- return 0;
-}
+++ /dev/null
-#ifndef NOMINATIM_H
-#define NOMINATIM_H
-
-#define MAX(x,y) (x > y?x:y)
-#define MIN(x,y) (x < y?x:y)
-
-struct output_options
-{
- const char *conninfo; /* Connection info string */
- const char *prefix; /* prefix for table names */
- int scale; /* scale for converting coordinates to fixed point */
- int projection; /* SRS of projection */
- int append; /* Append to existing data */
- int slim; /* In slim mode */
- int cache; /* Memory usable for cache in MB */
- struct middle_t *mid; /* Mid storage to use */
- const char *tblsindex; /* Pg Tablespace to store indexes */
- const char *style; /* style file to use */
- int expire_tiles_zoom; /* Zoom level for tile expiry list */
- int expire_tiles_zoom_min; /* Minimum zoom level for tile expiry list */
- const char *expire_tiles_filename; /* File name to output expired tiles list to */
- int enable_hstore; /* add an additional hstore column with objects key/value pairs */
- int enable_multi; /* Output multi-geometries instead of several simple geometries */
- char** hstore_columns; /* list of columns that should be written into their own hstore column */
- int n_hstore_columns; /* number of hstore columns */
-};
-
-void exit_nicely(void);
-void short_usage(char *arg0);
-
-#endif
--- /dev/null
+#! /usr/bin/env python3
+#-----------------------------------------------------------------------------
+# nominatim - [description]
+#-----------------------------------------------------------------------------
+#
+# Indexing tool for the Nominatim database.
+#
+# Based on C version by Brian Quinion
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+#-----------------------------------------------------------------------------
+
+from argparse import ArgumentParser, RawDescriptionHelpFormatter, ArgumentTypeError
+import logging
+import sys
+import re
+import getpass
+from datetime import datetime
+import psycopg2
+from psycopg2.extras import wait_select
+import select
+
+log = logging.getLogger()
+
+def make_connection(options, asynchronous=False):
+ params = {'dbname' : options.dbname,
+ 'user' : options.user,
+ 'password' : options.password,
+ 'host' : options.host,
+ 'port' : options.port,
+ 'async' : asynchronous}
+
+ return psycopg2.connect(**params)
+
+
+class RankRunner(object):
+ """ Returns SQL commands for indexing one rank within the placex table.
+ """
+
+ def __init__(self, rank):
+ self.rank = rank
+
+ def name(self):
+ return "rank {}".format(self.rank)
+
+ def sql_index_sectors(self):
+ return """SELECT geometry_sector, count(*) FROM placex
+ WHERE rank_search = {} and indexed_status > 0
+ GROUP BY geometry_sector
+ ORDER BY geometry_sector""".format(self.rank)
+
+ def sql_nosector_places(self):
+ return """SELECT place_id FROM placex
+ WHERE indexed_status > 0 and rank_search = {}
+ ORDER BY geometry_sector""".format(self.rank)
+
+ def sql_sector_places(self):
+ return """SELECT place_id FROM placex
+ WHERE indexed_status > 0 and rank_search = {}
+ and geometry_sector = %s""".format(self.rank)
+
+ def sql_index_place(self):
+ return "UPDATE placex SET indexed_status = 0 WHERE place_id = %s"
+
+
+class InterpolationRunner(object):
+ """ Returns SQL commands for indexing the address interpolation table
+ location_property_osmline.
+ """
+
+ def name(self):
+ return "interpolation lines (location_property_osmline)"
+
+ def sql_index_sectors(self):
+ return """SELECT geometry_sector, count(*) FROM location_property_osmline
+ WHERE indexed_status > 0
+ GROUP BY geometry_sector
+ ORDER BY geometry_sector"""
+
+ def sql_nosector_places(self):
+ return """SELECT place_id FROM location_property_osmline
+ WHERE indexed_status > 0
+ ORDER BY geometry_sector"""
+
+ def sql_sector_places(self):
+ return """SELECT place_id FROM location_property_osmline
+ WHERE indexed_status > 0 and geometry_sector = %s
+ ORDER BY geometry_sector"""
+
+ def sql_index_place(self):
+ return """UPDATE location_property_osmline
+ SET indexed_status = 0 WHERE place_id = %s"""
+
+
+class DBConnection(object):
+ """ A single non-blocking database connection.
+ """
+
+ def __init__(self, options):
+ self.current_query = None
+ self.current_params = None
+
+ self.conn = None
+ self.connect()
+
+ def connect(self):
+ if self.conn is not None:
+ self.cursor.close()
+ self.conn.close()
+
+ self.conn = make_connection(options, asynchronous=True)
+ self.wait()
+
+ self.cursor = self.conn.cursor()
+
+ def wait(self):
+ """ Block until any pending operation is done.
+ """
+ while True:
+ try:
+ wait_select(self.conn)
+ self.current_query = None
+ return
+ except psycopg2.extensions.TransactionRollbackError as e:
+ if e.pgcode == '40P01':
+ log.info("Deadlock detected (params = {}), retry."
+ .format(self.current_params))
+ self.cursor.execute(self.current_query, self.current_params)
+ else:
+ raise
+ except psycopg2.errors.DeadlockDetected:
+ self.cursor.execute(self.current_query, self.current_params)
+
+ def perform(self, sql, args=None):
+ """ Send SQL query to the server. Returns immediately without
+ blocking.
+ """
+ self.current_query = sql
+ self.current_params = args
+ self.cursor.execute(sql, args)
+
+ def fileno(self):
+ """ File descriptor to wait for. (Makes this class select()able.)
+ """
+ return self.conn.fileno()
+
+ def is_done(self):
+ """ Check if the connection is available for a new query.
+
+ Also checks if the previous query has run into a deadlock.
+ If so, then the previous query is repeated.
+ """
+ if self.current_query is None:
+ return True
+
+ try:
+ if self.conn.poll() == psycopg2.extensions.POLL_OK:
+ self.current_query = None
+ return True
+ except psycopg2.extensions.TransactionRollbackError as e:
+ if e.pgcode == '40P01':
+ log.info("Deadlock detected (params = {}), retry.".format(self.current_params))
+ self.cursor.execute(self.current_query, self.current_params)
+ else:
+ raise
+ except psycopg2.errors.DeadlockDetected:
+ self.cursor.execute(self.current_query, self.current_params)
+
+ return False
+
+
+class Indexer(object):
+ """ Main indexing routine.
+ """
+
+ def __init__(self, options):
+ self.minrank = max(0, options.minrank)
+ self.maxrank = min(30, options.maxrank)
+ self.conn = make_connection(options)
+ self.threads = [DBConnection(options) for i in range(options.threads)]
+
+ def run(self):
+ """ Run indexing over the entire database.
+ """
+ log.warning("Starting indexing rank ({} to {}) using {} threads".format(
+ self.minrank, self.maxrank, len(self.threads)))
+
+ for rank in range(self.minrank, self.maxrank):
+ self.index(RankRunner(rank))
+
+ if self.maxrank == 30:
+ self.index(InterpolationRunner())
+
+ self.index(RankRunner(self.maxrank))
+
+ def index(self, obj):
+ """ Index a single rank or table. `obj` describes the SQL to use
+ for indexing.
+ """
+ log.warning("Starting {}".format(obj.name()))
+
+ cur = self.conn.cursor(name='main')
+ cur.execute(obj.sql_index_sectors())
+
+ total_tuples = 0
+ for r in cur:
+ total_tuples += r[1]
+ log.debug("Total number of rows; {}".format(total_tuples))
+
+ cur.scroll(0, mode='absolute')
+
+ next_thread = self.find_free_thread()
+ done_tuples = 0
+ rank_start_time = datetime.now()
+
+ sector_sql = obj.sql_sector_places()
+ index_sql = obj.sql_index_place()
+ min_grouped_tuples = total_tuples - len(self.threads) * 1000
+
+ next_info = 100 if log.isEnabledFor(logging.INFO) else total_tuples + 1
+
+ for r in cur:
+ sector = r[0]
+
+ # Should we do the remaining ones together?
+ do_all = done_tuples > min_grouped_tuples
+
+ pcur = self.conn.cursor(name='places')
+
+ if do_all:
+ pcur.execute(obj.sql_nosector_places())
+ else:
+ pcur.execute(sector_sql, (sector, ))
+
+ for place in pcur:
+ place_id = place[0]
+ log.debug("Processing place {}".format(place_id))
+ thread = next(next_thread)
+
+ thread.perform(index_sql, (place_id,))
+ done_tuples += 1
+
+ if done_tuples >= next_info:
+ now = datetime.now()
+ done_time = (now - rank_start_time).total_seconds()
+ tuples_per_sec = done_tuples / done_time
+ log.info("Done {} in {} @ {:.3f} per second - {} ETA (seconds): {:.2f}"
+ .format(done_tuples, int(done_time),
+ tuples_per_sec, obj.name(),
+ (total_tuples - done_tuples)/tuples_per_sec))
+ next_info += int(tuples_per_sec)
+
+ pcur.close()
+
+ if do_all:
+ break
+
+ cur.close()
+
+ for t in self.threads:
+ t.wait()
+
+ rank_end_time = datetime.now()
+ diff_seconds = (rank_end_time-rank_start_time).total_seconds()
+
+ log.warning("Done {}/{} in {} @ {:.3f} per second - FINISHED {}\n".format(
+ done_tuples, total_tuples, int(diff_seconds),
+ done_tuples/diff_seconds, obj.name()))
+
+ def find_free_thread(self):
+ """ Generator that returns the next connection that is free for
+ sending a query.
+ """
+ ready = self.threads
+ command_stat = 0
+
+ while True:
+ for thread in ready:
+ if thread.is_done():
+ command_stat += 1
+ yield thread
+
+ # refresh the connections occasionaly to avoid potential
+ # memory leaks in Postgresql.
+ if command_stat > 100000:
+ for t in self.threads:
+ while not t.is_done():
+ wait_select(t.conn)
+ t.connect()
+ command_stat = 0
+ ready = self.threads
+ else:
+ ready, _, _ = select.select(self.threads, [], [])
+
+ assert False, "Unreachable code"
+
+
+def nominatim_arg_parser():
+ """ Setup the command-line parser for the tool.
+ """
+ def h(s):
+ return re.sub("\s\s+" , " ", s)
+
+ p = ArgumentParser(description="Indexing tool for Nominatim.",
+ formatter_class=RawDescriptionHelpFormatter)
+
+ p.add_argument('-d', '--database',
+ dest='dbname', action='store', default='nominatim',
+ help='Name of the PostgreSQL database to connect to.')
+ p.add_argument('-U', '--username',
+ dest='user', action='store',
+ help='PostgreSQL user name.')
+ p.add_argument('-W', '--password',
+ dest='password_prompt', action='store_true',
+ help='Force password prompt.')
+ p.add_argument('-H', '--host',
+ dest='host', action='store',
+ help='PostgreSQL server hostname or socket location.')
+ p.add_argument('-P', '--port',
+ dest='port', action='store',
+ help='PostgreSQL server port')
+ p.add_argument('-r', '--minrank',
+ dest='minrank', type=int, metavar='RANK', default=0,
+ help='Minimum/starting rank.')
+ p.add_argument('-R', '--maxrank',
+ dest='maxrank', type=int, metavar='RANK', default=30,
+ help='Maximum/finishing rank.')
+ p.add_argument('-t', '--threads',
+ dest='threads', type=int, metavar='NUM', default=1,
+ help='Number of threads to create for indexing.')
+ p.add_argument('-v', '--verbose',
+ dest='loglevel', action='count', default=0,
+ help='Increase verbosity')
+
+ return p
+
+if __name__ == '__main__':
+ logging.basicConfig(stream=sys.stderr, format='%(levelname)s: %(message)s')
+
+ options = nominatim_arg_parser().parse_args(sys.argv[1:])
+
+ log.setLevel(max(3 - options.loglevel, 0) * 10)
+
+ options.password = None
+ if options.password_prompt:
+ password = getpass.getpass("Database password: ")
+ options.password = password
+
+ Indexer(options).run()
+++ /dev/null
-
-%define svn @SVN@
-
-Summary: Nominatim OpenStreetMap geocoding database
-Name: @PACKAGE@
-Group: Applications/Text
-Version: @VERSION@
-Release: 1.%{svn}%{?dist}
-
-License: GPL
-URL: http://svn.openstreetmap.org/applications/utils/nominatim
-Source0: %{name}-%{version}-%{svn}.tar.bz2
-Source1: nominatim-svn.sh
-BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
-
-BuildRequires: geos-devel
-BuildRequires: libxml2-devel
-BuildRequires: postgresql-devel
-BuildRequires: bzip2-devel
-BuildRequires: proj-devel
-
-%description
-Processes data imported using osm2pgsql from the communtiy mapping project
-at http://www.openstreetmap.org.
-
-%prep
-%setup -q -n %{name}
-
-
-%build
-
-export CFLAGS="$RPM_OPT_FLAGS"
-export CXXFLAGS="$RPM_OPT_FLAGS"
-
-make all
-
-
-%install
-rm -rf $RPM_BUILD_ROOT
-install -D -p nominatim $RPM_BUILD_ROOT/usr/bin/nominatim
-
-
-%clean
-rm -rf $RPM_BUILD_ROOT
-
-
-%files
-%defattr(-,root,root)
-%doc README.txt
-%{_bindir}/nominatim
-
-
-%changelog
-* Fri Sep 09 2010 Brian Quinion <nominatim@brian.quinion.co.uk> 0.1-1.20070316svn
-- Initial build
+++ /dev/null
-/*
-*/
-#include <string.h>
-#include "postgresql.h"
-
-const char *build_conninfo(const char *db, const char *username, const char *password, const char *host, const char *port)
-{
- static char conninfo[1024];
-
- conninfo[0]='\0';
- strcat(conninfo, "dbname='");
- strcat(conninfo, db);
- strcat(conninfo, "'");
-
- if (username)
- {
- strcat(conninfo, " user='");
- strcat(conninfo, username);
- strcat(conninfo, "'");
- }
- if (password)
- {
- strcat(conninfo, " password='");
- strcat(conninfo, password);
- strcat(conninfo, "'");
- }
- if (host)
- {
- strcat(conninfo, " host='");
- strcat(conninfo, host);
- strcat(conninfo, "'");
- }
- if (port)
- {
- strcat(conninfo, " port='");
- strcat(conninfo, port);
- strcat(conninfo, "'");
- }
-
- return conninfo;
-}
+++ /dev/null
-/*
-*/
-
-#ifndef POSTGRESQL_H
-#define POSTGRESQL_H
-
-#define PG_OID_INT8 20
-#define PG_OID_INT4 23
-
-#if HAVE_BYTESWAP
-#include <byteswap.h>
-#define PG_BSWAP32(x) bswap_32(x)
-#define PG_BSWAP64(x) bswap_64(x)
-#elif HAVE_SYS_ENDIAN
-#include <sys/endian.h>
-#define PG_BSWAP32(x) bswap32(x)
-#define PG_BSWAP64(x) bswap64(x)
-#else
-#error "No appropriate byteswap found for your system."
-#endif
-
-#if defined(__BYTE_ORDER__) && (__BYTE_ORDER__ == __ORDER_BIG_ENDIAN__)
-#define PGint32(x) (x)
-#define PGint64(x) (x)
-#elif defined(__BYTE_ORDER__) && (__BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__)
-#define PGint32(x) PG_BSWAP32(x)
-#define PGint64(x) PG_BSWAP64(x)
-#elif defined(_BYTE_ORDER) && (_BYTE_ORDER == _BIG_ENDIAN)
-#define PGint32(x) (x)
-#define PGint64(x) (x)
-#elif defined(_BYTE_ORDER) && (_BYTE_ORDER == _LITTLE_ENDIAN)
-#define PGint32(x) PG_BSWAP32(x)
-#define PGint64(x) PG_BSWAP64(x)
-#else
-#error "Cannot determine byte order."
-#endif
-
-const char *build_conninfo(const char *db, const char *username, const char *password, const char *host, const char *port);
-
-#endif
+++ /dev/null
-/*-------------------------------------------------------------------------
- *
- * sprompt.c
- * simple_prompt() routine
- *
- * Portions Copyright (c) 1996-2006, PostgreSQL Global Development Group
- * Portions Copyright (c) 1994, Regents of the University of California
- *
- *
- * IDENTIFICATION
- * $PostgreSQL: pgsql/src/port/sprompt.c,v 1.18 2006/10/04 00:30:14 momjian Exp $
- *
- *-------------------------------------------------------------------------
- *
- * PostgreSQL Database Management System
- * (formerly known as Postgres, then as Postgres95)
- *
- * Portions Copyright (c) 1996-2006, PostgreSQL Global Development Group
- *
- * Portions Copyright (c) 1994, The Regents of the University of California
- *
- * Permission to use, copy, modify, and distribute this software and its
- * documentation for any purpose, without fee, and without a written agreement
- * is hereby granted, provided that the above copyright notice and this
- * paragraph and the following two paragraphs appear in all copies.
- *
- * IN NO EVENT SHALL THE UNIVERSITY OF CALIFORNIA BE LIABLE TO ANY PARTY FOR
- * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, INCLUDING
- * LOST PROFITS, ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS
- * DOCUMENTATION, EVEN IF THE UNIVERSITY OF CALIFORNIA HAS BEEN ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
- * THE UNIVERSITY OF CALIFORNIA SPECIFICALLY DISCLAIMS ANY WARRANTIES,
- * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
- * AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS
- * ON AN "AS IS" BASIS, AND THE UNIVERSITY OF CALIFORNIA HAS NO OBLIGATIONS TO
- * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
- *
- */
-
-
-/*
- * simple_prompt
- *
- * Generalized function especially intended for reading in usernames and
- * password interactively. Reads from /dev/tty or stdin/stderr.
- *
- * prompt: The prompt to print
- * maxlen: How many characters to accept
- * echo: Set to false if you want to hide what is entered (for passwords)
- *
- * Returns a malloc()'ed string with the input (w/o trailing newline).
- */
-
-#define DEVTTY "/dev/tty"
-
-#include <stdio.h>
-#include <unistd.h>
-#include <stdlib.h>
-#include <string.h>
-#include <assert.h>
-
-#include <libpq-fe.h>
-
-#ifdef __MINGW_H
-# include <windows.h>
-#else
-# define HAVE_TERMIOS_H
-# include <termios.h>
-#endif
-
-/*
-extern char *simple_prompt(const char *prompt, int maxlen, int echo);
-*/
-
-char *
-simple_prompt(const char *prompt, int maxlen, int echo)
-{
- int length;
- char *destination;
- FILE *termin,
- *termout;
-
-#ifdef HAVE_TERMIOS_H
- struct termios t_orig,
- t;
-#else
-#ifdef WIN32
- HANDLE t = NULL;
- LPDWORD t_orig = NULL;
-#endif
-#endif
-
- destination = (char *) malloc(maxlen + 1);
- if (!destination)
- return NULL;
-
- /*
- * Do not try to collapse these into one "w+" mode file. Doesn't work on
- * some platforms (eg, HPUX 10.20).
- */
- termin = fopen(DEVTTY, "r");
- termout = fopen(DEVTTY, "w");
- if (!termin || !termout
-#ifdef WIN32
- /* See DEVTTY comment for msys */
- || (getenv("OSTYPE") && strcmp(getenv("OSTYPE"), "msys") == 0)
-#endif
- )
-{
- if (termin)
- fclose(termin);
- if (termout)
- fclose(termout);
- termin = stdin;
- termout = stderr;
- }
-
-#ifdef HAVE_TERMIOS_H
- if (!echo)
- {
- tcgetattr(fileno(termin), &t);
- t_orig = t;
- t.c_lflag &= ~ECHO;
- tcsetattr(fileno(termin), TCSAFLUSH, &t);
- }
-#else
-#ifdef WIN32
- if (!echo)
- {
- /* get a new handle to turn echo off */
- t_orig = (LPDWORD) malloc(sizeof(DWORD));
- t = GetStdHandle(STD_INPUT_HANDLE);
-
- /* save the old configuration first */
- GetConsoleMode(t, t_orig);
-
- /* set to the new mode */
- SetConsoleMode(t, ENABLE_LINE_INPUT | ENABLE_PROCESSED_INPUT);
- }
-#endif
-#endif
-
- if (prompt)
- {
- fputs(prompt, termout);
- fflush(termout);
- }
-
- if (fgets(destination, maxlen + 1, termin) == NULL)
- destination[0] = '\0';
-
- length = strlen(destination);
- if (length > 0 && destination[length - 1] != '\n')
- {
- /* eat rest of the line */
- char buf[128];
- int buflen;
-
- do
- {
- if (fgets(buf, sizeof(buf), termin) == NULL)
- break;
- buflen = strlen(buf);
- }
- while (buflen > 0 && buf[buflen - 1] != '\n');
- }
-
- if (length > 0 && destination[length - 1] == '\n')
- /* remove trailing newline */
- destination[length - 1] = '\0';
-
-#ifdef HAVE_TERMIOS_H
- if (!echo)
- {
- tcsetattr(fileno(termin), TCSAFLUSH, &t_orig);
- fputs("\n", termout);
- fflush(termout);
- }
-#else
-#ifdef WIN32
- if (!echo)
- {
- /* reset to the original console mode */
- SetConsoleMode(t, *t_orig);
- fputs("\n", termout);
- fflush(termout);
- free(t_orig);
- }
-#endif
-#endif
-
- if (termin != stdin)
- {
- fclose(termin);
- fclose(termout);
- }
-
- return destination;
-}
+++ /dev/null
-#ifndef SPROMPT_H
-#define SPROMPT_H
-char *simple_prompt(const char *prompt, int maxlen, int echo);
-#endif
+++ /dev/null
-/*\r
-* The author of this software is Steven Fortune. Copyright (c) 1994 by AT&T\r
-* Bell Laboratories.\r
-* Permission to use, copy, modify, and distribute this software for any\r
-* purpose without fee is hereby granted, provided that this entire notice\r
-* is included in all copies of any software which is or includes a copy\r
-* or modification of this software and in all copies of the supporting\r
-* documentation for such software.\r
-* THIS SOFTWARE IS BEING PROVIDED "AS IS", WITHOUT ANY EXPRESS OR IMPLIED\r
-* WARRANTY. IN PARTICULAR, NEITHER THE AUTHORS NOR AT&T MAKE ANY\r
-* REPRESENTATION OR WARRANTY OF ANY KIND CONCERNING THE MERCHANTABILITY\r
-* OF THIS SOFTWARE OR ITS FITNESS FOR ANY PARTICULAR PURPOSE.\r
-*/\r
-\r
-/* \r
-* This code was originally written by Stephan Fortune in C code. I, Shane O'Sullivan, \r
-* have since modified it, encapsulating it in a C++ class and, fixing memory leaks and \r
-* adding accessors to the Voronoi Edges.\r
-* Permission to use, copy, modify, and distribute this software for any\r
-* purpose without fee is hereby granted, provided that this entire notice\r
-* is included in all copies of any software which is or includes a copy\r
-* or modification of this software and in all copies of the supporting\r
-* documentation for such software.\r
-* THIS SOFTWARE IS BEING PROVIDED "AS IS", WITHOUT ANY EXPRESS OR IMPLIED\r
-* WARRANTY. IN PARTICULAR, NEITHER THE AUTHORS NOR AT&T MAKE ANY\r
-* REPRESENTATION OR WARRANTY OF ANY KIND CONCERNING THE MERCHANTABILITY\r
-* OF THIS SOFTWARE OR ITS FITNESS FOR ANY PARTICULAR PURPOSE.\r
-*/\r
-\r
-#include "VoronoiDiagramGenerator.h"\r
-#include <stdio.h>\r
-#include <sys/mman.h>\r
-\r
-VoronoiDiagramGenerator::VoronoiDiagramGenerator()\r
-{\r
- siteidx = 0;\r
- sites = 0;\r
-\r
- allMemoryList = new FreeNodeArrayList;\r
- allMemoryList->memory = 0;\r
- allMemoryList->next = 0;\r
- currentMemoryBlock = allMemoryList;\r
- allEdges = 0;\r
- iteratorEdges = 0;\r
- minDistanceBetweenSites = 0;\r
-}\r
-\r
-VoronoiDiagramGenerator::~VoronoiDiagramGenerator()\r
-{\r
- cleanup();\r
- cleanupEdges();\r
-\r
- if(allMemoryList != 0)\r
- delete allMemoryList;\r
-}\r
-\r
-bool VoronoiDiagramGenerator::generateVoronoi(struct SourcePoint* srcPoints, int numPoints, float minX, float maxX, float minY, float maxY, float minDist)\r
-{\r
- cleanup();\r
- cleanupEdges();\r
- int i;\r
-\r
- minDistanceBetweenSites = minDist;\r
-\r
- nsites = numPoints;\r
- plot = 0;\r
- triangulate = 0;\r
- debug = 1;\r
- sorted = 0;\r
- freeinit(&sfl, sizeof (Site));\r
-\r
- sites = (struct Site *) myalloc(nsites * sizeof(*sites));\r
- polygons = (struct Polygon *) myalloc(nsites * sizeof(*polygons));\r
-\r
- if(sites == 0) return false;\r
-\r
- xmin = srcPoints[0].x;\r
- ymin = srcPoints[0].y;\r
- xmax = srcPoints[0].x;\r
- ymax = srcPoints[0].y;\r
-\r
- for(i = 0; i < nsites; i++)\r
- {\r
- sites[i].coord.x = srcPoints[i].x;\r
- sites[i].coord.y = srcPoints[i].y;\r
- sites[i].weight = srcPoints[i].weight;\r
- sites[i].sitenbr = i;\r
- sites[i].refcnt = 0; // prevent reuse?\r
-\r
- if(sites[i].coord.x < xmin)\r
- xmin = sites[i].coord.x;\r
- else if(sites[i].coord.x > xmax)\r
- xmax = sites[i].coord.x;\r
-\r
- if(sites[i].coord.y < ymin)\r
- ymin = sites[i].coord.y;\r
- else if(sites[i].coord.y > ymax)\r
- ymax = sites[i].coord.y;\r
-\r
- polygons[i].coord.x = sites[i].coord.x;\r
- polygons[i].coord.y = sites[i].coord.y;\r
- polygons[i].numpoints = 0;\r
- polygons[i].pointlist = NULL;\r
- polygons[i].boundary = 0;\r
-\r
- //printf("\n%lf %lf\n", sites[i].coord.x, sites[i].coord.y);\r
- }\r
-\r
- qsort(sites, nsites, sizeof (*sites), scomp);\r
-\r
- siteidx = 0;\r
- geominit();\r
- float temp = 0;\r
- if(minX > maxX)\r
- {\r
- temp = minX;\r
- minX = maxX;\r
- maxX = temp;\r
- }\r
- if(minY > maxY)\r
- {\r
- temp = minY;\r
- minY = maxY;\r
- maxY = temp;\r
- }\r
- borderMinX = minX;\r
- borderMinY = minY;\r
- borderMaxX = maxX;\r
- borderMaxY = maxY;\r
-\r
- corners[0].x = borderMinX;\r
- corners[0].y = borderMinY;\r
- corners[1].x = borderMinX;\r
- corners[1].y = borderMaxY;\r
- corners[2].x = borderMaxX;\r
- corners[2].y = borderMaxY;\r
- corners[3].x = borderMaxX;\r
- corners[3].y = borderMinY;\r
-\r
- siteidx = 0;\r
- voronoi(triangulate);\r
-\r
- return true;\r
-}\r
-\r
-bool VoronoiDiagramGenerator::ELinitialize()\r
-{\r
- int i;\r
- freeinit(&hfl, sizeof **ELhash);\r
- ELhashsize = 2 * sqrt_nsites;\r
- ELhash = (struct Halfedge **) myalloc ( sizeof *ELhash * ELhashsize);\r
-\r
- if(ELhash == 0)\r
- return false;\r
-\r
- for(i=0; i<ELhashsize; i +=1) ELhash[i] = (struct Halfedge *)NULL;\r
- ELleftend = HEcreate( (struct Edge *)NULL, 0);\r
- ELrightend = HEcreate( (struct Edge *)NULL, 0);\r
- ELleftend -> ELleft = (struct Halfedge *)NULL;\r
- ELleftend -> ELright = ELrightend;\r
- ELrightend -> ELleft = ELleftend;\r
- ELrightend -> ELright = (struct Halfedge *)NULL;\r
- ELhash[0] = ELleftend;\r
- ELhash[ELhashsize-1] = ELrightend;\r
-\r
- return true;\r
-}\r
-\r
-\r
-struct Halfedge* VoronoiDiagramGenerator::HEcreate(struct Edge *e,int pm)\r
-{\r
- struct Halfedge *answer;\r
- answer = (struct Halfedge *) getfree(&hfl);\r
- answer -> ELedge = e;\r
- answer -> ELpm = pm;\r
- answer -> PQnext = (struct Halfedge *) NULL;\r
- answer -> vertex = (struct Site *) NULL;\r
- answer -> ELrefcnt = 0;\r
- return(answer);\r
-}\r
-\r
-\r
-void VoronoiDiagramGenerator::ELinsert(struct Halfedge *lb, struct Halfedge *newHe)\r
-{\r
- newHe -> ELleft = lb;\r
- newHe -> ELright = lb -> ELright;\r
- (lb -> ELright) -> ELleft = newHe;\r
- lb -> ELright = newHe;\r
-}\r
-\r
-/* Get entry from hash table, pruning any deleted nodes */\r
-struct Halfedge * VoronoiDiagramGenerator::ELgethash(int b)\r
-{\r
- struct Halfedge *he;\r
-\r
- if(b<0 || b>=ELhashsize)\r
- return((struct Halfedge *) NULL);\r
- he = ELhash[b];\r
- if (he == (struct Halfedge *) NULL || he->ELedge != (struct Edge *) DELETED )\r
- return (he);\r
-\r
- /* Hash table points to deleted half edge. Patch as necessary. */\r
- ELhash[b] = (struct Halfedge *) NULL;\r
- if ((he -> ELrefcnt -= 1) == 0) \r
- makefree((Freenode*)he, &hfl);\r
- return ((struct Halfedge *) NULL);\r
-}\r
-\r
-struct Halfedge * VoronoiDiagramGenerator::ELleftbnd(struct Point *p)\r
-{\r
- int i, bucket;\r
- struct Halfedge *he;\r
-\r
- /* Use hash table to get close to desired halfedge */\r
- bucket = (int)((p->x - xmin)/deltax * ELhashsize); //use the hash function to find the place in the hash map that this HalfEdge should be\r
-\r
- if(bucket<0) bucket =0; //make sure that the bucket position in within the range of the hash array\r
- if(bucket>=ELhashsize) bucket = ELhashsize - 1;\r
-\r
- he = ELgethash(bucket);\r
- if(he == (struct Halfedge *) NULL) //if the HE isn't found, search backwards and forwards in the hash map for the first non-null entry\r
- {\r
- for(i=1; 1 ; i += 1)\r
- {\r
- if ((he=ELgethash(bucket-i)) != (struct Halfedge *) NULL)\r
- break;\r
- if ((he=ELgethash(bucket+i)) != (struct Halfedge *) NULL)\r
- break;\r
- };\r
- totalsearch += i;\r
- };\r
- ntry += 1;\r
- /* Now search linear list of halfedges for the correct one */\r
- if (he==ELleftend || (he != ELrightend && right_of(he,p)))\r
- {\r
- do \r
- {\r
- he = he -> ELright;\r
- } while (he!=ELrightend && right_of(he,p)); //keep going right on the list until either the end is reached, or you find the 1st edge which the point\r
- he = he -> ELleft; //isn't to the right of\r
- }\r
- else //if the point is to the left of the HalfEdge, then search left for the HE just to the left of the point\r
- do\r
- {\r
- he = he -> ELleft;\r
- } while (he!=ELleftend && !right_of(he,p));\r
-\r
- /* Update hash table and reference counts */\r
- if(bucket > 0 && bucket <ELhashsize-1)\r
- {\r
- if(ELhash[bucket] != (struct Halfedge *) NULL) \r
- {\r
- ELhash[bucket] -> ELrefcnt -= 1;\r
- }\r
- ELhash[bucket] = he;\r
- ELhash[bucket] -> ELrefcnt += 1;\r
- };\r
- return (he);\r
-}\r
-\r
-\r
-/* This delete routine can't reclaim node, since pointers from hash\r
-table may be present. */\r
-void VoronoiDiagramGenerator::ELdelete(struct Halfedge *he)\r
-{\r
- (he -> ELleft) -> ELright = he -> ELright;\r
- (he -> ELright) -> ELleft = he -> ELleft;\r
- he -> ELedge = (struct Edge *)DELETED;\r
-}\r
-\r
-\r
-struct Halfedge * VoronoiDiagramGenerator::ELright(struct Halfedge *he)\r
-{\r
- return (he -> ELright);\r
-}\r
-\r
-struct Halfedge * VoronoiDiagramGenerator::ELleft(struct Halfedge *he)\r
-{\r
- return (he -> ELleft);\r
-}\r
-\r
-\r
-struct Site * VoronoiDiagramGenerator::leftreg(struct Halfedge *he)\r
-{\r
- if(he -> ELedge == (struct Edge *)NULL)\r
- return(bottomsite);\r
- return( he -> ELpm == le ?\r
- he -> ELedge -> reg[le] : he -> ELedge -> reg[re]);\r
-}\r
-\r
-struct Site * VoronoiDiagramGenerator::rightreg(struct Halfedge *he)\r
-{\r
- if(he -> ELedge == (struct Edge *)NULL) //if this halfedge has no edge, return the bottom site (whatever that is)\r
- return(bottomsite);\r
-\r
- //if the ELpm field is zero, return the site 0 that this edge bisects, otherwise return site number 1\r
- return( he -> ELpm == le ? he -> ELedge -> reg[re] : he -> ELedge -> reg[le]);\r
-}\r
-\r
-void VoronoiDiagramGenerator::geominit()\r
-{\r
- float sn;\r
-\r
- freeinit(&efl, sizeof(Edge));\r
- nvertices = 0;\r
- nedges = 0;\r
- sn = (float)nsites+4;\r
- sqrt_nsites = (int)sqrt(sn);\r
- deltay = ymax - ymin;\r
- deltax = xmax - xmin;\r
-}\r
-\r
-\r
-struct Edge * VoronoiDiagramGenerator::bisect(struct Site *s1,struct Site *s2)\r
-{\r
- float dx,dy,adx,ady;\r
- struct Edge *newedge;\r
-\r
- newedge = (struct Edge *) getfree(&efl);\r
-\r
- newedge -> reg[0] = s1; //store the sites that this edge is bisecting\r
- newedge -> reg[1] = s2;\r
- ref(s1);\r
- ref(s2);\r
- newedge -> ep[0] = (struct Site *) NULL; //to begin with, there are no endpoints on the bisector - it goes to infinity\r
- newedge -> ep[1] = (struct Site *) NULL;\r
-\r
- dx = s2->coord.x - s1->coord.x; //get the difference in x dist between the sites\r
- dy = s2->coord.y - s1->coord.y;\r
- adx = dx>0 ? dx : -dx; //make sure that the difference in positive\r
- ady = dy>0 ? dy : -dy;\r
- newedge -> c = (float)(s1->coord.x * dx + s1->coord.y * dy + (dx*dx + dy*dy)*0.5);//get the slope of the line\r
-\r
- if (adx>ady)\r
- {\r
- newedge -> a = 1.0; newedge -> b = dy/dx; newedge -> c /= dx;//set formula of line, with x fixed to 1\r
- }\r
- else\r
- {\r
- newedge -> b = 1.0; newedge -> a = dx/dy; newedge -> c /= dy;//set formula of line, with y fixed to 1\r
- };\r
-\r
- newedge -> edgenbr = nedges;\r
-\r
- //printf("\nbisect(%d) ((%f,%f) and (%f,%f)",nedges,s1->coord.x,s1->coord.y,s2->coord.x,s2->coord.y);\r
-\r
- nedges += 1;\r
- return(newedge);\r
-}\r
-\r
-//create a new site where the HalfEdges el1 and el2 intersect - note that the Point in the argument list is not used, don't know why it's there\r
-struct Site * VoronoiDiagramGenerator::intersect(struct Halfedge *el1, struct Halfedge *el2, struct Point *p)\r
-{\r
- struct Edge *e1,*e2, *e;\r
- struct Halfedge *el;\r
- float d, xint, yint;\r
- int right_of_site;\r
- struct Site *v;\r
-\r
- e1 = el1 -> ELedge;\r
- e2 = el2 -> ELedge;\r
- if(e1 == (struct Edge*)NULL || e2 == (struct Edge*)NULL)\r
- return ((struct Site *) NULL);\r
-\r
- //if the two edges bisect the same parent, return null\r
- if (e1->reg[1] == e2->reg[1])\r
- return ((struct Site *) NULL);\r
-\r
- d = e1->a * e2->b - e1->b * e2->a;\r
- if (-1.0e-10<d && d<1.0e-10)\r
- return ((struct Site *) NULL);\r
-\r
- xint = (e1->c*e2->b - e2->c*e1->b)/d;\r
- yint = (e2->c*e1->a - e1->c*e2->a)/d;\r
-\r
- if( (e1->reg[1]->coord.y < e2->reg[1]->coord.y) ||\r
- (e1->reg[1]->coord.y == e2->reg[1]->coord.y &&\r
- e1->reg[1]->coord.x < e2->reg[1]->coord.x) )\r
- {\r
- el = el1;\r
- e = e1;\r
- }\r
- else\r
- {\r
- el = el2;\r
- e = e2;\r
- };\r
-\r
- right_of_site = xint >= e -> reg[1] -> coord.x;\r
- if ((right_of_site && el -> ELpm == le) || (!right_of_site && el -> ELpm == re))\r
- return ((struct Site *) NULL);\r
-\r
- //create a new site at the point of intersection - this is a new vector event waiting to happen\r
- v = (struct Site *) getfree(&sfl);\r
- v -> refcnt = 0;\r
- v -> coord.x = xint;\r
- v -> coord.y = yint;\r
- return(v);\r
-}\r
-\r
-/* returns 1 if p is to right of halfedge e */\r
-int VoronoiDiagramGenerator::right_of(struct Halfedge *el,struct Point *p)\r
-{\r
- struct Edge *e;\r
- struct Site *topsite;\r
- int right_of_site, above, fast;\r
- float dxp, dyp, dxs, t1, t2, t3, yl;\r
-\r
- e = el -> ELedge;\r
- topsite = e -> reg[1];\r
- right_of_site = p -> x > topsite -> coord.x;\r
- if(right_of_site && el -> ELpm == le) return(1);\r
- if(!right_of_site && el -> ELpm == re) return (0);\r
- if (e->a == 1.0)\r
- {\r
- dyp = p->y - topsite->coord.y;\r
- dxp = p->x - topsite->coord.x;\r
- fast = 0;\r
- if ((!right_of_site & (e->b<0.0)) | (right_of_site & (e->b>=0.0)) )\r
- {\r
- above = dyp>= e->b*dxp;\r
- fast = above;\r
- }\r
- else\r
- {\r
- above = p->x + p->y*e->b > e-> c;\r
- if(e->b<0.0) above = !above;\r
- if (!above) fast = 1;\r
- }\r
-\r
- if (!fast)\r
- {\r
- dxs = topsite->coord.x - (e->reg[0])->coord.x;\r
- above = e->b * (dxp*dxp - dyp*dyp) <\r
- dxs*dyp*(1.0+2.0*dxp/dxs + e->b*e->b);\r
- if(e->b<0.0) above = !above;\r
- }\r
- }\r
- else /*e->b==1.0 */\r
- {\r
- yl = e->c - e->a*p->x;\r
- t1 = p->y - yl;\r
- t2 = p->x - topsite->coord.x;\r
- t3 = yl - topsite->coord.y;\r
- above = t1*t1 > t2*t2 + t3*t3;\r
- }\r
- return (el->ELpm==le ? above : !above);\r
-}\r
-\r
-\r
-void VoronoiDiagramGenerator::endpoint(struct Edge *e,int lr,struct Site * s)\r
-{\r
- e -> ep[lr] = s;\r
- ref(s);\r
- return;\r
-\r
- if(e -> ep[re-lr]== (struct Site *) NULL)\r
- return;\r
-\r
- clip_line(e);\r
-\r
- deref(e->reg[le]);\r
- deref(e->reg[re]);\r
- makefree((Freenode*)e, &efl);\r
-}\r
-\r
-void VoronoiDiagramGenerator::endpoint(struct Edge *e1,int lr,struct Site * s, struct Edge *e2, struct Edge *e3)\r
-{\r
- e1 -> ep[lr] = s;\r
- ref(s);\r
-\r
- s->coordout.x = s->coord.x;\r
- s->coordout.y = s->coord.y;\r
-\r
- if(e1 -> ep[le] != (struct Site *) NULL && e1 -> ep[re] != (struct Site *) NULL)\r
- {\r
- clip_line(e1);\r
- deref(e1->reg[le]);\r
- deref(e1->reg[re]);\r
- makefree((Freenode*)e1, &efl);\r
- }\r
-\r
- if(e2 -> ep[le] != (struct Site *) NULL && e2 -> ep[re] != (struct Site *) NULL)\r
- {\r
- clip_line(e2);\r
- deref(e2->reg[le]);\r
- deref(e2->reg[re]);\r
- makefree((Freenode*)e2, &efl);\r
- }\r
-\r
- if(e3 -> ep[le] != (struct Site *) NULL && e3 -> ep[re] != (struct Site *) NULL)\r
- {\r
- clip_line(e3);\r
- deref(e3->reg[le]);\r
- deref(e3->reg[re]);\r
- makefree((Freenode*)e3, &efl);\r
- }\r
-\r
- return; \r
-}\r
-\r
-\r
-float VoronoiDiagramGenerator::dist(struct Site *s,struct Site *t)\r
-{\r
- float dx,dy;\r
- dx = s->coord.x - t->coord.x;\r
- dy = s->coord.y - t->coord.y;\r
- return (float)(sqrt(dx*dx + dy*dy));\r
-}\r
-\r
-\r
-void VoronoiDiagramGenerator::makevertex(struct Site *v)\r
-{\r
- v -> sitenbr = nvertices;\r
- nvertices += 1;\r
- out_vertex(v);\r
-}\r
-\r
-\r
-void VoronoiDiagramGenerator::deref(struct Site *v)\r
-{\r
- v -> refcnt -= 1;\r
- if (v -> refcnt == 0 ) \r
- makefree((Freenode*)v, &sfl);\r
-}\r
-\r
-void VoronoiDiagramGenerator::ref(struct Site *v)\r
-{\r
- v -> refcnt += 1;\r
-}\r
-\r
-//push the HalfEdge into the ordered linked list of vertices\r
-void VoronoiDiagramGenerator::PQinsert(struct Halfedge *he,struct Site * v, float offset)\r
-{\r
- struct Halfedge *last, *next;\r
-\r
- he -> vertex = v;\r
- ref(v);\r
- he -> ystar = (float)(v -> coord.y + offset);\r
- last = &PQhash[PQbucket(he)];\r
- while ((next = last -> PQnext) != (struct Halfedge *) NULL &&\r
- (he -> ystar > next -> ystar ||\r
- (he -> ystar == next -> ystar && v -> coord.x > next->vertex->coord.x)))\r
- {\r
- last = next;\r
- }\r
- he -> PQnext = last -> PQnext;\r
- last -> PQnext = he;\r
- PQcount += 1;\r
-}\r
-\r
-//remove the HalfEdge from the list of vertices\r
-void VoronoiDiagramGenerator::PQdelete(struct Halfedge *he)\r
-{\r
- struct Halfedge *last;\r
-\r
- if(he -> vertex != (struct Site *) NULL)\r
- {\r
- last = &PQhash[PQbucket(he)];\r
- while (last -> PQnext != he)\r
- last = last -> PQnext;\r
-\r
- last -> PQnext = he -> PQnext;\r
- PQcount -= 1;\r
- deref(he -> vertex);\r
- he -> vertex = (struct Site *) NULL;\r
- };\r
-}\r
-\r
-int VoronoiDiagramGenerator::PQbucket(struct Halfedge *he)\r
-{\r
- int bucket;\r
-\r
- bucket = (int)((he->ystar - ymin)/deltay * PQhashsize);\r
- if (bucket<0) bucket = 0;\r
- if (bucket>=PQhashsize) bucket = PQhashsize-1 ;\r
- if (bucket < PQmin) PQmin = bucket;\r
- return(bucket);\r
-}\r
-\r
-int VoronoiDiagramGenerator::PQempty()\r
-{\r
- return(PQcount==0);\r
-}\r
-\r
-\r
-struct Point VoronoiDiagramGenerator::PQ_min()\r
-{\r
- struct Point answer;\r
-\r
- while(PQhash[PQmin].PQnext == (struct Halfedge *)NULL) {PQmin += 1;};\r
- answer.x = PQhash[PQmin].PQnext -> vertex -> coord.x;\r
- answer.y = PQhash[PQmin].PQnext -> ystar;\r
- return (answer);\r
-}\r
-\r
-struct Halfedge * VoronoiDiagramGenerator::PQextractmin()\r
-{\r
- struct Halfedge *curr;\r
-\r
- curr = PQhash[PQmin].PQnext;\r
- PQhash[PQmin].PQnext = curr -> PQnext;\r
- PQcount -= 1;\r
- return(curr);\r
-}\r
-\r
-\r
-bool VoronoiDiagramGenerator::PQinitialize()\r
-{\r
- int i;\r
-\r
- PQcount = 0;\r
- PQmin = 0;\r
- PQhashsize = 4 * sqrt_nsites;\r
- PQhash = (struct Halfedge *) myalloc(PQhashsize * sizeof *PQhash);\r
-\r
- if(PQhash == 0)\r
- return false;\r
-\r
- for(i=0; i<PQhashsize; i+=1) PQhash[i].PQnext = (struct Halfedge *)NULL;\r
-\r
- return true;\r
-}\r
-\r
-\r
-void VoronoiDiagramGenerator::freeinit(struct Freelist *fl,int size)\r
-{\r
- fl -> head = (struct Freenode *) NULL;\r
- fl -> nodesize = size;\r
-}\r
-\r
-char * VoronoiDiagramGenerator::getfree(struct Freelist *fl)\r
-{\r
- int i;\r
- struct Freenode *t;\r
-\r
- if(fl->head == (struct Freenode *) NULL)\r
- {\r
- t = (struct Freenode *) myalloc(sqrt_nsites * fl->nodesize);\r
-\r
- if(t == 0)\r
- return 0;\r
-\r
- currentMemoryBlock->next = new FreeNodeArrayList;\r
- currentMemoryBlock = currentMemoryBlock->next;\r
- currentMemoryBlock->memory = t;\r
- currentMemoryBlock->next = 0;\r
-\r
- for(i=0; i<sqrt_nsites; i+=1)\r
- makefree((struct Freenode *)((char *)t+i*fl->nodesize), fl);\r
- };\r
- t = fl -> head;\r
- fl -> head = (fl -> head) -> nextfree;\r
- return((char *)t);\r
-}\r
-\r
-\r
-\r
-void VoronoiDiagramGenerator::makefree(struct Freenode *curr,struct Freelist *fl)\r
-{\r
- curr -> nextfree = fl -> head;\r
- fl -> head = curr;\r
-}\r
-\r
-void VoronoiDiagramGenerator::cleanup()\r
-{\r
- if(sites != 0)\r
- {\r
- free(sites);\r
- sites = 0;\r
- }\r
-\r
- FreeNodeArrayList* current=0, *prev = 0;\r
-\r
- current = prev = allMemoryList;\r
-\r
- while(current->next != 0)\r
- {\r
- prev = current;\r
- current = current->next;\r
- free(prev->memory);\r
- delete prev;\r
- prev = 0;\r
- }\r
-\r
- if(current != 0 && current->memory != 0)\r
- {\r
- free(current->memory);\r
- delete current;\r
- }\r
-\r
- allMemoryList = new FreeNodeArrayList;\r
- allMemoryList->next = 0;\r
- allMemoryList->memory = 0;\r
- currentMemoryBlock = allMemoryList;\r
-}\r
-\r
-void VoronoiDiagramGenerator::cleanupEdges()\r
-{\r
- GraphEdge* geCurrent = 0, *gePrev = 0;\r
- geCurrent = gePrev = allEdges;\r
-\r
- while(geCurrent != 0 && geCurrent->next != 0)\r
- {\r
- gePrev = geCurrent;\r
- geCurrent = geCurrent->next;\r
- delete gePrev;\r
- }\r
-\r
- allEdges = 0;\r
-\r
-}\r
-\r
-void VoronoiDiagramGenerator::pushGraphEdge(float x1, float y1, float x2, float y2)\r
-{\r
- GraphEdge* newEdge = new GraphEdge;\r
- newEdge->next = allEdges;\r
- allEdges = newEdge;\r
- newEdge->x1 = x1;\r
- newEdge->y1 = y1;\r
- newEdge->x2 = x2;\r
- newEdge->y2 = y2;\r
-}\r
-\r
-\r
-char * VoronoiDiagramGenerator::myalloc(unsigned n)\r
-{\r
- char *t=0;\r
- t=(char*)malloc(n);\r
- total_alloc += n;\r
- return(t);\r
-}\r
-\r
-\r
-/* for those who don't have Cherry's plot */\r
-/* #include <plot.h> */\r
-void VoronoiDiagramGenerator::openpl(){}\r
-void VoronoiDiagramGenerator::line(float x1, float y1, float x2, float y2)\r
-{\r
- pushGraphEdge(x1,y1,x2,y2);\r
-\r
-}\r
-void VoronoiDiagramGenerator::circle(float x, float y, float radius){}\r
-void VoronoiDiagramGenerator::range(float minX, float minY, float maxX, float maxY){}\r
-\r
-\r
-\r
-void VoronoiDiagramGenerator::out_bisector(struct Edge *e)\r
-{\r
-\r
-}\r
-\r
-\r
-void VoronoiDiagramGenerator::out_ep(struct Edge *e)\r
-{\r
-\r
-}\r
-\r
-void VoronoiDiagramGenerator::out_vertex(struct Site *v)\r
-{\r
-\r
-}\r
-\r
-\r
-void VoronoiDiagramGenerator::out_site(struct Site *s)\r
-{\r
- if(!triangulate & plot & !debug)\r
- circle (s->coord.x, s->coord.y, cradius);\r
-}\r
-\r
-\r
-void VoronoiDiagramGenerator::out_triple(struct Site *s1, struct Site *s2,struct Site * s3)\r
-{\r
-\r
-}\r
-\r
-\r
-\r
-void VoronoiDiagramGenerator::plotinit()\r
-{\r
- float dx,dy,d;\r
-\r
- dy = ymax - ymin;\r
- dx = xmax - xmin;\r
- d = (float)(( dx > dy ? dx : dy) * 1.1);\r
- pxmin = (float)(xmin - (d-dx)/2.0);\r
- pxmax = (float)(xmax + (d-dx)/2.0);\r
- pymin = (float)(ymin - (d-dy)/2.0);\r
- pymax = (float)(ymax + (d-dy)/2.0);\r
- cradius = (float)((pxmax - pxmin)/350.0);\r
- openpl();\r
- range(pxmin, pymin, pxmax, pymax);\r
-}\r
-\r
-void VoronoiDiagramGenerator::pushpoint(int sitenbr, double x, double y, int boundary)\r
-{\r
- Polygon *s;\r
-\r
- s = &polygons[sitenbr];\r
-\r
- if (s->numpoints == 0)\r
- {\r
- s->pointlist = (PolygonPoint *)malloc(sizeof(struct PolygonPoint)*(s->numpoints+10));\r
- if (!s->pointlist)\r
- {\r
- printf("Out of mem\n");\r
- }\r
- }\r
- else if (s->numpoints % 10 == 0)\r
- {\r
- s->pointlist = (PolygonPoint *)realloc(s->pointlist, sizeof(struct PolygonPoint)*(s->numpoints+10));\r
- if (!s->pointlist)\r
- {\r
- printf("Out of remem\n");\r
- }\r
- }\r
- s->pointlist[s->numpoints].coord.x = x;\r
- s->pointlist[s->numpoints].coord.y = y;\r
- s->pointlist[s->numpoints].angle = atan2f(x-s->coord.x, y-s->coord.y);\r
- s->pointlist[s->numpoints].boundary = boundary;\r
-\r
- if (boundary) s->boundary = 1;\r
-\r
- //printf("point #%d in %d (%lf, %lf) [%d] (%lf, %lf): %lf\n", s->numpoints, sitenbr, s->coord.x, s->coord.y, boundary, x, y, (s->pointlist[s->numpoints].angle/M_PI)*180);\r
-\r
- s->numpoints++;\r
-}\r
-\r
-int VoronoiDiagramGenerator::ccw( Point p0, Point p1, Point p2 )\r
-{\r
- double dx1, dx2, dy1, dy2;\r
-\r
- dx1 = p1.x - p0.x; dy1 = p1.y - p0.y;\r
- dx2 = p2.x - p0.x; dy2 = p2.y - p0.y;\r
-\r
- if (dx1*dy2 > dy1*dx2)\r
- return +1;\r
- if (dx1*dy2 < dy1*dx2)\r
- return -1;\r
- if ((dx1*dx2 < 0) || (dy1*dy2 < 0))\r
- return -1;\r
- if ((dx1*dx1 + dy1*dy1) < (dx2*dx2 + dy2*dy2))\r
- return +1;\r
- return 0;\r
-}\r
-\r
-void VoronoiDiagramGenerator::getSitePoints(int sitenbr, int* numpoints, PolygonPoint** pS)\r
-{\r
- int i, j, c, any, centrevalue, cornerinpolygon[4];\r
-\r
- if (polygons[sitenbr].numpoints == 0)\r
- {\r
- for(c = 0; c < 4; c++)\r
- {\r
- pushpoint(sitenbr, corners[c].x, corners[c].y, 0);\r
- }\r
- }\r
-\r
- qsort(polygons[sitenbr].pointlist, polygons[sitenbr].numpoints, sizeof(PolygonPoint), anglecomp);\r
-\r
- if (polygons[sitenbr].boundary)\r
- {\r
-// printf("\nsite %d is boundary intersection\n", sitenbr);\r
-\r
- for(c = 0; c < 4; c++) cornerinpolygon[c] = 1;\r
-\r
- for(i = 0; i < polygons[sitenbr].numpoints; i++)\r
- {\r
-// printf("Point (%lf,%lf) %d\n", polygons[sitenbr].pointlist[i].coord.x,polygons[sitenbr].pointlist[i].coord.y,polygons[sitenbr].pointlist[i].boundary);\r
- j = i > 0?i-1:polygons[sitenbr].numpoints-1;\r
- if ( (!polygons[sitenbr].pointlist[i].boundary || !polygons[sitenbr].pointlist[j].boundary) &&\r
- (polygons[sitenbr].pointlist[i].coord.x != polygons[sitenbr].pointlist[j].coord.x ||\r
- polygons[sitenbr].pointlist[i].coord.y != polygons[sitenbr].pointlist[j].coord.y))\r
- {\r
-// printf("line side test (%lf,%lf) => (%lf,%lf)\n",polygons[sitenbr].pointlist[i].coord.x,polygons[sitenbr].pointlist[i].coord.y,polygons[sitenbr].pointlist[j].coord.x,polygons[sitenbr].pointlist[j].coord.y);\r
- any = 0;\r
- centrevalue = ccw(polygons[sitenbr].pointlist[i].coord, polygons[sitenbr].pointlist[j].coord, polygons[sitenbr].coord);\r
-//printf(" test against centre (%lf,%lf) %d\n", polygons[sitenbr].coord.x, polygons[sitenbr].coord.y, centrevalue);\r
- for(c = 0; c < 4; c++)\r
- {\r
- if (cornerinpolygon[c])\r
- {\r
-\r
-//printf(" test against corner (%lf,%lf) %d\n", corners[c].x, corners[c].y, ccw(polygons[sitenbr].pointlist[i].coord, polygons[sitenbr].pointlist[j].coord, corners[c]));\r
-\r
- if (centrevalue == ccw(polygons[sitenbr].pointlist[i].coord, polygons[sitenbr].pointlist[j].coord, corners[c]))\r
- {\r
- any = 1;\r
- }\r
- else\r
- {\r
- cornerinpolygon[c] = 0;\r
- }\r
- }\r
- }\r
- if (!any) break;\r
- }\r
- }\r
- if (any)\r
- {\r
- for(c = 0; c < 4; c++)\r
- {\r
- if (cornerinpolygon[c])\r
- {\r
-// printf("adding corger (%lf,%lf) to %d\n", corners[c].x, corners[c].y, sitenbr);\r
- pushpoint(sitenbr, corners[c].x, corners[c].y, 0);\r
- }\r
- }\r
- }\r
- qsort(polygons[sitenbr].pointlist, polygons[sitenbr].numpoints, sizeof(PolygonPoint), anglecomp);\r
-\r
- polygons[sitenbr].boundary = 0;\r
- }\r
-\r
- *numpoints = polygons[sitenbr].numpoints;\r
- *pS = polygons[sitenbr].pointlist;\r
-}\r
-\r
-\r
-void VoronoiDiagramGenerator::clip_line(struct Edge *e)\r
-{\r
- struct Site *s1, *s2, *ts1, *ts2;\r
- float x1=0,x2=0,y1=0,y2=0, temp = 0;\r
- int boundary1 = 0, boundary2 = 0;\r
-\r
-\r
- x1 = e->reg[0]->coord.x;\r
- x2 = e->reg[1]->coord.x;\r
- y1 = e->reg[0]->coord.y;\r
- y2 = e->reg[1]->coord.y;\r
-\r
- if(sqrt(((x2 - x1) * (x2 - x1)) + ((y2 - y1) * (y2 - y1))) == 0)\r
- {\r
- return;\r
- }\r
-\r
- pxmin = borderMinX;\r
- pxmax = borderMaxX;\r
- pymin = borderMinY;\r
- pymax = borderMaxY;\r
-\r
- if(e -> a == 1.0 && e ->b >= 0.0)\r
- {\r
- s1 = e -> ep[1];\r
- s2 = e -> ep[0];\r
-\r
- ts1 = e -> reg[1];\r
- ts2 = e -> reg[0];\r
- }\r
- else\r
- {\r
- s1 = e -> ep[0];\r
- s2 = e -> ep[1];\r
-\r
- ts1 = e -> reg[0];\r
- ts2 = e -> reg[1];\r
-\r
- };\r
-\r
- if(e -> a == 1.0)\r
- {\r
- if ( s1!=(struct Site *)NULL\r
- && s1->coordout.y > pymin && s1->coordout.y < pymax\r
- && s1->coordout.x > pxmin && s1->coordout.x < pxmax)\r
- {\r
- x1 = s1->coordout.x;\r
- y1 = s1->coordout.y;\r
- }\r
- else\r
- {\r
- boundary1 = 1;\r
- y1 = pymin;\r
- if (s1!=(struct Site *)NULL && s1->coord.y > pymin)\r
- {\r
- y1 = s1->coord.y;\r
- }\r
- if(y1>pymax)\r
- {\r
- y1 = pymax;\r
- }\r
- x1 = e -> c - e -> b * y1;\r
- }\r
-\r
- if ( s2!=(struct Site *)NULL\r
- && s2->coordout.y > pymin && s2->coordout.y < pymax\r
- && s2->coordout.x > pxmin && s2->coordout.x < pxmax)\r
- {\r
- x2 = s2->coordout.x;\r
- y2 = s2->coordout.y;\r
- }\r
- else\r
- {\r
- boundary2 = 1;\r
- y2 = pymax;\r
- if (s2!=(struct Site *)NULL && s2->coord.y < pymax)\r
- y2 = s2->coord.y;\r
- if(y2<pymin)\r
- {\r
- y2 = pymin;\r
- }\r
- x2 = (e->c) - (e->b) * y2;\r
- }\r
-\r
- if (((x1> pxmax) & (x2>pxmax)) | ((x1<pxmin)&(x2<pxmin)))\r
- {\r
- // Line completely outside clipbox\r
- //printf("\nClipLine jumping out(3), x1 = %f, pxmin = %f, pxmax = %f",x1,pxmin,pxmax);\r
- return;\r
- }\r
- if(x1 > pxmax)\r
- {\r
- x1 = pxmax;\r
- y1 = (e -> c - x1)/e -> b;\r
- }\r
- if(x1 < pxmin)\r
- {\r
- x1 = pxmin;\r
- y1 = (e -> c - x1)/e -> b;\r
- }\r
- if(x2 > pxmax)\r
- {\r
- x2 = pxmax;\r
- y2 = (e -> c - x2)/e -> b;\r
- }\r
- if(x2 < pxmin)\r
- {\r
- x2 = pxmin;\r
- y2 = (e -> c - x2)/e -> b;\r
- }\r
- }\r
- else\r
- {\r
- if ( s1!=(struct Site *)NULL\r
- && s1->coordout.y > pymin && s1->coordout.y < pymax\r
- && s1->coordout.x > pxmin && s1->coordout.x < pxmax)\r
- {\r
- x1 = s1->coordout.x;\r
- y1 = s1->coordout.y;\r
- }\r
- else\r
- {\r
- boundary1 = 1;\r
- x1 = pxmin;\r
- if (s1!=(struct Site *)NULL && s1->coord.x > pxmin)\r
- x1 = s1->coord.x;\r
- if(x1>pxmax) \r
- {\r
- //printf("\nClipped (3) x1 = %f to %f",x1,pxmin);\r
- //return;\r
- x1 = pxmax;\r
- }\r
- y1 = e -> c - e -> a * x1;\r
- }\r
-\r
- if ( s2!=(struct Site *)NULL\r
- && s2->coordout.y > pymin && s2->coordout.y < pymax\r
- && s2->coordout.x > pxmin && s2->coordout.x < pxmax)\r
- {\r
- x2 = s2->coordout.x;\r
- y2 = s2->coordout.y;\r
- }\r
- else\r
- {\r
- boundary2 = 1;\r
- x2 = pxmax;\r
- if (s2!=(struct Site *)NULL && s2->coord.x < pxmax)\r
- x2 = s2->coord.x;\r
- if(x2<pxmin)\r
- {\r
- //printf("\nClipped (4) x2 = %f to %f",x2,pxmin);\r
- //return;\r
- x2 = pxmin;\r
- }\r
- y2 = e -> c - e -> a * x2;\r
- }\r
-\r
- if (((y1> pymax) & (y2>pymax)) | ((y1<pymin)&(y2<pymin)))\r
- {\r
- //printf("\nClipLine jumping out(6), y1 = %f, pymin = %f, pymax = %f",y2,pymin,pymax);\r
- return;\r
- }\r
- if(y1 > pymax)\r
- { y1 = pymax; x1 = (e -> c - y1)/e -> a;};\r
- if(y1 < pymin)\r
- { y1 = pymin; x1 = (e -> c - y1)/e -> a;};\r
- if(y2 > pymax)\r
- { y2 = pymax; x2 = (e -> c - y2)/e -> a;};\r
- if(y2 < pymin)\r
- { y2 = pymin; x2 = (e -> c - y2)/e -> a;};\r
- };\r
-\r
- if(sqrt(((x2 - x1) * (x2 - x1)) + ((y2 - y1) * (y2 - y1))) == 0)\r
- {\r
- return;\r
- }\r
-\r
- pushpoint(ts1->sitenbr, x1, y1, boundary1);\r
- pushpoint(ts2->sitenbr, x2, y2, boundary2);\r
- pushpoint(ts1->sitenbr, x2, y2, boundary2);\r
- pushpoint(ts2->sitenbr, x1, y1, boundary1);\r
-}\r
-\r
-\r
-/* implicit parameters: nsites, sqrt_nsites, xmin, xmax, ymin, ymax,\r
-deltax, deltay (can all be estimates).\r
-Performance suffers if they are wrong; better to make nsites,\r
-deltax, and deltay too big than too small. (?) */\r
-\r
-bool VoronoiDiagramGenerator::voronoi(int triangulate)\r
-{\r
- struct Site *newsite, *bot, *top, *temp, *p;\r
- struct Site *v;\r
- struct Point newintstar;\r
- int pm;\r
- struct Halfedge *lbnd, *rbnd, *llbnd, *rrbnd, *bisector;\r
- struct Edge *e, *e2, *e3;\r
-\r
- PQinitialize();\r
- bottomsite = nextone();\r
- out_site(bottomsite);\r
- bool retval = ELinitialize();\r
-\r
- if(!retval)\r
- return false;\r
-\r
- newsite = nextone();\r
- while(1)\r
- {\r
-\r
- if(!PQempty())\r
- newintstar = PQ_min();\r
-\r
- //if the lowest site has a smaller y value than the lowest vector intersection, process the site\r
- //otherwise process the vector intersection \r
-\r
- if (newsite != (struct Site *)NULL && (PQempty() || newsite -> coord.y < newintstar.y\r
- || (newsite->coord.y == newintstar.y && newsite->coord.x < newintstar.x)))\r
- {/* new site is smallest - this is a site event*/\r
- out_site(newsite); //output the site\r
- lbnd = ELleftbnd(&(newsite->coord)); //get the first HalfEdge to the LEFT of the new site\r
- rbnd = ELright(lbnd); //get the first HalfEdge to the RIGHT of the new site\r
- bot = rightreg(lbnd); //if this halfedge has no edge, , bot = bottom site (whatever that is)\r
- e = bisect(bot, newsite); //create a new edge that bisects \r
- bisector = HEcreate(e, le); //create a new HalfEdge, setting its ELpm field to 0 \r
- ELinsert(lbnd, bisector); //insert this new bisector edge between the left and right vectors in a linked list \r
-\r
- if ((p = intersect(lbnd, bisector)) != (struct Site *) NULL) //if the new bisector intersects with the left edge, remove the left edge's vertex, and put in the new one\r
- { \r
- PQdelete(lbnd);\r
- PQinsert(lbnd, p, dist(p,newsite));\r
- };\r
- lbnd = bisector; \r
- bisector = HEcreate(e, re); //create a new HalfEdge, setting its ELpm field to 1\r
- ELinsert(lbnd, bisector); //insert the new HE to the right of the original bisector earlier in the IF stmt\r
-\r
- if ((p = intersect(bisector, rbnd)) != (struct Site *) NULL) //if this new bisector intersects with the\r
- {\r
- PQinsert(bisector, p, dist(p,newsite)); //push the HE into the ordered linked list of vertices\r
- };\r
- newsite = nextone();\r
- }\r
- else if (!PQempty()) /* intersection is smallest - this is a vector event */\r
- {\r
- lbnd = PQextractmin(); //pop the HalfEdge with the lowest vector off the ordered list of vectors \r
- llbnd = ELleft(lbnd); //get the HalfEdge to the left of the above HE\r
- rbnd = ELright(lbnd); //get the HalfEdge to the right of the above HE\r
- rrbnd = ELright(rbnd); //get the HalfEdge to the right of the HE to the right of the lowest HE \r
- bot = leftreg(lbnd); //get the Site to the left of the left HE which it bisects\r
- top = rightreg(rbnd); //get the Site to the right of the right HE which it bisects\r
-\r
- out_triple(bot, top, rightreg(lbnd)); //output the triple of sites, stating that a circle goes through them\r
-\r
- v = lbnd->vertex; //get the vertex that caused this event\r
- makevertex(v); //set the vertex number - couldn't do this earlier since we didn't know when it would be processed\r
- e2 = lbnd->ELedge;\r
- e3 = rbnd->ELedge;\r
- endpoint(lbnd->ELedge,lbnd->ELpm,v); //set the endpoint of the left HalfEdge to be this vector\r
- endpoint(rbnd->ELedge,rbnd->ELpm,v); //set the endpoint of the right HalfEdge to be this vector\r
- ELdelete(lbnd); //mark the lowest HE for deletion - can't delete yet because there might be pointers to it in Hash Map \r
- PQdelete(rbnd); //remove all vertex events to do with the right HE\r
- ELdelete(rbnd); //mark the right HE for deletion - can't delete yet because there might be pointers to it in Hash Map \r
- pm = le; //set the pm variable to zero\r
-\r
- if (bot->coord.y > top->coord.y) //if the site to the left of the event is higher than the Site\r
- { //to the right of it, then swap them and set the 'pm' variable to 1\r
- temp = bot;\r
- bot = top;\r
- top = temp;\r
- pm = re;\r
- }\r
- e = bisect(bot, top); //create an Edge (or line) that is between the two Sites. This creates\r
- //the formula of the line, and assigns a line number to it\r
- bisector = HEcreate(e, pm); //create a HE from the Edge 'e', and make it point to that edge with its ELedge field\r
- ELinsert(llbnd, bisector); //insert the new bisector to the right of the left HE\r
- endpoint(e, re-pm, v, e2, e3); //set one endpoint to the new edge to be the vector point 'v'.\r
- //If the site to the left of this bisector is higher than the right\r
- //Site, then this endpoint is put in position 0; otherwise in pos 1\r
- deref(v); //delete the vector 'v'\r
-\r
- //if left HE and the new bisector don't intersect, then delete the left HE, and reinsert it\r
- if((p = intersect(llbnd, bisector)) != (struct Site *) NULL)\r
- {\r
- PQdelete(llbnd);\r
- PQinsert(llbnd, p, dist(p,bot));\r
- };\r
-\r
- //if right HE and the new bisector don't intersect, then reinsert it\r
- if ((p = intersect(bisector, rrbnd)) != (struct Site *) NULL)\r
- {\r
- PQinsert(bisector, p, dist(p,bot));\r
- };\r
- }\r
- else break;\r
- };\r
-\r
- for(lbnd=ELright(ELleftend); lbnd != ELrightend; lbnd=ELright(lbnd))\r
- {\r
- e = lbnd -> ELedge;\r
-\r
- clip_line(e);\r
- };\r
-\r
- cleanup();\r
-\r
- return true;\r
-}\r
-\r
-\r
-int scomp(const void *p1,const void *p2)\r
-{\r
- struct Point *s1 = (Point*)p1, *s2=(Point*)p2;\r
- if(s1 -> y < s2 -> y) return(-1);\r
- if(s1 -> y > s2 -> y) return(1);\r
- if(s1 -> x < s2 -> x) return(-1);\r
- if(s1 -> x > s2 -> x) return(1);\r
- return(0);\r
-}\r
-\r
-int spcomp(const void *p1,const void *p2)\r
-{\r
- struct SourcePoint *s1 = (SourcePoint*)p1, *s2=(SourcePoint*)p2;\r
- if(s1 -> y < s2 -> y) return(-1);\r
- if(s1 -> y > s2 -> y) return(1);\r
- if(s1 -> x < s2 -> x) return(-1);\r
- if(s1 -> x > s2 -> x) return(1);\r
- return(0);\r
-}\r
-\r
-int anglecomp(const void * p1, const void * p2)\r
-{\r
- PolygonPoint * s1 = (PolygonPoint *)p1 ;\r
- PolygonPoint * s2 = (PolygonPoint *)p2 ;\r
-\r
- if (s1->angle < s2->angle) {\r
- return (-1) ;\r
- }\r
- if (s1->angle > s2->angle) {\r
- return (1) ;\r
- }\r
- return (0) ;\r
-}\r
-\r
-/* return a single in-storage site */\r
-struct Site * VoronoiDiagramGenerator::nextone()\r
-{\r
- struct Site *s;\r
- if(siteidx < nsites)\r
- {\r
- s = &sites[siteidx];\r
- siteidx += 1;\r
- return(s);\r
- }\r
- else\r
- return( (struct Site *)NULL);\r
-}\r
-\r
+++ /dev/null
-/*\r
-* The author of this software is Steven Fortune. Copyright (c) 1994 by AT&T\r
-* Bell Laboratories.\r
-* Permission to use, copy, modify, and distribute this software for any\r
-* purpose without fee is hereby granted, provided that this entire notice\r
-* is included in all copies of any software which is or includes a copy\r
-* or modification of this software and in all copies of the supporting\r
-* documentation for such software.\r
-* THIS SOFTWARE IS BEING PROVIDED "AS IS", WITHOUT ANY EXPRESS OR IMPLIED\r
-* WARRANTY. IN PARTICULAR, NEITHER THE AUTHORS NOR AT&T MAKE ANY\r
-* REPRESENTATION OR WARRANTY OF ANY KIND CONCERNING THE MERCHANTABILITY\r
-* OF THIS SOFTWARE OR ITS FITNESS FOR ANY PARTICULAR PURPOSE.\r
-*/\r
-\r
-/* \r
-* This code was originally written by Stephan Fortune in C code. I, Shane O'Sullivan, \r
-* have since modified it, encapsulating it in a C++ class and, fixing memory leaks and \r
-* adding accessors to the Voronoi Edges.\r
-* Permission to use, copy, modify, and distribute this software for any\r
-* purpose without fee is hereby granted, provided that this entire notice\r
-* is included in all copies of any software which is or includes a copy\r
-* or modification of this software and in all copies of the supporting\r
-* documentation for such software.\r
-* THIS SOFTWARE IS BEING PROVIDED "AS IS", WITHOUT ANY EXPRESS OR IMPLIED\r
-* WARRANTY. IN PARTICULAR, NEITHER THE AUTHORS NOR AT&T MAKE ANY\r
-* REPRESENTATION OR WARRANTY OF ANY KIND CONCERNING THE MERCHANTABILITY\r
-* OF THIS SOFTWARE OR ITS FITNESS FOR ANY PARTICULAR PURPOSE.\r
-*/\r
-\r
-#ifndef VORONOI_DIAGRAM_GENERATOR\r
-#define VORONOI_DIAGRAM_GENERATOR\r
-\r
-#include <math.h>\r
-#include <stdlib.h>\r
-#include <string.h>\r
-\r
-\r
-#ifndef NULL\r
-#define NULL 0\r
-#endif\r
-#define DELETED -2\r
-\r
-#define le 0\r
-#define re 1\r
-\r
-struct SourcePoint\r
-{\r
- int id;\r
- double weight;\r
- double x;\r
- double y;\r
-};\r
-\r
-struct Freenode \r
-{\r
- struct Freenode *nextfree;\r
-};\r
-\r
-struct FreeNodeArrayList\r
-{\r
- struct Freenode* memory;\r
- struct FreeNodeArrayList* next;\r
-\r
-};\r
-\r
-struct Freelist \r
-{\r
- struct Freenode *head;\r
- int nodesize;\r
-};\r
-\r
-struct Point \r
-{\r
- float x,y;\r
-};\r
-\r
-struct PolygonPoint\r
-{\r
- struct Point coord;\r
- double angle;\r
- int boundary;\r
-};\r
-\r
-struct Polygon\r
-{\r
- int sitenbr;\r
- struct Point coord;\r
- int numpoints;\r
- struct PolygonPoint * pointlist;\r
- int boundary;\r
-};\r
-\r
-\r
-// structure used both for sites and for vertices \r
-struct Site \r
-{\r
- struct Point coord;\r
- struct Point coordout;\r
- double weight;\r
- int sitenbr;\r
- int refcnt;\r
-};\r
-\r
-\r
-\r
-struct Edge \r
-{\r
- float a,b,c;\r
- struct Site *ep[2];\r
- struct Site *reg[2];\r
- int edgenbr;\r
-\r
-};\r
-\r
-struct GraphEdge\r
-{\r
- float x1,y1,x2,y2;\r
- struct GraphEdge* next;\r
-};\r
-\r
-\r
-\r
-\r
-struct Halfedge \r
-{\r
- struct Halfedge *ELleft, *ELright;\r
- struct Edge *ELedge;\r
- int ELrefcnt;\r
- char ELpm;\r
- struct Site *vertex;\r
- float ystar;\r
- struct Halfedge *PQnext;\r
-};\r
-\r
-\r
-\r
-\r
-class VoronoiDiagramGenerator\r
-{\r
-public:\r
- VoronoiDiagramGenerator();\r
- ~VoronoiDiagramGenerator();\r
-\r
- bool generateVoronoi(struct SourcePoint* srcPoints, int numPoints, float minX, float maxX, float minY, float maxY, float minDist=0);\r
- void getSitePoints(int sitenbr, int* numpoints, PolygonPoint** pS);\r
-\r
- void resetIterator()\r
- {\r
- iteratorEdges = allEdges;\r
- }\r
-\r
- bool getNext(float& x1, float& y1, float& x2, float& y2)\r
- {\r
- if(iteratorEdges == 0)\r
- return false;\r
- \r
- x1 = iteratorEdges->x1;\r
- x2 = iteratorEdges->x2;\r
- y1 = iteratorEdges->y1;\r
- y2 = iteratorEdges->y2;\r
-\r
- iteratorEdges = iteratorEdges->next;\r
-\r
- return true;\r
- }\r
-\r
-\r
-private:\r
- void cleanup();\r
- void cleanupEdges();\r
- char *getfree(struct Freelist *fl); \r
- struct Halfedge *PQfind();\r
- int PQempty();\r
-\r
-\r
- \r
- struct Halfedge **ELhash;\r
- struct Halfedge *HEcreate(), *ELleft(), *ELright(), *ELleftbnd();\r
- struct Halfedge *HEcreate(struct Edge *e,int pm);\r
-\r
-\r
- struct Point PQ_min();\r
- struct Halfedge *PQextractmin(); \r
- void freeinit(struct Freelist *fl,int size);\r
- void makefree(struct Freenode *curr,struct Freelist *fl);\r
- void geominit();\r
- void plotinit();\r
- bool voronoi(int triangulate);\r
- void ref(struct Site *v);\r
- void deref(struct Site *v);\r
- void endpoint(struct Edge *e,int lr,struct Site * s);\r
- void endpoint(struct Edge *e1,int lr,struct Site * s, struct Edge *e2, struct Edge *e3);\r
-\r
- void ELdelete(struct Halfedge *he);\r
- struct Halfedge *ELleftbnd(struct Point *p);\r
- struct Halfedge *ELright(struct Halfedge *he);\r
- void makevertex(struct Site *v);\r
- void out_triple(struct Site *s1, struct Site *s2,struct Site * s3);\r
-\r
- void PQinsert(struct Halfedge *he,struct Site * v, float offset);\r
- void PQdelete(struct Halfedge *he);\r
- bool ELinitialize();\r
- void ELinsert(struct Halfedge *lb, struct Halfedge *newHe);\r
- struct Halfedge * ELgethash(int b);\r
- struct Halfedge *ELleft(struct Halfedge *he);\r
- struct Site *leftreg(struct Halfedge *he);\r
- void out_site(struct Site *s);\r
- bool PQinitialize();\r
- int PQbucket(struct Halfedge *he);\r
- void pushpoint(int sitenbr, double x, double y, int boundary);\r
- int ccw( Point p0, Point p1, Point p2 );\r
- void clip_line(struct Edge *e);\r
- char *myalloc(unsigned n);\r
- int right_of(struct Halfedge *el,struct Point *p);\r
-\r
- struct Site *rightreg(struct Halfedge *he);\r
- struct Edge *bisect(struct Site *s1,struct Site *s2);\r
- float dist(struct Site *s,struct Site *t);\r
- struct Site *intersect(struct Halfedge *el1, struct Halfedge *el2, struct Point *p=0);\r
-\r
- void out_bisector(struct Edge *e);\r
- void out_ep(struct Edge *e);\r
- void out_vertex(struct Site *v);\r
- struct Site *nextone();\r
-\r
- void pushGraphEdge(float x1, float y1, float x2, float y2);\r
-\r
- void openpl();\r
- void line(float x1, float y1, float x2, float y2);\r
- void circle(float x, float y, float radius);\r
- void range(float minX, float minY, float maxX, float maxY);\r
-\r
-\r
- struct Freelist hfl;\r
- struct Halfedge *ELleftend, *ELrightend;\r
- int ELhashsize;\r
-\r
- int triangulate, sorted, plot, debug;\r
- float xmin, xmax, ymin, ymax, deltax, deltay;\r
-\r
- struct Site *sites;\r
- struct Polygon *polygons;\r
- struct Point corners[4];\r
- int nsites;\r
- int siteidx;\r
- int sqrt_nsites;\r
- int nvertices;\r
- struct Freelist sfl;\r
- struct Site *bottomsite;\r
-\r
- int nedges;\r
- struct Freelist efl;\r
- int PQhashsize;\r
- struct Halfedge *PQhash;\r
- int PQcount;\r
- int PQmin;\r
-\r
- int ntry, totalsearch;\r
- float pxmin, pxmax, pymin, pymax, cradius;\r
- int total_alloc;\r
-\r
- float borderMinX, borderMaxX, borderMinY, borderMaxY;\r
-\r
- FreeNodeArrayList* allMemoryList;\r
- FreeNodeArrayList* currentMemoryBlock;\r
-\r
- GraphEdge* allEdges;\r
- GraphEdge* iteratorEdges;\r
-\r
- float minDistanceBetweenSites;\r
- \r
-};\r
-\r
-int scomp(const void *p1,const void *p2);\r
-int spcomp(const void *p1,const void *p2);\r
-int anglecomp(const void * p1, const void * p2);\r
-\r
-\r
-#endif\r
-\r
-\r
+++ /dev/null
-/*\r
-* The author of this software is Shane O'Sullivan. \r
-* Permission to use, copy, modify, and distribute this software for any\r
-* purpose without fee is hereby granted, provided that this entire notice\r
-* is included in all copies of any software which is or includes a copy\r
-* or modification of this software and in all copies of the supporting\r
-* documentation for such software.\r
-* THIS SOFTWARE IS BEING PROVIDED "AS IS", WITHOUT ANY EXPRESS OR IMPLIED\r
-* WARRANTY. IN PARTICULAR, NEITHER THE AUTHORS NOR AT&T MAKE ANY\r
-* REPRESENTATION OR WARRANTY OF ANY KIND CONCERNING THE MERCHANTABILITY\r
-* OF THIS SOFTWARE OR ITS FITNESS FOR ANY PARTICULAR PURPOSE.\r
-*/\r
-\r
-\r
-#\r
-#include <stdio.h>\r
-#include <search.h>\r
-#include <malloc.h>\r
-#include "VoronoiDiagramGenerator.h"\r
-\r
-\r
-\r
-int main(int argc, char **argv) \r
-{ \r
- double xmin, xmax, ymin, ymax;\r
- scanf("%lf %lf %lf %lf", &xmin, &xmax, &ymin, &ymax) ;\r
-\r
- SourcePoint * sites;\r
- long nsites;\r
-\r
- nsites = 0;\r
- sites = (SourcePoint *) malloc(4000 * sizeof(SourcePoint));\r
- while (scanf("%d %lf %lf %lf", &sites[nsites].id, &sites[nsites].weight, &sites[nsites].x, &sites[nsites].y) != EOF)\r
- {\r
- nsites++;\r
- if (nsites % 4000 == 0) {\r
- sites = (SourcePoint *)realloc(sites,(nsites+4000)*sizeof(SourcePoint));\r
- }\r
- }\r
-\r
- VoronoiDiagramGenerator * pvdg;\r
- pvdg = new VoronoiDiagramGenerator();\r
- pvdg->generateVoronoi(sites, nsites, xmin, xmax, ymin, ymax, 0);\r
-\r
-// printf("sites %ld\n-------------------------------\n", nsites);\r
- PolygonPoint* pSitePoints;\r
- int numpoints, i, j;\r
- for(i = 0; i < nsites; i++)\r
- {\r
- pvdg->getSitePoints(i, &numpoints, &pSitePoints);\r
- if (numpoints == 0)\r
- {\r
- printf("-- no points for %d\n", i);\r
- }\r
- else\r
- {\r
-\r
-\r
- printf("update temp_child_4076440_0 set resultgeom = st_setsrid('POLYGON((");\r
- for(j = 0; j < numpoints; j++)\r
- {\r
- printf("%.15lf %.15lf,", pSitePoints[j].coord.x, pSitePoints[j].coord.y, (pSitePoints[j].angle/M_PI)*180);\r
- }\r
- printf("%.15lf %.15lf", pSitePoints[0].coord.x, pSitePoints[0].coord.y, (pSitePoints[j].angle/M_PI)*180);\r
- printf("))'::geometry,4326) where id = %d;\n", sites[i].id);\r
-\r
- }\r
- }\r
-\r
- float x1,y1,x2,y2;\r
-// printf("sites %ld\n-------------------------------\n", nsites);\r
- pvdg->resetIterator();\r
- while(pvdg->getNext(x1,y1,x2,y2))\r
- {\r
- printf("(%f %f,%f %f)\n",x1,y1,x2, y2);\r
- \r
- }\r
-\r
- delete pvdg;\r
- free(sites);\r
-\r
- return 0;\r
-}\r
-\r
-\r
-\r
-Subproject commit 93b73e5f5c3b20e80027ecf272f553d26f49f2e8
+Subproject commit cb7655a4ff7df7c93eb444e36035701b92b2ec35
--- /dev/null
+[
+{ "tags" : {
+ "place" : {
+ "sea" : [2, 0],
+ "continent" : [2, 0],
+ "country" : [4, 0],
+ "state" : [8, 0],
+ "province" : [8, 0],
+ "region" : [18, 0],
+ "county" : 12,
+ "city" : 16,
+ "island" : [17, 0],
+ "town" : [18, 16],
+ "village" : [19, 16],
+ "municipality" : [19, 16],
+ "district" : [19, 16],
+ "borough" : [19, 18],
+ "hamlet" : 20,
+ "suburb" : 20,
+ "croft" : 20,
+ "subdivision" : 20,
+ "isolated_dwelling" : 20,
+ "allotments" : 20,
+ "farm" : [20, 0],
+ "locality" : [20, 0],
+ "islet" : [20, 0],
+ "mountain_pass" : [20, 0],
+ "neighbourhood" : 22,
+ "quarter" : 22,
+ "city_block" : 22,
+ "houses" : [28, 0]
+ },
+ "boundary" : {
+ "administrative2" : 4,
+ "administrative3" : 6,
+ "administrative4" : 8,
+ "administrative5" : 10,
+ "administrative6" : 12,
+ "administrative7" : 14,
+ "administrative8" : 16,
+ "administrative9" : 18,
+ "administrative10" : 20,
+ "administrative11" : 22,
+ "administrative12" : 24
+ },
+ "landuse" : {
+ "residential" : 22,
+ "farm" : 22,
+ "farmyard" : 22,
+ "industrial" : 22,
+ "commercial" : 22,
+ "allotments" : 22,
+ "retail" : 22,
+ "" : [22, 0]
+ },
+ "leisure" : {
+ "park" : [24, 0]
+ },
+ "natural" : {
+ "peak" : [18, 0],
+ "volcano" : [18, 0],
+ "mountain_range" : [18, 0],
+ "sea" : [4, 0]
+ },
+ "waterway" : {
+ "river" : [19, 0],
+ "stream" : [22, 0],
+ "ditch" : [22, 0],
+ "drain" : [22, 0],
+ "" : [20, 0]
+ },
+ "highway" : {
+ "" : 26,
+ "service" : 27,
+ "cycleway" : 27,
+ "path" : 27,
+ "footway" : 27,
+ "steps" : 27,
+ "bridleway" : 27,
+ "motorway_link" : 27,
+ "primary_link" : 27,
+ "trunk_link" : 27,
+ "secondary_link" : 27,
+ "tertiary_link" : 27
+ },
+ "mountain_pass" : {
+ "" : [20, 0]
+ },
+ "historic" : {
+ "neighbourhood" : [30, 0]
+ }
+ }
+},
+{ "countries" : [ "de" ],
+ "tags" : {
+ "place" : {
+ "county" : [12, 0]
+ },
+ "boundary" : {
+ "administrative5" : [10, 0]
+ }
+ }
+},
+{ "countries" : [ "be" ],
+ "tags" : {
+ "boundary" : {
+ "administrative7" : [14, 0]
+ }
+ }
+}
+]
+
// General settings
@define('CONST_Debug', false);
-@define('CONST_Database_DSN', 'pgsql://@/nominatim'); // <driver>://<username>:<password>@<host>:<port>/<database>
+@define('CONST_Database_DSN', 'pgsql:dbname=nominatim'); // or add ;host=...;port=...;user=...;password=...
@define('CONST_Database_Web_User', 'www-data');
@define('CONST_Database_Module_Path', CONST_InstallPath.'/module');
@define('CONST_Max_Word_Frequency', '50000');
// term. Spaces are kept but collapsed to one standard space.
@define('CONST_Term_Normalization_Rules', ":: NFD (); [[:Nonspacing Mark:] [:Cf:]] >; :: lower (); [[:Punctuation:][:Space:]]+ > ' '; :: NFC ();");
-// Set to false to avoid importing extra postcodes for the US.
-@define('CONST_Use_Extra_US_Postcodes', true);
/* Set to true after importing Tiger house number data for the US.
Note: The tables must already exist or queries will throw errors.
After changing this setting run ./utils/setup --create-functions
@define('CONST_Pyosmium_Binary', '@PYOSMIUM_PATH@');
@define('CONST_Tiger_Data_Path', CONST_ExtraDataPath.'/tiger');
@define('CONST_Wikipedia_Data_Path', CONST_ExtraDataPath);
+@define('CONST_Phrase_Config', CONST_BasePath.'/settings/phrase_settings.php');
+@define('CONST_Address_Level_Config', CONST_BasePath.'/settings/address-levels.json');
+@define('CONST_Import_Style', CONST_BasePath.'/settings/import-full.style');
// osm2pgsql settings
@define('CONST_Osm2pgsql_Flatnode_File', null);
--- /dev/null
+[
+{
+ "keys" : [ "" ],
+ "values" : {
+ "no" : "skip"
+ }
+},
+{
+ "keys" : ["name:prefix", "name:suffix", "name:botanical", "*wikidata"],
+ "values" : {
+ "" : "skip"
+ }
+},
+{
+ "keys" : ["ref", "int_ref", "nat_ref", "reg_ref", "loc_ref", "old_ref",
+ "iata", "icao", "pcode"],
+ "values" : {
+ "" : "ref"
+ }
+},
+{
+ "keys" : ["name", "name:*", "int_name", "int_name:*", "nat_name", "nat_name:*",
+ "reg_name", "reg_name:*", "loc_name", "loc_name:*",
+ "old_name", "old_name:*", "alt_name", "alt_name:*", "alt_name_*",
+ "official_name", "official_name:*", "place_name", "place_name:*",
+ "short_name", "short_name:*", "brand"],
+ "values" : {
+ "" : "name"
+ }
+},
+{
+ "keys" : ["landuse"],
+ "values" : {
+ "cemetry" : "skip",
+ "" : "fallback,with_name"
+ }
+},
+{
+ "keys" : ["boundary"],
+ "values" : {
+ "administrative" : "main"
+ }
+},
+{
+ "keys" : ["place"],
+ "values" : {
+ "" : "main"
+ }
+},
+{
+ "keys" : ["addr:housename"],
+ "values" : {
+ "" : "name,house"
+ }
+},
+{
+ "keys" : ["addr:housenumber", "addr:conscriptionnumber", "addr:streetnumber"],
+ "values" : {
+ "" : "address,house"
+ }
+},
+{
+ "keys" : ["addr:interpolation"],
+ "values" : {
+ "" : "interpolation,address"
+ }
+},
+{
+ "keys" : ["postal_code", "postcode", "addr:postcode",
+ "tiger:zip_left", "tiger:zip_right"],
+ "values" : {
+ "" : "postcode,fallback"
+ }
+},
+{
+ "keys" : ["country_code", "ISO3166-1", "is_in:country_code", "is_in:country",
+ "addr:country", "addr:country_code"],
+ "values" : {
+ "" : "country"
+ }
+},
+{
+ "keys" : ["addr:*", "is_in:*", "tiger:county"],
+ "values" : {
+ "" : "address"
+ }
+},
+{
+ "keys" : ["highway"],
+ "values" : {
+ "motorway" : "main",
+ "trunk" : "main",
+ "primary" : "main",
+ "secondary" : "main",
+ "tertiary" : "main",
+ "unclassified" : "main",
+ "residential" : "main",
+ "living_street" : "main",
+ "pedestrian" : "main",
+ "road" : "main",
+ "service" : "main,with_name",
+ "cycleway" : "main,with_name",
+ "path" : "main,with_name",
+ "footway" : "main,with_name",
+ "steps" : "main,with_name",
+ "bridleway" : "main,with_name",
+ "track" : "main,with_name",
+ "byway": "main,with_name",
+ "motorway_link" : "main,with_name",
+ "trunk_link" : "main,with_name",
+ "primary_link" : "main,with_name",
+ "secondary_link" : "main,with_name",
+ "tertiary_link" : "main,with_name"
+ }
+}
+]
--- /dev/null
+[
+{
+ "keys" : ["name:prefix", "name:suffix", "name:botanical", "*wikidata"],
+ "values" : {
+ "" : "skip"
+ }
+},
+{
+ "keys" : ["ref", "int_ref", "nat_ref", "reg_ref", "loc_ref", "old_ref",
+ "iata", "icao", "pcode"],
+ "values" : {
+ "" : "ref"
+ }
+},
+{
+ "keys" : ["name", "name:*", "int_name", "int_name:*", "nat_name", "nat_name:*",
+ "reg_name", "reg_name:*", "loc_name", "loc_name:*",
+ "old_name", "old_name:*", "alt_name", "alt_name:*", "alt_name_*",
+ "official_name", "official_name:*", "place_name", "place_name:*",
+ "short_name", "short_name:*", "brand"],
+ "values" : {
+ "" : "name"
+ }
+},
+{
+ "keys" : ["landuse"],
+ "values" : {
+ "cemetry" : "skip",
+ "" : "fallback,with_name"
+ }
+},
+{
+ "keys" : ["boundary"],
+ "values" : {
+ "administrative" : "main"
+ }
+},
+{
+ "keys" : ["place"],
+ "values" : {
+ "" : "main"
+ }
+},
+{
+ "keys" : ["country_code", "ISO3166-1", "is_in:country_code", "is_in:country",
+ "addr:country", "addr:country_code"],
+ "values" : {
+ "" : "country"
+ }
+},
+{
+ "keys" : ["addr:*", "is_in:*", "tiger:county"],
+ "values" : {
+ "" : "address"
+ }
+},
+{
+ "keys" : ["postal_code", "postcode", "addr:postcode",
+ "tiger:zip_left", "tiger:zip_right"],
+ "values" : {
+ "" : "postcode"
+ }
+},
+{
+ "keys" : ["capital"],
+ "values" : {
+ "" : "extra"
+ }
+}
+]
--- /dev/null
+[
+{
+ "keys" : ["*source"],
+ "values" : {
+ "" : "skip"
+ }
+},
+{
+ "keys" : ["name:prefix", "name:suffix", "name:botanical", "wikidata",
+ "*:wikidata"],
+ "values" : {
+ "" : "extra"
+ }
+},
+{
+ "keys" : ["ref", "int_ref", "nat_ref", "reg_ref", "loc_ref", "old_ref",
+ "iata", "icao", "pcode", "pcode:*"],
+ "values" : {
+ "" : "ref"
+ }
+},
+{
+ "keys" : ["name", "name:*", "int_name", "int_name:*", "nat_name", "nat_name:*",
+ "reg_name", "reg_name:*", "loc_name", "loc_name:*",
+ "old_name", "old_name:*", "alt_name", "alt_name:*", "alt_name_*",
+ "official_name", "official_name:*", "place_name", "place_name:*",
+ "short_name", "short_name:*", "brand"],
+ "values" : {
+ "" : "name"
+ }
+},
+{
+ "keys" : ["addr:housename"],
+ "values" : {
+ "" : "name,house"
+ }
+},
+{
+ "keys" : ["emergency"],
+ "values" : {
+ "fire_hydrant" : "skip",
+ "yes" : "skip",
+ "no" : "skip",
+ "" : "main"
+ }
+},
+{
+ "keys" : ["historic", "military"],
+ "values" : {
+ "no" : "skip",
+ "yes" : "skip",
+ "" : "main"
+ }
+},
+{
+ "keys" : ["natural"],
+ "values" : {
+ "yes" : "skip",
+ "no" : "skip",
+ "coastline" : "skip",
+ "" : "main,with_name"
+ }
+},
+{
+ "keys" : ["landuse"],
+ "values" : {
+ "cemetry" : "main,with_name",
+ "" : "main,fallback,with_name"
+ }
+},
+{
+ "keys" : ["highway"],
+ "values" : {
+ "no" : "skip",
+ "turning_circle" : "skip",
+ "mini_roundabout" : "skip",
+ "noexit" : "skip",
+ "crossing" : "skip",
+ "traffic_signals" : "main,with_name",
+ "service" : "main,with_name",
+ "cycleway" : "main,with_name",
+ "path" : "main,with_name",
+ "footway" : "main,with_name",
+ "steps" : "main,with_name",
+ "bridleway" : "main,with_name",
+ "track" : "main,with_name",
+ "byway": "main,with_name",
+ "motorway_link" : "main,with_name",
+ "trunk_link" : "main,with_name",
+ "primary_link" : "main,with_name",
+ "secondary_link" : "main,with_name",
+ "tertiary_link" : "main,with_name",
+ "" : "main"
+ }
+},
+{
+ "keys" : ["railway"],
+ "values" : {
+ "level_crossing" : "skip",
+ "no" : "skip",
+ "rail" : "extra",
+ "" : "main,with_name"
+ }
+},
+{
+ "keys" : ["man_made"],
+ "values" : {
+ "survey_point" : "skip",
+ "cutline" : "skip",
+ "" : "main"
+ }
+},
+{
+ "keys" : ["aerialway"],
+ "values" : {
+ "pylon" : "skip",
+ "no" : "skip",
+ "" : "main"
+ }
+},
+{
+ "keys" : ["boundary"],
+ "values" : {
+ "" : "main,with_name"
+ }
+},
+{
+ "keys" : ["amenity"],
+ "values" : {
+ "restaurant" : "main,operator",
+ "fuel" : "main,operator"
+ }
+},
+{
+ "keys" : ["aeroway", "amenity", "club", "craft", "leisure",
+ "office", "mountain_pass"],
+ "values" : {
+ "no" : "skip",
+ "" : "main"
+ }
+},
+{
+ "keys" : ["shop"],
+ "values" : {
+ "no" : "skip",
+ "" : "main,operator"
+ }
+},
+{
+ "keys" : ["tourism"],
+ "values" : {
+ "yes" : "skip",
+ "no" : "skip",
+ "" : "main,operator"
+ }
+},
+{
+ "keys" : ["bridge", "tunnel"],
+ "values" : {
+ "" : "main,with_name_key"
+ }
+},
+{
+ "keys" : ["waterway"],
+ "values" : {
+ "riverbank" : "skip",
+ "" : "main,with_name"
+ }
+},
+{
+ "keys" : ["place"],
+ "values" : {
+ "" : "main"
+ }
+},
+{
+ "keys" : ["junction"],
+ "values" : {
+ "" : "main,fallback,with_name"
+ }
+},
+{
+ "keys" : ["postal_code", "postcode", "addr:postcode",
+ "tiger:zip_left", "tiger:zip_right"],
+ "values" : {
+ "" : "postcode,fallback"
+ }
+},
+{
+ "keys" : ["country_code", "ISO3166-1", "is_in:country_code", "is_in:country",
+ "addr:country", "addr:country_code"],
+ "values" : {
+ "" : "country"
+ }
+},
+{
+ "keys" : ["addr:housenumber", "addr:conscriptionnumber", "addr:streetnumber"],
+ "values" : {
+ "" : "address,house"
+ }
+},
+{
+ "keys" : ["addr:interpolation"],
+ "values" : {
+ "" : "interpolation,address"
+ }
+},
+{
+ "keys" : ["addr:*", "is_in:*", "tiger:county", "is_in"],
+ "values" : {
+ "" : "address"
+ }
+},
+{
+ "keys" : ["building"],
+ "values" : {
+ "no" : "skip",
+ "" : "main,fallback,with_name"
+ }
+},
+{
+ "keys" : ["note", "note:*", "source", "source*", "attribution",
+ "comment", "fixme", "FIXME", "created_by", "tiger:*", "NHD:*",
+ "nhd:*", "gnis:*", "geobase:*", "KSJ2:*", "yh:*",
+ "osak:*", "naptan:*", "CLC:*", "import", "it:fvg:*",
+ "type", "lacounty:*", "ref:ruian:*", "building:ruian:type",
+ "ref:linz:*"],
+ "values" : {
+ "" : "skip"
+ }
+},
+{
+ "keys" : [""],
+ "values" : {
+ "" : "extra"
+ }
+}
+]
--- /dev/null
+[
+{
+ "keys" : ["*source"],
+ "values" : {
+ "" : "skip"
+ }
+},
+{
+ "keys" : ["name:prefix", "name:suffix", "name:botanical", "wikidata",
+ "*:wikidata"],
+ "values" : {
+ "" : "extra"
+ }
+},
+{
+ "keys" : ["ref", "int_ref", "nat_ref", "reg_ref", "loc_ref", "old_ref",
+ "iata", "icao", "pcode", "pcode:*"],
+ "values" : {
+ "" : "ref"
+ }
+},
+{
+ "keys" : ["name", "name:*", "int_name", "int_name:*", "nat_name", "nat_name:*",
+ "reg_name", "reg_name:*", "loc_name", "loc_name:*",
+ "old_name", "old_name:*", "alt_name", "alt_name:*", "alt_name_*",
+ "official_name", "official_name:*", "place_name", "place_name:*",
+ "short_name", "short_name:*", "brand"],
+ "values" : {
+ "" : "name"
+ }
+},
+{
+ "keys" : ["addr:housename"],
+ "values" : {
+ "" : "name,house"
+ }
+},
+{
+ "keys" : ["emergency"],
+ "values" : {
+ "fire_hydrant" : "skip",
+ "yes" : "skip",
+ "no" : "skip",
+ "" : "main"
+ }
+},
+{
+ "keys" : ["historic", "military"],
+ "values" : {
+ "no" : "skip",
+ "yes" : "skip",
+ "" : "main"
+ }
+},
+{
+ "keys" : ["natural"],
+ "values" : {
+ "yes" : "skip",
+ "no" : "skip",
+ "coastline" : "skip",
+ "" : "main,with_name"
+ }
+},
+{
+ "keys" : ["landuse"],
+ "values" : {
+ "cemetry" : "main,with_name",
+ "" : "main,fallback,with_name"
+ }
+},
+{
+ "keys" : ["highway"],
+ "values" : {
+ "no" : "skip",
+ "turning_circle" : "skip",
+ "mini_roundabout" : "skip",
+ "noexit" : "skip",
+ "crossing" : "skip",
+ "traffic_signals" : "main,with_name",
+ "service" : "main,with_name",
+ "cycleway" : "main,with_name",
+ "path" : "main,with_name",
+ "footway" : "main,with_name",
+ "steps" : "main,with_name",
+ "bridleway" : "main,with_name",
+ "track" : "main,with_name",
+ "byway": "main,with_name",
+ "motorway_link" : "main,with_name",
+ "trunk_link" : "main,with_name",
+ "primary_link" : "main,with_name",
+ "secondary_link" : "main,with_name",
+ "tertiary_link" : "main,with_name",
+ "" : "main"
+ }
+},
+{
+ "keys" : ["railway"],
+ "values" : {
+ "level_crossing" : "skip",
+ "no" : "skip",
+ "rail" : "skip",
+ "" : "main,with_name"
+ }
+},
+{
+ "keys" : ["man_made"],
+ "values" : {
+ "survey_point" : "skip",
+ "cutline" : "skip",
+ "" : "main"
+ }
+},
+{
+ "keys" : ["aerialway"],
+ "values" : {
+ "pylon" : "skip",
+ "no" : "skip",
+ "" : "main"
+ }
+},
+{
+ "keys" : ["boundary"],
+ "values" : {
+ "" : "main,with_name"
+ }
+},
+{
+ "keys" : ["amenity"],
+ "values" : {
+ "restaurant" : "main,operator",
+ "fuel" : "main,operator"
+ }
+},
+{
+ "keys" : ["aeroway", "amenity", "club", "craft", "leisure",
+ "office", "mountain_pass"],
+ "values" : {
+ "no" : "skip",
+ "" : "main"
+ }
+},
+{
+ "keys" : ["shop"],
+ "values" : {
+ "no" : "skip",
+ "" : "main,operator"
+ }
+},
+{
+ "keys" : ["tourism"],
+ "values" : {
+ "yes" : "skip",
+ "no" : "skip",
+ "" : "main,operator"
+ }
+},
+{
+ "keys" : ["bridge", "tunnel"],
+ "values" : {
+ "" : "main,with_name_key"
+ }
+},
+{
+ "keys" : ["waterway"],
+ "values" : {
+ "riverbank" : "skip",
+ "" : "main,with_name"
+ }
+},
+{
+ "keys" : ["place"],
+ "values" : {
+ "" : "main"
+ }
+},
+{
+ "keys" : ["junction"],
+ "values" : {
+ "" : "main,fallback,with_name"
+ }
+},
+{
+ "keys" : ["postal_code", "postcode", "addr:postcode",
+ "tiger:zip_left", "tiger:zip_right"],
+ "values" : {
+ "" : "postcode,fallback"
+ }
+},
+{
+ "keys" : ["country_code", "ISO3166-1", "is_in:country_code", "is_in:country",
+ "addr:country", "addr:country_code"],
+ "values" : {
+ "" : "country"
+ }
+},
+{
+ "keys" : ["addr:housenumber", "addr:conscriptionnumber", "addr:streetnumber"],
+ "values" : {
+ "" : "address,house"
+ }
+},
+{
+ "keys" : ["addr:interpolation"],
+ "values" : {
+ "" : "interpolation,address"
+ }
+},
+{
+ "keys" : ["addr:*", "is_in:*", "tiger:county", "is_in"],
+ "values" : {
+ "" : "address"
+ }
+},
+{
+ "keys" : ["building"],
+ "values" : {
+ "no" : "skip",
+ "" : "main,fallback,with_name"
+ }
+},
+{
+ "keys" : ["tracktype", "traffic_calming", "service", "cuisine", "capital",
+ "dispensing", "religion", "denomination", "sport",
+ "internet_access", "lanes", "surface", "smoothness", "width",
+ "est_width", "incline", "opening_hours", "collection_times",
+ "service_times", "disused", "wheelchair", "sac_scale",
+ "trail_visibility", "mtb:scale", "mtb:description", "wood",
+ "drive_through", "drive_in", "access", "vehicle", "bicyle",
+ "foot", "goods", "hgv", "motor_vehicle", "motor_car", "oneway",
+ "date_on", "date_off", "day_on", "day_off", "hour_on", "hour_off",
+ "maxweight", "maxheight", "maxspeed", "fee", "toll", "charge",
+ "population", "description", "image", "attribution", "fax",
+ "email", "url", "website", "phone", "real_ale", "smoking",
+ "food", "camera", "brewery", "locality", "wikipedia",
+ "wikipedia:*", "access:*", "contact:*", "drink:*", "toll:*"],
+ "values" : {
+ "" : "extra"
+ }
+}
+]
--- /dev/null
+[
+{
+ "keys" : ["name:prefix", "name:suffix", "name:botanical", "*wikidata"],
+ "values" : {
+ "" : "skip"
+ }
+},
+{
+ "keys" : ["ref", "int_ref", "nat_ref", "reg_ref", "loc_ref", "old_ref",
+ "iata", "icao", "pcode"],
+ "values" : {
+ "" : "ref"
+ }
+},
+{
+ "keys" : ["name", "name:*", "int_name", "int_name:*", "nat_name", "nat_name:*",
+ "reg_name", "reg_name:*", "loc_name", "loc_name:*",
+ "old_name", "old_name:*", "alt_name", "alt_name:*", "alt_name_*",
+ "official_name", "official_name:*", "place_name", "place_name:*",
+ "short_name", "short_name:*", "brand"],
+ "values" : {
+ "" : "name"
+ }
+},
+{
+ "keys" : ["landuse"],
+ "values" : {
+ "cemetry" : "skip",
+ "" : "fallback,with_name"
+ }
+},
+{
+ "keys" : ["boundary"],
+ "values" : {
+ "administrative" : "main"
+ }
+},
+{
+ "keys" : ["place"],
+ "values" : {
+ "" : "main"
+ }
+},
+{
+ "keys" : ["country_code", "ISO3166-1", "is_in:country_code", "is_in:country",
+ "addr:country", "addr:country_code"],
+ "values" : {
+ "" : "country"
+ }
+},
+{
+ "keys" : ["addr:*", "is_in:*", "tiger:county"],
+ "values" : {
+ "" : "address"
+ }
+},
+{
+ "keys" : ["highway"],
+ "values" : {
+ "motorway" : "main",
+ "trunk" : "main",
+ "primary" : "main",
+ "secondary" : "main",
+ "tertiary" : "main",
+ "unclassified" : "main",
+ "residential" : "main",
+ "living_street" : "main",
+ "pedestrian" : "main",
+ "road" : "main",
+ "service" : "main,with_name",
+ "cycleway" : "main,with_name",
+ "path" : "main,with_name",
+ "footway" : "main,with_name",
+ "steps" : "main,with_name",
+ "bridleway" : "main,with_name",
+ "track" : "main,with_name",
+ "byway": "main,with_name",
+ "motorway_link" : "main,with_name",
+ "trunk_link" : "main,with_name",
+ "primary_link" : "main,with_name",
+ "secondary_link" : "main,with_name",
+ "tertiary_link" : "main,with_name"
+ }
+}
+]
+++ /dev/null
-<?php
-
-echo "ERROR: Scripts must be run from build directory.\n";
-exit;
+++ /dev/null
--- Splits the line at the given point and returns the two parts
--- in a multilinestring.
-CREATE OR REPLACE FUNCTION split_line_on_node(line GEOMETRY, point GEOMETRY)
-RETURNS GEOMETRY
- AS $$
-BEGIN
- RETURN ST_Split(ST_Snap(line, point, 0.0005), point);
-END;
-$$
-LANGUAGE plpgsql;
-
-
-CREATE OR REPLACE FUNCTION geometry_sector(partition INTEGER, place geometry) RETURNS INTEGER
- AS $$
-DECLARE
- NEWgeometry geometry;
-BEGIN
--- RAISE WARNING '%',place;
- NEWgeometry := ST_PointOnSurface(place);
- RETURN (partition*1000000) + (500-ST_X(NEWgeometry)::integer)*1000 + (500-ST_Y(NEWgeometry)::integer);
-END;
-$$
-LANGUAGE plpgsql IMMUTABLE;
-
-CREATE OR REPLACE FUNCTION transliteration(text) RETURNS text
- AS '{modulepath}/nominatim.so', 'transliteration'
-LANGUAGE c IMMUTABLE STRICT;
-
-CREATE OR REPLACE FUNCTION gettokenstring(text) RETURNS text
- AS '{modulepath}/nominatim.so', 'gettokenstring'
-LANGUAGE c IMMUTABLE STRICT;
-
-CREATE OR REPLACE FUNCTION make_standard_name(name TEXT) RETURNS TEXT
- AS $$
-DECLARE
- o TEXT;
-BEGIN
- o := public.gettokenstring(public.transliteration(name));
- RETURN trim(substr(o,1,length(o)));
-END;
-$$
-LANGUAGE 'plpgsql' IMMUTABLE;
-
--- returns NULL if the word is too common
-CREATE OR REPLACE FUNCTION getorcreate_word_id(lookup_word TEXT)
- RETURNS INTEGER
- AS $$
-DECLARE
- lookup_token TEXT;
- return_word_id INTEGER;
- count INTEGER;
-BEGIN
- lookup_token := trim(lookup_word);
- SELECT min(word_id), max(search_name_count) FROM word WHERE word_token = lookup_token and class is null and type is null into return_word_id, count;
- IF return_word_id IS NULL THEN
- return_word_id := nextval('seq_word');
- INSERT INTO word VALUES (return_word_id, lookup_token, null, null, null, null, 0);
- ELSE
- IF count > get_maxwordfreq() THEN
- return_word_id := NULL;
- END IF;
- END IF;
- RETURN return_word_id;
-END;
-$$
-LANGUAGE plpgsql;
-
-CREATE OR REPLACE FUNCTION getorcreate_housenumber_id(lookup_word TEXT)
- RETURNS INTEGER
- AS $$
-DECLARE
- lookup_token TEXT;
- return_word_id INTEGER;
-BEGIN
- lookup_token := ' '||trim(lookup_word);
- SELECT min(word_id) FROM word WHERE word_token = lookup_token and class='place' and type='house' into return_word_id;
- IF return_word_id IS NULL THEN
- return_word_id := nextval('seq_word');
- INSERT INTO word VALUES (return_word_id, lookup_token, null, 'place', 'house', null, 0);
- END IF;
- RETURN return_word_id;
-END;
-$$
-LANGUAGE plpgsql;
-
-CREATE OR REPLACE FUNCTION getorcreate_postcode_id(postcode TEXT)
- RETURNS INTEGER
- AS $$
-DECLARE
- lookup_token TEXT;
- lookup_word TEXT;
- return_word_id INTEGER;
-BEGIN
- lookup_word := upper(trim(postcode));
- lookup_token := ' ' || make_standard_name(lookup_word);
- SELECT min(word_id) FROM word WHERE word_token = lookup_token and class='place' and type='postcode' into return_word_id;
- IF return_word_id IS NULL THEN
- return_word_id := nextval('seq_word');
- INSERT INTO word VALUES (return_word_id, lookup_token, lookup_word, 'place', 'postcode', null, 0);
- END IF;
- RETURN return_word_id;
-END;
-$$
-LANGUAGE plpgsql;
-
-CREATE OR REPLACE FUNCTION getorcreate_country(lookup_word TEXT, lookup_country_code varchar(2))
- RETURNS INTEGER
- AS $$
-DECLARE
- lookup_token TEXT;
- return_word_id INTEGER;
-BEGIN
- lookup_token := ' '||trim(lookup_word);
- SELECT min(word_id) FROM word WHERE word_token = lookup_token and country_code=lookup_country_code into return_word_id;
- IF return_word_id IS NULL THEN
- return_word_id := nextval('seq_word');
- INSERT INTO word VALUES (return_word_id, lookup_token, null, null, null, lookup_country_code, 0);
- END IF;
- RETURN return_word_id;
-END;
-$$
-LANGUAGE plpgsql;
-
-CREATE OR REPLACE FUNCTION getorcreate_amenity(lookup_word TEXT, normalized_word TEXT, lookup_class text, lookup_type text)
- RETURNS INTEGER
- AS $$
-DECLARE
- lookup_token TEXT;
- return_word_id INTEGER;
-BEGIN
- lookup_token := ' '||trim(lookup_word);
- SELECT min(word_id) FROM word WHERE word_token = lookup_token and word=normalized_word and class=lookup_class and type = lookup_type into return_word_id;
- IF return_word_id IS NULL THEN
- return_word_id := nextval('seq_word');
- INSERT INTO word VALUES (return_word_id, lookup_token, normalized_word, lookup_class, lookup_type, null, 0);
- END IF;
- RETURN return_word_id;
-END;
-$$
-LANGUAGE plpgsql;
-
-CREATE OR REPLACE FUNCTION getorcreate_amenityoperator(lookup_word TEXT, normalized_word TEXT, lookup_class text, lookup_type text, op text)
- RETURNS INTEGER
- AS $$
-DECLARE
- lookup_token TEXT;
- return_word_id INTEGER;
-BEGIN
- lookup_token := ' '||trim(lookup_word);
- SELECT min(word_id) FROM word WHERE word_token = lookup_token and word=normalized_word and class=lookup_class and type = lookup_type and operator = op into return_word_id;
- IF return_word_id IS NULL THEN
- return_word_id := nextval('seq_word');
- INSERT INTO word VALUES (return_word_id, lookup_token, normalized_word, lookup_class, lookup_type, null, 0, op);
- END IF;
- RETURN return_word_id;
-END;
-$$
-LANGUAGE plpgsql;
-
-CREATE OR REPLACE FUNCTION getorcreate_name_id(lookup_word TEXT, src_word TEXT)
- RETURNS INTEGER
- AS $$
-DECLARE
- lookup_token TEXT;
- nospace_lookup_token TEXT;
- return_word_id INTEGER;
-BEGIN
- lookup_token := ' '||trim(lookup_word);
- SELECT min(word_id) FROM word WHERE word_token = lookup_token and class is null and type is null into return_word_id;
- IF return_word_id IS NULL THEN
- return_word_id := nextval('seq_word');
- INSERT INTO word VALUES (return_word_id, lookup_token, src_word, null, null, null, 0);
--- nospace_lookup_token := replace(replace(lookup_token, '-',''), ' ','');
--- IF ' '||nospace_lookup_token != lookup_token THEN
--- INSERT INTO word VALUES (return_word_id, '-'||nospace_lookup_token, null, src_word, null, null, null, 0, null);
--- END IF;
- END IF;
- RETURN return_word_id;
-END;
-$$
-LANGUAGE plpgsql;
-
-CREATE OR REPLACE FUNCTION getorcreate_name_id(lookup_word TEXT)
- RETURNS INTEGER
- AS $$
-DECLARE
-BEGIN
- RETURN getorcreate_name_id(lookup_word, '');
-END;
-$$
-LANGUAGE plpgsql;
-
-CREATE OR REPLACE FUNCTION get_word_id(lookup_word TEXT)
- RETURNS INTEGER
- AS $$
-DECLARE
- lookup_token TEXT;
- return_word_id INTEGER;
-BEGIN
- lookup_token := trim(lookup_word);
- SELECT min(word_id) FROM word WHERE word_token = lookup_token and class is null and type is null into return_word_id;
- RETURN return_word_id;
-END;
-$$
-LANGUAGE plpgsql IMMUTABLE;
-
-CREATE OR REPLACE FUNCTION get_name_id(lookup_word TEXT)
- RETURNS INTEGER
- AS $$
-DECLARE
- lookup_token TEXT;
- return_word_id INTEGER;
-BEGIN
- lookup_token := ' '||trim(lookup_word);
- SELECT min(word_id) FROM word WHERE word_token = lookup_token and class is null and type is null into return_word_id;
- RETURN return_word_id;
-END;
-$$
-LANGUAGE plpgsql IMMUTABLE;
-
-CREATE OR REPLACE FUNCTION get_name_ids(lookup_word TEXT)
- RETURNS INTEGER[]
- AS $$
-DECLARE
- lookup_token TEXT;
- return_word_ids INTEGER[];
-BEGIN
- lookup_token := ' '||trim(lookup_word);
- SELECT array_agg(word_id) FROM word WHERE word_token = lookup_token and class is null and type is null into return_word_ids;
- RETURN return_word_ids;
-END;
-$$
-LANGUAGE plpgsql IMMUTABLE;
-
-CREATE OR REPLACE FUNCTION array_merge(a INTEGER[], b INTEGER[])
- RETURNS INTEGER[]
- AS $$
-DECLARE
- i INTEGER;
- r INTEGER[];
-BEGIN
- IF array_upper(a, 1) IS NULL THEN
- RETURN b;
- END IF;
- IF array_upper(b, 1) IS NULL THEN
- RETURN a;
- END IF;
- r := a;
- FOR i IN 1..array_upper(b, 1) LOOP
- IF NOT (ARRAY[b[i]] <@ r) THEN
- r := r || b[i];
- END IF;
- END LOOP;
- RETURN r;
-END;
-$$
-LANGUAGE plpgsql IMMUTABLE;
-
-CREATE OR REPLACE FUNCTION reverse_place_diameter(rank_search SMALLINT)
- RETURNS FLOAT
- AS $$
-BEGIN
- IF rank_search <= 4 THEN
- RETURN 5.0;
- ELSIF rank_search <= 8 THEN
- RETURN 1.8;
- ELSIF rank_search <= 12 THEN
- RETURN 0.6;
- ELSIF rank_search <= 17 THEN
- RETURN 0.16;
- ELSIF rank_search <= 18 THEN
- RETURN 0.08;
- ELSIF rank_search <= 19 THEN
- RETURN 0.04;
- END IF;
-
- RETURN 0.02;
-END;
-$$
-LANGUAGE plpgsql IMMUTABLE;
-
-CREATE OR REPLACE FUNCTION get_postcode_rank(country_code VARCHAR(2), postcode TEXT,
- OUT rank_search SMALLINT, OUT rank_address SMALLINT)
-AS $$
-DECLARE
- part TEXT;
-BEGIN
- rank_search := 30;
- rank_address := 30;
- postcode := upper(postcode);
-
- IF country_code = 'gb' THEN
- IF postcode ~ '^([A-Z][A-Z]?[0-9][0-9A-Z]? [0-9][A-Z][A-Z])$' THEN
- rank_search := 25;
- rank_address := 5;
- ELSEIF postcode ~ '^([A-Z][A-Z]?[0-9][0-9A-Z]? [0-9])$' THEN
- rank_search := 23;
- rank_address := 5;
- ELSEIF postcode ~ '^([A-Z][A-Z]?[0-9][0-9A-Z])$' THEN
- rank_search := 21;
- rank_address := 5;
- END IF;
-
- ELSEIF country_code = 'sg' THEN
- IF postcode ~ '^([0-9]{6})$' THEN
- rank_search := 25;
- rank_address := 11;
- END IF;
-
- ELSEIF country_code = 'de' THEN
- IF postcode ~ '^([0-9]{5})$' THEN
- rank_search := 21;
- rank_address := 11;
- END IF;
-
- ELSE
- -- Guess at the postcode format and coverage (!)
- IF postcode ~ '^[A-Z0-9]{1,5}$' THEN -- Probably too short to be very local
- rank_search := 21;
- rank_address := 11;
- ELSE
- -- Does it look splitable into and area and local code?
- part := substring(postcode from '^([- :A-Z0-9]+)([- :][A-Z0-9]+)$');
-
- IF part IS NOT NULL THEN
- rank_search := 25;
- rank_address := 11;
- ELSEIF postcode ~ '^[- :A-Z0-9]{6,}$' THEN
- rank_search := 21;
- rank_address := 11;
- END IF;
- END IF;
- END IF;
-
-END;
-$$
-LANGUAGE plpgsql IMMUTABLE;
-
--- Find the nearest artificial postcode for the given geometry.
--- TODO For areas there should not be more than two inside the geometry.
-CREATE OR REPLACE FUNCTION get_nearest_postcode(country VARCHAR(2), geom GEOMETRY) RETURNS TEXT
- AS $$
-DECLARE
- outcode TEXT;
- cnt INTEGER;
-BEGIN
- -- If the geometry is an area then only one postcode must be within
- -- that area, otherwise consider the area as not having a postcode.
- IF ST_GeometryType(geom) in ('ST_Polygon','ST_MultiPolygon') THEN
- SELECT min(postcode), count(*) FROM
- (SELECT postcode FROM location_postcode
- WHERE ST_Contains(geom, location_postcode.geometry) LIMIT 2) sub
- INTO outcode, cnt;
-
- IF cnt = 1 THEN
- RETURN outcode;
- ELSE
- RETURN null;
- END IF;
- END IF;
-
- SELECT postcode FROM location_postcode
- WHERE ST_DWithin(geom, location_postcode.geometry, 0.05)
- AND location_postcode.country_code = country
- ORDER BY ST_Distance(geom, location_postcode.geometry) LIMIT 1
- INTO outcode;
-
- RETURN outcode;
-END;
-$$
-LANGUAGE plpgsql;
-
-
-CREATE OR REPLACE FUNCTION create_country(src HSTORE, lookup_country_code varchar(2)) RETURNS VOID
- AS $$
-DECLARE
- s TEXT;
- w INTEGER;
- words TEXT[];
- item RECORD;
- j INTEGER;
-BEGIN
- FOR item IN SELECT (each(src)).* LOOP
-
- s := make_standard_name(item.value);
- w := getorcreate_country(s, lookup_country_code);
-
- words := regexp_split_to_array(item.value, E'[,;()]');
- IF array_upper(words, 1) != 1 THEN
- FOR j IN 1..array_upper(words, 1) LOOP
- s := make_standard_name(words[j]);
- IF s != '' THEN
- w := getorcreate_country(s, lookup_country_code);
- END IF;
- END LOOP;
- END IF;
- END LOOP;
-END;
-$$
-LANGUAGE plpgsql;
-
-CREATE OR REPLACE FUNCTION make_keywords(src HSTORE) RETURNS INTEGER[]
- AS $$
-DECLARE
- result INTEGER[];
- s TEXT;
- w INTEGER;
- words TEXT[];
- item RECORD;
- j INTEGER;
-BEGIN
- result := '{}'::INTEGER[];
-
- FOR item IN SELECT (each(src)).* LOOP
-
- s := make_standard_name(item.value);
-
- w := getorcreate_name_id(s, item.value);
-
- IF not(ARRAY[w] <@ result) THEN
- result := result || w;
- END IF;
-
- w := getorcreate_word_id(s);
-
- IF w IS NOT NULL AND NOT (ARRAY[w] <@ result) THEN
- result := result || w;
- END IF;
-
- words := string_to_array(s, ' ');
- IF array_upper(words, 1) IS NOT NULL THEN
- FOR j IN 1..array_upper(words, 1) LOOP
- IF (words[j] != '') THEN
- w = getorcreate_word_id(words[j]);
- IF w IS NOT NULL AND NOT (ARRAY[w] <@ result) THEN
- result := result || w;
- END IF;
- END IF;
- END LOOP;
- END IF;
-
- words := regexp_split_to_array(item.value, E'[,;()]');
- IF array_upper(words, 1) != 1 THEN
- FOR j IN 1..array_upper(words, 1) LOOP
- s := make_standard_name(words[j]);
- IF s != '' THEN
- w := getorcreate_word_id(s);
- IF w IS NOT NULL AND NOT (ARRAY[w] <@ result) THEN
- result := result || w;
- END IF;
- END IF;
- END LOOP;
- END IF;
-
- s := regexp_replace(item.value, '市$', '');
- IF s != item.value THEN
- s := make_standard_name(s);
- IF s != '' THEN
- w := getorcreate_name_id(s, item.value);
- IF NOT (ARRAY[w] <@ result) THEN
- result := result || w;
- END IF;
- END IF;
- END IF;
-
- END LOOP;
-
- RETURN result;
-END;
-$$
-LANGUAGE plpgsql IMMUTABLE;
-
-CREATE OR REPLACE FUNCTION make_keywords(src TEXT) RETURNS INTEGER[]
- AS $$
-DECLARE
- result INTEGER[];
- s TEXT;
- w INTEGER;
- words TEXT[];
- i INTEGER;
- j INTEGER;
-BEGIN
- result := '{}'::INTEGER[];
-
- s := make_standard_name(src);
- w := getorcreate_name_id(s, src);
-
- IF NOT (ARRAY[w] <@ result) THEN
- result := result || w;
- END IF;
-
- w := getorcreate_word_id(s);
-
- IF w IS NOT NULL AND NOT (ARRAY[w] <@ result) THEN
- result := result || w;
- END IF;
-
- words := string_to_array(s, ' ');
- IF array_upper(words, 1) IS NOT NULL THEN
- FOR j IN 1..array_upper(words, 1) LOOP
- IF (words[j] != '') THEN
- w = getorcreate_word_id(words[j]);
- IF w IS NOT NULL AND NOT (ARRAY[w] <@ result) THEN
- result := result || w;
- END IF;
- END IF;
- END LOOP;
- END IF;
-
- words := regexp_split_to_array(src, E'[,;()]');
- IF array_upper(words, 1) != 1 THEN
- FOR j IN 1..array_upper(words, 1) LOOP
- s := make_standard_name(words[j]);
- IF s != '' THEN
- w := getorcreate_word_id(s);
- IF w IS NOT NULL AND NOT (ARRAY[w] <@ result) THEN
- result := result || w;
- END IF;
- END IF;
- END LOOP;
- END IF;
-
- s := regexp_replace(src, '市$', '');
- IF s != src THEN
- s := make_standard_name(s);
- IF s != '' THEN
- w := getorcreate_name_id(s, src);
- IF NOT (ARRAY[w] <@ result) THEN
- result := result || w;
- END IF;
- END IF;
- END IF;
-
- RETURN result;
-END;
-$$
-LANGUAGE plpgsql IMMUTABLE;
-
-CREATE OR REPLACE FUNCTION get_country_code(place geometry) RETURNS TEXT
- AS $$
-DECLARE
- place_centre GEOMETRY;
- nearcountry RECORD;
-BEGIN
- place_centre := ST_PointOnSurface(place);
-
--- RAISE WARNING 'get_country_code, start: %', ST_AsText(place_centre);
-
- -- Try for a OSM polygon
- FOR nearcountry IN select country_code from location_area_country where country_code is not null and not isguess and st_covers(geometry, place_centre) limit 1
- LOOP
- RETURN nearcountry.country_code;
- END LOOP;
-
--- RAISE WARNING 'osm fallback: %', ST_AsText(place_centre);
-
- -- Try for OSM fallback data
- -- The order is to deal with places like HongKong that are 'states' within another polygon
- FOR nearcountry IN select country_code from country_osm_grid where st_covers(geometry, place_centre) order by area asc limit 1
- LOOP
- RETURN nearcountry.country_code;
- END LOOP;
-
--- RAISE WARNING 'natural earth: %', ST_AsText(place_centre);
-
- -- Natural earth data
- FOR nearcountry IN select country_code from country_naturalearthdata where st_covers(geometry, place_centre) limit 1
- LOOP
- RETURN nearcountry.country_code;
- END LOOP;
-
--- RAISE WARNING 'near osm fallback: %', ST_AsText(place_centre);
-
- --
- FOR nearcountry IN select country_code from country_osm_grid where st_dwithin(geometry, place_centre, 0.5) order by st_distance(geometry, place_centre) asc, area asc limit 1
- LOOP
- RETURN nearcountry.country_code;
- END LOOP;
-
--- RAISE WARNING 'near natural earth: %', ST_AsText(place_centre);
-
- -- Natural earth data
- FOR nearcountry IN select country_code from country_naturalearthdata where st_dwithin(geometry, place_centre, 0.5) limit 1
- LOOP
- RETURN nearcountry.country_code;
- END LOOP;
-
- RETURN NULL;
-END;
-$$
-LANGUAGE plpgsql IMMUTABLE;
-
-CREATE OR REPLACE FUNCTION get_country_language_code(search_country_code VARCHAR(2)) RETURNS TEXT
- AS $$
-DECLARE
- nearcountry RECORD;
-BEGIN
- FOR nearcountry IN select distinct country_default_language_code from country_name where country_code = search_country_code limit 1
- LOOP
- RETURN lower(nearcountry.country_default_language_code);
- END LOOP;
- RETURN NULL;
-END;
-$$
-LANGUAGE plpgsql IMMUTABLE;
-
-CREATE OR REPLACE FUNCTION get_country_language_codes(search_country_code VARCHAR(2)) RETURNS TEXT[]
- AS $$
-DECLARE
- nearcountry RECORD;
-BEGIN
- FOR nearcountry IN select country_default_language_codes from country_name where country_code = search_country_code limit 1
- LOOP
- RETURN lower(nearcountry.country_default_language_codes);
- END LOOP;
- RETURN NULL;
-END;
-$$
-LANGUAGE plpgsql IMMUTABLE;
-
-CREATE OR REPLACE FUNCTION get_partition(in_country_code VARCHAR(10)) RETURNS INTEGER
- AS $$
-DECLARE
- nearcountry RECORD;
-BEGIN
- FOR nearcountry IN select partition from country_name where country_code = in_country_code
- LOOP
- RETURN nearcountry.partition;
- END LOOP;
- RETURN 0;
-END;
-$$
-LANGUAGE plpgsql IMMUTABLE;
-
-CREATE OR REPLACE FUNCTION delete_location(OLD_place_id BIGINT) RETURNS BOOLEAN
- AS $$
-DECLARE
-BEGIN
- DELETE FROM location_area where place_id = OLD_place_id;
--- TODO:location_area
- RETURN true;
-END;
-$$
-LANGUAGE plpgsql;
-
-CREATE OR REPLACE FUNCTION add_location(
- place_id BIGINT,
- country_code varchar(2),
- partition INTEGER,
- keywords INTEGER[],
- rank_search INTEGER,
- rank_address INTEGER,
- in_postcode TEXT,
- geometry GEOMETRY
- )
- RETURNS BOOLEAN
- AS $$
-DECLARE
- locationid INTEGER;
- centroid GEOMETRY;
- diameter FLOAT;
- x BOOLEAN;
- splitGeom RECORD;
- secgeo GEOMETRY;
- postcode TEXT;
-BEGIN
-
- IF rank_search > 25 THEN
- RAISE EXCEPTION 'Adding location with rank > 25 (% rank %)', place_id, rank_search;
- END IF;
-
- x := deleteLocationArea(partition, place_id, rank_search);
-
- -- add postcode only if it contains a single entry, i.e. ignore postcode lists
- postcode := NULL;
- IF in_postcode is not null AND in_postcode not similar to '%(,|;)%' THEN
- postcode := upper(trim (in_postcode));
- END IF;
-
- IF ST_GeometryType(geometry) in ('ST_Polygon','ST_MultiPolygon') THEN
- centroid := ST_Centroid(geometry);
-
- FOR secgeo IN select split_geometry(geometry) AS geom LOOP
- x := insertLocationAreaLarge(partition, place_id, country_code, keywords, rank_search, rank_address, false, postcode, centroid, secgeo);
- END LOOP;
-
- ELSE
-
- diameter := 0.02;
- IF rank_address = 0 THEN
- diameter := 0.02;
- ELSEIF rank_search <= 14 THEN
- diameter := 1.2;
- ELSEIF rank_search <= 15 THEN
- diameter := 1;
- ELSEIF rank_search <= 16 THEN
- diameter := 0.5;
- ELSEIF rank_search <= 17 THEN
- diameter := 0.2;
- ELSEIF rank_search <= 21 THEN
- diameter := 0.05;
- ELSEIF rank_search = 25 THEN
- diameter := 0.005;
- END IF;
-
--- RAISE WARNING 'adding % diameter %', place_id, diameter;
-
- secgeo := ST_Buffer(geometry, diameter);
- x := insertLocationAreaLarge(partition, place_id, country_code, keywords, rank_search, rank_address, true, postcode, ST_Centroid(geometry), secgeo);
-
- END IF;
-
- RETURN true;
-END;
-$$
-LANGUAGE plpgsql;
-
-
--- find the parent road of the cut road parts
-CREATE OR REPLACE FUNCTION get_interpolation_parent(wayid BIGINT, street TEXT, place TEXT,
- partition INTEGER, centroid GEOMETRY, geom GEOMETRY)
-RETURNS BIGINT AS $$
-DECLARE
- addr_street TEXT;
- addr_place TEXT;
- parent_place_id BIGINT;
- address_street_word_ids INTEGER[];
-
- waynodes BIGINT[];
-
- location RECORD;
-BEGIN
- addr_street = street;
- addr_place = place;
-
- IF addr_street is null and addr_place is null THEN
- select nodes from planet_osm_ways where id = wayid INTO waynodes;
- FOR location IN SELECT placex.address from placex
- where osm_type = 'N' and osm_id = ANY(waynodes)
- and placex.address is not null
- and (placex.address ? 'street' or placex.address ? 'place')
- and indexed_status < 100
- limit 1 LOOP
- addr_street = location.address->'street';
- addr_place = location.address->'place';
- END LOOP;
- END IF;
-
- IF addr_street IS NOT NULL THEN
- address_street_word_ids := get_name_ids(make_standard_name(addr_street));
- IF address_street_word_ids IS NOT NULL THEN
- FOR location IN SELECT place_id from getNearestNamedRoadFeature(partition, centroid, address_street_word_ids) LOOP
- parent_place_id := location.place_id;
- END LOOP;
- END IF;
- END IF;
-
- IF parent_place_id IS NULL AND addr_place IS NOT NULL THEN
- address_street_word_ids := get_name_ids(make_standard_name(addr_place));
- IF address_street_word_ids IS NOT NULL THEN
- FOR location IN SELECT place_id from getNearestNamedPlaceFeature(partition, centroid, address_street_word_ids) LOOP
- parent_place_id := location.place_id;
- END LOOP;
- END IF;
- END IF;
-
- IF parent_place_id is null THEN
- FOR location IN SELECT place_id FROM placex
- WHERE ST_DWithin(geom, placex.geometry, 0.001) and placex.rank_search = 26
- ORDER BY (ST_distance(placex.geometry, ST_LineInterpolatePoint(geom,0))+
- ST_distance(placex.geometry, ST_LineInterpolatePoint(geom,0.5))+
- ST_distance(placex.geometry, ST_LineInterpolatePoint(geom,1))) ASC limit 1
- LOOP
- parent_place_id := location.place_id;
- END LOOP;
- END IF;
-
- IF parent_place_id is null THEN
- RETURN 0;
- END IF;
-
- RETURN parent_place_id;
-END;
-$$
-LANGUAGE plpgsql;
-
-
-CREATE OR REPLACE FUNCTION osmline_insert() RETURNS TRIGGER
- AS $$
-BEGIN
- NEW.place_id := nextval('seq_place');
- NEW.indexed_date := now();
-
- IF NEW.indexed_status IS NULL THEN
- IF NEW.address is NULL OR NOT NEW.address ? 'interpolation'
- OR NEW.address->'interpolation' NOT IN ('odd', 'even', 'all') THEN
- -- other interpolation types than odd/even/all (e.g. numeric ones) are not supported
- RETURN NULL;
- END IF;
-
- NEW.indexed_status := 1; --STATUS_NEW
- NEW.country_code := lower(get_country_code(NEW.linegeo));
-
- NEW.partition := get_partition(NEW.country_code);
- NEW.geometry_sector := geometry_sector(NEW.partition, NEW.linegeo);
- END IF;
-
- RETURN NEW;
-END;
-$$
-LANGUAGE plpgsql;
-
-
-CREATE OR REPLACE FUNCTION placex_insert() RETURNS TRIGGER
- AS $$
-DECLARE
- i INTEGER;
- postcode TEXT;
- result BOOLEAN;
- country_code VARCHAR(2);
- default_language VARCHAR(10);
- diameter FLOAT;
- classtable TEXT;
- line RECORD;
-BEGIN
- --DEBUG: RAISE WARNING '% % % %',NEW.osm_type,NEW.osm_id,NEW.class,NEW.type;
-
- NEW.place_id := nextval('seq_place');
- NEW.indexed_status := 1; --STATUS_NEW
-
- NEW.country_code := lower(get_country_code(NEW.geometry));
-
- NEW.partition := get_partition(NEW.country_code);
- NEW.geometry_sector := geometry_sector(NEW.partition, NEW.geometry);
-
- -- copy 'name' to or from the default language (if there is a default language)
- IF NEW.name is not null AND array_upper(akeys(NEW.name),1) > 1 THEN
- default_language := get_country_language_code(NEW.country_code);
- IF default_language IS NOT NULL THEN
- IF NEW.name ? 'name' AND NOT NEW.name ? ('name:'||default_language) THEN
- NEW.name := NEW.name || hstore(('name:'||default_language), (NEW.name -> 'name'));
- ELSEIF NEW.name ? ('name:'||default_language) AND NOT NEW.name ? 'name' THEN
- NEW.name := NEW.name || hstore('name', (NEW.name -> ('name:'||default_language)));
- END IF;
- END IF;
- END IF;
-
- IF NEW.osm_type = 'X' THEN
- -- E'X'ternal records should already be in the right format so do nothing
- ELSE
- NEW.rank_search := 30;
- NEW.rank_address := NEW.rank_search;
-
- -- By doing in postgres we have the country available to us - currently only used for postcode
- IF NEW.class in ('place','boundary') AND NEW.type in ('postcode','postal_code') THEN
-
- IF NEW.address IS NULL OR NOT NEW.address ? 'postcode' THEN
- -- most likely just a part of a multipolygon postcode boundary, throw it away
- RETURN NULL;
- END IF;
-
- NEW.name := hstore('ref', NEW.address->'postcode');
-
- SELECT * FROM get_postcode_rank(NEW.country_code, NEW.address->'postcode')
- INTO NEW.rank_search, NEW.rank_address;
-
- IF NOT ST_GeometryType(NEW.geometry) IN ('ST_Polygon','ST_MultiPolygon') THEN
- NEW.rank_address := 0;
- END IF;
-
- ELSEIF NEW.class = 'place' THEN
- IF NEW.type in ('continent') THEN
- NEW.rank_search := 2;
- NEW.rank_address := NEW.rank_search;
- NEW.country_code := NULL;
- ELSEIF NEW.type in ('sea') THEN
- NEW.rank_search := 2;
- NEW.rank_address := 0;
- NEW.country_code := NULL;
- ELSEIF NEW.type in ('country') THEN
- NEW.rank_search := 4;
- NEW.rank_address := NEW.rank_search;
- ELSEIF NEW.type in ('state') THEN
- NEW.rank_search := 8;
- NEW.rank_address := NEW.rank_search;
- ELSEIF NEW.type in ('region') THEN
- NEW.rank_search := 18; -- dropped from previous value of 10
- NEW.rank_address := 0; -- So badly miss-used that better to just drop it!
- ELSEIF NEW.type in ('county') THEN
- NEW.rank_search := 12;
- NEW.rank_address := NEW.rank_search;
- ELSEIF NEW.type in ('city') THEN
- NEW.rank_search := 16;
- NEW.rank_address := NEW.rank_search;
- ELSEIF NEW.type in ('island') THEN
- NEW.rank_search := 17;
- NEW.rank_address := 0;
- ELSEIF NEW.type in ('town') THEN
- NEW.rank_search := 18;
- NEW.rank_address := 16;
- ELSEIF NEW.type in ('village','hamlet','municipality','district','unincorporated_area','borough') THEN
- NEW.rank_search := 19;
- NEW.rank_address := 16;
- ELSEIF NEW.type in ('suburb','croft','subdivision','isolated_dwelling') THEN
- NEW.rank_search := 20;
- NEW.rank_address := NEW.rank_search;
- ELSEIF NEW.type in ('farm','locality','islet','mountain_pass') THEN
- NEW.rank_search := 20;
- NEW.rank_address := 0;
- -- Irish townlands, tagged as place=locality and locality=townland
- IF (NEW.extratags -> 'locality') = 'townland' THEN
- NEW.rank_address := 20;
- END IF;
- ELSEIF NEW.type in ('neighbourhood') THEN
- NEW.rank_search := 22;
- NEW.rank_address := 22;
- ELSEIF NEW.type in ('house','building') THEN
- NEW.rank_search := 30;
- NEW.rank_address := NEW.rank_search;
- ELSEIF NEW.type in ('houses') THEN
- -- can't guarantee all required nodes loaded yet due to caching in osm2pgsql
- NEW.rank_search := 28;
- NEW.rank_address := 0;
- END IF;
-
- ELSEIF NEW.class = 'boundary' THEN
- IF ST_GeometryType(NEW.geometry) NOT IN ('ST_Polygon','ST_MultiPolygon') THEN
--- RAISE WARNING 'invalid boundary %',NEW.osm_id;
- return NULL;
- END IF;
- NEW.rank_search := NEW.admin_level * 2;
- IF NEW.type = 'administrative' THEN
- NEW.rank_address := NEW.rank_search;
- ELSE
- NEW.rank_address := 0;
- END IF;
- ELSEIF NEW.class = 'landuse' AND ST_GeometryType(NEW.geometry) in ('ST_Polygon','ST_MultiPolygon') THEN
- NEW.rank_search := 22;
- IF NEW.type in ('residential', 'farm', 'farmyard', 'industrial', 'commercial', 'allotments', 'retail') THEN
- NEW.rank_address := NEW.rank_search;
- ELSE
- NEW.rank_address := 0;
- END IF;
- ELSEIF NEW.class = 'leisure' and NEW.type in ('park') THEN
- NEW.rank_search := 24;
- NEW.rank_address := 0;
- ELSEIF NEW.class = 'natural' and NEW.type in ('peak','volcano','mountain_range') THEN
- NEW.rank_search := 18;
- NEW.rank_address := 0;
- ELSEIF NEW.class = 'natural' and NEW.type = 'sea' THEN
- NEW.rank_search := 4;
- NEW.rank_address := NEW.rank_search;
- -- any feature more than 5 square miles is probably worth indexing
- ELSEIF ST_GeometryType(NEW.geometry) in ('ST_Polygon','ST_MultiPolygon') AND ST_Area(NEW.geometry) > 0.1 THEN
- NEW.rank_search := 22;
- NEW.rank_address := 0;
- ELSEIF NEW.class = 'railway' AND NEW.type in ('rail') THEN
- RETURN NULL;
- ELSEIF NEW.class = 'waterway' THEN
- IF NEW.osm_type = 'R' THEN
- NEW.rank_search := 16;
- ELSE
- NEW.rank_search := 17;
- END IF;
- NEW.rank_address := 0;
- ELSEIF NEW.class = 'highway' AND NEW.osm_type != 'N' AND NEW.type in ('service','cycleway','path','footway','steps','bridleway','motorway_link','primary_link','trunk_link','secondary_link','tertiary_link') THEN
- NEW.rank_search := 27;
- NEW.rank_address := NEW.rank_search;
- ELSEIF NEW.class = 'highway' AND NEW.osm_type != 'N' THEN
- NEW.rank_search := 26;
- NEW.rank_address := NEW.rank_search;
- ELSEIF NEW.class = 'mountain_pass' THEN
- NEW.rank_search := 20;
- NEW.rank_address := 0;
- END IF;
-
- END IF;
-
- IF NEW.rank_search > 30 THEN
- NEW.rank_search := 30;
- END IF;
-
- IF NEW.rank_address > 30 THEN
- NEW.rank_address := 30;
- END IF;
-
- IF (NEW.extratags -> 'capital') = 'yes' THEN
- NEW.rank_search := NEW.rank_search - 1;
- END IF;
-
- -- a country code make no sense below rank 4 (country)
- IF NEW.rank_search < 4 THEN
- NEW.country_code := NULL;
- END IF;
-
--- Block import below rank 22
--- IF NEW.rank_search > 22 THEN
--- RETURN NULL;
--- END IF;
-
- --DEBUG: RAISE WARNING 'placex_insert:END: % % % %',NEW.osm_type,NEW.osm_id,NEW.class,NEW.type;
-
- RETURN NEW; -- %DIFFUPDATES% The following is not needed until doing diff updates, and slows the main index process down
-
- IF NEW.rank_address > 0 THEN
- IF (ST_GeometryType(NEW.geometry) in ('ST_Polygon','ST_MultiPolygon') AND ST_IsValid(NEW.geometry)) THEN
- -- Performance: We just can't handle re-indexing for country level changes
- IF st_area(NEW.geometry) < 1 THEN
- -- mark items within the geometry for re-indexing
- -- RAISE WARNING 'placex poly insert: % % % %',NEW.osm_type,NEW.osm_id,NEW.class,NEW.type;
-
- -- work around bug in postgis, this may have been fixed in 2.0.0 (see http://trac.osgeo.org/postgis/ticket/547)
- update placex set indexed_status = 2 where (st_covers(NEW.geometry, placex.geometry) OR ST_Intersects(NEW.geometry, placex.geometry))
- AND rank_search > NEW.rank_search and indexed_status = 0 and ST_geometrytype(placex.geometry) = 'ST_Point' and (rank_search < 28 or name is not null or (NEW.rank_search >= 16 and address ? 'place'));
- update placex set indexed_status = 2 where (st_covers(NEW.geometry, placex.geometry) OR ST_Intersects(NEW.geometry, placex.geometry))
- AND rank_search > NEW.rank_search and indexed_status = 0 and ST_geometrytype(placex.geometry) != 'ST_Point' and (rank_search < 28 or name is not null or (NEW.rank_search >= 16 and address ? 'place'));
- END IF;
- ELSE
- -- mark nearby items for re-indexing, where 'nearby' depends on the features rank_search and is a complete guess :(
- diameter := 0;
- -- 16 = city, anything higher than city is effectively ignored (polygon required!)
- IF NEW.type='postcode' THEN
- diameter := 0.05;
- ELSEIF NEW.rank_search < 16 THEN
- diameter := 0;
- ELSEIF NEW.rank_search < 18 THEN
- diameter := 0.1;
- ELSEIF NEW.rank_search < 20 THEN
- diameter := 0.05;
- ELSEIF NEW.rank_search = 21 THEN
- diameter := 0.001;
- ELSEIF NEW.rank_search < 24 THEN
- diameter := 0.02;
- ELSEIF NEW.rank_search < 26 THEN
- diameter := 0.002; -- 100 to 200 meters
- ELSEIF NEW.rank_search < 28 THEN
- diameter := 0.001; -- 50 to 100 meters
- END IF;
- IF diameter > 0 THEN
- -- RAISE WARNING 'placex point insert: % % % % %',NEW.osm_type,NEW.osm_id,NEW.class,NEW.type,diameter;
- IF NEW.rank_search >= 26 THEN
- -- roads may cause reparenting for >27 rank places
- update placex set indexed_status = 2 where indexed_status = 0 and rank_search > NEW.rank_search and ST_DWithin(placex.geometry, NEW.geometry, diameter);
- -- reparenting also for OSM Interpolation Lines (and for Tiger?)
- update location_property_osmline set indexed_status = 2 where indexed_status = 0 and ST_DWithin(location_property_osmline.linegeo, NEW.geometry, diameter);
- ELSEIF NEW.rank_search >= 16 THEN
- -- up to rank 16, street-less addresses may need reparenting
- update placex set indexed_status = 2 where indexed_status = 0 and rank_search > NEW.rank_search and ST_DWithin(placex.geometry, NEW.geometry, diameter) and (rank_search < 28 or name is not null or address ? 'place');
- ELSE
- -- for all other places the search terms may change as well
- update placex set indexed_status = 2 where indexed_status = 0 and rank_search > NEW.rank_search and ST_DWithin(placex.geometry, NEW.geometry, diameter) and (rank_search < 28 or name is not null);
- END IF;
- END IF;
- END IF;
- END IF;
-
-
- -- add to tables for special search
- -- Note: won't work on initial import because the classtype tables
- -- do not yet exist. It won't hurt either.
- classtable := 'place_classtype_' || NEW.class || '_' || NEW.type;
- SELECT count(*)>0 FROM pg_tables WHERE tablename = classtable and schemaname = current_schema() INTO result;
- IF result THEN
- EXECUTE 'INSERT INTO ' || classtable::regclass || ' (place_id, centroid) VALUES ($1,$2)'
- USING NEW.place_id, ST_Centroid(NEW.geometry);
- END IF;
-
- RETURN NEW;
-
-END;
-$$
-LANGUAGE plpgsql;
-
-CREATE OR REPLACE FUNCTION osmline_update() RETURNS
-TRIGGER
- AS $$
-DECLARE
- place_centroid GEOMETRY;
- waynodes BIGINT[];
- prevnode RECORD;
- nextnode RECORD;
- startnumber INTEGER;
- endnumber INTEGER;
- housenum INTEGER;
- linegeo GEOMETRY;
- splitline GEOMETRY;
- sectiongeo GEOMETRY;
- interpol_postcode TEXT;
- postcode TEXT;
-BEGIN
- -- deferred delete
- IF OLD.indexed_status = 100 THEN
- delete from location_property_osmline where place_id = OLD.place_id;
- RETURN NULL;
- END IF;
-
- IF NEW.indexed_status != 0 OR OLD.indexed_status = 0 THEN
- RETURN NEW;
- END IF;
-
- NEW.interpolationtype = NEW.address->'interpolation';
-
- place_centroid := ST_PointOnSurface(NEW.linegeo);
- NEW.parent_place_id = get_interpolation_parent(NEW.osm_id, NEW.address->'street',
- NEW.address->'place',
- NEW.partition, place_centroid, NEW.linegeo);
-
- IF NEW.address is not NULL AND NEW.address ? 'postcode' AND NEW.address->'postcode' not similar to '%(,|;)%' THEN
- interpol_postcode := NEW.address->'postcode';
- housenum := getorcreate_postcode_id(NEW.address->'postcode');
- ELSE
- interpol_postcode := NULL;
- END IF;
-
- -- if the line was newly inserted, split the line as necessary
- IF OLD.indexed_status = 1 THEN
- select nodes from planet_osm_ways where id = NEW.osm_id INTO waynodes;
-
- IF array_upper(waynodes, 1) IS NULL THEN
- RETURN NEW;
- END IF;
-
- linegeo := NEW.linegeo;
- startnumber := NULL;
-
- FOR nodeidpos in 1..array_upper(waynodes, 1) LOOP
-
- select osm_id, address, geometry
- from place where osm_type = 'N' and osm_id = waynodes[nodeidpos]::BIGINT
- and address is not NULL and address ? 'housenumber' limit 1 INTO nextnode;
- --RAISE NOTICE 'Nextnode.place_id: %s', nextnode.place_id;
- IF nextnode.osm_id IS NOT NULL THEN
- --RAISE NOTICE 'place_id is not null';
- IF nodeidpos > 1 and nodeidpos < array_upper(waynodes, 1) THEN
- -- Make sure that the point is actually on the line. That might
- -- be a bit paranoid but ensures that the algorithm still works
- -- should osm2pgsql attempt to repair geometries.
- splitline := split_line_on_node(linegeo, nextnode.geometry);
- sectiongeo := ST_GeometryN(splitline, 1);
- linegeo := ST_GeometryN(splitline, 2);
- ELSE
- sectiongeo = linegeo;
- END IF;
- endnumber := substring(nextnode.address->'housenumber','[0-9]+')::integer;
-
- IF startnumber IS NOT NULL AND endnumber IS NOT NULL
- AND startnumber != endnumber
- AND ST_GeometryType(sectiongeo) = 'ST_LineString' THEN
-
- IF (startnumber > endnumber) THEN
- housenum := endnumber;
- endnumber := startnumber;
- startnumber := housenum;
- sectiongeo := ST_Reverse(sectiongeo);
- END IF;
-
- -- determine postcode
- postcode := coalesce(interpol_postcode,
- prevnode.address->'postcode',
- nextnode.address->'postcode',
- postcode);
-
- IF postcode is NULL THEN
- SELECT placex.postcode FROM placex WHERE place_id = NEW.parent_place_id INTO postcode;
- END IF;
- IF postcode is NULL THEN
- postcode := get_nearest_postcode(NEW.country_code, nextnode.geometry);
- END IF;
-
- IF NEW.startnumber IS NULL THEN
- NEW.startnumber := startnumber;
- NEW.endnumber := endnumber;
- NEW.linegeo := sectiongeo;
- NEW.postcode := upper(trim(postcode));
- ELSE
- insert into location_property_osmline
- (linegeo, partition, osm_id, parent_place_id,
- startnumber, endnumber, interpolationtype,
- address, postcode, country_code,
- geometry_sector, indexed_status)
- values (sectiongeo, NEW.partition, NEW.osm_id, NEW.parent_place_id,
- startnumber, endnumber, NEW.interpolationtype,
- NEW.address, postcode,
- NEW.country_code, NEW.geometry_sector, 0);
- END IF;
- END IF;
-
- -- early break if we are out of line string,
- -- might happen when a line string loops back on itself
- IF ST_GeometryType(linegeo) != 'ST_LineString' THEN
- RETURN NEW;
- END IF;
-
- startnumber := substring(nextnode.address->'housenumber','[0-9]+')::integer;
- prevnode := nextnode;
- END IF;
- END LOOP;
- END IF;
-
- -- marking descendants for reparenting is not needed, because there are
- -- actually no descendants for interpolation lines
- RETURN NEW;
-END;
-$$
-LANGUAGE plpgsql;
-
--- Trigger for updates of location_postcode
---
--- Computes the parent object the postcode most likely refers to.
--- This will be the place that determines the address displayed when
--- searching for this postcode.
-CREATE OR REPLACE FUNCTION postcode_update() RETURNS
-TRIGGER
- AS $$
-DECLARE
- partition SMALLINT;
- location RECORD;
-BEGIN
- IF NEW.indexed_status != 0 OR OLD.indexed_status = 0 THEN
- RETURN NEW;
- END IF;
-
- NEW.indexed_date = now();
-
- partition := get_partition(NEW.country_code);
-
- SELECT * FROM get_postcode_rank(NEW.country_code, NEW.postcode)
- INTO NEW.rank_search, NEW.rank_address;
-
- NEW.parent_place_id = 0;
- FOR location IN
- SELECT place_id
- FROM getNearFeatures(partition, NEW.geometry, NEW.rank_search, '{}'::int[])
- WHERE NOT isguess ORDER BY rank_address DESC LIMIT 1
- LOOP
- NEW.parent_place_id = location.place_id;
- END LOOP;
-
- RETURN NEW;
-END;
-$$
-LANGUAGE plpgsql;
-
-CREATE OR REPLACE FUNCTION placex_update() RETURNS
-TRIGGER
- AS $$
-DECLARE
-
- place_centroid GEOMETRY;
-
- search_maxdistance FLOAT[];
- search_mindistance FLOAT[];
- address_havelevel BOOLEAN[];
-
- i INTEGER;
- iMax FLOAT;
- location RECORD;
- way RECORD;
- relation RECORD;
- relation_members TEXT[];
- relMember RECORD;
- linkedplacex RECORD;
- addr_item RECORD;
- search_diameter FLOAT;
- search_prevdiameter FLOAT;
- search_maxrank INTEGER;
- address_maxrank INTEGER;
- address_street_word_id INTEGER;
- address_street_word_ids INTEGER[];
- parent_place_id_rank BIGINT;
-
- addr_street TEXT;
- addr_place TEXT;
-
- isin TEXT[];
- isin_tokens INT[];
-
- location_rank_search INTEGER;
- location_distance FLOAT;
- location_parent GEOMETRY;
- location_isaddress BOOLEAN;
- location_keywords INTEGER[];
-
- default_language TEXT;
- name_vector INTEGER[];
- nameaddress_vector INTEGER[];
-
- linked_node_id BIGINT;
- linked_importance FLOAT;
- linked_wikipedia TEXT;
-
- result BOOLEAN;
-BEGIN
- -- deferred delete
- IF OLD.indexed_status = 100 THEN
- --DEBUG: RAISE WARNING 'placex_update delete % %',NEW.osm_type,NEW.osm_id;
- delete from placex where place_id = OLD.place_id;
- RETURN NULL;
- END IF;
-
- IF NEW.indexed_status != 0 OR OLD.indexed_status = 0 THEN
- RETURN NEW;
- END IF;
-
- --DEBUG: RAISE WARNING 'placex_update % % (%)',NEW.osm_type,NEW.osm_id,NEW.place_id;
-
- NEW.indexed_date = now();
-
- result := deleteSearchName(NEW.partition, NEW.place_id);
- DELETE FROM place_addressline WHERE place_id = NEW.place_id;
- result := deleteRoad(NEW.partition, NEW.place_id);
- result := deleteLocationArea(NEW.partition, NEW.place_id, NEW.rank_search);
- UPDATE placex set linked_place_id = null, indexed_status = 2
- where linked_place_id = NEW.place_id;
- -- update not necessary for osmline, cause linked_place_id does not exist
-
- IF NEW.linked_place_id is not null THEN
- --DEBUG: RAISE WARNING 'place already linked to %', NEW.linked_place_id;
- RETURN NEW;
- END IF;
-
- --DEBUG: RAISE WARNING 'Copy over address tags';
- IF NEW.address is not NULL THEN
- IF NEW.address ? 'conscriptionnumber' THEN
- i := getorcreate_housenumber_id(make_standard_name(NEW.address->'conscriptionnumber'));
- IF NEW.address ? 'streetnumber' THEN
- i := getorcreate_housenumber_id(make_standard_name(NEW.address->'streetnumber'));
- NEW.housenumber := (NEW.address->'conscriptionnumber') || '/' || (NEW.address->'streetnumber');
- ELSE
- NEW.housenumber := NEW.address->'conscriptionnumber';
- END IF;
- ELSEIF NEW.address ? 'streetnumber' THEN
- NEW.housenumber := NEW.address->'streetnumber';
- i := getorcreate_housenumber_id(make_standard_name(NEW.address->'streetnumber'));
- ELSEIF NEW.address ? 'housenumber' THEN
- NEW.housenumber := NEW.address->'housenumber';
- i := getorcreate_housenumber_id(make_standard_name(NEW.housenumber));
- END IF;
-
- addr_street := NEW.address->'street';
- addr_place := NEW.address->'place';
-
- IF NEW.address ? 'postcode' and NEW.address->'postcode' not similar to '%(,|;)%' THEN
- i := getorcreate_postcode_id(NEW.address->'postcode');
- END IF;
- END IF;
-
- -- Speed up searches - just use the centroid of the feature
- -- cheaper but less acurate
- place_centroid := ST_PointOnSurface(NEW.geometry);
- NEW.centroid := null;
- NEW.postcode := null;
- --DEBUG: RAISE WARNING 'Computing preliminary centroid at %',ST_AsText(place_centroid);
-
- -- recalculate country and partition
- IF NEW.rank_search = 4 AND NEW.address is not NULL AND NEW.address ? 'country' THEN
- -- for countries, believe the mapped country code,
- -- so that we remain in the right partition if the boundaries
- -- suddenly expand.
- NEW.country_code := lower(NEW.address->'country');
- NEW.partition := get_partition(lower(NEW.country_code));
- IF NEW.partition = 0 THEN
- NEW.country_code := lower(get_country_code(place_centroid));
- NEW.partition := get_partition(NEW.country_code);
- END IF;
- ELSE
- IF NEW.rank_search >= 4 THEN
- NEW.country_code := lower(get_country_code(place_centroid));
- ELSE
- NEW.country_code := NULL;
- END IF;
- NEW.partition := get_partition(NEW.country_code);
- END IF;
- --DEBUG: RAISE WARNING 'Country updated: "%"', NEW.country_code;
-
- -- waterway ways are linked when they are part of a relation and have the same class/type
- IF NEW.osm_type = 'R' and NEW.class = 'waterway' THEN
- FOR relation_members IN select members from planet_osm_rels r where r.id = NEW.osm_id and r.parts != array[]::bigint[]
- LOOP
- FOR i IN 1..array_upper(relation_members, 1) BY 2 LOOP
- IF relation_members[i+1] in ('', 'main_stream', 'side_stream') AND substring(relation_members[i],1,1) = 'w' THEN
- --DEBUG: RAISE WARNING 'waterway parent %, child %/%', NEW.osm_id, i, relation_members[i];
- FOR linked_node_id IN SELECT place_id FROM placex
- WHERE osm_type = 'W' and osm_id = substring(relation_members[i],2,200)::bigint
- and class = NEW.class and type in ('river', 'stream', 'canal', 'drain', 'ditch')
- and ( relation_members[i+1] != 'side_stream' or NEW.name->'name' = name->'name')
- LOOP
- UPDATE placex SET linked_place_id = NEW.place_id WHERE place_id = linked_node_id;
- END LOOP;
- END IF;
- END LOOP;
- END LOOP;
- --DEBUG: RAISE WARNING 'Waterway processed';
- END IF;
-
- -- Adding ourselves to the list simplifies address calculations later
- INSERT INTO place_addressline (place_id, address_place_id, fromarea, isaddress, distance, cached_rank_address)
- VALUES (NEW.place_id, NEW.place_id, true, true, 0, NEW.rank_address);
-
- -- What level are we searching from
- search_maxrank := NEW.rank_search;
-
- -- Thought this wasn't needed but when we add new languages to the country_name table
- -- we need to update the existing names
- IF NEW.name is not null AND array_upper(akeys(NEW.name),1) > 1 THEN
- default_language := get_country_language_code(NEW.country_code);
- IF default_language IS NOT NULL THEN
- IF NEW.name ? 'name' AND NOT NEW.name ? ('name:'||default_language) THEN
- NEW.name := NEW.name || hstore(('name:'||default_language), (NEW.name -> 'name'));
- ELSEIF NEW.name ? ('name:'||default_language) AND NOT NEW.name ? 'name' THEN
- NEW.name := NEW.name || hstore('name', (NEW.name -> ('name:'||default_language)));
- END IF;
- END IF;
- END IF;
- --DEBUG: RAISE WARNING 'Local names updated';
-
- -- Initialise the name vector using our name
- name_vector := make_keywords(NEW.name);
- nameaddress_vector := '{}'::int[];
-
- FOR i IN 1..28 LOOP
- address_havelevel[i] := false;
- END LOOP;
-
- NEW.importance := null;
- select language||':'||title,importance from get_wikipedia_match(NEW.extratags, NEW.country_code) INTO NEW.wikipedia,NEW.importance;
- IF NEW.importance IS NULL THEN
- select language||':'||title,importance from wikipedia_article where osm_type = NEW.osm_type and osm_id = NEW.osm_id order by importance desc limit 1 INTO NEW.wikipedia,NEW.importance;
- END IF;
-
---DEBUG: RAISE WARNING 'Importance computed from wikipedia: %', NEW.importance;
-
- -- ---------------------------------------------------------------------------
- -- For low level elements we inherit from our parent road
- IF (NEW.rank_search > 27 OR (NEW.type = 'postcode' AND NEW.rank_search = 25)) THEN
-
- --DEBUG: RAISE WARNING 'finding street for % %', NEW.osm_type, NEW.osm_id;
-
- -- We won't get a better centroid, besides these places are too small to care
- NEW.centroid := place_centroid;
-
- NEW.parent_place_id := null;
-
- -- if we have a POI and there is no address information,
- -- see if we can get it from a surrounding building
- IF NEW.osm_type = 'N' AND addr_street IS NULL AND addr_place IS NULL
- AND NEW.housenumber IS NULL THEN
- FOR location IN select address from placex where ST_Covers(geometry, place_centroid)
- and address is not null
- and (address ? 'housenumber' or address ? 'street' or address ? 'place')
- and rank_search > 28 AND ST_GeometryType(geometry) in ('ST_Polygon','ST_MultiPolygon')
- limit 1
- LOOP
- NEW.housenumber := location.address->'housenumber';
- addr_street := location.address->'street';
- addr_place := location.address->'place';
- --DEBUG: RAISE WARNING 'Found surrounding building % %', location.osm_type, location.osm_id;
- END LOOP;
- END IF;
-
- -- We have to find our parent road.
- -- Copy data from linked items (points on ways, addr:street links, relations)
-
- -- Is this object part of a relation?
- FOR relation IN select * from planet_osm_rels where parts @> ARRAY[NEW.osm_id] and members @> ARRAY[lower(NEW.osm_type)||NEW.osm_id]
- LOOP
- -- At the moment we only process one type of relation - associatedStreet
- IF relation.tags @> ARRAY['associatedStreet'] THEN
- FOR i IN 1..array_upper(relation.members, 1) BY 2 LOOP
- IF NEW.parent_place_id IS NULL AND relation.members[i+1] = 'street' THEN
---RAISE WARNING 'node in relation %',relation;
- SELECT place_id from placex where osm_type = 'W'
- and osm_id = substring(relation.members[i],2,200)::bigint
- and rank_search = 26 and name is not null INTO NEW.parent_place_id;
- END IF;
- END LOOP;
- END IF;
- END LOOP;
- --DEBUG: RAISE WARNING 'Checked for street relation (%)', NEW.parent_place_id;
-
- -- Note that addr:street links can only be indexed once the street itself is indexed
- IF NEW.parent_place_id IS NULL AND addr_street IS NOT NULL THEN
- address_street_word_ids := get_name_ids(make_standard_name(addr_street));
- IF address_street_word_ids IS NOT NULL THEN
- SELECT place_id from getNearestNamedRoadFeature(NEW.partition, place_centroid, address_street_word_ids) INTO NEW.parent_place_id;
- END IF;
- END IF;
- --DEBUG: RAISE WARNING 'Checked for addr:street (%)', NEW.parent_place_id;
-
- IF NEW.parent_place_id IS NULL AND addr_place IS NOT NULL THEN
- address_street_word_ids := get_name_ids(make_standard_name(addr_place));
- IF address_street_word_ids IS NOT NULL THEN
- SELECT place_id from getNearestNamedPlaceFeature(NEW.partition, place_centroid, address_street_word_ids) INTO NEW.parent_place_id;
- END IF;
- END IF;
- --DEBUG: RAISE WARNING 'Checked for addr:place (%)', NEW.parent_place_id;
-
- -- Is this node part of an interpolation?
- IF NEW.parent_place_id IS NULL AND NEW.osm_type = 'N' THEN
- SELECT q.parent_place_id FROM location_property_osmline q, planet_osm_ways x
- WHERE q.linegeo && NEW.geometry and x.id = q.osm_id and NEW.osm_id = any(x.nodes)
- LIMIT 1 INTO NEW.parent_place_id;
- END IF;
- --DEBUG: RAISE WARNING 'Checked for interpolation (%)', NEW.parent_place_id;
-
- -- Is this node part of a way?
- IF NEW.parent_place_id IS NULL AND NEW.osm_type = 'N' THEN
-
- FOR location IN
- SELECT p.place_id, p.osm_id, p.rank_search, p.address from placex p, planet_osm_ways w
- WHERE p.osm_type = 'W' and p.rank_search >= 26 and p.geometry && NEW.geometry and w.id = p.osm_id and NEW.osm_id = any(w.nodes)
- LOOP
- --DEBUG: RAISE WARNING 'Node is part of way % ', location.osm_id;
-
- -- Way IS a road then we are on it - that must be our road
- IF location.rank_search < 28 THEN
---RAISE WARNING 'node in way that is a street %',location;
- NEW.parent_place_id := location.place_id;
- EXIT;
- END IF;
- --DEBUG: RAISE WARNING 'Checked if way is street (%)', NEW.parent_place_id;
-
- -- If the way mentions a street or place address, try that for parenting.
- IF location.address is not null THEN
- IF location.address ? 'street' THEN
- address_street_word_ids := get_name_ids(make_standard_name(location.address->'street'));
- IF address_street_word_ids IS NOT NULL THEN
- SELECT place_id from getNearestNamedRoadFeature(NEW.partition, place_centroid, address_street_word_ids) INTO NEW.parent_place_id;
- EXIT WHEN NEW.parent_place_id is not NULL;
- END IF;
- END IF;
- --DEBUG: RAISE WARNING 'Checked for addr:street in way (%)', NEW.parent_place_id;
-
- IF location.address ? 'place' THEN
- address_street_word_ids := get_name_ids(make_standard_name(location.address->'place'));
- IF address_street_word_ids IS NOT NULL THEN
- SELECT place_id from getNearestNamedPlaceFeature(NEW.partition, place_centroid, address_street_word_ids) INTO NEW.parent_place_id;
- EXIT WHEN NEW.parent_place_id is not NULL;
- END IF;
- END IF;
- --DEBUG: RAISE WARNING 'Checked for addr:place in way (%)', NEW.parent_place_id;
- END IF;
-
- -- Is the WAY part of a relation
- FOR relation IN select * from planet_osm_rels where parts @> ARRAY[location.osm_id] and members @> ARRAY['w'||location.osm_id]
- LOOP
- -- At the moment we only process one type of relation - associatedStreet
- IF relation.tags @> ARRAY['associatedStreet'] AND array_upper(relation.members, 1) IS NOT NULL THEN
- FOR i IN 1..array_upper(relation.members, 1) BY 2 LOOP
- IF NEW.parent_place_id IS NULL AND relation.members[i+1] = 'street' THEN
---RAISE WARNING 'node in way that is in a relation %',relation;
- SELECT place_id from placex where osm_type='W' and osm_id = substring(relation.members[i],2,200)::bigint
- and rank_search = 26 and name is not null INTO NEW.parent_place_id;
- END IF;
- END LOOP;
- END IF;
- END LOOP;
- EXIT WHEN NEW.parent_place_id is not null;
- --DEBUG: RAISE WARNING 'Checked for street relation in way (%)', NEW.parent_place_id;
-
- END LOOP;
- END IF;
-
- -- Still nothing, just use the nearest road
- IF NEW.parent_place_id IS NULL THEN
- SELECT place_id FROM getNearestRoadFeature(NEW.partition, place_centroid) INTO NEW.parent_place_id;
- END IF;
- --DEBUG: RAISE WARNING 'Checked for nearest way (%)', NEW.parent_place_id;
-
-
- -- If we didn't find any road fallback to standard method
- IF NEW.parent_place_id IS NOT NULL THEN
-
- -- Get the details of the parent road
- select s.country_code, s.name_vector, s.nameaddress_vector from search_name s
- where s.place_id = NEW.parent_place_id INTO location;
- NEW.country_code := location.country_code;
- --DEBUG: RAISE WARNING 'Got parent details from search name';
-
- -- determine postcode
- IF NEW.rank_search > 4 THEN
- IF NEW.address is not null AND NEW.address ? 'postcode' THEN
- NEW.postcode = upper(trim(NEW.address->'postcode'));
- ELSE
- SELECT postcode FROM placex WHERE place_id = NEW.parent_place_id INTO NEW.postcode;
- END IF;
- IF NEW.postcode is null THEN
- NEW.postcode := get_nearest_postcode(NEW.country_code, place_centroid);
- END IF;
- END IF;
-
- -- If there is no name it isn't searchable, don't bother to create a search record
- IF NEW.name is NULL THEN
- --DEBUG: RAISE WARNING 'Not a searchable place % %', NEW.osm_type, NEW.osm_id;
- return NEW;
- END IF;
-
- -- Merge address from parent
- nameaddress_vector := array_merge(nameaddress_vector, location.nameaddress_vector);
- nameaddress_vector := array_merge(nameaddress_vector, location.name_vector);
-
- -- Performance, it would be more acurate to do all the rest of the import
- -- process but it takes too long
- -- Just be happy with inheriting from parent road only
-
- IF NEW.rank_search <= 25 and NEW.rank_address > 0 THEN
- result := add_location(NEW.place_id, NEW.country_code, NEW.partition, name_vector, NEW.rank_search, NEW.rank_address, upper(trim(NEW.address->'postcode')), NEW.geometry);
- --DEBUG: RAISE WARNING 'Place added to location table';
- END IF;
-
- result := insertSearchName(NEW.partition, NEW.place_id, NEW.country_code, name_vector, nameaddress_vector, NEW.rank_search, NEW.rank_address, NEW.importance, place_centroid, NEW.geometry);
- --DEBUG: RAISE WARNING 'Place added to search table';
-
- return NEW;
- END IF;
-
- END IF;
-
- -- ---------------------------------------------------------------------------
- -- Full indexing
- --DEBUG: RAISE WARNING 'Using full index mode for % %', NEW.osm_type, NEW.osm_id;
-
- IF NEW.osm_type = 'R' AND NEW.rank_search < 26 THEN
-
- -- see if we have any special relation members
- select members from planet_osm_rels where id = NEW.osm_id INTO relation_members;
- --DEBUG: RAISE WARNING 'Got relation members';
-
- IF relation_members IS NOT NULL THEN
- FOR relMember IN select get_osm_rel_members(relation_members,ARRAY['label']) as member LOOP
- --DEBUG: RAISE WARNING 'Found label member %', relMember.member;
-
- FOR linkedPlacex IN select * from placex where osm_type = upper(substring(relMember.member,1,1))::char(1)
- and osm_id = substring(relMember.member,2,10000)::bigint
- and class = 'place' order by rank_search desc limit 1 LOOP
-
- -- If we don't already have one use this as the centre point of the geometry
- IF NEW.centroid IS NULL THEN
- NEW.centroid := coalesce(linkedPlacex.centroid,st_centroid(linkedPlacex.geometry));
- END IF;
-
- -- merge in the label name, re-init word vector
- IF NOT linkedPlacex.name IS NULL THEN
- NEW.name := linkedPlacex.name || NEW.name;
- name_vector := array_merge(name_vector, make_keywords(linkedPlacex.name));
- END IF;
-
- -- merge in extra tags
- NEW.extratags := hstore(linkedPlacex.class, linkedPlacex.type) || coalesce(linkedPlacex.extratags, ''::hstore) || coalesce(NEW.extratags, ''::hstore);
-
- -- mark the linked place (excludes from search results)
- UPDATE placex set linked_place_id = NEW.place_id where place_id = linkedPlacex.place_id;
-
- -- keep a note of the node id in case we need it for wikipedia in a bit
- linked_node_id := linkedPlacex.osm_id;
- select language||':'||title,importance from get_wikipedia_match(linkedPlacex.extratags, NEW.country_code) INTO linked_wikipedia,linked_importance;
- --DEBUG: RAISE WARNING 'Linked label member';
- END LOOP;
-
- END LOOP;
-
- IF NEW.centroid IS NULL THEN
-
- FOR relMember IN select get_osm_rel_members(relation_members,ARRAY['admin_center','admin_centre']) as member LOOP
- --DEBUG: RAISE WARNING 'Found admin_center member %', relMember.member;
-
- FOR linkedPlacex IN select * from placex where osm_type = upper(substring(relMember.member,1,1))::char(1)
- and osm_id = substring(relMember.member,2,10000)::bigint
- and class = 'place' order by rank_search desc limit 1 LOOP
-
- -- For an admin centre we also want a name match - still not perfect, for example 'new york, new york'
- -- But that can be fixed by explicitly setting the label in the data
- IF make_standard_name(NEW.name->'name') = make_standard_name(linkedPlacex.name->'name')
- AND NEW.rank_address = linkedPlacex.rank_address THEN
-
- -- If we don't already have one use this as the centre point of the geometry
- IF NEW.centroid IS NULL THEN
- NEW.centroid := coalesce(linkedPlacex.centroid,st_centroid(linkedPlacex.geometry));
- END IF;
-
- -- merge in the name, re-init word vector
- IF NOT linkedPlacex.name IS NULL THEN
- NEW.name := linkedPlacex.name || NEW.name;
- name_vector := make_keywords(NEW.name);
- END IF;
-
- -- merge in extra tags
- NEW.extratags := hstore(linkedPlacex.class, linkedPlacex.type) || coalesce(linkedPlacex.extratags, ''::hstore) || coalesce(NEW.extratags, ''::hstore);
-
- -- mark the linked place (excludes from search results)
- UPDATE placex set linked_place_id = NEW.place_id where place_id = linkedPlacex.place_id;
-
- -- keep a note of the node id in case we need it for wikipedia in a bit
- linked_node_id := linkedPlacex.osm_id;
- select language||':'||title,importance from get_wikipedia_match(linkedPlacex.extratags, NEW.country_code) INTO linked_wikipedia,linked_importance;
- --DEBUG: RAISE WARNING 'Linked admin_center';
- END IF;
-
- END LOOP;
-
- END LOOP;
-
- END IF;
- END IF;
-
- END IF;
-
- -- Name searches can be done for ways as well as relations
- IF NEW.osm_type in ('W','R') AND NEW.rank_search < 26 AND NEW.rank_address > 0 THEN
-
- -- not found one yet? how about doing a name search
- IF NEW.centroid IS NULL AND (NEW.name->'name') is not null and make_standard_name(NEW.name->'name') != '' THEN
-
- --DEBUG: RAISE WARNING 'Looking for nodes with matching names';
- FOR linkedPlacex IN select placex.* from placex WHERE
- make_standard_name(name->'name') = make_standard_name(NEW.name->'name')
- AND placex.rank_address = NEW.rank_address
- AND placex.place_id != NEW.place_id
- AND placex.osm_type = 'N'::char(1) AND placex.rank_search < 26
- AND st_covers(NEW.geometry, placex.geometry)
- LOOP
- --DEBUG: RAISE WARNING 'Found matching place node %', linkedPlacex.osm_id;
- -- If we don't already have one use this as the centre point of the geometry
- IF NEW.centroid IS NULL THEN
- NEW.centroid := coalesce(linkedPlacex.centroid,st_centroid(linkedPlacex.geometry));
- END IF;
-
- -- merge in the name, re-init word vector
- NEW.name := linkedPlacex.name || NEW.name;
- name_vector := make_keywords(NEW.name);
-
- -- merge in extra tags
- NEW.extratags := hstore(linkedPlacex.class, linkedPlacex.type) || coalesce(linkedPlacex.extratags, ''::hstore) || coalesce(NEW.extratags, ''::hstore);
-
- -- mark the linked place (excludes from search results)
- UPDATE placex set linked_place_id = NEW.place_id where place_id = linkedPlacex.place_id;
-
- -- keep a note of the node id in case we need it for wikipedia in a bit
- linked_node_id := linkedPlacex.osm_id;
- select language||':'||title,importance from get_wikipedia_match(linkedPlacex.extratags, NEW.country_code) INTO linked_wikipedia,linked_importance;
- --DEBUG: RAISE WARNING 'Linked named place';
- END LOOP;
- END IF;
-
- IF NEW.centroid IS NOT NULL THEN
- place_centroid := NEW.centroid;
- -- Place might have had only a name tag before but has now received translations
- -- from the linked place. Make sure a name tag for the default language exists in
- -- this case.
- IF NEW.name is not null AND array_upper(akeys(NEW.name),1) > 1 THEN
- default_language := get_country_language_code(NEW.country_code);
- IF default_language IS NOT NULL THEN
- IF NEW.name ? 'name' AND NOT NEW.name ? ('name:'||default_language) THEN
- NEW.name := NEW.name || hstore(('name:'||default_language), (NEW.name -> 'name'));
- ELSEIF NEW.name ? ('name:'||default_language) AND NOT NEW.name ? 'name' THEN
- NEW.name := NEW.name || hstore('name', (NEW.name -> ('name:'||default_language)));
- END IF;
- END IF;
- END IF;
- --DEBUG: RAISE WARNING 'Names updated from linked places';
- END IF;
-
- -- Use the maximum importance if a one could be computed from the linked object.
- IF linked_importance is not null AND
- (NEW.importance is null or NEW.importance < linked_importance) THEN
- NEW.importance = linked_importance;
- END IF;
-
- -- Still null? how about looking it up by the node id
- IF NEW.importance IS NULL THEN
- --DEBUG: RAISE WARNING 'Looking up importance by linked node id';
- select language||':'||title,importance from wikipedia_article where osm_type = 'N'::char(1) and osm_id = linked_node_id order by importance desc limit 1 INTO NEW.wikipedia,NEW.importance;
- END IF;
-
- END IF;
-
- -- make sure all names are in the word table
- IF NEW.admin_level = 2 AND NEW.class = 'boundary' AND NEW.type = 'administrative' AND NEW.country_code IS NOT NULL AND NEW.osm_type = 'R' THEN
- perform create_country(NEW.name, lower(NEW.country_code));
- --DEBUG: RAISE WARNING 'Country names updated';
- END IF;
-
- NEW.parent_place_id = 0;
- parent_place_id_rank = 0;
-
-
- -- convert address store to array of tokenids
- --DEBUG: RAISE WARNING 'Starting address search';
- isin_tokens := '{}'::int[];
- IF NEW.address IS NOT NULL THEN
- FOR addr_item IN SELECT * FROM each(NEW.address)
- LOOP
- IF addr_item.key IN ('city', 'tiger:county', 'state', 'suburb', 'province', 'district', 'region', 'county', 'municipality', 'hamlet', 'village', 'subdistrict', 'town', 'neighbourhood', 'quarter', 'parish') THEN
- address_street_word_id := get_name_id(make_standard_name(addr_item.value));
- IF address_street_word_id IS NOT NULL AND NOT(ARRAY[address_street_word_id] <@ isin_tokens) THEN
- isin_tokens := isin_tokens || address_street_word_id;
- END IF;
- address_street_word_id := get_word_id(make_standard_name(addr_item.value));
- IF address_street_word_id IS NOT NULL THEN
- nameaddress_vector := array_merge(nameaddress_vector, ARRAY[address_street_word_id]);
- END IF;
- END IF;
- IF addr_item.key = 'is_in' THEN
- -- is_in items need splitting
- isin := regexp_split_to_array(addr_item.value, E'[;,]');
- IF array_upper(isin, 1) IS NOT NULL THEN
- FOR i IN 1..array_upper(isin, 1) LOOP
- address_street_word_id := get_name_id(make_standard_name(isin[i]));
- IF address_street_word_id IS NOT NULL AND NOT(ARRAY[address_street_word_id] <@ isin_tokens) THEN
- isin_tokens := isin_tokens || address_street_word_id;
- END IF;
-
- -- merge word into address vector
- address_street_word_id := get_word_id(make_standard_name(isin[i]));
- IF address_street_word_id IS NOT NULL THEN
- nameaddress_vector := array_merge(nameaddress_vector, ARRAY[address_street_word_id]);
- END IF;
- END LOOP;
- END IF;
- END IF;
- END LOOP;
- END IF;
- nameaddress_vector := array_merge(nameaddress_vector, isin_tokens);
-
--- RAISE WARNING 'ISIN: %', isin_tokens;
-
- -- Process area matches
- location_rank_search := 0;
- location_distance := 0;
- location_parent := NULL;
- -- added ourself as address already
- address_havelevel[NEW.rank_address] := true;
- --DEBUG: RAISE WARNING ' getNearFeatures(%,''%'',%,''%'')',NEW.partition, place_centroid, search_maxrank, isin_tokens;
- FOR location IN
- SELECT * from getNearFeatures(NEW.partition,
- CASE WHEN NEW.rank_search >= 26
- AND NEW.rank_search < 30
- THEN NEW.geometry
- ELSE place_centroid END,
- search_maxrank, isin_tokens)
- LOOP
- IF location.rank_address != location_rank_search THEN
- location_rank_search := location.rank_address;
- IF location.isguess THEN
- location_distance := location.distance * 1.5;
- ELSE
- IF location.rank_address <= 12 THEN
- -- for county and above, if we have an area consider that exact
- -- (It would be nice to relax the constraint for places close to
- -- the boundary but we'd need the exact geometry for that. Too
- -- expensive.)
- location_distance = 0;
- ELSE
- -- Below county level remain slightly fuzzy.
- location_distance := location.distance * 0.5;
- END IF;
- END IF;
- ELSE
- CONTINUE WHEN location.keywords <@ location_keywords;
- END IF;
-
- IF location.distance < location_distance OR NOT location.isguess THEN
- location_keywords := location.keywords;
-
- location_isaddress := NOT address_havelevel[location.rank_address];
- IF location_isaddress AND location.isguess AND location_parent IS NOT NULL THEN
- location_isaddress := ST_Contains(location_parent,location.centroid);
- END IF;
-
- -- RAISE WARNING '% isaddress: %', location.place_id, location_isaddress;
- -- Add it to the list of search terms
- IF location.rank_search > 4 THEN
- nameaddress_vector := array_merge(nameaddress_vector, location.keywords::integer[]);
- END IF;
- INSERT INTO place_addressline (place_id, address_place_id, fromarea, isaddress, distance, cached_rank_address)
- VALUES (NEW.place_id, location.place_id, true, location_isaddress, location.distance, location.rank_address);
-
- IF location_isaddress THEN
- -- add postcode if we have one
- -- (If multiple postcodes are available, we end up with the highest ranking one.)
- IF location.postcode is not null THEN
- NEW.postcode = location.postcode;
- END IF;
-
- address_havelevel[location.rank_address] := true;
- IF NOT location.isguess THEN
- SELECT geometry FROM placex WHERE place_id = location.place_id INTO location_parent;
- END IF;
-
- IF location.rank_address > parent_place_id_rank THEN
- NEW.parent_place_id = location.place_id;
- parent_place_id_rank = location.rank_address;
- END IF;
-
- END IF;
-
- --DEBUG: RAISE WARNING ' Terms: (%) %',location, nameaddress_vector;
-
- END IF;
-
- END LOOP;
- --DEBUG: RAISE WARNING 'address computed';
-
- IF NEW.address is not null AND NEW.address ? 'postcode'
- AND NEW.address->'postcode' not similar to '%(,|;)%' THEN
- NEW.postcode := upper(trim(NEW.address->'postcode'));
- END IF;
-
- IF NEW.postcode is null AND NEW.rank_search > 8 THEN
- NEW.postcode := get_nearest_postcode(NEW.country_code, NEW.geometry);
- END IF;
-
- -- if we have a name add this to the name search table
- IF NEW.name IS NOT NULL THEN
-
- IF NEW.rank_search <= 25 and NEW.rank_address > 0 THEN
- result := add_location(NEW.place_id, NEW.country_code, NEW.partition, name_vector, NEW.rank_search, NEW.rank_address, upper(trim(NEW.address->'postcode')), NEW.geometry);
- --DEBUG: RAISE WARNING 'added to location (full)';
- END IF;
-
- IF NEW.rank_search between 26 and 27 and NEW.class = 'highway' THEN
- result := insertLocationRoad(NEW.partition, NEW.place_id, NEW.country_code, NEW.geometry);
- --DEBUG: RAISE WARNING 'insert into road location table (full)';
- END IF;
-
- result := insertSearchName(NEW.partition, NEW.place_id, NEW.country_code, name_vector, nameaddress_vector, NEW.rank_search, NEW.rank_address, NEW.importance, place_centroid, NEW.geometry);
- --DEBUG: RAISE WARNING 'added to serach name (full)';
-
- END IF;
-
- -- If we've not managed to pick up a better one - default centroid
- IF NEW.centroid IS NULL THEN
- NEW.centroid := place_centroid;
- END IF;
-
- --DEBUG: RAISE WARNING 'place update % % finsihed.', NEW.osm_type, NEW.osm_id;
-
- RETURN NEW;
-END;
-$$
-LANGUAGE plpgsql;
-
-CREATE OR REPLACE FUNCTION placex_delete() RETURNS TRIGGER
- AS $$
-DECLARE
- b BOOLEAN;
- classtable TEXT;
-BEGIN
- -- RAISE WARNING 'placex_delete % %',OLD.osm_type,OLD.osm_id;
-
- update placex set linked_place_id = null, indexed_status = 2 where linked_place_id = OLD.place_id and indexed_status = 0;
- --DEBUG: RAISE WARNING 'placex_delete:01 % %',OLD.osm_type,OLD.osm_id;
- update placex set linked_place_id = null where linked_place_id = OLD.place_id;
- --DEBUG: RAISE WARNING 'placex_delete:02 % %',OLD.osm_type,OLD.osm_id;
-
- IF OLD.rank_address < 30 THEN
-
- -- mark everything linked to this place for re-indexing
- --DEBUG: RAISE WARNING 'placex_delete:03 % %',OLD.osm_type,OLD.osm_id;
- UPDATE placex set indexed_status = 2 from place_addressline where address_place_id = OLD.place_id
- and placex.place_id = place_addressline.place_id and indexed_status = 0 and place_addressline.isaddress;
-
- --DEBUG: RAISE WARNING 'placex_delete:04 % %',OLD.osm_type,OLD.osm_id;
- DELETE FROM place_addressline where address_place_id = OLD.place_id;
-
- --DEBUG: RAISE WARNING 'placex_delete:05 % %',OLD.osm_type,OLD.osm_id;
- b := deleteRoad(OLD.partition, OLD.place_id);
-
- --DEBUG: RAISE WARNING 'placex_delete:06 % %',OLD.osm_type,OLD.osm_id;
- update placex set indexed_status = 2 where parent_place_id = OLD.place_id and indexed_status = 0;
- --DEBUG: RAISE WARNING 'placex_delete:07 % %',OLD.osm_type,OLD.osm_id;
- -- reparenting also for OSM Interpolation Lines (and for Tiger?)
- update location_property_osmline set indexed_status = 2 where indexed_status = 0 and parent_place_id = OLD.place_id;
-
- END IF;
-
- --DEBUG: RAISE WARNING 'placex_delete:08 % %',OLD.osm_type,OLD.osm_id;
-
- IF OLD.rank_address < 26 THEN
- b := deleteLocationArea(OLD.partition, OLD.place_id, OLD.rank_search);
- END IF;
-
- --DEBUG: RAISE WARNING 'placex_delete:09 % %',OLD.osm_type,OLD.osm_id;
-
- IF OLD.name is not null THEN
- b := deleteSearchName(OLD.partition, OLD.place_id);
- END IF;
-
- --DEBUG: RAISE WARNING 'placex_delete:10 % %',OLD.osm_type,OLD.osm_id;
-
- DELETE FROM place_addressline where place_id = OLD.place_id;
-
- --DEBUG: RAISE WARNING 'placex_delete:11 % %',OLD.osm_type,OLD.osm_id;
-
- -- remove from tables for special search
- classtable := 'place_classtype_' || OLD.class || '_' || OLD.type;
- SELECT count(*)>0 FROM pg_tables WHERE tablename = classtable and schemaname = current_schema() INTO b;
- IF b THEN
- EXECUTE 'DELETE FROM ' || classtable::regclass || ' WHERE place_id = $1' USING OLD.place_id;
- END IF;
-
- --DEBUG: RAISE WARNING 'placex_delete:12 % %',OLD.osm_type,OLD.osm_id;
-
- RETURN OLD;
-
-END;
-$$
-LANGUAGE plpgsql;
-
-CREATE OR REPLACE FUNCTION place_delete() RETURNS TRIGGER
- AS $$
-DECLARE
- has_rank BOOLEAN;
-BEGIN
-
- --DEBUG: RAISE WARNING 'delete: % % % %',OLD.osm_type,OLD.osm_id,OLD.class,OLD.type;
-
- -- deleting large polygons can have a massive effect on the system - require manual intervention to let them through
- IF st_area(OLD.geometry) > 2 and st_isvalid(OLD.geometry) THEN
- SELECT bool_or(not (rank_address = 0 or rank_address > 26)) as ranked FROM placex WHERE osm_type = OLD.osm_type and osm_id = OLD.osm_id and class = OLD.class and type = OLD.type INTO has_rank;
- IF has_rank THEN
- insert into import_polygon_delete (osm_type, osm_id, class, type) values (OLD.osm_type,OLD.osm_id,OLD.class,OLD.type);
- RETURN NULL;
- END IF;
- END IF;
-
- -- mark for delete
- UPDATE placex set indexed_status = 100 where osm_type = OLD.osm_type and osm_id = OLD.osm_id and class = OLD.class and type = OLD.type;
-
- -- interpolations are special
- IF OLD.osm_type='W' and OLD.class = 'place' and OLD.type = 'houses' THEN
- UPDATE location_property_osmline set indexed_status = 100 where osm_id = OLD.osm_id; -- osm_id = wayid (=old.osm_id)
- END IF;
-
- RETURN OLD;
-
-END;
-$$
-LANGUAGE plpgsql;
-
-CREATE OR REPLACE FUNCTION place_insert() RETURNS TRIGGER
- AS $$
-DECLARE
- i INTEGER;
- existing RECORD;
- existingplacex RECORD;
- existingline RECORD;
- existinggeometry GEOMETRY;
- existingplace_id BIGINT;
- result BOOLEAN;
- partition INTEGER;
-BEGIN
-
- --DEBUG: RAISE WARNING '-----------------------------------------------------------------------------------';
- --DEBUG: RAISE WARNING 'place_insert: % % % % %',NEW.osm_type,NEW.osm_id,NEW.class,NEW.type,st_area(NEW.geometry);
- -- filter wrong tupels
- IF ST_IsEmpty(NEW.geometry) OR NOT ST_IsValid(NEW.geometry) OR ST_X(ST_Centroid(NEW.geometry))::text in ('NaN','Infinity','-Infinity') OR ST_Y(ST_Centroid(NEW.geometry))::text in ('NaN','Infinity','-Infinity') THEN
- INSERT INTO import_polygon_error (osm_type, osm_id, class, type, name, country_code, updated, errormessage, prevgeometry, newgeometry)
- VALUES (NEW.osm_type, NEW.osm_id, NEW.class, NEW.type, NEW.name, NEW.address->'country', now(), ST_IsValidReason(NEW.geometry), null, NEW.geometry);
--- RAISE WARNING 'Invalid Geometry: % % % %',NEW.osm_type,NEW.osm_id,NEW.class,NEW.type;
- RETURN null;
- END IF;
-
- -- decide, whether it is an osm interpolation line => insert intoosmline, or else just placex
- IF NEW.class='place' and NEW.type='houses' and NEW.osm_type='W' and ST_GeometryType(NEW.geometry) = 'ST_LineString' THEN
- -- Have we already done this place?
- select * from place where osm_type = NEW.osm_type and osm_id = NEW.osm_id and class = NEW.class and type = NEW.type INTO existing;
-
- -- Get the existing place_id
- select * from location_property_osmline where osm_id = NEW.osm_id INTO existingline;
-
- -- Handle a place changing type by removing the old data (this trigger is executed BEFORE INSERT of the NEW tupel)
- IF existing.osm_type IS NULL THEN
- DELETE FROM place where osm_type = NEW.osm_type and osm_id = NEW.osm_id and class = NEW.class;
- END IF;
-
- DELETE from import_polygon_error where osm_type = NEW.osm_type and osm_id = NEW.osm_id;
- DELETE from import_polygon_delete where osm_type = NEW.osm_type and osm_id = NEW.osm_id;
-
- -- update method for interpolation lines: delete all old interpolation lines with same osm_id (update on place) and insert the new one(s) (they can be split up, if they have > 2 nodes)
- IF existingline.osm_id IS NOT NULL THEN
- delete from location_property_osmline where osm_id = NEW.osm_id;
- END IF;
-
- -- for interpolations invalidate all nodes on the line
- update placex p set indexed_status = 2
- from planet_osm_ways w
- where w.id = NEW.osm_id and p.osm_type = 'N' and p.osm_id = any(w.nodes);
-
-
- INSERT INTO location_property_osmline (osm_id, address, linegeo)
- VALUES (NEW.osm_id, NEW.address, NEW.geometry);
-
-
- IF existing.osm_type IS NULL THEN
- return NEW;
- END IF;
-
- IF coalesce(existing.address, ''::hstore) != coalesce(NEW.address, ''::hstore)
- OR (coalesce(existing.extratags, ''::hstore) != coalesce(NEW.extratags, ''::hstore))
- OR existing.geometry::text != NEW.geometry::text
- THEN
-
- update place set
- name = NEW.name,
- address = NEW.address,
- extratags = NEW.extratags,
- admin_level = NEW.admin_level,
- geometry = NEW.geometry
- where osm_type = NEW.osm_type and osm_id = NEW.osm_id and class = NEW.class and type = NEW.type;
- END IF;
-
- RETURN NULL;
-
- ELSE -- insert to placex
-
- -- Patch in additional country names
- IF NEW.admin_level = 2 AND NEW.type = 'administrative'
- AND NEW.address is not NULL AND NEW.address ? 'country' THEN
- SELECT name FROM country_name WHERE country_code = lower(NEW.address->'country') INTO existing;
- IF existing.name IS NOT NULL THEN
- NEW.name = existing.name || NEW.name;
- END IF;
- END IF;
-
- -- Have we already done this place?
- select * from place where osm_type = NEW.osm_type and osm_id = NEW.osm_id and class = NEW.class and type = NEW.type INTO existing;
-
- -- Get the existing place_id
- select * from placex where osm_type = NEW.osm_type and osm_id = NEW.osm_id and class = NEW.class and type = NEW.type INTO existingplacex;
-
- -- Handle a place changing type by removing the old data
- -- My generated 'place' types are causing havok because they overlap with real keys
- -- TODO: move them to their own special purpose key/class to avoid collisions
- IF existing.osm_type IS NULL THEN
- DELETE FROM place where osm_type = NEW.osm_type and osm_id = NEW.osm_id and class = NEW.class;
- END IF;
-
- --DEBUG: RAISE WARNING 'Existing: %',existing.osm_id;
- --DEBUG: RAISE WARNING 'Existing PlaceX: %',existingplacex.place_id;
-
- -- Log and discard
- IF existing.geometry is not null AND st_isvalid(existing.geometry)
- AND st_area(existing.geometry) > 0.02
- AND ST_GeometryType(NEW.geometry) in ('ST_Polygon','ST_MultiPolygon')
- AND st_area(NEW.geometry) < st_area(existing.geometry)*0.5
- THEN
- INSERT INTO import_polygon_error (osm_type, osm_id, class, type, name, country_code, updated, errormessage, prevgeometry, newgeometry)
- VALUES (NEW.osm_type, NEW.osm_id, NEW.class, NEW.type, NEW.name, NEW.address->'country', now(),
- 'Area reduced from '||st_area(existing.geometry)||' to '||st_area(NEW.geometry), existing.geometry, NEW.geometry);
- RETURN null;
- END IF;
-
- DELETE from import_polygon_error where osm_type = NEW.osm_type and osm_id = NEW.osm_id;
- DELETE from import_polygon_delete where osm_type = NEW.osm_type and osm_id = NEW.osm_id;
-
- -- To paraphrase, if there isn't an existing item, OR if the admin level has changed
- IF existingplacex.osm_type IS NULL OR
- (existingplacex.class = 'boundary' AND
- ((coalesce(existingplacex.admin_level, 15) != coalesce(NEW.admin_level, 15) AND existingplacex.type = 'administrative') OR
- (existingplacex.type != NEW.type)))
- THEN
-
- IF existingplacex.osm_type IS NOT NULL THEN
- -- sanity check: ignore admin_level changes on places with too many active children
- -- or we end up reindexing entire countries because somebody accidentally deleted admin_level
- --LIMIT INDEXING: SELECT count(*) FROM (SELECT 'a' FROM placex , place_addressline where address_place_id = existingplacex.place_id and placex.place_id = place_addressline.place_id and indexed_status = 0 and place_addressline.isaddress LIMIT 100001) sub INTO i;
- --LIMIT INDEXING: IF i > 100000 THEN
- --LIMIT INDEXING: RETURN null;
- --LIMIT INDEXING: END IF;
- END IF;
-
- IF existing.osm_type IS NOT NULL THEN
- -- pathological case caused by the triggerless copy into place during initial import
- -- force delete even for large areas, it will be reinserted later
- UPDATE place set geometry = ST_SetSRID(ST_Point(0,0), 4326) where osm_type = NEW.osm_type and osm_id = NEW.osm_id and class = NEW.class and type = NEW.type;
- DELETE from place where osm_type = NEW.osm_type and osm_id = NEW.osm_id and class = NEW.class and type = NEW.type;
- END IF;
-
- -- No - process it as a new insertion (hopefully of low rank or it will be slow)
- insert into placex (osm_type, osm_id, class, type, name,
- admin_level, address, extratags, geometry)
- values (NEW.osm_type, NEW.osm_id, NEW.class, NEW.type, NEW.name,
- NEW.admin_level, NEW.address, NEW.extratags, NEW.geometry);
-
- --DEBUG: RAISE WARNING 'insert done % % % % %',NEW.osm_type,NEW.osm_id,NEW.class,NEW.type,NEW.name;
-
- RETURN NEW;
- END IF;
-
- -- Special case for polygon shape changes because they tend to be large and we can be a bit clever about how we handle them
- IF existing.geometry::text != NEW.geometry::text
- AND ST_GeometryType(existing.geometry) in ('ST_Polygon','ST_MultiPolygon')
- AND ST_GeometryType(NEW.geometry) in ('ST_Polygon','ST_MultiPolygon')
- THEN
-
- -- Get the version of the geometry actually used (in placex table)
- select geometry from placex where osm_type = NEW.osm_type and osm_id = NEW.osm_id and class = NEW.class and type = NEW.type into existinggeometry;
-
- -- Performance limit
- IF st_area(NEW.geometry) < 0.000000001 AND st_area(existinggeometry) < 1 THEN
-
- -- re-index points that have moved in / out of the polygon, could be done as a single query but postgres gets the index usage wrong
- update placex set indexed_status = 2 where indexed_status = 0 and
- (st_covers(NEW.geometry, placex.geometry) OR ST_Intersects(NEW.geometry, placex.geometry))
- AND NOT (st_covers(existinggeometry, placex.geometry) OR ST_Intersects(existinggeometry, placex.geometry))
- AND rank_search > existingplacex.rank_search AND (rank_search < 28 or name is not null);
-
- update placex set indexed_status = 2 where indexed_status = 0 and
- (st_covers(existinggeometry, placex.geometry) OR ST_Intersects(existinggeometry, placex.geometry))
- AND NOT (st_covers(NEW.geometry, placex.geometry) OR ST_Intersects(NEW.geometry, placex.geometry))
- AND rank_search > existingplacex.rank_search AND (rank_search < 28 or name is not null);
-
- END IF;
-
- END IF;
-
-
- IF coalesce(existing.name::text, '') != coalesce(NEW.name::text, '')
- OR coalesce(existing.extratags::text, '') != coalesce(NEW.extratags::text, '')
- OR coalesce(existing.address, ''::hstore) != coalesce(NEW.address, ''::hstore)
- OR coalesce(existing.admin_level, 15) != coalesce(NEW.admin_level, 15)
- OR existing.geometry::text != NEW.geometry::text
- THEN
-
- update place set
- name = NEW.name,
- address = NEW.address,
- extratags = NEW.extratags,
- admin_level = NEW.admin_level,
- geometry = NEW.geometry
- where osm_type = NEW.osm_type and osm_id = NEW.osm_id and class = NEW.class and type = NEW.type;
-
-
- IF NEW.class in ('place','boundary') AND NEW.type in ('postcode','postal_code') THEN
- IF NEW.address is NULL OR NOT NEW.address ? 'postcode' THEN
- -- postcode was deleted, no longer retain in placex
- DELETE FROM placex where place_id = existingplacex.place_id;
- RETURN NULL;
- END IF;
-
- NEW.name := hstore('ref', NEW.address->'postcode');
- END IF;
-
- IF NEW.class in ('boundary')
- AND ST_GeometryType(NEW.geometry) not in ('ST_Polygon','ST_MultiPolygon') THEN
- DELETE FROM placex where place_id = existingplacex.place_id;
- RETURN NULL;
- END IF;
-
- update placex set
- name = NEW.name,
- address = NEW.address,
- parent_place_id = null,
- extratags = NEW.extratags,
- admin_level = NEW.admin_level,
- indexed_status = 2,
- geometry = NEW.geometry
- where place_id = existingplacex.place_id;
-
- -- if a node(=>house), which is part of a interpolation line, changes (e.g. the street attribute) => mark this line for reparenting
- -- (already here, because interpolation lines are reindexed before nodes, so in the second call it would be too late)
- IF NEW.osm_type='N' and NEW.class='place' and NEW.type='house' THEN
- -- Is this node part of an interpolation line? search for it in location_property_osmline and mark the interpolation line for reparenting
- update location_property_osmline p set indexed_status = 2 from planet_osm_ways w where p.linegeo && NEW.geometry and p.osm_id = w.id and NEW.osm_id = any(w.nodes);
- END IF;
-
- -- linked places should get potential new naming and addresses
- IF existingplacex.linked_place_id is not NULL THEN
- update placex x set
- name = p.name,
- extratags = p.extratags,
- indexed_status = 2
- from place p
- where x.place_id = existingplacex.linked_place_id
- and x.indexed_status = 0
- and x.osm_type = p.osm_type
- and x.osm_id = p.osm_id
- and x.class = p.class;
- END IF;
-
- END IF;
-
- -- Abort the add (we modified the existing place instead)
- RETURN NULL;
- END IF;
-
-END;
-$$ LANGUAGE plpgsql;
-
-
-CREATE OR REPLACE FUNCTION get_name_by_language(name hstore, languagepref TEXT[]) RETURNS TEXT
- AS $$
-DECLARE
- result TEXT;
-BEGIN
- IF name is null THEN
- RETURN null;
- END IF;
-
- FOR j IN 1..array_upper(languagepref,1) LOOP
- IF name ? languagepref[j] THEN
- result := trim(name->languagepref[j]);
- IF result != '' THEN
- return result;
- END IF;
- END IF;
- END LOOP;
-
- -- anything will do as a fallback - just take the first name type thing there is
- RETURN trim((avals(name))[1]);
-END;
-$$
-LANGUAGE plpgsql IMMUTABLE;
-
---housenumber only needed for tiger data
-CREATE OR REPLACE FUNCTION get_address_by_language(for_place_id BIGINT, housenumber INTEGER, languagepref TEXT[]) RETURNS TEXT
- AS $$
-DECLARE
- result TEXT[];
- currresult TEXT;
- prevresult TEXT;
- location RECORD;
-BEGIN
-
- result := '{}';
- prevresult := '';
-
- FOR location IN select * from get_addressdata(for_place_id, housenumber) where isaddress order by rank_address desc LOOP
- currresult := trim(get_name_by_language(location.name, languagepref));
- IF currresult != prevresult AND currresult IS NOT NULL AND result[(100 - location.rank_address)] IS NULL THEN
- result[(100 - location.rank_address)] := trim(get_name_by_language(location.name, languagepref));
- prevresult := currresult;
- END IF;
- END LOOP;
-
- RETURN array_to_string(result,', ');
-END;
-$$
-LANGUAGE plpgsql;
-
-DROP TYPE IF EXISTS addressline CASCADE;
-create type addressline as (
- place_id BIGINT,
- osm_type CHAR(1),
- osm_id BIGINT,
- name HSTORE,
- class TEXT,
- type TEXT,
- admin_level INTEGER,
- fromarea BOOLEAN,
- isaddress BOOLEAN,
- rank_address INTEGER,
- distance FLOAT
-);
-
-CREATE OR REPLACE FUNCTION get_addressdata(in_place_id BIGINT, in_housenumber INTEGER) RETURNS setof addressline
- AS $$
-DECLARE
- for_place_id BIGINT;
- result TEXT[];
- search TEXT[];
- found INTEGER;
- location RECORD;
- countrylocation RECORD;
- searchcountrycode varchar(2);
- searchhousenumber TEXT;
- searchhousename HSTORE;
- searchrankaddress INTEGER;
- searchpostcode TEXT;
- searchclass TEXT;
- searchtype TEXT;
- countryname HSTORE;
- hadcountry BOOLEAN;
-BEGIN
- -- first query osmline (interpolation lines)
- select parent_place_id, country_code, 30, postcode, null, 'place', 'house' from location_property_osmline
- WHERE place_id = in_place_id AND in_housenumber>=startnumber AND in_housenumber <= endnumber
- INTO for_place_id,searchcountrycode, searchrankaddress, searchpostcode, searchhousename, searchclass, searchtype;
- IF for_place_id IS NOT NULL THEN
- searchhousenumber = in_housenumber::text;
- END IF;
-
- --then query tiger data
- -- %NOTIGERDATA% IF 0 THEN
- IF for_place_id IS NULL THEN
- select parent_place_id,'us', 30, postcode, null, 'place', 'house' from location_property_tiger
- WHERE place_id = in_place_id AND in_housenumber>=startnumber AND in_housenumber <= endnumber
- INTO for_place_id,searchcountrycode, searchrankaddress, searchpostcode, searchhousename, searchclass, searchtype;
- IF for_place_id IS NOT NULL THEN
- searchhousenumber = in_housenumber::text;
- END IF;
- END IF;
- -- %NOTIGERDATA% END IF;
-
- -- %NOAUXDATA% IF 0 THEN
- IF for_place_id IS NULL THEN
- select parent_place_id,'us', housenumber, 30, postcode, null, 'place', 'house' from location_property_aux
- WHERE place_id = in_place_id
- INTO for_place_id,searchcountrycode, searchhousenumber, searchrankaddress, searchpostcode, searchhousename, searchclass, searchtype;
- END IF;
- -- %NOAUXDATA% END IF;
-
- -- postcode table
- IF for_place_id IS NULL THEN
- select parent_place_id, country_code, rank_address, postcode, 'place', 'postcode'
- FROM location_postcode
- WHERE place_id = in_place_id
- INTO for_place_id, searchcountrycode, searchrankaddress, searchpostcode, searchclass, searchtype;
- END IF;
-
- IF for_place_id IS NULL THEN
- select parent_place_id, country_code, housenumber, rank_search, postcode, name, class, type from placex
- WHERE place_id = in_place_id and rank_search > 27
- INTO for_place_id, searchcountrycode, searchhousenumber, searchrankaddress, searchpostcode, searchhousename, searchclass, searchtype;
- END IF;
-
- IF for_place_id IS NULL THEN
- select coalesce(linked_place_id, place_id), country_code,
- housenumber, rank_search, postcode, null
- from placex where place_id = in_place_id
- INTO for_place_id, searchcountrycode, searchhousenumber, searchrankaddress, searchpostcode, searchhousename;
- END IF;
-
---RAISE WARNING '% % % %',searchcountrycode, searchhousenumber, searchrankaddress, searchpostcode;
-
- found := 1000;
- hadcountry := false;
- FOR location IN
- select placex.place_id, osm_type, osm_id, name,
- class, type, admin_level, true as isaddress,
- CASE WHEN rank_address = 0 THEN 100 WHEN rank_address = 11 THEN 5 ELSE rank_address END as rank_address,
- 0 as distance, country_code, postcode
- from placex
- where place_id = for_place_id
- LOOP
---RAISE WARNING '%',location;
- IF searchcountrycode IS NULL AND location.country_code IS NOT NULL THEN
- searchcountrycode := location.country_code;
- END IF;
- IF location.type in ('postcode', 'postal_code') THEN
- location.isaddress := FALSE;
- ELSEIF location.rank_address = 4 THEN
- hadcountry := true;
- END IF;
- IF location.rank_address < 4 AND NOT hadcountry THEN
- select name from country_name where country_code = searchcountrycode limit 1 INTO countryname;
- IF countryname IS NOT NULL THEN
- countrylocation := ROW(null, null, null, countryname, 'place', 'country', null, true, true, 4, 0)::addressline;
- RETURN NEXT countrylocation;
- END IF;
- END IF;
- countrylocation := ROW(location.place_id, location.osm_type, location.osm_id, location.name, location.class,
- location.type, location.admin_level, true, location.isaddress, location.rank_address,
- location.distance)::addressline;
- RETURN NEXT countrylocation;
- found := location.rank_address;
- END LOOP;
-
- FOR location IN
- select placex.place_id, osm_type, osm_id, name,
- CASE WHEN extratags ? 'place' THEN 'place' ELSE class END as class,
- CASE WHEN extratags ? 'place' THEN extratags->'place' ELSE type END as type,
- admin_level, fromarea, isaddress,
- CASE WHEN address_place_id = for_place_id AND rank_address = 0 THEN 100 WHEN rank_address = 11 THEN 5 ELSE rank_address END as rank_address,
- distance,country_code,postcode
- from place_addressline join placex on (address_place_id = placex.place_id)
- where place_addressline.place_id = for_place_id
- and (cached_rank_address > 0 AND cached_rank_address < searchrankaddress)
- and address_place_id != for_place_id and linked_place_id is null
- and (placex.country_code IS NULL OR searchcountrycode IS NULL OR placex.country_code = searchcountrycode)
- order by rank_address desc,isaddress desc,fromarea desc,distance asc,rank_search desc
- LOOP
---RAISE WARNING '%',location;
- IF searchcountrycode IS NULL AND location.country_code IS NOT NULL THEN
- searchcountrycode := location.country_code;
- END IF;
- IF location.type in ('postcode', 'postal_code') THEN
- location.isaddress := FALSE;
- END IF;
- IF location.rank_address = 4 AND location.isaddress THEN
- hadcountry := true;
- END IF;
- IF location.rank_address < 4 AND NOT hadcountry THEN
- select name from country_name where country_code = searchcountrycode limit 1 INTO countryname;
- IF countryname IS NOT NULL THEN
- countrylocation := ROW(null, null, null, countryname, 'place', 'country', null, true, true, 4, 0)::addressline;
- RETURN NEXT countrylocation;
- END IF;
- END IF;
- countrylocation := ROW(location.place_id, location.osm_type, location.osm_id, location.name, location.class,
- location.type, location.admin_level, location.fromarea, location.isaddress, location.rank_address,
- location.distance)::addressline;
- RETURN NEXT countrylocation;
- found := location.rank_address;
- END LOOP;
-
- IF found > 4 THEN
- select name from country_name where country_code = searchcountrycode limit 1 INTO countryname;
---RAISE WARNING '% % %',found,searchcountrycode,countryname;
- IF countryname IS NOT NULL THEN
- location := ROW(null, null, null, countryname, 'place', 'country', null, true, true, 4, 0)::addressline;
- RETURN NEXT location;
- END IF;
- END IF;
-
- IF searchcountrycode IS NOT NULL THEN
- location := ROW(null, null, null, hstore('ref', searchcountrycode), 'place', 'country_code', null, true, false, 4, 0)::addressline;
- RETURN NEXT location;
- END IF;
-
- IF searchhousename IS NOT NULL THEN
- location := ROW(in_place_id, null, null, searchhousename, searchclass, searchtype, null, true, true, 29, 0)::addressline;
- RETURN NEXT location;
- END IF;
-
- IF searchhousenumber IS NOT NULL THEN
- location := ROW(in_place_id, null, null, hstore('ref', searchhousenumber), 'place', 'house_number', null, true, true, 28, 0)::addressline;
- RETURN NEXT location;
- END IF;
-
- IF searchpostcode IS NOT NULL THEN
- location := ROW(null, null, null, hstore('ref', searchpostcode), 'place', 'postcode', null, true, true, 5, 0)::addressline;
- RETURN NEXT location;
- END IF;
-
- RETURN;
-END;
-$$
-LANGUAGE plpgsql;
-
-
-CREATE OR REPLACE FUNCTION get_searchrank_label(rank INTEGER) RETURNS TEXT
- AS $$
-DECLARE
-BEGIN
- IF rank < 2 THEN
- RETURN 'Continent';
- ELSEIF rank < 4 THEN
- RETURN 'Sea';
- ELSEIF rank < 8 THEN
- RETURN 'Country';
- ELSEIF rank < 12 THEN
- RETURN 'State';
- ELSEIF rank < 16 THEN
- RETURN 'County';
- ELSEIF rank = 16 THEN
- RETURN 'City';
- ELSEIF rank = 17 THEN
- RETURN 'Town / Island';
- ELSEIF rank = 18 THEN
- RETURN 'Village / Hamlet';
- ELSEIF rank = 20 THEN
- RETURN 'Suburb';
- ELSEIF rank = 21 THEN
- RETURN 'Postcode Area';
- ELSEIF rank = 22 THEN
- RETURN 'Croft / Farm / Locality / Islet';
- ELSEIF rank = 23 THEN
- RETURN 'Postcode Area';
- ELSEIF rank = 25 THEN
- RETURN 'Postcode Point';
- ELSEIF rank = 26 THEN
- RETURN 'Street / Major Landmark';
- ELSEIF rank = 27 THEN
- RETURN 'Minory Street / Path';
- ELSEIF rank = 28 THEN
- RETURN 'House / Building';
- ELSE
- RETURN 'Other: '||rank;
- END IF;
-
-END;
-$$
-LANGUAGE plpgsql;
-
-CREATE OR REPLACE FUNCTION get_addressrank_label(rank INTEGER) RETURNS TEXT
- AS $$
-DECLARE
-BEGIN
- IF rank = 0 THEN
- RETURN 'None';
- ELSEIF rank < 2 THEN
- RETURN 'Continent';
- ELSEIF rank < 4 THEN
- RETURN 'Sea';
- ELSEIF rank = 5 THEN
- RETURN 'Postcode';
- ELSEIF rank < 8 THEN
- RETURN 'Country';
- ELSEIF rank < 12 THEN
- RETURN 'State';
- ELSEIF rank < 16 THEN
- RETURN 'County';
- ELSEIF rank = 16 THEN
- RETURN 'City';
- ELSEIF rank = 17 THEN
- RETURN 'Town / Village / Hamlet';
- ELSEIF rank = 20 THEN
- RETURN 'Suburb';
- ELSEIF rank = 21 THEN
- RETURN 'Postcode Area';
- ELSEIF rank = 22 THEN
- RETURN 'Croft / Farm / Locality / Islet';
- ELSEIF rank = 23 THEN
- RETURN 'Postcode Area';
- ELSEIF rank = 25 THEN
- RETURN 'Postcode Point';
- ELSEIF rank = 26 THEN
- RETURN 'Street / Major Landmark';
- ELSEIF rank = 27 THEN
- RETURN 'Minory Street / Path';
- ELSEIF rank = 28 THEN
- RETURN 'House / Building';
- ELSE
- RETURN 'Other: '||rank;
- END IF;
-
-END;
-$$
-LANGUAGE plpgsql;
-
-CREATE OR REPLACE FUNCTION aux_create_property(pointgeo GEOMETRY, in_housenumber TEXT,
- in_street TEXT, in_isin TEXT, in_postcode TEXT, in_countrycode char(2)) RETURNS INTEGER
- AS $$
-DECLARE
-
- newpoints INTEGER;
- place_centroid GEOMETRY;
- out_partition INTEGER;
- out_parent_place_id BIGINT;
- location RECORD;
- address_street_word_id INTEGER;
- out_postcode TEXT;
-
-BEGIN
-
- place_centroid := ST_Centroid(pointgeo);
- out_partition := get_partition(in_countrycode);
- out_parent_place_id := null;
-
- address_street_word_id := get_name_id(make_standard_name(in_street));
- IF address_street_word_id IS NOT NULL THEN
- FOR location IN SELECT * from getNearestNamedRoadFeature(out_partition, place_centroid, address_street_word_id) LOOP
- out_parent_place_id := location.place_id;
- END LOOP;
- END IF;
-
- IF out_parent_place_id IS NULL THEN
- FOR location IN SELECT place_id FROM getNearestRoadFeature(out_partition, place_centroid) LOOP
- out_parent_place_id := location.place_id;
- END LOOP;
- END IF;
-
- out_postcode := in_postcode;
- IF out_postcode IS NULL THEN
- SELECT postcode from placex where place_id = out_parent_place_id INTO out_postcode;
- END IF;
- -- XXX look into postcode table
-
- newpoints := 0;
- insert into location_property_aux (place_id, partition, parent_place_id, housenumber, postcode, centroid)
- values (nextval('seq_place'), out_partition, out_parent_place_id, in_housenumber, out_postcode, place_centroid);
- newpoints := newpoints + 1;
-
- RETURN newpoints;
-END;
-$$
-LANGUAGE plpgsql;
-
-CREATE OR REPLACE FUNCTION get_osm_rel_members(members TEXT[], member TEXT) RETURNS TEXT[]
- AS $$
-DECLARE
- result TEXT[];
- i INTEGER;
-BEGIN
-
- FOR i IN 1..ARRAY_UPPER(members,1) BY 2 LOOP
- IF members[i+1] = member THEN
- result := result || members[i];
- END IF;
- END LOOP;
-
- return result;
-END;
-$$
-LANGUAGE plpgsql;
-
-CREATE OR REPLACE FUNCTION get_osm_rel_members(members TEXT[], memberLabels TEXT[]) RETURNS SETOF TEXT
- AS $$
-DECLARE
- i INTEGER;
-BEGIN
-
- FOR i IN 1..ARRAY_UPPER(members,1) BY 2 LOOP
- IF members[i+1] = ANY(memberLabels) THEN
- RETURN NEXT members[i];
- END IF;
- END LOOP;
-
- RETURN;
-END;
-$$
-LANGUAGE plpgsql;
-
--- See: http://stackoverflow.com/questions/6410088/how-can-i-mimic-the-php-urldecode-function-in-postgresql
-CREATE OR REPLACE FUNCTION decode_url_part(p varchar) RETURNS varchar
- AS $$
-SELECT convert_from(CAST(E'\\x' || array_to_string(ARRAY(
- SELECT CASE WHEN length(r.m[1]) = 1 THEN encode(convert_to(r.m[1], 'SQL_ASCII'), 'hex') ELSE substring(r.m[1] from 2 for 2) END
- FROM regexp_matches($1, '%[0-9a-f][0-9a-f]|.', 'gi') AS r(m)
-), '') AS bytea), 'UTF8');
-$$
-LANGUAGE SQL IMMUTABLE STRICT;
-
-CREATE OR REPLACE FUNCTION catch_decode_url_part(p varchar) RETURNS varchar
- AS $$
-DECLARE
-BEGIN
- RETURN decode_url_part(p);
-EXCEPTION
- WHEN others THEN return null;
-END;
-$$
-LANGUAGE plpgsql IMMUTABLE;
-
-DROP TYPE wikipedia_article_match CASCADE;
-create type wikipedia_article_match as (
- language TEXT,
- title TEXT,
- importance FLOAT
-);
-
-CREATE OR REPLACE FUNCTION get_wikipedia_match(extratags HSTORE, country_code varchar(2)) RETURNS wikipedia_article_match
- AS $$
-DECLARE
- langs TEXT[];
- i INT;
- wiki_article TEXT;
- wiki_article_title TEXT;
- wiki_article_language TEXT;
- result wikipedia_article_match;
-BEGIN
- langs := ARRAY['english','country','ar','bg','ca','cs','da','de','en','es','eo','eu','fa','fr','ko','hi','hr','id','it','he','lt','hu','ms','nl','ja','no','pl','pt','kk','ro','ru','sk','sl','sr','fi','sv','tr','uk','vi','vo','war','zh'];
- i := 1;
- WHILE langs[i] IS NOT NULL LOOP
- wiki_article := extratags->(case when langs[i] in ('english','country') THEN 'wikipedia' ELSE 'wikipedia:'||langs[i] END);
- IF wiki_article is not null THEN
- wiki_article := regexp_replace(wiki_article,E'^(.*?)([a-z]{2,3}).wikipedia.org/wiki/',E'\\2:');
- wiki_article := regexp_replace(wiki_article,E'^(.*?)([a-z]{2,3}).wikipedia.org/w/index.php\\?title=',E'\\2:');
- wiki_article := regexp_replace(wiki_article,E'^(.*?)/([a-z]{2,3})/wiki/',E'\\2:');
- --wiki_article := regexp_replace(wiki_article,E'^(.*?)([a-z]{2,3})[=:]',E'\\2:');
- wiki_article := replace(wiki_article,' ','_');
- IF strpos(wiki_article, ':') IN (3,4) THEN
- wiki_article_language := lower(trim(split_part(wiki_article, ':', 1)));
- wiki_article_title := trim(substr(wiki_article, strpos(wiki_article, ':')+1));
- ELSE
- wiki_article_title := trim(wiki_article);
- wiki_article_language := CASE WHEN langs[i] = 'english' THEN 'en' WHEN langs[i] = 'country' THEN get_country_language_code(country_code) ELSE langs[i] END;
- END IF;
-
- select wikipedia_article.language,wikipedia_article.title,wikipedia_article.importance
- from wikipedia_article
- where language = wiki_article_language and
- (title = wiki_article_title OR title = catch_decode_url_part(wiki_article_title) OR title = replace(catch_decode_url_part(wiki_article_title),E'\\',''))
- UNION ALL
- select wikipedia_article.language,wikipedia_article.title,wikipedia_article.importance
- from wikipedia_redirect join wikipedia_article on (wikipedia_redirect.language = wikipedia_article.language and wikipedia_redirect.to_title = wikipedia_article.title)
- where wikipedia_redirect.language = wiki_article_language and
- (from_title = wiki_article_title OR from_title = catch_decode_url_part(wiki_article_title) OR from_title = replace(catch_decode_url_part(wiki_article_title),E'\\',''))
- order by importance desc limit 1 INTO result;
-
- IF result.language is not null THEN
- return result;
- END IF;
- END IF;
- i := i + 1;
- END LOOP;
- RETURN NULL;
-END;
-$$
-LANGUAGE plpgsql;
-
-CREATE OR REPLACE FUNCTION quad_split_geometry(geometry GEOMETRY, maxarea FLOAT, maxdepth INTEGER)
- RETURNS SETOF GEOMETRY
- AS $$
-DECLARE
- xmin FLOAT;
- ymin FLOAT;
- xmax FLOAT;
- ymax FLOAT;
- xmid FLOAT;
- ymid FLOAT;
- secgeo GEOMETRY;
- secbox GEOMETRY;
- seg INTEGER;
- geo RECORD;
- area FLOAT;
- remainingdepth INTEGER;
- added INTEGER;
-
-BEGIN
-
--- RAISE WARNING 'quad_split_geometry: maxarea=%, depth=%',maxarea,maxdepth;
-
- IF (ST_GeometryType(geometry) not in ('ST_Polygon','ST_MultiPolygon') OR NOT ST_IsValid(geometry)) THEN
- RETURN NEXT geometry;
- RETURN;
- END IF;
-
- remainingdepth := maxdepth - 1;
- area := ST_AREA(geometry);
- IF remainingdepth < 1 OR area < maxarea THEN
- RETURN NEXT geometry;
- RETURN;
- END IF;
-
- xmin := st_xmin(geometry);
- xmax := st_xmax(geometry);
- ymin := st_ymin(geometry);
- ymax := st_ymax(geometry);
- secbox := ST_SetSRID(ST_MakeBox2D(ST_Point(ymin,xmin),ST_Point(ymax,xmax)),4326);
-
- -- if the geometry completely covers the box don't bother to slice any more
- IF ST_AREA(secbox) = area THEN
- RETURN NEXT geometry;
- RETURN;
- END IF;
-
- xmid := (xmin+xmax)/2;
- ymid := (ymin+ymax)/2;
-
- added := 0;
- FOR seg IN 1..4 LOOP
-
- IF seg = 1 THEN
- secbox := ST_SetSRID(ST_MakeBox2D(ST_Point(xmin,ymin),ST_Point(xmid,ymid)),4326);
- END IF;
- IF seg = 2 THEN
- secbox := ST_SetSRID(ST_MakeBox2D(ST_Point(xmin,ymid),ST_Point(xmid,ymax)),4326);
- END IF;
- IF seg = 3 THEN
- secbox := ST_SetSRID(ST_MakeBox2D(ST_Point(xmid,ymin),ST_Point(xmax,ymid)),4326);
- END IF;
- IF seg = 4 THEN
- secbox := ST_SetSRID(ST_MakeBox2D(ST_Point(xmid,ymid),ST_Point(xmax,ymax)),4326);
- END IF;
-
- IF st_intersects(geometry, secbox) THEN
- secgeo := st_intersection(geometry, secbox);
- IF NOT ST_IsEmpty(secgeo) AND ST_GeometryType(secgeo) in ('ST_Polygon','ST_MultiPolygon') THEN
- FOR geo IN select quad_split_geometry(secgeo, maxarea, remainingdepth) as geom LOOP
- IF NOT ST_IsEmpty(geo.geom) AND ST_GeometryType(geo.geom) in ('ST_Polygon','ST_MultiPolygon') THEN
- added := added + 1;
- RETURN NEXT geo.geom;
- END IF;
- END LOOP;
- END IF;
- END IF;
- END LOOP;
-
- RETURN;
-END;
-$$
-LANGUAGE plpgsql;
-
-CREATE OR REPLACE FUNCTION split_geometry(geometry GEOMETRY)
- RETURNS SETOF GEOMETRY
- AS $$
-DECLARE
- geo RECORD;
-BEGIN
- -- 10000000000 is ~~ 1x1 degree
- FOR geo IN select quad_split_geometry(geometry, 0.25, 20) as geom LOOP
- RETURN NEXT geo.geom;
- END LOOP;
- RETURN;
-END;
-$$
-LANGUAGE plpgsql;
-
-
-CREATE OR REPLACE FUNCTION place_force_delete(placeid BIGINT) RETURNS BOOLEAN
- AS $$
-DECLARE
- osmid BIGINT;
- osmtype character(1);
- pclass text;
- ptype text;
-BEGIN
- SELECT osm_type, osm_id, class, type FROM placex WHERE place_id = placeid INTO osmtype, osmid, pclass, ptype;
- DELETE FROM import_polygon_delete where osm_type = osmtype and osm_id = osmid and class = pclass and type = ptype;
- DELETE FROM import_polygon_error where osm_type = osmtype and osm_id = osmid and class = pclass and type = ptype;
- -- force delete from place/placex by making it a very small geometry
- UPDATE place set geometry = ST_SetSRID(ST_Point(0,0), 4326) where osm_type = osmtype and osm_id = osmid and class = pclass and type = ptype;
- DELETE FROM place where osm_type = osmtype and osm_id = osmid and class = pclass and type = ptype;
-
- RETURN TRUE;
-END;
-$$
-LANGUAGE plpgsql;
-
-CREATE OR REPLACE FUNCTION place_force_update(placeid BIGINT) RETURNS BOOLEAN
- AS $$
-DECLARE
- placegeom GEOMETRY;
- geom GEOMETRY;
- diameter FLOAT;
- rank INTEGER;
-BEGIN
- UPDATE placex SET indexed_status = 2 WHERE place_id = placeid;
- SELECT geometry, rank_search FROM placex WHERE place_id = placeid INTO placegeom, rank;
- IF placegeom IS NOT NULL AND ST_IsValid(placegeom) THEN
- IF ST_GeometryType(placegeom) in ('ST_Polygon','ST_MultiPolygon') THEN
- FOR geom IN select split_geometry(placegeom) FROM placex WHERE place_id = placeid LOOP
- update placex set indexed_status = 2 where (st_covers(geom, placex.geometry) OR ST_Intersects(geom, placex.geometry))
- AND rank_search > rank and indexed_status = 0 and ST_geometrytype(placex.geometry) = 'ST_Point' and (rank_search < 28 or name is not null or (rank >= 16 and address ? 'place'));
- update placex set indexed_status = 2 where (st_covers(geom, placex.geometry) OR ST_Intersects(geom, placex.geometry))
- AND rank_search > rank and indexed_status = 0 and ST_geometrytype(placex.geometry) != 'ST_Point' and (rank_search < 28 or name is not null or (rank >= 16 and address ? 'place'));
- END LOOP;
- ELSE
- diameter := 0;
- IF rank = 11 THEN
- diameter := 0.05;
- ELSEIF rank < 18 THEN
- diameter := 0.1;
- ELSEIF rank < 20 THEN
- diameter := 0.05;
- ELSEIF rank = 21 THEN
- diameter := 0.001;
- ELSEIF rank < 24 THEN
- diameter := 0.02;
- ELSEIF rank < 26 THEN
- diameter := 0.002; -- 100 to 200 meters
- ELSEIF rank < 28 THEN
- diameter := 0.001; -- 50 to 100 meters
- END IF;
- IF diameter > 0 THEN
- IF rank >= 26 THEN
- -- roads may cause reparenting for >27 rank places
- update placex set indexed_status = 2 where indexed_status = 0 and rank_search > rank and ST_DWithin(placex.geometry, placegeom, diameter);
- ELSEIF rank >= 16 THEN
- -- up to rank 16, street-less addresses may need reparenting
- update placex set indexed_status = 2 where indexed_status = 0 and rank_search > rank and ST_DWithin(placex.geometry, placegeom, diameter) and (rank_search < 28 or name is not null or address ? 'place');
- ELSE
- -- for all other places the search terms may change as well
- update placex set indexed_status = 2 where indexed_status = 0 and rank_search > rank and ST_DWithin(placex.geometry, placegeom, diameter) and (rank_search < 28 or name is not null);
- END IF;
- END IF;
- END IF;
- RETURN TRUE;
- END IF;
-
- RETURN FALSE;
-END;
-$$
-LANGUAGE plpgsql;
--- /dev/null
+-- Functions for returning address information for a place.
+
+DROP TYPE IF EXISTS addressline CASCADE;
+CREATE TYPE addressline as (
+ place_id BIGINT,
+ osm_type CHAR(1),
+ osm_id BIGINT,
+ name HSTORE,
+ class TEXT,
+ type TEXT,
+ place_type TEXT,
+ admin_level INTEGER,
+ fromarea BOOLEAN,
+ isaddress BOOLEAN,
+ rank_address INTEGER,
+ distance FLOAT
+);
+
+
+CREATE OR REPLACE FUNCTION get_name_by_language(name hstore, languagepref TEXT[])
+ RETURNS TEXT
+ AS $$
+DECLARE
+ result TEXT;
+BEGIN
+ IF name is null THEN
+ RETURN null;
+ END IF;
+
+ FOR j IN 1..array_upper(languagepref,1) LOOP
+ IF name ? languagepref[j] THEN
+ result := trim(name->languagepref[j]);
+ IF result != '' THEN
+ return result;
+ END IF;
+ END IF;
+ END LOOP;
+
+ -- anything will do as a fallback - just take the first name type thing there is
+ RETURN trim((avals(name))[1]);
+END;
+$$
+LANGUAGE plpgsql IMMUTABLE;
+
+
+--housenumber only needed for tiger data
+CREATE OR REPLACE FUNCTION get_address_by_language(for_place_id BIGINT,
+ housenumber INTEGER,
+ languagepref TEXT[])
+ RETURNS TEXT
+ AS $$
+DECLARE
+ result TEXT[];
+ currresult TEXT;
+ prevresult TEXT;
+ location RECORD;
+BEGIN
+
+ result := '{}';
+ prevresult := '';
+
+ FOR location IN
+ SELECT name,
+ CASE WHEN place_id = for_place_id THEN 99 ELSE rank_address END as rank_address
+ FROM get_addressdata(for_place_id, housenumber)
+ WHERE isaddress order by rank_address desc
+ LOOP
+ currresult := trim(get_name_by_language(location.name, languagepref));
+ IF currresult != prevresult AND currresult IS NOT NULL
+ AND result[(100 - location.rank_address)] IS NULL
+ THEN
+ result[(100 - location.rank_address)] := currresult;
+ prevresult := currresult;
+ END IF;
+ END LOOP;
+
+ RETURN array_to_string(result,', ');
+END;
+$$
+LANGUAGE plpgsql STABLE;
+
+
+-- Compute the list of address parts for the given place.
+--
+-- If in_housenumber is greator or equal 0, look for an interpolation.
+CREATE OR REPLACE FUNCTION get_addressdata(in_place_id BIGINT, in_housenumber INTEGER)
+ RETURNS setof addressline
+ AS $$
+DECLARE
+ for_place_id BIGINT;
+ result TEXT[];
+ search TEXT[];
+ found INTEGER;
+ location RECORD;
+ countrylocation RECORD;
+ searchcountrycode varchar(2);
+ searchhousenumber TEXT;
+ searchhousename HSTORE;
+ searchrankaddress INTEGER;
+ searchpostcode TEXT;
+ postcode_isexact BOOL;
+ searchclass TEXT;
+ searchtype TEXT;
+ countryname HSTORE;
+BEGIN
+ -- The place ein question might not have a direct entry in place_addressline.
+ -- Look for the parent of such places then and save if in for_place_id.
+
+ postcode_isexact := false;
+
+ -- first query osmline (interpolation lines)
+ IF in_housenumber >= 0 THEN
+ SELECT parent_place_id, country_code, in_housenumber::text, 30, postcode,
+ null, 'place', 'house'
+ FROM location_property_osmline
+ WHERE place_id = in_place_id AND in_housenumber>=startnumber
+ AND in_housenumber <= endnumber
+ INTO for_place_id, searchcountrycode, searchhousenumber, searchrankaddress,
+ searchpostcode, searchhousename, searchclass, searchtype;
+ END IF;
+
+ --then query tiger data
+ -- %NOTIGERDATA% IF 0 THEN
+ IF for_place_id IS NULL AND in_housenumber >= 0 THEN
+ SELECT parent_place_id, 'us', in_housenumber::text, 30, postcode, null,
+ 'place', 'house'
+ FROM location_property_tiger
+ WHERE place_id = in_place_id AND in_housenumber >= startnumber
+ AND in_housenumber <= endnumber
+ INTO for_place_id, searchcountrycode, searchhousenumber, searchrankaddress,
+ searchpostcode, searchhousename, searchclass, searchtype;
+ END IF;
+ -- %NOTIGERDATA% END IF;
+
+ -- %NOAUXDATA% IF 0 THEN
+ IF for_place_id IS NULL THEN
+ SELECT parent_place_id, 'us', housenumber, 30, postcode, null, 'place', 'house'
+ FROM location_property_aux
+ WHERE place_id = in_place_id
+ INTO for_place_id,searchcountrycode, searchhousenumber, searchrankaddress,
+ searchpostcode, searchhousename, searchclass, searchtype;
+ END IF;
+ -- %NOAUXDATA% END IF;
+
+ -- postcode table
+ IF for_place_id IS NULL THEN
+ SELECT parent_place_id, country_code, rank_search, postcode, 'place', 'postcode'
+ FROM location_postcode
+ WHERE place_id = in_place_id
+ INTO for_place_id, searchcountrycode, searchrankaddress, searchpostcode,
+ searchclass, searchtype;
+ END IF;
+
+ -- POI objects in the placex table
+ IF for_place_id IS NULL THEN
+ SELECT parent_place_id, country_code, housenumber, rank_search,
+ postcode, address is not null and address ? 'postcode',
+ name, class, type
+ FROM placex
+ WHERE place_id = in_place_id and rank_search > 27
+ INTO for_place_id, searchcountrycode, searchhousenumber, searchrankaddress,
+ searchpostcode, postcode_isexact, searchhousename, searchclass, searchtype;
+ END IF;
+
+ -- If for_place_id is still NULL at this point then the object has its own
+ -- entry in place_address line. However, still check if there is not linked
+ -- place we should be using instead.
+ IF for_place_id IS NULL THEN
+ select coalesce(linked_place_id, place_id), country_code,
+ housenumber, rank_search, postcode,
+ address is not null and address ? 'postcode', null
+ from placex where place_id = in_place_id
+ INTO for_place_id, searchcountrycode, searchhousenumber, searchrankaddress, searchpostcode, postcode_isexact, searchhousename;
+ END IF;
+
+--RAISE WARNING '% % % %',searchcountrycode, searchhousenumber, searchrankaddress, searchpostcode;
+
+ found := 1000; -- the lowest rank_address included
+
+ -- Return the record for the base entry.
+ FOR location IN
+ SELECT placex.place_id, osm_type, osm_id, name,
+ class, type, admin_level,
+ type not in ('postcode', 'postal_code') as isaddress,
+ CASE WHEN rank_address = 0 THEN 100
+ WHEN rank_address = 11 THEN 5
+ ELSE rank_address END as rank_address,
+ 0 as distance, country_code, postcode
+ FROM placex
+ WHERE place_id = for_place_id
+ LOOP
+--RAISE WARNING '%',location;
+ IF searchcountrycode IS NULL AND location.country_code IS NOT NULL THEN
+ searchcountrycode := location.country_code;
+ END IF;
+ IF location.rank_address < 4 THEN
+ -- no country locations for ranks higher than country
+ searchcountrycode := NULL;
+ END IF;
+ countrylocation := ROW(location.place_id, location.osm_type, location.osm_id,
+ location.name, location.class, location.type, NULL,
+ location.admin_level, true, location.isaddress,
+ location.rank_address, location.distance)::addressline;
+ RETURN NEXT countrylocation;
+ found := location.rank_address;
+ END LOOP;
+
+ FOR location IN
+ SELECT placex.place_id, osm_type, osm_id, name, class, type,
+ coalesce(extratags->'place', extratags->'linked_place') as place_type,
+ admin_level, fromarea, isaddress,
+ CASE WHEN rank_address = 11 THEN 5 ELSE rank_address END as rank_address,
+ distance, country_code, postcode
+ FROM place_addressline join placex on (address_place_id = placex.place_id)
+ WHERE place_addressline.place_id = for_place_id
+ AND (cached_rank_address >= 4 AND cached_rank_address < searchrankaddress)
+ AND linked_place_id is null
+ AND (placex.country_code IS NULL OR searchcountrycode IS NULL
+ OR placex.country_code = searchcountrycode)
+ ORDER BY rank_address desc, isaddress desc, fromarea desc,
+ distance asc, rank_search desc
+ LOOP
+--RAISE WARNING '%',location;
+ IF searchcountrycode IS NULL AND location.country_code IS NOT NULL THEN
+ searchcountrycode := location.country_code;
+ END IF;
+ IF location.type in ('postcode', 'postal_code')
+ AND searchpostcode is not null
+ THEN
+ -- If the place had a postcode assigned, take this one only
+ -- into consideration when it is an area and the place does not have
+ -- a postcode itself.
+ IF location.fromarea AND not postcode_isexact AND location.isaddress THEN
+ searchpostcode := null; -- remove the less exact postcode
+ ELSE
+ location.isaddress := false;
+ END IF;
+ END IF;
+ countrylocation := ROW(location.place_id, location.osm_type, location.osm_id,
+ location.name, location.class, location.type,
+ location.place_type,
+ location.admin_level, location.fromarea,
+ location.isaddress, location.rank_address,
+ location.distance)::addressline;
+ RETURN NEXT countrylocation;
+ found := location.rank_address;
+ END LOOP;
+
+ -- If no country was included yet, add the name information from country_name.
+ IF found > 4 THEN
+ SELECT name FROM country_name
+ WHERE country_code = searchcountrycode LIMIT 1 INTO countryname;
+--RAISE WARNING '% % %',found,searchcountrycode,countryname;
+ IF countryname IS NOT NULL THEN
+ location := ROW(null, null, null, countryname, 'place', 'country', NULL,
+ null, true, true, 4, 0)::addressline;
+ RETURN NEXT location;
+ END IF;
+ END IF;
+
+ -- Finally add some artificial rows.
+ IF searchcountrycode IS NOT NULL THEN
+ location := ROW(null, null, null, hstore('ref', searchcountrycode),
+ 'place', 'country_code', null, null, true, false, 4, 0)::addressline;
+ RETURN NEXT location;
+ END IF;
+
+ IF searchhousename IS NOT NULL THEN
+ location := ROW(in_place_id, null, null, searchhousename, searchclass,
+ searchtype, null, null, true, true, 29, 0)::addressline;
+ RETURN NEXT location;
+ END IF;
+
+ IF searchhousenumber IS NOT NULL THEN
+ location := ROW(in_place_id, null, null, hstore('ref', searchhousenumber),
+ 'place', 'house_number', null, null, true, true, 28, 0)::addressline;
+ RETURN NEXT location;
+ END IF;
+
+ IF searchpostcode IS NOT NULL THEN
+ location := ROW(null, null, null, hstore('ref', searchpostcode), 'place',
+ 'postcode', null, null, false, true, 5, 0)::addressline;
+ RETURN NEXT location;
+ END IF;
+
+ RETURN;
+END;
+$$
+LANGUAGE plpgsql STABLE;
--- /dev/null
+-- Functions for adding external data (currently unused).
+
+CREATE OR REPLACE FUNCTION aux_create_property(pointgeo GEOMETRY, in_housenumber TEXT,
+ in_street TEXT, in_isin TEXT,
+ in_postcode TEXT, in_countrycode char(2))
+ RETURNS INTEGER
+ AS $$
+DECLARE
+
+ newpoints INTEGER;
+ place_centroid GEOMETRY;
+ out_partition INTEGER;
+ out_parent_place_id BIGINT;
+ location RECORD;
+ address_street_word_ids INTEGER[];
+ out_postcode TEXT;
+
+BEGIN
+
+ place_centroid := ST_Centroid(pointgeo);
+ out_partition := get_partition(in_countrycode);
+ out_parent_place_id := null;
+
+ address_street_word_ids := word_ids_from_name(in_street);
+ IF address_street_word_ids IS NOT NULL THEN
+ out_parent_place_id := getNearestNamedRoadPlaceId(out_partition, place_centroid,
+ address_street_word_ids);
+ END IF;
+
+ IF out_parent_place_id IS NULL THEN
+ SELECT getNearestRoadPlaceId(out_partition, place_centroid)
+ INTO out_parent_place_id;
+ END LOOP;
+ END IF;
+
+ out_postcode := in_postcode;
+ IF out_postcode IS NULL THEN
+ SELECT postcode from placex where place_id = out_parent_place_id INTO out_postcode;
+ END IF;
+ -- XXX look into postcode table
+
+ newpoints := 0;
+ insert into location_property_aux (place_id, partition, parent_place_id,
+ housenumber, postcode, centroid)
+ values (nextval('seq_place'), out_partition, out_parent_place_id,
+ in_housenumber, out_postcode, place_centroid);
+ newpoints := newpoints + 1;
+
+ RETURN newpoints;
+END;
+$$
+LANGUAGE plpgsql;
+
--- /dev/null
+-- Functions for interpreting wkipedia/wikidata tags and computing importance.
+
+DROP TYPE IF EXISTS wikipedia_article_match CASCADE;
+CREATE TYPE wikipedia_article_match as (
+ language TEXT,
+ title TEXT,
+ importance FLOAT
+);
+
+DROP TYPE IF EXISTS place_importance CASCADE;
+CREATE TYPE place_importance as (
+ importance FLOAT,
+ wikipedia TEXT
+);
+
+
+-- See: http://stackoverflow.com/questions/6410088/how-can-i-mimic-the-php-urldecode-function-in-postgresql
+CREATE OR REPLACE FUNCTION decode_url_part(p varchar)
+ RETURNS varchar
+ AS $$
+SELECT convert_from(CAST(E'\\x' || array_to_string(ARRAY(
+ SELECT CASE WHEN length(r.m[1]) = 1 THEN encode(convert_to(r.m[1], 'SQL_ASCII'), 'hex') ELSE substring(r.m[1] from 2 for 2) END
+ FROM regexp_matches($1, '%[0-9a-f][0-9a-f]|.', 'gi') AS r(m)
+), '') AS bytea), 'UTF8');
+$$
+LANGUAGE SQL IMMUTABLE STRICT;
+
+
+CREATE OR REPLACE FUNCTION catch_decode_url_part(p varchar)
+ RETURNS varchar
+ AS $$
+DECLARE
+BEGIN
+ RETURN decode_url_part(p);
+EXCEPTION
+ WHEN others THEN return null;
+END;
+$$
+LANGUAGE plpgsql IMMUTABLE STRICT;
+
+
+CREATE OR REPLACE FUNCTION get_wikipedia_match(extratags HSTORE, country_code varchar(2))
+ RETURNS wikipedia_article_match
+ AS $$
+DECLARE
+ langs TEXT[];
+ i INT;
+ wiki_article TEXT;
+ wiki_article_title TEXT;
+ wiki_article_language TEXT;
+ result wikipedia_article_match;
+BEGIN
+ langs := ARRAY['english','country','ar','bg','ca','cs','da','de','en','es','eo','eu','fa','fr','ko','hi','hr','id','it','he','lt','hu','ms','nl','ja','no','pl','pt','kk','ro','ru','sk','sl','sr','fi','sv','tr','uk','vi','vo','war','zh'];
+ i := 1;
+ WHILE langs[i] IS NOT NULL LOOP
+ wiki_article := extratags->(case when langs[i] in ('english','country') THEN 'wikipedia' ELSE 'wikipedia:'||langs[i] END);
+ IF wiki_article is not null THEN
+ wiki_article := regexp_replace(wiki_article,E'^(.*?)([a-z]{2,3}).wikipedia.org/wiki/',E'\\2:');
+ wiki_article := regexp_replace(wiki_article,E'^(.*?)([a-z]{2,3}).wikipedia.org/w/index.php\\?title=',E'\\2:');
+ wiki_article := regexp_replace(wiki_article,E'^(.*?)/([a-z]{2,3})/wiki/',E'\\2:');
+ --wiki_article := regexp_replace(wiki_article,E'^(.*?)([a-z]{2,3})[=:]',E'\\2:');
+ wiki_article := replace(wiki_article,' ','_');
+ IF strpos(wiki_article, ':') IN (3,4) THEN
+ wiki_article_language := lower(trim(split_part(wiki_article, ':', 1)));
+ wiki_article_title := trim(substr(wiki_article, strpos(wiki_article, ':')+1));
+ ELSE
+ wiki_article_title := trim(wiki_article);
+ wiki_article_language := CASE WHEN langs[i] = 'english' THEN 'en' WHEN langs[i] = 'country' THEN get_country_language_code(country_code) ELSE langs[i] END;
+ END IF;
+
+ select wikipedia_article.language,wikipedia_article.title,wikipedia_article.importance
+ from wikipedia_article
+ where language = wiki_article_language and
+ (title = wiki_article_title OR title = catch_decode_url_part(wiki_article_title) OR title = replace(catch_decode_url_part(wiki_article_title),E'\\',''))
+ UNION ALL
+ select wikipedia_article.language,wikipedia_article.title,wikipedia_article.importance
+ from wikipedia_redirect join wikipedia_article on (wikipedia_redirect.language = wikipedia_article.language and wikipedia_redirect.to_title = wikipedia_article.title)
+ where wikipedia_redirect.language = wiki_article_language and
+ (from_title = wiki_article_title OR from_title = catch_decode_url_part(wiki_article_title) OR from_title = replace(catch_decode_url_part(wiki_article_title),E'\\',''))
+ order by importance desc limit 1 INTO result;
+
+ IF result.language is not null THEN
+ return result;
+ END IF;
+ END IF;
+ i := i + 1;
+ END LOOP;
+ RETURN NULL;
+END;
+$$
+LANGUAGE plpgsql STABLE;
+
+
+CREATE OR REPLACE FUNCTION compute_importance(extratags HSTORE,
+ country_code varchar(2),
+ osm_type varchar(1), osm_id BIGINT)
+ RETURNS place_importance
+ AS $$
+DECLARE
+ match RECORD;
+ result place_importance;
+BEGIN
+ FOR match IN SELECT * FROM get_wikipedia_match(extratags, country_code)
+ WHERE language is not NULL
+ LOOP
+ result.importance := match.importance;
+ result.wikipedia := match.language || ':' || match.title;
+ RETURN result;
+ END LOOP;
+
+ IF extratags ? 'wikidata' THEN
+ FOR match IN SELECT * FROM wikipedia_article
+ WHERE wd_page_title = extratags->'wikidata'
+ ORDER BY language = 'en' DESC, langcount DESC LIMIT 1 LOOP
+ result.importance := match.importance;
+ result.wikipedia := match.language || ':' || match.title;
+ RETURN result;
+ END LOOP;
+ END IF;
+
+ RETURN null;
+END;
+$$
+LANGUAGE plpgsql;
+
--- /dev/null
+-- Functions for address interpolation objects in location_property_osmline.
+
+-- Splits the line at the given point and returns the two parts
+-- in a multilinestring.
+CREATE OR REPLACE FUNCTION split_line_on_node(line GEOMETRY, point GEOMETRY)
+RETURNS GEOMETRY
+ AS $$
+BEGIN
+ RETURN ST_Split(ST_Snap(line, point, 0.0005), point);
+END;
+$$
+LANGUAGE plpgsql IMMUTABLE;
+
+
+-- find the parent road of the cut road parts
+CREATE OR REPLACE FUNCTION get_interpolation_parent(wayid BIGINT, street TEXT,
+ place TEXT, partition SMALLINT,
+ centroid GEOMETRY, geom GEOMETRY)
+ RETURNS BIGINT
+ AS $$
+DECLARE
+ addr_street TEXT;
+ addr_place TEXT;
+ parent_place_id BIGINT;
+
+ waynodes BIGINT[];
+
+ location RECORD;
+BEGIN
+ addr_street = street;
+ addr_place = place;
+
+ IF addr_street is null and addr_place is null THEN
+ select nodes from planet_osm_ways where id = wayid INTO waynodes;
+ FOR location IN SELECT placex.address from placex
+ where osm_type = 'N' and osm_id = ANY(waynodes)
+ and placex.address is not null
+ and (placex.address ? 'street' or placex.address ? 'place')
+ and indexed_status < 100
+ limit 1 LOOP
+ addr_street = location.address->'street';
+ addr_place = location.address->'place';
+ END LOOP;
+ END IF;
+
+ parent_place_id := find_parent_for_address(addr_street, addr_place,
+ partition, centroid);
+
+ IF parent_place_id is null THEN
+ FOR location IN SELECT place_id FROM placex
+ WHERE ST_DWithin(geom, placex.geometry, 0.001) and placex.rank_search = 26
+ ORDER BY (ST_distance(placex.geometry, ST_LineInterpolatePoint(geom,0))+
+ ST_distance(placex.geometry, ST_LineInterpolatePoint(geom,0.5))+
+ ST_distance(placex.geometry, ST_LineInterpolatePoint(geom,1))) ASC limit 1
+ LOOP
+ parent_place_id := location.place_id;
+ END LOOP;
+ END IF;
+
+ IF parent_place_id is null THEN
+ RETURN 0;
+ END IF;
+
+ RETURN parent_place_id;
+END;
+$$
+LANGUAGE plpgsql STABLE;
+
+
+CREATE OR REPLACE FUNCTION osmline_reinsert(node_id BIGINT, geom GEOMETRY)
+ RETURNS BOOLEAN
+ AS $$
+DECLARE
+ existingline RECORD;
+BEGIN
+ SELECT w.id FROM planet_osm_ways w, location_property_osmline p
+ WHERE p.linegeo && geom and p.osm_id = w.id and p.indexed_status = 0
+ and node_id = any(w.nodes) INTO existingline;
+
+ IF existingline.id is not NULL THEN
+ DELETE FROM location_property_osmline WHERE osm_id = existingline.id;
+ INSERT INTO location_property_osmline (osm_id, address, linegeo)
+ SELECT osm_id, address, geometry FROM place
+ WHERE osm_type = 'W' and osm_id = existingline.id;
+ END IF;
+
+ RETURN true;
+END;
+$$
+LANGUAGE plpgsql;
+
+
+CREATE OR REPLACE FUNCTION osmline_insert()
+ RETURNS TRIGGER
+ AS $$
+BEGIN
+ NEW.place_id := nextval('seq_place');
+ NEW.indexed_date := now();
+
+ IF NEW.indexed_status IS NULL THEN
+ IF NEW.address is NULL OR NOT NEW.address ? 'interpolation'
+ OR NEW.address->'interpolation' NOT IN ('odd', 'even', 'all') THEN
+ -- other interpolation types than odd/even/all (e.g. numeric ones) are not supported
+ RETURN NULL;
+ END IF;
+
+ NEW.indexed_status := 1; --STATUS_NEW
+ NEW.country_code := lower(get_country_code(NEW.linegeo));
+
+ NEW.partition := get_partition(NEW.country_code);
+ NEW.geometry_sector := geometry_sector(NEW.partition, NEW.linegeo);
+ END IF;
+
+ RETURN NEW;
+END;
+$$
+LANGUAGE plpgsql;
+
+
+CREATE OR REPLACE FUNCTION osmline_update()
+ RETURNS TRIGGER
+ AS $$
+DECLARE
+ place_centroid GEOMETRY;
+ waynodes BIGINT[];
+ prevnode RECORD;
+ nextnode RECORD;
+ startnumber INTEGER;
+ endnumber INTEGER;
+ housenum INTEGER;
+ linegeo GEOMETRY;
+ splitline GEOMETRY;
+ sectiongeo GEOMETRY;
+ interpol_postcode TEXT;
+ postcode TEXT;
+BEGIN
+ -- deferred delete
+ IF OLD.indexed_status = 100 THEN
+ delete from location_property_osmline where place_id = OLD.place_id;
+ RETURN NULL;
+ END IF;
+
+ IF NEW.indexed_status != 0 OR OLD.indexed_status = 0 THEN
+ RETURN NEW;
+ END IF;
+
+ NEW.interpolationtype = NEW.address->'interpolation';
+
+ place_centroid := ST_PointOnSurface(NEW.linegeo);
+ NEW.parent_place_id = get_interpolation_parent(NEW.osm_id, NEW.address->'street',
+ NEW.address->'place',
+ NEW.partition, place_centroid, NEW.linegeo);
+
+ IF NEW.address is not NULL AND NEW.address ? 'postcode' AND NEW.address->'postcode' not similar to '%(,|;)%' THEN
+ interpol_postcode := NEW.address->'postcode';
+ housenum := getorcreate_postcode_id(NEW.address->'postcode');
+ ELSE
+ interpol_postcode := NULL;
+ END IF;
+
+ -- if the line was newly inserted, split the line as necessary
+ IF OLD.indexed_status = 1 THEN
+ select nodes from planet_osm_ways where id = NEW.osm_id INTO waynodes;
+
+ IF array_upper(waynodes, 1) IS NULL THEN
+ RETURN NEW;
+ END IF;
+
+ linegeo := NEW.linegeo;
+ startnumber := NULL;
+
+ FOR nodeidpos in 1..array_upper(waynodes, 1) LOOP
+
+ select osm_id, address, geometry
+ from place where osm_type = 'N' and osm_id = waynodes[nodeidpos]::BIGINT
+ and address is not NULL and address ? 'housenumber' limit 1 INTO nextnode;
+ --RAISE NOTICE 'Nextnode.place_id: %s', nextnode.place_id;
+ IF nextnode.osm_id IS NOT NULL THEN
+ --RAISE NOTICE 'place_id is not null';
+ IF nodeidpos > 1 and nodeidpos < array_upper(waynodes, 1) THEN
+ -- Make sure that the point is actually on the line. That might
+ -- be a bit paranoid but ensures that the algorithm still works
+ -- should osm2pgsql attempt to repair geometries.
+ splitline := split_line_on_node(linegeo, nextnode.geometry);
+ sectiongeo := ST_GeometryN(splitline, 1);
+ linegeo := ST_GeometryN(splitline, 2);
+ ELSE
+ sectiongeo = linegeo;
+ END IF;
+ endnumber := substring(nextnode.address->'housenumber','[0-9]+')::integer;
+
+ IF startnumber IS NOT NULL AND endnumber IS NOT NULL
+ AND startnumber != endnumber
+ AND ST_GeometryType(sectiongeo) = 'ST_LineString' THEN
+
+ IF (startnumber > endnumber) THEN
+ housenum := endnumber;
+ endnumber := startnumber;
+ startnumber := housenum;
+ sectiongeo := ST_Reverse(sectiongeo);
+ END IF;
+
+ -- determine postcode
+ postcode := coalesce(interpol_postcode,
+ prevnode.address->'postcode',
+ nextnode.address->'postcode',
+ postcode);
+
+ IF postcode is NULL THEN
+ SELECT placex.postcode FROM placex WHERE place_id = NEW.parent_place_id INTO postcode;
+ END IF;
+ IF postcode is NULL THEN
+ postcode := get_nearest_postcode(NEW.country_code, nextnode.geometry);
+ END IF;
+
+ IF NEW.startnumber IS NULL THEN
+ NEW.startnumber := startnumber;
+ NEW.endnumber := endnumber;
+ NEW.linegeo := sectiongeo;
+ NEW.postcode := upper(trim(postcode));
+ ELSE
+ insert into location_property_osmline
+ (linegeo, partition, osm_id, parent_place_id,
+ startnumber, endnumber, interpolationtype,
+ address, postcode, country_code,
+ geometry_sector, indexed_status)
+ values (sectiongeo, NEW.partition, NEW.osm_id, NEW.parent_place_id,
+ startnumber, endnumber, NEW.interpolationtype,
+ NEW.address, postcode,
+ NEW.country_code, NEW.geometry_sector, 0);
+ END IF;
+ END IF;
+
+ -- early break if we are out of line string,
+ -- might happen when a line string loops back on itself
+ IF ST_GeometryType(linegeo) != 'ST_LineString' THEN
+ RETURN NEW;
+ END IF;
+
+ startnumber := substring(nextnode.address->'housenumber','[0-9]+')::integer;
+ prevnode := nextnode;
+ END IF;
+ END LOOP;
+ END IF;
+
+ -- marking descendants for reparenting is not needed, because there are
+ -- actually no descendants for interpolation lines
+ RETURN NEW;
+END;
+$$
+LANGUAGE plpgsql;
--- /dev/null
+-- Functions for term normalisation and access to the 'word' table.
+
+CREATE OR REPLACE FUNCTION transliteration(text) RETURNS text
+ AS '{modulepath}/nominatim.so', 'transliteration'
+LANGUAGE c IMMUTABLE STRICT;
+
+
+CREATE OR REPLACE FUNCTION gettokenstring(text) RETURNS text
+ AS '{modulepath}/nominatim.so', 'gettokenstring'
+LANGUAGE c IMMUTABLE STRICT;
+
+
+CREATE OR REPLACE FUNCTION make_standard_name(name TEXT) RETURNS TEXT
+ AS $$
+DECLARE
+ o TEXT;
+BEGIN
+ o := public.gettokenstring(public.transliteration(name));
+ RETURN trim(substr(o,1,length(o)));
+END;
+$$
+LANGUAGE plpgsql IMMUTABLE;
+
+-- returns NULL if the word is too common
+CREATE OR REPLACE FUNCTION getorcreate_word_id(lookup_word TEXT)
+ RETURNS INTEGER
+ AS $$
+DECLARE
+ lookup_token TEXT;
+ return_word_id INTEGER;
+ count INTEGER;
+BEGIN
+ lookup_token := trim(lookup_word);
+ SELECT min(word_id), max(search_name_count) FROM word
+ WHERE word_token = lookup_token and class is null and type is null
+ INTO return_word_id, count;
+ IF return_word_id IS NULL THEN
+ return_word_id := nextval('seq_word');
+ INSERT INTO word VALUES (return_word_id, lookup_token, null, null, null, null, 0);
+ ELSE
+ IF count > get_maxwordfreq() THEN
+ return_word_id := NULL;
+ END IF;
+ END IF;
+ RETURN return_word_id;
+END;
+$$
+LANGUAGE plpgsql;
+
+
+CREATE OR REPLACE FUNCTION getorcreate_housenumber_id(lookup_word TEXT)
+ RETURNS INTEGER
+ AS $$
+DECLARE
+ lookup_token TEXT;
+ return_word_id INTEGER;
+BEGIN
+ lookup_token := ' ' || trim(lookup_word);
+ SELECT min(word_id) FROM word
+ WHERE word_token = lookup_token and class='place' and type='house'
+ INTO return_word_id;
+ IF return_word_id IS NULL THEN
+ return_word_id := nextval('seq_word');
+ INSERT INTO word VALUES (return_word_id, lookup_token, null,
+ 'place', 'house', null, 0);
+ END IF;
+ RETURN return_word_id;
+END;
+$$
+LANGUAGE plpgsql;
+
+
+CREATE OR REPLACE FUNCTION getorcreate_postcode_id(postcode TEXT)
+ RETURNS INTEGER
+ AS $$
+DECLARE
+ lookup_token TEXT;
+ lookup_word TEXT;
+ return_word_id INTEGER;
+BEGIN
+ lookup_word := upper(trim(postcode));
+ lookup_token := ' ' || make_standard_name(lookup_word);
+ SELECT min(word_id) FROM word
+ WHERE word_token = lookup_token and class='place' and type='postcode'
+ INTO return_word_id;
+ IF return_word_id IS NULL THEN
+ return_word_id := nextval('seq_word');
+ INSERT INTO word VALUES (return_word_id, lookup_token, lookup_word,
+ 'place', 'postcode', null, 0);
+ END IF;
+ RETURN return_word_id;
+END;
+$$
+LANGUAGE plpgsql;
+
+
+CREATE OR REPLACE FUNCTION getorcreate_country(lookup_word TEXT,
+ lookup_country_code varchar(2))
+ RETURNS INTEGER
+ AS $$
+DECLARE
+ lookup_token TEXT;
+ return_word_id INTEGER;
+BEGIN
+ lookup_token := ' '||trim(lookup_word);
+ SELECT min(word_id) FROM word
+ WHERE word_token = lookup_token and country_code=lookup_country_code
+ INTO return_word_id;
+ IF return_word_id IS NULL THEN
+ return_word_id := nextval('seq_word');
+ INSERT INTO word VALUES (return_word_id, lookup_token, null,
+ null, null, lookup_country_code, 0);
+ END IF;
+ RETURN return_word_id;
+END;
+$$
+LANGUAGE plpgsql;
+
+
+CREATE OR REPLACE FUNCTION getorcreate_amenity(lookup_word TEXT, normalized_word TEXT,
+ lookup_class text, lookup_type text)
+ RETURNS INTEGER
+ AS $$
+DECLARE
+ lookup_token TEXT;
+ return_word_id INTEGER;
+BEGIN
+ lookup_token := ' '||trim(lookup_word);
+ SELECT min(word_id) FROM word
+ WHERE word_token = lookup_token and word = normalized_word
+ and class = lookup_class and type = lookup_type
+ INTO return_word_id;
+ IF return_word_id IS NULL THEN
+ return_word_id := nextval('seq_word');
+ INSERT INTO word VALUES (return_word_id, lookup_token, normalized_word,
+ lookup_class, lookup_type, null, 0);
+ END IF;
+ RETURN return_word_id;
+END;
+$$
+LANGUAGE plpgsql;
+
+
+CREATE OR REPLACE FUNCTION getorcreate_amenityoperator(lookup_word TEXT,
+ normalized_word TEXT,
+ lookup_class text,
+ lookup_type text,
+ op text)
+ RETURNS INTEGER
+ AS $$
+DECLARE
+ lookup_token TEXT;
+ return_word_id INTEGER;
+BEGIN
+ lookup_token := ' '||trim(lookup_word);
+ SELECT min(word_id) FROM word
+ WHERE word_token = lookup_token and word = normalized_word
+ and class = lookup_class and type = lookup_type and operator = op
+ INTO return_word_id;
+ IF return_word_id IS NULL THEN
+ return_word_id := nextval('seq_word');
+ INSERT INTO word VALUES (return_word_id, lookup_token, normalized_word,
+ lookup_class, lookup_type, null, 0, op);
+ END IF;
+ RETURN return_word_id;
+END;
+$$
+LANGUAGE plpgsql;
+
+
+CREATE OR REPLACE FUNCTION getorcreate_name_id(lookup_word TEXT, src_word TEXT)
+ RETURNS INTEGER
+ AS $$
+DECLARE
+ lookup_token TEXT;
+ nospace_lookup_token TEXT;
+ return_word_id INTEGER;
+BEGIN
+ lookup_token := ' '||trim(lookup_word);
+ SELECT min(word_id) FROM word
+ WHERE word_token = lookup_token and class is null and type is null
+ INTO return_word_id;
+ IF return_word_id IS NULL THEN
+ return_word_id := nextval('seq_word');
+ INSERT INTO word VALUES (return_word_id, lookup_token, src_word,
+ null, null, null, 0);
+ END IF;
+ RETURN return_word_id;
+END;
+$$
+LANGUAGE plpgsql;
+
+
+CREATE OR REPLACE FUNCTION getorcreate_name_id(lookup_word TEXT)
+ RETURNS INTEGER
+ AS $$
+DECLARE
+BEGIN
+ RETURN getorcreate_name_id(lookup_word, '');
+END;
+$$
+LANGUAGE plpgsql;
+
+-- Normalize a string and lookup its word ids (partial words).
+CREATE OR REPLACE FUNCTION addr_ids_from_name(lookup_word TEXT)
+ RETURNS INTEGER[]
+ AS $$
+DECLARE
+ lookup_token TEXT;
+ return_word_id INTEGER[];
+BEGIN
+ lookup_token := make_standard_name(lookup_word);
+ SELECT array_agg(word_id) FROM word
+ WHERE word_token = lookup_token and class is null and type is null
+ INTO return_word_id;
+ RETURN return_word_id;
+END;
+$$
+LANGUAGE plpgsql STABLE;
+
+
+-- Normalize a string and look up its name ids (full words).
+CREATE OR REPLACE FUNCTION word_ids_from_name(lookup_word TEXT)
+ RETURNS INTEGER[]
+ AS $$
+DECLARE
+ lookup_token TEXT;
+ return_word_ids INTEGER[];
+BEGIN
+ lookup_token := ' '|| make_standard_name(lookup_word);
+ SELECT array_agg(word_id) FROM word
+ WHERE word_token = lookup_token and class is null and type is null
+ INTO return_word_ids;
+ RETURN return_word_ids;
+END;
+$$
+LANGUAGE plpgsql STABLE STRICT;
+
+
+CREATE OR REPLACE FUNCTION create_country(src HSTORE, country_code varchar(2))
+ RETURNS VOID
+ AS $$
+DECLARE
+ s TEXT;
+ w INTEGER;
+ words TEXT[];
+ item RECORD;
+ j INTEGER;
+BEGIN
+ FOR item IN SELECT (each(src)).* LOOP
+
+ s := make_standard_name(item.value);
+ w := getorcreate_country(s, country_code);
+
+ words := regexp_split_to_array(item.value, E'[,;()]');
+ IF array_upper(words, 1) != 1 THEN
+ FOR j IN 1..array_upper(words, 1) LOOP
+ s := make_standard_name(words[j]);
+ IF s != '' THEN
+ w := getorcreate_country(s, country_code);
+ END IF;
+ END LOOP;
+ END IF;
+ END LOOP;
+END;
+$$
+LANGUAGE plpgsql;
+
+
+CREATE OR REPLACE FUNCTION make_keywords(src HSTORE)
+ RETURNS INTEGER[]
+ AS $$
+DECLARE
+ result INTEGER[];
+ s TEXT;
+ w INTEGER;
+ words TEXT[];
+ item RECORD;
+ j INTEGER;
+BEGIN
+ result := '{}'::INTEGER[];
+
+ FOR item IN SELECT (each(src)).* LOOP
+
+ s := make_standard_name(item.value);
+ w := getorcreate_name_id(s, item.value);
+
+ IF not(ARRAY[w] <@ result) THEN
+ result := result || w;
+ END IF;
+
+ w := getorcreate_word_id(s);
+
+ IF w IS NOT NULL AND NOT (ARRAY[w] <@ result) THEN
+ result := result || w;
+ END IF;
+
+ words := string_to_array(s, ' ');
+ IF array_upper(words, 1) IS NOT NULL THEN
+ FOR j IN 1..array_upper(words, 1) LOOP
+ IF (words[j] != '') THEN
+ w = getorcreate_word_id(words[j]);
+ IF w IS NOT NULL AND NOT (ARRAY[w] <@ result) THEN
+ result := result || w;
+ END IF;
+ END IF;
+ END LOOP;
+ END IF;
+
+ words := regexp_split_to_array(item.value, E'[,;()]');
+ IF array_upper(words, 1) != 1 THEN
+ FOR j IN 1..array_upper(words, 1) LOOP
+ s := make_standard_name(words[j]);
+ IF s != '' THEN
+ w := getorcreate_word_id(s);
+ IF w IS NOT NULL AND NOT (ARRAY[w] <@ result) THEN
+ result := result || w;
+ END IF;
+ END IF;
+ END LOOP;
+ END IF;
+
+ s := regexp_replace(item.value, '市$', '');
+ IF s != item.value THEN
+ s := make_standard_name(s);
+ IF s != '' THEN
+ w := getorcreate_name_id(s, item.value);
+ IF NOT (ARRAY[w] <@ result) THEN
+ result := result || w;
+ END IF;
+ END IF;
+ END IF;
+
+ END LOOP;
+
+ RETURN result;
+END;
+$$
+LANGUAGE plpgsql;
+
+
+CREATE OR REPLACE FUNCTION make_keywords(src TEXT)
+ RETURNS INTEGER[]
+ AS $$
+DECLARE
+ result INTEGER[];
+ s TEXT;
+ w INTEGER;
+ words TEXT[];
+ i INTEGER;
+ j INTEGER;
+BEGIN
+ result := '{}'::INTEGER[];
+
+ s := make_standard_name(src);
+ w := getorcreate_name_id(s, src);
+
+ IF NOT (ARRAY[w] <@ result) THEN
+ result := result || w;
+ END IF;
+
+ w := getorcreate_word_id(s);
+
+ IF w IS NOT NULL AND NOT (ARRAY[w] <@ result) THEN
+ result := result || w;
+ END IF;
+
+ words := string_to_array(s, ' ');
+ IF array_upper(words, 1) IS NOT NULL THEN
+ FOR j IN 1..array_upper(words, 1) LOOP
+ IF (words[j] != '') THEN
+ w = getorcreate_word_id(words[j]);
+ IF w IS NOT NULL AND NOT (ARRAY[w] <@ result) THEN
+ result := result || w;
+ END IF;
+ END IF;
+ END LOOP;
+ END IF;
+
+ words := regexp_split_to_array(src, E'[,;()]');
+ IF array_upper(words, 1) != 1 THEN
+ FOR j IN 1..array_upper(words, 1) LOOP
+ s := make_standard_name(words[j]);
+ IF s != '' THEN
+ w := getorcreate_word_id(s);
+ IF w IS NOT NULL AND NOT (ARRAY[w] <@ result) THEN
+ result := result || w;
+ END IF;
+ END IF;
+ END LOOP;
+ END IF;
+
+ s := regexp_replace(src, '市$', '');
+ IF s != src THEN
+ s := make_standard_name(s);
+ IF s != '' THEN
+ w := getorcreate_name_id(s, src);
+ IF NOT (ARRAY[w] <@ result) THEN
+ result := result || w;
+ END IF;
+ END IF;
+ END IF;
+
+ RETURN result;
+END;
+$$
+LANGUAGE plpgsql;
--- /dev/null
+CREATE OR REPLACE FUNCTION place_insert()
+ RETURNS TRIGGER
+ AS $$
+DECLARE
+ i INTEGER;
+ existing RECORD;
+ existingplacex RECORD;
+ existingline RECORD;
+ existinggeometry GEOMETRY;
+ existingplace_id BIGINT;
+ result BOOLEAN;
+ partition INTEGER;
+BEGIN
+
+ --DEBUG: RAISE WARNING '-----------------------------------------------------------------------------------';
+ --DEBUG: RAISE WARNING 'place_insert: % % % % %',NEW.osm_type,NEW.osm_id,NEW.class,NEW.type,st_area(NEW.geometry);
+ -- filter wrong tupels
+ IF ST_IsEmpty(NEW.geometry) OR NOT ST_IsValid(NEW.geometry) OR ST_X(ST_Centroid(NEW.geometry))::text in ('NaN','Infinity','-Infinity') OR ST_Y(ST_Centroid(NEW.geometry))::text in ('NaN','Infinity','-Infinity') THEN
+ INSERT INTO import_polygon_error (osm_type, osm_id, class, type, name, country_code, updated, errormessage, prevgeometry, newgeometry)
+ VALUES (NEW.osm_type, NEW.osm_id, NEW.class, NEW.type, NEW.name, NEW.address->'country', now(), ST_IsValidReason(NEW.geometry), null, NEW.geometry);
+-- RAISE WARNING 'Invalid Geometry: % % % %',NEW.osm_type,NEW.osm_id,NEW.class,NEW.type;
+ RETURN null;
+ END IF;
+
+ -- decide, whether it is an osm interpolation line => insert intoosmline, or else just placex
+ IF NEW.class='place' and NEW.type='houses' and NEW.osm_type='W' and ST_GeometryType(NEW.geometry) = 'ST_LineString' THEN
+ -- Have we already done this place?
+ select * from place where osm_type = NEW.osm_type and osm_id = NEW.osm_id and class = NEW.class and type = NEW.type INTO existing;
+
+ -- Get the existing place_id
+ select * from location_property_osmline where osm_id = NEW.osm_id INTO existingline;
+
+ -- Handle a place changing type by removing the old data (this trigger is executed BEFORE INSERT of the NEW tupel)
+ IF existing.osm_type IS NULL THEN
+ DELETE FROM place where osm_type = NEW.osm_type and osm_id = NEW.osm_id and class = NEW.class;
+ END IF;
+
+ DELETE from import_polygon_error where osm_type = NEW.osm_type and osm_id = NEW.osm_id;
+ DELETE from import_polygon_delete where osm_type = NEW.osm_type and osm_id = NEW.osm_id;
+
+ -- update method for interpolation lines: delete all old interpolation lines with same osm_id (update on place) and insert the new one(s) (they can be split up, if they have > 2 nodes)
+ IF existingline.osm_id IS NOT NULL THEN
+ delete from location_property_osmline where osm_id = NEW.osm_id;
+ END IF;
+
+ -- for interpolations invalidate all nodes on the line
+ update placex p set indexed_status = 2
+ from planet_osm_ways w
+ where w.id = NEW.osm_id and p.osm_type = 'N' and p.osm_id = any(w.nodes);
+
+
+ INSERT INTO location_property_osmline (osm_id, address, linegeo)
+ VALUES (NEW.osm_id, NEW.address, NEW.geometry);
+
+
+ IF existing.osm_type IS NULL THEN
+ return NEW;
+ END IF;
+
+ IF coalesce(existing.address, ''::hstore) != coalesce(NEW.address, ''::hstore)
+ OR (coalesce(existing.extratags, ''::hstore) != coalesce(NEW.extratags, ''::hstore))
+ OR existing.geometry::text != NEW.geometry::text
+ THEN
+
+ update place set
+ name = NEW.name,
+ address = NEW.address,
+ extratags = NEW.extratags,
+ admin_level = NEW.admin_level,
+ geometry = NEW.geometry
+ where osm_type = NEW.osm_type and osm_id = NEW.osm_id and class = NEW.class and type = NEW.type;
+ END IF;
+
+ RETURN NULL;
+
+ ELSE -- insert to placex
+
+ -- Patch in additional country names
+ IF NEW.admin_level = 2 AND NEW.type = 'administrative'
+ AND NEW.address is not NULL AND NEW.address ? 'country' THEN
+ SELECT name FROM country_name WHERE country_code = lower(NEW.address->'country') INTO existing;
+ IF existing.name IS NOT NULL THEN
+ NEW.name = existing.name || NEW.name;
+ END IF;
+ END IF;
+
+ -- Have we already done this place?
+ select * from place where osm_type = NEW.osm_type and osm_id = NEW.osm_id and class = NEW.class and type = NEW.type INTO existing;
+
+ -- Get the existing place_id
+ select * from placex where osm_type = NEW.osm_type and osm_id = NEW.osm_id and class = NEW.class and type = NEW.type INTO existingplacex;
+
+ -- Handle a place changing type by removing the old data
+ -- My generated 'place' types are causing havok because they overlap with real keys
+ -- TODO: move them to their own special purpose key/class to avoid collisions
+ IF existing.osm_type IS NULL THEN
+ DELETE FROM place where osm_type = NEW.osm_type and osm_id = NEW.osm_id and class = NEW.class;
+ END IF;
+
+ --DEBUG: RAISE WARNING 'Existing: %',existing.osm_id;
+ --DEBUG: RAISE WARNING 'Existing PlaceX: %',existingplacex.place_id;
+
+ -- Log and discard
+ IF existing.geometry is not null AND st_isvalid(existing.geometry)
+ AND st_area(existing.geometry) > 0.02
+ AND ST_GeometryType(NEW.geometry) in ('ST_Polygon','ST_MultiPolygon')
+ AND st_area(NEW.geometry) < st_area(existing.geometry)*0.5
+ THEN
+ INSERT INTO import_polygon_error (osm_type, osm_id, class, type, name, country_code, updated, errormessage, prevgeometry, newgeometry)
+ VALUES (NEW.osm_type, NEW.osm_id, NEW.class, NEW.type, NEW.name, NEW.address->'country', now(),
+ 'Area reduced from '||st_area(existing.geometry)||' to '||st_area(NEW.geometry), existing.geometry, NEW.geometry);
+ RETURN null;
+ END IF;
+
+ DELETE from import_polygon_error where osm_type = NEW.osm_type and osm_id = NEW.osm_id;
+ DELETE from import_polygon_delete where osm_type = NEW.osm_type and osm_id = NEW.osm_id;
+
+ -- To paraphrase, if there isn't an existing item, OR if the admin level has changed
+ IF existingplacex.osm_type IS NULL OR
+ (existingplacex.class = 'boundary' AND
+ ((coalesce(existingplacex.admin_level, 15) != coalesce(NEW.admin_level, 15) AND existingplacex.type = 'administrative') OR
+ (existingplacex.type != NEW.type)))
+ THEN
+
+ IF existingplacex.osm_type IS NOT NULL THEN
+ -- sanity check: ignore admin_level changes on places with too many active children
+ -- or we end up reindexing entire countries because somebody accidentally deleted admin_level
+ --LIMIT INDEXING: SELECT count(*) FROM (SELECT 'a' FROM placex , place_addressline where address_place_id = existingplacex.place_id and placex.place_id = place_addressline.place_id and indexed_status = 0 and place_addressline.isaddress LIMIT 100001) sub INTO i;
+ --LIMIT INDEXING: IF i > 100000 THEN
+ --LIMIT INDEXING: RETURN null;
+ --LIMIT INDEXING: END IF;
+ END IF;
+
+ IF existing.osm_type IS NOT NULL THEN
+ -- pathological case caused by the triggerless copy into place during initial import
+ -- force delete even for large areas, it will be reinserted later
+ UPDATE place set geometry = ST_SetSRID(ST_Point(0,0), 4326) where osm_type = NEW.osm_type and osm_id = NEW.osm_id and class = NEW.class and type = NEW.type;
+ DELETE from place where osm_type = NEW.osm_type and osm_id = NEW.osm_id and class = NEW.class and type = NEW.type;
+ END IF;
+
+ -- No - process it as a new insertion (hopefully of low rank or it will be slow)
+ insert into placex (osm_type, osm_id, class, type, name,
+ admin_level, address, extratags, geometry)
+ values (NEW.osm_type, NEW.osm_id, NEW.class, NEW.type, NEW.name,
+ NEW.admin_level, NEW.address, NEW.extratags, NEW.geometry);
+
+ --DEBUG: RAISE WARNING 'insert done % % % % %',NEW.osm_type,NEW.osm_id,NEW.class,NEW.type,NEW.name;
+
+ RETURN NEW;
+ END IF;
+
+ -- Special case for polygon shape changes because they tend to be large and we can be a bit clever about how we handle them
+ IF existing.geometry::text != NEW.geometry::text
+ AND ST_GeometryType(existing.geometry) in ('ST_Polygon','ST_MultiPolygon')
+ AND ST_GeometryType(NEW.geometry) in ('ST_Polygon','ST_MultiPolygon')
+ THEN
+
+ -- Get the version of the geometry actually used (in placex table)
+ select geometry from placex where osm_type = NEW.osm_type and osm_id = NEW.osm_id and class = NEW.class and type = NEW.type into existinggeometry;
+
+ -- Performance limit
+ IF st_area(NEW.geometry) < 0.000000001 AND st_area(existinggeometry) < 1 THEN
+
+ -- re-index points that have moved in / out of the polygon, could be done as a single query but postgres gets the index usage wrong
+ update placex set indexed_status = 2 where indexed_status = 0 and
+ (st_covers(NEW.geometry, placex.geometry) OR ST_Intersects(NEW.geometry, placex.geometry))
+ AND NOT (st_covers(existinggeometry, placex.geometry) OR ST_Intersects(existinggeometry, placex.geometry))
+ AND rank_search > existingplacex.rank_search AND (rank_search < 28 or name is not null);
+
+ update placex set indexed_status = 2 where indexed_status = 0 and
+ (st_covers(existinggeometry, placex.geometry) OR ST_Intersects(existinggeometry, placex.geometry))
+ AND NOT (st_covers(NEW.geometry, placex.geometry) OR ST_Intersects(NEW.geometry, placex.geometry))
+ AND rank_search > existingplacex.rank_search AND (rank_search < 28 or name is not null);
+
+ END IF;
+
+ END IF;
+
+
+ IF coalesce(existing.name::text, '') != coalesce(NEW.name::text, '')
+ OR coalesce(existing.extratags::text, '') != coalesce(NEW.extratags::text, '')
+ OR coalesce(existing.address, ''::hstore) != coalesce(NEW.address, ''::hstore)
+ OR coalesce(existing.admin_level, 15) != coalesce(NEW.admin_level, 15)
+ OR existing.geometry::text != NEW.geometry::text
+ THEN
+
+ update place set
+ name = NEW.name,
+ address = NEW.address,
+ extratags = NEW.extratags,
+ admin_level = NEW.admin_level,
+ geometry = NEW.geometry
+ where osm_type = NEW.osm_type and osm_id = NEW.osm_id and class = NEW.class and type = NEW.type;
+
+
+ IF NEW.class in ('place','boundary') AND NEW.type in ('postcode','postal_code') THEN
+ IF NEW.address is NULL OR NOT NEW.address ? 'postcode' THEN
+ -- postcode was deleted, no longer retain in placex
+ DELETE FROM placex where place_id = existingplacex.place_id;
+ RETURN NULL;
+ END IF;
+
+ NEW.name := hstore('ref', NEW.address->'postcode');
+ END IF;
+
+ IF NEW.class in ('boundary')
+ AND ST_GeometryType(NEW.geometry) not in ('ST_Polygon','ST_MultiPolygon') THEN
+ DELETE FROM placex where place_id = existingplacex.place_id;
+ RETURN NULL;
+ END IF;
+
+ update placex set
+ name = NEW.name,
+ address = NEW.address,
+ parent_place_id = null,
+ extratags = NEW.extratags,
+ admin_level = NEW.admin_level,
+ indexed_status = 2,
+ geometry = NEW.geometry
+ where place_id = existingplacex.place_id;
+ -- if a node(=>house), which is part of a interpolation line, changes (e.g. the street attribute) => mark this line for reparenting
+ -- (already here, because interpolation lines are reindexed before nodes, so in the second call it would be too late)
+ IF NEW.osm_type='N'
+ and (coalesce(existing.address, ''::hstore) != coalesce(NEW.address, ''::hstore)
+ or existing.geometry::text != NEW.geometry::text)
+ THEN
+ result:= osmline_reinsert(NEW.osm_id, NEW.geometry);
+ END IF;
+
+ -- linked places should get potential new naming and addresses
+ IF existingplacex.linked_place_id is not NULL THEN
+ update placex x set
+ name = p.name,
+ extratags = p.extratags,
+ indexed_status = 2
+ from place p
+ where x.place_id = existingplacex.linked_place_id
+ and x.indexed_status = 0
+ and x.osm_type = p.osm_type
+ and x.osm_id = p.osm_id
+ and x.class = p.class;
+ END IF;
+
+ END IF;
+
+ -- Abort the add (we modified the existing place instead)
+ RETURN NULL;
+ END IF;
+
+END;
+$$ LANGUAGE plpgsql;
+
+
+CREATE OR REPLACE FUNCTION place_delete()
+ RETURNS TRIGGER
+ AS $$
+DECLARE
+ has_rank BOOLEAN;
+BEGIN
+
+ --DEBUG: RAISE WARNING 'delete: % % % %',OLD.osm_type,OLD.osm_id,OLD.class,OLD.type;
+
+ -- deleting large polygons can have a massive effect on the system - require manual intervention to let them through
+ IF st_area(OLD.geometry) > 2 and st_isvalid(OLD.geometry) THEN
+ SELECT bool_or(not (rank_address = 0 or rank_address > 26)) as ranked FROM placex WHERE osm_type = OLD.osm_type and osm_id = OLD.osm_id and class = OLD.class and type = OLD.type INTO has_rank;
+ IF has_rank THEN
+ insert into import_polygon_delete (osm_type, osm_id, class, type) values (OLD.osm_type,OLD.osm_id,OLD.class,OLD.type);
+ RETURN NULL;
+ END IF;
+ END IF;
+
+ -- mark for delete
+ UPDATE placex set indexed_status = 100 where osm_type = OLD.osm_type and osm_id = OLD.osm_id and class = OLD.class and type = OLD.type;
+
+ -- interpolations are special
+ IF OLD.osm_type='W' and OLD.class = 'place' and OLD.type = 'houses' THEN
+ UPDATE location_property_osmline set indexed_status = 100 where osm_id = OLD.osm_id; -- osm_id = wayid (=old.osm_id)
+ END IF;
+
+ RETURN OLD;
+END;
+$$
+LANGUAGE plpgsql;
+
--- /dev/null
+-- Trigger functions for the placex table.
+
+-- Find the parent road of a POI.
+--
+-- \returns Place ID of parent object or NULL if none
+--
+-- Copy data from linked items (POIs on ways, addr:street links, relations).
+--
+CREATE OR REPLACE FUNCTION find_parent_for_poi(poi_osm_type CHAR(1),
+ poi_osm_id BIGINT,
+ poi_partition SMALLINT,
+ bbox GEOMETRY,
+ addr_street TEXT,
+ addr_place TEXT,
+ fallback BOOL = true)
+ RETURNS BIGINT
+ AS $$
+DECLARE
+ parent_place_id BIGINT DEFAULT NULL;
+ location RECORD;
+ parent RECORD;
+BEGIN
+ --DEBUG: RAISE WARNING 'finding street for % %', poi_osm_type, poi_osm_id;
+
+ -- Is this object part of an associatedStreet relation?
+ FOR location IN
+ SELECT members FROM planet_osm_rels
+ WHERE parts @> ARRAY[poi_osm_id]
+ and members @> ARRAY[lower(poi_osm_type) || poi_osm_id]
+ and tags @> ARRAY['associatedStreet']
+ LOOP
+ FOR i IN 1..array_upper(location.members, 1) BY 2 LOOP
+ IF location.members[i+1] = 'street' THEN
+ --DEBUG: RAISE WARNING 'node in relation %',relation;
+ FOR parent IN
+ SELECT place_id from placex
+ WHERE osm_type = 'W' and osm_id = substring(location.members[i],2)::bigint
+ and name is not null
+ and rank_search between 26 and 27
+ LOOP
+ RETURN parent.place_id;
+ END LOOP;
+ END IF;
+ END LOOP;
+ END LOOP;
+
+ parent_place_id := find_parent_for_address(addr_street, addr_place,
+ poi_partition, bbox);
+ IF parent_place_id is not null THEN
+ RETURN parent_place_id;
+ END IF;
+
+ IF poi_osm_type = 'N' THEN
+ -- Is this node part of an interpolation?
+ FOR parent IN
+ SELECT q.parent_place_id
+ FROM location_property_osmline q, planet_osm_ways x
+ WHERE q.linegeo && bbox and x.id = q.osm_id
+ and poi_osm_id = any(x.nodes)
+ LIMIT 1
+ LOOP
+ --DEBUG: RAISE WARNING 'Get parent from interpolation: %', parent.parent_place_id;
+ RETURN parent.parent_place_id;
+ END LOOP;
+
+ -- Is this node part of any other way?
+ FOR location IN
+ SELECT p.place_id, p.osm_id, p.rank_search, p.address,
+ coalesce(p.centroid, ST_Centroid(p.geometry)) as centroid
+ FROM placex p, planet_osm_ways w
+ WHERE p.osm_type = 'W' and p.rank_search >= 26
+ and p.geometry && bbox
+ and w.id = p.osm_id and poi_osm_id = any(w.nodes)
+ LOOP
+ --DEBUG: RAISE WARNING 'Node is part of way % ', location.osm_id;
+
+ -- Way IS a road then we are on it - that must be our road
+ IF location.rank_search < 28 THEN
+ --DEBUG: RAISE WARNING 'node in way that is a street %',location;
+ return location.place_id;
+ END IF;
+
+ SELECT find_parent_for_poi('W', location.osm_id, poi_partition,
+ location.centroid,
+ location.address->'street',
+ location.address->'place',
+ false)
+ INTO parent_place_id;
+ IF parent_place_id is not null THEN
+ RETURN parent_place_id;
+ END IF;
+ END LOOP;
+ END IF;
+
+ IF fallback THEN
+ IF ST_Area(bbox) < 0.01 THEN
+ -- for smaller features get the nearest road
+ SELECT getNearestRoadPlaceId(poi_partition, bbox) INTO parent_place_id;
+ --DEBUG: RAISE WARNING 'Checked for nearest way (%)', parent_place_id;
+ ELSE
+ -- for larger features simply find the area with the largest rank that
+ -- contains the bbox
+ FOR location IN
+ SELECT place_id FROM placex
+ WHERE bbox @ geometry AND _ST_Covers(geometry, ST_Centroid(bbox))
+ AND rank_search between 5 and 25
+ ORDER BY rank_search desc
+ LOOP
+ RETURN location.place_id;
+ END LOOP;
+ END IF;
+ END IF;
+
+ RETURN parent_place_id;
+END;
+$$
+LANGUAGE plpgsql STABLE;
+
+-- Try to find a linked place for the given object.
+CREATE OR REPLACE FUNCTION find_linked_place(bnd placex)
+ RETURNS placex
+ AS $$
+DECLARE
+ relation_members TEXT[];
+ rel_member RECORD;
+ linked_placex placex%ROWTYPE;
+ bnd_name TEXT;
+BEGIN
+ IF bnd.rank_search >= 26 or bnd.rank_address = 0
+ or ST_GeometryType(bnd.geometry) NOT IN ('ST_Polygon','ST_MultiPolygon')
+ THEN
+ RETURN NULL;
+ END IF;
+
+ IF bnd.osm_type = 'R' THEN
+ -- see if we have any special relation members
+ SELECT members FROM planet_osm_rels WHERE id = bnd.osm_id INTO relation_members;
+ --DEBUG: RAISE WARNING 'Got relation members';
+
+ -- Search for relation members with role 'lable'.
+ IF relation_members IS NOT NULL THEN
+ FOR rel_member IN
+ SELECT get_rel_node_members(relation_members, ARRAY['label']) as member
+ LOOP
+ --DEBUG: RAISE WARNING 'Found label member %', rel_member.member;
+
+ FOR linked_placex IN
+ SELECT * from placex
+ WHERE osm_type = 'N' and osm_id = rel_member.member
+ and class = 'place'
+ LOOP
+ --DEBUG: RAISE WARNING 'Linked label member';
+ RETURN linked_placex;
+ END LOOP;
+
+ END LOOP;
+ END IF;
+ END IF;
+
+ IF bnd.name ? 'name' THEN
+ bnd_name := make_standard_name(bnd.name->'name');
+ IF bnd_name = '' THEN
+ bnd_name := NULL;
+ END IF;
+ END IF;
+
+ -- If extratags has a place tag, look for linked nodes by their place type.
+ -- Area and node still have to have the same name.
+ IF bnd.extratags ? 'place' and bnd_name is not null THEN
+ FOR linked_placex IN
+ SELECT * FROM placex
+ WHERE make_standard_name(name->'name') = bnd_name
+ AND placex.class = 'place' AND placex.type = bnd.extratags->'place'
+ AND placex.osm_type = 'N'
+ AND placex.rank_search < 26 -- needed to select the right index
+ AND _st_covers(bnd.geometry, placex.geometry)
+ LOOP
+ --DEBUG: RAISE WARNING 'Found type-matching place node %', linked_placex.osm_id;
+ RETURN linked_placex;
+ END LOOP;
+ END IF;
+
+ IF bnd.extratags ? 'wikidata' THEN
+ FOR linked_placex IN
+ SELECT * FROM placex
+ WHERE placex.class = 'place' AND placex.osm_type = 'N'
+ AND placex.extratags ? 'wikidata' -- needed to select right index
+ AND placex.extratags->'wikidata' = bnd.extratags->'wikidata'
+ AND placex.rank_search < 26
+ AND _st_covers(bnd.geometry, placex.geometry)
+ ORDER BY make_standard_name(name->'name') = bnd_name desc
+ LOOP
+ --DEBUG: RAISE WARNING 'Found wikidata-matching place node %', linked_placex.osm_id;
+ RETURN linked_placex;
+ END LOOP;
+ END IF;
+
+ -- Name searches can be done for ways as well as relations
+ IF bnd_name is not null THEN
+ --DEBUG: RAISE WARNING 'Looking for nodes with matching names';
+ FOR linked_placex IN
+ SELECT placex.* from placex
+ WHERE make_standard_name(name->'name') = bnd_name
+ AND ((bnd.rank_address > 0 and placex.rank_address = bnd.rank_address)
+ OR (bnd.rank_address = 0 and placex.rank_search = bnd.rank_search))
+ AND placex.osm_type = 'N'
+ AND placex.rank_search < 26 -- needed to select the right index
+ AND _st_covers(bnd.geometry, placex.geometry)
+ LOOP
+ --DEBUG: RAISE WARNING 'Found matching place node %', linked_placex.osm_id;
+ RETURN linked_placex;
+ END LOOP;
+ END IF;
+
+ RETURN NULL;
+END;
+$$
+LANGUAGE plpgsql STABLE;
+
+
+-- Insert address of a place into the place_addressline table.
+--
+-- \param obj_place_id Place_id of the place to compute the address for.
+-- \param partition Partition number where the place is in.
+-- \param maxrank Rank of the place. All address features must have
+-- a search rank lower than the given rank.
+-- \param address Address terms for the place.
+-- \param geoemtry Geometry to which the address objects should be close.
+--
+-- \retval parent_place_id Place_id of the address object that is the direct
+-- ancestor.
+-- \retval postcode Postcode computed from the address. This is the
+-- addr:postcode of one of the address objects. If
+-- more than one of has a postcode, the highest ranking
+-- one is used. May be NULL.
+-- \retval nameaddress_vector Search terms for the address. This is the sum
+-- of name terms of all address objects.
+CREATE OR REPLACE FUNCTION insert_addresslines(obj_place_id BIGINT,
+ partition SMALLINT,
+ maxrank SMALLINT,
+ address HSTORE,
+ geometry GEOMETRY,
+ OUT parent_place_id BIGINT,
+ OUT postcode TEXT,
+ OUT nameaddress_vector INT[])
+ AS $$
+DECLARE
+ current_rank_address INTEGER := 0;
+ location_distance FLOAT := 0;
+ location_parent GEOMETRY := NULL;
+ parent_place_id_rank SMALLINT := 0;
+
+ location_isaddress BOOLEAN;
+
+ address_havelevel BOOLEAN[];
+ location_keywords INT[];
+
+ location RECORD;
+ addr_item RECORD;
+
+ isin_tokens INT[];
+ isin TEXT[];
+BEGIN
+ parent_place_id := 0;
+ nameaddress_vector := '{}'::int[];
+ isin_tokens := '{}'::int[];
+
+ ---- convert address store to array of tokenids
+ IF address IS NOT NULL THEN
+ FOR addr_item IN SELECT * FROM each(address)
+ LOOP
+ IF addr_item.key IN ('city', 'tiger:county', 'state', 'suburb', 'province',
+ 'district', 'region', 'county', 'municipality',
+ 'hamlet', 'village', 'subdistrict', 'town',
+ 'neighbourhood', 'quarter', 'parish')
+ THEN
+ isin_tokens := array_merge(isin_tokens,
+ word_ids_from_name(addr_item.value));
+ IF NOT %REVERSE-ONLY% THEN
+ nameaddress_vector := array_merge(nameaddress_vector,
+ addr_ids_from_name(addr_item.value));
+ END IF;
+ END IF;
+ END LOOP;
+
+ IF address ? 'is_in' THEN
+ -- is_in items need splitting
+ isin := regexp_split_to_array(address->'is_in', E'[;,]');
+ IF array_upper(isin, 1) IS NOT NULL THEN
+ FOR i IN 1..array_upper(isin, 1) LOOP
+ isin_tokens := array_merge(isin_tokens,
+ word_ids_from_name(isin[i]));
+
+ -- merge word into address vector
+ IF NOT %REVERSE-ONLY% THEN
+ nameaddress_vector := array_merge(nameaddress_vector,
+ addr_ids_from_name(isin[i]));
+ END IF;
+ END LOOP;
+ END IF;
+ END IF;
+ END IF;
+ IF NOT %REVERSE-ONLY% THEN
+ nameaddress_vector := array_merge(nameaddress_vector, isin_tokens);
+ END IF;
+
+ ---- now compute the address terms
+ FOR i IN 1..28 LOOP
+ address_havelevel[i] := false;
+ END LOOP;
+
+ FOR location IN
+ SELECT * FROM getNearFeatures(partition, geometry, maxrank, isin_tokens)
+ LOOP
+ IF location.rank_address != current_rank_address THEN
+ current_rank_address := location.rank_address;
+ IF location.isguess THEN
+ location_distance := location.distance * 1.5;
+ ELSE
+ IF location.rank_address <= 12 THEN
+ -- for county and above, if we have an area consider that exact
+ -- (It would be nice to relax the constraint for places close to
+ -- the boundary but we'd need the exact geometry for that. Too
+ -- expensive.)
+ location_distance = 0;
+ ELSE
+ -- Below county level remain slightly fuzzy.
+ location_distance := location.distance * 0.5;
+ END IF;
+ END IF;
+ ELSE
+ CONTINUE WHEN location.keywords <@ location_keywords;
+ END IF;
+
+ IF location.distance < location_distance OR NOT location.isguess THEN
+ location_keywords := location.keywords;
+
+ location_isaddress := NOT address_havelevel[location.rank_address];
+ --DEBUG: RAISE WARNING 'should be address: %, is guess: %, rank: %', location_isaddress, location.isguess, location.rank_address;
+ IF location_isaddress AND location.isguess AND location_parent IS NOT NULL THEN
+ location_isaddress := ST_Contains(location_parent, location.centroid);
+ END IF;
+
+ --DEBUG: RAISE WARNING '% isaddress: %', location.place_id, location_isaddress;
+ -- Add it to the list of search terms
+ IF NOT %REVERSE-ONLY% THEN
+ nameaddress_vector := array_merge(nameaddress_vector,
+ location.keywords::integer[]);
+ END IF;
+
+ INSERT INTO place_addressline (place_id, address_place_id, fromarea,
+ isaddress, distance, cached_rank_address)
+ VALUES (obj_place_id, location.place_id, true,
+ location_isaddress, location.distance, location.rank_address);
+
+ IF location_isaddress THEN
+ -- add postcode if we have one
+ -- (If multiple postcodes are available, we end up with the highest ranking one.)
+ IF location.postcode is not null THEN
+ postcode = location.postcode;
+ END IF;
+
+ address_havelevel[location.rank_address] := true;
+ -- add a hack against postcode ranks
+ IF NOT location.isguess
+ AND location.rank_address != 11 AND location.rank_address != 5
+ THEN
+ SELECT p.geometry FROM placex p
+ WHERE p.place_id = location.place_id INTO location_parent;
+ END IF;
+
+ IF location.rank_address > parent_place_id_rank THEN
+ parent_place_id = location.place_id;
+ parent_place_id_rank = location.rank_address;
+ END IF;
+ END IF;
+ END IF;
+
+ END LOOP;
+END;
+$$
+LANGUAGE plpgsql;
+
+
+CREATE OR REPLACE FUNCTION placex_insert()
+ RETURNS TRIGGER
+ AS $$
+DECLARE
+ postcode TEXT;
+ result BOOLEAN;
+ is_area BOOLEAN;
+ country_code VARCHAR(2);
+ diameter FLOAT;
+ classtable TEXT;
+BEGIN
+ --DEBUG: RAISE WARNING '% % % %',NEW.osm_type,NEW.osm_id,NEW.class,NEW.type;
+
+ NEW.place_id := nextval('seq_place');
+ NEW.indexed_status := 1; --STATUS_NEW
+
+ NEW.country_code := lower(get_country_code(NEW.geometry));
+
+ NEW.partition := get_partition(NEW.country_code);
+ NEW.geometry_sector := geometry_sector(NEW.partition, NEW.geometry);
+
+ IF NEW.osm_type = 'X' THEN
+ -- E'X'ternal records should already be in the right format so do nothing
+ ELSE
+ is_area := ST_GeometryType(NEW.geometry) IN ('ST_Polygon','ST_MultiPolygon');
+
+ IF NEW.class in ('place','boundary')
+ AND NEW.type in ('postcode','postal_code')
+ THEN
+ IF NEW.address IS NULL OR NOT NEW.address ? 'postcode' THEN
+ -- most likely just a part of a multipolygon postcode boundary, throw it away
+ RETURN NULL;
+ END IF;
+
+ NEW.name := hstore('ref', NEW.address->'postcode');
+
+ ELSEIF NEW.class = 'boundary' AND NOT is_area THEN
+ RETURN NULL;
+ ELSEIF NEW.class = 'boundary' AND NEW.type = 'administrative'
+ AND NEW.admin_level <= 4 AND NEW.osm_type = 'W'
+ THEN
+ RETURN NULL;
+ END IF;
+
+ SELECT * INTO NEW.rank_search, NEW.rank_address
+ FROM compute_place_rank(NEW.country_code,
+ CASE WHEN is_area THEN 'A' ELSE NEW.osm_type END,
+ NEW.class, NEW.type, NEW.admin_level,
+ (NEW.extratags->'capital') = 'yes',
+ NEW.address->'postcode');
+
+ -- a country code make no sense below rank 4 (country)
+ IF NEW.rank_search < 4 THEN
+ NEW.country_code := NULL;
+ END IF;
+
+ END IF;
+
+ --DEBUG: RAISE WARNING 'placex_insert:END: % % % %',NEW.osm_type,NEW.osm_id,NEW.class,NEW.type;
+
+ RETURN NEW; -- %DIFFUPDATES% The following is not needed until doing diff updates, and slows the main index process down
+
+ IF NEW.osm_type = 'N' and NEW.rank_search > 28 THEN
+ -- might be part of an interpolation
+ result := osmline_reinsert(NEW.osm_id, NEW.geometry);
+ ELSEIF NEW.rank_address > 0 THEN
+ IF (ST_GeometryType(NEW.geometry) in ('ST_Polygon','ST_MultiPolygon') AND ST_IsValid(NEW.geometry)) THEN
+ -- Performance: We just can't handle re-indexing for country level changes
+ IF st_area(NEW.geometry) < 1 THEN
+ -- mark items within the geometry for re-indexing
+ -- RAISE WARNING 'placex poly insert: % % % %',NEW.osm_type,NEW.osm_id,NEW.class,NEW.type;
+
+ -- work around bug in postgis, this may have been fixed in 2.0.0 (see http://trac.osgeo.org/postgis/ticket/547)
+ update placex set indexed_status = 2 where (st_covers(NEW.geometry, placex.geometry) OR ST_Intersects(NEW.geometry, placex.geometry))
+ AND rank_search > NEW.rank_search and indexed_status = 0 and ST_geometrytype(placex.geometry) = 'ST_Point' and (rank_search < 28 or name is not null or (NEW.rank_search >= 16 and address ? 'place'));
+ update placex set indexed_status = 2 where (st_covers(NEW.geometry, placex.geometry) OR ST_Intersects(NEW.geometry, placex.geometry))
+ AND rank_search > NEW.rank_search and indexed_status = 0 and ST_geometrytype(placex.geometry) != 'ST_Point' and (rank_search < 28 or name is not null or (NEW.rank_search >= 16 and address ? 'place'));
+ END IF;
+ ELSE
+ -- mark nearby items for re-indexing, where 'nearby' depends on the features rank_search and is a complete guess :(
+ diameter := update_place_diameter(NEW.rank_search);
+ IF diameter > 0 THEN
+ -- RAISE WARNING 'placex point insert: % % % % %',NEW.osm_type,NEW.osm_id,NEW.class,NEW.type,diameter;
+ IF NEW.rank_search >= 26 THEN
+ -- roads may cause reparenting for >27 rank places
+ update placex set indexed_status = 2 where indexed_status = 0 and rank_search > NEW.rank_search and ST_DWithin(placex.geometry, NEW.geometry, diameter);
+ -- reparenting also for OSM Interpolation Lines (and for Tiger?)
+ update location_property_osmline set indexed_status = 2 where indexed_status = 0 and ST_DWithin(location_property_osmline.linegeo, NEW.geometry, diameter);
+ ELSEIF NEW.rank_search >= 16 THEN
+ -- up to rank 16, street-less addresses may need reparenting
+ update placex set indexed_status = 2 where indexed_status = 0 and rank_search > NEW.rank_search and ST_DWithin(placex.geometry, NEW.geometry, diameter) and (rank_search < 28 or name is not null or address ? 'place');
+ ELSE
+ -- for all other places the search terms may change as well
+ update placex set indexed_status = 2 where indexed_status = 0 and rank_search > NEW.rank_search and ST_DWithin(placex.geometry, NEW.geometry, diameter) and (rank_search < 28 or name is not null);
+ END IF;
+ END IF;
+ END IF;
+ END IF;
+
+
+ -- add to tables for special search
+ -- Note: won't work on initial import because the classtype tables
+ -- do not yet exist. It won't hurt either.
+ classtable := 'place_classtype_' || NEW.class || '_' || NEW.type;
+ SELECT count(*)>0 FROM pg_tables WHERE tablename = classtable and schemaname = current_schema() INTO result;
+ IF result THEN
+ EXECUTE 'INSERT INTO ' || classtable::regclass || ' (place_id, centroid) VALUES ($1,$2)'
+ USING NEW.place_id, ST_Centroid(NEW.geometry);
+ END IF;
+
+ RETURN NEW;
+
+END;
+$$
+LANGUAGE plpgsql;
+
+CREATE OR REPLACE FUNCTION get_parent_address_level(geom GEOMETRY, in_level SMALLINT)
+ RETURNS SMALLINT
+ AS $$
+DECLARE
+ address_rank SMALLINT;
+BEGIN
+ IF in_level <= 3 or in_level > 15 THEN
+ address_rank := 3;
+ ELSE
+ SELECT rank_address INTO address_rank
+ FROM placex
+ WHERE osm_type = 'R' and class = 'boundary' and type = 'administrative'
+ and admin_level < in_level
+ and geometry && geom and ST_Covers(geometry, geom)
+ ORDER BY admin_level desc LIMIT 1;
+ END IF;
+
+ IF address_rank is NULL or address_rank <= 3 THEN
+ RETURN 3;
+ END IF;
+
+ RETURN address_rank;
+END;
+$$
+LANGUAGE plpgsql;
+
+
+CREATE OR REPLACE FUNCTION placex_update()
+ RETURNS TRIGGER
+ AS $$
+DECLARE
+ i INTEGER;
+ location RECORD;
+ relation_members TEXT[];
+
+ centroid GEOMETRY;
+ parent_address_level SMALLINT;
+
+ addr_street TEXT;
+ addr_place TEXT;
+
+ name_vector INTEGER[];
+ nameaddress_vector INTEGER[];
+
+ linked_node_id BIGINT;
+ linked_importance FLOAT;
+ linked_wikipedia TEXT;
+
+ result BOOLEAN;
+BEGIN
+ -- deferred delete
+ IF OLD.indexed_status = 100 THEN
+ --DEBUG: RAISE WARNING 'placex_update delete % %',NEW.osm_type,NEW.osm_id;
+ delete from placex where place_id = OLD.place_id;
+ RETURN NULL;
+ END IF;
+
+ IF NEW.indexed_status != 0 OR OLD.indexed_status = 0 THEN
+ RETURN NEW;
+ END IF;
+
+ --DEBUG: RAISE WARNING 'placex_update % % (%)',NEW.osm_type,NEW.osm_id,NEW.place_id;
+
+ NEW.indexed_date = now();
+
+ IF NOT %REVERSE-ONLY% THEN
+ DELETE from search_name WHERE place_id = NEW.place_id;
+ END IF;
+ result := deleteSearchName(NEW.partition, NEW.place_id);
+ DELETE FROM place_addressline WHERE place_id = NEW.place_id;
+ result := deleteRoad(NEW.partition, NEW.place_id);
+ result := deleteLocationArea(NEW.partition, NEW.place_id, NEW.rank_search);
+ UPDATE placex set linked_place_id = null, indexed_status = 2
+ where linked_place_id = NEW.place_id;
+ -- update not necessary for osmline, cause linked_place_id does not exist
+
+ IF NEW.linked_place_id is not null THEN
+ --DEBUG: RAISE WARNING 'place already linked to %', NEW.linked_place_id;
+ RETURN NEW;
+ END IF;
+
+ -- recompute the ranks, they might change when linking changes
+ SELECT * INTO NEW.rank_search, NEW.rank_address
+ FROM compute_place_rank(NEW.country_code,
+ CASE WHEN ST_GeometryType(NEW.geometry)
+ IN ('ST_Polygon','ST_MultiPolygon')
+ THEN 'A' ELSE NEW.osm_type END,
+ NEW.class, NEW.type, NEW.admin_level,
+ (NEW.extratags->'capital') = 'yes',
+ NEW.address->'postcode');
+
+
+ --DEBUG: RAISE WARNING 'Copy over address tags';
+ -- housenumber is a computed field, so start with an empty value
+ NEW.housenumber := NULL;
+ IF NEW.address is not NULL THEN
+ IF NEW.address ? 'conscriptionnumber' THEN
+ i := getorcreate_housenumber_id(make_standard_name(NEW.address->'conscriptionnumber'));
+ IF NEW.address ? 'streetnumber' THEN
+ i := getorcreate_housenumber_id(make_standard_name(NEW.address->'streetnumber'));
+ NEW.housenumber := (NEW.address->'conscriptionnumber') || '/' || (NEW.address->'streetnumber');
+ ELSE
+ NEW.housenumber := NEW.address->'conscriptionnumber';
+ END IF;
+ ELSEIF NEW.address ? 'streetnumber' THEN
+ NEW.housenumber := NEW.address->'streetnumber';
+ i := getorcreate_housenumber_id(make_standard_name(NEW.address->'streetnumber'));
+ ELSEIF NEW.address ? 'housenumber' THEN
+ NEW.housenumber := NEW.address->'housenumber';
+ i := getorcreate_housenumber_id(make_standard_name(NEW.housenumber));
+ END IF;
+
+ addr_street := NEW.address->'street';
+ addr_place := NEW.address->'place';
+
+ IF NEW.address ? 'postcode' and NEW.address->'postcode' not similar to '%(,|;)%' THEN
+ i := getorcreate_postcode_id(NEW.address->'postcode');
+ END IF;
+ END IF;
+
+ -- Speed up searches - just use the centroid of the feature
+ -- cheaper but less acurate
+ NEW.centroid := ST_PointOnSurface(NEW.geometry);
+ --DEBUG: RAISE WARNING 'Computing preliminary centroid at %',ST_AsText(NEW.centroid);
+
+ NEW.postcode := null;
+
+ -- recalculate country and partition
+ IF NEW.rank_search = 4 AND NEW.address is not NULL AND NEW.address ? 'country' THEN
+ -- for countries, believe the mapped country code,
+ -- so that we remain in the right partition if the boundaries
+ -- suddenly expand.
+ NEW.country_code := lower(NEW.address->'country');
+ NEW.partition := get_partition(lower(NEW.country_code));
+ IF NEW.partition = 0 THEN
+ NEW.country_code := lower(get_country_code(NEW.centroid));
+ NEW.partition := get_partition(NEW.country_code);
+ END IF;
+ ELSE
+ IF NEW.rank_search >= 4 THEN
+ NEW.country_code := lower(get_country_code(NEW.centroid));
+ ELSE
+ NEW.country_code := NULL;
+ END IF;
+ NEW.partition := get_partition(NEW.country_code);
+ END IF;
+ --DEBUG: RAISE WARNING 'Country updated: "%"', NEW.country_code;
+
+ -- waterway ways are linked when they are part of a relation and have the same class/type
+ IF NEW.osm_type = 'R' and NEW.class = 'waterway' THEN
+ FOR relation_members IN select members from planet_osm_rels r where r.id = NEW.osm_id and r.parts != array[]::bigint[]
+ LOOP
+ FOR i IN 1..array_upper(relation_members, 1) BY 2 LOOP
+ IF relation_members[i+1] in ('', 'main_stream', 'side_stream') AND substring(relation_members[i],1,1) = 'w' THEN
+ --DEBUG: RAISE WARNING 'waterway parent %, child %/%', NEW.osm_id, i, relation_members[i];
+ FOR linked_node_id IN SELECT place_id FROM placex
+ WHERE osm_type = 'W' and osm_id = substring(relation_members[i],2,200)::bigint
+ and class = NEW.class and type in ('river', 'stream', 'canal', 'drain', 'ditch')
+ and ( relation_members[i+1] != 'side_stream' or NEW.name->'name' = name->'name')
+ LOOP
+ UPDATE placex SET linked_place_id = NEW.place_id WHERE place_id = linked_node_id;
+ IF NOT %REVERSE-ONLY% THEN
+ DELETE FROM search_name WHERE place_id = linked_node_id;
+ END IF;
+ END LOOP;
+ END IF;
+ END LOOP;
+ END LOOP;
+ --DEBUG: RAISE WARNING 'Waterway processed';
+ END IF;
+
+ NEW.importance := null;
+ SELECT wikipedia, importance
+ FROM compute_importance(NEW.extratags, NEW.country_code, NEW.osm_type, NEW.osm_id)
+ INTO NEW.wikipedia,NEW.importance;
+
+--DEBUG: RAISE WARNING 'Importance computed from wikipedia: %', NEW.importance;
+
+ -- ---------------------------------------------------------------------------
+ -- For low level elements we inherit from our parent road
+ IF (NEW.rank_search > 27 OR (NEW.type = 'postcode' AND NEW.rank_search = 25)) THEN
+
+ --DEBUG: RAISE WARNING 'finding street for % %', NEW.osm_type, NEW.osm_id;
+ NEW.parent_place_id := null;
+
+ -- if we have a POI and there is no address information,
+ -- see if we can get it from a surrounding building
+ IF NEW.osm_type = 'N' AND addr_street IS NULL AND addr_place IS NULL
+ AND NEW.housenumber IS NULL THEN
+ FOR location IN
+ -- The additional && condition works around the misguided query
+ -- planner of postgis 3.0.
+ SELECT address from placex where ST_Covers(geometry, NEW.centroid)
+ and geometry && NEW.centroid
+ and (address ? 'housenumber' or address ? 'street' or address ? 'place')
+ and rank_search > 28 AND ST_GeometryType(geometry) in ('ST_Polygon','ST_MultiPolygon')
+ limit 1
+ LOOP
+ NEW.housenumber := location.address->'housenumber';
+ addr_street := location.address->'street';
+ addr_place := location.address->'place';
+ --DEBUG: RAISE WARNING 'Found surrounding building % %', location.osm_type, location.osm_id;
+ END LOOP;
+ END IF;
+
+ -- We have to find our parent road.
+ NEW.parent_place_id := find_parent_for_poi(NEW.osm_type, NEW.osm_id,
+ NEW.partition,
+ ST_Envelope(NEW.geometry),
+ addr_street, addr_place);
+
+ -- If we found the road take a shortcut here.
+ -- Otherwise fall back to the full address getting method below.
+ IF NEW.parent_place_id is not null THEN
+
+ -- Get the details of the parent road
+ SELECT p.country_code, p.postcode FROM placex p
+ WHERE p.place_id = NEW.parent_place_id INTO location;
+
+ NEW.country_code := location.country_code;
+ --DEBUG: RAISE WARNING 'Got parent details from search name';
+
+ -- determine postcode
+ IF NEW.address is not null AND NEW.address ? 'postcode' THEN
+ NEW.postcode = upper(trim(NEW.address->'postcode'));
+ ELSE
+ NEW.postcode := location.postcode;
+ END IF;
+ IF NEW.postcode is null THEN
+ NEW.postcode := get_nearest_postcode(NEW.country_code, NEW.geometry);
+ END IF;
+
+ -- If there is no name it isn't searchable, don't bother to create a search record
+ IF NEW.name is NULL THEN
+ --DEBUG: RAISE WARNING 'Not a searchable place % %', NEW.osm_type, NEW.osm_id;
+ return NEW;
+ END IF;
+
+ NEW.name := add_default_place_name(NEW.country_code, NEW.name);
+ name_vector := make_keywords(NEW.name);
+
+ -- Performance, it would be more acurate to do all the rest of the import
+ -- process but it takes too long
+ -- Just be happy with inheriting from parent road only
+ IF NEW.rank_search <= 25 and NEW.rank_address > 0 THEN
+ result := add_location(NEW.place_id, NEW.country_code, NEW.partition, name_vector, NEW.rank_search, NEW.rank_address, upper(trim(NEW.address->'postcode')), NEW.geometry);
+ --DEBUG: RAISE WARNING 'Place added to location table';
+ END IF;
+
+ result := insertSearchName(NEW.partition, NEW.place_id, name_vector,
+ NEW.rank_search, NEW.rank_address, NEW.geometry);
+
+ IF NOT %REVERSE-ONLY% THEN
+ -- Merge address from parent
+ SELECT array_merge(s.name_vector, s.nameaddress_vector)
+ INTO nameaddress_vector
+ FROM search_name s
+ WHERE s.place_id = NEW.parent_place_id;
+
+ INSERT INTO search_name (place_id, search_rank, address_rank,
+ importance, country_code, name_vector,
+ nameaddress_vector, centroid)
+ VALUES (NEW.place_id, NEW.rank_search, NEW.rank_address,
+ NEW.importance, NEW.country_code, name_vector,
+ nameaddress_vector, NEW.centroid);
+ --DEBUG: RAISE WARNING 'Place added to search table';
+ END IF;
+
+ return NEW;
+ END IF;
+
+ END IF;
+
+ -- ---------------------------------------------------------------------------
+ -- Full indexing
+ --DEBUG: RAISE WARNING 'Using full index mode for % %', NEW.osm_type, NEW.osm_id;
+ SELECT * INTO location FROM find_linked_place(NEW);
+ IF location.place_id is not null THEN
+ --DEBUG: RAISE WARNING 'Linked %', location;
+
+ -- Use the linked point as the centre point of the geometry,
+ -- but only if it is within the area of the boundary.
+ centroid := coalesce(location.centroid, ST_Centroid(location.geometry));
+ IF centroid is not NULL AND ST_Within(centroid, NEW.geometry) THEN
+ NEW.centroid := centroid;
+ END IF;
+
+ -- Use the address rank of the linked place, if it has one
+ parent_address_level := get_parent_address_level(NEW.geometry, NEW.admin_level);
+ --DEBUG: RAISE WARNING 'parent address: % rank address: %', parent_address_level, location.rank_address;
+ IF location.rank_address > parent_address_level
+ and location.rank_address < 26
+ THEN
+ NEW.rank_address := location.rank_address;
+ END IF;
+
+ -- merge in the label name
+ IF NOT location.name IS NULL THEN
+ NEW.name := location.name || NEW.name;
+ END IF;
+
+ -- merge in extra tags
+ NEW.extratags := hstore('linked_' || location.class, location.type)
+ || coalesce(location.extratags, ''::hstore)
+ || coalesce(NEW.extratags, ''::hstore);
+
+ -- mark the linked place (excludes from search results)
+ UPDATE placex set linked_place_id = NEW.place_id
+ WHERE place_id = location.place_id;
+ -- ensure that those places are not found anymore
+ IF NOT %REVERSE-ONLY% THEN
+ DELETE FROM search_name WHERE place_id = location.place_id;
+ END IF;
+ PERFORM deleteLocationArea(NEW.partition, location.place_id, NEW.rank_search);
+
+ SELECT wikipedia, importance
+ FROM compute_importance(location.extratags, NEW.country_code,
+ 'N', location.osm_id)
+ INTO linked_wikipedia,linked_importance;
+
+ -- Use the maximum importance if one could be computed from the linked object.
+ IF linked_importance is not null AND
+ (NEW.importance is null or NEW.importance < linked_importance)
+ THEN
+ NEW.importance = linked_importance;
+ END IF;
+ END IF;
+
+ -- Initialise the name vector using our name
+ NEW.name := add_default_place_name(NEW.country_code, NEW.name);
+ name_vector := make_keywords(NEW.name);
+
+ -- make sure all names are in the word table
+ IF NEW.admin_level = 2
+ AND NEW.class = 'boundary' AND NEW.type = 'administrative'
+ AND NEW.country_code IS NOT NULL AND NEW.osm_type = 'R'
+ THEN
+ PERFORM create_country(NEW.name, lower(NEW.country_code));
+ --DEBUG: RAISE WARNING 'Country names updated';
+ END IF;
+
+ SELECT * FROM insert_addresslines(NEW.place_id, NEW.partition,
+ NEW.rank_search, NEW.address,
+ CASE WHEN NEW.rank_search >= 26
+ AND NEW.rank_search < 30
+ THEN NEW.geometry ELSE NEW.centroid END)
+ INTO NEW.parent_place_id, NEW.postcode, nameaddress_vector;
+
+ --DEBUG: RAISE WARNING 'RETURN insert_addresslines: %, %, %', NEW.parent_place_id, NEW.postcode, nameaddress_vector;
+
+ IF NEW.address is not null AND NEW.address ? 'postcode'
+ AND NEW.address->'postcode' not similar to '%(,|;)%' THEN
+ NEW.postcode := upper(trim(NEW.address->'postcode'));
+ END IF;
+
+ IF NEW.postcode is null AND NEW.rank_search > 8 THEN
+ NEW.postcode := get_nearest_postcode(NEW.country_code, NEW.geometry);
+ END IF;
+
+ -- if we have a name add this to the name search table
+ IF NEW.name IS NOT NULL THEN
+
+ IF NEW.rank_search <= 25 and NEW.rank_address > 0 THEN
+ result := add_location(NEW.place_id, NEW.country_code, NEW.partition, name_vector, NEW.rank_search, NEW.rank_address, upper(trim(NEW.address->'postcode')), NEW.geometry);
+ --DEBUG: RAISE WARNING 'added to location (full)';
+ END IF;
+
+ IF NEW.rank_search between 26 and 27 and NEW.class = 'highway' THEN
+ result := insertLocationRoad(NEW.partition, NEW.place_id, NEW.country_code, NEW.geometry);
+ --DEBUG: RAISE WARNING 'insert into road location table (full)';
+ END IF;
+
+ result := insertSearchName(NEW.partition, NEW.place_id, name_vector,
+ NEW.rank_search, NEW.rank_address, NEW.geometry);
+ --DEBUG: RAISE WARNING 'added to search name (full)';
+
+ IF NOT %REVERSE-ONLY% THEN
+ INSERT INTO search_name (place_id, search_rank, address_rank,
+ importance, country_code, name_vector,
+ nameaddress_vector, centroid)
+ VALUES (NEW.place_id, NEW.rank_search, NEW.rank_address,
+ NEW.importance, NEW.country_code, name_vector,
+ nameaddress_vector, NEW.centroid);
+ END IF;
+
+ END IF;
+
+ --DEBUG: RAISE WARNING 'place update % % finsihed.', NEW.osm_type, NEW.osm_id;
+
+ RETURN NEW;
+END;
+$$
+LANGUAGE plpgsql;
+
+
+CREATE OR REPLACE FUNCTION placex_delete()
+ RETURNS TRIGGER
+ AS $$
+DECLARE
+ b BOOLEAN;
+ classtable TEXT;
+BEGIN
+ -- RAISE WARNING 'placex_delete % %',OLD.osm_type,OLD.osm_id;
+
+ update placex set linked_place_id = null, indexed_status = 2 where linked_place_id = OLD.place_id and indexed_status = 0;
+ --DEBUG: RAISE WARNING 'placex_delete:01 % %',OLD.osm_type,OLD.osm_id;
+ update placex set linked_place_id = null where linked_place_id = OLD.place_id;
+ --DEBUG: RAISE WARNING 'placex_delete:02 % %',OLD.osm_type,OLD.osm_id;
+
+ IF OLD.rank_address < 30 THEN
+
+ -- mark everything linked to this place for re-indexing
+ --DEBUG: RAISE WARNING 'placex_delete:03 % %',OLD.osm_type,OLD.osm_id;
+ UPDATE placex set indexed_status = 2 from place_addressline where address_place_id = OLD.place_id
+ and placex.place_id = place_addressline.place_id and indexed_status = 0 and place_addressline.isaddress;
+
+ --DEBUG: RAISE WARNING 'placex_delete:04 % %',OLD.osm_type,OLD.osm_id;
+ DELETE FROM place_addressline where address_place_id = OLD.place_id;
+
+ --DEBUG: RAISE WARNING 'placex_delete:05 % %',OLD.osm_type,OLD.osm_id;
+ b := deleteRoad(OLD.partition, OLD.place_id);
+
+ --DEBUG: RAISE WARNING 'placex_delete:06 % %',OLD.osm_type,OLD.osm_id;
+ update placex set indexed_status = 2 where parent_place_id = OLD.place_id and indexed_status = 0;
+ --DEBUG: RAISE WARNING 'placex_delete:07 % %',OLD.osm_type,OLD.osm_id;
+ -- reparenting also for OSM Interpolation Lines (and for Tiger?)
+ update location_property_osmline set indexed_status = 2 where indexed_status = 0 and parent_place_id = OLD.place_id;
+
+ END IF;
+
+ --DEBUG: RAISE WARNING 'placex_delete:08 % %',OLD.osm_type,OLD.osm_id;
+
+ IF OLD.rank_address < 26 THEN
+ b := deleteLocationArea(OLD.partition, OLD.place_id, OLD.rank_search);
+ END IF;
+
+ --DEBUG: RAISE WARNING 'placex_delete:09 % %',OLD.osm_type,OLD.osm_id;
+
+ IF OLD.name is not null THEN
+ IF NOT %REVERSE-ONLY% THEN
+ DELETE from search_name WHERE place_id = OLD.place_id;
+ END IF;
+ b := deleteSearchName(OLD.partition, OLD.place_id);
+ END IF;
+
+ --DEBUG: RAISE WARNING 'placex_delete:10 % %',OLD.osm_type,OLD.osm_id;
+
+ DELETE FROM place_addressline where place_id = OLD.place_id;
+
+ --DEBUG: RAISE WARNING 'placex_delete:11 % %',OLD.osm_type,OLD.osm_id;
+
+ -- remove from tables for special search
+ classtable := 'place_classtype_' || OLD.class || '_' || OLD.type;
+ SELECT count(*)>0 FROM pg_tables WHERE tablename = classtable and schemaname = current_schema() INTO b;
+ IF b THEN
+ EXECUTE 'DELETE FROM ' || classtable::regclass || ' WHERE place_id = $1' USING OLD.place_id;
+ END IF;
+
+ --DEBUG: RAISE WARNING 'placex_delete:12 % %',OLD.osm_type,OLD.osm_id;
+
+ RETURN OLD;
+
+END;
+$$
+LANGUAGE plpgsql;
--- /dev/null
+-- Trigger functions for location_postcode table.
+
+
+-- Trigger for updates of location_postcode
+--
+-- Computes the parent object the postcode most likely refers to.
+-- This will be the place that determines the address displayed when
+-- searching for this postcode.
+CREATE OR REPLACE FUNCTION postcode_update()
+ RETURNS TRIGGER
+ AS $$
+DECLARE
+ partition SMALLINT;
+ location RECORD;
+BEGIN
+ IF NEW.indexed_status != 0 OR OLD.indexed_status = 0 THEN
+ RETURN NEW;
+ END IF;
+
+ NEW.indexed_date = now();
+
+ partition := get_partition(NEW.country_code);
+
+ SELECT * FROM get_postcode_rank(NEW.country_code, NEW.postcode)
+ INTO NEW.rank_search, NEW.rank_address;
+
+ NEW.parent_place_id = 0;
+ FOR location IN
+ SELECT place_id
+ FROM getNearFeatures(partition, NEW.geometry, NEW.rank_search, '{}'::int[])
+ WHERE NOT isguess ORDER BY rank_address DESC LIMIT 1
+ LOOP
+ NEW.parent_place_id = location.place_id;
+ END LOOP;
+
+ RETURN NEW;
+END;
+$$
+LANGUAGE plpgsql;
+
--- /dev/null
+-- Functions related to search and address ranks
+
+-- Return an approximate search radius according to the search rank.
+CREATE OR REPLACE FUNCTION reverse_place_diameter(rank_search SMALLINT)
+ RETURNS FLOAT
+ AS $$
+BEGIN
+ IF rank_search <= 4 THEN
+ RETURN 5.0;
+ ELSIF rank_search <= 8 THEN
+ RETURN 1.8;
+ ELSIF rank_search <= 12 THEN
+ RETURN 0.6;
+ ELSIF rank_search <= 17 THEN
+ RETURN 0.16;
+ ELSIF rank_search <= 18 THEN
+ RETURN 0.08;
+ ELSIF rank_search <= 19 THEN
+ RETURN 0.04;
+ END IF;
+
+ RETURN 0.02;
+END;
+$$
+LANGUAGE plpgsql IMMUTABLE;
+
+
+-- Return an approximate update radius according to the search rank.
+CREATE OR REPLACE FUNCTION update_place_diameter(rank_search SMALLINT)
+ RETURNS FLOAT
+ AS $$
+BEGIN
+ -- postcodes
+ IF rank_search = 11 or rank_search = 5 THEN
+ RETURN 0.05;
+ -- anything higher than city is effectively ignored (polygon required)
+ ELSIF rank_search < 16 THEN
+ RETURN 0;
+ ELSIF rank_search < 18 THEN
+ RETURN 0.1;
+ ELSIF rank_search < 20 THEN
+ RETURN 0.05;
+ ELSIF rank_search = 21 THEN
+ RETURN 0.001;
+ ELSIF rank_search < 24 THEN
+ RETURN 0.02;
+ ELSIF rank_search < 26 THEN
+ RETURN 0.002;
+ ELSIF rank_search < 28 THEN
+ RETURN 0.001;
+ END IF;
+
+ RETURN 0;
+END;
+$$
+LANGUAGE plpgsql IMMUTABLE;
+
+
+-- Guess a ranking for postcodes from country and postcode format.
+CREATE OR REPLACE FUNCTION get_postcode_rank(country_code VARCHAR(2), postcode TEXT,
+ OUT rank_search SMALLINT,
+ OUT rank_address SMALLINT)
+AS $$
+DECLARE
+ part TEXT;
+BEGIN
+ rank_search := 30;
+ rank_address := 30;
+ postcode := upper(postcode);
+
+ IF country_code = 'gb' THEN
+ IF postcode ~ '^([A-Z][A-Z]?[0-9][0-9A-Z]? [0-9][A-Z][A-Z])$' THEN
+ rank_search := 25;
+ rank_address := 5;
+ ELSEIF postcode ~ '^([A-Z][A-Z]?[0-9][0-9A-Z]? [0-9])$' THEN
+ rank_search := 23;
+ rank_address := 5;
+ ELSEIF postcode ~ '^([A-Z][A-Z]?[0-9][0-9A-Z])$' THEN
+ rank_search := 21;
+ rank_address := 5;
+ END IF;
+
+ ELSEIF country_code = 'sg' THEN
+ IF postcode ~ '^([0-9]{6})$' THEN
+ rank_search := 25;
+ rank_address := 11;
+ END IF;
+
+ ELSEIF country_code = 'de' THEN
+ IF postcode ~ '^([0-9]{5})$' THEN
+ rank_search := 21;
+ rank_address := 11;
+ END IF;
+
+ ELSE
+ -- Guess at the postcode format and coverage (!)
+ IF postcode ~ '^[A-Z0-9]{1,5}$' THEN -- Probably too short to be very local
+ rank_search := 21;
+ rank_address := 11;
+ ELSE
+ -- Does it look splitable into and area and local code?
+ part := substring(postcode from '^([- :A-Z0-9]+)([- :][A-Z0-9]+)$');
+
+ IF part IS NOT NULL THEN
+ rank_search := 25;
+ rank_address := 11;
+ ELSEIF postcode ~ '^[- :A-Z0-9]{6,}$' THEN
+ rank_search := 21;
+ rank_address := 11;
+ END IF;
+ END IF;
+ END IF;
+
+END;
+$$
+LANGUAGE plpgsql IMMUTABLE;
+
+
+-- Get standard search and address rank for an object.
+--
+-- \param country Two-letter country code where the object is in.
+-- \param extended_type OSM type (N, W, R) or area type (A).
+-- \param place_class Class (or tag key) of object.
+-- \param place_type Type (or tag value) of object.
+-- \param admin_level Value of admin_level tag.
+-- \param is_major If true, boost search rank by one.
+-- \param postcode Value of addr:postcode tag.
+-- \param[out] search_rank Computed search rank.
+-- \param[out] address_rank Computed address rank.
+--
+CREATE OR REPLACE FUNCTION compute_place_rank(country VARCHAR(2),
+ extended_type VARCHAR(1),
+ place_class TEXT, place_type TEXT,
+ admin_level SMALLINT,
+ is_major BOOLEAN,
+ postcode TEXT,
+ OUT search_rank SMALLINT,
+ OUT address_rank SMALLINT)
+AS $$
+DECLARE
+ classtype TEXT;
+BEGIN
+ IF place_class in ('place','boundary')
+ and place_type in ('postcode','postal_code')
+ THEN
+ SELECT * INTO search_rank, address_rank
+ FROM get_postcode_rank(country, postcode);
+
+ IF NOT extended_type = 'A' THEN
+ address_rank := 0;
+ END IF;
+ ELSEIF extended_type = 'N' AND place_class = 'highway' THEN
+ search_rank = 30;
+ address_rank = 0;
+ ELSEIF place_class = 'landuse' AND extended_type != 'A' THEN
+ search_rank = 30;
+ address_rank = 0;
+ ELSE
+ IF place_class = 'boundary' and place_type = 'administrative' THEN
+ classtype = place_type || admin_level::TEXT;
+ ELSE
+ classtype = place_type;
+ END IF;
+
+ SELECT l.rank_search, l.rank_address INTO search_rank, address_rank
+ FROM address_levels l
+ WHERE (l.country_code = country or l.country_code is NULL)
+ AND l.class = place_class AND (l.type = classtype or l.type is NULL)
+ ORDER BY l.country_code, l.class, l.type LIMIT 1;
+
+ IF search_rank is NULL THEN
+ search_rank := 30;
+ END IF;
+
+ IF address_rank is NULL THEN
+ address_rank := 30;
+ END IF;
+
+ -- some postcorrections
+ IF place_class = 'waterway' AND extended_type = 'R' THEN
+ -- Slightly promote waterway relations so that they are processed
+ -- before their members.
+ search_rank := search_rank - 1;
+ END IF;
+
+ IF is_major THEN
+ search_rank := search_rank - 1;
+ END IF;
+ END IF;
+END;
+$$
+LANGUAGE plpgsql IMMUTABLE;
--- /dev/null
+-- Assorted helper functions for the triggers.
+
+CREATE OR REPLACE FUNCTION geometry_sector(partition INTEGER, place geometry)
+ RETURNS INTEGER
+ AS $$
+DECLARE
+ NEWgeometry geometry;
+BEGIN
+-- RAISE WARNING '%',place;
+ NEWgeometry := ST_PointOnSurface(place);
+ RETURN (partition*1000000) + (500-ST_X(NEWgeometry)::integer)*1000 + (500-ST_Y(NEWgeometry)::integer);
+END;
+$$
+LANGUAGE plpgsql IMMUTABLE;
+
+
+CREATE OR REPLACE FUNCTION array_merge(a INTEGER[], b INTEGER[])
+ RETURNS INTEGER[]
+ AS $$
+DECLARE
+ i INTEGER;
+ r INTEGER[];
+BEGIN
+ IF array_upper(a, 1) IS NULL THEN
+ RETURN b;
+ END IF;
+ IF array_upper(b, 1) IS NULL THEN
+ RETURN a;
+ END IF;
+ r := a;
+ FOR i IN 1..array_upper(b, 1) LOOP
+ IF NOT (ARRAY[b[i]] <@ r) THEN
+ r := r || b[i];
+ END IF;
+ END LOOP;
+ RETURN r;
+END;
+$$
+LANGUAGE plpgsql IMMUTABLE;
+
+-- Return the node members with a given label from a relation member list
+-- as a set.
+--
+-- \param members Member list in osm2pgsql middle format.
+-- \param memberLabels Array of labels to accept.
+--
+-- \returns Set of OSM ids of nodes that are found.
+--
+CREATE OR REPLACE FUNCTION get_rel_node_members(members TEXT[],
+ memberLabels TEXT[])
+ RETURNS SETOF BIGINT
+ AS $$
+DECLARE
+ i INTEGER;
+BEGIN
+ FOR i IN 1..ARRAY_UPPER(members,1) BY 2 LOOP
+ IF members[i+1] = ANY(memberLabels)
+ AND upper(substring(members[i], 1, 1))::char(1) = 'N'
+ THEN
+ RETURN NEXT substring(members[i], 2)::bigint;
+ END IF;
+ END LOOP;
+
+ RETURN;
+END;
+$$
+LANGUAGE plpgsql IMMUTABLE;
+
+-- Copy 'name' to or from the default language.
+--
+-- \param country_code Country code of the object being named.
+-- \param[inout] name List of names of the object.
+--
+-- If the country named by country_code has a single default language,
+-- then a `name` tag is copied to `name:<country_code>` if this tag does
+-- not yet exist and vice versa.
+CREATE OR REPLACE FUNCTION add_default_place_name(country_code VARCHAR(2),
+ INOUT name HSTORE)
+ AS $$
+DECLARE
+ default_language VARCHAR(10);
+BEGIN
+ IF name is not null AND array_upper(akeys(name),1) > 1 THEN
+ default_language := get_country_language_code(country_code);
+ IF default_language IS NOT NULL THEN
+ IF name ? 'name' AND NOT name ? ('name:'||default_language) THEN
+ name := name || hstore(('name:'||default_language), (name -> 'name'));
+ ELSEIF name ? ('name:'||default_language) AND NOT name ? 'name' THEN
+ name := name || hstore('name', (name -> ('name:'||default_language)));
+ END IF;
+ END IF;
+ END IF;
+END;
+$$
+LANGUAGE plpgsql IMMUTABLE;
+
+
+-- Find the nearest artificial postcode for the given geometry.
+-- TODO For areas there should not be more than two inside the geometry.
+CREATE OR REPLACE FUNCTION get_nearest_postcode(country VARCHAR(2), geom GEOMETRY)
+ RETURNS TEXT
+ AS $$
+DECLARE
+ outcode TEXT;
+ cnt INTEGER;
+BEGIN
+ -- If the geometry is an area then only one postcode must be within
+ -- that area, otherwise consider the area as not having a postcode.
+ IF ST_GeometryType(geom) in ('ST_Polygon','ST_MultiPolygon') THEN
+ SELECT min(postcode), count(*) FROM
+ (SELECT postcode FROM location_postcode
+ WHERE ST_Contains(geom, location_postcode.geometry) LIMIT 2) sub
+ INTO outcode, cnt;
+
+ IF cnt = 1 THEN
+ RETURN outcode;
+ ELSE
+ RETURN null;
+ END IF;
+ END IF;
+
+ SELECT postcode FROM location_postcode
+ WHERE ST_DWithin(geom, location_postcode.geometry, 0.05)
+ AND location_postcode.country_code = country
+ ORDER BY ST_Distance(geom, location_postcode.geometry) LIMIT 1
+ INTO outcode;
+
+ RETURN outcode;
+END;
+$$
+LANGUAGE plpgsql STABLE;
+
+
+CREATE OR REPLACE FUNCTION get_country_code(place geometry)
+ RETURNS TEXT
+ AS $$
+DECLARE
+ place_centre GEOMETRY;
+ nearcountry RECORD;
+BEGIN
+ place_centre := ST_PointOnSurface(place);
+
+-- RAISE WARNING 'get_country_code, start: %', ST_AsText(place_centre);
+
+ -- Try for a OSM polygon
+ FOR nearcountry IN
+ SELECT country_code from location_area_country
+ WHERE country_code is not null and st_covers(geometry, place_centre) limit 1
+ LOOP
+ RETURN nearcountry.country_code;
+ END LOOP;
+
+-- RAISE WARNING 'osm fallback: %', ST_AsText(place_centre);
+
+ -- Try for OSM fallback data
+ -- The order is to deal with places like HongKong that are 'states' within another polygon
+ FOR nearcountry IN
+ SELECT country_code from country_osm_grid
+ WHERE st_covers(geometry, place_centre) order by area asc limit 1
+ LOOP
+ RETURN nearcountry.country_code;
+ END LOOP;
+
+-- RAISE WARNING 'near osm fallback: %', ST_AsText(place_centre);
+
+ --
+ FOR nearcountry IN
+ SELECT country_code from country_osm_grid
+ WHERE st_dwithin(geometry, place_centre, 0.5)
+ ORDER BY st_distance(geometry, place_centre) asc, area asc limit 1
+ LOOP
+ RETURN nearcountry.country_code;
+ END LOOP;
+
+ RETURN NULL;
+END;
+$$
+LANGUAGE plpgsql STABLE;
+
+
+CREATE OR REPLACE FUNCTION get_country_language_code(search_country_code VARCHAR(2))
+ RETURNS TEXT
+ AS $$
+DECLARE
+ nearcountry RECORD;
+BEGIN
+ FOR nearcountry IN
+ SELECT distinct country_default_language_code from country_name
+ WHERE country_code = search_country_code limit 1
+ LOOP
+ RETURN lower(nearcountry.country_default_language_code);
+ END LOOP;
+ RETURN NULL;
+END;
+$$
+LANGUAGE plpgsql STABLE;
+
+
+CREATE OR REPLACE FUNCTION get_partition(in_country_code VARCHAR(10))
+ RETURNS INTEGER
+ AS $$
+DECLARE
+ nearcountry RECORD;
+BEGIN
+ FOR nearcountry IN
+ SELECT partition from country_name where country_code = in_country_code
+ LOOP
+ RETURN nearcountry.partition;
+ END LOOP;
+ RETURN 0;
+END;
+$$
+LANGUAGE plpgsql STABLE;
+
+
+-- Find the parent of an address with addr:street/addr:place tag.
+--
+-- \param street Value of addr:street or NULL if tag is missing.
+-- \param place Value of addr:place or NULL if tag is missing.
+-- \param partition Partition where to search the parent.
+-- \param centroid Location of the address.
+--
+-- \return Place ID of the parent if one was found, NULL otherwise.
+CREATE OR REPLACE FUNCTION find_parent_for_address(street TEXT, place TEXT,
+ partition SMALLINT,
+ centroid GEOMETRY)
+ RETURNS BIGINT
+ AS $$
+DECLARE
+ parent_place_id BIGINT;
+ word_ids INTEGER[];
+BEGIN
+ IF street is not null THEN
+ -- Check for addr:street attributes
+ -- Note that addr:street links can only be indexed, once the street itself is indexed
+ word_ids := word_ids_from_name(street);
+ IF word_ids is not null THEN
+ parent_place_id := getNearestNamedRoadPlaceId(partition, centroid, word_ids);
+ IF parent_place_id is not null THEN
+ --DEBUG: RAISE WARNING 'Get parent form addr:street: %', parent.place_id;
+ RETURN parent_place_id;
+ END IF;
+ END IF;
+ END IF;
+
+ -- Check for addr:place attributes.
+ IF place is not null THEN
+ word_ids := word_ids_from_name(place);
+ IF word_ids is not null THEN
+ parent_place_id := getNearestNamedPlacePlaceId(partition, centroid, word_ids);
+ IF parent_place_id is not null THEN
+ --DEBUG: RAISE WARNING 'Get parent form addr:place: %', parent.place_id;
+ RETURN parent_place_id;
+ END IF;
+ END IF;
+ END IF;
+
+ RETURN NULL;
+END;
+$$
+LANGUAGE plpgsql STABLE;
+
+CREATE OR REPLACE FUNCTION delete_location(OLD_place_id BIGINT)
+ RETURNS BOOLEAN
+ AS $$
+DECLARE
+BEGIN
+ DELETE FROM location_area where place_id = OLD_place_id;
+-- TODO:location_area
+ RETURN true;
+END;
+$$
+LANGUAGE plpgsql;
+
+
+CREATE OR REPLACE FUNCTION add_location(place_id BIGINT, country_code varchar(2),
+ partition INTEGER, keywords INTEGER[],
+ rank_search INTEGER, rank_address INTEGER,
+ in_postcode TEXT, geometry GEOMETRY)
+ RETURNS BOOLEAN
+ AS $$
+DECLARE
+ locationid INTEGER;
+ centroid GEOMETRY;
+ diameter FLOAT;
+ x BOOLEAN;
+ splitGeom RECORD;
+ secgeo GEOMETRY;
+ postcode TEXT;
+BEGIN
+
+ IF rank_search > 25 THEN
+ RAISE EXCEPTION 'Adding location with rank > 25 (% rank %)', place_id, rank_search;
+ END IF;
+
+ x := deleteLocationArea(partition, place_id, rank_search);
+
+ -- add postcode only if it contains a single entry, i.e. ignore postcode lists
+ postcode := NULL;
+ IF in_postcode is not null AND in_postcode not similar to '%(,|;)%' THEN
+ postcode := upper(trim (in_postcode));
+ END IF;
+
+ IF ST_GeometryType(geometry) in ('ST_Polygon','ST_MultiPolygon') THEN
+ centroid := ST_Centroid(geometry);
+
+ FOR secgeo IN select split_geometry(geometry) AS geom LOOP
+ x := insertLocationAreaLarge(partition, place_id, country_code, keywords, rank_search, rank_address, false, postcode, centroid, secgeo);
+ END LOOP;
+
+ ELSE
+
+ diameter := 0.02;
+ IF rank_address = 0 THEN
+ diameter := 0.02;
+ ELSEIF rank_search <= 14 THEN
+ diameter := 1.2;
+ ELSEIF rank_search <= 15 THEN
+ diameter := 1;
+ ELSEIF rank_search <= 16 THEN
+ diameter := 0.5;
+ ELSEIF rank_search <= 17 THEN
+ diameter := 0.2;
+ ELSEIF rank_search <= 21 THEN
+ diameter := 0.05;
+ ELSEIF rank_search = 25 THEN
+ diameter := 0.005;
+ END IF;
+
+-- RAISE WARNING 'adding % diameter %', place_id, diameter;
+
+ secgeo := ST_Buffer(geometry, diameter);
+ x := insertLocationAreaLarge(partition, place_id, country_code, keywords, rank_search, rank_address, true, postcode, ST_Centroid(geometry), secgeo);
+
+ END IF;
+
+ RETURN true;
+END;
+$$
+LANGUAGE plpgsql;
+
+
+CREATE OR REPLACE FUNCTION quad_split_geometry(geometry GEOMETRY, maxarea FLOAT,
+ maxdepth INTEGER)
+ RETURNS SETOF GEOMETRY
+ AS $$
+DECLARE
+ xmin FLOAT;
+ ymin FLOAT;
+ xmax FLOAT;
+ ymax FLOAT;
+ xmid FLOAT;
+ ymid FLOAT;
+ secgeo GEOMETRY;
+ secbox GEOMETRY;
+ seg INTEGER;
+ geo RECORD;
+ area FLOAT;
+ remainingdepth INTEGER;
+ added INTEGER;
+BEGIN
+
+-- RAISE WARNING 'quad_split_geometry: maxarea=%, depth=%',maxarea,maxdepth;
+
+ IF (ST_GeometryType(geometry) not in ('ST_Polygon','ST_MultiPolygon') OR NOT ST_IsValid(geometry)) THEN
+ RETURN NEXT geometry;
+ RETURN;
+ END IF;
+
+ remainingdepth := maxdepth - 1;
+ area := ST_AREA(geometry);
+ IF remainingdepth < 1 OR area < maxarea THEN
+ RETURN NEXT geometry;
+ RETURN;
+ END IF;
+
+ xmin := st_xmin(geometry);
+ xmax := st_xmax(geometry);
+ ymin := st_ymin(geometry);
+ ymax := st_ymax(geometry);
+ secbox := ST_SetSRID(ST_MakeBox2D(ST_Point(ymin,xmin),ST_Point(ymax,xmax)),4326);
+
+ -- if the geometry completely covers the box don't bother to slice any more
+ IF ST_AREA(secbox) = area THEN
+ RETURN NEXT geometry;
+ RETURN;
+ END IF;
+
+ xmid := (xmin+xmax)/2;
+ ymid := (ymin+ymax)/2;
+
+ added := 0;
+ FOR seg IN 1..4 LOOP
+
+ IF seg = 1 THEN
+ secbox := ST_SetSRID(ST_MakeBox2D(ST_Point(xmin,ymin),ST_Point(xmid,ymid)),4326);
+ END IF;
+ IF seg = 2 THEN
+ secbox := ST_SetSRID(ST_MakeBox2D(ST_Point(xmin,ymid),ST_Point(xmid,ymax)),4326);
+ END IF;
+ IF seg = 3 THEN
+ secbox := ST_SetSRID(ST_MakeBox2D(ST_Point(xmid,ymin),ST_Point(xmax,ymid)),4326);
+ END IF;
+ IF seg = 4 THEN
+ secbox := ST_SetSRID(ST_MakeBox2D(ST_Point(xmid,ymid),ST_Point(xmax,ymax)),4326);
+ END IF;
+
+ IF st_intersects(geometry, secbox) THEN
+ secgeo := st_intersection(geometry, secbox);
+ IF NOT ST_IsEmpty(secgeo) AND ST_GeometryType(secgeo) in ('ST_Polygon','ST_MultiPolygon') THEN
+ FOR geo IN select quad_split_geometry(secgeo, maxarea, remainingdepth) as geom LOOP
+ IF NOT ST_IsEmpty(geo.geom) AND ST_GeometryType(geo.geom) in ('ST_Polygon','ST_MultiPolygon') THEN
+ added := added + 1;
+ RETURN NEXT geo.geom;
+ END IF;
+ END LOOP;
+ END IF;
+ END IF;
+ END LOOP;
+
+ RETURN;
+END;
+$$
+LANGUAGE plpgsql IMMUTABLE;
+
+
+CREATE OR REPLACE FUNCTION split_geometry(geometry GEOMETRY)
+ RETURNS SETOF GEOMETRY
+ AS $$
+DECLARE
+ geo RECORD;
+BEGIN
+ -- 10000000000 is ~~ 1x1 degree
+ FOR geo IN select quad_split_geometry(geometry, 0.25, 20) as geom LOOP
+ RETURN NEXT geo.geom;
+ END LOOP;
+ RETURN;
+END;
+$$
+LANGUAGE plpgsql IMMUTABLE;
+
+
+CREATE OR REPLACE FUNCTION place_force_delete(placeid BIGINT)
+ RETURNS BOOLEAN
+ AS $$
+DECLARE
+ osmid BIGINT;
+ osmtype character(1);
+ pclass text;
+ ptype text;
+BEGIN
+ SELECT osm_type, osm_id, class, type FROM placex WHERE place_id = placeid INTO osmtype, osmid, pclass, ptype;
+ DELETE FROM import_polygon_delete where osm_type = osmtype and osm_id = osmid and class = pclass and type = ptype;
+ DELETE FROM import_polygon_error where osm_type = osmtype and osm_id = osmid and class = pclass and type = ptype;
+ -- force delete from place/placex by making it a very small geometry
+ UPDATE place set geometry = ST_SetSRID(ST_Point(0,0), 4326) where osm_type = osmtype and osm_id = osmid and class = pclass and type = ptype;
+ DELETE FROM place where osm_type = osmtype and osm_id = osmid and class = pclass and type = ptype;
+
+ RETURN TRUE;
+END;
+$$
+LANGUAGE plpgsql;
+
+
+CREATE OR REPLACE FUNCTION place_force_update(placeid BIGINT)
+ RETURNS BOOLEAN
+ AS $$
+DECLARE
+ placegeom GEOMETRY;
+ geom GEOMETRY;
+ diameter FLOAT;
+ rank INTEGER;
+BEGIN
+ UPDATE placex SET indexed_status = 2 WHERE place_id = placeid;
+ SELECT geometry, rank_search FROM placex WHERE place_id = placeid INTO placegeom, rank;
+ IF placegeom IS NOT NULL AND ST_IsValid(placegeom) THEN
+ IF ST_GeometryType(placegeom) in ('ST_Polygon','ST_MultiPolygon') THEN
+ FOR geom IN select split_geometry(placegeom) FROM placex WHERE place_id = placeid LOOP
+ update placex set indexed_status = 2 where (st_covers(geom, placex.geometry) OR ST_Intersects(geom, placex.geometry))
+ AND rank_search > rank and indexed_status = 0 and ST_geometrytype(placex.geometry) = 'ST_Point' and (rank_search < 28 or name is not null or (rank >= 16 and address ? 'place'));
+ update placex set indexed_status = 2 where (st_covers(geom, placex.geometry) OR ST_Intersects(geom, placex.geometry))
+ AND rank_search > rank and indexed_status = 0 and ST_geometrytype(placex.geometry) != 'ST_Point' and (rank_search < 28 or name is not null or (rank >= 16 and address ? 'place'));
+ END LOOP;
+ ELSE
+ diameter := update_place_diameter(rank);
+ IF diameter > 0 THEN
+ IF rank >= 26 THEN
+ -- roads may cause reparenting for >27 rank places
+ update placex set indexed_status = 2 where indexed_status = 0 and rank_search > rank and ST_DWithin(placex.geometry, placegeom, diameter);
+ ELSEIF rank >= 16 THEN
+ -- up to rank 16, street-less addresses may need reparenting
+ update placex set indexed_status = 2 where indexed_status = 0 and rank_search > rank and ST_DWithin(placex.geometry, placegeom, diameter) and (rank_search < 28 or name is not null or address ? 'place');
+ ELSE
+ -- for all other places the search terms may change as well
+ update placex set indexed_status = 2 where indexed_status = 0 and rank_search > rank and ST_DWithin(placex.geometry, placegeom, diameter) and (rank_search < 28 or name is not null);
+ END IF;
+ END IF;
+ END IF;
+ RETURN TRUE;
+ END IF;
+
+ RETURN FALSE;
+END;
+$$
+LANGUAGE plpgsql;
-- Indices used only during search and update.
-- These indices are created only after the indexing process is done.
-CREATE INDEX idx_word_word_id on word USING BTREE (word_id) {ts:search-index};
+CREATE INDEX CONCURRENTLY idx_word_word_id on word USING BTREE (word_id) {ts:search-index};
-CREATE INDEX idx_search_name_nameaddress_vector ON search_name USING GIN (nameaddress_vector) WITH (fastupdate = off) {ts:search-index};
-CREATE INDEX idx_search_name_name_vector ON search_name USING GIN (name_vector) WITH (fastupdate = off) {ts:search-index};
-CREATE INDEX idx_search_name_centroid ON search_name USING GIST (centroid) {ts:search-index};
+CREATE INDEX CONCURRENTLY idx_place_addressline_address_place_id on place_addressline USING BTREE (address_place_id) {ts:search-index};
-CREATE INDEX idx_place_addressline_address_place_id on place_addressline USING BTREE (address_place_id) {ts:search-index};
+DROP INDEX CONCURRENTLY IF EXISTS idx_placex_rank_search;
+CREATE INDEX CONCURRENTLY idx_placex_rank_search ON placex USING BTREE (rank_search) {ts:search-index};
+CREATE INDEX CONCURRENTLY idx_placex_rank_address ON placex USING BTREE (rank_address) {ts:search-index};
+CREATE INDEX CONCURRENTLY idx_placex_parent_place_id ON placex USING BTREE (parent_place_id) {ts:search-index} where parent_place_id IS NOT NULL;
-DROP INDEX IF EXISTS idx_placex_rank_search;
-CREATE INDEX idx_placex_rank_search ON placex USING BTREE (rank_search) {ts:search-index};
-CREATE INDEX idx_placex_rank_address ON placex USING BTREE (rank_address) {ts:search-index};
-CREATE INDEX idx_placex_pendingsector ON placex USING BTREE (rank_search,geometry_sector) {ts:address-index} where indexed_status > 0;
-CREATE INDEX idx_placex_parent_place_id ON placex USING BTREE (parent_place_id) {ts:search-index} where parent_place_id IS NOT NULL;
-
-CREATE INDEX idx_placex_geometry_reverse_lookupPoint
+CREATE INDEX CONCURRENTLY idx_placex_geometry_reverse_lookupPoint
ON placex USING gist (geometry) {ts:search-index}
WHERE (name is not null or housenumber is not null or rank_address between 26 and 27)
AND class not in ('railway','tunnel','bridge','man_made')
AND rank_address >= 26 AND indexed_status = 0 AND linked_place_id is null;
-CREATE INDEX idx_placex_geometry_reverse_lookupPolygon
+CREATE INDEX CONCURRENTLY idx_placex_geometry_reverse_lookupPolygon
ON placex USING gist (geometry) {ts:search-index}
WHERE St_GeometryType(geometry) in ('ST_Polygon', 'ST_MultiPolygon')
AND rank_address between 4 and 25 AND type != 'postcode'
AND name is not null AND indexed_status = 0 AND linked_place_id is null;
-CREATE INDEX idx_placex_geometry_reverse_placeNode
+CREATE INDEX CONCURRENTLY idx_placex_geometry_reverse_placeNode
ON placex USING gist (geometry) {ts:search-index}
WHERE osm_type = 'N' AND rank_search between 5 and 25
AND class = 'place' AND type != 'postcode'
GRANT SELECT ON table country_osm_grid to "{www-user}";
-CREATE INDEX idx_location_area_country_place_id ON location_area_country USING BTREE (place_id) {ts:address-index};
-
-CREATE INDEX idx_osmline_parent_place_id ON location_property_osmline USING BTREE (parent_place_id) {ts:search-index};
-
-DROP INDEX IF EXISTS place_id_idx;
-CREATE UNIQUE INDEX idx_place_osm_unique on place using btree(osm_id,osm_type,class,type) {ts:address-index};
-
+CREATE INDEX CONCURRENTLY idx_osmline_parent_place_id ON location_property_osmline USING BTREE (parent_place_id) {ts:search-index};
+CREATE INDEX CONCURRENTLY idx_osmline_parent_osm_id ON location_property_osmline USING BTREE (osm_id) {ts:search-index};
-CREATE UNIQUE INDEX idx_postcode_id ON location_postcode USING BTREE (place_id) {ts:search-index};
-CREATE INDEX idx_postcode_postcode ON location_postcode USING BTREE (postcode) {ts:search-index};
+CREATE UNIQUE INDEX CONCURRENTLY idx_postcode_id ON location_postcode USING BTREE (place_id) {ts:search-index};
+CREATE INDEX CONCURRENTLY idx_postcode_postcode ON location_postcode USING BTREE (postcode) {ts:search-index};
--- /dev/null
+-- Indices used for /search API.
+-- These indices are created only after the indexing process is done.
+
+CREATE INDEX CONCURRENTLY idx_search_name_nameaddress_vector ON search_name USING GIN (nameaddress_vector) WITH (fastupdate = off) {ts:search-index};
+CREATE INDEX CONCURRENTLY idx_search_name_name_vector ON search_name USING GIN (name_vector) WITH (fastupdate = off) {ts:search-index};
+CREATE INDEX CONCURRENTLY idx_search_name_centroid ON search_name USING GIST (centroid) {ts:search-index};
--- /dev/null
+-- Indices used only during search and update.
+-- These indices are created only after the indexing process is done.
+
+CREATE INDEX CONCURRENTLY idx_placex_pendingsector ON placex USING BTREE (rank_search,geometry_sector) {ts:address-index} where indexed_status > 0;
+
+CREATE INDEX CONCURRENTLY idx_location_area_country_place_id ON location_area_country USING BTREE (place_id) {ts:address-index};
+
+DROP INDEX CONCURRENTLY IF EXISTS place_id_idx;
+CREATE UNIQUE INDEX CONCURRENTLY idx_place_osm_unique on place using btree(osm_id,osm_type,class,type) {ts:address-index};
+DROP TYPE IF EXISTS nearfeaturecentr CASCADE;
+CREATE TYPE nearfeaturecentr AS (
+ place_id BIGINT,
+ keywords int[],
+ rank_address smallint,
+ rank_search smallint,
+ distance float,
+ isguess boolean,
+ postcode TEXT,
+ centroid GEOMETRY
+);
+
create or replace function getNearFeatures(in_partition INTEGER, feature GEOMETRY, maxrank INTEGER, isin_tokens INT[]) RETURNS setof nearfeaturecentr AS $$
DECLARE
r nearfeaturecentr%rowtype;
-- start
IF in_partition = -partition- THEN
FOR r IN
- SELECT place_id, keywords, rank_address, rank_search, min(ST_Distance(feature, centroid)) as distance, isguess, postcode, centroid FROM (
- SELECT * FROM location_area_large_-partition- WHERE ST_Intersects(geometry, feature) and rank_search < maxrank
- UNION ALL
- SELECT * FROM location_area_country WHERE ST_Intersects(geometry, feature) and rank_search < maxrank
- ) as location_area
+ SELECT place_id, keywords, rank_address, rank_search, min(ST_Distance(feature, centroid)) as distance, isguess, postcode, centroid
+ FROM location_area_large_-partition-
+ WHERE ST_Intersects(geometry, feature)
+ AND rank_search < maxrank AND rank_address < maxrank
GROUP BY place_id, keywords, rank_address, rank_search, isguess, postcode, centroid
ORDER BY rank_address, isin_tokens && keywords desc, isguess asc,
ST_Distance(feature, centroid) *
RAISE EXCEPTION 'Unknown partition %', in_partition;
END
$$
-LANGUAGE plpgsql;
+LANGUAGE plpgsql STABLE;
create or replace function deleteLocationArea(in_partition INTEGER, in_place_id BIGINT, in_rank_search INTEGER) RETURNS BOOLEAN AS $$
DECLARE
RETURN TRUE;
END IF;
- IF in_rank_search <= 4 THEN
- INSERT INTO location_area_country (partition, place_id, country_code, keywords, rank_search, rank_address, isguess, centroid, geometry)
- values (in_partition, in_place_id, in_country_code, in_keywords, in_rank_search, in_rank_address, in_estimate, in_centroid, in_geometry);
+ IF in_rank_search <= 4 and not in_estimate THEN
+ INSERT INTO location_area_country (place_id, country_code, geometry)
+ values (in_place_id, in_country_code, in_geometry);
RETURN TRUE;
END IF;
$$
LANGUAGE plpgsql;
-create or replace function getNearestNamedRoadFeature(in_partition INTEGER, point GEOMETRY, isin_token INTEGER[])
- RETURNS setof nearfeature AS $$
+CREATE OR REPLACE FUNCTION getNearestNamedRoadPlaceId(in_partition INTEGER,
+ point GEOMETRY,
+ isin_token INTEGER[])
+ RETURNS BIGINT
+ AS $$
DECLARE
- r nearfeature%rowtype;
+ parent BIGINT;
BEGIN
-- start
IF in_partition = -partition- THEN
- FOR r IN
- SELECT place_id, name_vector, address_rank, search_rank,
- ST_Distance(centroid, point) as distance, null as isguess
- FROM search_name_-partition-
- WHERE name_vector && isin_token
- AND ST_DWithin(centroid, point, 0.015)
- AND search_rank between 26 and 27
- ORDER BY distance ASC limit 1
- LOOP
- RETURN NEXT r;
- END LOOP;
- RETURN;
+ SELECT place_id FROM search_name_-partition-
+ INTO parent
+ WHERE name_vector && isin_token
+ AND centroid && ST_Expand(point, 0.015)
+ AND search_rank between 26 and 27
+ ORDER BY ST_Distance(centroid, point) ASC limit 1;
+ RETURN parent;
END IF;
-- end
RAISE EXCEPTION 'Unknown partition %', in_partition;
END
$$
-LANGUAGE plpgsql;
+LANGUAGE plpgsql STABLE;
-create or replace function getNearestNamedPlaceFeature(in_partition INTEGER, point GEOMETRY, isin_token INTEGER[])
- RETURNS setof nearfeature AS $$
+CREATE OR REPLACE FUNCTION getNearestNamedPlacePlaceId(in_partition INTEGER,
+ point GEOMETRY,
+ isin_token INTEGER[])
+ RETURNS BIGINT
+ AS $$
DECLARE
- r nearfeature%rowtype;
+ parent BIGINT;
BEGIN
-- start
IF in_partition = -partition- THEN
- FOR r IN
- SELECT place_id, name_vector, address_rank, search_rank,
- ST_Distance(centroid, point) as distance, null as isguess
- FROM search_name_-partition-
- WHERE name_vector && isin_token
- AND ST_DWithin(centroid, point, 0.04)
- AND search_rank between 16 and 22
- ORDER BY distance ASC limit 1
- LOOP
- RETURN NEXT r;
- END LOOP;
- RETURN;
+ SELECT place_id
+ INTO parent
+ FROM search_name_-partition-
+ WHERE name_vector && isin_token
+ AND centroid && ST_Expand(point, 0.04)
+ AND search_rank between 16 and 22
+ ORDER BY ST_Distance(centroid, point) ASC limit 1;
+ RETURN parent;
END IF;
-- end
RAISE EXCEPTION 'Unknown partition %', in_partition;
END
$$
-LANGUAGE plpgsql;
+LANGUAGE plpgsql STABLE;
create or replace function insertSearchName(
- in_partition INTEGER, in_place_id BIGINT, in_country_code VARCHAR(2),
- in_name_vector INTEGER[], in_nameaddress_vector INTEGER[],
- in_rank_search INTEGER, in_rank_address INTEGER, in_importance FLOAT,
- in_centroid GEOMETRY, in_geometry GEOMETRY) RETURNS BOOLEAN AS $$
+ in_partition INTEGER, in_place_id BIGINT, in_name_vector INTEGER[],
+ in_rank_search INTEGER, in_rank_address INTEGER, in_geometry GEOMETRY)
+RETURNS BOOLEAN AS $$
DECLARE
BEGIN
-
- DELETE FROM search_name WHERE place_id = in_place_id;
- INSERT INTO search_name (place_id, search_rank, address_rank, importance, country_code, name_vector, nameaddress_vector, centroid)
- values (in_place_id, in_rank_search, in_rank_address, in_importance, in_country_code, in_name_vector, in_nameaddress_vector, in_centroid);
-
-- start
IF in_partition = -partition- THEN
DELETE FROM search_name_-partition- values WHERE place_id = in_place_id;
create or replace function deleteSearchName(in_partition INTEGER, in_place_id BIGINT) RETURNS BOOLEAN AS $$
DECLARE
BEGIN
-
- DELETE from search_name WHERE place_id = in_place_id;
-
-- start
IF in_partition = -partition- THEN
DELETE from search_name_-partition- WHERE place_id = in_place_id;
$$
LANGUAGE plpgsql;
-create or replace function getNearestRoadFeature(in_partition INTEGER, point GEOMETRY) RETURNS setof nearfeature AS $$
+CREATE OR REPLACE FUNCTION getNearestRoadPlaceId(in_partition INTEGER, point GEOMETRY)
+ RETURNS BIGINT
+ AS $$
DECLARE
- r nearfeature%rowtype;
- search_diameter FLOAT;
+ r RECORD;
+ search_diameter FLOAT;
BEGIN
-- start
IF in_partition = -partition- THEN
search_diameter := 0.00005;
WHILE search_diameter < 0.1 LOOP
- FOR r IN
- SELECT place_id, null, null, null,
- ST_Distance(geometry, point) as distance, null as isguess
- FROM location_road_-partition-
- WHERE ST_DWithin(geometry, point, search_diameter)
- ORDER BY distance ASC limit 1
+ FOR r IN
+ SELECT place_id FROM location_road_-partition-
+ WHERE ST_DWithin(geometry, point, search_diameter)
+ ORDER BY ST_Distance(geometry, point) ASC limit 1
LOOP
- RETURN NEXT r;
- RETURN;
+ RETURN r.place_id;
END LOOP;
search_diameter := search_diameter * 2;
END LOOP;
- RETURN;
+ RETURN NULL;
END IF;
-- end
RAISE EXCEPTION 'Unknown partition %', in_partition;
END
$$
-LANGUAGE plpgsql;
+LANGUAGE plpgsql STABLE;
-create or replace function getNearestParellelRoadFeature(in_partition INTEGER, line GEOMETRY) RETURNS setof nearfeature AS $$
+CREATE OR REPLACE FUNCTION getNearestParallelRoadFeature(in_partition INTEGER,
+ line GEOMETRY)
+ RETURNS BIGINT
+ AS $$
DECLARE
- r nearfeature%rowtype;
- search_diameter FLOAT;
+ r RECORD;
+ search_diameter FLOAT;
p1 GEOMETRY;
p2 GEOMETRY;
p3 GEOMETRY;
BEGIN
- IF st_geometrytype(line) not in ('ST_LineString') THEN
- RETURN;
+ IF ST_GeometryType(line) not in ('ST_LineString') THEN
+ RETURN NULL;
END IF;
p1 := ST_LineInterpolatePoint(line,0);
IF in_partition = -partition- THEN
search_diameter := 0.0005;
WHILE search_diameter < 0.01 LOOP
- FOR r IN
- SELECT place_id, null, null, null,
- ST_Distance(geometry, line) as distance, null as isguess
- FROM location_road_-partition-
- WHERE ST_DWithin(line, geometry, search_diameter)
- ORDER BY (ST_distance(geometry, p1)+
- ST_distance(geometry, p2)+
- ST_distance(geometry, p3)) ASC limit 1
+ FOR r IN
+ SELECT place_id FROM location_road_-partition-
+ WHERE ST_DWithin(line, geometry, search_diameter)
+ ORDER BY (ST_distance(geometry, p1)+
+ ST_distance(geometry, p2)+
+ ST_distance(geometry, p3)) ASC limit 1
LOOP
- RETURN NEXT r;
- RETURN;
+ RETURN r.place_id;
END LOOP;
search_diameter := search_diameter * 2;
END LOOP;
- RETURN;
+ RETURN NULL;
END IF;
-- end
RAISE EXCEPTION 'Unknown partition %', in_partition;
END
$$
-LANGUAGE plpgsql;
+LANGUAGE plpgsql STABLE;
-drop type if exists nearplace cascade;
-create type nearplace as (
- place_id BIGINT
-);
-
-drop type if exists nearfeature cascade;
-create type nearfeature as (
- place_id BIGINT,
- keywords int[],
- rank_address smallint,
- rank_search smallint,
- distance float,
- isguess boolean
-);
-
-drop type if exists nearfeaturecentr cascade;
-create type nearfeaturecentr as (
- place_id BIGINT,
- keywords int[],
- rank_address smallint,
- rank_search smallint,
- distance float,
- isguess boolean,
- postcode TEXT,
- centroid GEOMETRY
-);
-
drop table IF EXISTS search_name_blank CASCADE;
CREATE TABLE search_name_blank (
place_id BIGINT,
);
-CREATE TABLE location_area_country () INHERITS (location_area_large) {ts:address-data};
-CREATE INDEX idx_location_area_country_geometry ON location_area_country USING GIST (geometry) {ts:address-index};
-
-- start
CREATE TABLE location_area_large_-partition- () INHERITS (location_area_large) {ts:address-data};
CREATE INDEX idx_location_area_large_-partition-_place_id ON location_area_large_-partition- USING BTREE (place_id) {ts:address-index};
CREATE TABLE search_name_-partition- () INHERITS (search_name_blank) {ts:address-data};
CREATE INDEX idx_search_name_-partition-_place_id ON search_name_-partition- USING BTREE (place_id) {ts:address-index};
-CREATE INDEX idx_search_name_-partition-_centroid ON search_name_-partition- USING GIST (centroid) {ts:address-index};
-CREATE INDEX idx_search_name_-partition-_name_vector ON search_name_-partition- USING GIN (name_vector) WITH (fastupdate = off) {ts:address-index};
+CREATE INDEX idx_search_name_-partition-_centroid_street ON search_name_-partition- USING GIST (centroid) {ts:address-index} where search_rank between 26 and 27;
+CREATE INDEX idx_search_name_-partition-_centroid_place ON search_name_-partition- USING GIST (centroid) {ts:address-index} where search_rank between 2 and 25;
DROP TABLE IF EXISTS location_road_-partition-;
CREATE TABLE location_road_-partition- (
--- /dev/null
+-- insert creates the location tables, creates location indexes if indexed == true
+CREATE TRIGGER placex_before_insert BEFORE INSERT ON placex
+ FOR EACH ROW EXECUTE PROCEDURE placex_insert();
+CREATE TRIGGER osmline_before_insert BEFORE INSERT ON location_property_osmline
+ FOR EACH ROW EXECUTE PROCEDURE osmline_insert();
+
+-- update insert creates the location tables
+CREATE TRIGGER placex_before_update BEFORE UPDATE ON placex
+ FOR EACH ROW EXECUTE PROCEDURE placex_update();
+CREATE TRIGGER osmline_before_update BEFORE UPDATE ON location_property_osmline
+ FOR EACH ROW EXECUTE PROCEDURE osmline_update();
+
+-- diff update triggers
+CREATE TRIGGER placex_before_delete AFTER DELETE ON placex
+ FOR EACH ROW EXECUTE PROCEDURE placex_delete();
+CREATE TRIGGER place_before_delete BEFORE DELETE ON place
+ FOR EACH ROW EXECUTE PROCEDURE place_delete();
+CREATE TRIGGER place_before_insert BEFORE INSERT ON place
+ FOR EACH ROW EXECUTE PROCEDURE place_insert();
+
+CREATE TRIGGER location_postcode_before_update BEFORE UPDATE ON location_postcode
+ FOR EACH ROW EXECUTE PROCEDURE postcode_update();
CREATE TABLE import_osmosis_log (
batchend timestamp,
batchseq integer,
- batchsize integer,
+ batchsize bigint,
starttime timestamp,
endtime timestamp,
event text
GRANT SELECT ON TABLE country_name TO "{www-user}";
GRANT SELECT ON TABLE gb_postcode TO "{www-user}";
+GRANT SELECT ON TABLE us_postcode TO "{www-user}";
drop table IF EXISTS word;
CREATE TABLE word (
CREATE TABLE location_area_large () INHERITS (location_area);
+DROP TABLE IF EXISTS location_area_country;
+CREATE TABLE location_area_country (
+ place_id BIGINT,
+ country_code varchar(2),
+ geometry GEOMETRY(Geometry, 4326)
+ ) {ts:address-data};
+CREATE INDEX idx_location_area_country_geometry ON location_area_country USING GIST (geometry) {ts:address-index};
+
+
drop table IF EXISTS location_property CASCADE;
CREATE TABLE location_property (
place_id BIGINT,
CREATE INDEX idx_placex_linked_place_id ON placex USING BTREE (linked_place_id) {ts:address-index} WHERE linked_place_id IS NOT NULL;
CREATE INDEX idx_placex_rank_search ON placex USING BTREE (rank_search, geometry_sector) {ts:address-index};
CREATE INDEX idx_placex_geometry ON placex USING GIST (geometry) {ts:search-index};
-CREATE INDEX idx_placex_adminname on placex USING BTREE (make_standard_name(name->'name'),rank_search) {ts:address-index} WHERE osm_type='N' and rank_search < 26;
+CREATE INDEX idx_placex_adminname on placex USING BTREE (make_standard_name(name->'name')) {ts:address-index} WHERE osm_type='N' and rank_search < 26;
+CREATE INDEX idx_placex_wikidata on placex USING BTREE ((extratags -> 'wikidata')) {ts:address-index} WHERE extratags ? 'wikidata' and class = 'place' and osm_type = 'N' and rank_search < 26;
DROP SEQUENCE IF EXISTS seq_place;
CREATE SEQUENCE seq_place start 1;
GRANT SELECT ON planet_osm_rels to "{www-user}" ;
GRANT SELECT on location_area to "{www-user}" ;
--- insert creates the location tables, creates location indexes if indexed == true
-CREATE TRIGGER placex_before_insert BEFORE INSERT ON placex
- FOR EACH ROW EXECUTE PROCEDURE placex_insert();
-CREATE TRIGGER osmline_before_insert BEFORE INSERT ON location_property_osmline
- FOR EACH ROW EXECUTE PROCEDURE osmline_insert();
-
--- update insert creates the location tables
-CREATE TRIGGER placex_before_update BEFORE UPDATE ON placex
- FOR EACH ROW EXECUTE PROCEDURE placex_update();
-CREATE TRIGGER osmline_before_update BEFORE UPDATE ON location_property_osmline
- FOR EACH ROW EXECUTE PROCEDURE osmline_update();
-
--- diff update triggers
-CREATE TRIGGER placex_before_delete AFTER DELETE ON placex
- FOR EACH ROW EXECUTE PROCEDURE placex_delete();
-CREATE TRIGGER place_before_delete BEFORE DELETE ON place
- FOR EACH ROW EXECUTE PROCEDURE place_delete();
-CREATE TRIGGER place_before_insert BEFORE INSERT ON place
- FOR EACH ROW EXECUTE PROCEDURE place_insert();
-
-- Table for synthetic postcodes.
DROP TABLE IF EXISTS location_postcode;
CREATE TABLE location_postcode (
CREATE INDEX idx_postcode_geometry ON location_postcode USING GIST (geometry) {ts:address-index};
GRANT SELECT ON location_postcode TO "{www-user}" ;
-CREATE TRIGGER location_postcode_before_update BEFORE UPDATE ON location_postcode
- FOR EACH ROW EXECUTE PROCEDURE postcode_update();
-
DROP TABLE IF EXISTS import_polygon_error;
CREATE TABLE import_polygon_error (
osm_id BIGINT,
lon double precision,
importance double precision,
osm_type character(1),
- osm_id bigint
+ osm_id bigint,
+ wd_page_title text,
+ instance_of text
);
ALTER TABLE ONLY wikipedia_article ADD CONSTRAINT wikipedia_article_pkey PRIMARY KEY (language, title);
CREATE INDEX idx_wikipedia_article_osm_id ON wikipedia_article USING btree (osm_type, osm_id);
CREATE TABLE location_property_tiger_import (linegeo GEOMETRY, place_id BIGINT, partition INTEGER, parent_place_id BIGINT, startnumber INTEGER, endnumber INTEGER, interpolationtype TEXT, postcode TEXT);
CREATE OR REPLACE FUNCTION tiger_line_import(linegeo GEOMETRY, in_startnumber INTEGER,
- in_endnumber INTEGER, interpolationtype TEXT,
+ in_endnumber INTEGER, interpolationtype TEXT,
in_street TEXT, in_isin TEXT, in_postcode TEXT) RETURNS INTEGER
AS $$
DECLARE
out_partition INTEGER;
out_parent_place_id BIGINT;
location RECORD;
- address_street_word_id INTEGER;
+ address_street_word_ids INTEGER[];
BEGIN
endnumber = in_startnumber;
END IF;
+ IF startnumber < 0 THEN
+ RAISE WARNING 'Negative house number range (% to %) on %, %', startnumber, endnumber, in_street, in_isin;
+ RETURN 0;
+ END IF;
+
numberrange := endnumber - startnumber;
IF (interpolationtype = 'odd' AND startnumber%2 = 0) OR (interpolationtype = 'even' AND startnumber%2 = 1) THEN
out_partition := get_partition('us');
out_parent_place_id := null;
- address_street_word_id := get_name_id(make_standard_name(in_street));
- IF address_street_word_id IS NOT NULL THEN
- FOR location IN SELECT * from getNearestNamedRoadFeature(out_partition, place_centroid, ARRAY[address_street_word_id]) LOOP
- out_parent_place_id := location.place_id;
- END LOOP;
+ address_street_word_ids := word_ids_from_name(in_street);
+ IF address_street_word_ids IS NOT NULL THEN
+ out_parent_place_id := getNearestNamedRoadPlaceId(out_partition, place_centroid,
+ address_street_word_ids);
END IF;
IF out_parent_place_id IS NULL THEN
- FOR location IN SELECT place_id FROM getNearestParellelRoadFeature(out_partition, linegeo) LOOP
- out_parent_place_id := location.place_id;
- END LOOP;
+ SELECT getNearestParallelRoadFeature(out_partition, linegeo)
+ INTO out_parent_place_id;
END IF;
IF out_parent_place_id IS NULL THEN
- FOR location IN SELECT place_id FROM getNearestRoadFeature(out_partition, place_centroid) LOOP
- out_parent_place_id := location.place_id;
- END LOOP;
+ SELECT getNearestRoadPlaceId(out_partition, place_centroid)
+ INTO out_parent_place_id;
END IF;
--insert street(line) into import table
ST_Centroid(ST_Collect(ST_Centroid(geometry))) as centroid
FROM placex
WHERE address ? 'postcode'
- AND address->'postcode' NOT SIMILAR TO '%(,|;)%'
+ AND address->'postcode' NOT SIMILAR TO '%(,|;|:)%'
AND geometry IS NOT null
GROUP BY country_code, pc;
SELECT nextval('seq_place'), 1, country_code, pc, centroid
FROM tmp_new_postcode_locations new;
+-- Remove unused word entries
+DELETE FROM word
+ WHERE class = 'place' AND type = 'postcode'
+ AND NOT EXISTS (SELECT 0 FROM location_postcode p
+ WHERE p.postcode = word.word);
+
-- Finally index the newly inserted postcodes
UPDATE location_postcode SET indexed_status = 0 WHERE indexed_status > 0;
--- /dev/null
+all: bdd php
+
+bdd:
+ cd bdd && behave -DREMOVE_TEMPLATE=1
+
+php:
+ cd php && phpunit ./
+
+.PHONY: bdd php
To execute the test suite run
cd test/php
- phpunit ../
+ UNIT_TEST_DSN='pgsql:dbname=nominatim_unit_tests' phpunit ../
It will read phpunit.xml which points to the library, test path, bootstrap
strip and set other parameters.
+It will use (and destroy) a local database 'nominatim_unit_tests'. You can set
+a different connection string with e.g. UNIT_TEST_DSN='pgsql:dbname=foo_unit_tests'.
BDD Functional Tests
====================
cd test/bdd
behave
-The tests can be configured with a set of environment variables:
+The tests can be configured with a set of environment variables (`behave -D key=val`):
- * `BUILD_DIR` - build directory of Nominatim installation to test
+ * `BUILDDIR` - build directory of Nominatim installation to test
* `TEMPLATE_DB` - name of template database used as a skeleton for
the test databases (db tests)
* `TEST_DB` - name of test database (db tests)
- * `ABI_TEST_DB` - name of the database containing the API test data (api tests)
+ * `API_TEST_DB` - name of the database containing the API test data (api tests)
* `DB_HOST` - (optional) hostname of database host
+ * `DB_PORT` - (optional) port of database on host
* `DB_USER` - (optional) username of database login
* `DB_PASS` - (optional) password for database login
* `SERVER_MODULE_PATH` - (optional) path on the Postgres server to Nominatim
- * module shared library file
+ module shared library file
* `TEST_SETTINGS_TEMPLATE` - file to write temporary Nominatim settings to
* `REMOVE_TEMPLATE` - if true, the template database will not be reused during
the next run. Reusing the base templates speeds up tests
planet extract. A precompiled PBF with the necessary data can be downloaded from
https://www.nominatim.org/data/test/nominatim-api-testdata.pbf
+You need at least 2GB RAM and 10GB discspace.
+
The polygons defining the extract can be found in the test/testdb
directory. There is also a reduced set of wikipedia data for this extract,
which you need to import as well. For Tiger tests the data of South Dakota
is required. Get the Tiger files `46*`.
-The official test dataset is derived from the 160725 planet. Newer
+ cd Nominatim/data
+ wget https://nominatim.org/data/tiger2018-nominatim-preprocessed.tar.gz
+ tar xvf tiger2018-nominatim-preprocessed.tar.gz --wildcards --no-anchored '46*'
+ rm tiger2018-nominatim-preprocessed.tar.gz
+
+The official test dataset is derived from the 180924 planet. Newer
planets are likely to work as well but you may see isolated test
failures where the data has changed. To recreate the input data
for the test database run:
- wget https://free.nchc.org.tw/osm.planet/pbf/planet-160725.osm.pbf
- osmconvert planet-160725.osm.pbf -B=test/testdb/testdb.polys -o=testdb.pbf
+ wget https://ftp5.gwdg.de/pub/misc/openstreetmap/planet.openstreetmap.org/pbf/planet-180924.osm.pbf
+ osmconvert planet-180924.osm.pbf -B=test/testdb/testdb.polys -o=testdb.pbf
Before importing make sure to add the following to your local settings:
| 1 |
Then the result is valid html
+ # ticket #1343
+ Scenario: Details of a country with keywords
+ When sending details query for R287072
+ | keywords |
+ | 1 |
+ Then the result is valid html
+
--- /dev/null
+@APIDB
+Feature: Places by osm_type and osm_id Tests
+ Simple tests for errors in various response formats.
+
+ Scenario Outline: Force error by providing too many ids
+ When sending <format> lookup query for N1,N2,N3,N4,N5,N6,N7,N8,N9,N10,N11,N12,N13,N14,N15,N16,N17,N18,N19,N20,N21,N22,N23,N24,N25,N26,N27,N28,N29,N30,N31,N32,N33,N34,N35,N36,N37,N38,N39,N40,N41,N42,N43,N44,N45,N46,N47,N48,N49,N50,N51
+ Then a <format> user error is returned
+
+ Examples:
+ | format |
+ | xml |
+ | json |
+ | geojson |
@APIDB
Feature: Places by osm_type and osm_id Tests
- Simple tests for internal server errors and response format.
+ Simple tests for response format.
Scenario Outline: address lookup for existing node, way, relation
When sending <format> lookup query for N3284625766,W6065798,,R123924,X99,N0
- Then the result is valid <format>
+ Then the result is valid <outformat>
And exactly 3 results are returned
Examples:
- | format |
- | xml |
- | json |
- | geojson |
+ | format | outformat |
+ | xml | xml |
+ | json | json |
+ | jsonv2 | json |
+ | geojson | geojson |
+ | geocodejson | geocodejson |
Scenario: address lookup for non-existing or invalid node, way, relation
When sending xml lookup query for X99,,N0,nN158845944,ABC,,W9
Then exactly 0 results are returned
+
+ Scenario Outline: Boundingbox is returned
+ When sending <format> lookup query for N3284625766,W6065798
+ Then exactly 2 results are returned
+ And result 0 has bounding box in -32.812,-32.811,-56.509,-56.508
+ And result 1 has bounding box in 47.14,47.15,9.51,9.53
+
+ Examples:
+ | format |
+ | json |
+ | jsonv2 |
+ | geojson |
+ | xml |
--- /dev/null
+@APIDB
+Feature: Reverse addressdetails
+ Tests for addressdetails in reverse queries
+
+ #github #1763
+ Scenario: Correct translation of highways under construction
+ When sending jsonv2 reverse coordinates -34.0290514,-53.5832235
+ Then result addresses contain
+ | road |
+ | Ruta 9 Coronel Leonardo Olivera |
--- /dev/null
+@APIDB
+Feature: Parameters for Reverse API
+ Testing correctness of geocodejson output.
+
+ Scenario: City housenumber-level address with street
+ When sending geocodejson reverse coordinates 53.556,9.9607
+ Then results contain
+ | housenumber | street | postcode | city | country |
+ | 10 | Brunnenhofstraße | 22767 | Hamburg | Deutschland |
+
+ Scenario: Town street-level address with street
+ When sending geocodejson reverse coordinates 47.066,9.504
+ Then results contain
+ | name | city | postcode | country |
+ | Gnetsch | Balzers | 9496 | Liechtenstein |
+
+ Scenario: Poi street-level address with footway
+ When sending geocodejson reverse coordinates 47.0653,9.5007
+ Then results contain
+ | street | city | postcode | country |
+ | Burgweg | Balzers | 9496 | Liechtenstein |
+
+ Scenario: City address with suburb
+ When sending geocodejson reverse coordinates 53.5822,10.0805
+ Then results contain
+ | housenumber | street | district | city | postcode | country |
+ | 64 | Hinschenfelder Straße | Wandsbek | Hamburg | 22047 | Deutschland |
When sending json reverse coordinates 18.1147,-15.95
Then result addresses contain
| ID | country |
- | 0 | Mauritanie موريتانيا |
+ | 0 | موريتانيا |
Scenario: accept-language parameter
When sending json reverse coordinates 18.1147,-15.95
| json | geotext |
| jsonv2 | geotext |
- Scenario Outline: Reverse Geocoding contains polygon-as-points geometry
- When sending <format> reverse coordinates 47.165989816710066,9.515774846076965
- | polygon |
- | 1 |
- Then result 0 has not attributes <response_attribute>
-
- Examples:
- | format | response_attribute |
- | xml | polygonpoints |
- | json | polygonpoints |
- | jsonv2 | polygonpoints |
-
Scenario Outline: Reverse Geocoding contains SVG geometry
When sending <format> reverse coordinates 47.165989816710066,9.515774846076965
| polygon_svg |
Scenario Outline: Reverse Geocoding in geojson format contains no non-geojson geometry
When sending geojson reverse coordinates 47.165989816710066,9.515774846076965
- | polygon_text | polygon | polygon_svg | polygon_geokml |
- | 1 | 1 | 1 | 1 |
+ | polygon_text | polygon_svg | polygon_geokml |
+ | 1 | 1 | 1 |
Then result 0 has not attributes <response_attribute>
Examples:
| polygonpoints |
| svg |
| geokml |
-
| way | place | house |
And result addresses contain
| house_number | road | postcode | country_code |
- | 906 | West 1st Street | 57274 | us |
+ | 909 | West 1st Street | 57274 | us |
@Tiger
Scenario: No TIGER house number for zoom < 18
| way | place | house |
And result addresses contain
| house_number | road |
- | 1410 | Juan Antonio Lavalleja |
+ | 1416 | Juan Antonio Lavalleja |
Scenario: Address with non-numerical house number
When sending jsonv2 reverse coordinates 53.579805460944,9.9475670458196
When sending jsonv2 reverse coordinates 54.046489113,8.5546870529
Then results contain
| display_name |
- | Freie und Hansestadt Hamburg, Deutschland |
+ | Hamburg, Deutschland |
Scenario: When slightly outside town, the town is not shown
When sending jsonv2 reverse coordinates -32.122,-56.114
Examples:
| parameter | value |
- | polygon | 1 |
- | polygon | 0 |
| polygon_text | 1 |
| polygon_text | 0 |
| polygon_kml | 1 |
--- /dev/null
+@APIDB
+Feature: Parameters for Search API
+ Testing correctness of geocodejson output.
+
+ Scenario: City housenumber-level address with street
+ When sending geocodejson search query "Brunnenhofstr 10, Hamburg" with address
+ Then results contain
+ | housenumber | street | postcode | city | country |
+ | 10 | Brunnenhofstraße | 22767 | Hamburg | Deutschland |
+
+ Scenario: Town street-level address with street
+ When sending geocodejson search query "Gnetsch, Balzers" with address
+ Then results contain
+ | name | city | postcode | country |
+ | Gnetsch | Balzers | 9496 | Liechtenstein |
+
+ Scenario: Town street-level address with footway
+ When sending geocodejson search query "burg gutenberg 6000 jahre geschichte" with address
+ Then results contain
+ | street | city | postcode | country |
+ | Burgweg | Balzers | 9496 | Liechtenstein |
+
+ Scenario: City address with suburb
+ When sending geocodejson search query "hinschenfelder str 64, wandsbek" with address
+ Then results contain
+ | housenumber | street | district | city | postcode | country |
+ | 64 | Hinschenfelder Straße | Wandsbek | Hamburg | 22047 | Deutschland |
| en |
Then results contain
| display_name |
- | Plei Ya Rê, Kon Tum province, Vietnam |
+ | Plei Ya Rê, Vietnam |
Scenario: Address details with unknown class types
When sending json search query "Hundeauslauf, Hamburg" with address
| en |
Then result addresses contain
| ID | state |
- | 0 | Salto |
+ | 0 | Florida |
When sending json search query "25 de Mayo" with address
| accept-language | viewbox |
- | en | -56.35879,-34.18330,-56.31618,-34.20815 |
+ | en | -57.95468,-31.39261,-57.94741,-31.39490 |
Then result addresses contain
| ID | state |
- | 0 | Florida |
+ | 0 | Salto |
Scenario: viewboxes cannot be points
When sending json search query "foo"
| json | geotext |
| jsonv2 | geotext |
- Scenario Outline: Search result contains polygon-as-points geometry
- When sending <format> search query "Highmore"
- | polygon |
- | 1 |
- Then result has attributes <response_attribute>
-
- Examples:
- | format | response_attribute |
- | xml | polygonpoints |
- | json | polygonpoints |
- | jsonv2 | polygonpoints |
-
Scenario Outline: Search result contains SVG geometry
When sending <format> search query "Highmore"
| polygon_svg |
Scenario Outline: Search result in geojson format contains no non-geojson geometry
When sending geojson search query "Highmore"
- | polygon_text | polygon | polygon_svg | polygon_geokml |
- | 1 | 1 | 1 | 1 |
+ | polygon_text | polygon_svg | polygon_geokml |
+ | 1 | 1 | 1 |
Then result 0 has not attributes <response_attribute>
Examples:
| country_code |
| li |
+ Scenario: Postcode search with bounded viewbox restriction
+ When sending json search query "9486" with address
+ | bounded | viewbox |
+ | 1 | 9.55,47.20,9.58,47.22 |
+ Then result addresses contain
+ | postcode |
+ | 9486 |
+ When sending json search query "9486" with address
+ | bounded | viewbox |
+ | 1 | 5.00,20.00,6.00,21.00 |
+ Then exactly 0 results are returned
+
Scenario: Postcode search with structured query
When sending json search query "" with address
| postalcode | country |
| type | value |
| house_number | 2 |
| hamlet | Steinwald |
+ | village | Göfis |
| postcode | 6811 |
| country | Austria |
| country_code | at |
| accept-language |
| de |
Then address of result 0 is
- | type | value |
- | house_number | 86 |
- | road | Schellingstraße |
- | suburb | Eilbek |
- | postcode | 22089 |
- | city_district | Wandsbek |
- | state | Hamburg |
- | country | Deutschland |
- | country_code | de |
+ | type | value |
+ | house_number | 86 |
+ | road | Schellingstraße |
+ | neighbourhood | Auenviertel |
+ | suburb | Eilbek |
+ | postcode | 22089 |
+ | city | Hamburg |
+ | country | Deutschland |
+ | country_code | de |
Scenario: House number interpolation odd
When sending json search query "Schellingstr 73, Hamburg" with address
| accept-language |
| de |
Then address of result 0 is
- | type | value |
- | house_number | 73 |
- | road | Schellingstraße |
- | suburb | Eilbek |
- | postcode | 22089 |
- | city_district | Wandsbek |
- | state | Hamburg |
- | country | Deutschland |
- | country_code | de |
+ | type | value |
+ | house_number | 73 |
+ | road | Schellingstraße |
+ | neighbourhood | Auenviertel |
+ | suburb | Eilbek |
+ | postcode | 22089 |
+ | city | Hamburg |
+ | country | Deutschland |
+ | country_code | de |
Scenario: With missing housenumber search falls back to road
When sending json search query "342 rocha, santa lucia" with address
| country | Uruguay |
| country_code | uy |
+ Scenario Outline: Housenumber 0 can be found
+ When sending <format> search query "Pham Hung Road 0" with address
+ Then results contain
+ | display_name |
+ | ^.*, 0,.* |
+ And result addresses contain
+ | house_number |
+ | 0 |
+
+ Examples:
+ | format |
+ | xml |
+ | json |
+ | jsonv2 |
+ | geojson |
+
@Tiger
Scenario: TIGER house number
When sending json search query "323 22nd Street Southwest, Huron"
| 0 | 6395 |
| 1 | 6395 BIS |
+ Scenario Outline: Same Searches with white spaces
+ When sending json search query "<data>"
+ Then exactly 1 result is returned
+ And results contain
+ | class |
+ | building |
+
+ Examples:
+ | data |
+ | amerlugalpe, N 47.15739° E 9.61264° |
+ | amerlugalpe, N 47.15739° E 9.61264° |
+ | amerlugalpe , N 47.15739° E 9.61264° |
+ | amerlugalpe, N 47.15739° E 9.61264° |
+ | amerlugalpe\v, N 47.15739° E 9.61264° |
+
+ Scenario: Searched with white spaces
+ When sending json search query "22nd Street Southwest\v,\fHuron"
+ Then results contain
+ | class | type |
+ | highway | residential |
\ No newline at end of file
| parameter | value |
| addressdetails | 1 |
| addressdetails | 0 |
- | polygon | 1 |
- | polygon | 0 |
| polygon_text | 1 |
| polygon_text | 0 |
| polygon_kml | 1 |
Then result header contains
| attr | value |
| querystring | xnznxvcx |
- | polygon | false |
| more_url | .*q=xnznxvcx.*format=xml |
Scenario: Empty XML search with special XML characters
Then result header contains
| attr | value |
| querystring | xfdghn&zxn"xvbyx<vxx>cssdex |
- | polygon | false |
| more_url | .*q=xfdghn%26zxn%22xvbyx%3Cvxx%3Ecssdex.*format=xml |
Scenario: Empty XML search with viewbox
Then result header contains
| attr | value |
| querystring | xnznxvcx |
- | polygon | false |
| viewbox | 12,33,77,45.13 |
Scenario: Empty XML search with viewboxlbrt
Then result header contains
| attr | value |
| querystring | xnznxvcx |
- | polygon | false |
| viewbox | 12,34.13,77,45 |
Scenario: Empty XML search with viewboxlbrt and viewbox
Then result header contains
| attr | value |
| querystring | pub |
- | polygon | false |
| viewbox | 12,33,77,45.13 |
- Scenario Outline: Empty XML search with polygon values
- When sending xml search query "xnznxvcx"
- | param | value |
- | polygon | <polyval> |
- Then result header contains
- | attr | value |
- | polygon | <result> |
-
- Examples:
- | result | polyval |
- | false | 0 |
- | true | 1 |
- | true | True |
- | true | true |
- | true | false |
- | true | FALSE |
- | true | yes |
- | true | no |
- | true | '; delete from foobar; select ' |
-
Scenario: Empty XML search with exluded place ids
When sending xml search query "jghrleoxsbwjer"
| exclude_place_ids |
When sending json search query "Tokyo"
| param | value |
|json_callback | <data> |
- Then a HTTP 400 is returned
+ Then a json user error is returned
Examples:
| data |
Scenario: Failed status as text
When sending text status query
Then a HTTP 500 is returned
- And the page contents equals "ERROR: No database"
+ And the page contents equals "ERROR: Database connection failed"
Scenario: Failed status as json
When sending json status query
And the result is valid json
And results contain
| status | message |
- | 700 | No database |
+ | 700 | Database connection failed |
And result has not attributes data_updated
When importing
Then W1 expands to no interpolation
+ Scenario: Two point interpolation starting at 0
+ Given the places
+ | osm | class | type | housenr | geometry |
+ | N1 | place | house | 0 | 1 1 |
+ | N2 | place | house | 2 | 1 1.001 |
+ And the places
+ | osm | class | type | addr+interpolation | geometry |
+ | W1 | place | houses | even | 1 1, 1 1.001 |
+ And the ways
+ | id | nodes |
+ | 1 | 1,2 |
+ When importing
+ Then W1 expands to interpolation
+ | start | end | geometry |
+ | 0 | 2 | 1 1, 1 1.001 |
+ When sending jsonv2 reverse coordinates 1,1
+ Then results contain
+ | ID | osm_type | osm_id | type | display_name |
+ | 0 | way | 1 | house | 0 |
+
| N3:natural | - |
| N3:place | R1 |
+ Scenario: Nodes with 'role' label are always linked
+ Given the places
+ | osm | class | type | admin | name | geometry |
+ | R13 | boundary | administrative | 6 | Garbo | poly-area:0.1 |
+ | N2 | place | hamlet | 15 | Vario | 0.006 0.00001 |
+ And the relations
+ | id | members | tags+type |
+ | 13 | N2:label | boundary |
+ When importing
+ Then placex contains
+ | object | linked_place_id |
+ | N2 | R13 |
+ And placex contains
+ | object | centroid | name+name | extratags+linked_place |
+ | R13 | 0.006 0.00001 | Garbo | hamlet |
+
+ Scenario: Boundaries with place tags are linked against places with same type
+ Given the places
+ | osm | class | type | admin | name | extra+place | geometry |
+ | R13 | boundary | administrative | 4 | Berlin | city |poly-area:0.1 |
+ And the places
+ | osm | class | type | name | geometry |
+ | N2 | place | city | Berlin | 0.006 0.00001 |
+ When importing
+ Then placex contains
+ | object | linked_place_id |
+ | N2 | R13 |
+ And placex contains
+ | object | rank_address |
+ | R13 | 16 |
+ When searching for ""
+ | city |
+ | Berlin |
+ Then results contain
+ | ID | osm_type | osm_id |
+ | 0 | R | 13 |
+ When searching for ""
+ | state |
+ | Berlin |
+ Then results contain
+ | ID | osm_type | osm_id |
+ | 0 | R | 13 |
+
+
+ Scenario: Boundaries without place tags only link against same admin level
+ Given the places
+ | osm | class | type | admin | name | geometry |
+ | R13 | boundary | administrative | 4 | Berlin |poly-area:0.1 |
+ And the places
+ | osm | class | type | name | geometry |
+ | N2 | place | city | Berlin | 0.006 0.00001 |
+ When importing
+ Then placex contains
+ | object | linked_place_id |
+ | N2 | - |
+ And placex contains
+ | object | rank_address |
+ | R13 | 8 |
+ When searching for ""
+ | state |
+ | Berlin |
+ Then results contain
+ | ID | osm_type | osm_id |
+ | 0 | R | 13 |
+ When searching for ""
+ | city |
+ | Berlin |
+ Then results contain
+ | ID | osm_type | osm_id |
+ | 0 | N | 2 |
+
+ # github #1352
+ Scenario: Do not use linked centroid when it is outside the area
+ Given the named places
+ | osm | class | type | admin | geometry |
+ | R13 | boundary | administrative | 4 | poly-area:0.01 |
+ And the named places
+ | osm | class | type | geometry |
+ | N2 | place | city | 0.1 0.1 |
+ And the relations
+ | id | members | tags+type |
+ | 13 | N2:label | boundary |
+ When importing
+ Then placex contains
+ | object | linked_place_id |
+ | N2 | R13 |
+ And placex contains
+ | object | centroid |
+ | R13 | in geometry |
When importing
Then placex contains
| object | parent_place_id |
- | W1 | W3 |
+ | W1 | W2 |
Scenario: Building with addr:street tags
Given the scene building-on-street-corner
| R1 | boundary | administrative | 2 | de | (-100 40, -101 40, -101 41, -100 41, -100 40) |
When importing
Then placex contains
- | object | addr+country | country_code |
- | R1 | de | de |
+ | object | rank_search| addr+country | country_code |
+ | R1 | 4 | de | de |
Scenario: Illegal country code tag for countries is ignored
Given the named places
| N22 | place | hamlet |
| N23 | place | municipality |
| N24 | place | district |
- | N25 | place | unincorporated_area |
| N26 | place | borough |
| N27 | place | suburb |
| N28 | place | croft |
| N36 | place | house |
| N37 | place | building |
| N38 | place | houses |
- And the named places
- | osm | class | type | extra+locality |
- | N100 | place | locality | townland |
And the named places
| osm | class | type | extra+capital |
| N101 | place | city | yes |
| object | rank_search | rank_address |
| N1 | 30 | 30 |
| N11 | 30 | 30 |
- | N12 | 2 | 2 |
+ | N12 | 2 | 0 |
| N13 | 2 | 0 |
- | N14 | 4 | 4 |
- | N15 | 8 | 8 |
+ | N14 | 4 | 0 |
+ | N15 | 8 | 0 |
| N16 | 18 | 0 |
| N17 | 12 | 12 |
| N18 | 16 | 16 |
| N19 | 17 | 0 |
| N20 | 18 | 16 |
| N21 | 19 | 16 |
- | N22 | 19 | 16 |
+ | N22 | 20 | 20 |
| N23 | 19 | 16 |
| N24 | 19 | 16 |
- | N25 | 19 | 16 |
- | N26 | 19 | 16 |
+ | N26 | 19 | 18 |
| N27 | 20 | 20 |
| N28 | 20 | 20 |
| N29 | 20 | 20 |
| N32 | 20 | 0 |
| N33 | 20 | 0 |
| N34 | 20 | 0 |
- | N100 | 20 | 20 |
| N101 | 15 | 16 |
| N35 | 22 | 22 |
| N36 | 30 | 30 |
| R21 | boundary | administrative | 32 | (3 3, 4 4, 3 4, 3 3) |
| R22 | boundary | nature_park | 6 | (0 0, 1 0, 0 1, 0 0) |
| R23 | boundary | natural_reserve| 10 | (0 0, 1 1, 1 0, 0 0) |
+ And the named places
+ | osm | class | type | geometry |
+ | R40 | place | country | (1 1, 2 2, 1 2, 1 1) |
+ | R41 | place | state | (3 3, 4 4, 3 4, 3 3) |
When importing
Then placex has no entry for N1
And placex has no entry for W10
| object | rank_search | rank_address |
| R20 | 4 | 4 |
| R21 | 30 | 30 |
- | R22 | 12 | 0 |
- | R23 | 20 | 0 |
+ | R22 | 30 | 30 |
+ | R23 | 30 | 30 |
+ | R40 | 4 | 0 |
+ | R41 | 8 | 0 |
Scenario: search and address ranks for highways correctly assigned
Given the scene roads-with-pois
When importing
Then placex contains
| object | rank_search | rank_address |
- | N1 | 30 | 30 |
+ | N1 | 30 | 0 |
| W1 | 26 | 26 |
| W2 | 26 | 26 |
| W3 | 26 | 26 |
When importing
Then placex contains
| object | rank_search | rank_address |
- | N2 | 30 | 30 |
- | W2 | 30 | 30 |
+ | N2 | 30 | 0 |
+ | W2 | 30 | 0 |
| W4 | 22 | 22 |
| R2 | 22 | 22 |
- | R3 | 22 | 0 |
+ | R3 | 22 | 0 |
Scenario: rank and inclusion of naturals
Given the named places
| N5 | 30 | 30 |
| W2 | 18 | 0 |
| R3 | 18 | 0 |
- | R4 | 22 | 0 |
- | R5 | 4 | 4 |
- | R6 | 4 | 4 |
+ | R4 | 30 | 30 |
+ | R5 | 4 | 0 |
+ | R6 | 4 | 0 |
| W3 | 30 | 30 |
+ Scenario: boundary ways for countries and states are ignored
+ Given the named places
+ | osm | class | type | admin | geometry |
+ | W4 | boundary | administrative | 2 | poly-area:0.1 |
+ | R4 | boundary | administrative | 2 | poly-area:0.1 |
+ | W5 | boundary | administrative | 3 | poly-area:0.1 |
+ | R5 | boundary | administrative | 3 | poly-area:0.1 |
+ | W6 | boundary | administrative | 4 | poly-area:0.1 |
+ | R6 | boundary | administrative | 4 | poly-area:0.1 |
+ | W7 | boundary | administrative | 5 | poly-area:0.1 |
+ | R7 | boundary | administrative | 5 | poly-area:0.1 |
+ When importing
+ Then placex contains exactly
+ | object |
+ | R4 |
+ | R5 |
+ | R6 |
+ | W7 |
+ | R7 |
Then placex contains
| object | postcode |
| W93 | 112 DE 34 |
+
+ Scenario: Postcodes are added to the postcode and word table
+ Given the places
+ | osm | class | type | addr+postcode | addr+housenumber | geometry |
+ | N34 | place | house | 01982 | 111 |country:de |
+ When importing
+ Then location_postcode contains exactly
+ | country | postcode | geometry |
+ | de | 01982 | country:de |
+ And word contains
+ | word | class | type |
+ | 01982 | place | postcode |
And the places
| osm | class | type | name | geometry |
| N1 | place | state | new york | 80 80 |
- | N1 | place | city | bonn | 81 81 |
- | N1 | place | suburb | smalltown| 80 81 |
+ | N2 | place | city | bonn | 81 81 |
+ | N3 | place | suburb | smalltown| 80 81 |
And the named places
| osm | class | type | addr+city | addr+state | addr+suburb | geometry |
| W1 | highway | service | bonn | New York | Smalltown | :w-north |
And the places
| osm | class | type | name | geometry |
| N1 | place | state | new york | 80 80 |
- | N1 | place | city | bonn | 81 81 |
- | N1 | place | suburb | smalltown| 80 81 |
+ | N2 | place | city | bonn | 81 81 |
+ | N3 | place | suburb | smalltown| 80 81 |
And the named places
| osm | class | type | addr+is_in | geometry |
| W1 | highway | service | bonn, New York, Smalltown | :w-north |
| object | nameaddress_vector |
| W1 | bonn, new york, smalltown |
+ Scenario: a linked place does not show up in search name
+ Given the named places
+ | osm | class | type | admin | geometry |
+ | R13 | boundary | administrative | 9 | poly-area:0.01 |
+ And the named places
+ | osm | class | type | geometry |
+ | N2 | place | city | 0.1 0.1 |
+ And the relations
+ | id | members | tags+type |
+ | 13 | N2:label | boundary |
+ When importing
+ Then placex contains
+ | object | linked_place_id |
+ | N2 | R13 |
+ And search_name has no entry for N2
+
+ Scenario: a linked waterway does not show up in search name
+ Given the scene split-road
+ And the places
+ | osm | class | type | name | geometry |
+ | W1 | waterway | river | Rhein | :w-2 |
+ | W2 | waterway | river | Rhein | :w-3 |
+ | R13 | waterway | river | Rhein | :w-1 + :w-2 + :w-3 |
+ And the relations
+ | id | members | tags+type |
+ | 13 | W1,W2:main_stream | waterway |
+ When importing
+ Then placex contains
+ | object | linked_place_id |
+ | W1 | R13 |
+ | W2 | R13 |
+ And search_name has no entry for W1
+ And search_name has no entry for W2
| parent_place_id | start | end |
| W2 | 2 | 6 |
- @Fail
Scenario: housenumber added in middle of interpolation
Given the grid
| 1 | | | | | 2 |
| parent_place_id | start | end | geometry |
| W1 | 2 | 10 | 3,4,5 |
- @Fail
Scenario: Change the start housenumber
Given the grid
| 1 | | 2 |
When importing
Then placex contains
| object | extratags |
- | R1 | 'wikidata' : '34', 'place' : 'city' |
+ | R1 | 'wikidata' : '34', 'linked_place' : 'city' |
When updating places
| osm | class | type | name | extra+oneway | admin | geometry |
| N3 | place | city | newname | yes | 30 | 0.00001 0 |
Then placex contains
| object | extratags |
- | R1 | 'wikidata' : '34', 'oneway' : 'yes', 'place' : 'city' |
+ | R1 | 'wikidata' : '34', 'oneway' : 'yes', 'linked_place' : 'city' |
--- /dev/null
+@DB
+Feature: Update parenting of objects
+
+Scenario: POI inside building inherits addr:street change
+ Given the scene building-on-street-corner
+ And the named places
+ | osm | class | type | geometry |
+ | N1 | amenity | bank | :n-inner |
+ | N2 | shop | bakery | :n-edge-NS |
+ | N3 | shop | supermarket| :n-edge-WE |
+ And the places
+ | osm | class | type | addr_place | housenr | geometry |
+ | W1 | building | yes | nowhere | 3 | :w-building |
+ And the places
+ | osm | class | type | name | geometry |
+ | W2 | highway | primary | bar | :w-WE |
+ | W3 | highway | residential | foo | :w-NS |
+ When importing
+ Then placex contains
+ | object | parent_place_id | housenumber |
+ | W1 | W2 | 3 |
+ | N1 | W3 | 3 |
+ | N2 | W3 | 3 |
+ | N3 | W2 | 3 |
+ When updating places
+ | osm | class | type | street | addr_place | housenr | geometry |
+ | W1 | building | yes | foo | nowhere | 3 | :w-building |
+ And updating places
+ | osm | class | type | name | geometry |
+ | N3 | shop | supermarket| well | :n-edge-WE |
+ Then placex contains
+ | object | parent_place_id | housenumber |
+ | W1 | W3 | 3 |
+ | N1 | W3 | 3 |
+ | N2 | W3 | 3 |
+ | N3 | W3 | 3 |
+
+
--- /dev/null
+@DB
+Feature: Update of postcode
+ Tests for updating of data related to postcodes
+
+ Scenario: A new postcode appears in the postcode and word table
+ Given the places
+ | osm | class | type | addr+postcode | addr+housenumber | geometry |
+ | N34 | place | house | 01982 | 111 |country:de |
+ When importing
+ Then location_postcode contains exactly
+ | country | postcode | geometry |
+ | de | 01982 | country:de |
+ When updating places
+ | osm | class | type | addr+postcode | addr+housenumber | geometry |
+ | N35 | place | house | 4567 | 5 |country:ch |
+ And updating postcodes
+ Then location_postcode contains exactly
+ | country | postcode | geometry |
+ | de | 01982 | country:de |
+ | ch | 4567 | country:ch |
+ And word contains
+ | word | class | type |
+ | 01982 | place | postcode |
+ | 4567 | place | postcode |
+
+ Scenario: When the last postcode is deleted, it is deleted from postcode and word
+ Given the places
+ | osm | class | type | addr+postcode | addr+housenumber | geometry |
+ | N34 | place | house | 01982 | 111 |country:de |
+ | N35 | place | house | 4567 | 5 |country:ch |
+ When importing
+ And marking for delete N34
+ And updating postcodes
+ Then location_postcode contains exactly
+ | country | postcode | geometry |
+ | ch | 4567 | country:ch |
+ And word contains not
+ | word | class | type |
+ | 01982 | place | postcode |
+ And word contains
+ | word | class | type |
+ | 4567 | place | postcode |
+
+ Scenario: A postcode is not deleted from postcode and word when it exist in another country
+ Given the places
+ | osm | class | type | addr+postcode | addr+housenumber | geometry |
+ | N34 | place | house | 01982 | 111 |country:de |
+ | N35 | place | house | 01982 | 5 |country:ch |
+ When importing
+ And marking for delete N34
+ And updating postcodes
+ Then location_postcode contains exactly
+ | country | postcode | geometry |
+ | ch | 01982 | country:ch |
+ And word contains
+ | word | class | type |
+ | 01982 | place | postcode |
+
When importing
Then placex contains
| object | rank_address |
- | R1 | 0 |
+ | R1 | 30 |
| W1 | 30 |
When marking for delete R1,W1
Then placex has no entry for W1
| W1 | boundary | historic | Haha | 5 | (1, 2, 4, 3, 1) |
Then placex contains
| object | rank_address |
- | W1 | 0 |
+ | W1 | 30 |
'REMOVE_TEMPLATE' : False,
'KEEP_TEST_DB' : False,
'DB_HOST' : None,
+ 'DB_PORT' : None,
'DB_USER' : None,
'DB_PASS' : None,
'TEMPLATE_DB' : 'test_template_nominatim',
self.build_dir = os.path.abspath(config['BUILDDIR'])
self.src_dir = os.path.abspath(os.path.join(os.path.split(__file__)[0], "../.."))
self.db_host = config['DB_HOST']
+ self.db_port = config['DB_PORT']
self.db_user = config['DB_USER']
self.db_pass = config['DB_PASS']
self.template_db = config['TEMPLATE_DB']
dbargs = {'database': dbname}
if self.db_host:
dbargs['host'] = self.db_host
+ if self.db_port:
+ dbargs['port'] = self.db_port
if self.db_user:
dbargs['user'] = self.db_user
if self.db_pass:
def write_nominatim_config(self, dbname):
f = open(self.local_settings_file, 'w')
- f.write("<?php\n @define('CONST_Database_DSN', 'pgsql://%s:%s@%s/%s');\n" %
- (self.db_user if self.db_user else '',
- self.db_pass if self.db_pass else '',
- self.db_host if self.db_host else '',
- dbname))
+ # https://secure.php.net/manual/en/ref.pdo-pgsql.connection.php
+ f.write("<?php\n @define('CONST_Database_DSN', 'pgsql:dbname=%s%s%s%s%s');\n" %
+ (dbname,
+ (';host=' + self.db_host) if self.db_host else '',
+ (';port=' + self.db_port) if self.db_port else '',
+ (';user=' + self.db_user) if self.db_user else '',
+ (';password=' + self.db_pass) if self.db_pass else ''
+ ))
f.write("@define('CONST_Osm2pgsql_Flatnode_File', null);\n")
+ f.write("@define('CONST_Import_Style', CONST_BasePath.'/settings/import-full.style');\n")
f.close()
def cleanup(self):
proc = subprocess.Popen(cmd, cwd=self.build_dir,
stdout=subprocess.PIPE, stderr=subprocess.PIPE)
(outp, outerr) = proc.communicate()
+ outerr = outerr.decode('utf-8').replace('\\n', '\n')
logger.debug("run_nominatim_script: %s\n%s\n%s" % (cmd, outp, outerr))
assert (proc.returncode == 0), "Script '%s' failed:\n%s\n%s\n" % (script, outp, outerr)
Then place contains
| object | class | type |
| N1 | place | house |
-
- Scenario: Landuses are only imported when named
- When loading osm data
- """
- n100 x0 y0
- n101 x0 y0.1
- n102 x0.1 y0.1
- n200 x0 y0
- n202 x1 y1
- n203 x1 y0
- w1 Tlanduse=residential,name=rainbow Nn100,n101,n102,n100
- w2 Tlanduse=residential Nn200,n202,n203,n200
- """
- Then place contains exactly
- | object | class | type |
- | W1 | landuse | residential |
+++ /dev/null
-@DB
-Feature: Tag evaluation
- Tests if tags are correctly imported into the place table
-
- Scenario Outline: Name tags
- When loading osm data
- """
- n1 Thighway=yes,<nametag>=Foo
- """
- Then place contains
- | object | name |
- | N1 | '<nametag>' : 'Foo' |
-
- Examples:
- | nametag |
- | ref |
- | int_ref |
- | nat_ref |
- | reg_ref |
- | loc_ref |
- | old_ref |
- | iata |
- | icao |
- | pcode:1 |
- | pcode:2 |
- | pcode:3 |
- | name |
- | name:de |
- | name:bt-BR |
- | int_name |
- | int_name:xxx |
- | nat_name |
- | nat_name:fr |
- | reg_name |
- | reg_name:1 |
- | loc_name |
- | loc_name:DE |
- | old_name |
- | old_name:v1 |
- | alt_name |
- | alt_name:dfe |
- | alt_name_1 |
- | official_name |
- | short_name |
- | short_name:CH |
- | addr:housename |
- | brand |
-
- Scenario: operator only for shops and amenities
- When loading osm data
- """
- n1 Thighway=yes,operator=Foo,name=null
- n2 Tshop=grocery,operator=Foo
- n3 Tamenity=hospital,operator=Foo
- n4 Ttourism=hotel,operator=Foo
- """
- Then place contains
- | object | name |
- | N1 | 'name' : 'null' |
- | N2 | 'operator' : 'Foo' |
- | N3 | 'operator' : 'Foo' |
- | N4 | 'operator' : 'Foo' |
-
- Scenario Outline: Ignored name tags
- When loading osm data
- """
- n1 Thighway=yes,<nametag>=Foo,name=real
- """
- Then place contains
- | object | name |
- | N1 | 'name' : 'real' |
-
- Examples:
- | nametag |
- | name_de |
- | Name |
- | ref:de |
- | ref_de |
- | my:ref |
- | br:name |
- | name:prefix |
- | name:source |
-
- Scenario: Special character in name tag
- When loading osm data
- """
- n1 Thighway=yes,name:%20%de=Foo,name=real1
- n2 Thighway=yes,name:%a%de=Foo,name=real2
- n3 Thighway=yes,name:%9%de=Foo,name:\\=real3
- n4 Thighway=yes,name:%9%de=Foo,name=rea\l3
- """
- Then place contains
- | object | name |
- | N1 | 'name: de' : 'Foo', 'name' : 'real1' |
- | N2 | 'name: de' : 'Foo', 'name' : 'real2' |
- | N3 | 'name: de' : 'Foo', 'name:\\\\' : 'real3' |
- | N4 | 'name: de' : 'Foo', 'name' : 'rea\\l3' |
-
- Scenario: Unprintable character in address tag are maintained
- When loading osm data
- """
- n23 Tamenity=yes,name=foo,addr:postcode=1234%200e%
- """
- Then place contains
- | object | address |
- | N23 | 'postcode' : u'1234\u200e' |
-
- Scenario Outline: Included places
- When loading osm data
- """
- n1 T<key>=<value>,name=real
- """
- Then place contains
- | object | class | type | name |
- | N1 | <key> | <value> | 'name' : 'real' |
-
- Examples:
- | key | value |
- | emergency | phone |
- | tourism | information |
- | historic | castle |
- | military | barracks |
- | natural | water |
- | highway | residential |
- | aerialway | station |
- | aeroway | way |
- | boundary | administrative |
- | craft | butcher |
- | leisure | playground |
- | office | bookmaker |
- | railway | rail |
- | shop | bookshop |
- | waterway | stream |
- | landuse | cemetry |
- | man_made | tower |
- | mountain_pass | yes |
-
- Scenario Outline: Bridges and Tunnels take special name tags
- When loading osm data
- """
- n1 Thighway=road,<key>=yes,name=Rd,<key>:name=My
- n2 Thighway=road,<key>=yes,name=Rd
- """
- Then place contains
- | object | type | name |
- | N1:highway | road | 'name' : 'Rd' |
- | N1:<key> | yes | 'name' : 'My' |
- | N2:highway | road | 'name' : 'Rd' |
- And place has no entry for N2:<key>
-
- Examples:
- | key |
- | bridge |
- | tunnel |
-
- Scenario Outline: Excluded places
- When loading osm data
- """
- n1 T<key>=<value>,name=real
- n2 Thighway=motorway,name=To%20%Hell
- """
- Then place has no entry for N1
-
- Examples:
- | key | value |
- | emergency | yes |
- | emergency | no |
- | tourism | yes |
- | tourism | no |
- | historic | yes |
- | historic | no |
- | military | yes |
- | military | no |
- | natural | yes |
- | natural | no |
- | highway | no |
- | highway | turning_circle |
- | highway | mini_roundabout |
- | highway | noexit |
- | highway | crossing |
- | aerialway | no |
- | aerialway | pylon |
- | man_made | survey_point |
- | man_made | cutline |
- | aeroway | no |
- | amenity | no |
- | bridge | no |
- | craft | no |
- | leisure | no |
- | office | no |
- | railway | no |
- | railway | level_crossing |
- | shop | no |
- | tunnel | no |
- | waterway | riverbank |
-
- Scenario Outline: Some tags only are included when named
- When loading osm data
- """
- n1 T<key>=<value>
- n2 T<key>=<value>,name=To%20%Hell
- n3 T<key>=<value>,ref=123
- """
- Then place contains exactly
- | object | class | type |
- | N2 | <key> | <value> |
-
- Examples:
- | key | value |
- | landuse | residential |
- | natural | meadow |
- | highway | traffic_signals |
- | highway | service |
- | highway | cycleway |
- | highway | path |
- | highway | footway |
- | highway | steps |
- | highway | bridleway |
- | highway | track |
- | highway | byway |
- | highway | motorway_link |
- | highway | primary_link |
- | highway | trunk_link |
- | highway | secondary_link |
- | highway | tertiary_link |
- | railway | rail |
- | boundary | administrative |
- | waterway | stream |
-
- Scenario: Footways are not included if they are sidewalks
- When loading osm data
- """
- n2 Thighway=footway,name=To%20%Hell,footway=sidewalk
- n23 Thighway=footway,name=x
- """
- Then place has no entry for N2
-
- Scenario: named junctions are included if there is no other tag
- When loading osm data
- """
- n1 Tjunction=yes
- n2 Thighway=secondary,junction=roundabout,name=To-Hell
- n3 Tjunction=yes,name=Le%20%Croix
- """
- Then place has no entry for N1
- And place has no entry for N2:junction
- And place contains
- | object | class | type |
- | N3 | junction | yes |
-
- Scenario: Boundary with place tag
- When loading osm data
- """
- n200 x0 y0
- n201 x0 y1
- n202 x1 y1
- n203 x1 y0
- w2 Tboundary=administrative,place=city,name=Foo Nn200,n201,n202,n203,n200
- w4 Tboundary=administrative,place=island,name=Foo Nn200,n201,n202,n203,n200
- w20 Tplace=city,name=ngng Nn200,n201,n202,n203,n200
- w40 Tplace=city,boundary=statistical,name=BB Nn200,n201,n202,n203,n200
- """
- Then place contains
- | object | class | extratags | type |
- | W2 | boundary | 'place' : 'city' | administrative |
- | W4:boundary | boundary | - | administrative |
- | W4:place | place | - | island |
- | W20 | place | - | city |
- | W40:boundary | boundary | - | statistical |
- | W40:place | place | - | city |
- And place has no entry for W2:place
-
- Scenario Outline: Tags that describe a house
- When loading osm data
- """
- n100 T<key>=<value>
- n999 Tamenity=prison,<key>=<value>
- """
- Then place contains exactly
- | object | class | type |
- | N100 | place | house |
- | N999 | amenity | prison |
-
- Examples:
- | key | value |
- | addr:housename | My%20%Mansion |
- | addr:housenumber | 456 |
- | addr:conscriptionnumber | 4 |
- | addr:streetnumber | 4568765 |
-
- Scenario: Only named with no other interesting tag
- When loading osm data
- """
- n1 Tlanduse=meadow
- n2 Tlanduse=residential,name=important
- n3 Tlanduse=residential,name=important,place=hamlet
- """
- Then place contains
- | object | class | type |
- | N2 | landuse | residential |
- | N3 | place | hamlet |
- And place has no entry for N1
- And place has no entry for N3:landuse
-
- Scenario Outline: Import of postal codes
- When loading osm data
- """
- n10 Thighway=secondary,<key>=<value>
- n11 T<key>=<value>
- """
- Then place contains
- | object | class | type | addr+postcode |
- | N10 | highway | secondary | <value> |
- | N11 | place | postcode | <value> |
- And place has no entry for N10:place
-
- Examples:
- | key | value |
- | postal_code | 45736 |
- | postcode | xxx |
- | addr:postcode | 564 |
- | tiger:zip_left | 00011 |
- | tiger:zip_right | 09123 |
-
- Scenario: Import of street and place
- When loading osm data
- """
- n10 Tamenity=hospital,addr:street=Foo%20%St
- n20 Tamenity=hospital,addr:place=Foo%20%Town
- """
- Then place contains
- | object | class | type | addr+street | addr+place |
- | N10 | amenity | hospital | Foo St | - |
- | N20 | amenity | hospital | - | Foo Town |
-
-
- Scenario Outline: Import of country
- When loading osm data
- """
- n10 Tplace=village,<key>=<value>
- """
- Then place contains
- | object | class | type | addr+country |
- | N10 | place | village | <value> |
-
- Examples:
- | key | value |
- | country_code | us |
- | ISO3166-1 | XX |
- | is_in:country_code | __ |
- | addr:country | .. |
- | addr:country_code | cv |
-
- Scenario Outline: Ignore country codes with wrong length
- When loading osm data
- """
- n10 Tplace=village,country_code=<value>
- """
- Then place contains
- | object | class | type | addr+country |
- | N10 | place | village | - |
-
- Examples:
- | value |
- | X |
- | x |
- | ger |
- | dkeufr |
- | d%20%e |
-
- Scenario: Import of house numbers
- When loading osm data
- """
- n10 Tbuilding=yes,addr:housenumber=4b
- n11 Tbuilding=yes,addr:conscriptionnumber=003
- n12 Tbuilding=yes,addr:streetnumber=2345
- n13 Tbuilding=yes,addr:conscriptionnumber=3,addr:streetnumber=111
- """
- Then place contains
- | object | class | type | address |
- | N10 | building | yes | 'housenumber' : '4b' |
- | N11 | building | yes | 'conscriptionnumber' : '003' |
- | N12 | building | yes | 'streetnumber' : '2345' |
- | N13 | building | yes | 'conscriptionnumber' : '3', 'streetnumber' : '111' |
-
- Scenario: Shorten tiger:county tags
- When loading osm data
- """
- n10 Tplace=village,tiger:county=Feebourgh%2c%%20%AL
- n11 Tplace=village,addr:state=Alabama,tiger:county=Feebourgh%2c%%20%AL
- n12 Tplace=village,tiger:county=Feebourgh
- """
- Then place contains
- | object | class | type | addr+tiger:county |
- | N10 | place | village | Feebourgh county |
- | N11 | place | village | Feebourgh county |
- | N12 | place | village | Feebourgh county |
-
- Scenario Outline: Import of address tags
- When loading osm data
- """
- n10 Tplace=village,addr:<key>=<value>
- n11 Tplace=village,is_in:<key>=<value>
- """
- Then place contains
- | object | class | type | address |
- | N10 | place | village | '<key>' : '<value>' |
-
- Examples:
- | key | value |
- | suburb | hinein |
- | city | Sydney |
- | state | Jura |
-
- Scenario: Import of isin tags with space
- When loading osm data
- """
- n10 Tplace=village,is_in=Stockholm%2c%%20%Sweden
- n11 Tplace=village,addr:county=le%20%havre
- """
- Then place contains
- | object | class | type | address |
- | N10 | place | village | 'is_in' : 'Stockholm, Sweden' |
- | N11 | place | village | 'county' : 'le havre' |
-
- Scenario: Import of admin level
- When loading osm data
- """
- n10 Tamenity=hospital,admin_level=3
- n11 Tamenity=hospital,admin_level=b
- n12 Tamenity=hospital
- n13 Tamenity=hospital,admin_level=3.0
- """
- Then place contains
- | object | class | type | admin_level |
- | N10 | amenity | hospital | 3 |
- | N11 | amenity | hospital | 15 |
- | N12 | amenity | hospital | 15 |
- | N13 | amenity | hospital | 3 |
-
- Scenario Outline: Import of extra tags
- When loading osm data
- """
- n10 Ttourism=hotel,<key>=foo
- """
- Then place contains
- | object | class | type | extratags |
- | N10 | tourism | hotel | '<key>' : 'foo' |
-
- Examples:
- | key |
- | tracktype |
- | traffic_calming |
- | service |
- | cuisine |
- | capital |
- | dispensing |
- | religion |
- | denomination |
- | sport |
- | internet_access |
- | lanes |
- | surface |
- | smoothness |
- | width |
- | est_width |
- | incline |
- | opening_hours |
- | collection_times |
- | service_times |
- | disused |
- | wheelchair |
- | sac_scale |
- | trail_visibility |
- | mtb:scale |
- | mtb:description |
- | wood |
- | drive_in |
- | access |
- | vehicle |
- | bicyle |
- | foot |
- | goods |
- | hgv |
- | motor_vehicle |
- | motor_car |
- | access:foot |
- | contact:phone |
- | drink:mate |
- | oneway |
- | date_on |
- | date_off |
- | day_on |
- | day_off |
- | hour_on |
- | hour_off |
- | maxweight |
- | maxheight |
- | maxspeed |
- | disused |
- | toll |
- | charge |
- | population |
- | description |
- | image |
- | attribution |
- | fax |
- | email |
- | url |
- | website |
- | phone |
- | real_ale |
- | smoking |
- | food |
- | camera |
- | brewery |
- | locality |
- | wikipedia |
- | wikipedia:de |
- | wikidata |
- | name:prefix |
- | name:botanical |
- | name:etymology:wikidata |
-
- Scenario: buildings
- When loading osm data
- """
- n10 Ttourism=hotel,building=yes
- n11 Tbuilding=house
- n12 Tbuilding=shed,addr:housenumber=1
- n13 Tbuilding=yes,name=Das-Haus
- n14 Tbuilding=yes,addr:postcode=12345
- """
- Then place contains
- | object | class | type |
- | N10 | tourism | hotel |
- | N12 | building| yes |
- | N13 | building| yes |
- | N14 | building| yes |
- And place has no entry for N10:building
- And place has no entry for N11
-
- Scenario: complete node entry
- When loading osm data
- """
- n290393920 Taddr:city=Perpignan,addr:country=FR,addr:housenumber=43\,addr:postcode=66000,addr:street=Rue%20%Pierre%20%Constant%20%d`Ivry,source=cadastre-dgi-fr%20%source%20%:%20%Direction%20%Générale%20%des%20%Impôts%20%-%20%Cadastre%20%;%20%mise%20%à%20%jour%20%:2008
- """
- Then place contains
- | object | class | type | address |
- | N290393920 | place | house| 'city' : 'Perpignan', 'country' : 'FR', 'housenumber' : '43\\', 'postcode' : '66000', 'street' : 'Rue Pierre Constant d`Ivry' |
| object | class | type | name |
| N1:tourism | tourism | hotel | 'name' : 'foo' |
+ Scenario: Downgrading a highway to one that is dropped without name
+ When loading osm data
+ """
+ n100 x0 y0
+ n101 x0.0001 y0.0001
+ w1 Thighway=residential Nn100,n101
+ """
+ Then place contains
+ | object |
+ | W1:highway |
+ When updating osm data
+ """
+ w1 Thighway=service Nn100,n101
+ """
+ Then place has no entry for W1
+
+ Scenario: Downgrading a highway when a second tag is present
+ When loading osm data
+ """
+ n100 x0 y0
+ n101 x0.0001 y0.0001
+ w1 Thighway=residential,tourism=hotel Nn100,n101
+ """
+ Then place contains
+ | object |
+ | W1:highway |
+ | W1:tourism |
+ When updating osm data
+ """
+ w1 Thighway=service,tourism=hotel Nn100,n101
+ """
+ Then place has no entry for W1:highway
+ And place contains
+ | object |
+ | W1:tourism |
return
if column.startswith('centroid'):
- fac = float(column[9:]) if column.startswith('centroid*') else 1.0
- x, y = value.split(' ')
- assert_almost_equal(float(x) * fac, row['cx'], "Bad x coordinate")
- assert_almost_equal(float(y) * fac, row['cy'], "Bad y coordinate")
+ if value == 'in geometry':
+ query = """SELECT ST_Within(ST_SetSRID(ST_Point({}, {}), 4326),
+ ST_SetSRID('{}'::geometry, 4326))""".format(
+ row['cx'], row['cy'], row['geomtxt'])
+ cur = context.db.cursor()
+ cur.execute(query)
+ eq_(cur.fetchone()[0], True, "(Row %s failed: %s)" % (column, query))
+ else:
+ fac = float(column[9:]) if column.startswith('centroid*') else 1.0
+ x, y = value.split(' ')
+ assert_almost_equal(float(x) * fac, row['cx'], msg="Bad x coordinate")
+ assert_almost_equal(float(y) * fac, row['cy'], msg="Bad y coordinate")
elif column == 'geometry':
geom = context.osm.parse_geometry(value, context.scene)
cur = context.db.cursor()
check_database_integrity(context)
+@when("updating postcodes")
+def update_postcodes(context):
+ context.nominatim.run_update_script('calculate-postcodes')
+
@when("marking for delete (?P<oids>.*)")
def delete_places(context, oids):
context.nominatim.run_setup_script(
context.db.commit()
+@then("location_postcode contains exactly")
+def check_location_postcode(context):
+ cur = context.db.cursor(cursor_factory=psycopg2.extras.DictCursor)
+
+ cur.execute("SELECT *, ST_AsText(geometry) as geomtxt FROM location_postcode")
+ eq_(cur.rowcount, len(list(context.table)),
+ "Postcode table has %d rows, expected %d rows."
+ % (cur.rowcount, len(list(context.table))))
+
+ table = list(cur)
+ for row in context.table:
+ for i in range(len(table)):
+ if table[i]['country_code'] != row['country'] \
+ or table[i]['postcode'] != row['postcode']:
+ continue
+ for h in row.headings:
+ if h not in ('country', 'postcode'):
+ assert_db_column(table[i], h, row[h], context)
+
+@then("word contains(?P<exclude> not)?")
+def check_word_table(context, exclude):
+ cur = context.db.cursor(cursor_factory=psycopg2.extras.DictCursor)
+
+ for row in context.table:
+ wheres = []
+ values = []
+ for h in row.headings:
+ wheres.append("%s = %%s" % h)
+ values.append(row[h])
+ cur.execute("SELECT * from word WHERE %s" % ' AND '.join(wheres), values)
+ if exclude:
+ eq_(0, cur.rowcount,
+ "Row still in word table: %s" % '/'.join(values))
+ else:
+ assert_greater(cur.rowcount, 0,
+ "Row not in word table: %s" % '/'.join(values))
+
@then("place_addressline contains")
def check_place_addressline(context):
cur = context.db.cursor(cursor_factory=psycopg2.extras.DictCursor)
pass
elif h == 'osm':
assert_equal(res['osm_type'], row[h][0])
- assert_equal(res['osm_id'], row[h][1:])
+ assert_equal(res['osm_id'], int(row[h][1:]))
elif h == 'centroid':
x, y = row[h].split(' ')
assert_almost_equal(float(y), float(res['lat']))
self.result = geojson_results_to_json_results(self.result)
def parse_geocodejson(self):
- return self.parse_geojson()
+ self.parse_geojson()
+ if self.result is not None:
+ self.result = [r['geocoding'] for r in self.result]
def parse_html(self):
content, errors = tidy_document(self.page,
self.result = geojson_results_to_json_results(self.result[0])
def parse_geocodejson(self):
- return self.parse_geojson()
+ self.parse_geojson()
+ if self.result is not None:
+ self.result = [r['geocoding'] for r in self.result]
def parse_xml(self):
et = ET.fromstring(self.page)
"""
cmd = ['/usr/bin/env', 'php']
cmd.append(os.path.join(context.nominatim.build_dir, 'utils', 'query.php'))
- cmd.extend(['--search', query])
+ if query:
+ cmd.extend(['--search', query])
# add more parameters in table form
if context.table:
for h in context.table.headings:
if fmt == 'json ':
outfmt = 'json'
+ elif fmt == 'jsonv2 ':
+ outfmt = 'json'
elif fmt == 'geojson ':
outfmt = 'geojson'
+ elif fmt == 'geocodejson ':
+ outfmt = 'geocodejson'
else:
outfmt = 'xml'
context.execute_steps("Then a HTTP 200 is returned")
eq_(context.response.format, fmt)
+@then(u'a (?P<fmt>\w+) user error is returned')
+def check_page_error(context, fmt):
+ context.execute_steps("Then a HTTP 400 is returned")
+ eq_(context.response.format, fmt)
+
+ if fmt == 'html':
+ assert_is_not_none(re.search(r'<html( |>).+</html>', context.response.page, re.DOTALL))
+ elif fmt == 'xml':
+ assert_is_not_none(re.search(r'<error>.+</error>', context.response.page, re.DOTALL))
+ else:
+ assert_is_not_none(re.search(r'({"error":)', context.response.page, re.DOTALL))
+
@then(u'result header contains')
def check_header_attr(context):
for line in context.table:
--- /dev/null
+<?php
+
+namespace Nominatim;
+
+require_once(CONST_BasePath.'/lib/init-website.php');
+require_once(CONST_BasePath.'/lib/AddressDetails.php');
+
+
+class AddressDetailsTest extends \PHPUnit\Framework\TestCase
+{
+
+ protected function setUp(): void
+ {
+ // How the fixture got created
+ //
+ // 1) search for '10 downing street'
+ // https://nominatim.openstreetmap.org/details.php?osmtype=R&osmid=1879842
+ //
+ // 2) find place_id in the local database
+ // SELECT place_id, name FROM placex WHERE osm_type='R' AND osm_id=1879842;
+ //
+ // 3) set postgresql to non-align output, e.g. psql -A or \a in the CLI
+ //
+ // 4) query
+ // SELECT row_to_json(row,true) FROM (
+ // SELECT *, get_name_by_language(name, ARRAY['name:en']) as localname
+ // FROM get_addressdata(194663412,10)
+ // ORDER BY rank_address DESC, isaddress DESC
+ // ) AS row;
+ //
+ // 5) copy&paste into file. Add commas between records
+ //
+ $json = file_get_contents(CONST_BasePath.'/test/php/fixtures/address_details_10_downing_street.json');
+ $data = json_decode($json, true);
+
+ $this->oDbStub = $this->getMockBuilder(\DB::class)
+ ->setMethods(array('getAll'))
+ ->getMock();
+ $this->oDbStub->method('getAll')
+ ->willReturn($data);
+ }
+
+ public function testGetLocaleAddress()
+ {
+ $oAD = new AddressDetails($this->oDbStub, 194663412, 10, 'en');
+ $expected = join(', ', array(
+ '10 Downing Street',
+ '10',
+ 'Downing Street',
+ 'St. James\'s',
+ 'Covent Garden',
+ 'Westminster',
+ 'London',
+ 'Greater London',
+ 'England',
+ 'SW1A 2AA',
+ 'United Kingdom'
+ ));
+ $this->assertEquals($expected, $oAD->getLocaleAddress());
+ }
+
+ public function testGetAddressDetails()
+ {
+ $oAD = new AddressDetails($this->oDbStub, 194663412, 10, 'en');
+ $this->assertEquals(18, count($oAD->getAddressDetails(true)));
+ $this->assertEquals(12, count($oAD->getAddressDetails(false)));
+ }
+
+ public function testGetAddressNames()
+ {
+ $oAD = new AddressDetails($this->oDbStub, 194663412, 10, 'en');
+ $expected = array(
+ 'attraction' => '10 Downing Street',
+ 'house_number' => '10',
+ 'road' => 'Downing Street',
+ 'neighbourhood' => 'St. James\'s',
+ 'suburb' => 'Covent Garden',
+ 'city' => 'London',
+ 'state_district' => 'Greater London',
+ 'state' => 'England',
+ 'postcode' => 'SW1A 2AA',
+ 'country' => 'United Kingdom',
+ 'country_code' => 'gb'
+ );
+
+ $this->assertEquals($expected, $oAD->getAddressNames());
+ }
+
+ public function testGetAdminLevels()
+ {
+ $oAD = new AddressDetails($this->oDbStub, 194663412, 10, 'en');
+ $expected = array(
+ 'level8' => 'Westminster',
+ 'level6' => 'London',
+ 'level5' => 'Greater London',
+ 'level4' => 'England',
+ 'level2' => 'United Kingdom'
+ );
+ $this->assertEquals($expected, $oAD->getAdminLevels());
+ }
+
+ public function testDebugInfo()
+ {
+ $oAD = new AddressDetails($this->oDbStub, 194663412, 10, 'en');
+ $this->assertTrue(is_array($oAD->debugInfo()));
+ $this->assertEquals(18, count($oAD->debugInfo()));
+ }
+}
--- /dev/null
+<?php
+
+namespace Nominatim;
+
+require_once(CONST_BasePath.'/lib/ClassTypes.php');
+
+class ClassTypesTest extends \PHPUnit\Framework\TestCase
+{
+ public function testGetInfo()
+ {
+ // 1) Admin level set
+ // city Dublin
+ // https://nominatim.openstreetmap.org/details.php?osmtype=R&osmid=1109531
+ $aPlace = array(
+ 'admin_level' => 7,
+ 'class' => 'boundary',
+ 'type' => 'administrative',
+ 'rank_address' => 14
+ );
+
+ $this->assertEquals('Municipality', ClassTypes\getInfo($aPlace)['label']);
+ $this->assertEquals('Municipality', ClassTypes\getFallbackInfo($aPlace)['label']);
+ $this->assertEquals('Municipality', ClassTypes\getProperty($aPlace, 'label'));
+
+ // 2) No admin level
+ // Eiffel Tower
+ // https://nominatim.openstreetmap.org/details.php?osmtype=W&osmid=5013364
+ $aPlace = array(
+ 'class' => 'tourism',
+ 'type' => 'attraction',
+ 'rank_address' => 29
+ );
+ $this->assertEquals('Attraction', ClassTypes\getInfo($aPlace)['label']);
+ $this->assertEquals(array('simplelabel' => 'address29'), ClassTypes\getFallbackInfo($aPlace));
+ $this->assertEquals('Attraction', ClassTypes\getProperty($aPlace, 'label'));
+
+ // 3) Unknown type
+ // La Maison du Toutou, Paris
+ // https://nominatim.openstreetmap.org/details.php?osmtype=W&osmid=164011651
+ $aPlace = array(
+ 'class' => 'shop',
+ 'type' => 'pet_grooming',
+ 'rank_address' => 29
+ );
+ $this->assertEquals(false, ClassTypes\getInfo($aPlace));
+ $this->assertEquals(array('simplelabel' => 'address29'), ClassTypes\getFallbackInfo($aPlace));
+ $this->assertEquals(false, ClassTypes\getProperty($aPlace, 'label'));
+ $this->assertEquals('mydefault', ClassTypes\getProperty($aPlace, 'label', 'mydefault'));
+ }
+
+ public function testGetClassTypesWithImportance()
+ {
+ $aClasses = ClassTypes\getListWithImportance();
+
+ $this->assertGreaterThan(
+ 200,
+ count($aClasses)
+ );
+
+ $this->assertEquals(
+ array(
+ 'label' => 'Country',
+ 'frequency' => 0,
+ 'icon' => 'poi_boundary_administrative',
+ 'defzoom' => 6,
+ 'defdiameter' => 15,
+ 'importance' => 3
+ ),
+ $aClasses['place:country']
+ );
+ }
+
+
+ public function testGetResultDiameter()
+ {
+ $aResult = array('class' => '', 'type' => '');
+ $this->assertEquals(
+ 0.0001,
+ ClassTypes\getProperty($aResult, 'defdiameter', 0.0001)
+ );
+
+ $aResult = array('class' => 'place', 'type' => 'country');
+ $this->assertEquals(
+ 15,
+ ClassTypes\getProperty($aResult, 'defdiameter', 0.0001)
+ );
+
+ $aResult = array('class' => 'boundary', 'type' => 'administrative', 'admin_level' => 6);
+ $this->assertEquals(
+ 0.32,
+ ClassTypes\getProperty($aResult, 'defdiameter', 0.0001)
+ );
+ }
+}
--- /dev/null
+<?php
+
+namespace Nominatim;
+
+require_once(CONST_BasePath.'/lib/lib.php');
+require_once(CONST_BasePath.'/lib/DB.php');
+
+// subclassing so we can set the protected connection variable
+class NominatimSubClassedDB extends \Nominatim\DB
+{
+ public function setConnection($oConnection)
+ {
+ $this->connection = $oConnection;
+ }
+}
+
+// phpcs:ignore PSR1.Classes.ClassDeclaration.MultipleClasses
+class DBTest extends \PHPUnit\Framework\TestCase
+{
+ public function testReusingConnection()
+ {
+ $oDB = new NominatimSubClassedDB('');
+ $oDB->setConnection('anything');
+ $this->assertTrue($oDB->connect());
+ }
+
+ public function testCheckConnection()
+ {
+ $oDB = new \Nominatim\DB('');
+ $this->assertFalse($oDB->checkConnection());
+ }
+
+ public function testErrorHandling()
+ {
+ $this->expectException(DatabaseError::class);
+ $this->expectExceptionMessage('Failed to establish database connection');
+
+ $oDB = new \Nominatim\DB('pgsql:dbname=abc');
+ $oDB->connect();
+ }
+
+ public function testErrorHandling2()
+ {
+ $this->expectException(DatabaseError::class);
+ $this->expectExceptionMessage('Database query failed');
+
+ $oPDOStub = $this->getMockBuilder(PDO::class)
+ ->setMethods(array('query', 'quote'))
+ ->getMock();
+
+ $oPDOStub->method('query')
+ ->will($this->returnCallback(function ($sVal) {
+ return "'$sVal'";
+ }));
+
+ $oPDOStub->method('query')
+ ->will($this->returnCallback(function () {
+ throw new \PDOException('ERROR: syntax error at or near "FROM"');
+ }));
+
+ $oDB = new NominatimSubClassedDB('');
+ $oDB->setConnection($oPDOStub);
+ $oDB->getOne('SELECT name FROM');
+ }
+
+ public function testGetPostgresVersion()
+ {
+ $oDBStub = $this->getMockBuilder(\Nominatim\DB::class)
+ ->disableOriginalConstructor()
+ ->setMethods(array('getOne'))
+ ->getMock();
+
+ $oDBStub->method('getOne')
+ ->willReturn('100006');
+
+ $this->assertEquals(10, $oDBStub->getPostgresVersion());
+ }
+
+ public function testGetPostgisVersion()
+ {
+ $oDBStub = $this->getMockBuilder(\Nominatim\DB::class)
+ ->disableOriginalConstructor()
+ ->setMethods(array('getOne'))
+ ->getMock();
+
+ $oDBStub->method('getOne')
+ ->willReturn('2.4.4');
+
+ $this->assertEquals(2.4, $oDBStub->getPostgisVersion());
+ }
+
+ public function testParseDSN()
+ {
+ $this->assertEquals(
+ array(),
+ \Nominatim\DB::parseDSN('')
+ );
+ $this->assertEquals(
+ array(
+ 'database' => 'db1',
+ 'hostspec' => 'machine1'
+ ),
+ \Nominatim\DB::parseDSN('pgsql:dbname=db1;host=machine1')
+ );
+ $this->assertEquals(
+ array(
+ 'database' => 'db1',
+ 'hostspec' => 'machine1',
+ 'port' => '1234',
+ 'username' => 'john',
+ 'password' => 'secret'
+ ),
+ \Nominatim\DB::parseDSN('pgsql:dbname=db1;host=machine1;port=1234;user=john;password=secret')
+ );
+ }
+
+ public function testGenerateDSN()
+ {
+ $this->assertEquals(
+ 'pgsql:',
+ \Nominatim\DB::generateDSN(array())
+ );
+ $this->assertEquals(
+ 'pgsql:host=machine1;dbname=db1',
+ \Nominatim\DB::generateDSN(\Nominatim\DB::parseDSN('pgsql:host=machine1;dbname=db1'))
+ );
+ }
+
+ public function testAgainstDatabase()
+ {
+ $unit_test_dsn = getenv('UNIT_TEST_DSN') != false ?
+ getenv('UNIT_TEST_DSN') :
+ 'pgsql:dbname=nominatim_unit_tests';
+
+ $this->assertRegExp(
+ '/unit_test/',
+ $unit_test_dsn,
+ 'Test database will get destroyed, thus should have a name like unit_test to be safe'
+ );
+
+ ## Create the database.
+ {
+ $aDSNParsed = \Nominatim\DB::parseDSN($unit_test_dsn);
+ $sDbname = $aDSNParsed['database'];
+ $aDSNParsed['database'] = 'postgres';
+
+ $oDB = new \Nominatim\DB(\Nominatim\DB::generateDSN($aDSNParsed));
+ $oDB->connect();
+ $oDB->exec('DROP DATABASE IF EXISTS ' . $sDbname);
+ $oDB->exec('CREATE DATABASE ' . $sDbname);
+ }
+
+ $oDB = new \Nominatim\DB($unit_test_dsn);
+ $oDB->connect();
+
+ $this->assertTrue(
+ $oDB->checkConnection($sDbname)
+ );
+
+ # Tables, Indices
+ {
+ $this->assertEmpty($oDB->getListOfTables());
+ $oDB->exec('CREATE TABLE table1 (id integer, city varchar, country varchar)');
+ $oDB->exec('CREATE TABLE table2 (id integer, city varchar, country varchar)');
+ $this->assertEquals(
+ array('table1', 'table2'),
+ $oDB->getListOfTables()
+ );
+ $this->assertTrue($oDB->deleteTable('table2'));
+ $this->assertTrue($oDB->deleteTable('table99'));
+ $this->assertEquals(
+ array('table1'),
+ $oDB->getListOfTables()
+ );
+
+ $this->assertTrue($oDB->tableExists('table1'));
+ $this->assertFalse($oDB->tableExists('table99'));
+ $this->assertFalse($oDB->tableExists(null));
+
+ $this->assertEmpty($oDB->getListOfIndices());
+ $oDB->exec('CREATE UNIQUE INDEX table1_index ON table1 (id)');
+ $this->assertEquals(
+ array('table1_index'),
+ $oDB->getListOfIndices()
+ );
+ $this->assertEmpty($oDB->getListOfIndices('table2'));
+ }
+
+ # select queries
+ {
+ $oDB->exec(
+ "INSERT INTO table1 VALUES (1, 'Berlin', 'Germany'), (2, 'Paris', 'France')"
+ );
+
+ $this->assertEquals(
+ array(
+ array('city' => 'Berlin'),
+ array('city' => 'Paris')
+ ),
+ $oDB->getAll('SELECT city FROM table1')
+ );
+ $this->assertEquals(
+ array(),
+ $oDB->getAll('SELECT city FROM table1 WHERE id=999')
+ );
+
+
+ $this->assertEquals(
+ array('id' => 1, 'city' => 'Berlin', 'country' => 'Germany'),
+ $oDB->getRow('SELECT * FROM table1 WHERE id=1')
+ );
+ $this->assertEquals(
+ false,
+ $oDB->getRow('SELECT * FROM table1 WHERE id=999')
+ );
+
+
+ $this->assertEquals(
+ array('Berlin', 'Paris'),
+ $oDB->getCol('SELECT city FROM table1')
+ );
+ $this->assertEquals(
+ array(),
+ $oDB->getCol('SELECT city FROM table1 WHERE id=999')
+ );
+
+ $this->assertEquals(
+ 'Berlin',
+ $oDB->getOne('SELECT city FROM table1 WHERE id=1')
+ );
+ $this->assertEquals(
+ null,
+ $oDB->getOne('SELECT city FROM table1 WHERE id=999')
+ );
+
+ $this->assertEquals(
+ array('Berlin' => 'Germany', 'Paris' => 'France'),
+ $oDB->getAssoc('SELECT city, country FROM table1')
+ );
+ $this->assertEquals(
+ array(),
+ $oDB->getAssoc('SELECT city, country FROM table1 WHERE id=999')
+ );
+ }
+ }
+}
--- /dev/null
+<?php
+
+namespace Nominatim;
+
+require_once(CONST_BasePath.'/lib/init-website.php');
+require_once(CONST_BasePath.'/lib/DatabaseError.php');
+
+class DatabaseErrorTest extends \PHPUnit\Framework\TestCase
+{
+
+ public function testSqlMessage()
+ {
+ $oSqlStub = $this->getMockBuilder(PDOException::class)
+ ->setMethods(array('getMessage'))
+ ->getMock();
+
+ $oSqlStub->method('getMessage')
+ ->willReturn('Unknown table.');
+
+ $oErr = new DatabaseError('Sql error', 123, null, $oSqlStub);
+ $this->assertEquals('Sql error', $oErr->getMessage());
+ $this->assertEquals(123, $oErr->getCode());
+ $this->assertEquals('Unknown table.', $oErr->getSqlError());
+ }
+
+ public function testSqlObjectDump()
+ {
+ $oErr = new DatabaseError('Sql error', 123, null, array('one' => 'two'));
+ $this->assertRegExp('/two/', $oErr->getSqlDebugDump());
+ }
+}
namespace Nominatim;
-use Exception;
-
-require_once('../../lib/DebugHtml.php');
+require_once(CONST_BasePath.'/lib/DebugHtml.php');
class DebugTest extends \PHPUnit\Framework\TestCase
{
- protected function setUp()
+
+ protected function setUp(): void
{
- $this->oWithDebuginfo = $this->getMock(Geocode::class, array('debugInfo'));
+ $this->oWithDebuginfo = $this->getMockBuilder(\GeococdeMock::class)
+ ->setMethods(array('debugInfo'))
+ ->getMock();
$this->oWithDebuginfo->method('debugInfo')
->willReturn(array('key1' => 'val1', 'key2' => 'val2', 'key3' => 'val3'));
- $this->oWithToString = $this->getMock(Geocode::class, array('__toString'));
+
+ $this->oWithToString = $this->getMockBuilder(\SomeMock::class)
+ ->setMethods(array('__toString'))
+ ->getMock();
$this->oWithToString->method('__toString')->willReturn('me as string');
}
namespace Nominatim;
-require_once '../../lib/lib.php';
-require_once '../../lib/ClassTypes.php';
+require_once(CONST_BasePath.'/lib/lib.php');
+require_once(CONST_BasePath.'/lib/ClassTypes.php');
class LibTest extends \PHPUnit\Framework\TestCase
{
- public function testGetClassTypesWithImportance()
- {
- $aClasses = ClassTypes\getListWithImportance();
-
- $this->assertGreaterThan(
- 200,
- count($aClasses)
- );
-
- $this->assertEquals(
- array(
- 'label' => 'Country',
- 'frequency' => 0,
- 'icon' => 'poi_boundary_administrative',
- 'defzoom' => 6,
- 'defdiameter' => 15,
- 'importance' => 3
- ),
- $aClasses['place:country']
- );
- }
-
-
- public function testGetResultDiameter()
- {
- $aResult = array('class' => '', 'type' => '');
- $this->assertEquals(
- 0.0001,
- ClassTypes\getProperty($aResult, 'defdiameter', 0.0001)
- );
-
- $aResult = array('class' => 'place', 'type' => 'country');
- $this->assertEquals(
- 15,
- ClassTypes\getProperty($aResult, 'defdiameter', 0.0001)
- );
-
- $aResult = array('class' => 'boundary', 'type' => 'administrative', 'admin_level' => 6);
- $this->assertEquals(
- 0.32,
- ClassTypes\getProperty($aResult, 'defdiameter', 0.0001)
- );
- }
-
public function testAddQuotes()
{
);
}
-
- public function testGeometryText2Points()
- {
- $fRadius = 1;
- // invalid value
- $this->assertEquals(
- null,
- geometryText2Points('', $fRadius)
- );
-
- // POINT
- $aPoints = geometryText2Points('POINT(10 20)', $fRadius);
- $this->assertEquals(
- 101,
- count($aPoints)
- );
- $this->assertEquals(
- array(
- array(10, 21),
- array(10.062790519529, 20.998026728428),
- array(10.125333233564, 20.992114701314)
- ),
- array_splice($aPoints, 0, 3)
- );
-
- // POLYGON
- $this->assertEquals(
- array(
- array('30', '10'),
- array('40', '40'),
- array('20', '40'),
- array('10', '20'),
- array('30', '10')
- ),
- geometryText2Points('POLYGON((30 10, 40 40, 20 40, 10 20, 30 10))', $fRadius)
- );
-
- // MULTIPOLYGON
- $this->assertEquals(
- array(
- array('30', '20'), // first polygon only
- array('45', '40'),
- array('10', '40'),
- array('30', '20'),
- ),
- geometryText2Points('MULTIPOLYGON(((30 20, 45 40, 10 40, 30 20)),((15 5, 40 10, 10 20, 5 10, 15 5)))', $fRadius)
- );
- }
-
public function testParseLatLon()
{
// no coordinates expected
'40 26.767 N 79 58.933 W',
'40° 26.767′ N 79° 58.933′ W',
"40° 26.767' N 79° 58.933' W",
+ "40° 26.767'
+ N 79° 58.933' W",
'N 40 26.767, W 79 58.933',
'N 40°26.767′, W 79°58.933′',
+ ' N 40°26.767′, W 79°58.933′',
"N 40°26.767', W 79°58.933'",
'40 26 46 N 79 58 56 W',
'N 40 26 46 W 79 58 56',
'N 40° 26′ 46″, W 79° 58′ 56″',
'N 40° 26\' 46", W 79° 58\' 56"',
+ 'N 40° 26\' 46", W 79° 58\' 56"',
'40.446 -79.982',
'40.446,-79.982',
'N 40.446° W 79.982°',
'[40.446 -79.982]',
+ '[40.446,\v-79.982]',
+ ' 40.446 , -79.982 ',
' 40.446 , -79.982 ',
+ ' 40.446 , -79.982 ',
+ ' 40.446\v, -79.982 ',
);
foreach ($aQueries as $sQuery) {
$aRes = parseLatLon($sQuery);
- $this->assertEquals(40.446, $aRes[1], 'degrees decimal ' . $sQuery, 0.01);
- $this->assertEquals(-79.982, $aRes[2], 'degrees decimal ' . $sQuery, 0.01);
+ $this->assertEqualsWithDelta(40.446, $aRes[1], 0.01, 'degrees decimal ' . $sQuery);
+ $this->assertEqualsWithDelta(-79.982, $aRes[2], 0.01, 'degrees decimal ' . $sQuery);
$this->assertEquals($sQuery, $aRes[0]);
}
}
// start == end
$this->closestHouseNumberEvenOddOther(50, 50, 0.5, array('even' => 50, 'odd' => 50, 'other' => 50));
}
+
+ public function testGetSearchRankLabel()
+ {
+ $this->assertEquals('unknown', getSearchRankLabel(null));
+ $this->assertEquals('continent', getSearchRankLabel(0));
+ $this->assertEquals('continent', getSearchRankLabel(1));
+ $this->assertEquals('other: 30', getSearchRankLabel(30));
+ }
}
--- /dev/null
+<?php
+
+namespace Nominatim;
+
+require_once(CONST_BasePath.'/lib/output.php');
+
+class OutputTest extends \PHPUnit\Framework\TestCase
+{
+ public function testDetailsPermaLinkNode()
+ {
+ $aFeature = array('osm_type' => 'N', 'osm_id'=> 38274, 'class' => 'place');
+ $this->assertSame(
+ detailsPermaLink($aFeature),
+ '<a href="details.php?osmtype=N&osmid=38274&class=place">node 38274</a>'
+ );
+ }
+
+ public function testDetailsPermaLinkWay()
+ {
+ $aFeature = array('osm_type' => 'W', 'osm_id'=> 65, 'class' => 'highway');
+ $this->assertSame(
+ detailsPermaLink($aFeature),
+ '<a href="details.php?osmtype=W&osmid=65&class=highway">way 65</a>'
+ );
+ }
+
+ public function testDetailsPermaLinkRelation()
+ {
+ $aFeature = array('osm_type' => 'R', 'osm_id'=> 9908, 'class' => 'waterway');
+ $this->assertSame(
+ detailsPermaLink($aFeature),
+ '<a href="details.php?osmtype=R&osmid=9908&class=waterway">relation 9908</a>'
+ );
+ }
+
+ public function testDetailsPermaLinkTiger()
+ {
+ $aFeature = array('osm_type' => 'T', 'osm_id'=> 2, 'place_id' => 334);
+ $this->assertSame(
+ detailsPermaLink($aFeature, 'foo'),
+ '<a href="details.php?place_id=334">foo</a>'
+ );
+ }
+
+ public function testDetailsPermaLinkInterpolation()
+ {
+ $aFeature = array('osm_type' => 'I', 'osm_id'=> 400, 'place_id' => 3);
+ $this->assertSame(
+ detailsPermaLink($aFeature, 'foo'),
+ '<a href="details.php?place_id=3">foo</a>'
+ );
+ }
+
+ public function testDetailsPermaLinkWithExtraPropertiesNode()
+ {
+ $aFeature = array('osm_type' => 'N', 'osm_id'=> 2, 'class' => 'amenity');
+ $this->assertSame(
+ detailsPermaLink($aFeature, 'something', 'class="xtype"'),
+ '<a class="xtype" href="details.php?osmtype=N&osmid=2&class=amenity">something</a>'
+ );
+ }
+
+ public function testDetailsPermaLinkWithExtraPropertiesTiger()
+ {
+ $aFeature = array('osm_type' => 'T', 'osm_id'=> 5, 'place_id' => 46);
+ $this->assertSame(
+ detailsPermaLink($aFeature, 'something', 'class="xtype"'),
+ '<a class="xtype" href="details.php?place_id=46">something</a>'
+ );
+ }
+}
namespace Nominatim;
-use Exception;
-
-require_once('../../lib/ParameterParser.php');
+require_once(CONST_BasePath.'/lib/ParameterParser.php');
function userError($sError)
{
- throw new Exception($sError);
+ throw new \Exception($sError);
}
class ParameterParserTest extends \PHPUnit\Framework\TestCase
public function testGetIntWithNonNumber()
{
- $this->setExpectedException(Exception::class, "Integer number expected for parameter 'int4'");
+ $this->expectException(\Exception::class);
+ $this->expectExceptionMessage("Integer number expected for parameter 'int4'");
+
(new ParameterParser(array('int4' => 'a')))->getInt('int4');
}
public function testGetIntWithEmpytString()
{
- $this->setExpectedException(Exception::class, "Integer number expected for parameter 'int5'");
+ $this->expectException(\Exception::class);
+ $this->expectExceptionMessage("Integer number expected for parameter 'int5'");
+
(new ParameterParser(array('int5' => '')))->getInt('int5');
}
public function testGetFloatWithEmptyString()
{
- $this->setExpectedException(Exception::class, "Floating-point number expected for parameter 'float4'");
+ $this->expectException(\Exception::class);
+ $this->expectExceptionMessage("Floating-point number expected for parameter 'float4'");
+
(new ParameterParser(array('float4' => '')))->getFloat('float4');
}
public function testGetFloatWithTextString()
{
- $this->setExpectedException(Exception::class, "Floating-point number expected for parameter 'float5'");
+ $this->expectException(\Exception::class);
+ $this->expectExceptionMessage("Floating-point number expected for parameter 'float5'");
+
(new ParameterParser(array('float5' => 'a')))->getFloat('float5');
}
public function testGetFloatWithInvalidNumber()
{
- $this->setExpectedException(Exception::class, "Floating-point number expected for parameter 'float6'");
+ $this->expectException(\Exception::class);
+ $this->expectExceptionMessage("Floating-point number expected for parameter 'float6'");
+
(new ParameterParser(array('float6' => '-55.')))->getFloat('float6');
}
public function testGetSetWithValueNotInSet()
{
- $this->setExpectedException(Exception::class, "Parameter 'val4' must be one of: foo, bar");
+ $this->expectException(\Exception::class);
+ $this->expectExceptionMessage("Parameter 'val4' must be one of: foo, bar");
+
(new ParameterParser(array('val4' => 'faz')))->getSet('val4', array('foo', 'bar'));
}
{
$oParams = new ParameterParser(array('accept-language' => ''));
$this->assertSame(array(
- 'short_name:default' => 'short_name:default',
'name:default' => 'name:default',
- 'short_name' => 'short_name',
'name' => 'name',
'brand' => 'brand',
'official_name:default' => 'official_name:default',
+ 'short_name:default' => 'short_name:default',
'official_name' => 'official_name',
+ 'short_name' => 'short_name',
'ref' => 'ref',
'type' => 'type'
), $oParams->getPreferredLanguages('default'));
$oParams = new ParameterParser(array('accept-language' => 'de,en'));
$this->assertSame(array(
- 'short_name:de' => 'short_name:de',
'name:de' => 'name:de',
- 'short_name:en' => 'short_name:en',
'name:en' => 'name:en',
- 'short_name' => 'short_name',
'name' => 'name',
'brand' => 'brand',
'official_name:de' => 'official_name:de',
+ 'short_name:de' => 'short_name:de',
'official_name:en' => 'official_name:en',
+ 'short_name:en' => 'short_name:en',
'official_name' => 'official_name',
+ 'short_name' => 'short_name',
'ref' => 'ref',
'type' => 'type'
), $oParams->getPreferredLanguages('default'));
$oParams = new ParameterParser(array('accept-language' => 'fr-ca,fr;q=0.8,en-ca;q=0.5,en;q=0.3'));
$this->assertSame(array(
- 'short_name:fr-ca' => 'short_name:fr-ca',
'name:fr-ca' => 'name:fr-ca',
- 'short_name:fr' => 'short_name:fr',
'name:fr' => 'name:fr',
- 'short_name:en-ca' => 'short_name:en-ca',
'name:en-ca' => 'name:en-ca',
- 'short_name:en' => 'short_name:en',
'name:en' => 'name:en',
- 'short_name' => 'short_name',
'name' => 'name',
'brand' => 'brand',
'official_name:fr-ca' => 'official_name:fr-ca',
+ 'short_name:fr-ca' => 'short_name:fr-ca',
'official_name:fr' => 'official_name:fr',
+ 'short_name:fr' => 'short_name:fr',
'official_name:en-ca' => 'official_name:en-ca',
+ 'short_name:en-ca' => 'short_name:en-ca',
'official_name:en' => 'official_name:en',
+ 'short_name:en' => 'short_name:en',
+ 'official_name' => 'official_name',
+ 'short_name' => 'short_name',
+ 'ref' => 'ref',
+ 'type' => 'type',
+ ), $oParams->getPreferredLanguages('default'));
+
+ $oParams = new ParameterParser(array('accept-language' => 'ja_rm,zh_pinyin'));
+ $this->assertSame(array(
+ 'name:ja_rm' => 'name:ja_rm',
+ 'name:zh_pinyin' => 'name:zh_pinyin',
+ 'name:ja' => 'name:ja',
+ 'name:zh' => 'name:zh',
+ 'name' => 'name',
+ 'brand' => 'brand',
+ 'official_name:ja_rm' => 'official_name:ja_rm',
+ 'short_name:ja_rm' => 'short_name:ja_rm',
+ 'official_name:zh_pinyin' => 'official_name:zh_pinyin',
+ 'short_name:zh_pinyin' => 'short_name:zh_pinyin',
+ 'official_name:ja' => 'official_name:ja',
+ 'short_name:ja' => 'short_name:ja',
+ 'official_name:zh' => 'official_name:zh',
+ 'short_name:zh' => 'short_name:zh',
'official_name' => 'official_name',
+ 'short_name' => 'short_name',
'ref' => 'ref',
'type' => 'type',
), $oParams->getPreferredLanguages('default'));
}
+
+ public function testHasSetAny()
+ {
+ $oParams = new ParameterParser(array(
+ 'one' => '',
+ 'two' => 0,
+ 'three' => '0',
+ 'four' => '1',
+ 'five' => 'anystring'
+ ));
+ $this->assertFalse($oParams->hasSetAny(array()));
+ $this->assertFalse($oParams->hasSetAny(array('')));
+ $this->assertFalse($oParams->hasSetAny(array('unknown')));
+ $this->assertFalse($oParams->hasSetAny(array('one', 'two', 'three')));
+ $this->assertTrue($oParams->hasSetAny(array('one', 'four')));
+ $this->assertTrue($oParams->hasSetAny(array('four')));
+ $this->assertTrue($oParams->hasSetAny(array('five')));
+ }
}
namespace Nominatim;
-require_once '../../lib/Phrase.php';
+require_once(CONST_BasePath.'/lib/Phrase.php');
+class TokensFullSet
+{
+ public function containsAny($sTerm)
+ {
+ return true;
+ }
+}
+
+// phpcs:ignore PSR1.Classes.ClassDeclaration.MultipleClasses
+class TokensPartialSet
+{
+ public function __construct($aTokens)
+ {
+ $this->aTokens = array_flip($aTokens);
+ }
+
+ public function containsAny($sTerm)
+ {
+ return isset($this->aTokens[$sTerm]);
+ }
+}
+
+// phpcs:ignore PSR1.Classes.ClassDeclaration.MultipleClasses
class PhraseTest extends \PHPUnit\Framework\TestCase
{
public function testEmptyPhrase()
{
$oPhrase = new Phrase('', '');
+ $oPhrase->computeWordSets(new TokensFullSet());
$this->assertEquals(
array(array('')),
public function testSingleWordPhrase()
{
$oPhrase = new Phrase('a', '');
+ $oPhrase->computeWordSets(new TokensFullSet());
$this->assertEquals(
'(a)',
public function testMultiWordPhrase()
{
$oPhrase = new Phrase('a b', '');
+ $oPhrase->computeWordSets(new TokensFullSet());
$this->assertEquals(
'(a b),(a|b)',
$this->serializeSets($oPhrase->getWordSets())
);
$oPhrase = new Phrase('a b c', '');
+ $oPhrase->computeWordSets(new TokensFullSet());
$this->assertEquals(
- '(a b c),(a|b c),(a|b|c),(a b|c)',
+ '(a b c),(a|b c),(a b|c),(a|b|c)',
$this->serializeSets($oPhrase->getWordSets())
);
$oPhrase = new Phrase('a b c d', '');
+ $oPhrase->computeWordSets(new TokensFullSet());
$this->assertEquals(
- '(a b c d),(a|b c d),(a|b|c d),(a|b|c|d),(a|b c|d),(a b|c d),(a b|c|d),(a b c|d)',
+ '(a b c d),(a b c|d),(a b|c d),(a|b c d),(a b|c|d),(a|b c|d),(a|b|c d),(a|b|c|d)',
$this->serializeSets($oPhrase->getWordSets())
);
}
public function testInverseWordSets()
{
$oPhrase = new Phrase('a b c', '');
+ $oPhrase->computeWordSets(new TokensFullSet());
$oPhrase->invertWordSets();
$this->assertEquals(
- '(a b c),(c|a b),(c|b|a),(b c|a)',
+ '(a b c),(b c|a),(c|a b),(c|b|a)',
$this->serializeSets($oPhrase->getWordSets())
);
}
- public function testMaxDepth()
+ public function testMaxWordSets()
{
$oPhrase = new Phrase(join(' ', array_fill(0, 4, 'a')), '');
+ $oPhrase->computeWordSets(new TokensFullSet());
$this->assertEquals(8, count($oPhrase->getWordSets()));
$oPhrase->invertWordSets();
$this->assertEquals(8, count($oPhrase->getWordSets()));
$oPhrase = new Phrase(join(' ', array_fill(0, 18, 'a')), '');
- $this->assertEquals(41226, count($oPhrase->getWordSets()));
+ $oPhrase->computeWordSets(new TokensFullSet());
+ $this->assertEquals(100, count($oPhrase->getWordSets()));
$oPhrase->invertWordSets();
- $this->assertEquals(41226, count($oPhrase->getWordSets()));
+ $this->assertEquals(100, count($oPhrase->getWordSets()));
+ }
+
+
+ public function testPartialTokensShortTerm()
+ {
+ $oPhrase = new Phrase('a b c d', '');
+ $oPhrase->computeWordSets(new TokensPartialSet(array('a', 'b', 'd', 'b c', 'b c d')));
+ $this->assertEquals(
+ '(a|b c d),(a|b c|d)',
+ $this->serializeSets($oPhrase->getWordSets())
+ );
+ }
+
+
+ public function testPartialTokensLongTerm()
+ {
+ $oPhrase = new Phrase(join(' ', array_fill(0, 18, 'a')), '');
+ $oPhrase->computeWordSets(new TokensPartialSet(array('a', 'a a a a a')));
+ $this->assertEquals(80, count($oPhrase->getWordSets()));
}
}
namespace Nominatim;
-@define('CONST_BasePath', '../../');
-
-require_once '../../lib/SearchContext.php';
+require_once(CONST_BasePath.'/lib/SearchContext.php');
class SearchContextTest extends \PHPUnit\Framework\TestCase
{
private $oCtx;
- protected function setUp()
+ protected function setUp(): void
{
$this->oCtx = new SearchContext();
}
--- /dev/null
+<?php
+
+namespace Nominatim;
+
+require_once(CONST_BasePath.'/lib/Shell.php');
+
+class ShellTest extends \PHPUnit\Framework\TestCase
+{
+ public function testNew()
+ {
+ $this->expectException('ArgumentCountError');
+ $this->expectExceptionMessage('Too few arguments to function');
+ $oCmd = new \Nominatim\Shell();
+
+
+ $oCmd = new \Nominatim\Shell('wc', '-l', 'file.txt');
+ $this->assertSame(
+ "wc -l 'file.txt'",
+ $oCmd->escapedCmd()
+ );
+ }
+
+ public function testaddParams()
+ {
+ $oCmd = new \Nominatim\Shell('grep');
+ $oCmd->addParams('-a', 'abc')
+ ->addParams(10);
+
+ $this->assertSame(
+ 'grep -a abc 10',
+ $oCmd->escapedCmd(),
+ 'no escaping needed, chained'
+ );
+
+ $oCmd = new \Nominatim\Shell('grep');
+ $oCmd->addParams();
+ $oCmd->addParams(null);
+ $oCmd->addParams('');
+
+ $this->assertEmpty($oCmd->aParams);
+ $this->assertSame('grep', $oCmd->escapedCmd(), 'empty params');
+
+ $oCmd = new \Nominatim\Shell('echo', '-n', 0);
+ $this->assertSame(
+ 'echo -n 0',
+ $oCmd->escapedCmd(),
+ 'zero param'
+ );
+
+ $oCmd = new \Nominatim\Shell('/path with space/do.php');
+ $oCmd->addParams('-a', ' b ');
+ $oCmd->addParams('--flag');
+ $oCmd->addParams('two words');
+ $oCmd->addParams('v=1');
+
+ $this->assertSame(
+ "'/path with space/do.php' -a ' b ' --flag 'two words' 'v=1'",
+ $oCmd->escapedCmd(),
+ 'escape whitespace'
+ );
+
+ $oCmd = new \Nominatim\Shell('grep');
+ $oCmd->addParams(';', '|more&', '2>&1');
+
+ $this->assertSame(
+ "grep ';' '|more&' '2>&1'",
+ $oCmd->escapedCmd(),
+ 'escape shell characters'
+ );
+ }
+
+ public function testaddEnvPair()
+ {
+ $oCmd = new \Nominatim\Shell('date');
+
+ $oCmd->addEnvPair('one', 'two words')
+ ->addEnvPair('null', null)
+ ->addEnvPair(null, 'null')
+ ->addEnvPair('empty', '')
+ ->addEnvPair('', 'empty');
+
+ $this->assertEquals(
+ array('one' => 'two words', 'empty' => ''),
+ $oCmd->aEnv
+ );
+
+ $oCmd->addEnvPair('one', 'overwrite');
+ $this->assertEquals(
+ array('one' => 'overwrite', 'empty' => ''),
+ $oCmd->aEnv
+ );
+ }
+
+ public function testClone()
+ {
+ $oCmd = new \Nominatim\Shell('wc', '-l', 'file.txt');
+ $oCmd2 = clone $oCmd;
+ $oCmd->addParams('--flag');
+ $oCmd2->addParams('--flag2');
+
+ $this->assertSame(
+ "wc -l 'file.txt' --flag",
+ $oCmd->escapedCmd()
+ );
+
+ $this->assertSame(
+ "wc -l 'file.txt' --flag2",
+ $oCmd2->escapedCmd()
+ );
+ }
+
+ public function testRun()
+ {
+ $oCmd = new \Nominatim\Shell('echo');
+
+ $this->assertSame(0, $oCmd->run());
+
+ // var_dump($sStdout);
+ }
+}
namespace Nominatim;
-require_once('../../lib/Status.php');
-require_once('DB.php');
+require_once(CONST_BasePath.'/lib/DB.php');
+require_once(CONST_BasePath.'/lib/Status.php');
-use Exception;
class StatusTest extends \PHPUnit\Framework\TestCase
{
-
public function testNoDatabaseGiven()
{
- $this->setExpectedException(Exception::class, 'No database', 700);
+ $this->expectException(\Exception::class);
+ $this->expectExceptionMessage('No database');
+ $this->expectExceptionCode(700);
$oDB = null;
$oStatus = new Status($oDB);
public function testNoDatabaseConnectionFail()
{
- $this->setExpectedException(Exception::class, 'No database', 700);
+ $this->expectException(\Exception::class);
+ $this->expectExceptionMessage('Database connection failed');
+ $this->expectExceptionCode(700);
- // causes 'Non-static method should not be called statically, assuming $this from incompatible context'
- // failure on travis
- // $oDB = \DB::connect('', false); // returns a DB_Error instance
+ $oDbStub = $this->getMockBuilder(Nominatim\DB::class)
+ ->setMethods(array('connect'))
+ ->getMock();
- $oDB = new \DB_Error;
- $oStatus = new Status($oDB);
- $this->assertEquals('No database', $oStatus->status());
+ $oDbStub->method('connect')
+ ->will($this->returnCallback(function () {
+ throw new \Nominatim\DatabaseError('psql connection problem', 500, null, 'unknown database');
+ }));
- $oDB = null;
- $oStatus = new Status($oDB);
+
+ $oStatus = new Status($oDbStub);
$this->assertEquals('No database', $oStatus->status());
}
public function testModuleFail()
{
- $this->setExpectedException(Exception::class, 'Module call failed', 702);
+ $this->expectException(\Exception::class);
+ $this->expectExceptionMessage('Module call failed');
+ $this->expectExceptionCode(702);
// stub has getOne method but doesn't return anything
- $oDbStub = $this->getMock(\DB::class, array('getOne'));
+ $oDbStub = $this->getMockBuilder(Nominatim\DB::class)
+ ->setMethods(array('connect', 'getOne'))
+ ->getMock();
$oStatus = new Status($oDbStub);
$this->assertNull($oStatus->status());
public function testWordIdQueryFail()
{
- $this->setExpectedException(Exception::class, 'No value', 704);
+ $this->expectException(\Exception::class);
+ $this->expectExceptionMessage('No value');
+ $this->expectExceptionCode(704);
- $oDbStub = $this->getMock(\DB::class, array('getOne'));
+ $oDbStub = $this->getMockBuilder(Nominatim\DB::class)
+ ->setMethods(array('connect', 'getOne'))
+ ->getMock();
// return no word_id
$oDbStub->method('getOne')
public function testOK()
{
- $oDbStub = $this->getMock(\DB::class, array('getOne'));
+ $oDbStub = $this->getMockBuilder(Nominatim\DB::class)
+ ->setMethods(array('connect', 'getOne'))
+ ->getMock();
$oDbStub->method('getOne')
->will($this->returnCallback(function ($sql) {
public function testDataDate()
{
- $oDbStub = $this->getMock(\DB::class, array('getOne'));
+ $oDbStub = $this->getMockBuilder(Nominatim\DB::class)
+ ->setMethods(array('getOne'))
+ ->getMock();
$oDbStub->method('getOne')
->willReturn(1519430221);
namespace Nominatim;
-@define('CONST_BasePath', '../../');
+require_once(CONST_BasePath.'/lib/TokenList.php');
-require_once '../../lib/db.php';
-require_once '../../lib/cmd.php';
-require_once '../../lib/TokenList.php';
class TokenTest extends \PHPUnit\Framework\TestCase
{
- protected function setUp()
+ protected function setUp(): void
{
- $this->oNormalizer = $this->getMock(\MockNormalizer::class, array('transliterate'));
+ $this->oNormalizer = $this->getMockBuilder(\MockNormalizer::class)
+ ->setMethods(array('transliterate'))
+ ->getMock();
$this->oNormalizer->method('transliterate')
->will($this->returnCallback(function ($text) {
return strtolower($text);
{
$this->expectOutputRegex('/<p><tt>/');
- $oDbStub = $this->getMock(\DB::class, array('getAll'));
+ $oDbStub = $this->getMockBuilder(Nominatim\DB::class)
+ ->setMethods(array('getAll', 'getDBQuotedList'))
+ ->getMock();
+
+ $oDbStub->method('getDBQuotedList')
+ ->will($this->returnCallback(function ($aVals) {
+ return array_map(function ($sVal) {
+ return "'".$sVal."'";
+ }, $aVals);
+ }));
+
+
$oDbStub->method('getAll')
->will($this->returnCallback(function ($sql) {
$aResults = array();
<?php
+ @define('CONST_BasePath', '../..');
+ @define('CONST_Debug', true);
+ @define('CONST_NoAccessControl', false);
--- /dev/null
+[{"place_id":194663412,
+ "osm_type":null,
+ "osm_id":null,
+ "name":{"name": "10 Downing Street", "name:en": "10 Downing Street", "name:es": "10 de Downing Street", "name:he": "דאונינג 10", "name:ko": "다우닝 가 10번지", "name:zh": "唐寧街10號"},
+ "class":"tourism",
+ "type":"attraction",
+ "admin_level":null,
+ "fromarea":true,
+ "isaddress":true,
+ "rank_address":29,
+ "distance":0,
+ "localname":"10 Downing Street"},
+{"place_id":194663412,
+ "osm_type":null,
+ "osm_id":null,
+ "name":{"ref": "10"},
+ "class":"place",
+ "type":"house_number",
+ "admin_level":null,
+ "fromarea":true,
+ "isaddress":true,
+ "rank_address":28,
+ "distance":0,
+ "localname":"10"},
+{"place_id":68310941,
+ "osm_type":"W",
+ "osm_id":4244999,
+ "name":{"name": "Downing Street"},
+ "class":"highway",
+ "type":"residential",
+ "admin_level":15,
+ "fromarea":true,
+ "isaddress":true,
+ "rank_address":26,
+ "distance":0,
+ "localname":"Downing Street"},
+{"place_id":16037318,
+ "osm_type":"N",
+ "osm_id":1653239257,
+ "name":{"name": "St. James's"},
+ "class":"place",
+ "type":"neighbourhood",
+ "admin_level":15,
+ "fromarea":true,
+ "isaddress":true,
+ "rank_address":22,
+ "distance":0.00982435489434447,
+ "localname":"St. James's"},
+{"place_id":51691981,
+ "osm_type":"N",
+ "osm_id":3937587633,
+ "name":{"name": "St Clement Danes"},
+ "class":"place",
+ "type":"neighbourhood",
+ "admin_level":15,
+ "fromarea":true,
+ "isaddress":false,
+ "rank_address":22,
+ "distance":0.0128768181947227,
+ "localname":"St Clement Danes"},
+{"place_id":22208313,
+ "osm_type":"N",
+ "osm_id":2290086954,
+ "name":{"name": "Covent Garden"},
+ "class":"place",
+ "type":"suburb",
+ "admin_level":15,
+ "fromarea":true,
+ "isaddress":true,
+ "rank_address":20,
+ "distance":0.00935748249317067,
+ "localname":"Covent Garden"},
+{"place_id":21742712,
+ "osm_type":"N",
+ "osm_id":2288030397,
+ "name":{"name": "Millbank"},
+ "class":"place",
+ "type":"suburb",
+ "admin_level":15,
+ "fromarea":true,
+ "isaddress":false,
+ "rank_address":20,
+ "distance":0.0106525181285902,
+ "localname":"Millbank"},
+{"place_id":122775,
+ "osm_type":"N",
+ "osm_id":26745371,
+ "name":{"name": "St Giles"},
+ "class":"place",
+ "type":"suburb",
+ "admin_level":15,
+ "fromarea":true,
+ "isaddress":false,
+ "rank_address":20,
+ "distance":0.0136188357358441,
+ "localname":"St Giles"},
+{"place_id":134882,
+ "osm_type":"N",
+ "osm_id":27553719,
+ "name":{"name": "Lambeth"},
+ "class":"place",
+ "type":"suburb",
+ "admin_level":15,
+ "fromarea":true,
+ "isaddress":false,
+ "rank_address":20,
+ "distance":0.0093308163978298,
+ "localname":"Lambeth"},
+{"place_id":194276676,
+ "osm_type":"R",
+ "osm_id":51781,
+ "name":{"name": "City of Westminster", "name:be": "Вэстмінстэр", "name:cy": "San Steffan", "name:en": "Westminster", "name:he": "וסטמינסטר", "name:ru": "Вестминстер"},
+ "class":"place",
+ "type":"city",
+ "admin_level":8,
+ "fromarea":true,
+ "isaddress":true,
+ "rank_address":16,
+ "distance":0.0340909562148044,
+ "localname":"Westminster"},
+{"place_id":195398522,
+ "osm_type":"N",
+ "osm_id":107775,
+ "name":{"name": "London", "name:ab": "Лондан", "name:af": "Londen", "name:am": "ለንደን", "name:an": "Londres", "name:ar": "لندن", "name:ba": "Лондон", "name:be": "Лондан", "name:bg": "Лондон", "name:bn": "লন্ডন", "name:bo": "ལོན་ཊོན།", "name:br": "Londrez", "name:ca": "Londres", "name:co": "Londra", "name:cs": "Londýn", "name:cu": "Лондонъ", "name:cv": "Лондон", "name:cy": "Llundain", "name:de": "London", "name:el": "Λονδίνο", "name:en": "London", "name:eo": "Londono", "name:es": "Londres", "name:eu": "Londres", "name:fa": "لندن", "name:fi": "Lontoo", "name:fr": "Londres", "name:fy": "Londen", "name:ga": "Londain", "name:gd": "Lunnainn", "name:gl": "Londres - London", "name:gn": "Londye", "name:gu": "લંડન", "name:gv": "Lunnin", "name:he": "לונדון", "name:hi": "लंदन", "name:ht": "Lonn", "name:hu": "London", "name:hy": "Լոնդոն", "name:is": "Lundúnir", "name:it": "Londra", "name:ja": "ロンドン", "name:ka": "ლონდონი", "name:kk": "Лондон", "name:kn": "ಲಂಡನ್", "name:ko": "런던", "name:ku": "London", "name:kv": "Лондон", "name:kw": "Loundres", "name:ky": "Лондон", "name:la": "Londinium", "name:li": "Londe", "name:ln": "Londoni", "name:lo": "ລອນດອນ", "name:lt": "Londonas", "name:lv": "Londona", "name:mi": "Rānana", "name:mk": "Лондон", "name:ml": "ലണ്ടൻ", "name:mn": "Лондон", "name:mr": "लंडन", "name:mt": "Londra", "name:my": "လန်ဒန်မြို့", "name:ne": "लण्डन", "name:nl": "Londen", "name:no": "London", "name:oc": "Londres", "name:or": "ଲଣ୍ଡନ", "name:os": "Лондон", "name:pl": "Londyn", "name:ps": "لندن", "name:pt": "Londres", "name:rm": "Londra", "name:ro": "Londra", "name:ru": "Лондон", "name:sa": "लन्डन्", "name:sc": "Londra", "name:si": "ලන්ඩන්", "name:sk": "Londýn", "name:sq": "Londra", "name:sr": "Лондон", "name:sv": "London", "name:ta": "இலண்டன்", "name:te": "లండన్", "name:tg": "Лондон", "name:th": "ลอนดอน", "name:tl": "Londres", "name:tr": "Londra", "name:tt": "Лондон", "name:uk": "Лондон", "name:ur": "لندن", "name:vi": "Luân Đôn", "name:wo": "Londar", "name:yi": "לאנדאן", "name:yo": "Lọndọnu", "name:zh": "倫敦", "name:zu": "ILondon", "name:ang": "Lunden", "name:arc": "ܠܘܢܕܘܢ", "name:arz": "لندن", "name:ast": "Londres", "name:bcl": "Londres", "name:cdo": "Lùng-dŭng", "name:ckb": "لەندەن", "name:diq": "Londra", "name:eml": "Lòndra", "name:ext": "Londri", "name:frp": "Londres", "name:gan": "倫敦", "name:haw": "Lākana", "name:ilo": "Londres", "name:jbo": "london", "name:koi": "Лондон", "name:krc": "Лондон", "name:lad": "Londra", "name:lbe": "Лондон", "name:lez": "Лондон", "name:lij": "Londra", "name:lmo": "Lundra", "name:mhr": "Лондон", "name:mrj": "Лондон", "name:mwl": "Londres", "name:mzn": "لندن", "name:nah": "Londres", "name:nap": "Londra", "name:new": "लण्डन", "name:nrm": "Londres", "name:pcd": "Londe", "name:pms": "Londra", "name:pnb": "لندن", "name:pnt": "Λονδίνο", "name:rue": "Лондон", "name:sah": "Лондон", "name:scn": "Londra", "name:sco": "Lunnon", "name:szl": "Lůndůn", "name:tet": "Londres", "name:tpi": "Landen", "name:tzl": "Londra", "name:udm": "Лондон", "name:vec": "Łondra", "name:vls": "Londn", "name:wuu": "伦敦", "name:xmf": "ლონდონი", "name:yue": "倫敦", "name:zea": "Londen", "name:nds-nl": "Londen", "name:bat-smg": "Londons", "name:roa-rup": "Londra", "name:roa-tara": "Londre", "name:be-tarask": "Лёндан", "name:zh_pinyin": "Lúndūn", "name:zh-classical": "倫敦", "name:zh-simplified": "伦敦", "name:zh-traditional": "倫敦"},
+ "class":"place",
+ "type":"city",
+ "admin_level":2,
+ "fromarea":true,
+ "isaddress":false,
+ "rank_address":16,
+ "distance":0.00412384196971048,
+ "localname":"London"},
+{"place_id":193774423,
+ "osm_type":"R",
+ "osm_id":65606,
+ "name":{"name": "London", "name:be": "Лондан", "name:ca": "Londres", "name:el": "Λονδίνο", "name:en": "London", "name:eo": "Londono", "name:es": "Londres", "name:fa": "لندن", "name:fi": "Lontoo", "name:fr": "Londres", "name:fy": "Londen", "name:gl": "Londres", "name:hi": "लंदन", "name:lt": "Londonas", "name:nl": "Londen", "name:pl": "Londyn", "name:pt": "Londres", "name:ru": "Лондон", "name:uk": "Лондон", "name:vi": "Luân Đôn", "name:zh": "伦敦", "int_name": "London", "name:szl": "Lůndůn", "name:tzl": "Londra", "name:be-tarask": "Лёндан"},
+ "class":"place",
+ "type":"city",
+ "admin_level":6,
+ "fromarea":true,
+ "isaddress":true,
+ "rank_address":12,
+ "distance":0.0172243361058611,
+ "localname":"London"},
+{"place_id":194000080,
+ "osm_type":"R",
+ "osm_id":175342,
+ "name":{"name": "Greater London", "name:be": "Вялікі Лондан", "name:de": "Groß-London", "name:en": "Greater London", "name:fr": "Grand Londres", "name:lt": "Didysis Londonas", "name:ru": "Большой Лондон", "name:uk": "Великий Лондон", "official_name": "Greater London (incl. City of London)", "name:be-tarask": "Вялікі Лёндан"},
+ "class":"boundary",
+ "type":"administrative",
+ "admin_level":5,
+ "fromarea":true,
+ "isaddress":true,
+ "rank_address":10,
+ "distance":0.0172532381571105,
+ "localname":"Greater London"},
+{"place_id":194325361,
+ "osm_type":"R",
+ "osm_id":58447,
+ "name":{"name": "England", "name:be": "Англія", "name:br": "Bro-Saoz", "name:ca": "Anglaterra", "name:cs": "Anglie", "name:cy": "Lloegr", "name:de": "England", "name:el": "Αγγλία", "name:en": "England", "name:eo": "Anglujo", "name:es": "Inglaterra", "name:fi": "Englanti", "name:fr": "Angleterre", "name:fy": "Ingelân", "name:ga": "Sasana", "name:gd": "Sasainn", "name:gv": "Sostyn", "name:he": "אנגליה", "name:hu": "Anglia", "name:ia": "Anglaterra", "name:io": "Anglia", "name:it": "Inghilterra", "name:la": "Anglia", "name:lt": "Anglija", "name:nl": "Engeland", "name:pl": "Anglia", "name:pt": "Inglaterra", "name:ru": "Англия", "name:sk": "Anglicko", "name:sv": "England", "name:tr": "İngiltere", "name:uk": "Англія", "name:vi": "Anh", "name:vo": "Linglän", "name:zh": "英格蘭", "name:hsb": "Jendźelska", "name:nds": "England", "name:tok": "ma Inli", "name:tzl": "Anglatzara", "alt_name:eo": "Anglio", "alt_name:ia": "Anglia", "old_name:vi": "Anh Quốc", "alt_name:nds": "Ingland", "name:be-tarask": "Ангельшчына", "name:zh-classical": "英格蘭", "name:zh-simplified": "英格兰", "name:zh-traditional": "英格蘭"},
+ "class":"boundary",
+ "type":"administrative",
+ "admin_level":4,
+ "fromarea":true,
+ "isaddress":true,
+ "rank_address":8,
+ "distance":1.75192967136328,
+ "localname":"England"},
+{"place_id":null,
+ "osm_type":null,
+ "osm_id":null,
+ "name":{"ref": "SW1A 2AA"},
+ "class":"place",
+ "type":"postcode",
+ "admin_level":null,
+ "fromarea":true,
+ "isaddress":true,
+ "rank_address":5,
+ "distance":0,
+ "localname":"SW1A 2AA"},
+{"place_id":40715006,
+ "osm_type":"N",
+ "osm_id":3055075992,
+ "name":{"ref": "SW1A 2AQ"},
+ "class":"place",
+ "type":"postcode",
+ "admin_level":15,
+ "fromarea":true,
+ "isaddress":false,
+ "rank_address":5,
+ "distance":0.00172905579146705,
+ "localname":"SW1A 2AQ"},
+{"place_id":194354400,
+ "osm_type":"R",
+ "osm_id":62149,
+ "name":{"name": "United Kingdom", "name:ab": "Британиа Ду", "name:af": "Verenigde Koninkryk", "name:ak": "United Kingdom", "name:am": "ዩናይትድ ኪንግደም", "name:an": "Reino Unito", "name:ar": "المملكة المتحدة", "name:az": "Böyük Britaniya", "name:ba": "Бөйөк Британия", "name:be": "Вялікабрытанія", "name:bg": "Обединено кралство Великобритания и Северна Ирландия", "name:bi": "Unaeted Kingdom", "name:bm": "Angilɛtɛri", "name:bn": "যুক্তরাজ্য", "name:bo": "དབྱིན་ཇི་མཉམ་འབྲེལ།", "name:br": "Rouantelezh-Unanet", "name:bs": "Ujedinjeno Kraljevstvo Velike Britanije i Sjeverne Irske", "name:ca": "Regne Unit", "name:ce": "Йоккха Британи", "name:co": "Regnu Unitu", "name:cs": "Spojené království", "name:cu": "Вєлика Британїꙗ", "name:cv": "Аслă Британи", "name:cy": "Deyrnas Unedig", "name:da": "Storbritannien", "name:de": "Vereinigtes Königreich", "name:dv": "ޔުނައިޓެޑް ކިންގްޑަމް", "name:dz": "ཡུ་ནའི་ཊེཊ་ཀིང་ཌམ", "name:ee": "United Kingdom", "name:el": "Ηνωμένο Βασίλειο", "name:en": "United Kingdom", "name:eo": "Britujo", "name:es": "Reino Unido", "name:et": "Suurbritannia", "name:eu": "Erresuma Batua", "name:fa": "بریتانیا", "name:ff": "Laamateeri Rentundi", "name:fi": "Yhdistynyt kuningaskunta", "name:fo": "Stóra Bretland", "name:fr": "Royaume-Uni", "name:fy": "Feriene Keninkryk", "name:ga": "An Ríocht Aontaithe", "name:gd": "An Rìoghachd Aonaichte", "name:gl": "Reino Unido", "name:gn": "Tavetã Joaju", "name:gu": "યુનાઇટેડ કિંગડમ", "name:gv": "Reeriaght Unnaneysit", "name:ha": "Birtaniya", "name:he": "הממלכה המאוחדת", "name:hi": "यूनाइटेड किंगडम", "name:hr": "Ujedinjeno Kraljevstvo", "name:ht": "Wayòm Ini", "name:hu": "Egyesült Királyság", "name:hy": "Միացյալ Թագավորություն", "name:ia": "Regno Unite", "name:id": "Britania Raya", "name:ie": "Reyatu Unit", "name:ig": "Obodoézè Nà Ofú", "name:ii": "ꑱꇩ", "name:io": "Unionita Rejio", "name:is": "Bretland", "name:it": "Regno Unito", "name:ja": "イギリス", "name:jv": "Britania Raya", "name:ka": "გაერთიანებული სამეფო", "name:kg": "Royaume-Uni", "name:ki": "Ngeretha", "name:kk": "Ұлыбритания", "name:kl": "Tuluit Nunaat", "name:km": "រាជាណាចក្ររួម", "name:kn": "ಯುನೈಟೆಡ್ ಕಿಂಗ್ಡಂ", "name:ko": "영국", "name:ks": "یُنایٹِڑ کِنٛگڈَم", "name:ku": "Keyaniya Yekbûyî", "name:kv": "Ыджыд Британия", "name:kw": "Ruwvaneth Unys", "name:ky": "Улуу Британия жана Түндүк Ирландия", "name:la": "Britanniarum Regnum", "name:lb": "Groussbritannien an Nordirland", "name:lg": "Bungereza", "name:li": "Vereineg Keuninkriek", "name:ln": "Ingɛlɛ́tɛlɛ", "name:lo": "ສະຫະລາດຊະອານາຈັກ", "name:lt": "Jungtinė Karalystė", "name:lv": "Apvienotā Karaliste", "name:mg": "Fanjakana Mitambatra", "name:mi": "Kīngitanga Kotahi", "name:mk": "Обединето Кралство", "name:ml": "യുണൈറ്റഡ് കിങ്ഡം", "name:mn": "Их Британи", "name:mr": "युनायटेड किंग्डम", "name:ms": "United Kingdom", "name:mt": "Renju Unit", "name:my": "ယူနိုက်တက်ကင်းဒမ်းနိုင်ငံ", "name:na": "Ingerand", "name:ne": "संयुक्त अधिराज्य", "name:nl": "Verenigd Koninkrijk", "name:nn": "Storbritannia", "name:no": "Storbritannia", "name:nv": "Tótaʼ Dinéʼiʼ Bikéyah", "name:oc": "Reialme Unit", "name:or": "ଯୁକ୍ତରାଜ୍ୟ", "name:os": "Стыр Британи", "name:pa": "ਸੰਯੁਕਤ ਬਾਦਸ਼ਾਹੀ", "name:pl": "Wielka Brytania", "name:ps": "بريتانيا", "name:pt": "Reino Unido", "name:qu": "Hukllachasqa Qhapaq Suyu", "name:rm": "Reginavel Unì", "name:rn": "Ubwongereza", "name:ro": "Regatul Unit al Marii Britanii și al Irlandei de Nord", "name:ru": "Великобритания", "name:rw": "Ubwongereza", "name:sa": "संयुक्त अधिराज्य", "name:sc": "Rennu Auniadu", "name:se": "Ovttastuvvan gonagasriika", "name:sg": "Ködörögbïä--Ôko", "name:sh": "Ujedinjeno Kraljevstvo", "name:si": "එක්සත් රාජධානිය", "name:sk": "Spojené kráľovstvo", "name:sl": "Združeno kraljestvo Velike Britanije in Severne Irske", "name:sn": "United Kingdom", "name:so": "Midowga boqortooyada Britan", "name:sq": "Mbretëria e Bashkuar e Britanisë dhe Irlandës së Veriut", "name:sr": "Уједињено Краљевство", "name:ss": "United Kingdom", "name:su": "Britania", "name:sv": "Storbritannien", "name:sw": "Ufalme wa Muungano", "name:ta": "ஐக்கிய இராச்சியம்", "name:te": "యునైటెడ్ కింగ్డమ్", "name:tg": "Подшоҳии Муттаҳида", "name:th": "สหราชอาณาจักร", "name:ti": "እንግሊዝ", "name:tl": "Nagkakaisang Kaharian", "name:to": "Pilitānia", "name:tr": "Birleşik Krallık", "name:tt": "Бөекбритания", "name:tw": "United Kingdom", "name:ty": "Paratāne", "name:ug": "بۈيۈك بېرىتانىيە", "name:uk": "Велика Британія", "name:ur": "برطانیہ", "name:uz": "Birlashgan Qirollik", "name:vi": "Vương quốc Anh", "name:vo": "Regän Pebalöl", "name:wo": "Nguur-Yu-Bennoo", "name:yi": "פאראייניגטע קעניגרייך", "name:yo": "Ilẹ̀ọba Aṣọ̀kan", "name:za": "Yinghgoz", "name:zh": "英國", "name:zu": "Umbuso Ohlangeneyo", "alt_name": "United Kingdom; UK; Britain; Great Britain", "int_name": "United Kingdom", "name:als": "Vereinigtes Königreich", "name:ang": "Geāned Cynerīce", "name:arc": "ܡܠܟܘܬܐ ܡܚܝܕܬܐ", "name:arz": "المملكه المتحده", "name:ast": "Reinu Xuníu", "name:bar": "Vaeinigts Kinireich", "name:bcl": "Reyno Unido", "name:bjn": "Britania Raya", "name:bpy": "তিলপারাজ্য", "name:bug": "United Kingdom", "name:bxr": "Нэгдсэн Вант Улс", "name:cdo": "Ĭng-guók", "name:ceb": "Hiniusang Gingharian", "name:chr": "ᎡᎵᏏᎯ", "name:chy": "United Kingdom", "name:ckb": "شانشینی یەکگرتوو", "name:crh": "Büyük Britaniya", "name:csb": "Wiôlgô Britanijô", "name:diq": "Qraliya Yewbiyayiye", "name:dsb": "Wjelika Britaniska", "name:eml": "Régn Unî", "name:ext": "Réinu Uniu", "name:frp": "Royômo-Uni", "name:frr": "Feriind Kiningrik", "name:fur": "Ream Unît", "name:gag": "Büük Britaniya", "name:gan": "英國", "name:hak": "Yîn-koet", "name:haw": "Aupuni Mōʻī Hui Pū ʻia", "name:hif": "United Kingdom", "name:hsb": "Zjednoćene kralestwo", "name:ilo": "Nagkaykaysa a Pagarian", "name:jbo": "ritygu'e", "name:kab": "Legliz", "name:kbd": "Британиэшхуэ", "name:koi": "Ыджыт Бритму", "name:krc": "Уллу Британия", "name:ksh": "Jrußbritannie", "name:lad": "Reyno Unido", "name:lez": "ЧIехибритания", "name:lfn": "Rena Unida", "name:lij": "Regno Unïo", "name:lmo": "Regn Ünì", "name:ltg": "Lelbrytaneja", "name:mhr": "Ушымо Королевстве", "name:mrj": "Кого Британи", "name:mwl": "Reino Ounido", "name:mzn": "بریتانیا", "name:nah": "Tlacetilīlli Huēyitlahtohcāyōtl", "name:nap": "Gran Vretagna", "name:nds": "Vereenigt Königriek vun Grootbritannien un Noordirland", "name:nov": "Unionati Regia", "name:nrm": "Rouoyaume Unni", "name:pag": "Reino Unido", "name:pam": "Pisanmetung a Ka-arian", "name:pap": "Reino Uni", "name:pcd": "Roéyôme-Uni", "name:pih": "Yunitid Kingdum", "name:pms": "Regn Unì", "name:pnb": "برطانیہ", "name:pnt": "Ηνωμένο Βασίλειο", "name:rmy": "Phandlo Thagaripen la Bare Britaniyako thai le Nordutne Irlandesko", "name:rue": "Велика Брітанія", "name:sah": "Холбоhуктаах Хоруоллук", "name:scn": "Regnu Unitu", "name:sco": "Unitit Kinrick", "name:srn": "Ingriskondre", "name:stq": "Fereeniged Köönichriek fon Groot-Britannien un Noudirlound", "name:szl": "Wjelgo Brytańijo", "name:tet": "Reinu Naklibur", "name:tok": "ma Juke", "name:tpi": "Yunaitet Kingdom", "name:tzl": "Regipäts Viensiçat", "name:udm": "Великобритания", "name:vec": "Regno Unìo", "name:vep": "Sur' Britanii", "name:vls": "Verênigd Keunienkryk", "name:war": "Reino Unido", "name:wuu": "英国", "name:xal": "Ик Бритишин болн Ар Гәәлгүдин Ниицәтә Нутг", "name:xmf": "გოართოიანაფილი ომაფე", "name:yue": "英國", "name:zea": "Vereênigd Konienkriek", "name:zh_py": "Yingguo", "short_name": "UK", "alt_name:eo": "Britio", "alt_name:sr": "УК;У.К.", "alt_name:vi": "Vương quốc Liên hiệp Anh", "name:nds-nl": "Verienigd Keuninkriek", "name:zh_pyt": "Yīngguó", "name:bat-smg": "Jongtėnė Karalīstė", "name:cbk-zam": "Reinos Unidos de Gran Britania y Norte Irelandia", "name:fiu-vro": "Ütiskuningriik", "name:roa-rup": "Britania Mari", "name:roa-tara": "Regne Aunìte", "official_name": "United Kingdom of Great Britain and Northern Ireland", "short_name:el": "ΗΒ", "short_name:vo": "Britän", "name:be-tarask": "Вялікабрытанія", "name:zh-min-nan": "Liân-ha̍p Ông-kok", "official_name:be": "Злучанае Каралеўства Вялікабрытаніі і Паўночнай Ірландыі", "official_name:br": "Rouantelezh Unanet Breizh-Veur ha Norzhiwerzhon", "official_name:ca": "Regne Unit de Gran Bretanya i Irlanda del Nord", "official_name:cs": "Spojené království Velké Británie a Severního Irska", "official_name:de": "Vereinigtes Königreich Großbritannien und Nordirland", "official_name:el": "Ηνωμένο Βασίλειο της Μεγάλης Βρετανίας και της Βόρειας Ιρλανδίας", "official_name:en": "United Kingdom of Great Britain and Northern Ireland", "official_name:eo": "Unuiĝinta Reĝlando de Granda Britujo kaj Nord-Irlando", "official_name:es": "Reino Unido de Gran Bretaña", "official_name:et": "Suurbritannia ja Põhja-Iiri Ühendkuningriik", "official_name:fr": "Royaume-Uni de Grande-Bretagne et d'Irlande du Nord", "official_name:hr": "Ujedinjeno Kraljevstvo Velike Britanije i Sjeverne Irske", "official_name:id": "Perserikatan Kerajaan Britania Raya dan Irlandia Utara", "official_name:it": "Regno Unito di Gran Bretagna e Irlanda del Nord", "official_name:ja": "グレートブリテン及び北アイルランド連合王国", "official_name:ku": "Keyaniya Yekbûyî ya Brîtaniya Mezin û Bakurê Îrlandê", "official_name:lb": "Vereenegt Kinnekräich vu Groussbritannien an Nordirland", "official_name:no": "Det forente kongeriket Storbritannia og Nord-Irland", "official_name:pl": "Zjednoczone Królestwo Wielkiej Brytanii i Irlandii Północnej", "official_name:pt": "Reino Unido da Grã-Bretanha e Irlanda do Norte", "official_name:ru": "Соединённое королевство Великобритании и Северной Ирландии", "official_name:sk": "Spojené kráľovstvo Veľkej Británie a Severného Írska", "official_name:sl": "Združeno kraljestvo Velike Britanije in Severne Irske", "official_name:sr": "Уједињено Краљевство Велике Британије и Северне Ирске", "official_name:sv": "Förenade konungariket Storbritannien och Nordirland", "official_name:vi": "Vương quốc Liên hiệp Anh và Bắc Ireland", "name:abbreviation": "UK", "name:zh-classical": "英國", "official_name:scn": "Regnu Unitu di Gran Britagna e Irlanna dû Nord", "name:zh-simplified": "英国", "name:zh-traditional": "英國"},
+ "class":"place",
+ "type":"country",
+ "admin_level":2,
+ "fromarea":true,
+ "isaddress":true,
+ "rank_address":4,
+ "distance":4.56060933645498,
+ "localname":"United Kingdom"},
+{"place_id":null,
+ "osm_type":null,
+ "osm_id":null,
+ "name":{"ref": "gb"},
+ "class":"place",
+ "type":"country_code",
+ "admin_level":null,
+ "fromarea":true,
+ "isaddress":false,
+ "rank_address":4,
+ "distance":0,
+ "localname":"gb"}
+]
\ No newline at end of file
convertWarningsToExceptions="true"
processIsolation="false"
stopOnFailure="false"
- syntaxCheck="true"
- bootstrap="test/php/bootstrap.php"
+ bootstrap="./bootstrap.php"
+ beStrictAboutTestsThatDoNotTestAnything="true"
>
<php>
</php>
<testsuites>
<testsuite name="Nominatim PHP Test Suite">
- <directory>./test/php/Nominatim</directory>
+ <directory>./Nominatim</directory>
</testsuite>
</testsuites>
<filter>
+++ /dev/null
-#!@PHP_BIN@ -Cq
-<?php
-
-require_once(dirname(dirname(__FILE__)).'/settings/settings.php');
-require_once(CONST_BasePath.'/lib/init-cmd.php');
-ini_set('memory_limit', '800M');
-
-$aCMDOptions
- = array(
- 'Manage service blocks / restrictions',
- array('help', 'h', 0, 1, 0, 0, false, 'Show Help'),
- array('quiet', 'q', 0, 1, 0, 0, 'bool', 'Quiet output'),
- array('verbose', 'v', 0, 1, 0, 0, 'bool', 'Verbose output'),
- array('list', 'l', 0, 1, 0, 0, 'bool', 'List recent blocks'),
- array('delete', 'd', 0, 1, 0, 0, 'bool', 'Clear recent blocks list'),
- array('flush', '', 0, 1, 0, 0, 'bool', 'Flush all blocks / stats'),
- );
-getCmdOpt($_SERVER['argv'], $aCMDOptions, $aResult, true, true);
-
-$m = getBucketMemcache();
-if (!$m) {
- echo "ERROR: Bucket memcache is not configured\n";
- exit;
-}
-
-if ($aResult['list']) {
- $iCurrentSleeping = $m->get('sleepCounter');
- echo "\n Sleeping blocks count: $iCurrentSleeping\n";
-
- $aBlocks = getBucketBlocks();
- echo "\n";
- printf(" %-40s | %12s | %7s | %13s | %31s | %8s\n", 'Key', 'Total Blocks', 'Current', 'Still Blocked', 'Last Block Time', 'Sleeping');
- printf(" %'--40s-|-%'-12s-|-%'-7s-|-%'-13s-|-%'-31s-|-%'-8s\n", '', '', '', '', '', '');
- foreach ($aBlocks as $sKey => $aDetails) {
- printf(
- " %-40s | %12s | %7s | %13s | %31s | %8s\n",
- $sKey,
- $aDetails['totalBlocks'],
- (int)$aDetails['currentBucketSize'],
- $aDetails['currentlyBlocked']?'Y':'N',
- date('r', $aDetails['lastBlockTimestamp']),
- $aDetails['isSleeping']?'Y':'N'
- );
- }
- echo "\n";
-}
-
-if ($aResult['delete']) {
- $m->set('sleepCounter', 0);
- clearBucketBlocks();
-}
-
-if ($aResult['flush']) {
- $m->flush();
-}
--- /dev/null
+<?php
+
+require_once(CONST_BasePath.'/lib/init-cmd.php');
+
+$term_colors = array(
+ 'green' => "\033[92m",
+ 'red' => "\x1B[31m",
+ 'normal' => "\033[0m"
+);
+
+$print_success = function ($message = 'OK') use ($term_colors) {
+ echo $term_colors['green'].$message.$term_colors['normal']."\n";
+};
+
+$print_fail = function ($message = 'Failed') use ($term_colors) {
+ echo $term_colors['red'].$message.$term_colors['normal']."\n";
+};
+
+
+$oDB = new Nominatim\DB;
+
+
+function isReverseOnlyInstallation()
+{
+ global $oDB;
+ return !$oDB->tableExists('search_name');
+}
+
+
+echo 'Checking database got created ... ';
+if ($oDB->checkConnection()) {
+ $print_success();
+} else {
+ $print_fail();
+ echo <<< END
+ Hints:
+ * Is the database server started?
+ * Check the CONST_Database_DSN variable in build/settings/local.php
+ * Try connecting to the database with the same settings
+
+END;
+ exit(1);
+}
+
+
+echo 'Checking nominatim.so module installed ... ';
+$sStandardWord = $oDB->getOne("SELECT make_standard_name('a')");
+if ($sStandardWord === 'a') {
+ $print_success();
+} else {
+ $print_fail();
+ echo <<< END
+ The Postgresql extension nominatim.so was not found in the database.
+ Hints:
+ * Check the output of the CMmake/make installation step
+ * Does nominatim.so exist?
+ * Does nominatim.so exist on the database server?
+ * Can nominatim.so be accessed by the database user?
+
+END;
+ exit(1);
+}
+
+echo 'Checking place table ... ';
+if ($oDB->tableExists('place')) {
+ $print_success();
+} else {
+ $print_fail();
+ echo <<< END
+ * The import didn't finish.
+ Hints:
+ * Check the output of the utils/setup.php you ran.
+ Usually the osm2pgsql step failed. Check for errors related to
+ * the file you imported not containing any places
+ * harddrive full
+ * out of memory (RAM)
+ * osm2pgsql killed by other scripts, for consuming to much memory
+
+END;
+ exit(1);
+}
+
+
+
+echo 'Checking indexing status ... ';
+$iUnindexed = $oDB->getOne('SELECT count(*) FROM placex WHERE indexed_status > 0');
+if ($iUnindexed == 0) {
+ $print_success();
+} else {
+ $print_fail();
+ echo <<< END
+ The indexing didn't finish. There is still $iUnindexed places. See the
+ question 'Can a stopped/killed import process be resumed?' in the
+ troubleshooting guide.
+
+END;
+ exit(1);
+}
+
+echo "Search index creation\n";
+$aExpectedIndices = array(
+ // sql/indices.src.sql
+ 'idx_word_word_id',
+ 'idx_place_addressline_address_place_id',
+ 'idx_placex_rank_search',
+ 'idx_placex_rank_address',
+ 'idx_placex_pendingsector',
+ 'idx_placex_parent_place_id',
+ 'idx_placex_geometry_reverse_lookuppoint',
+ 'idx_placex_geometry_reverse_lookuppolygon',
+ 'idx_placex_geometry_reverse_placenode',
+ 'idx_location_area_country_place_id',
+ 'idx_osmline_parent_place_id',
+ 'idx_osmline_parent_osm_id',
+ 'idx_place_osm_unique',
+ 'idx_postcode_id',
+ 'idx_postcode_postcode'
+);
+if (!isReverseOnlyInstallation()) {
+ $aExpectedIndices = array_merge($aExpectedIndices, array(
+ // sql/indices_search.src.sql
+ 'idx_search_name_nameaddress_vector',
+ 'idx_search_name_name_vector',
+ 'idx_search_name_centroid'
+ ));
+}
+
+foreach ($aExpectedIndices as $sExpectedIndex) {
+ echo "Checking index $sExpectedIndex ... ";
+ if ($oDB->indexExists($sExpectedIndex)) {
+ $print_success();
+ } else {
+ $print_fail();
+ echo <<< END
+ Hints:
+ * Rerun the setup.php --create-search-indices step
+
+END;
+ exit(1);
+ }
+}
+
+echo 'Checking search indices are valid ... ';
+$sSQL = <<< END
+ SELECT relname
+ FROM pg_class, pg_index
+ WHERE pg_index.indisvalid = false
+ AND pg_index.indexrelid = pg_class.oid;
+END;
+$aInvalid = $oDB->getCol($sSQL);
+if (empty($aInvalid)) {
+ $print_success();
+} else {
+ $print_fail();
+ echo <<< END
+ At least one index is invalid. That can happen, e.g. when index creation was
+ disrupted and later restarted. You should delete the affected indices and
+ run the index stage of setup again.
+ See the question 'Can a stopped/killed import process be resumed?' in the
+ troubleshooting guide.
+ Affected indices:
+END;
+ echo join(', ', $aInvalid) . "\n";
+ exit(1);
+}
+
+
+
+if (CONST_Use_US_Tiger_Data) {
+ echo 'Checking TIGER table exists ... ';
+ if ($oDB->tableExists('location_property_tiger')) {
+ $print_success();
+ } else {
+ $print_fail();
+ echo <<< END
+ Table 'location_property_tiger' does not exist. Run the TIGER data
+ import again.
+
+END;
+ exit(1);
+ }
+}
+
+
+
+
+exit(0);
-#!/usr/bin/python
+#!/usr/bin/env python3
import sys
from osmium.replication import server
-#!@PHP_BIN@ -Cq
<?php
-require_once(dirname(dirname(__FILE__)).'/settings/settings.php');
require_once(CONST_BasePath.'/lib/init-cmd.php');
ini_set('memory_limit', '800M');
);
getCmdOpt($_SERVER['argv'], $aCMDOptions, $aCMDResult, true, true);
-include(CONST_InstallPath.'/settings/phrase_settings.php');
+include(CONST_Phrase_Config);
if (true) {
$sURL = 'https://wiki.openstreetmap.org/wiki/Special:Export/Nominatim/Country_Codes';
-#!@PHP_BIN@ -Cq
<?php
// Script to extract structured city and street data
// from a running nominatim instance as CSV data
- require_once(dirname(dirname(__FILE__)).'/settings/settings.php');
require_once(CONST_BasePath.'/lib/init-cmd.php');
require_once(CONST_BasePath.'/lib/ParameterParser.php');
ini_set('memory_limit', '800M');
'path' => 27
);
- $oDB =& getDB();
+ $oDB = new Nominatim\DB();
+ $oDB->connect();
if (isset($aCMDResult['output-type'])) {
if (!isset($aRankmap[$aCMDResult['output-type']])) fail('unknown output-type: '.$aCMDResult['output-type']);
$oParams = new Nominatim\ParameterParser();
if (!isset($aCMDResult['language'])) $aCMDResult['language'] = 'xx';
$aLangPrefOrder = $oParams->getPreferredLanguages($aCMDResult['language']);
- $sLanguagePrefArraySQL = 'ARRAY['.join(',', array_map('getDBQuoted', $aLangPrefOrder)).']';
+ $sLanguagePrefArraySQL = $oDB->getArraySQL($oDB->getDBQuotedList($aLangPrefOrder));
// output formatting: build up a lookup table that maps address ranks to columns
$aColumnMapping = array();
$sPlacexSQL .= ' and rank_address = '.$iOutputRank;
if (isset($aCMDResult['restrict-to-country'])) {
- $sPlacexSQL .= ' and country_code = '.getDBQuoted($aCMDResult['restrict-to-country']);
+ $sPlacexSQL .= ' and country_code = '.$oDB->getDBQuoted($aCMDResult['restrict-to-country']);
}
// restriction to parent place id
$sOsmId = $aCMDResult['restrict-to-osm-relation'];
}
if ($sOsmType) {
- $sSQL = 'select place_id from placex where';
- $sSQL .= ' osm_type = '.getDBQuoted($sOsmType);
- $sSQL .= ' and osm_id = '.$sOsmId;
- $sParentId = $oDB->getOne($sSQL);
- if (PEAR::isError($sParentId)) fail(pg_last_error($oDB->connection));
+ $sSQL = 'select place_id from placex where osm_type = :osm_type and osm_id = :osm_id';
+ $sParentId = $oDB->getOne($sSQL, array('osm_type' => $sOsmType, 'osm_id' => $sOsmId));
if (!$sParentId) fail('Could not find place '.$sOsmType.' '.$sOsmId);
}
if ($sParentId) {
// Iterate over placeids
// to get further hierarchical information
//var_dump($sPlacexSQL);
- $aRes =& $oDB->query($sPlacexSQL);
- if (PEAR::isError($aRes)) fail(pg_last_error($oDB->connection));
+ $oResults = $oDB->getQueryStatement($sPlacexSQL);
$fOutstream = fopen('php://output', 'w');
- while ($aRes->fetchInto($aRow)) {
- //var_dump($aRow);
+ while ($aRow = $oResults->fetch()) {
+ //var_dump($aRow);
$iPlaceID = $aRow['place_id'];
- $sSQL = "select rank_address,get_name_by_language(name,$sLanguagePrefArraySQL) as localname from get_addressdata($iPlaceID, -1)";
+ $sSQL = "select rank_address,get_name_by_language(name,$sLanguagePrefArraySQL) as localname from get_addressdata(:place_id, -1)";
$sSQL .= ' WHERE isaddress';
$sSQL .= ' order by rank_address desc,isaddress desc';
- $aAddressLines = $oDB->getAll($sSQL);
- if (PEAR::IsError($aAddressLines)) fail(pg_last_error($oDB->connection));
-
+ $aAddressLines = $oDB->getAll($sSQL, array('place_id' => $iPlaceID));
$aOutput = array_fill(0, $iNumCol, '');
// output address parts
$sSQL = 'select array_agg(px.postcode) from placex px join place_addressline pa ';
$sSQL .= 'on px.place_id = pa.address_place_id ';
$sSQL .= 'where pa.cached_rank_address in (5,11) ';
- $sSQL .= 'and pa.place_id in (select place_id from place_addressline where address_place_id in ('.substr($aRow['place_ids'], 1, -1).')) ';
+ $sSQL .= 'and pa.place_id in (select place_id from place_addressline where address_place_id in (:first_place_id)) ';
$sSQL .= 'group by postcode order by count(*) desc limit 1';
- $sRes = $oDB->getOne($sSQL);
- if (PEAR::IsError($sRes)) fail(pg_last_error($oDB->connection));
+ $sRes = $oDB->getOne($sSQL, array('first_place_id' => substr($aRow['place_ids'], 1, -1)));
+
$aOutput[$aColumnMapping['postcode']] = substr($sRes, 1, -1);
} else {
$aOutput[$aColumnMapping['postcode']] = $aRow['postcode'];
+++ /dev/null
-#!/usr/bin/php -Cq
-<?php
-
-require_once(dirname(dirname(__FILE__)).'/settings/settings.php');
-require_once(CONST_BasePath.'/lib/init-cmd.php');
-ini_set('memory_limit', '800M');
-
-$aCMDOptions
- = array(
- 'Create and setup nominatim search system',
- array('help', 'h', 0, 1, 0, 0, false, 'Show Help'),
- array('quiet', 'q', 0, 1, 0, 0, 'bool', 'Quiet output'),
- array('verbose', 'v', 0, 1, 0, 0, 'bool', 'Verbose output'),
-
- array('create-tables', '', 0, 1, 0, 0, 'bool', 'Create wikipedia tables'),
- array('parse-articles', '', 0, 1, 0, 0, 'bool', 'Parse wikipedia articles'),
- array('link', '', 0, 1, 0, 0, 'bool', 'Try to link to existing OSM ids'),
- );
-getCmdOpt($_SERVER['argv'], $aCMDOptions, $aCMDResult, true, true);
-
-/*
-$sTestPageText = <<<EOD
-{{Coord|47|N|2|E|type:country_region:FR|display=title}}
-{{ Infobox Amusement park
-| name = Six Flags Great Adventure
-| image = [[File:SixFlagsGreatAdventure logo.png]]
-| caption = Six Flags Great Adventure logo
-| location = [[Jackson, New Jersey|Jackson]]
-| location2 = New Jersey
-| location3 = United States
-| address = 1 Six Flags Boulevard<ref name="drivedir"/>
-| season = March/April through October/November
-| opening_date = July 1, 1974
-| previous_names = Great Adventure
-| area_acre = 2200
-| rides = 45 park admission rides
-| coasters = 12
-| water_rides = 2
-| owner = [[Six Flags]]
-| general_manager =
-| homepage = [http://www.sixflags.com/parks/greatadventure/ Six Flags Great Adventure]
-}}
-EOD;
-var_dump(_templatesToProperties(_parseWikipediaContent($sTestPageText)));
-exit;
-//| coordinates = {{Coord|40|08|16.65|N|74|26|26.69|W|region:US-NJ_type:landmark|display=inline,title}}
-*/
-/*
-
- $a = array();
- $a[] = 'test';
-
- $oDB &= getDB();
-
- if ($aCMDResult['drop-tables'])
- {
- $oDB->query('DROP TABLE wikipedia_article');
- $oDB->query('DROP TABLE wikipedia_link');
- }
-*/
-
-if ($aCMDResult['create-tables']) {
- $sSQL = <<<'EOD'
-CREATE TABLE wikipedia_article (
- language text NOT NULL,
- title text NOT NULL,
- langcount integer,
- othercount integer,
- totalcount integer,
- lat double precision,
- lon double precision,
- importance double precision,
- title_en text,
- osm_type character(1),
- osm_id bigint,
- infobox_type text,
- population bigint,
- website text
-);
- $oDB->query($sSQL);
-
- $oDB->query("SELECT AddGeometryColumn('wikipedia_article', 'location', 4326, 'GEOMETRY', 2)");
-
- $sSQL = <<<'EOD'
-CREATE TABLE wikipedia_link (
- from_id INTEGER,
- to_name text
- );
-EOD;
- $oDB->query($sSQL);
-}
-
-
-function degreesAndMinutesToDecimal($iDegrees, $iMinutes = 0, $fSeconds = 0, $sNSEW = 'N')
-{
- $sNSEW = strtoupper($sNSEW);
- return ($sNSEW == 'S' || $sNSEW == 'W'?-1:1) * ((float)$iDegrees + (float)$iMinutes/60 + (float)$fSeconds/3600);
-}
-
-
-function _parseWikipediaContent($sPageText)
-{
- $sPageText = str_replace("\n", ' ', $sPageText);
- $sPageText = preg_replace('#<!--.*?-->#m', '', $sPageText);
- $sPageText = preg_replace('#<math>.*?<\\/math>#m', '', $sPageText);
-
- $aPageText = preg_split('#({{|}}|\\[\\[|\\]\\]|[|])#', $sPageText, -1, PREG_SPLIT_DELIM_CAPTURE);
-
- $aPageProperties = array();
- $sPageBody = '';
- $aTemplates = array();
- $aLinks = array();
-
- $aTemplateStack = array();
- $aState = array('body');
- foreach ($aPageText as $i => $sPart) {
- switch ($sPart) {
- case '{{':
- array_unshift($aTemplateStack, array('', array()));
- array_unshift($aState, 'template');
- break;
- case '}}':
- if ($aState[0] == 'template' || $aState[0] == 'templateparam') {
- $aTemplate = array_shift($aTemplateStack);
- array_shift($aState);
-
- $aTemplates[] = $aTemplate;
- }
- break;
- case '[[':
- $sLinkPage = '';
- $sLinkSyn = '';
- array_unshift($aState, 'link');
- break;
- case ']]':
- if ($aState[0] == 'link' || $aState[0] == 'linksynonim') {
- if (!$sLinkSyn) $sLinkSyn = $sLinkPage;
- if (substr($sLinkPage, 0, 6) == 'Image:') $sLinkSyn = substr($sLinkPage, 6);
-
- $aLinks[] = array($sLinkPage, $sLinkSyn);
-
- array_shift($aState);
- switch ($aState[0]) {
- case 'template':
- $aTemplateStack[0][0] .= trim($sPart);
- break;
- case 'templateparam':
- $aTemplateStack[0][1][0] .= $sLinkSyn;
- break;
- case 'link':
- $sLinkPage .= trim($sPart);
- break;
- case 'linksynonim':
- $sLinkSyn .= $sPart;
- break;
- case 'body':
- $sPageBody .= $sLinkSyn;
- break;
- default:
- var_dump($aState, $sPageName, $aTemplateStack, $sPart, $aPageText);
- fail('unknown state');
- }
- }
- break;
- case '|':
- if ($aState[0] == 'template' || $aState[0] == 'templateparam') {
- // Create a new template paramater
- $aState[0] = 'templateparam';
- array_unshift($aTemplateStack[0][1], '');
- }
- if ($aState[0] == 'link') $aState[0] = 'linksynonim';
- break;
- default:
- switch ($aState[0]) {
- case 'template':
- $aTemplateStack[0][0] .= trim($sPart);
- break;
- case 'templateparam':
- $aTemplateStack[0][1][0] .= $sPart;
- break;
- case 'link':
- $sLinkPage .= trim($sPart);
- break;
- case 'linksynonim':
- $sLinkSyn .= $sPart;
- break;
- case 'body':
- $sPageBody .= $sPart;
- break;
- default:
- var_dump($aState, $aPageText);
- fail('unknown state');
- }
- break;
- }
- }
- return $aTemplates;
-}
-
-function _templatesToProperties($aTemplates)
-{
- $aPageProperties = array();
- foreach ($aTemplates as $iTemplate => $aTemplate) {
- $aParams = array();
- foreach (array_reverse($aTemplate[1]) as $iParam => $sParam) {
- if (($iPos = strpos($sParam, '=')) === false) {
- $aParams[] = trim($sParam);
- } else {
- $aParams[trim(substr($sParam, 0, $iPos))] = trim(substr($sParam, $iPos+1));
- }
- }
- $aTemplates[$iTemplate][1] = $aParams;
- if (!isset($aPageProperties['sOfficialName']) && isset($aParams['official_name']) && $aParams['official_name']) $aPageProperties['sOfficialName'] = $aParams['official_name'];
- if (!isset($aPageProperties['iPopulation']) && isset($aParams['population']) && $aParams['population'] && preg_match('#^[0-9.,]+#', $aParams['population'])) {
- $aPageProperties['iPopulation'] = (int)str_replace(array(',', '.'), '', $aParams['population']);
- }
- if (!isset($aPageProperties['iPopulation']) && isset($aParams['population_total']) && $aParams['population_total'] && preg_match('#^[0-9.,]+#', $aParams['population_total'])) {
- $aPageProperties['iPopulation'] = (int)str_replace(array(',', '.'), '', $aParams['population_total']);
- }
- if (!isset($aPageProperties['iPopulation']) && isset($aParams['population_urban']) && $aParams['population_urban'] && preg_match('#^[0-9.,]+#', $aParams['population_urban'])) {
- $aPageProperties['iPopulation'] = (int)str_replace(array(',', '.'), '', $aParams['population_urban']);
- }
- if (!isset($aPageProperties['iPopulation']) && isset($aParams['population_estimate']) && $aParams['population_estimate'] && preg_match('#^[0-9.,]+#', $aParams['population_estimate'])) {
- $aPageProperties['iPopulation'] = (int)str_replace(array(',', '.'), '', $aParams['population_estimate']);
- }
- if (!isset($aPageProperties['sWebsite']) && isset($aParams['website']) && $aParams['website']) {
- if (preg_match('#^\\[?([^ \\]]+)[^\\]]*\\]?$#', $aParams['website'], $aMatch)) {
- $aPageProperties['sWebsite'] = $aMatch[1];
- if (strpos($aPageProperties['sWebsite'], ':/'.'/') === false) {
- $aPageProperties['sWebsite'] = 'http:/'.'/'.$aPageProperties['sWebsite'];
- }
- }
- }
- if (!isset($aPageProperties['sTopLevelDomain']) && isset($aParams['cctld']) && $aParams['cctld']) {
- $aPageProperties['sTopLevelDomain'] = str_replace(array('[', ']', '.'), '', $aParams['cctld']);
- }
-
- if (!isset($aPageProperties['sInfoboxType']) && strtolower(substr($aTemplate[0], 0, 7)) == 'infobox') {
- $aPageProperties['sInfoboxType'] = trim(substr($aTemplate[0], 8));
- // $aPageProperties['aInfoboxParams'] = $aParams;
- }
-
- // Assume the first template with lots of params is the type (fallback for infobox)
- if (!isset($aPageProperties['sPossibleInfoboxType']) && count($aParams) > 10) {
- $aPageProperties['sPossibleInfoboxType'] = trim($aTemplate[0]);
- // $aPageProperties['aInfoboxParams'] = $aParams;
- }
-
- // do we have a lat/lon
- if (!isset($aPageProperties['fLat'])) {
- if (isset($aParams['latd']) && isset($aParams['longd'])) {
- $aPageProperties['fLat'] = degreesAndMinutesToDecimal($aParams['latd'], @$aParams['latm'], @$aParams['lats'], @$aParams['latNS']);
- $aPageProperties['fLon'] = degreesAndMinutesToDecimal($aParams['longd'], @$aParams['longm'], @$aParams['longs'], @$aParams['longEW']);
- }
- if (isset($aParams['lat_degrees']) && isset($aParams['lat_degrees'])) {
- $aPageProperties['fLat'] = degreesAndMinutesToDecimal($aParams['lat_degrees'], @$aParams['lat_minutes'], @$aParams['lat_seconds'], @$aParams['lat_direction']);
- $aPageProperties['fLon'] = degreesAndMinutesToDecimal($aParams['long_degrees'], @$aParams['long_minutes'], @$aParams['long_seconds'], @$aParams['long_direction']);
- }
- if (isset($aParams['latitude']) && isset($aParams['longitude'])) {
- if (preg_match('#[0-9.]+#', $aParams['latitude']) && preg_match('#[0-9.]+#', $aParams['longitude'])) {
- $aPageProperties['fLat'] = (float)$aParams['latitude'];
- $aPageProperties['fLon'] = (float)$aParams['longitude'];
- }
- }
- if (strtolower($aTemplate[0]) == 'coord') {
- if (isset($aParams[3]) && (strtoupper($aParams[3]) == 'N' || strtoupper($aParams[3]) == 'S')) {
- $aPageProperties['fLat'] = degreesAndMinutesToDecimal($aParams[0], $aParams[1], $aParams[2], $aParams[3]);
- $aPageProperties['fLon'] = degreesAndMinutesToDecimal($aParams[4], $aParams[5], $aParams[6], $aParams[7]);
- } elseif (isset($aParams[0]) && isset($aParams[1]) && isset($aParams[2]) && (strtoupper($aParams[2]) == 'N' || strtoupper($aParams[2]) == 'S')) {
- $aPageProperties['fLat'] = degreesAndMinutesToDecimal($aParams[0], $aParams[1], 0, $aParams[2]);
- $aPageProperties['fLon'] = degreesAndMinutesToDecimal($aParams[3], $aParams[4], 0, $aParams[5]);
- } elseif (isset($aParams[0]) && isset($aParams[1]) && (strtoupper($aParams[1]) == 'N' || strtoupper($aParams[1]) == 'S')) {
- $aPageProperties['fLat'] = (strtoupper($aParams[1]) == 'N'?1:-1) * (float)$aParams[0];
- $aPageProperties['fLon'] = (strtoupper($aParams[3]) == 'E'?1:-1) * (float)$aParams[2];
- } elseif (isset($aParams[0]) && is_numeric($aParams[0]) && isset($aParams[1]) && is_numeric($aParams[1])) {
- $aPageProperties['fLat'] = (float)$aParams[0];
- $aPageProperties['fLon'] = (float)$aParams[1];
- }
- }
- if (isset($aParams['Latitude']) && isset($aParams['Longitude'])) {
- $aParams['Latitude'] = str_replace(' ', ' ', $aParams['Latitude']);
- $aParams['Longitude'] = str_replace(' ', ' ', $aParams['Longitude']);
- if (preg_match('#^([0-9]+)°( ([0-9]+)′)? ([NS]) to ([0-9]+)°( ([0-9]+)′)? ([NS])#', $aParams['Latitude'], $aMatch)) {
- $aPageProperties['fLat'] =
- (degreesAndMinutesToDecimal($aMatch[1], $aMatch[3], 0, $aMatch[4])
- +degreesAndMinutesToDecimal($aMatch[5], $aMatch[7], 0, $aMatch[8])) / 2;
- } elseif (preg_match('#^([0-9]+)°( ([0-9]+)′)? ([NS])#', $aParams['Latitude'], $aMatch)) {
- $aPageProperties['fLat'] = degreesAndMinutesToDecimal($aMatch[1], $aMatch[3], 0, $aMatch[4]);
- }
-
- if (preg_match('#^([0-9]+)°( ([0-9]+)′)? ([EW]) to ([0-9]+)°( ([0-9]+)′)? ([EW])#', $aParams['Longitude'], $aMatch)) {
- $aPageProperties['fLon'] =
- (degreesAndMinutesToDecimal($aMatch[1], $aMatch[3], 0, $aMatch[4])
- +degreesAndMinutesToDecimal($aMatch[5], $aMatch[7], 0, $aMatch[8])) / 2;
- } elseif (preg_match('#^([0-9]+)°( ([0-9]+)′)? ([EW])#', $aParams['Longitude'], $aMatch)) {
- $aPageProperties['fLon'] = degreesAndMinutesToDecimal($aMatch[1], $aMatch[3], 0, $aMatch[4]);
- }
- }
- }
- }
- if (isset($aPageProperties['sPossibleInfoboxType'])) {
- if (!isset($aPageProperties['sInfoboxType'])) $aPageProperties['sInfoboxType'] = '#'.$aPageProperties['sPossibleInfoboxType'];
- unset($aPageProperties['sPossibleInfoboxType']);
- }
- return $aPageProperties;
-}
-
-if (isset($aCMDResult['parse-wikipedia'])) {
- $oDB =& getDB();
- $sSQL = 'select page_title from content where page_namespace = 0 and page_id %10 = ';
- $sSQL .= $aCMDResult['parse-wikipedia'];
- $sSQL .= ' and (page_content ilike \'%{{Coord%\' or (page_content ilike \'%lat%\' and page_content ilike \'%lon%\'))';
- $aArticleNames = $oDB->getCol($sSQL);
- /* $aArticleNames = $oDB->getCol($sSQL = 'select page_title from content where page_namespace = 0
- and (page_content ilike \'%{{Coord%\' or (page_content ilike \'%lat%\'
- and page_content ilike \'%lon%\')) and page_title in (\'Virginia\')');
- */
- foreach ($aArticleNames as $sArticleName) {
- $sPageText = $oDB->getOne('select page_content from content where page_namespace = 0 and page_title = \''.pg_escape_string($sArticleName).'\'');
- $aP = _templatesToProperties(_parseWikipediaContent($sPageText));
-
- if (isset($aP['sInfoboxType'])) {
- $aP['sInfoboxType'] = preg_replace('#\\s+#', ' ', $aP['sInfoboxType']);
- $sSQL = 'update wikipedia_article set ';
- $sSQL .= 'infobox_type = \''.pg_escape_string($aP['sInfoboxType']).'\'';
- $sSQL .= ' where language = \'en\' and title = \''.pg_escape_string($sArticleName).'\';';
- $oDB->query($sSQL);
- }
- if (isset($aP['iPopulation'])) {
- $sSQL = 'update wikipedia_article set ';
- $sSQL .= 'population = \''.pg_escape_string($aP['iPopulation']).'\'';
- $sSQL .= ' where language = \'en\' and title = \''.pg_escape_string($sArticleName).'\';';
- $oDB->query($sSQL);
- }
- if (isset($aP['sWebsite'])) {
- $sSQL = 'update wikipedia_article set ';
- $sSQL .= 'website = \''.pg_escape_string($aP['sWebsite']).'\'';
- $sSQL .= ' where language = \'en\' and title = \''.pg_escape_string($sArticleName).'\';';
- $oDB->query($sSQL);
- }
- if (isset($aP['fLat']) && ($aP['fLat']!='-0' || $aP['fLon']!='-0')) {
- if (!isset($aP['sInfoboxType'])) $aP['sInfoboxType'] = '';
- echo $sArticleName.'|'.$aP['sInfoboxType'].'|'.$aP['fLat'].'|'.$aP['fLon'] ."\n";
- $sSQL = 'update wikipedia_article set ';
- $sSQL .= 'lat = \''.pg_escape_string($aP['fLat']).'\',';
- $sSQL .= 'lon = \''.pg_escape_string($aP['fLon']).'\'';
- $sSQL .= ' where language = \'en\' and title = \''.pg_escape_string($sArticleName).'\';';
- $oDB->query($sSQL);
- }
- }
-}
-
-
-function nominatimXMLStart($hParser, $sName, $aAttr)
-{
- global $aNominatRecords;
- switch ($sName) {
- case 'PLACE':
- $aNominatRecords[] = $aAttr;
- break;
- }
-}
-
-
-function nominatimXMLEnd($hParser, $sName)
-{
-}
-
-
-if (isset($aCMDResult['link'])) {
- $oDB =& getDB();
- $aWikiArticles = $oDB->getAll("select * from wikipedia_article where language = 'en' and lat is not null and osm_type is null and totalcount < 31 order by importance desc limit 200000");
-
- // If you point this script at production OSM you will be blocked
- $sNominatimBaseURL = 'http://SEVERNAME/search.php';
-
- foreach ($aWikiArticles as $aRecord) {
- $aRecord['name'] = str_replace('_', ' ', $aRecord['title']);
-
- $sURL = $sNominatimBaseURL.'?format=xml&accept-language=en';
-
- echo "\n-- ".$aRecord['name'].', '.$aRecord['infobox_type']."\n";
- $fMaxDist = 0.0000001;
- $bUnknown = false;
- switch (strtolower($aRecord['infobox_type'])) {
- case 'former country':
- continue 2;
- case 'sea':
- $fMaxDist = 60; // effectively turn it off
- $sURL .= '&viewbox='.($aRecord['lon']-$fMaxDist).','.($aRecord['lat']+$fMaxDist).','.($aRecord['lon']+$fMaxDist).','.($aRecord['lat']-$fMaxDist);
- break;
- case 'country':
- case 'island':
- case 'islands':
- case 'continent':
- $fMaxDist = 60; // effectively turn it off
- $sURL .= '&featuretype=country';
- $sURL .= '&viewbox='.($aRecord['lon']-$fMaxDist).','.($aRecord['lat']+$fMaxDist).','.($aRecord['lon']+$fMaxDist).','.($aRecord['lat']-$fMaxDist);
- break;
- case 'prefecture japan':
- $aRecord['name'] = trim(str_replace(' Prefecture', ' ', $aRecord['name']));
- // intentionally no break
- case 'state':
- case '#us state':
- case 'county':
- case 'u.s. state':
- case 'u.s. state symbols':
- case 'german state':
- case 'province or territory of canada':
- case 'indian jurisdiction':
- case 'province':
- case 'french region':
- case 'region of italy':
- case 'kommune':
- case '#australia state or territory':
- case 'russian federal subject':
- $fMaxDist = 4;
- $sURL .= '&featuretype=state';
- $sURL .= '&viewbox='.($aRecord['lon']-$fMaxDist).','.($aRecord['lat']+$fMaxDist).','.($aRecord['lon']+$fMaxDist).','.($aRecord['lat']-$fMaxDist);
- break;
- case 'protected area':
- $fMaxDist = 1;
- $sURL .= '&nearlat='.$aRecord['lat'];
- $sURL .= '&nearlon='.$aRecord['lon'];
- $sURL .= '&viewbox='.($aRecord['lon']-$fMaxDist).','.($aRecord['lat']+$fMaxDist).','.($aRecord['lon']+$fMaxDist).','.($aRecord['lat']-$fMaxDist);
- break;
- case 'settlement':
- $bUnknown = true;
- // intentionally no break
- case 'french commune':
- case 'italian comune':
- case 'uk place':
- case 'italian comune':
- case 'australian place':
- case 'german place':
- case '#geobox':
- case 'u.s. county':
- case 'municipality':
- case 'city japan':
- case 'russian inhabited locality':
- case 'finnish municipality/land area':
- case 'england county':
- case 'israel municipality':
- case 'russian city':
- case 'city':
- $fMaxDist = 0.2;
- $sURL .= '&featuretype=settlement';
- $sURL .= '&viewbox='.($aRecord['lon']-0.5).','.($aRecord['lat']+0.5).','.($aRecord['lon']+0.5).','.($aRecord['lat']-0.5);
- break;
- case 'mountain':
- case 'mountain pass':
- case 'river':
- case 'lake':
- case 'airport':
- $fMaxDist = 0.2;
- $sURL .= '&viewbox='.($aRecord['lon']-0.5).','.($aRecord['lat']+0.5).','.($aRecord['lon']+0.5).','.($aRecord['lat']-0.5);
- break;
- case 'ship begin':
- $fMaxDist = 0.1;
- $aTypes = array('wreck');
- $sURL .= '&viewbox='.($aRecord['lon']-0.01).','.($aRecord['lat']+0.01).','.($aRecord['lon']+0.01).','.($aRecord['lat']-0.01);
- $sURL .= '&nearlat='.$aRecord['lat'];
- $sURL .= '&nearlon='.$aRecord['lon'];
- break;
- case 'road':
- case 'university':
- case 'company':
- case 'department':
- $fMaxDist = 0.005;
- $sURL .= '&viewbox='.($aRecord['lon']-0.01).','.($aRecord['lat']+0.01).','.($aRecord['lon']+0.01).','.($aRecord['lat']-0.01);
- $sURL .= '&bounded=1';
- $sURL .= '&nearlat='.$aRecord['lat'];
- $sURL .= '&nearlon='.$aRecord['lon'];
- break;
- default:
- $bUnknown = true;
- $fMaxDist = 0.005;
- $sURL .= '&viewbox='.($aRecord['lon']-0.01).','.($aRecord['lat']+0.01).','.($aRecord['lon']+0.01).','.($aRecord['lat']-0.01);
- // $sURL .= "&bounded=1";
- $sURL .= '&nearlat='.$aRecord['lat'];
- $sURL .= '&nearlon='.$aRecord['lon'];
- echo '-- Unknown: '.$aRecord['infobox_type']."\n";
- break;
- }
- $sNameURL = $sURL.'&q='.urlencode($aRecord['name']);
-
- var_Dump($sNameURL);
- $sXML = file_get_contents($sNameURL);
-
- $aNominatRecords = array();
- $hXMLParser = xml_parser_create();
- xml_set_element_handler($hXMLParser, 'nominatimXMLStart', 'nominatimXMLEnd');
- xml_parse($hXMLParser, $sXML, true);
- xml_parser_free($hXMLParser);
-
- if (!isset($aNominatRecords[0])) {
- $aNameParts = preg_split('#[(,]#', $aRecord['name']);
- if (count($aNameParts) > 1) {
- $sNameURL = $sURL.'&q='.urlencode(trim($aNameParts[0]));
- var_Dump($sNameURL);
- $sXML = file_get_contents($sNameURL);
-
- $aNominatRecords = array();
- $hXMLParser = xml_parser_create();
- xml_set_element_handler($hXMLParser, 'nominatimXMLStart', 'nominatimXMLEnd');
- xml_parse($hXMLParser, $sXML, true);
- xml_parser_free($hXMLParser);
- }
- }
-
- // assume first is best/right
- for ($i = 0; $i < count($aNominatRecords); $i++) {
- $fDiff = ($aRecord['lat']-$aNominatRecords[$i]['LAT']) * ($aRecord['lat']-$aNominatRecords[$i]['LAT']);
- $fDiff += ($aRecord['lon']-$aNominatRecords[$i]['LON']) * ($aRecord['lon']-$aNominatRecords[$i]['LON']);
- $fDiff = sqrt($fDiff);
- if ($bUnknown) {
- // If it was an unknown type base it on the rank of the found result
- $iRank = (int)$aNominatRecords[$i]['PLACE_RANK'];
- if ($iRank <= 4) $fMaxDist = 2;
- elseif ($iRank <= 8) $fMaxDist = 1;
- elseif ($iRank <= 10) $fMaxDist = 0.8;
- elseif ($iRank <= 12) $fMaxDist = 0.6;
- elseif ($iRank <= 17) $fMaxDist = 0.2;
- elseif ($iRank <= 18) $fMaxDist = 0.1;
- elseif ($iRank <= 22) $fMaxDist = 0.02;
- elseif ($iRank <= 26) $fMaxDist = 0.001;
- else $fMaxDist = 0.001;
- }
- echo '-- FOUND "'.substr($aNominatRecords[$i]['DISPLAY_NAME'], 0, 50);
- echo '", '.$aNominatRecords[$i]['CLASS'].', '.$aNominatRecords[$i]['TYPE'];
- echo ', '.$aNominatRecords[$i]['PLACE_RANK'].', '.$aNominatRecords[$i]['OSM_TYPE'];
- echo " (dist:$fDiff, max:$fMaxDist)\n";
- if ($fDiff > $fMaxDist) {
- echo "-- Diff too big $fDiff (max: $fMaxDist)".$aRecord['lat'].','.$aNominatRecords[$i]['LAT'].' & '.$aRecord['lon'].','.$aNominatRecords[$i]['LON']." \n";
- } else {
- $sSQL = 'update wikipedia_article set osm_type=';
- switch ($aNominatRecords[$i]['OSM_TYPE']) {
- case 'relation':
- $sSQL .= "'R'";
- break;
- case 'way':
- $sSQL .= "'W'";
- break;
- case 'node':
- $sSQL .= "'N'";
- break;
- }
- $sSQL .= ', osm_id='.$aNominatRecords[$i]['OSM_ID']." where language = '".pg_escape_string($aRecord['language'])."' and title = '".pg_escape_string($aRecord['title'])."'";
- $oDB->query($sSQL);
- break;
- }
- }
- }
-}
--- /dev/null
+#!/bin/bash -xv
+
+# Script to set up Nominatim database for multiple countries
+
+# Steps to follow:
+
+# *) Get the pbf files from server
+
+# *) Set up sequence.state for updates
+
+# *) Merge the pbf files into a single file.
+
+# *) Setup nominatim db using 'setup.php --osm-file'
+
+# Hint:
+#
+# Use "bashdb ./update_database.sh" and bashdb's "next" command for step-by-step
+# execution.
+
+# ******************************************************************************
+
+touch2() { mkdir -p "$(dirname "$1")" && touch "$1" ; }
+
+# ******************************************************************************
+# Configuration section: Variables in this section should be set according to your requirements
+
+# REPLACE WITH LIST OF YOUR "COUNTRIES":
+
+COUNTRIES="europe/monaco europe/andorra"
+
+# SET TO YOUR NOMINATIM build FOLDER PATH:
+
+NOMINATIMBUILD="/srv/nominatim/build"
+SETUPFILE="$NOMINATIMBUILD/utils/setup.php"
+UPDATEFILE="$NOMINATIMBUILD/utils/update.php"
+
+# SET TO YOUR update FOLDER PATH:
+
+UPDATEDIR="/srv/nominatim/update"
+
+# SET TO YOUR replication server URL:
+
+BASEURL="https://download.geofabrik.de"
+DOWNCOUNTRYPOSTFIX="-latest.osm.pbf"
+
+# End of configuration section
+# ******************************************************************************
+
+COMBINEFILES="osmium merge"
+
+mkdir -p ${UPDATEDIR}
+cd ${UPDATEDIR}
+rm -rf tmp
+mkdir -p tmp
+cd tmp
+
+for COUNTRY in $COUNTRIES;
+do
+
+ echo "===================================================================="
+ echo "$COUNTRY"
+ echo "===================================================================="
+ DIR="$UPDATEDIR/$COUNTRY"
+ FILE="$DIR/configuration.txt"
+ DOWNURL="$BASEURL/$COUNTRY$DOWNCOUNTRYPOSTFIX"
+ IMPORTFILE=$COUNTRY$DOWNCOUNTRYPOSTFIX
+ IMPORTFILEPATH=${UPDATEDIR}/tmp/${IMPORTFILE}
+ FILENAME=${COUNTRY//[\/]/_}
+
+
+ touch2 $IMPORTFILEPATH
+ wget ${DOWNURL} -O $IMPORTFILEPATH
+
+ touch2 ${DIR}/sequence.state
+ pyosmium-get-changes -O $IMPORTFILEPATH -f ${DIR}/sequence.state -v
+
+ COMBINEFILES="${COMBINEFILES} ${IMPORTFILEPATH}"
+ echo $IMPORTFILE
+ echo "===================================================================="
+done
+
+
+echo "${COMBINEFILES} -o combined.osm.pbf"
+${COMBINEFILES} -o combined.osm.pbf
+
+echo "===================================================================="
+echo "Setting up nominatim db"
+${SETUPFILE} --osm-file ${UPDATEDIR}/tmp/combined.osm.pbf --all 2>&1
+
+# ${UPDATEFILE} --import-file ${UPDATEDIR}/tmp/combined.osm.pbf 2>&1
+echo "===================================================================="
\ No newline at end of file
+++ /dev/null
-#!/bin/bash
-
-psqlcmd=psql wikipedia2013
-mysql2pgsqlcmd=./mysql2pgsql.perl /dev/stdin /dev/stdout
-
-language=( "ar" "bg" "ca" "cs" "da" "de" "en" "es" "eo" "eu" "fa" "fr" "ko" "hi" "hr" "id" "it" "he" "lt" "hu" "ms" "nl" "ja" "no" "pl" "pt" "kk" "ro" "ru" "sk" "sl" "sr" "fi" "sv" "tr" "uk" "vi" "vo" "war" "zh" )
-
-# wikipedia pages and links
-echo "CREATE TABLE linkcounts (language text, title text, count integer, sumcount integer, lat double, lon double );" | $psqlcmd
-echo "CREATE TABLE wikipedia_redirect (language text, from_title text, to_title text );" | $psqlcmd
-
-for i in "${language[@]}"
-do
- wget http://dumps.wikimedia.org/${i}wiki/latest/${i}wiki-latest-page.sql.gz
- wget http://dumps.wikimedia.org/${i}wiki/latest/${i}wiki-latest-pagelinks.sql.gz
- wget http://dumps.wikimedia.org/${i}wiki/latest/${i}wiki-latest-langlinks.sql.gz
- wget http://dumps.wikimedia.org/${i}wiki/latest/${i}wiki-latest-redirect.sql.gz
-done
-
-for i in "${language[@]}"
-do
- gzip -dc ${i}wiki-latest-pagelinks.sql.gz | sed "s/\`pagelinks\`/\`${i}pagelinks\`/g" | $mysql2pgsqlcmd | $psqlcmd
- gzip -dc ${i}wiki-latest-page.sql.gz | sed "s/\`page\`/\`${i}page\`/g" | $mysql2pgsqlcmd | $psqlcmd
- gzip -dc ${i}wiki-latest-langlinks.sql.gz | sed "s/\`langlinks\`/\`${i}langlinks\`/g" | $mysql2pgsqlcmd | $psqlcmd
- gzip -dc ${i}wiki-latest-redirect.sql.gz | sed "s/\`redirect\`/\`${i}redirect\`/g" | $mysql2pgsqlcmd | $psqlcmd
-done
-
-for i in "${language[@]}"
-do
- echo "create table ${i}pagelinkcount as select pl_title as title,count(*) as count from ${i}pagelinks where pl_namespace = 0 group by pl_title;" | $psqlcmd
- echo "insert into linkcounts select '${i}',pl_title,count(*) from ${i}pagelinks where pl_namespace = 0 group by pl_title;" | $psqlcmd
- echo "insert into wikipedia_redirect select '${i}',page_title,rd_title from ${i}redirect join ${i}page on (rd_from = page_id) where page_namespace = 0 and rd_namespace = 0;" | $psqlcmd
- echo "alter table ${i}pagelinkcount add column othercount integer;" | $psqlcmd
- echo "update ${i}pagelinkcount set othercount = 0;" | $psqlcmd
- for j in "${language[@]}"
- do
- echo "update ${i}pagelinkcount set othercount = ${i}pagelinkcount.othercount + x.count from (select page_title as title,count from ${i}langlinks join ${i}page on (ll_from = page_id) join ${j}pagelinkcount on (ll_lang = '${j}' and ll_title = title)) as x where x.title = ${i}pagelinkcount.title;" | $psqlcmd
- done
- echo "insert into wikipedia_article select '${i}', title, count, othercount, count+othercount from ${i}pagelinkcount;" | $psqlcmd
-done
-
-echo "update wikipedia_article set importance = log(totalcount)/log((select max(totalcount) from wikipedia_article))" | $psqlcmd
-
-# precalculated lat,lon from dbpedia
-wget http://downloads.dbpedia.org/current/en/geo_coordinates_en.nq.bz2
-bzip2 -dc geo_coordinates_en.nq.bz2 | grep http://www.georss.org/georss/point | sed 's|<http://dbpedia.org/resource/[^>]*> *<http://www.georss.org/georss/point> "\(-\?[-0-9.E]\+\) \(-\?[-0-9.E]\+\)"@en <http://\([a-z][a-z]\).wikipedia.org/wiki/\([^#]\+\)#> .|update pagelinks set lat=\1, lon=\2 where language = '"'"'\3'"'"' and title = decode_url_part('"'"'\4'"'"');|g' | $psqlcmd
-
-# media wiki dumper
-wget https://github.com/bcollier/mwdumper/blob/master/build/mwdumper.jar
-
-# latest english wikipedia articles
-wget http://dumps.wikimedia.org/enwiki/latest/enwiki-latest-pages-articles.xml.bz2
-java -jar mwdumper.jar --format=sql:1.5 enwiki-latest-pages-articles.xml.bz2 | ./mysql2pgsql.perl /dev/stdin /dev/stdout | sed 's/"text (/text ("/g' | sed 's/"old_flags)"/"old_flags")/g' | sed 's/"revision (/revision ("/g' | sed 's/"rev_deleted)"/"rev_deleted")/g' | sed 's/"page (/page ("/g' | sed 's/"page_len)"/"page_len")/g' | sed "s/DATE_ADD(E'1970-01-01', INTERVAL UNIX_TIMESTAMP() SECOND)[+]//g" | sed 's/RAND()/0/g' | $psqlcmd
+++ /dev/null
-#!@PHP_BIN@ -Cq
-<?php
-
-require_once(dirname(dirname(__FILE__)).'/settings/settings.php');
-require_once(CONST_BasePath.'/lib/init-cmd.php');
-ini_set('memory_limit', '800M');
-
-$aCMDOptions
- = array(
- 'Create and setup nominatim search system',
- array('help', 'h', 0, 1, 0, 0, false, 'Show Help'),
- array('quiet', 'q', 0, 1, 0, 0, 'bool', 'Quiet output'),
- array('verbose', 'v', 0, 1, 0, 0, 'bool', 'Verbose output'),
-
- array('parse-tiger', '', 0, 1, 1, 1, 'realpath', 'Convert tiger edge files to nominatim sql import - datafiles from 2011 or later (source: edges directory of tiger data)'),
- );
-getCmdOpt($_SERVER['argv'], $aCMDOptions, $aCMDResult, true, true);
-
-
-if (isset($aCMDResult['parse-tiger'])) {
- if (!file_exists(CONST_Tiger_Data_Path)) mkdir(CONST_Tiger_Data_Path);
-
- $sTempDir = tempnam('/tmp', 'tiger');
- unlink($sTempDir);
- mkdir($sTempDir);
-
- foreach (glob($aCMDResult['parse-tiger'].'/tl_20??_?????_edges.zip', 0) as $sImportFile) {
- set_time_limit(30);
- preg_match('#([0-9]{5})_(.*)#', basename($sImportFile), $aMatch);
- $sCountyID = $aMatch[1];
-
- echo 'Processing '.$sCountyID."...\n";
- $sUnzipCmd = "unzip -d $sTempDir $sImportFile";
- exec($sUnzipCmd);
-
- $sShapeFilename = $sTempDir.'/'.basename($sImportFile, '.zip').'.shp';
- $sSqlFilenameTmp = $sTempDir.'/'.$sCountyID.'.sql';
- $sSqlFilename = CONST_Tiger_Data_Path.'/'.$sCountyID.'.sql';
-
- if (!file_exists($sShapeFilename)) {
- echo "Failed unzip ($sImportFile)\n";
- } else {
- $sParseCmd = CONST_BasePath.'/utils/tigerAddressImport.py '.$sShapeFilename.' '.$sSqlFilenameTmp;
- exec($sParseCmd);
- if (!file_exists($sSqlFilenameTmp)) {
- echo "Failed parse ($sImportFile)\n";
- } else {
- copy($sSqlFilenameTmp, $sSqlFilename);
- }
- }
- // Cleanup
- foreach (glob($sTempDir.'/*') as $sTmpFile) {
- unlink($sTmpFile);
- }
- }
-}
-#!/usr/bin/python
+#!/usr/bin/env python3
import osmium
import sys
-#!@PHP_BIN@ -Cq
<?php
-require_once(dirname(dirname(__FILE__)).'/settings/settings.php');
require_once(CONST_BasePath.'/lib/init-cmd.php');
require_once(CONST_BasePath.'/lib/Geocode.php');
require_once(CONST_BasePath.'/lib/ParameterParser.php');
array('verbose', 'v', 0, 1, 0, 0, 'bool', 'Verbose output'),
array('search', '', 0, 1, 1, 1, 'string', 'Search for given term or coordinate'),
+ array('country', '', 0, 1, 1, 1, 'string', 'Structured search: country'),
+ array('state', '', 0, 1, 1, 1, 'string', 'Structured search: state'),
+ array('county', '', 0, 1, 1, 1, 'string', 'Structured search: county'),
+ array('city', '', 0, 1, 1, 1, 'string', 'Structured search: city'),
+ array('street', '', 0, 1, 1, 1, 'string', 'Structured search: street'),
+ array('amenity', '', 0, 1, 1, 1, 'string', 'Structured search: amenity'),
+ array('postalcode', '', 0, 1, 1, 1, 'string', 'Structured search: postal code'),
array('accept-language', '', 0, 1, 1, 1, 'string', 'Preferred language order for showing search results'),
array('bounded', '', 0, 1, 0, 0, 'bool', 'Restrict results to given viewbox'),
);
getCmdOpt($_SERVER['argv'], $aCMDOptions, $aCMDResult, true, true);
-$oDB =& getDB();
+$oDB = new Nominatim\DB;
+$oDB->connect();
+
+if (isset($aCMDResult['nodedupe'])) $aCMDResult['dedupe'] = 'false';
+
$oParams = new Nominatim\ParameterParser($aCMDResult);
-if ($oParams->getBool('search')) {
- if (isset($aCMDResult['nodedupe'])) $aCMDResult['dedupe'] = 'false';
+$aSearchParams = array(
+ 'search',
+ 'amenity',
+ 'street',
+ 'city',
+ 'county',
+ 'state',
+ 'country',
+ 'postalcode'
+ );
- $oGeocode = new Nominatim\Geocode($oDB);
+if (!$oParams->hasSetAny($aSearchParams)) {
+ showUsage($aCMDOptions, true);
+ return 1;
+}
- $oGeocode->setLanguagePreference($oParams->getPreferredLanguages(false));
- $oGeocode->loadParamArray($oParams);
- $oGeocode->setQuery($aCMDResult['search']);
+$oGeocode = new Nominatim\Geocode($oDB);
- $aSearchResults = $oGeocode->lookup();
+$oGeocode->setLanguagePreference($oParams->getPreferredLanguages(false));
+$oGeocode->loadParamArray($oParams);
- if (version_compare(phpversion(), '5.4.0', '<')) {
- echo json_encode($aSearchResults);
- } else {
- echo json_encode($aSearchResults, JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE)."\n";
- }
+if ($oParams->getBool('search')) {
+ $oGeocode->setQuery($aCMDResult['search']);
} else {
- showUsage($aCMDOptions, true);
+ $oGeocode->setQueryFromParams($oParams);
}
+
+$aSearchResults = $oGeocode->lookup();
+
+echo json_encode($aSearchResults, JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE)."\n";
-#!@PHP_BIN@ -Cq
+#!/usr/bin/php -Cq
<?php
$sFile = 'sample.log.txt'; // Apache log file
-#!@PHP_BIN@ -Cq
<?php
-require_once(dirname(dirname(__FILE__)).'/settings/settings.php');
require_once(CONST_BasePath.'/lib/init-cmd.php');
+require_once(CONST_BasePath.'/lib/setup/SetupClass.php');
+require_once(CONST_BasePath.'/lib/setup_functions.php');
ini_set('memory_limit', '800M');
-# (long-opt, short-opt, min-occurs, max-occurs, num-arguments, num-arguments, type, help)
+use Nominatim\Setup\SetupFunctions as SetupFunctions;
+// (long-opt, short-opt, min-occurs, max-occurs, num-arguments, num-arguments, type, help)
$aCMDOptions
= array(
'Create and setup nominatim search system',
array('setup-db', '', 0, 1, 0, 0, 'bool', 'Build a blank nominatim db'),
array('import-data', '', 0, 1, 0, 0, 'bool', 'Import a osm file'),
array('osm2pgsql-cache', '', 0, 1, 1, 1, 'int', 'Cache size used by osm2pgsql'),
+ array('reverse-only', '', 0, 1, 0, 0, 'bool', 'Do not create search tables and indexes'),
array('create-functions', '', 0, 1, 0, 0, 'bool', 'Create functions'),
array('enable-diff-updates', '', 0, 1, 0, 0, 'bool', 'Turn on the code required to make diff updates work'),
array('enable-debug-statements', '', 0, 1, 0, 0, 'bool', 'Include debug warning statements in pgsql commands'),
array('create-country-names', '', 0, 1, 0, 0, 'bool', 'Create default list of searchable country names'),
array('drop', '', 0, 1, 0, 0, 'bool', 'Drop tables needed for updates, making the database readonly (EXPERIMENTAL)'),
);
+
+// $aCMDOptions passed to getCmdOpt by reference
getCmdOpt($_SERVER['argv'], $aCMDOptions, $aCMDResult, true, true);
$bDidSomething = false;
-// Check if osm-file is set and points to a valid file if --all or --import-data is given
+//*******************************************************
+// Making some sanity check:
+// Check if osm-file is set and points to a valid file
if ($aCMDResult['import-data'] || $aCMDResult['all']) {
- if (!isset($aCMDResult['osm-file'])) {
- fail('missing --osm-file for data import');
- }
-
- if (!file_exists($aCMDResult['osm-file'])) {
- fail('the path supplied to --osm-file does not exist');
- }
-
- if (!is_readable($aCMDResult['osm-file'])) {
- fail('osm-file "'.$aCMDResult['osm-file'].'" not readable');
- }
-}
-
-// by default, use all but one processor, but never more than 15.
-$iInstances = isset($aCMDResult['threads'])
- ? $aCMDResult['threads']
- : (min(16, getProcessorCount()) - 1);
-
-if ($iInstances < 1) {
- $iInstances = 1;
- warn("resetting threads to $iInstances");
+ // to remain in /lib/setup_functions.php function
+ checkInFile($aCMDResult['osm-file']);
}
-// Assume we can steal all the cache memory in the box (unless told otherwise)
-if (isset($aCMDResult['osm2pgsql-cache'])) {
- $iCacheMemory = $aCMDResult['osm2pgsql-cache'];
-} else {
- $iCacheMemory = getCacheMemoryMB();
+// osmosis init is no longer supported
+if ($aCMDResult['osmosis-init']) {
+ $bDidSomething = true;
+ echo "Command 'osmosis-init' no longer available, please use utils/update.php --init-updates.\n";
}
-$sModulePath = CONST_Database_Module_Path;
-info('module path: ' . $sModulePath);
-
-$aDSNInfo = DB::parseDSN(CONST_Database_DSN);
-if (!isset($aDSNInfo['port']) || !$aDSNInfo['port']) $aDSNInfo['port'] = 5432;
+// ******************************************************
+// instantiate Setup class
+$oSetup = new SetupFunctions($aCMDResult);
+// *******************************************************
+// go through complete process if 'all' is selected or start selected functions
if ($aCMDResult['create-db'] || $aCMDResult['all']) {
- info('Create DB');
$bDidSomething = true;
- $oDB = DB::connect(CONST_Database_DSN, false);
- if (!PEAR::isError($oDB)) {
- fail('database already exists ('.CONST_Database_DSN.')');
- }
-
- $sCreateDBCmd = 'createdb -E UTF-8 -p '.$aDSNInfo['port'].' '.$aDSNInfo['database'];
- if (isset($aDSNInfo['username']) && $aDSNInfo['username']) {
- $sCreateDBCmd .= ' -U ' . $aDSNInfo['username'];
- }
- if (isset($aDSNInfo['hostspec']) && $aDSNInfo['hostspec']) {
- $sCreateDBCmd .= ' -h ' . $aDSNInfo['hostspec'];
- }
-
- $aProcEnv = null;
- if (isset($aDSNInfo['password']) && $aDSNInfo['password']) {
- $aProcEnv = array_merge(array('PGPASSWORD' => $aDSNInfo['password']), $_ENV);
- }
-
- $result = runWithEnv($sCreateDBCmd, $aProcEnv);
- if ($result != 0) fail('Error executing external command: '.$sCreateDBCmd);
+ $oSetup->createDB();
}
+$oSetup->connect();
+
if ($aCMDResult['setup-db'] || $aCMDResult['all']) {
- info('Setup DB');
$bDidSomething = true;
-
- $oDB =& getDB();
-
- $fPostgresVersion = getPostgresVersion($oDB);
- echo 'Postgres version found: '.$fPostgresVersion."\n";
-
- if ($fPostgresVersion < 9.1) {
- fail('Minimum supported version of Postgresql is 9.1.');
- }
-
- pgsqlRunScript('CREATE EXTENSION IF NOT EXISTS hstore');
- pgsqlRunScript('CREATE EXTENSION IF NOT EXISTS postgis');
-
- // For extratags and namedetails the hstore_to_json converter is
- // needed which is only available from Postgresql 9.3+. For older
- // versions add a dummy function that returns nothing.
- $iNumFunc = chksql($oDB->getOne("select count(*) from pg_proc where proname = 'hstore_to_json'"));
-
- if ($iNumFunc == 0) {
- pgsqlRunScript("create function hstore_to_json(dummy hstore) returns text AS 'select null::text' language sql immutable");
- warn('Postgresql is too old. extratags and namedetails API not available.');
- }
-
- $fPostgisVersion = getPostgisVersion($oDB);
- echo 'Postgis version found: '.$fPostgisVersion."\n";
-
- if ($fPostgisVersion < 2.1) {
- // Functions were renamed in 2.1 and throw an annoying deprecation warning
- pgsqlRunScript('ALTER FUNCTION st_line_interpolate_point(geometry, double precision) RENAME TO ST_LineInterpolatePoint');
- pgsqlRunScript('ALTER FUNCTION ST_Line_Locate_Point(geometry, geometry) RENAME TO ST_LineLocatePoint');
- }
- if ($fPostgisVersion < 2.2) {
- pgsqlRunScript('ALTER FUNCTION ST_Distance_Spheroid(geometry, geometry, spheroid) RENAME TO ST_DistanceSpheroid');
- }
-
- $i = chksql($oDB->getOne("select count(*) from pg_user where usename = '".CONST_Database_Web_User."'"));
- if ($i == 0) {
- echo "\nERROR: Web user '".CONST_Database_Web_User."' does not exist. Create it with:\n";
- echo "\n createuser ".CONST_Database_Web_User."\n\n";
- exit(1);
- }
-
- if (!checkModulePresence()) {
- fail('error loading nominatim.so module');
- }
-
- if (!file_exists(CONST_ExtraDataPath.'/country_osm_grid.sql.gz')) {
- echo 'Error: you need to download the country_osm_grid first:';
- echo "\n wget -O ".CONST_ExtraDataPath."/country_osm_grid.sql.gz https://www.nominatim.org/data/country_grid.sql.gz\n";
- exit(1);
- }
-
- pgsqlRunScriptFile(CONST_BasePath.'/data/country_name.sql');
- pgsqlRunScriptFile(CONST_BasePath.'/data/country_naturalearthdata.sql');
- pgsqlRunScriptFile(CONST_BasePath.'/data/country_osm_grid.sql.gz');
- pgsqlRunScriptFile(CONST_BasePath.'/data/gb_postcode_table.sql');
- if (file_exists(CONST_BasePath.'/data/gb_postcode_data.sql.gz')) {
- pgsqlRunScriptFile(CONST_BasePath.'/data/gb_postcode_data.sql.gz');
- } else {
- warn('external UK postcode table not found.');
- }
- if (CONST_Use_Extra_US_Postcodes) {
- pgsqlRunScriptFile(CONST_BasePath.'/data/us_postcode.sql');
- }
-
- if ($aCMDResult['no-partitions']) {
- pgsqlRunScript('update country_name set partition = 0');
- }
-
- // the following will be needed by create_functions later but
- // is only defined in the subsequently called create_tables.
- // Create dummies here that will be overwritten by the proper
- // versions in create-tables.
- pgsqlRunScript('CREATE TABLE IF NOT EXISTS place_boundingbox ()');
- pgsqlRunScript('CREATE TYPE wikipedia_article_match AS ()', false);
+ $oSetup->setupDB();
}
+// Try accessing the C module, so we know early if something is wrong
+checkModulePresence(); // raises exception on failure
+
if ($aCMDResult['import-data'] || $aCMDResult['all']) {
- info('Import data');
$bDidSomething = true;
-
- $osm2pgsql = CONST_Osm2pgsql_Binary;
- if (!file_exists($osm2pgsql)) {
- echo "Check CONST_Osm2pgsql_Binary in your local settings file.\n";
- echo "Normally you should not need to set this manually.\n";
- fail("osm2pgsql not found in '$osm2pgsql'");
- }
-
- if (!is_null(CONST_Osm2pgsql_Flatnode_File) && CONST_Osm2pgsql_Flatnode_File) {
- $osm2pgsql .= ' --flat-nodes '.CONST_Osm2pgsql_Flatnode_File;
- }
- if (CONST_Tablespace_Osm2pgsql_Data)
- $osm2pgsql .= ' --tablespace-slim-data '.CONST_Tablespace_Osm2pgsql_Data;
- if (CONST_Tablespace_Osm2pgsql_Index)
- $osm2pgsql .= ' --tablespace-slim-index '.CONST_Tablespace_Osm2pgsql_Index;
- if (CONST_Tablespace_Place_Data)
- $osm2pgsql .= ' --tablespace-main-data '.CONST_Tablespace_Place_Data;
- if (CONST_Tablespace_Place_Index)
- $osm2pgsql .= ' --tablespace-main-index '.CONST_Tablespace_Place_Index;
- $osm2pgsql .= ' -lsc -O gazetteer --hstore --number-processes 1';
- $osm2pgsql .= ' -C '.$iCacheMemory;
- $osm2pgsql .= ' -P '.$aDSNInfo['port'];
- if (isset($aDSNInfo['username']) && $aDSNInfo['username']) {
- $osm2pgsql .= ' -U ' . $aDSNInfo['username'];
- }
- if (isset($aDSNInfo['hostspec']) && $aDSNInfo['hostspec']) {
- $osm2pgsql .= ' -H ' . $aDSNInfo['hostspec'];
- }
-
- $aProcEnv = null;
- if (isset($aDSNInfo['password']) && $aDSNInfo['password']) {
- $aProcEnv = array_merge(array('PGPASSWORD' => $aDSNInfo['password']), $_ENV);
- }
-
- $osm2pgsql .= ' -d '.$aDSNInfo['database'].' '.$aCMDResult['osm-file'];
- runWithEnv($osm2pgsql, $aProcEnv);
-
- $oDB =& getDB();
- if (!$aCMDResult['ignore-errors'] && !chksql($oDB->getRow('select * from place limit 1'))) {
- fail('No Data');
- }
+ $oSetup->importData($aCMDResult['osm-file']);
}
if ($aCMDResult['create-functions'] || $aCMDResult['all']) {
- info('Create Functions');
$bDidSomething = true;
-
- if (!checkModulePresence()) {
- fail('error loading nominatim.so module');
- }
-
- create_sql_functions($aCMDResult);
+ $oSetup->createFunctions();
}
if ($aCMDResult['create-tables'] || $aCMDResult['all']) {
- info('Create Tables');
$bDidSomething = true;
-
- $sTemplate = file_get_contents(CONST_BasePath.'/sql/tables.sql');
- $sTemplate = str_replace('{www-user}', CONST_Database_Web_User, $sTemplate);
- $sTemplate = replace_tablespace(
- '{ts:address-data}',
- CONST_Tablespace_Address_Data,
- $sTemplate
- );
- $sTemplate = replace_tablespace(
- '{ts:address-index}',
- CONST_Tablespace_Address_Index,
- $sTemplate
- );
- $sTemplate = replace_tablespace(
- '{ts:search-data}',
- CONST_Tablespace_Search_Data,
- $sTemplate
- );
- $sTemplate = replace_tablespace(
- '{ts:search-index}',
- CONST_Tablespace_Search_Index,
- $sTemplate
- );
- $sTemplate = replace_tablespace(
- '{ts:aux-data}',
- CONST_Tablespace_Aux_Data,
- $sTemplate
- );
- $sTemplate = replace_tablespace(
- '{ts:aux-index}',
- CONST_Tablespace_Aux_Index,
- $sTemplate
- );
- pgsqlRunScript($sTemplate, false);
-
- // re-run the functions
- info('Recreate Functions');
- create_sql_functions($aCMDResult);
+ $oSetup->createTables($aCMDResult['reverse-only']);
+ $oSetup->createFunctions();
+ $oSetup->createTableTriggers();
}
if ($aCMDResult['create-partition-tables'] || $aCMDResult['all']) {
- info('Create Partition Tables');
$bDidSomething = true;
-
- $sTemplate = file_get_contents(CONST_BasePath.'/sql/partition-tables.src.sql');
- $sTemplate = replace_tablespace(
- '{ts:address-data}',
- CONST_Tablespace_Address_Data,
- $sTemplate
- );
- $sTemplate = replace_tablespace(
- '{ts:address-index}',
- CONST_Tablespace_Address_Index,
- $sTemplate
- );
- $sTemplate = replace_tablespace(
- '{ts:search-data}',
- CONST_Tablespace_Search_Data,
- $sTemplate
- );
- $sTemplate = replace_tablespace(
- '{ts:search-index}',
- CONST_Tablespace_Search_Index,
- $sTemplate
- );
- $sTemplate = replace_tablespace(
- '{ts:aux-data}',
- CONST_Tablespace_Aux_Data,
- $sTemplate
- );
- $sTemplate = replace_tablespace(
- '{ts:aux-index}',
- CONST_Tablespace_Aux_Index,
- $sTemplate
- );
-
- pgsqlRunPartitionScript($sTemplate);
+ $oSetup->createPartitionTables();
}
-
if ($aCMDResult['create-partition-functions'] || $aCMDResult['all']) {
- info('Create Partition Functions');
$bDidSomething = true;
-
- $sTemplate = file_get_contents(CONST_BasePath.'/sql/partition-functions.src.sql');
-
- pgsqlRunPartitionScript($sTemplate);
+ $oSetup->createPartitionFunctions();
}
if ($aCMDResult['import-wikipedia-articles'] || $aCMDResult['all']) {
$bDidSomething = true;
- $sWikiArticlesFile = CONST_Wikipedia_Data_Path.'/wikipedia_article.sql.bin';
- $sWikiRedirectsFile = CONST_Wikipedia_Data_Path.'/wikipedia_redirect.sql.bin';
- if (file_exists($sWikiArticlesFile)) {
- info('Importing wikipedia articles');
- pgsqlRunDropAndRestore($sWikiArticlesFile);
- } else {
- warn('wikipedia article dump file not found - places will have default importance');
- }
- if (file_exists($sWikiRedirectsFile)) {
- info('Importing wikipedia redirects');
- pgsqlRunDropAndRestore($sWikiRedirectsFile);
- } else {
- warn('wikipedia redirect dump file not found - some place importance values may be missing');
- }
+ $oSetup->importWikipediaArticles();
}
-
if ($aCMDResult['load-data'] || $aCMDResult['all']) {
- info('Drop old Data');
$bDidSomething = true;
-
- $oDB =& getDB();
- if (!pg_query($oDB->connection, 'TRUNCATE word')) fail(pg_last_error($oDB->connection));
- echo '.';
- if (!pg_query($oDB->connection, 'TRUNCATE placex')) fail(pg_last_error($oDB->connection));
- echo '.';
- if (!pg_query($oDB->connection, 'TRUNCATE location_property_osmline')) fail(pg_last_error($oDB->connection));
- echo '.';
- if (!pg_query($oDB->connection, 'TRUNCATE place_addressline')) fail(pg_last_error($oDB->connection));
- echo '.';
- if (!pg_query($oDB->connection, 'TRUNCATE place_boundingbox')) fail(pg_last_error($oDB->connection));
- echo '.';
- if (!pg_query($oDB->connection, 'TRUNCATE location_area')) fail(pg_last_error($oDB->connection));
- echo '.';
- if (!pg_query($oDB->connection, 'TRUNCATE search_name')) fail(pg_last_error($oDB->connection));
- echo '.';
- if (!pg_query($oDB->connection, 'TRUNCATE search_name_blank')) fail(pg_last_error($oDB->connection));
- echo '.';
- if (!pg_query($oDB->connection, 'DROP SEQUENCE seq_place')) fail(pg_last_error($oDB->connection));
- echo '.';
- if (!pg_query($oDB->connection, 'CREATE SEQUENCE seq_place start 100000')) fail(pg_last_error($oDB->connection));
- echo '.';
-
- $sSQL = 'select distinct partition from country_name';
- $aPartitions = chksql($oDB->getCol($sSQL));
- if (!$aCMDResult['no-partitions']) $aPartitions[] = 0;
- foreach ($aPartitions as $sPartition) {
- if (!pg_query($oDB->connection, 'TRUNCATE location_road_'.$sPartition)) fail(pg_last_error($oDB->connection));
- echo '.';
- }
-
- // used by getorcreate_word_id to ignore frequent partial words
- $sSQL = 'CREATE OR REPLACE FUNCTION get_maxwordfreq() RETURNS integer AS ';
- $sSQL .= '$$ SELECT '.CONST_Max_Word_Frequency.' as maxwordfreq; $$ LANGUAGE SQL IMMUTABLE';
- if (!pg_query($oDB->connection, $sSQL)) {
- fail(pg_last_error($oDB->connection));
- }
- echo ".\n";
-
- // pre-create the word list
- if (!$aCMDResult['disable-token-precalc']) {
- info('Loading word list');
- pgsqlRunScriptFile(CONST_BasePath.'/data/words.sql');
- }
-
- info('Load Data');
- $sColumns = 'osm_type, osm_id, class, type, name, admin_level, address, extratags, geometry';
-
- $aDBInstances = array();
- $iLoadThreads = max(1, $iInstances - 1);
- for ($i = 0; $i < $iLoadThreads; $i++) {
- $aDBInstances[$i] =& getDB(true);
- $sSQL = "INSERT INTO placex ($sColumns) SELECT $sColumns FROM place WHERE osm_id % $iLoadThreads = $i";
- $sSQL .= " and not (class='place' and type='houses' and osm_type='W'";
- $sSQL .= " and ST_GeometryType(geometry) = 'ST_LineString')";
- $sSQL .= ' and ST_IsValid(geometry)';
- if ($aCMDResult['verbose']) echo "$sSQL\n";
- if (!pg_send_query($aDBInstances[$i]->connection, $sSQL)) {
- fail(pg_last_error($aDBInstances[$i]->connection));
- }
- }
- // last thread for interpolation lines
- $aDBInstances[$iLoadThreads] =& getDB(true);
- $sSQL = 'insert into location_property_osmline';
- $sSQL .= ' (osm_id, address, linegeo)';
- $sSQL .= ' SELECT osm_id, address, geometry from place where ';
- $sSQL .= "class='place' and type='houses' and osm_type='W' and ST_GeometryType(geometry) = 'ST_LineString'";
- if ($aCMDResult['verbose']) echo "$sSQL\n";
- if (!pg_send_query($aDBInstances[$iLoadThreads]->connection, $sSQL)) {
- fail(pg_last_error($aDBInstances[$iLoadThreads]->connection));
- }
-
- $bFailed = false;
- for ($i = 0; $i <= $iLoadThreads; $i++) {
- while (($hPGresult = pg_get_result($aDBInstances[$i]->connection)) !== false) {
- $resultStatus = pg_result_status($hPGresult);
- // PGSQL_EMPTY_QUERY, PGSQL_COMMAND_OK, PGSQL_TUPLES_OK,
- // PGSQL_COPY_OUT, PGSQL_COPY_IN, PGSQL_BAD_RESPONSE,
- // PGSQL_NONFATAL_ERROR and PGSQL_FATAL_ERROR
- if ($resultStatus != PGSQL_COMMAND_OK && $resultStatus != PGSQL_TUPLES_OK) {
- $resultError = pg_result_error($hPGresult);
- echo '-- error text ' . $i . ': ' . $resultError . "\n";
- $bFailed = true;
- }
- }
- }
- if ($bFailed) {
- fail('SQL errors loading placex and/or location_property_osmline tables');
- }
- echo "\n";
- info('Reanalysing database');
- pgsqlRunScript('ANALYSE');
-
- $sDatabaseDate = getDatabaseDate($oDB);
- pg_query($oDB->connection, 'TRUNCATE import_status');
- if ($sDatabaseDate === false) {
- warn('could not determine database date.');
- } else {
- $sSQL = "INSERT INTO import_status (lastimportdate) VALUES('".$sDatabaseDate."')";
- pg_query($oDB->connection, $sSQL);
- echo "Latest data imported from $sDatabaseDate.\n";
- }
+ $oSetup->loadData($aCMDResult['disable-token-precalc']);
}
if ($aCMDResult['import-tiger-data']) {
- info('Import Tiger data');
$bDidSomething = true;
-
- $sTemplate = file_get_contents(CONST_BasePath.'/sql/tiger_import_start.sql');
- $sTemplate = str_replace('{www-user}', CONST_Database_Web_User, $sTemplate);
- $sTemplate = replace_tablespace(
- '{ts:aux-data}',
- CONST_Tablespace_Aux_Data,
- $sTemplate
- );
- $sTemplate = replace_tablespace(
- '{ts:aux-index}',
- CONST_Tablespace_Aux_Index,
- $sTemplate
- );
- pgsqlRunScript($sTemplate, false);
-
- $aDBInstances = array();
- for ($i = 0; $i < $iInstances; $i++) {
- $aDBInstances[$i] =& getDB(true);
- }
-
- foreach (glob(CONST_Tiger_Data_Path.'/*.sql') as $sFile) {
- echo $sFile.': ';
- $hFile = fopen($sFile, 'r');
- $sSQL = fgets($hFile, 100000);
- $iLines = 0;
-
- while (true) {
- for ($i = 0; $i < $iInstances; $i++) {
- if (!pg_connection_busy($aDBInstances[$i]->connection)) {
- while (pg_get_result($aDBInstances[$i]->connection));
- $sSQL = fgets($hFile, 100000);
- if (!$sSQL) break 2;
- if (!pg_send_query($aDBInstances[$i]->connection, $sSQL)) fail(pg_last_error($oDB->connection));
- $iLines++;
- if ($iLines == 1000) {
- echo '.';
- $iLines = 0;
- }
- }
- }
- usleep(10);
- }
-
- fclose($hFile);
-
- $bAnyBusy = true;
- while ($bAnyBusy) {
- $bAnyBusy = false;
- for ($i = 0; $i < $iInstances; $i++) {
- if (pg_connection_busy($aDBInstances[$i]->connection)) $bAnyBusy = true;
- }
- usleep(10);
- }
- echo "\n";
- }
-
- info('Creating indexes on Tiger data');
- $sTemplate = file_get_contents(CONST_BasePath.'/sql/tiger_import_finish.sql');
- $sTemplate = str_replace('{www-user}', CONST_Database_Web_User, $sTemplate);
- $sTemplate = replace_tablespace(
- '{ts:aux-data}',
- CONST_Tablespace_Aux_Data,
- $sTemplate
- );
- $sTemplate = replace_tablespace(
- '{ts:aux-index}',
- CONST_Tablespace_Aux_Index,
- $sTemplate
- );
- pgsqlRunScript($sTemplate, false);
+ $oSetup->importTigerData();
}
if ($aCMDResult['calculate-postcodes'] || $aCMDResult['all']) {
- info('Calculate Postcodes');
$bDidSomething = true;
- $oDB =& getDB();
- if (!pg_query($oDB->connection, 'TRUNCATE location_postcode')) {
- fail(pg_last_error($oDB->connection));
- }
-
- $sSQL = 'INSERT INTO location_postcode';
- $sSQL .= ' (place_id, indexed_status, country_code, postcode, geometry) ';
- $sSQL .= "SELECT nextval('seq_place'), 1, country_code,";
- $sSQL .= " upper(trim (both ' ' from address->'postcode')) as pc,";
- $sSQL .= ' ST_Centroid(ST_Collect(ST_Centroid(geometry)))';
- $sSQL .= ' FROM placex';
- $sSQL .= " WHERE address ? 'postcode' AND address->'postcode' NOT SIMILAR TO '%(,|;)%'";
- $sSQL .= ' AND geometry IS NOT null';
- $sSQL .= ' GROUP BY country_code, pc';
-
- if (!pg_query($oDB->connection, $sSQL)) {
- fail(pg_last_error($oDB->connection));
- }
-
- if (CONST_Use_Extra_US_Postcodes) {
- // only add postcodes that are not yet available in OSM
- $sSQL = 'INSERT INTO location_postcode';
- $sSQL .= ' (place_id, indexed_status, country_code, postcode, geometry) ';
- $sSQL .= "SELECT nextval('seq_place'), 1, 'us', postcode,";
- $sSQL .= ' ST_SetSRID(ST_Point(x,y),4326)';
- $sSQL .= ' FROM us_postcode WHERE postcode NOT IN';
- $sSQL .= ' (SELECT postcode FROM location_postcode';
- $sSQL .= " WHERE country_code = 'us')";
- if (!pg_query($oDB->connection, $sSQL)) fail(pg_last_error($oDB->connection));
- }
-
- // add missing postcodes for GB (if available)
- $sSQL = 'INSERT INTO location_postcode';
- $sSQL .= ' (place_id, indexed_status, country_code, postcode, geometry) ';
- $sSQL .= "SELECT nextval('seq_place'), 1, 'gb', postcode, geometry";
- $sSQL .= ' FROM gb_postcode WHERE postcode NOT IN';
- $sSQL .= ' (SELECT postcode FROM location_postcode';
- $sSQL .= " WHERE country_code = 'gb')";
- if (!pg_query($oDB->connection, $sSQL)) fail(pg_last_error($oDB->connection));
-
- if (!$aCMDResult['all']) {
- $sSQL = "DELETE FROM word WHERE class='place' and type='postcode'";
- $sSQL .= 'and word NOT IN (SELECT postcode FROM location_postcode)';
- if (!pg_query($oDB->connection, $sSQL)) {
- fail(pg_last_error($oDB->connection));
- }
- }
- $sSQL = 'SELECT count(getorcreate_postcode_id(v)) FROM ';
- $sSQL .= '(SELECT distinct(postcode) as v FROM location_postcode) p';
-
- if (!pg_query($oDB->connection, $sSQL)) {
- fail(pg_last_error($oDB->connection));
- }
+ $oSetup->calculatePostcodes($aCMDResult['all']);
}
-if ($aCMDResult['osmosis-init']) {
+if ($aCMDResult['index'] || $aCMDResult['all']) {
$bDidSomething = true;
- echo "Command 'osmosis-init' no longer available, please use utils/update.php --init-updates.\n";
+ $oSetup->index($aCMDResult['index-noanalyse']);
}
-if ($aCMDResult['index'] || $aCMDResult['all']) {
+if ($aCMDResult['drop']) {
$bDidSomething = true;
- $sOutputFile = '';
- $sBaseCmd = CONST_InstallPath.'/nominatim/nominatim -i -d '.$aDSNInfo['database'].' -P '.$aDSNInfo['port'].' -t '.$iInstances.$sOutputFile;
- if (isset($aDSNInfo['hostspec']) && $aDSNInfo['hostspec']) {
- $sBaseCmd .= ' -H ' . $aDSNInfo['hostspec'];
- }
- if (isset($aDSNInfo['username']) && $aDSNInfo['username']) {
- $sBaseCmd .= ' -U ' . $aDSNInfo['username'];
- }
- $aProcEnv = null;
- if (isset($aDSNInfo['password']) && $aDSNInfo['password']) {
- $aProcEnv = array_merge(array('PGPASSWORD' => $aDSNInfo['password']), $_ENV);
- }
-
- info('Index ranks 0 - 4');
- $iStatus = runWithEnv($sBaseCmd.' -R 4', $aProcEnv);
- if ($iStatus != 0) {
- fail('error status ' . $iStatus . ' running nominatim!');
- }
- if (!$aCMDResult['index-noanalyse']) pgsqlRunScript('ANALYSE');
- info('Index ranks 5 - 25');
- $iStatus = runWithEnv($sBaseCmd.' -r 5 -R 25', $aProcEnv);
- if ($iStatus != 0) {
- fail('error status ' . $iStatus . ' running nominatim!');
- }
- if (!$aCMDResult['index-noanalyse']) pgsqlRunScript('ANALYSE');
- info('Index ranks 26 - 30');
- $iStatus = runWithEnv($sBaseCmd.' -r 26', $aProcEnv);
- if ($iStatus != 0) {
- fail('error status ' . $iStatus . ' running nominatim!');
- }
-
- info('Index postcodes');
- $oDB =& getDB();
- $sSQL = 'UPDATE location_postcode SET indexed_status = 0';
- if (!pg_query($oDB->connection, $sSQL)) fail(pg_last_error($oDB->connection));
+ $oSetup->drop($aCMDResult);
}
if ($aCMDResult['create-search-indices'] || $aCMDResult['all']) {
- info('Create Search indices');
$bDidSomething = true;
-
- $sTemplate = file_get_contents(CONST_BasePath.'/sql/indices.src.sql');
- $sTemplate = str_replace('{www-user}', CONST_Database_Web_User, $sTemplate);
- $sTemplate = replace_tablespace(
- '{ts:address-index}',
- CONST_Tablespace_Address_Index,
- $sTemplate
- );
- $sTemplate = replace_tablespace(
- '{ts:search-index}',
- CONST_Tablespace_Search_Index,
- $sTemplate
- );
- $sTemplate = replace_tablespace(
- '{ts:aux-index}',
- CONST_Tablespace_Aux_Index,
- $sTemplate
- );
-
- pgsqlRunScript($sTemplate);
+ $oSetup->createSearchIndices();
}
if ($aCMDResult['create-country-names'] || $aCMDResult['all']) {
- info('Create search index for default country names');
$bDidSomething = true;
-
- pgsqlRunScript("select getorcreate_country(make_standard_name('uk'), 'gb')");
- pgsqlRunScript("select getorcreate_country(make_standard_name('united states'), 'us')");
- pgsqlRunScript('select count(*) from (select getorcreate_country(make_standard_name(country_code), country_code) from country_name where country_code is not null) as x');
- pgsqlRunScript("select count(*) from (select getorcreate_country(make_standard_name(name->'name'), country_code) from country_name where name ? 'name') as x");
-
- $sSQL = 'select count(*) from (select getorcreate_country(make_standard_name(v), country_code) from (select country_code, skeys(name) as k, svals(name) as v from country_name) x where k ';
- if (CONST_Languages) {
- $sSQL .= 'in ';
- $sDelim = '(';
- foreach (explode(',', CONST_Languages) as $sLang) {
- $sSQL .= $sDelim."'name:$sLang'";
- $sDelim = ',';
- }
- $sSQL .= ')';
- } else {
- // all include all simple name tags
- $sSQL .= "like 'name:%'";
- }
- $sSQL .= ') v';
- pgsqlRunScript($sSQL);
-}
-
-if ($aCMDResult['drop']) {
- info('Drop tables only required for updates');
- // The implementation is potentially a bit dangerous because it uses
- // a positive selection of tables to keep, and deletes everything else.
- // Including any tables that the unsuspecting user might have manually
- // created. USE AT YOUR OWN PERIL.
- $bDidSomething = true;
-
- // tables we want to keep. everything else goes.
- $aKeepTables = array(
- '*columns',
- 'import_polygon_*',
- 'import_status',
- 'place_addressline',
- 'location_postcode',
- 'location_property*',
- 'placex',
- 'search_name',
- 'seq_*',
- 'word',
- 'query_log',
- 'new_query_log',
- 'spatial_ref_sys',
- 'country_name',
- 'place_classtype_*'
- );
-
- $oDB =& getDB();
- $aDropTables = array();
- $aHaveTables = chksql($oDB->getCol("SELECT tablename FROM pg_tables WHERE schemaname='public'"));
-
- foreach ($aHaveTables as $sTable) {
- $bFound = false;
- foreach ($aKeepTables as $sKeep) {
- if (fnmatch($sKeep, $sTable)) {
- $bFound = true;
- break;
- }
- }
- if (!$bFound) array_push($aDropTables, $sTable);
- }
-
- foreach ($aDropTables as $sDrop) {
- if ($aCMDResult['verbose']) echo "dropping table $sDrop\n";
- @pg_query($oDB->connection, "DROP TABLE $sDrop CASCADE");
- // ignore warnings/errors as they might be caused by a table having
- // been deleted already by CASCADE
- }
-
- if (!is_null(CONST_Osm2pgsql_Flatnode_File) && CONST_Osm2pgsql_Flatnode_File) {
- if ($aCMDResult['verbose']) echo 'deleting '.CONST_Osm2pgsql_Flatnode_File."\n";
- unlink(CONST_Osm2pgsql_Flatnode_File);
- }
+ $oSetup->createCountryNames($aCMDResult);
}
+// ******************************************************
+// If we did something, repeat the warnings
if (!$bDidSomething) {
showUsage($aCMDOptions, true);
} else {
echo "\n";
info('Setup finished.');
}
-
-
-function pgsqlRunScriptFile($sFilename)
-{
- global $aCMDResult;
- if (!file_exists($sFilename)) fail('unable to find '.$sFilename);
-
- // Convert database DSN to psql parameters
- $aDSNInfo = DB::parseDSN(CONST_Database_DSN);
- if (!isset($aDSNInfo['port']) || !$aDSNInfo['port']) $aDSNInfo['port'] = 5432;
- $sCMD = 'psql -p '.$aDSNInfo['port'].' -d '.$aDSNInfo['database'];
- if (!$aCMDResult['verbose']) {
- $sCMD .= ' -q';
- }
- if (isset($aDSNInfo['hostspec']) && $aDSNInfo['hostspec']) {
- $sCMD .= ' -h ' . $aDSNInfo['hostspec'];
- }
- if (isset($aDSNInfo['username']) && $aDSNInfo['username']) {
- $sCMD .= ' -U ' . $aDSNInfo['username'];
- }
- $aProcEnv = null;
- if (isset($aDSNInfo['password']) && $aDSNInfo['password']) {
- $aProcEnv = array_merge(array('PGPASSWORD' => $aDSNInfo['password']), $_ENV);
- }
-
- $ahGzipPipes = null;
- if (preg_match('/\\.gz$/', $sFilename)) {
- $aDescriptors = array(
- 0 => array('pipe', 'r'),
- 1 => array('pipe', 'w'),
- 2 => array('file', '/dev/null', 'a')
- );
- $hGzipProcess = proc_open('zcat '.$sFilename, $aDescriptors, $ahGzipPipes);
- if (!is_resource($hGzipProcess)) fail('unable to start zcat');
- $aReadPipe = $ahGzipPipes[1];
- fclose($ahGzipPipes[0]);
- } else {
- $sCMD .= ' -f '.$sFilename;
- $aReadPipe = array('pipe', 'r');
- }
-
- $aDescriptors = array(
- 0 => $aReadPipe,
- 1 => array('pipe', 'w'),
- 2 => array('file', '/dev/null', 'a')
- );
- $ahPipes = null;
- $hProcess = proc_open($sCMD, $aDescriptors, $ahPipes, null, $aProcEnv);
- if (!is_resource($hProcess)) fail('unable to start pgsql');
-
- // TODO: error checking
- while (!feof($ahPipes[1])) {
- echo fread($ahPipes[1], 4096);
- }
- fclose($ahPipes[1]);
-
- $iReturn = proc_close($hProcess);
- if ($iReturn > 0) {
- fail("pgsql returned with error code ($iReturn)");
- }
- if ($ahGzipPipes) {
- fclose($ahGzipPipes[1]);
- proc_close($hGzipProcess);
- }
-}
-
-function pgsqlRunScript($sScript, $bfatal = true)
-{
- global $aCMDResult;
- runSQLScript(
- $sScript,
- $bfatal,
- $aCMDResult['verbose'],
- $aCMDResult['ignore-errors']
- );
-}
-
-function pgsqlRunPartitionScript($sTemplate)
-{
- global $aCMDResult;
- $oDB =& getDB();
-
- $sSQL = 'select distinct partition from country_name';
- $aPartitions = chksql($oDB->getCol($sSQL));
- if (!$aCMDResult['no-partitions']) $aPartitions[] = 0;
-
- preg_match_all('#^-- start(.*?)^-- end#ms', $sTemplate, $aMatches, PREG_SET_ORDER);
- foreach ($aMatches as $aMatch) {
- $sResult = '';
- foreach ($aPartitions as $sPartitionName) {
- $sResult .= str_replace('-partition-', $sPartitionName, $aMatch[1]);
- }
- $sTemplate = str_replace($aMatch[0], $sResult, $sTemplate);
- }
-
- pgsqlRunScript($sTemplate);
-}
-
-function pgsqlRunRestoreData($sDumpFile)
-{
- // Convert database DSN to psql parameters
- $aDSNInfo = DB::parseDSN(CONST_Database_DSN);
- if (!isset($aDSNInfo['port']) || !$aDSNInfo['port']) $aDSNInfo['port'] = 5432;
- $sCMD = 'pg_restore -p '.$aDSNInfo['port'].' -d '.$aDSNInfo['database'].' -Fc -a '.$sDumpFile;
-
- $aDescriptors = array(
- 0 => array('pipe', 'r'),
- 1 => array('pipe', 'w'),
- 2 => array('file', '/dev/null', 'a')
- );
- $ahPipes = null;
- $hProcess = proc_open($sCMD, $aDescriptors, $ahPipes);
- if (!is_resource($hProcess)) fail('unable to start pg_restore');
-
- fclose($ahPipes[0]);
-
- // TODO: error checking
- while (!feof($ahPipes[1])) {
- echo fread($ahPipes[1], 4096);
- }
- fclose($ahPipes[1]);
-
- $iReturn = proc_close($hProcess);
-}
-
-function pgsqlRunDropAndRestore($sDumpFile)
-{
- // Convert database DSN to psql parameters
- $aDSNInfo = DB::parseDSN(CONST_Database_DSN);
- if (!isset($aDSNInfo['port']) || !$aDSNInfo['port']) $aDSNInfo['port'] = 5432;
- $sCMD = 'pg_restore -p '.$aDSNInfo['port'].' -d '.$aDSNInfo['database'].' -Fc --clean '.$sDumpFile;
- if (isset($aDSNInfo['hostspec']) && $aDSNInfo['hostspec']) {
- $sCMD .= ' -h ' . $aDSNInfo['hostspec'];
- }
- if (isset($aDSNInfo['username']) && $aDSNInfo['username']) {
- $sCMD .= ' -U ' . $aDSNInfo['username'];
- }
- $aProcEnv = null;
- if (isset($aDSNInfo['password']) && $aDSNInfo['password']) {
- $aProcEnv = array_merge(array('PGPASSWORD' => $aDSNInfo['password']), $_ENV);
- }
-
- $iReturn = runWithEnv($sCMD, $aProcEnv);
-}
-
-function passthruCheckReturn($sCmd)
-{
- $iResult = -1;
- passthru($sCmd, $iResult);
-}
-
-function replace_tablespace($sTemplate, $sTablespace, $sSql)
-{
- if ($sTablespace) {
- $sSql = str_replace($sTemplate, 'TABLESPACE "'.$sTablespace.'"', $sSql);
- } else {
- $sSql = str_replace($sTemplate, '', $sSql);
- }
-
- return $sSql;
-}
-
-function create_sql_functions($aCMDResult)
-{
- global $sModulePath;
- $sTemplate = file_get_contents(CONST_BasePath.'/sql/functions.sql');
- $sTemplate = str_replace('{modulepath}', $sModulePath, $sTemplate);
- if ($aCMDResult['enable-diff-updates']) {
- $sTemplate = str_replace('RETURN NEW; -- %DIFFUPDATES%', '--', $sTemplate);
- }
- if ($aCMDResult['enable-debug-statements']) {
- $sTemplate = str_replace('--DEBUG:', '', $sTemplate);
- }
- if (CONST_Limit_Reindexing) {
- $sTemplate = str_replace('--LIMIT INDEXING:', '', $sTemplate);
- }
- if (!CONST_Use_US_Tiger_Data) {
- $sTemplate = str_replace('-- %NOTIGERDATA% ', '', $sTemplate);
- }
- if (!CONST_Use_Aux_Location_data) {
- $sTemplate = str_replace('-- %NOAUXDATA% ', '', $sTemplate);
- }
- pgsqlRunScript($sTemplate);
-}
-
-function checkModulePresence()
-{
- // Try accessing the C module, so we know early if something is wrong
- // and can simply error out.
- global $sModulePath;
- $sSQL = "CREATE FUNCTION nominatim_test_import_func(text) RETURNS text AS '";
- $sSQL .= $sModulePath."/nominatim.so', 'transliteration' LANGUAGE c IMMUTABLE STRICT";
- $sSQL .= ';DROP FUNCTION nominatim_test_import_func(text);';
-
- $oDB =& getDB();
- $oResult = $oDB->query($sSQL);
-
- $bResult = true;
-
- if (PEAR::isError($oResult)) {
- echo "\nERROR: Failed to load nominatim module. Reason:\n";
- echo $oResult->userinfo."\n\n";
- $bResult = false;
- }
-
- return $bResult;
-}
-#!@PHP_BIN@ -Cq
<?php
-require_once(dirname(dirname(__FILE__)).'/settings/settings.php');
require_once(CONST_BasePath.'/lib/init-cmd.php');
ini_set('memory_limit', '800M');
ini_set('display_errors', 'stderr');
);
getCmdOpt($_SERVER['argv'], $aCMDOptions, $aCMDResult, true, true);
-include(CONST_InstallPath.'/settings/phrase_settings.php');
+include(CONST_Phrase_Config);
if ($aCMDResult['wiki-import']) {
$oNormalizer = Transliterator::createFromRules(CONST_Term_Normalization_Rules);
foreach (explode(',', $sLanguageIn) as $sLanguage) {
$sURL = 'https://wiki.openstreetmap.org/wiki/Special:Export/Nominatim/Special_Phrases/'.strtoupper($sLanguage);
$sWikiPageXML = file_get_contents($sURL);
- if (preg_match_all('#\\| ([^|]+) \\|\\| ([^|]+) \\|\\| ([^|]+) \\|\\| ([^|]+) \\|\\| ([\\-YN])#', $sWikiPageXML, $aMatches, PREG_SET_ORDER)) {
- foreach ($aMatches as $aMatch) {
- $sLabel = trim($aMatch[1]);
- if ($oNormalizer !== null) {
- $sTrans = pg_escape_string($oNormalizer->transliterate($sLabel));
- } else {
- $sTrans = null;
- }
- $sClass = trim($aMatch[2]);
- $sType = trim($aMatch[3]);
- // hack around a bug where building=yes was imported with
- // quotes into the wiki
- $sType = preg_replace('/"/', '', $sType);
- // sanity check, in case somebody added garbage in the wiki
- if (preg_match('/^\\w+$/', $sClass) < 1
- || preg_match('/^\\w+$/', $sType) < 1
- ) {
- trigger_error("Bad class/type for language $sLanguage: $sClass=$sType");
- exit;
- }
- // blacklisting: disallow certain class/type combinations
- if (isset($aTagsBlacklist[$sClass]) && in_array($sType, $aTagsBlacklist[$sClass])) {
- // fwrite(STDERR, "Blacklisted: ".$sClass."/".$sType."\n");
- continue;
- }
- // whitelisting: if class is in whitelist, allow only tags in the list
- if (isset($aTagsWhitelist[$sClass]) && !in_array($sType, $aTagsWhitelist[$sClass])) {
- // fwrite(STDERR, "Non-Whitelisted: ".$sClass."/".$sType."\n");
- continue;
- }
- $aPairs[$sClass.'|'.$sType] = array($sClass, $sType);
-
- switch (trim($aMatch[4])) {
- case 'near':
- echo "select getorcreate_amenityoperator(make_standard_name('".pg_escape_string($sLabel)."'), '$sTrans', '$sClass', '$sType', 'near');\n";
- break;
- case 'in':
- echo "select getorcreate_amenityoperator(make_standard_name('".pg_escape_string($sLabel)."'), '$sTrans', '$sClass', '$sType', 'in');\n";
- break;
- default:
- echo "select getorcreate_amenity(make_standard_name('".pg_escape_string($sLabel)."'), '$sTrans', '$sClass', '$sType');\n";
- break;
- }
+
+ if (!preg_match_all(
+ '#\\| ([^|]+) \\|\\| ([^|]+) \\|\\| ([^|]+) \\|\\| ([^|]+) \\|\\| ([\\-YN])#',
+ $sWikiPageXML,
+ $aMatches,
+ PREG_SET_ORDER
+ )) {
+ continue;
+ }
+
+ foreach ($aMatches as $aMatch) {
+ $sLabel = trim($aMatch[1]);
+ if ($oNormalizer !== null) {
+ $sTrans = pg_escape_string($oNormalizer->transliterate($sLabel));
+ } else {
+ $sTrans = null;
+ }
+ $sClass = trim($aMatch[2]);
+ $sType = trim($aMatch[3]);
+ // hack around a bug where building=yes was imported with
+ // quotes into the wiki
+ $sType = preg_replace('/("|")/', '', $sType);
+ // sanity check, in case somebody added garbage in the wiki
+ if (preg_match('/^\\w+$/', $sClass) < 1
+ || preg_match('/^\\w+$/', $sType) < 1
+ ) {
+ trigger_error("Bad class/type for language $sLanguage: $sClass=$sType");
+ exit;
+ }
+ // blacklisting: disallow certain class/type combinations
+ if (isset($aTagsBlacklist[$sClass]) && in_array($sType, $aTagsBlacklist[$sClass])) {
+ // fwrite(STDERR, "Blacklisted: ".$sClass."/".$sType."\n");
+ continue;
+ }
+ // whitelisting: if class is in whitelist, allow only tags in the list
+ if (isset($aTagsWhitelist[$sClass]) && !in_array($sType, $aTagsWhitelist[$sClass])) {
+ // fwrite(STDERR, "Non-Whitelisted: ".$sClass."/".$sType."\n");
+ continue;
+ }
+ $aPairs[$sClass.'|'.$sType] = array($sClass, $sType);
+
+ switch (trim($aMatch[4])) {
+ case 'near':
+ printf(
+ "SELECT getorcreate_amenityoperator(make_standard_name('%s'), '%s', '%s', '%s', 'near');\n",
+ pg_escape_string($sLabel),
+ $sTrans,
+ $sClass,
+ $sType
+ );
+ break;
+ case 'in':
+ printf(
+ "SELECT getorcreate_amenityoperator(make_standard_name('%s'), '%s', '%s', '%s', 'in');\n",
+ pg_escape_string($sLabel),
+ $sTrans,
+ $sClass,
+ $sType
+ );
+ break;
+ default:
+ printf(
+ "SELECT getorcreate_amenity(make_standard_name('%s'), '%s', '%s', '%s');\n",
+ pg_escape_string($sLabel),
+ $sTrans,
+ $sClass,
+ $sType
+ );
+ break;
}
}
}
- echo 'create index idx_placex_classtype on placex (class, type);';
+ echo 'CREATE INDEX idx_placex_classtype ON placex (class, type);';
foreach ($aPairs as $aPair) {
- echo 'create table place_classtype_'.pg_escape_string($aPair[0]).'_'.pg_escape_string($aPair[1]);
- if (CONST_Tablespace_Aux_Data)
- echo ' tablespace '.CONST_Tablespace_Aux_Data;
- echo ' as select place_id as place_id,st_centroid(geometry) as centroid from placex where ';
- echo "class = '".pg_escape_string($aPair[0])."' and type = '".pg_escape_string($aPair[1])."'";
- echo ";\n";
-
- echo 'CREATE INDEX idx_place_classtype_'.pg_escape_string($aPair[0]).'_'.pg_escape_string($aPair[1]).'_centroid ';
- echo 'ON place_classtype_'.pg_escape_string($aPair[0]).'_'.pg_escape_string($aPair[1]).' USING GIST (centroid)';
- if (CONST_Tablespace_Aux_Index)
- echo ' tablespace '.CONST_Tablespace_Aux_Index;
- echo ";\n";
-
- echo 'CREATE INDEX idx_place_classtype_'.pg_escape_string($aPair[0]).'_'.pg_escape_string($aPair[1]).'_place_id ';
- echo 'ON place_classtype_'.pg_escape_string($aPair[0]).'_'.pg_escape_string($aPair[1]).' USING btree(place_id)';
- if (CONST_Tablespace_Aux_Index)
- echo ' tablespace '.CONST_Tablespace_Aux_Index;
- echo ";\n";
-
- echo 'GRANT SELECT ON place_classtype_'.pg_escape_string($aPair[0]).'_'.pg_escape_string($aPair[1]).' TO "'.CONST_Database_Web_User."\";\n";
+ $sql_tablespace = CONST_Tablespace_Aux_Data ? ' TABLESPACE '.CONST_Tablespace_Aux_Data : '';
+
+ printf(
+ 'CREATE TABLE place_classtype_%s_%s'
+ . $sql_tablespace
+ . ' AS'
+ . ' SELECT place_id AS place_id,st_centroid(geometry) AS centroid FROM placex'
+ . " WHERE class = '%s' AND type = '%s'"
+ . ";\n",
+ pg_escape_string($aPair[0]),
+ pg_escape_string($aPair[1]),
+ pg_escape_string($aPair[0]),
+ pg_escape_string($aPair[1])
+ );
+
+ printf(
+ 'CREATE INDEX idx_place_classtype_%s_%s_centroid'
+ . ' ON place_classtype_%s_%s USING GIST (centroid)'
+ . $sql_tablespace
+ . ";\n",
+ pg_escape_string($aPair[0]),
+ pg_escape_string($aPair[1]),
+ pg_escape_string($aPair[0]),
+ pg_escape_string($aPair[1])
+ );
+
+ printf(
+ 'CREATE INDEX idx_place_classtype_%s_%s_place_id'
+ . ' ON place_classtype_%s_%s USING btree(place_id)'
+ . $sql_tablespace
+ . ";\n",
+ pg_escape_string($aPair[0]),
+ pg_escape_string($aPair[1]),
+ pg_escape_string($aPair[0]),
+ pg_escape_string($aPair[1])
+ );
+
+ printf(
+ 'GRANT SELECT ON place_classtype_%s_%s TO "%s"'
+ . ";\n",
+ pg_escape_string($aPair[0]),
+ pg_escape_string($aPair[1]),
+ CONST_Database_Web_User
+ );
}
- echo 'drop index idx_placex_classtype;';
+ echo 'DROP INDEX idx_placex_classtype;';
}
-#!@PHP_BIN@ -Cq
<?php
-require_once(dirname(dirname(__FILE__)).'/settings/settings.php');
require_once(CONST_BasePath.'/lib/init-cmd.php');
+require_once(CONST_BasePath.'/lib/setup_functions.php');
+require_once(CONST_BasePath.'/lib/setup/SetupClass.php');
+require_once(CONST_BasePath.'/lib/setup/AddressLevelParser.php');
+
ini_set('memory_limit', '800M');
-# (long-opt, short-opt, min-occurs, max-occurs, num-arguments, num-arguments, type, help)
+use Nominatim\Setup\SetupFunctions as SetupFunctions;
+// (long-opt, short-opt, min-occurs, max-occurs, num-arguments, num-arguments, type, help)
$aCMDOptions
= array(
'Import / update / index osm data',
array('deduplicate', '', 0, 1, 0, 0, 'bool', 'Deduplicate tokens'),
array('recompute-word-counts', '', 0, 1, 0, 0, 'bool', 'Compute frequency of full-word search terms'),
+ array('update-address-levels', '', 0, 1, 0, 0, 'bool', 'Reimport address level configuration (EXPERT)'),
+ array('recompute-importance', '', 0, 1, 0, 0, 'bool', 'Recompute place importances'),
array('no-npi', '', 0, 1, 0, 0, 'bool', '(obsolete)'),
);
+
getCmdOpt($_SERVER['argv'], $aCMDOptions, $aResult, true, true);
if (!isset($aResult['index-instances'])) $aResult['index-instances'] = 1;
date_default_timezone_set('Etc/UTC');
-$oDB =& getDB();
+$oDB = new Nominatim\DB();
+$oDB->connect();
-$aDSNInfo = DB::parseDSN(CONST_Database_DSN);
+$aDSNInfo = Nominatim\DB::parseDSN(CONST_Database_DSN);
if (!isset($aDSNInfo['port']) || !$aDSNInfo['port']) $aDSNInfo['port'] = 5432;
// cache memory to be used by osm2pgsql, should not be more than the available memory
$iCacheMemory = getCacheMemoryMB();
echo "WARNING: resetting cache memory to $iCacheMemory\n";
}
-$sOsm2pgsqlCmd = CONST_Osm2pgsql_Binary.' -klas --number-processes 1 -C '.$iCacheMemory.' -O gazetteer -d '.$aDSNInfo['database'].' -P '.$aDSNInfo['port'];
+
+$oOsm2pgsqlCmd = (new \Nominatim\Shell(CONST_Osm2pgsql_Binary))
+ ->addParams('--hstore')
+ ->addParams('--latlong')
+ ->addParams('--append')
+ ->addParams('--slim')
+ ->addParams('--number-processes', 1)
+ ->addParams('--cache', $iCacheMemory)
+ ->addParams('--output', 'gazetteer')
+ ->addParams('--style', CONST_Import_Style)
+ ->addParams('--database', $aDSNInfo['database'])
+ ->addParams('--port', $aDSNInfo['port']);
+
+if (isset($aDSNInfo['hostspec']) && $aDSNInfo['hostspec']) {
+ $oOsm2pgsqlCmd->addParams('--host', $aDSNInfo['hostspec']);
+}
if (isset($aDSNInfo['username']) && $aDSNInfo['username']) {
- $sOsm2pgsqlCmd .= ' -U ' . $aDSNInfo['username'];
+ $oOsm2pgsqlCmd->addParams('--user', $aDSNInfo['username']);
+}
+if (isset($aDSNInfo['password']) && $aDSNInfo['password']) {
+ $oOsm2pgsqlCmd->addEnvPair('PGPASSWORD', $aDSNInfo['password']);
+}
+if (!is_null(CONST_Osm2pgsql_Flatnode_File) && CONST_Osm2pgsql_Flatnode_File) {
+ $oOsm2pgsqlCmd->addParams('--flat-nodes', CONST_Osm2pgsql_Flatnode_File);
+}
+
+
+$oIndexCmd = (new \Nominatim\Shell(CONST_BasePath.'/nominatim/nominatim.py'))
+ ->addParams('--database', $aDSNInfo['database'])
+ ->addParams('--port', $aDSNInfo['port'])
+ ->addParams('--threads', $aResult['index-instances']);
+
+if ($aResult['verbose']) {
+ $oIndexCmd->addParams('--verbose');
}
if (isset($aDSNInfo['hostspec']) && $aDSNInfo['hostspec']) {
- $sOsm2pgsqlCmd .= ' -H ' . $aDSNInfo['hostspec'];
+ $oIndexCmd->addParams('--host', $aDSNInfo['hostspec']);
+}
+if (isset($aDSNInfo['username']) && $aDSNInfo['username']) {
+ $oIndexCmd->addParams('--username', $aDSNInfo['username']);
}
-$aProcEnv = null;
if (isset($aDSNInfo['password']) && $aDSNInfo['password']) {
- $aProcEnv = array_merge(array('PGPASSWORD' => $aDSNInfo['password']), $_ENV);
+ $oIndexCmd->addEnvPair('PGPASSWORD', $aDSNInfo['password']);
}
-if (!is_null(CONST_Osm2pgsql_Flatnode_File) && CONST_Osm2pgsql_Flatnode_File) {
- $sOsm2pgsqlCmd .= ' --flat-nodes '.CONST_Osm2pgsql_Flatnode_File;
-}
if ($aResult['init-updates']) {
// sanity check that the replication URL is correct
echo "in your local settings file.\n\n";
fail('CONST_Pyosmium_Binary not configured');
}
+
$aOutput = 0;
- $sCmd = CONST_Pyosmium_Binary.' --help';
- exec($sCmd, $aOutput, $iRet);
+ $oCMD = new \Nominatim\Shell(CONST_Pyosmium_Binary, '--help');
+ exec($oCMD->escapedCmd(), $aOutput, $iRet);
+
if ($iRet != 0) {
echo "Cannot execute pyosmium-get-changes.\n";
echo "Make sure you have pyosmium installed correctly\n";
echo "and have set up CONST_Pyosmium_Binary to point to pyosmium-get-changes.\n";
fail('pyosmium-get-changes not found or not usable');
}
+
if (!$aResult['no-update-functions']) {
- $sSetup ='@PHP_BIN@ '. CONST_InstallPath.'/utils/setup.php';
- $iRet = -1;
- passthru($sSetup.' --create-functions --enable-diff-updates', $iRet);
- if ($iRet != 0) {
- fail('Error running setup script');
- }
+ // instantiate setupClass to use the function therein
+ $cSetup = new SetupFunctions(array(
+ 'enable-diff-updates' => true,
+ 'verbose' => $aResult['verbose']
+ ));
+ $cSetup->connect();
+ $cSetup->createFunctions();
}
$sDatabaseDate = getDatabaseDate($oDB);
- if ($sDatabaseDate === false) {
+ if (!$sDatabaseDate) {
fail('Cannot determine date of database.');
}
$sWindBack = strftime('%Y-%m-%dT%H:%M:%SZ', strtotime($sDatabaseDate) - (3*60*60));
// get the appropriate state id
$aOutput = 0;
- $sCmd = CONST_Pyosmium_Binary.' -D '.$sWindBack.' --server '.CONST_Replication_Url;
- exec($sCmd, $aOutput, $iRet);
+ $oCMD = (new \Nominatim\Shell(CONST_Pyosmium_Binary))
+ ->addParams('--start-date', $sWindBack)
+ ->addParams('--server', CONST_Replication_Url);
+
+ exec($oCMD->escapedCmd(), $aOutput, $iRet);
if ($iRet != 0 || $aOutput[0] == 'None') {
fail('Error running pyosmium tools');
}
- pg_query($oDB->connection, 'TRUNCATE import_status');
+ $oDB->exec('TRUNCATE import_status');
$sSQL = "INSERT INTO import_status (lastimportdate, sequence_id, indexed) VALUES('";
$sSQL .= $sDatabaseDate."',".$aOutput[0].', true)';
- if (!pg_query($oDB->connection, $sSQL)) {
+
+ try {
+ $oDB->exec($sSQL);
+ } catch (\Nominatim\DatabaseError $e) {
fail('Could not enter sequence into database.');
}
}
if ($aResult['check-for-updates']) {
- $aLastState = chksql($oDB->getRow('SELECT sequence_id FROM import_status'));
+ $aLastState = $oDB->getRow('SELECT sequence_id FROM import_status');
if (!$aLastState['sequence_id']) {
fail('Updates not set up. Please run ./utils/update.php --init-updates.');
}
- system(CONST_BasePath.'/utils/check_server_for_updates.py '.CONST_Replication_Url.' '.$aLastState['sequence_id'], $iRet);
+ $oCmd = (new \Nominatim\Shell(CONST_BasePath.'/utils/check_server_for_updates.py'))
+ ->addParams(CONST_Replication_Url)
+ ->addParams($aLastState['sequence_id']);
+ $iRet = $oCmd->run();
+
exit($iRet);
}
}
// Import the file
- $sCMD = $sOsm2pgsqlCmd.' '.$sNextFile;
- echo $sCMD."\n";
- $iErrorLevel = runWithEnv($sCMD, $aProcEnv);
+ $oCMD = (clone $oOsm2pgsqlCmd)->addParams($sNextFile);
+ echo $oCMD->escapedCmd()."\n";
+ $iRet = $oCMD->run();
- if ($iErrorLevel) {
- fail("Error from osm2pgsql, $iErrorLevel\n");
+ if ($iRet) {
+ fail("Error from osm2pgsql, $iRet\n");
}
// Don't update the import status - we don't know what this file contains
if ($bHaveDiff) {
// import generated change file
- $sCMD = $sOsm2pgsqlCmd.' '.$sTemporaryFile;
- echo $sCMD."\n";
- $iErrorLevel = runWithEnv($sCMD, $aProcEnv);
- if ($iErrorLevel) {
- fail("osm2pgsql exited with error level $iErrorLevel\n");
+
+ $oCMD = (clone $oOsm2pgsqlCmd)->addParams($sTemporaryFile);
+ echo $oCMD->escapedCmd()."\n";
+
+ $iRet = $oCMD->run();
+ if ($iRet) {
+ fail("osm2pgsql exited with error level $iRet\n");
}
}
if ($aResult['deduplicate']) {
- $oDB =& getDB();
+ $oDB = new Nominatim\DB();
+ $oDB->connect();
- if (getPostgresVersion($oDB) < 9.3) {
+ if ($oDB->getPostgresVersion() < 9.3) {
fail('ERROR: deduplicate is only currently supported in postgresql 9.3');
}
$sSQL = 'select partition from country_name order by country_code';
- $aPartitions = chksql($oDB->getCol($sSQL));
+ $aPartitions = $oDB->getCol($sSQL);
$aPartitions[] = 0;
// we don't care about empty search_name_* partitions, they can't contain mentions of duplicates
foreach ($aPartitions as $i => $sPartition) {
$sSQL = 'select count(*) from search_name_'.$sPartition;
- $nEntries = chksql($oDB->getOne($sSQL));
+ $nEntries = $oDB->getOne($sSQL);
if ($nEntries == 0) {
unset($aPartitions[$i]);
}
$sSQL = "select word_token,count(*) from word where substr(word_token, 1, 1) = ' '";
$sSQL .= ' and class is null and type is null and country_code is null';
$sSQL .= ' group by word_token having count(*) > 1 order by word_token';
- $aDuplicateTokens = chksql($oDB->getAll($sSQL));
+ $aDuplicateTokens = $oDB->getAll($sSQL);
foreach ($aDuplicateTokens as $aToken) {
if (trim($aToken['word_token']) == '' || trim($aToken['word_token']) == '-') continue;
echo 'Deduping '.$aToken['word_token']."\n";
$sSQL .= ' (select count(*) from search_name where nameaddress_vector @> ARRAY[word_id]) as num';
$sSQL .= " from word where word_token = '".$aToken['word_token'];
$sSQL .= "' and class is null and type is null and country_code is null order by num desc";
- $aTokenSet = chksql($oDB->getAll($sSQL));
+ $aTokenSet = $oDB->getAll($sSQL);
$aKeep = array_shift($aTokenSet);
$iKeepID = $aKeep['word_id'];
$sSQL .= ' name_vector = array_replace(name_vector,'.$aRemove['word_id'].','.$iKeepID.'),';
$sSQL .= ' nameaddress_vector = array_replace(nameaddress_vector,'.$aRemove['word_id'].','.$iKeepID.')';
$sSQL .= ' where name_vector @> ARRAY['.$aRemove['word_id'].']';
- chksql($oDB->query($sSQL));
+ $oDB->exec($sSQL);
$sSQL = 'update search_name set';
$sSQL .= ' nameaddress_vector = array_replace(nameaddress_vector,'.$aRemove['word_id'].','.$iKeepID.')';
$sSQL .= ' where nameaddress_vector @> ARRAY['.$aRemove['word_id'].']';
- chksql($oDB->query($sSQL));
+ $oDB->exec($sSQL);
$sSQL = 'update location_area_country set';
$sSQL .= ' keywords = array_replace(keywords,'.$aRemove['word_id'].','.$iKeepID.')';
$sSQL .= ' where keywords @> ARRAY['.$aRemove['word_id'].']';
- chksql($oDB->query($sSQL));
+ $oDB->exec($sSQL);
foreach ($aPartitions as $sPartition) {
$sSQL = 'update search_name_'.$sPartition.' set';
$sSQL .= ' name_vector = array_replace(name_vector,'.$aRemove['word_id'].','.$iKeepID.')';
$sSQL .= ' where name_vector @> ARRAY['.$aRemove['word_id'].']';
- chksql($oDB->query($sSQL));
+ $oDB->exec($sSQL);
$sSQL = 'update location_area_country set';
$sSQL .= ' keywords = array_replace(keywords,'.$aRemove['word_id'].','.$iKeepID.')';
$sSQL .= ' where keywords @> ARRAY['.$aRemove['word_id'].']';
- chksql($oDB->query($sSQL));
+ $oDB->exec($sSQL);
}
$sSQL = 'delete from word where word_id = '.$aRemove['word_id'];
- chksql($oDB->query($sSQL));
+ $oDB->exec($sSQL);
}
}
}
}
if ($aResult['index']) {
- $sCmd = CONST_InstallPath.'/nominatim/nominatim -i -d '.$aDSNInfo['database'].' -P '.$aDSNInfo['port'].' -t '.$aResult['index-instances'].' -r '.$aResult['index-rank'];
- if (isset($aDSNInfo['hostspec']) && $aDSNInfo['hostspec']) {
- $sCmd .= ' -H ' . $aDSNInfo['hostspec'];
- }
- if (isset($aDSNInfo['username']) && $aDSNInfo['username']) {
- $sCmd .= ' -U ' . $aDSNInfo['username'];
- }
+ $oCmd = (clone $oIndexCmd)
+ ->addParams('--minrank', $aResult['index-rank']);
+
+ // echo $oCmd->escapedCmd()."\n";
+ $oCmd->run();
- runWithEnv($sCmd, $aProcEnv);
+ $oDB->exec('update import_status set indexed = true');
+}
+
+if ($aResult['update-address-levels']) {
+ echo 'Updating address levels from '.CONST_Address_Level_Config.".\n";
+ $oAlParser = new \Nominatim\Setup\AddressLevelParser(CONST_Address_Level_Config);
+ $oAlParser->createTable($oDB, 'address_levels');
+}
+
+if ($aResult['recompute-importance']) {
+ echo "Updating importance values for database.\n";
+ $oDB = new Nominatim\DB();
+ $oDB->connect();
+
+ $sSQL = 'ALTER TABLE placex DISABLE TRIGGER ALL;';
+ $sSQL .= 'UPDATE placex SET (wikipedia, importance) =';
+ $sSQL .= ' (SELECT wikipedia, importance';
+ $sSQL .= ' FROM compute_importance(extratags, country_code, osm_type, osm_id));';
+ $sSQL .= 'UPDATE placex s SET wikipedia = d.wikipedia, importance = d.importance';
+ $sSQL .= ' FROM placex d';
+ $sSQL .= ' WHERE s.place_id = d.linked_place_id and d.wikipedia is not null';
+ $sSQL .= ' and (s.wikipedia is null or s.importance < d.importance);';
+ $sSQL .= 'ALTER TABLE placex ENABLE TRIGGER ALL;';
+ $oDB->exec($sSQL);
}
if ($aResult['import-osmosis'] || $aResult['import-osmosis-all']) {
//
if (strpos(CONST_Replication_Url, 'download.geofabrik.de') !== false && CONST_Replication_Update_Interval < 86400) {
fail('Error: Update interval too low for download.geofabrik.de. ' .
- "Please check install documentation (http://nominatim.org/release-docs/latest/Import-and-Update#setting-up-the-update-process)\n");
+ "Please check install documentation (https://nominatim.org/release-docs/latest/admin/Import-and-Update#setting-up-the-update-process)\n");
}
$sImportFile = CONST_InstallPath.'/osmosischange.osc';
- $sCMDDownload = CONST_Pyosmium_Binary.' --server '.CONST_Replication_Url.' -o '.$sImportFile.' -s '.CONST_Replication_Max_Diff_size;
- $sCMDImport = $sOsm2pgsqlCmd.' '.$sImportFile;
- $sCMDIndex = CONST_InstallPath.'/nominatim/nominatim -i -d '.$aDSNInfo['database'].' -P '.$aDSNInfo['port'].' -t '.$aResult['index-instances'];
- if (isset($aDSNInfo['hostspec']) && $aDSNInfo['hostspec']) {
- $sCMDIndex .= ' -H ' . $aDSNInfo['hostspec'];
- }
- if (isset($aDSNInfo['username']) && $aDSNInfo['username']) {
- $sCMDIndex .= ' -U ' . $aDSNInfo['username'];
- }
+
+ $oCMDDownload = (new \Nominatim\Shell(CONST_Pyosmium_Binary))
+ ->addParams('--server', CONST_Replication_Url)
+ ->addParams('--outfile', $sImportFile)
+ ->addParams('--size', CONST_Replication_Max_Diff_size);
+
+ $oCMDImport = (clone $oOsm2pgsqlCmd)->addParams($sImportFile);
while (true) {
$fStartTime = time();
- $aLastState = chksql($oDB->getRow('SELECT *, EXTRACT (EPOCH FROM lastimportdate) as unix_ts FROM import_status'));
+ $aLastState = $oDB->getRow('SELECT *, EXTRACT (EPOCH FROM lastimportdate) as unix_ts FROM import_status');
if (!$aLastState['sequence_id']) {
echo "Updates not set up. Please run ./utils/update.php --init-updates.\n";
$sBatchEnd = $aLastState['lastimportdate'];
$iEndSequence = $aLastState['sequence_id'];
- if ($aLastState['indexed'] == 't') {
+ if ($aLastState['indexed']) {
// Sleep if the update interval has not yet been reached.
$fNextUpdate = $aLastState['unix_ts'] + CONST_Replication_Update_Interval;
if ($fNextUpdate > $fStartTime) {
$fCMDStartTime = time();
$iNextSeq = (int) $aLastState['sequence_id'];
unset($aOutput);
- echo "$sCMDDownload -I $iNextSeq\n";
+
+ $oCMD = (clone $oCMDDownload)->addParams('--start-id', $iNextSeq);
+ echo $oCMD->escapedCmd()."\n";
if (file_exists($sImportFile)) {
unlink($sImportFile);
}
- exec($sCMDDownload.' -I '.$iNextSeq, $aOutput, $iResult);
+ exec($oCMD->escapedCmd(), $aOutput, $iResult);
if ($iResult == 3) {
echo 'No new updates. Sleeping for '.CONST_Replication_Recheck_Interval." sec.\n";
// get the newest object from the diff file
$sBatchEnd = 0;
$iRet = 0;
- exec(CONST_BasePath.'/utils/osm_file_date.py '.$sImportFile, $sBatchEnd, $iRet);
+ $oCMD = new \Nominatim\Shell(CONST_BasePath.'/utils/osm_file_date.py', $sImportFile);
+ exec($oCMD->escapedCmd(), $sBatchEnd, $iRet);
if ($iRet == 5) {
echo "Diff file is empty. skipping import.\n";
if (!$aResult['import-osmosis-all']) {
// Import the file
$fCMDStartTime = time();
- echo $sCMDImport."\n";
+
+
+ echo $oCMDImport->escapedCmd()."\n";
unset($sJunk);
- $iErrorLevel = runWithEnv($sCMDImport, $aProcEnv);
+ $iErrorLevel = $oCMDImport->run();
if ($iErrorLevel) {
echo "Error executing osm2pgsql: $iErrorLevel\n";
exit($iErrorLevel);
$sSQL .= date('Y-m-d H:i:s', $fCMDStartTime)."','";
$sSQL .= date('Y-m-d H:i:s')."','import')";
var_Dump($sSQL);
- chksql($oDB->query($sSQL));
+ $oDB->exec($sSQL);
// update the status
$sSQL = "UPDATE import_status SET lastimportdate = '$sBatchEnd', indexed=false, sequence_id = $iEndSequence";
var_Dump($sSQL);
- chksql($oDB->query($sSQL));
+ $oDB->exec($sSQL);
echo date('Y-m-d H:i:s')." Completed download step for $sBatchEnd in ".round((time()-$fCMDStartTime)/60, 2)." minutes\n";
}
// Index file
if (!$aResult['no-index']) {
- $sThisIndexCmd = $sCMDIndex;
+ $oThisIndexCmd = clone($oIndexCmd);
$fCMDStartTime = time();
- echo "$sThisIndexCmd\n";
- $iErrorLevel = runWithEnv($sThisIndexCmd, $aProcEnv);
+ echo $oThisIndexCmd->escapedCmd()."\n";
+ $iErrorLevel = $oThisIndexCmd->run();
if ($iErrorLevel) {
echo "Error: $iErrorLevel\n";
exit($iErrorLevel);
$sSQL = 'INSERT INTO import_osmosis_log';
$sSQL .= '(batchend, batchseq, batchsize, starttime, endtime, event)';
- $sSQL .= " values ('$sBatchEnd',$iEndSequence,$iFileSize,'";
+ $sSQL .= " values ('$sBatchEnd',$iEndSequence,NULL,'";
$sSQL .= date('Y-m-d H:i:s', $fCMDStartTime)."','";
$sSQL .= date('Y-m-d H:i:s')."','index')";
var_Dump($sSQL);
- $oDB->query($sSQL);
+ $oDB->exec($sSQL);
echo date('Y-m-d H:i:s')." Completed index step for $sBatchEnd in ".round((time()-$fCMDStartTime)/60, 2)." minutes\n";
$sSQL = 'update import_status set indexed = true';
- $oDB->query($sSQL);
+ $oDB->exec($sSQL);
+ } else {
+ if ($aResult['import-osmosis-all']) {
+ echo "Error: --no-index cannot be used with continuous imports (--import-osmosis-all).\n";
+ exit(1);
+ }
}
$fDuration = time() - $fStartTime;
--- /dev/null
+#!/bin/bash -xv
+
+# Derived from https://gist.github.com/RhinoDevel/8a35ebd2a08166f328eca01ab005c6de and edited to work with Pyosmium
+# Related to https://github.com/osm-search/Nominatim/issues/1683
+
+# Steps being followed:
+
+# *) Get the diff file from server
+# 1) pyosmium-get-changes (with -f sequence.state for getting sequenceNumber)
+
+# *) Import diff
+# 1) utils/update.php --import-diff
+
+# *) Index for all the countries at the end
+
+# Hint:
+#
+# Use "bashdb ./update_database.sh" and bashdb's "next" command for step-by-step
+# execution.
+
+# ******************************************************************************
+
+# REPLACE WITH LIST OF YOUR "COUNTRIES":
+#
+
+
+COUNTRIES="europe/monaco europe/andorra"
+
+# SET TO YOUR NOMINATIM build FOLDER PATH:
+#
+NOMINATIMBUILD="/srv/nominatim/build"
+UPDATEFILE="$NOMINATIMBUILD/utils/update.php"
+
+# SET TO YOUR update data FOLDER PATH:
+#
+UPDATEDIR="/srv/nominatim/update"
+
+UPDATEBASEURL="https://download.geofabrik.de"
+UPDATECOUNTRYPOSTFIX="-updates"
+
+# If you do not use Photon, let Nominatim handle (re-)indexing:
+#
+FOLLOWUP="$UPDATEFILE --index"
+#
+# If you use Photon, update Photon and let it handle the index
+# (Photon server must be running and must have been started with "-database",
+# "-user" and "-password" parameters):
+#
+#FOLLOWUP="curl http://localhost:2322/nominatim-update"
+
+# ******************************************************************************
+
+
+for COUNTRY in $COUNTRIES;
+do
+
+ echo "===================================================================="
+ echo "$COUNTRY"
+ echo "===================================================================="
+ DIR="$UPDATEDIR/$COUNTRY"
+ FILE="$DIR/sequence.state"
+ BASEURL="$UPDATEBASEURL/$COUNTRY$UPDATECOUNTRYPOSTFIX"
+ FILENAME=${COUNTRY//[\/]/_}
+
+ # mkdir -p ${DIR}
+ cd ${DIR}
+
+ echo "Attempting to get changes"
+ pyosmium-get-changes -o ${DIR}/${FILENAME}.osc.gz -f ${FILE} --server $BASEURL -v
+
+ echo "Attempting to import diffs"
+ ${NOMINATIMBUILD}/utils/update.php --import-diff ${DIR}/${FILENAME}.osc.gz
+ rm ${DIR}/${FILENAME}.osc.gz
+
+done
+
+echo "===================================================================="
+echo "Reindexing"
+${FOLLOWUP}
+echo "===================================================================="
\ No newline at end of file
-#!@PHP_BIN@ -Cq
<?php
-require_once(dirname(dirname(__FILE__)).'/settings/settings.php');
require_once(CONST_BasePath.'/lib/init-cmd.php');
ini_set('memory_limit', '800M');
require_once(CONST_BasePath.'/lib/PlaceLookup.php');
require_once(CONST_BasePath.'/lib/ReverseGeocode.php');
-$oDB =& getDB();
+$oDB = new Nominatim\DB();
+$oDB->connect();
$bVerbose = $aResult['verbose'];
+function print_results($aResults, $bVerbose)
+{
+ if ($bVerbose) {
+ if ($aResults && count($aResults)) {
+ echo $aResults[0]['langaddress']."\n";
+ } else {
+ echo "<not found>\n";
+ }
+ } else {
+ echo '.';
+ }
+}
+
if (!$aResult['search-only']) {
$oReverseGeocode = new Nominatim\ReverseGeocode($oDB);
$oReverseGeocode->setZoom(20);
$fLat = rand(-9000, 9000) / 100;
$fLon = rand(-18000, 18000) / 100;
if ($bVerbose) echo "$fLat, $fLon = ";
- $aLookup = $oReverseGeocode->lookup($fLat, $fLon);
- if ($aLookup && $aLookup['place_id']) {
- $aDetails = $oPlaceLookup->lookup(
- (int)$aLookup['place_id'],
- $aLookup['type'],
- $aLookup['fraction']
- );
- if ($bVerbose) echo $aDetails['langaddress']."\n";
- } else {
- echo '.';
- }
+
+ $oLookup = $oReverseGeocode->lookup($fLat, $fLon);
+ $aSearchResults = $oLookup ? $oPlaceLookup->lookup(array($oLookup->iId => $oLookup)) : null;
+ print_results($aSearchResults, $bVerbose);
}
echo "\n";
}
echo 'Warm search: ';
if ($bVerbose) echo "\n";
- $sSQL = 'select word from word where word is not null order by search_name_count desc limit 1000';
+ $sSQL = 'SELECT word FROM word WHERE word is not null ORDER BY search_name_count DESC LIMIT 1000';
foreach ($oDB->getCol($sSQL) as $sWord) {
if ($bVerbose) echo "$sWord = ";
+
$oGeocode->setLanguagePreference(array('en'));
$oGeocode->setQuery($sWord);
$aSearchResults = $oGeocode->lookup();
- if ($bVerbose) echo $aSearchResults[0]['langaddress']."\n";
- else echo '.';
+ print_results($aSearchResults, $bVerbose);
}
+ echo "\n";
}
sudo yum install -y epel-release
+# More repositories for postgresql 11 (CentOS default 'postgresql' is 9.2), postgis
+# and llvm-toolset (https://github.com/theory/pg-semver/issues/35)
+
+ sudo yum install -y https://download.postgresql.org/pub/repos/yum/11/redhat/rhel-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm
+ sudo yum install -y centos-release-scl-rh
+
+# More repositories for PHP 7 (default is PHP 5.4)
+
+ sudo yum install -y http://rpms.remirepo.net/enterprise/remi-release-7.rpm
+ sudo yum-config-manager --enable remi-php72
+ sudo yum update -y
+
# Now you can install all packages needed for Nominatim:
#DOCS: :::sh
- sudo yum install -y postgresql-server postgresql-contrib postgresql-devel \
- postgis postgis-utils \
+
+ sudo yum install -y postgresql11-server postgresql11-contrib postgresql11-devel \
+ postgis25_11 postgis25_11-utils \
wget git cmake make gcc gcc-c++ libtool policycoreutils-python \
- php-pgsql php php-pear php-pear-DB php-intl libpqxx-devel \
- proj-epsg bzip2-devel proj-devel libxml2-devel boost-devel \
+ devtoolset-7 llvm-toolset-7 \
+ php-pgsql php php-intl libpqxx-devel \
+ proj-epsg bzip2-devel proj-devel boost-devel \
+ python3-pip python3-setuptools python3-devel \
expat-devel zlib-devel
+ # make sure pg_config gets found
+ echo 'PATH=/usr/pgsql-11/bin/:$PATH' >> ~/.bash_profile
+ source ~/.bash_profile
+
+ pip3 install --user psycopg2 pytidylib
+
# If you want to run the test suite, you need to install the following
# additional packages:
#DOCS: :::sh
- sudo yum install -y python34-pip python34-setuptools python34-devel \
- php-phpunit-PHPUnit
- pip3 install --user behave nose pytidylib psycopg2
- sudo pear install PHP_CodeSniffer
+ sudo yum install -y php-dom php-mbstring
+ pip3 install --user behave nose
+
+ composer global require "squizlabs/php_codesniffer=*"
+ sudo ln -s ~/.config/composer/vendor/bin/phpcs /usr/bin/
+
+ composer global require "phpunit/phpunit=7.*"
+ sudo ln -s ~/.config/composer/vendor/bin/phpunit /usr/bin/
#
# System Configuration
# CentOS does not automatically create a database cluster. Therefore, start
# with initializing the database, then enable the server to start at boot:
- sudo postgresql-setup initdb
- sudo systemctl enable postgresql
+ sudo /usr/pgsql-11/bin/postgresql-11-setup initdb
+ sudo systemctl enable postgresql-11
#
# Next tune the postgresql configuration, which is located in
#
# Now start the postgresql service after updating this config file.
- sudo systemctl restart postgresql
+ sudo systemctl restart postgresql-11
#
# Finally, we need to add two postgres users: one for the user that does
# download the country grid:
if [ ! -f data/country_osm_grid.sql.gz ]; then #DOCS: :::sh
- wget -O data/country_osm_grid.sql.gz https://www.nominatim.org/data/country_grid.sql.gz
+ wget --no-verbose -O data/country_osm_grid.sql.gz https://www.nominatim.org/data/country_grid.sql.gz
fi #DOCS:
# The code must be built in a separate directory. Create this directory,
--- /dev/null
+#!/bin/bash
+#
+# *Note:* these installation instructions are also available in executable
+# form for use with vagrant under `vagrant/Install-on-Centos-8.sh`.
+#
+# Installing the Required Software
+# ================================
+#
+# These instructions expect that you have a freshly installed CentOS version 8.
+# Make sure all packages are up-to-date by running:
+#
+ sudo dnf update -y
+
+# The standard CentOS repositories don't contain all the required packages,
+# you need to enable the EPEL repository as well. For example for SELinux
+# related redhat-hardened-cc1 package. To enable it on CentOS run:
+
+ sudo dnf install -y epel-release redhat-rpm-config
+
+# EPEL contains Postgres 9.6 and 10, but not PostGIS. Postgres 9.4+/10/11/12
+# and PostGIS 2.4/2.5/3.0 are availble from postgresql.org
+
+ sudo dnf -qy module disable postgresql
+ sudo dnf install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-8-x86_64/pgdg-redhat-repo-latest.noarch.rpm
+
+# Now you can install all packages needed for Nominatim:
+
+#DOCS: :::sh
+ sudo dnf --enablerepo=PowerTools install -y postgresql10-server \
+ postgresql10-contrib postgresql10-devel postgis25_10 \
+ wget git cmake make gcc gcc-c++ libtool policycoreutils-python-utils \
+ llvm-toolset ccache clang-tools-extra \
+ php-pgsql php php-intl php-json libpq-devel \
+ proj52-epsg bzip2-devel proj-devel boost-devel \
+ python3-pip python3-setuptools python3-devel \
+ expat-devel zlib-devel
+
+ # make sure pg_config gets found
+ echo 'PATH=/usr/pgsql-10/bin:$PATH' >> ~/.bash_profile
+ source ~/.bash_profile
+
+ pip3 install --user psycopg2 pytidylib
+
+# If you want to run the test suite, you need to install the following
+# additional packages:
+
+#DOCS: :::sh
+ sudo dnf install -y php-dom php-mbstring
+ pip3 install --user behave nose
+
+ composer global require "squizlabs/php_codesniffer=*"
+ sudo ln -s ~/.config/composer/vendor/bin/phpcs /usr/bin/
+
+ composer global require "phpunit/phpunit=^7"
+ sudo ln -s ~/.config/composer/vendor/bin/phpunit /usr/bin/
+
+#
+# System Configuration
+# ====================
+#
+# The following steps are meant to configure a fresh CentOS installation
+# for use with Nominatim. You may skip some of the steps if you have your
+# OS already configured.
+#
+# Creating Dedicated User Accounts
+# --------------------------------
+#
+# Nominatim will run as a global service on your machine. It is therefore
+# best to install it under its own separate user account. In the following
+# we assume this user is called nominatim and the installation will be in
+# /srv/nominatim. To create the user and directory run:
+#
+sudo mkdir -p /srv/nominatim #DOCS: sudo useradd -d /srv/nominatim -s /bin/bash -m nominatim
+sudo chown vagrant /srv/nominatim #DOCS:
+#
+# You may find a more suitable location if you wish.
+#
+# To be able to copy and paste instructions from this manual, export
+# user name and home directory now like this:
+#
+ export USERNAME=vagrant #DOCS: export USERNAME=nominatim
+ export USERHOME=/srv/nominatim
+#
+# **Never, ever run the installation as a root user.** You have been warned.
+#
+# Make sure that system servers can read from the home directory:
+
+ chmod a+x $USERHOME
+
+# Setting up PostgreSQL
+# ---------------------
+#
+# CentOS does not automatically create a database cluster. Therefore, start
+# with initializing the database, then enable the server to start at boot:
+
+
+ sudo /usr/pgsql-10/bin/postgresql-10-setup initdb
+ sudo systemctl enable postgresql-10
+
+#
+# Next tune the postgresql configuration, which is located in
+# `/var/lib/pgsql/data/postgresql.conf`. See section *Postgres Tuning* in
+# [the installation page](../admin/Installation.md#postgresql-tuning)
+# for the parameters to change.
+#
+# Now start the postgresql service after updating this config file.
+
+ sudo systemctl restart postgresql-10
+
+#
+# Finally, we need to add two postgres users: one for the user that does
+# the import and another for the webserver which should access the database
+# only for reading:
+#
+
+ sudo -u postgres createuser -s $USERNAME
+ sudo -u postgres createuser apache
+
+#
+# Setting up the Apache Webserver
+# -------------------------------
+#
+# You need to create an alias to the website directory in your apache
+# configuration. Add a separate nominatim configuration to your webserver:
+
+#DOCS:```sh
+sudo tee /etc/httpd/conf.d/nominatim.conf << EOFAPACHECONF
+<Directory "$USERHOME/build/website">
+ Options FollowSymLinks MultiViews
+ AddType text/html .php
+ DirectoryIndex search.php
+ Require all granted
+</Directory>
+
+Alias /nominatim $USERHOME/build/website
+EOFAPACHECONF
+#DOCS:```
+
+sudo sed -i 's:#.*::' /etc/httpd/conf.d/nominatim.conf #DOCS:
+
+#
+# Then reload apache
+#
+
+ sudo systemctl enable httpd
+ sudo systemctl restart httpd
+
+
+#
+# Installing Nominatim
+# ====================
+#
+# Building and Configuration
+# --------------------------
+#
+# Get the source code from Github and change into the source directory
+#
+if [ "x$1" == "xyes" ]; then #DOCS: :::sh
+ cd $USERHOME
+ git clone --recursive git://github.com/openstreetmap/Nominatim.git
+ cd Nominatim
+else #DOCS:
+ cd $USERHOME/Nominatim #DOCS:
+fi #DOCS:
+
+# When installing the latest source from github, you also need to
+# download the country grid:
+
+if [ ! -f data/country_osm_grid.sql.gz ]; then #DOCS: :::sh
+ wget --no-verbose -O data/country_osm_grid.sql.gz https://www.nominatim.org/data/country_grid.sql.gz
+fi #DOCS:
+
+# The code must be built in a separate directory. Create this directory,
+# then configure and build Nominatim in there:
+
+#DOCS: :::sh
+ cd $USERHOME
+ mkdir build
+ cd build
+ cmake $USERHOME/Nominatim
+ make
+
+#
+# Adding SELinux Security Settings
+# --------------------------------
+#
+# It is a good idea to leave SELinux enabled and enforcing, particularly
+# with a web server accessible from the Internet. At a minimum the
+# following SELinux labeling should be done for Nominatim:
+
+ sudo semanage fcontext -a -t httpd_sys_content_t "$USERHOME/Nominatim/(website|lib|settings)(/.*)?"
+ sudo semanage fcontext -a -t httpd_sys_content_t "$USERHOME/build/(website|lib|settings)(/.*)?"
+ sudo semanage fcontext -a -t lib_t "$USERHOME/build/module/nominatim.so"
+ sudo restorecon -R -v $USERHOME/Nominatim
+ sudo restorecon -R -v $USERHOME/build
+
+
+# You need to create a minimal configuration file that tells nominatim
+# the name of your webserver user and the URL of the website:
+
+#DOCS:```sh
+tee settings/local.php << EOF
+<?php
+ @define('CONST_Database_Web_User', 'apache');
+ @define('CONST_Website_BaseURL', '/nominatim/');
+EOF
+#DOCS:```
+
+
+# Nominatim is now ready to use. Continue with
+# [importing a database from OSM data](../admin/Import-and-Update.md).
--- /dev/null
+#!/bin/bash
+
+#
+# This is variation of Install-on-Ubuntu.sh showcasing how to use the
+# nginx webserver instead of Apache2. We might eventually merge both
+# files. Right now expect this file to become outdated/unmaintained
+# over time.
+#
+# This file lacks many comments found in Install-on-Ubuntu.sh, you
+# should check that file first to get a basic understanding.
+#
+
+# hacks for broken vagrant box
+sudo rm -f /var/lib/dpkg/lock
+sudo update-locale LANG=en_US.UTF-8
+export APT_LISTCHANGES_FRONTEND=none
+export DEBIAN_FRONTEND=noninteractive
+
+ sudo apt-get update -qq
+ sudo apt-get install -y build-essential cmake g++ libboost-dev libboost-system-dev \
+ libboost-filesystem-dev libexpat1-dev zlib1g-dev\
+ libbz2-dev libpq-dev libproj-dev \
+ postgresql-server-dev-10 postgresql-10-postgis-2.4 \
+ postgresql-contrib-10 \
+ nginx php-fpm php php-pgsql \
+ php-intl python3-setuptools python3-dev python3-pip \
+ python3-psycopg2 python3-tidylib git
+
+ export USERNAME=vagrant
+ export USERHOME=/home/vagrant
+
+ chmod a+x $USERHOME
+
+# Setting up PostgreSQL
+# ---------------------
+#
+# Tune the postgresql configuration, see same section in Install-on-Ubuntu.sh
+
+ sudo systemctl restart postgresql
+
+ sudo -u postgres createuser -s $USERNAME
+ sudo -u postgres createuser www-data
+
+#
+# Setting up the Nginx Webserver
+# -------------------------------
+#
+# You need to configure php-fpm to listen on a Unix socket. Then create Nginx
+# configuration to forward localhost:80 requests to that socket.
+#
+
+
+sudo tee /etc/php/7.2/fpm/pool.d/www.conf << EOF_PHP_FPM_CONF
+[www]
+; Comment out the tcp listener and add the unix socket
+;listen = 127.0.0.1:9000
+listen = /var/run/php7.2-fpm.sock
+
+; Ensure that the daemon runs as the correct user
+listen.owner = www-data
+listen.group = www-data
+listen.mode = 0666
+
+; Unix user of FPM processes
+user = www-data
+group = www-data
+
+; Choose process manager type (static, dynamic, ondemand)
+pm = ondemand
+pm.max_children = 5
+EOF_PHP_FPM_CONF
+
+
+
+
+sudo tee /etc/nginx/sites-available/default << EOF_NGINX_CONF
+server {
+ listen 80 default_server;
+ listen [::]:80 default_server;
+
+ root $USERHOME/build/website;
+ index search.php index.html;
+ location / {
+ try_files \$uri \$uri/ @php;
+ }
+
+ location @php {
+ fastcgi_param SCRIPT_FILENAME "\$document_root\$uri.php";
+ fastcgi_param PATH_TRANSLATED "\$document_root\$uri.php";
+ fastcgi_param QUERY_STRING \$args;
+ fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
+ fastcgi_index index.php;
+ include fastcgi_params;
+ }
+
+ location ~ [^/]\.php(/|$) {
+ fastcgi_split_path_info ^(.+?\.php)(/.*)$;
+ if (!-f \$document_root\$fastcgi_script_name) {
+ return 404;
+ }
+ fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
+ fastcgi_index search.php;
+ include fastcgi.conf;
+ }
+}
+EOF_NGINX_CONF
+
+
+sudo sed -i 's:#.*::' /etc/nginx/sites-available/default
+
+
+#
+# Enable the configuration and restart Nginx
+#
+
+ sudo systemctl stop apache2 # just in case it's installed as well
+ sudo systemctl restart php7.2-fpm nginx
+
+# From here continue in the 'Installing Nominatim' section in
+# Install-on-Ubuntu.sh
+
# Now you can install all packages needed for Nominatim:
sudo apt-get install -y build-essential cmake g++ libboost-dev libboost-system-dev \
- libboost-filesystem-dev libexpat1-dev zlib1g-dev libxml2-dev\
+ libboost-filesystem-dev libexpat1-dev zlib1g-dev\
libbz2-dev libpq-dev libproj-dev \
postgresql-server-dev-10 postgresql-10-postgis-2.4 \
- postgresql-contrib-10 \
- apache2 php php-pgsql libapache2-mod-php php-pear php-db \
- php-intl git
+ postgresql-contrib-10 postgresql-10-postgis-scripts \
+ apache2 php php-pgsql libapache2-mod-php \
+ php-intl python3-setuptools python3-dev python3-pip \
+ python3-psycopg2 python3-tidylib git
# If you want to run the test suite, you need to install the following
-# additional packages:
-
- sudo apt-get install -y python3-setuptools python3-dev python3-pip \
- python3-psycopg2 python3-tidylib phpunit php-cgi
+# additional packages including the PHP package manager composer:
pip3 install --user behave nose
- sudo pear install PHP_CodeSniffer
+
+ sudo apt-get install -y composer php-cgi php-cli php-mbstring php-xml zip unzip
+
+ composer global require "squizlabs/php_codesniffer=*"
+ sudo ln -s ~/.config/composer/vendor/bin/phpcs /usr/bin/
+
+ composer global require "phpunit/phpunit=8.*"
+ sudo ln -s ~/.config/composer/vendor/bin/phpunit /usr/bin/
#
# System Configuration
# ---------------------
#
# Tune the postgresql configuration, which is located in
-# `/etc/postgresql/9.5/main/postgresql.conf`. See section *Postgres Tuning* in
+# `/etc/postgresql/10/main/postgresql.conf`. See section *Postgres Tuning* in
# [the installation page](../admin/Installation.md#postgresql-tuning)
# for the parameters to change.
#
export APT_LISTCHANGES_FRONTEND=none #DOCS:
export DEBIAN_FRONTEND=noninteractive #DOCS:
+#
+# !!! danger "Important"
+# Ubuntu 20.04 uses Postgresql 12 and Postgis 3, which are known to cause
+# performance issues. They are not recommended for a production
+# installation at the moment.
#
# *Note:* these installation instructions are also available in executable
-# form for use with vagrant under vagrant/Install-on-Ubuntu-16.sh.
+# form for use with vagrant under vagrant/Install-on-Ubuntu-20.sh.
#
# Installing the Required Software
# ================================
#
-# These instructions expect that you have a freshly installed Ubuntu 16.04.
+# These instructions expect that you have a freshly installed Ubuntu 20.04.
#
# Make sure all packages are are up-to-date by running:
#
#DOCS: :::sh
- sudo apt-get -o DPkg::options::="--force-confdef" -o DPkg::options::="--force-confold" --force-yes -fuy install grub-pc #DOCS:
+ sudo apt-get \ #DOCS:
+ -o DPkg::options::="--force-confdef" -o DPkg::options::="--force-confold" \ #DOCS:
+ --allow-downgrades --allow-remove-essential --allow-change-held-packages \ #DOCS:
+ -fuy install grub-pc #DOCS:
sudo apt-get update -qq
# Now you can install all packages needed for Nominatim:
sudo apt-get install -y build-essential cmake g++ libboost-dev libboost-system-dev \
- libboost-filesystem-dev libexpat1-dev zlib1g-dev libxml2-dev\
+ libboost-filesystem-dev libexpat1-dev zlib1g-dev \
libbz2-dev libpq-dev libproj-dev \
- postgresql-server-dev-9.5 postgresql-9.5-postgis-2.2 \
- postgresql-contrib-9.5 \
- apache2 php php-pgsql libapache2-mod-php php-pear php-db \
- php-intl git
+ postgresql-server-dev-12 postgresql-12-postgis-3 \
+ postgresql-contrib postgresql-12-postgis-3-scripts \
+ apache2 php php-pgsql libapache2-mod-php \
+ php-intl python3-setuptools python3-dev python3-pip \
+ python3-psycopg2 python3-tidylib git
# If you want to run the test suite, you need to install the following
# additional packages:
- sudo apt-get install -y python3-setuptools python3-dev python3-pip \
- python3-psycopg2 python3-tidylib phpunit php-cgi
+ sudo apt-get install -y phpunit php-codesniffer php-cgi
pip3 install --user behave nose
- sudo pear install PHP_CodeSniffer
-
#
# System Configuration
# ====================
# ---------------------
#
# Tune the postgresql configuration, which is located in
-# `/etc/postgresql/9.5/main/postgresql.conf`. See section *Postgres Tuning* in
+# `/etc/postgresql/12/main/postgresql.conf`. See section *Postgres Tuning* in
# [the installation page](../admin/Installation.md#postgresql-tuning)
# for the parameters to change.
#
#!/bin/bash
# This script runs in a travis-ci.org virtual machine
-# https://docs.travis-ci.com/user/trusty-ci-environment/
-# Ubuntu 14 (trusty)
+# https://docs.travis-ci.com/user/reference/xenial/
+# Ubuntu 16 (xenial)
# user 'travis'
# $TRAVIS_BUILD_DIR is /home/travis/build/openstreetmap/Nominatim/, for others see
# https://docs.travis-ci.com/user/environment-variables/#Default-Environment-Variables
sudo apt-get update -qq
sudo apt-get install -y -qq libboost-dev libboost-system-dev \
- libboost-filesystem-dev libexpat1-dev zlib1g-dev libxml2-dev\
- libbz2-dev libpq-dev libgeos-c1 libgeos++-dev libproj-dev \
- postgresql-server-dev-9.6 postgresql-9.6-postgis-2.3 postgresql-contrib-9.6 \
- apache2 php5 php5-pgsql php5-intl php-pear
+ libboost-filesystem-dev libexpat1-dev zlib1g-dev\
+ libbz2-dev libpq-dev libproj-dev \
+ postgresql-server-dev-9.6 postgresql-9.6-postgis-2.4 postgresql-contrib-9.6 \
+ apache2 php php-pgsql php-intl
-sudo apt-get install -y -qq python3-dev python3-pip python3-psycopg2 php5-cgi
+sudo apt-get install -y -qq python3-dev python3-pip php-cgi
pip3 install --quiet behave nose pytidylib psycopg2-binary
-# Travis uses phpenv to support multiple PHP versions. We need to make sure
-# these packages get installed to the phpenv-set PHP (below /home/travis/.phpenv/),
-# not the system PHP (/usr/bin/php)
-sudo PHP_PEAR_PHP_BIN=`which php` pear -q install pear/PEAR-1.10.0
-sudo PHP_PEAR_PHP_BIN=`which php` pear -q install DB
-sudo PHP_PEAR_PHP_BIN=`which php` pear -q install PHP_CodeSniffer
-sudo PHP_PEAR_PHP_BIN=`which php` pear list
-# re-populate the shims/ directory, e.g. adds phpcs
-phpenv rehash
-ls -la /home/travis/.phpenv/shims/
-
-# $PHPENV_VERSION and $TRAVIS_PHP_VERSION are unset.
-export PHPENV_VERSION=$(cat /home/travis/.phpenv/version)
-
-# add lib/php/pear to the PHP include path
-tee /tmp/travis.php.ini << EOF
-include_path = .:/home/travis/.phpenv/versions/$PHPENV_VERSION/share/pear:/home/travis/.phpenv/versions/$PHPENV_VERSION/lib/php/pear
-EOF
-phpenv config-add /tmp/travis.php.ini
+# https://github.com/squizlabs/PHP_CodeSniffer
+composer global require "squizlabs/php_codesniffer=*"
+sudo ln -s /home/travis/.config/composer/vendor/bin/phpcs /usr/bin/
+composer global require "phpunit/phpunit=7.*"
+sudo ln -s /home/travis/.config/composer/vendor/bin/phpunit /usr/bin/
sudo -u postgres createuser -S www-data
tee settings/local.php << EOF
<?php
@define('CONST_Website_BaseURL', '/nominatim/');
- @define('CONST_Database_DSN', 'pgsql://@/test_api_nominatim');
+ @define('CONST_Database_DSN', 'pgsql:dbname=test_api_nominatim');
@define('CONST_Wikipedia_Data_Path', CONST_BasePath.'/test/testdb');
EOF
-.leaflet-control-minimap{border:rgba(255,255,255,1) solid;box-shadow:0 1px 5px rgba(0,0,0,.65);border-radius:3px;background:#f8f8f9;transition:all .6s}.leaflet-control-minimap a{background-color:rgba(255,255,255,1);background-repeat:no-repeat;z-index:99999;transition:all .6s}.leaflet-control-minimap a.minimized-bottomright{-webkit-transform:rotate(180deg);transform:rotate(180deg);border-radius:0}.leaflet-control-minimap a.minimized-topleft{-webkit-transform:rotate(0deg);transform:rotate(0deg);border-radius:0}.leaflet-control-minimap a.minimized-bottomleft{-webkit-transform:rotate(270deg);transform:rotate(270deg);border-radius:0}.leaflet-control-minimap a.minimized-topright{-webkit-transform:rotate(90deg);transform:rotate(90deg);border-radius:0}.leaflet-control-minimap-toggle-display{background-image:url(images/toggle.svg);background-size:cover;position:absolute;border-radius:3px 0 0}.leaflet-oldie .leaflet-control-minimap-toggle-display{background-image:url(images/toggle.png)}.leaflet-control-minimap-toggle-display-bottomright{bottom:0;right:0}.leaflet-control-minimap-toggle-display-topleft{top:0;left:0;-webkit-transform:rotate(180deg);transform:rotate(180deg)}.leaflet-control-minimap-toggle-display-bottomleft{bottom:0;left:0;-webkit-transform:rotate(90deg);transform:rotate(90deg)}.leaflet-control-minimap-toggle-display-topright{top:0;right:0;-webkit-transform:rotate(270deg);transform:rotate(270deg)}.leaflet-oldie .leaflet-control-minimap{border:1px solid #999}.leaflet-oldie .leaflet-control-minimap a{background-color:#fff}.leaflet-oldie .leaflet-control-minimap a.minimized{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=2)}
+.leaflet-control-minimap{border:rgba(255,255,255,1) solid;box-shadow:0 1px 5px rgba(0,0,0,.65);border-radius:3px;background:#f8f8f9;transition:all .6s}.leaflet-control-minimap a{background-color:rgba(255,255,255,1);background-repeat:no-repeat;z-index:99999;transition:all .6s}.leaflet-control-minimap a.minimized-bottomright{-webkit-transform:rotate(180deg);transform:rotate(180deg);border-radius:0}.leaflet-control-minimap a.minimized-topleft{-webkit-transform:rotate(0deg);transform:rotate(0deg);border-radius:0}.leaflet-control-minimap a.minimized-bottomleft{-webkit-transform:rotate(270deg);transform:rotate(270deg);border-radius:0}.leaflet-control-minimap a.minimized-topright{-webkit-transform:rotate(90deg);transform:rotate(90deg);border-radius:0}.leaflet-control-minimap-toggle-display{background-image:url(images/toggle.svg);background-size:cover;position:absolute;border-radius:3px 0 0}.leaflet-oldie .leaflet-control-minimap-toggle-display{background-image:url(images/toggle.png)}.leaflet-control-minimap-toggle-display-bottomright{bottom:0;right:0}.leaflet-control-minimap-toggle-display-topleft{top:0;left:0;-webkit-transform:rotate(180deg);transform:rotate(180deg)}.leaflet-control-minimap-toggle-display-bottomleft{bottom:0;left:0;-webkit-transform:rotate(90deg);transform:rotate(90deg)}.leaflet-control-minimap-toggle-display-topright{top:0;right:0;-webkit-transform:rotate(270deg);transform:rotate(270deg)}.leaflet-oldie .leaflet-control-minimap{border:1px solid #999}.leaflet-oldie .leaflet-control-minimap a{background-color:#fff}.leaflet-oldie .leaflet-control-minimap a.minimized{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=2)}
\ No newline at end of file
margin: 10px 0;
}
+#details-index-page .search-form {
+ padding: 20px 10px;
+ margin: 2em 0;
+}
+#details-index-page .search-form h4 {
+ margin-top: 0;
+}
+#details-index-page .search-form .form-control{
+ width: 30em;
+}
+
footer {
text-align: center;
padding: 2em 0;
user-select: none;\r
-webkit-user-drag: none;\r
}\r
+/* Prevents IE11 from highlighting tiles in blue */\r
+.leaflet-tile::selection {\r
+ background: transparent;\r
+}\r
/* Safari renders non-retina tile on retina better with this, but Chrome is worse */\r
.leaflet-safari .leaflet-tile {\r
image-rendering: -webkit-optimize-contrast;\r
.leaflet-container .leaflet-marker-pane img,\r
.leaflet-container .leaflet-shadow-pane img,\r
.leaflet-container .leaflet-tile-pane img,\r
-.leaflet-container img.leaflet-image-layer {\r
+.leaflet-container img.leaflet-image-layer,\r
+.leaflet-container .leaflet-tile {\r
max-width: none !important;\r
max-height: none !important;\r
}\r
opacity: 0;\r
-webkit-transition: opacity 0.2s linear;\r
-moz-transition: opacity 0.2s linear;\r
- -o-transition: opacity 0.2s linear;\r
transition: opacity 0.2s linear;\r
}\r
.leaflet-fade-anim .leaflet-map-pane .leaflet-popup {\r
.leaflet-zoom-anim .leaflet-zoom-animated {\r
-webkit-transition: -webkit-transform 0.25s cubic-bezier(0,0,0.25,1);\r
-moz-transition: -moz-transform 0.25s cubic-bezier(0,0,0.25,1);\r
- -o-transition: -o-transform 0.25s cubic-bezier(0,0,0.25,1);\r
transition: transform 0.25s cubic-bezier(0,0,0.25,1);\r
}\r
.leaflet-zoom-anim .leaflet-tile,\r
.leaflet-pan-anim .leaflet-tile {\r
-webkit-transition: none;\r
-moz-transition: none;\r
- -o-transition: none;\r
transition: none;\r
}\r
\r
.leaflet-grab {\r
cursor: -webkit-grab;\r
cursor: -moz-grab;\r
+ cursor: grab;\r
}\r
.leaflet-crosshair,\r
.leaflet-crosshair .leaflet-interactive {\r
cursor: move;\r
cursor: -webkit-grabbing;\r
cursor: -moz-grabbing;\r
+ cursor: grabbing;\r
}\r
\r
/* marker & overlays interactivity */\r
\r
.leaflet-marker-icon.leaflet-interactive,\r
.leaflet-image-layer.leaflet-interactive,\r
-.leaflet-pane > svg path.leaflet-interactive {\r
+.leaflet-pane > svg path.leaflet-interactive,\r
+svg.leaflet-image-layer.leaflet-interactive path {\r
pointer-events: visiblePainted; /* IE 9-10 doesn't have auto */\r
pointer-events: auto;\r
}\r
-webkit-transform: rotate(45deg);\r
-moz-transform: rotate(45deg);\r
-ms-transform: rotate(45deg);\r
- -o-transform: rotate(45deg);\r
transform: rotate(45deg);\r
}\r
.leaflet-popup-content-wrapper,\r
-
-form {
+.top-bar {
width: 100%;
padding: 1em 15px;
}
-form #q {
- min-width: 500px;
+
+.top-bar #q {
+ max-width: 500px;
}
@media (max-width: 850px) {
form #q {
width: 100%;
}
.search-button-group {
- display: inline
+ display: inline;
}
}
+
+.search-button-group {
+ margin-top: 3px;
+ box-sizing: content-box;
+ margin-bottom: 3px;
+}
+
+label {
+ font-weight: normal;
+}
+
<?php
-require_once(dirname(dirname(__FILE__)).'/settings/settings.php');
require_once(CONST_BasePath.'/lib/init-website.php');
require_once(CONST_BasePath.'/lib/log.php');
require_once(CONST_BasePath.'/lib/output.php');
ini_set('memory_limit', '200M');
-$sOutputFormat = 'html';
+$oParams = new Nominatim\ParameterParser();
+$sOutputFormat = $oParams->getSet('format', array('html', 'json'), 'html');
+set_exception_handler_by_format($sOutputFormat);
-$oDB =& getDB();
+$oDB = new Nominatim\DB();
+$oDB->connect();
$sSQL = 'select placex.place_id, country_code,';
$sSQL .= " name->'name' as name, i.* from placex, import_polygon_delete i";
$sSQL .= ' where placex.osm_id = i.osm_id and placex.osm_type = i.osm_type';
$sSQL .= ' and placex.class = i.class and placex.type = i.type';
-$aPolygons = chksql($oDB->getAll($sSQL), 'Could not get list of deleted OSM elements.');
+$aPolygons = $oDB->getAll($sSQL, null, 'Could not get list of deleted OSM elements.');
if (CONST_Debug) {
var_dump($aPolygons);
exit;
}
-?>
-<!DOCTYPE html>
-<html>
-<head>
- <meta charset="utf-8"/>
- <meta http-equiv="Content-Type" content="text/html;charset=utf-8" >
-
- <title>Nominatim Deleted Data</title>
-
- <meta name="description" content="List of OSM data that has been deleted" lang="en-US" />
-
-</head>
-
-<body>
-<style type="text/css">
-table {
- border-width: 1px;
- border-spacing: 0px;
- border-style: solid;
- border-color: gray;
- border-collapse: collapse;
- background-color: white;
- margin: 10px;
-}
-table th {
- border-width: 1px;
- padding: 2px;
- border-style: inset;
- border-color: gray;
- border-left-color: #ddd;
- border-right-color: #ddd;
- background-color: #eee;
- -moz-border-radius: 0px 0px 0px 0px;
-}
-table td {
- border-width: 1px;
- padding: 2px;
- border-style: inset;
- border-color: gray;
- border-left-color: #ddd;
- border-right-color: #ddd;
- background-color: white;
- -moz-border-radius: 0px 0px 0px 0px;
-}
-</style>
-
-<p>Objects in this table have been deleted in OSM but are still in the Nominatim database.</p>
-
-<table>
-<?php
-
-if (!$aPolygons) exit;
-echo '<tr>';
-// var_dump($aPolygons[0]);
-foreach ($aPolygons[0] as $sCol => $sVal) {
- echo '<th>'.$sCol.'</th>';
+if ($sOutputFormat == 'json') {
+ echo javascript_renderData($aPolygons);
+} else {
+ include(CONST_BasePath.'/lib/template/deletable-html.php');
}
-echo '</tr>';
-foreach ($aPolygons as $aRow) {
- echo '<tr>';
- foreach ($aRow as $sCol => $sVal) {
- switch ($sCol) {
- case 'osm_id':
- echo '<td>'.osmLink($aRow).'</td>';
- break;
- case 'place_id':
- echo '<td>'.detailsLink($aRow).'</td>';
- break;
- default:
- echo '<td>'.($sVal?$sVal:' ').'</td>';
- break;
- }
- }
- echo '</tr>';
-}
-
-?>
-</table>
-
-
-
-</body>
-</html>
<?php
-@define('CONST_ConnectionBucket_PageType', 'Details');
-require_once(dirname(dirname(__FILE__)).'/settings/settings.php');
require_once(CONST_BasePath.'/lib/init-website.php');
require_once(CONST_BasePath.'/lib/log.php');
require_once(CONST_BasePath.'/lib/output.php');
$oParams = new Nominatim\ParameterParser();
$sOutputFormat = $oParams->getSet('format', array('html', 'json'), 'html');
+set_exception_handler_by_format($sOutputFormat);
$aLangPrefOrder = $oParams->getPreferredLanguages();
-$sLanguagePrefArraySQL = 'ARRAY['.join(',', array_map('getDBQuoted', $aLangPrefOrder)).']';
$sPlaceId = $oParams->getString('place_id');
$sOsmType = $oParams->getSet('osmtype', array('N', 'W', 'R'));
$bGroupHierarchy = $oParams->getBool('group_hierarchy', false);
$bIncludePolygonAsGeoJSON = $oParams->getBool('polygon_geojson', $sOutputFormat == 'html');
-$oDB =& getDB();
+$oDB = new Nominatim\DB();
+$oDB->connect();
+
+$sLanguagePrefArraySQL = $oDB->getArraySQL($oDB->getDBQuotedList($aLangPrefOrder));
+
+if ($sOutputFormat == 'html' && !$sPlaceId && !$sOsmType) {
+ include(CONST_BasePath.'/lib/template/details-index-html.php');
+ exit;
+}
if ($sOsmType && $iOsmId > 0) {
- $sSQL = sprintf(
- "SELECT place_id FROM placex WHERE osm_type='%s' AND osm_id=%d",
- $sOsmType,
- $iOsmId
- );
+ $sSQL = 'SELECT place_id FROM placex WHERE osm_type = :type AND osm_id = :id';
+ $aSQLParams = array(':type' => $sOsmType, ':id' => $iOsmId);
// osm_type and osm_id are not unique enough
if ($sClass) {
- $sSQL .= " AND class='".$sClass."'";
+ $sSQL .= ' AND class= :class';
+ $aSQLParams[':class'] = $sClass;
}
$sSQL .= ' ORDER BY class ASC';
- $sPlaceId = chksql($oDB->getOne($sSQL));
+ $sPlaceId = $oDB->getOne($sSQL, $aSQLParams);
+
+
+ // Nothing? Maybe it's an interpolation.
+ // XXX Simply returns the first parent street it finds. It should
+ // get a house number and get the right interpolation.
+ if (!$sPlaceId && $sOsmType == 'W' && (!$sClass || $sClass == 'place')) {
+ $sSQL = 'SELECT place_id FROM location_property_osmline'
+ .' WHERE osm_id = :id LIMIT 1';
+ $sPlaceId = $oDB->getOne($sSQL, array(':id' => $iOsmId));
+ }
// Be nice about our error messages for broken geometry
$sSQL .= ' ST_AsText(prevgeometry) AS prevgeom, ';
$sSQL .= ' ST_AsText(newgeometry) AS newgeom';
$sSQL .= ' FROM import_polygon_error ';
- $sSQL .= " WHERE osm_type = '".$sOsmType."'";
- $sSQL .= ' AND osm_id = '.$iOsmId;
+ $sSQL .= ' WHERE osm_type = :type';
+ $sSQL .= ' AND osm_id = :id';
$sSQL .= ' ORDER BY updated DESC';
$sSQL .= ' LIMIT 1';
- $aPointDetails = chksql($oDB->getRow($sSQL));
- if (!PEAR::isError($aPointDetails) && $aPointDetails) {
+ $aPointDetails = $oDB->getRow($sSQL, array(':type' => $sOsmType, ':id' => $iOsmId));
+ if ($aPointDetails) {
if (preg_match('/\[(-?\d+\.\d+) (-?\d+\.\d+)\]/', $aPointDetails['errormessage'], $aMatches)) {
$aPointDetails['error_x'] = $aMatches[1];
$aPointDetails['error_y'] = $aMatches[2];
}
-if (!$sPlaceId) userError('Please select a place id');
+if ($sPlaceId === false) userError('Please select a place id');
$iPlaceID = (int)$sPlaceId;
if (CONST_Use_US_Tiger_Data) {
- $iParentPlaceID = chksql($oDB->getOne('SELECT parent_place_id FROM location_property_tiger WHERE place_id = '.$iPlaceID));
+ $iParentPlaceID = $oDB->getOne('SELECT parent_place_id FROM location_property_tiger WHERE place_id = '.$iPlaceID);
if ($iParentPlaceID) $iPlaceID = $iParentPlaceID;
}
// interpolated house numbers
-$iParentPlaceID = chksql($oDB->getOne('SELECT parent_place_id FROM location_property_osmline WHERE place_id = '.$iPlaceID));
+$iParentPlaceID = $oDB->getOne('SELECT parent_place_id FROM location_property_osmline WHERE place_id = '.$iPlaceID);
if ($iParentPlaceID) $iPlaceID = $iParentPlaceID;
// artificial postcodes
-$iParentPlaceID = chksql($oDB->getOne('SELECT parent_place_id FROM location_postcode WHERE place_id = '.$iPlaceID));
+$iParentPlaceID = $oDB->getOne('SELECT parent_place_id FROM location_postcode WHERE place_id = '.$iPlaceID);
if ($iParentPlaceID) $iPlaceID = $iParentPlaceID;
if (CONST_Use_Aux_Location_data) {
- $iParentPlaceID = chksql($oDB->getOne('SELECT parent_place_id FROM location_property_aux WHERE place_id = '.$iPlaceID));
+ $iParentPlaceID = $oDB->getOne('SELECT parent_place_id FROM location_property_aux WHERE place_id = '.$iPlaceID);
if ($iParentPlaceID) $iPlaceID = $iParentPlaceID;
}
$sSQL .= ' parent_place_id, ';
$sSQL .= ' rank_address, ';
$sSQL .= ' rank_search, ';
-$sSQL .= ' get_searchrank_label(rank_search) AS rank_search_label,'; // only used in HTML output
$sSQL .= " get_name_by_language(name,$sLanguagePrefArraySQL) AS localname, ";
$sSQL .= " ST_GeometryType(geometry) in ('ST_Polygon','ST_MultiPolygon') AS isarea, ";
$sSQL .= ' ST_y(centroid) AS lat, ';
$sSQL .= ' FROM placex ';
$sSQL .= " WHERE place_id = $iPlaceID";
-$aPointDetails = chksql($oDB->getRow($sSQL), 'Could not get details of place object.');
+$aPointDetails = $oDB->getRow($sSQL, null, 'Could not get details of place object.');
if (!$aPointDetails) {
userError('Unknown place id.');
$aPointDetails['localname'] = $aPointDetails['localname']?$aPointDetails['localname']:$aPointDetails['housenumber'];
$aPointDetails['icon'] = Nominatim\ClassTypes\getProperty($aPointDetails, 'icon', false);
+$aPointDetails['rank_search_label'] = getSearchRankLabel($aPointDetails['rank_search']); // only used in HTML format
// Get all alternative names (languages, etc)
$sSQL = 'SELECT (each(name)).key,(each(name)).value FROM placex ';
$sSQL .= "WHERE place_id = $iPlaceID ORDER BY (each(name)).key";
$aPointDetails['aNames'] = $oDB->getAssoc($sSQL);
-if (PEAR::isError($aPointDetails['aNames'])) { // possible timeout
- $aPointDetails['aNames'] = array();
-}
// Address tags
$sSQL = 'SELECT (each(address)).key as key,(each(address)).value FROM placex ';
$sSQL .= "WHERE place_id = $iPlaceID ORDER BY key";
$aPointDetails['aAddressTags'] = $oDB->getAssoc($sSQL);
-if (PEAR::isError($aPointDetails['aAddressTags'])) { // possible timeout
- $aPointDetails['aAddressTags'] = array();
-}
// Extra tags
$sSQL = 'SELECT (each(extratags)).key,(each(extratags)).value FROM placex ';
$sSQL .= "WHERE place_id = $iPlaceID ORDER BY (each(extratags)).key";
$aPointDetails['aExtraTags'] = $oDB->getAssoc($sSQL);
-if (PEAR::isError($aPointDetails['aExtraTags'])) { // possible timeout
- $aPointDetails['aExtraTags'] = array();
-}
// Address
$aAddressLines = false;
$sSQL .= " get_name_by_language(name, $sLanguagePrefArraySQL), ";
$sSQL .= ' housenumber';
$aLinkedLines = $oDB->getAll($sSQL);
- if (PEAR::isError($aLinkedLines)) { // possible timeout
- $aLinkedLines = array();
- }
}
// All places this is an imediate parent of
$sSQL .= ' localname, ';
$sSQL .= ' housenumber';
$aHierarchyLines = $oDB->getAll($sSQL);
- if (PEAR::isError($aHierarchyLines)) { // possible timeout
- $aHierarchyLines = array();
- }
}
$aPlaceSearchNameKeywords = false;
$aPlaceSearchAddressKeywords = false;
if ($bIncludeKeywords) {
$sSQL = "SELECT * FROM search_name WHERE place_id = $iPlaceID";
- $aPlaceSearchName = $oDB->getRow($sSQL); // can be null
- if (!$aPlaceSearchName || PEAR::isError($aPlaceSearchName)) { // possible timeout
- $aPlaceSearchName = array();
- }
+ $aPlaceSearchName = $oDB->getRow($sSQL);
if (!empty($aPlaceSearchName)) {
- $sSQL = 'SELECT * FROM word WHERE word_id in ('.substr($aPlaceSearchName['name_vector'], 1, -1).')';
- $aPlaceSearchNameKeywords = $oDB->getAll($sSQL);
- if (PEAR::isError($aPlaceSearchNameKeywords)) { // possible timeout
- $aPlaceSearchNameKeywords = array();
+ $sWordIds = substr($aPlaceSearchName['name_vector'], 1, -1);
+ if (!empty($sWordIds)) {
+ $sSQL = 'SELECT * FROM word WHERE word_id in ('.$sWordIds.')';
+ $aPlaceSearchNameKeywords = $oDB->getAll($sSQL);
}
- $sSQL = 'SELECT * FROM word WHERE word_id in ('.substr($aPlaceSearchName['nameaddress_vector'], 1, -1).')';
- $aPlaceSearchAddressKeywords = $oDB->getAll($sSQL);
- if (PEAR::isError($aPlaceSearchAddressKeywords)) { // possible timeout
- $aPlaceSearchAddressKeywords = array();
+ $sWordIds = substr($aPlaceSearchName['nameaddress_vector'], 1, -1);
+ if (!empty($sWordIds)) {
+ $sSQL = 'SELECT * FROM word WHERE word_id in ('.$sWordIds.')';
+ $aPlaceSearchAddressKeywords = $oDB->getAll($sSQL);
}
}
}
if ($sOutputFormat=='html') {
$sSQL = "SELECT TO_CHAR(lastimportdate,'YYYY/MM/DD HH24:MI')||' GMT' FROM import_status LIMIT 1";
- $sDataDate = chksql($oDB->getOne($sSQL));
+ $sDataDate = $oDB->getOne($sSQL);
$sTileURL = CONST_Map_Tile_URL;
$sTileAttribution = CONST_Map_Tile_Attribution;
}
<?php
-@define('CONST_ConnectionBucket_PageType', 'Details');
-require_once(dirname(dirname(__FILE__)).'/settings/settings.php');
require_once(CONST_BasePath.'/lib/init-website.php');
require_once(CONST_BasePath.'/lib/log.php');
require_once(CONST_BasePath.'/lib/AddressDetails.php');
$sOutputFormat = $oParams->getSet('format', array('html', 'json'), 'html');
$aLangPrefOrder = $oParams->getPreferredLanguages();
-$sLanguagePrefArraySQL = 'ARRAY['.join(',', array_map('getDBQuoted', $aLangPrefOrder)).']';
+
$sPlaceId = $oParams->getString('place_id');
$sOsmType = $oParams->getSet('osmtype', array('N', 'W', 'R'));
$iOsmId = $oParams->getInt('osmid', -1);
-$oDB =& getDB();
+$oDB = new Nominatim\DB();
+$oDB->connect();
+
+$sLanguagePrefArraySQL = $oDB->getArraySQL($oDB->getDBQuotedList($aLangPrefOrder));
if ($sOsmType && $iOsmId > 0) {
- $sPlaceId = chksql($oDB->getOne("select place_id from placex where osm_type = '".$sOsmType."' and osm_id = ".$iOsmId." order by type = 'postcode' asc"));
+ $sPlaceId = $oDB->getOne("select place_id from placex where osm_type = '".$sOsmType."' and osm_id = ".$iOsmId." order by type = 'postcode' asc");
// Be nice about our error messages for broken geometry
if (!$sPlaceId) {
$sSQL .= ' ST_AsText(prevgeometry) as prevgeom, ST_AsText(newgeometry) as newgeom';
$sSQL .= " from import_polygon_error where osm_type = '".$sOsmType;
$sSQL .= "' and osm_id = ".$iOsmId.' order by updated desc limit 1';
- $aPointDetails = chksql($oDB->getRow($sSQL));
+ $aPointDetails = $oDB->getRow($sSQL);
if ($aPointDetails) {
if (preg_match('/\[(-?\d+\.\d+) (-?\d+\.\d+)\]/', $aPointDetails['errormessage'], $aMatches)) {
$aPointDetails['error_x'] = $aMatches[1];
$iPlaceID = (int)$sPlaceId;
if (CONST_Use_US_Tiger_Data) {
- $iParentPlaceID = chksql($oDB->getOne('select parent_place_id from location_property_tiger where place_id = '.$iPlaceID));
+ $iParentPlaceID = $oDB->getOne('select parent_place_id from location_property_tiger where place_id = '.$iPlaceID);
if ($iParentPlaceID) $iPlaceID = $iParentPlaceID;
}
if (CONST_Use_Aux_Location_data) {
- $iParentPlaceID = chksql($oDB->getOne('select parent_place_id from location_property_aux where place_id = '.$iPlaceID));
+ $iParentPlaceID = $oDB->getOne('select parent_place_id from location_property_aux where place_id = '.$iPlaceID);
if ($iParentPlaceID) $iPlaceID = $iParentPlaceID;
}
-$oAddressLookup = new AddressDetails($oDB, $iPlaceID, -1, $aLangPrefOrder);
+$oAddressLookup = new Nominatim\AddressDetails($oDB, $iPlaceID, -1, $aLangPrefOrder);
$aPlaceAddress = array_reverse($oAddressLookup->getAddressDetails());
if (empty($aPlaceAddress)) userError('Unknown place id.');
exit;
}
-$aRelatedPlaceIDs = chksql($oDB->getCol($sSQL = "select place_id from placex where linked_place_id = $iPlaceID or place_id = $iPlaceID"));
+$aRelatedPlaceIDs = $oDB->getCol("select place_id from placex where linked_place_id = $iPlaceID or place_id = $iPlaceID");
$sSQL = 'select obj.place_id, osm_type, osm_id, class, type, housenumber, admin_level,';
$sSQL .= " rank_address, ST_GeometryType(geometry) in ('ST_Polygon','ST_MultiPolygon') as isarea, st_area(geometry) as area, ";
$sSQL .= ' from (select placex.place_id, osm_type, osm_id, class, type, housenumber, admin_level, rank_address, rank_search, geometry, name from placex ';
$sSQL .= ' where parent_place_id in ('.join(',', $aRelatedPlaceIDs).') and name is not null order by rank_address asc,rank_search asc limit 500) as obj';
$sSQL .= ' order by rank_address asc,rank_search asc,localname,class, type,housenumber';
-$aParentOfLines = chksql($oDB->getAll($sSQL));
+$aParentOfLines = $oDB->getAll($sSQL);
if (!empty($aParentOfLines)) {
echo '<h2>Parent Of:</h2>';
echo '<div class="line">';
echo '<span class="name">'.(trim($aAddressLine['localname'])?$aAddressLine['localname']:'<span class="noname">No Name</span>').'</span>';
echo ' (';
- echo '<span class="area">'.($aAddressLine['isarea']=='t'?'Polygon':'Point').'</span>';
+ echo '<span class="area">'.($aAddressLine['isarea']?'Polygon':'Point').'</span>';
if ($sOSMType) echo ', <span class="osm"><span class="label"></span>'.$sOSMType.' '.osmLink($aAddressLine).'</span>';
echo ', <a href="hierarchy.php?place_id='.$aAddressLine['place_id'].'">GOTO</a>';
echo ', '.$aAddressLine['area'];
-(function(factory,window){if(typeof define==="function"&&define.amd){define(["leaflet"],factory)}else if(typeof exports==="object"){module.exports=factory(require("leaflet"))}if(typeof window!=="undefined"&&window.L){window.L.Control.MiniMap=factory(L);window.L.control.minimap=function(layer,options){return new window.L.Control.MiniMap(layer,options)}}})(function(L){var MiniMap=L.Control.extend({includes:L.Mixin.Events,options:{position:"bottomright",toggleDisplay:false,zoomLevelOffset:-5,zoomLevelFixed:false,centerFixed:false,zoomAnimation:false,autoToggleDisplay:false,minimized:false,width:150,height:150,collapsedWidth:19,collapsedHeight:19,aimingRectOptions:{color:"#ff7800",weight:1,clickable:false},shadowRectOptions:{color:"#000000",weight:1,clickable:false,opacity:0,fillOpacity:0},strings:{hideText:"Hide MiniMap",showText:"Show MiniMap"},mapOptions:{}},initialize:function(layer,options){L.Util.setOptions(this,options);this.options.aimingRectOptions.clickable=false;this.options.shadowRectOptions.clickable=false;this._layer=layer},onAdd:function(map){this._mainMap=map;this._container=L.DomUtil.create("div","leaflet-control-minimap");this._container.style.width=this.options.width+"px";this._container.style.height=this.options.height+"px";L.DomEvent.disableClickPropagation(this._container);L.DomEvent.on(this._container,"mousewheel",L.DomEvent.stopPropagation);var mapOptions={attributionControl:false,dragging:!this.options.centerFixed,zoomControl:false,zoomAnimation:this.options.zoomAnimation,autoToggleDisplay:this.options.autoToggleDisplay,touchZoom:this.options.centerFixed?"center":!this._isZoomLevelFixed(),scrollWheelZoom:this.options.centerFixed?"center":!this._isZoomLevelFixed(),doubleClickZoom:this.options.centerFixed?"center":!this._isZoomLevelFixed(),boxZoom:!this._isZoomLevelFixed(),crs:map.options.crs};mapOptions=L.Util.extend(this.options.mapOptions,mapOptions);this._miniMap=new L.Map(this._container,mapOptions);this._miniMap.addLayer(this._layer);this._mainMapMoving=false;this._miniMapMoving=false;this._userToggledDisplay=false;this._minimized=false;if(this.options.toggleDisplay){this._addToggleButton()}this._miniMap.whenReady(L.Util.bind(function(){this._aimingRect=L.rectangle(this._mainMap.getBounds(),this.options.aimingRectOptions).addTo(this._miniMap);this._shadowRect=L.rectangle(this._mainMap.getBounds(),this.options.shadowRectOptions).addTo(this._miniMap);this._mainMap.on("moveend",this._onMainMapMoved,this);this._mainMap.on("move",this._onMainMapMoving,this);this._miniMap.on("movestart",this._onMiniMapMoveStarted,this);this._miniMap.on("move",this._onMiniMapMoving,this);this._miniMap.on("moveend",this._onMiniMapMoved,this)},this));return this._container},addTo:function(map){L.Control.prototype.addTo.call(this,map);var center=this.options.centerFixed||this._mainMap.getCenter();this._miniMap.setView(center,this._decideZoom(true));this._setDisplay(this.options.minimized);return this},onRemove:function(map){this._mainMap.off("moveend",this._onMainMapMoved,this);this._mainMap.off("move",this._onMainMapMoving,this);this._miniMap.off("moveend",this._onMiniMapMoved,this);this._miniMap.removeLayer(this._layer)},changeLayer:function(layer){this._miniMap.removeLayer(this._layer);this._layer=layer;this._miniMap.addLayer(this._layer)},_addToggleButton:function(){this._toggleDisplayButton=this.options.toggleDisplay?this._createButton("",this._toggleButtonInitialTitleText(),"leaflet-control-minimap-toggle-display leaflet-control-minimap-toggle-display-"+this.options.position,this._container,this._toggleDisplayButtonClicked,this):undefined;this._toggleDisplayButton.style.width=this.options.collapsedWidth+"px";this._toggleDisplayButton.style.height=this.options.collapsedHeight+"px"},_toggleButtonInitialTitleText:function(){if(this.options.minimized){return this.options.strings.showText}else{return this.options.strings.hideText}},_createButton:function(html,title,className,container,fn,context){var link=L.DomUtil.create("a",className,container);link.innerHTML=html;link.href="#";link.title=title;var stop=L.DomEvent.stopPropagation;L.DomEvent.on(link,"click",stop).on(link,"mousedown",stop).on(link,"dblclick",stop).on(link,"click",L.DomEvent.preventDefault).on(link,"click",fn,context);return link},_toggleDisplayButtonClicked:function(){this._userToggledDisplay=true;if(!this._minimized){this._minimize()}else{this._restore()}},_setDisplay:function(minimize){if(minimize!==this._minimized){if(!this._minimized){this._minimize()}else{this._restore()}}},_minimize:function(){if(this.options.toggleDisplay){this._container.style.width=this.options.collapsedWidth+"px";this._container.style.height=this.options.collapsedHeight+"px";this._toggleDisplayButton.className+=" minimized-"+this.options.position;this._toggleDisplayButton.title=this.options.strings.showText}else{this._container.style.display="none"}this._minimized=true;this._onToggle()},_restore:function(){if(this.options.toggleDisplay){this._container.style.width=this.options.width+"px";this._container.style.height=this.options.height+"px";this._toggleDisplayButton.className=this._toggleDisplayButton.className.replace("minimized-"+this.options.position,"");this._toggleDisplayButton.title=this.options.strings.hideText}else{this._container.style.display="block"}this._minimized=false;this._onToggle()},_onMainMapMoved:function(e){if(!this._miniMapMoving){var center=this.options.centerFixed||this._mainMap.getCenter();this._mainMapMoving=true;this._miniMap.setView(center,this._decideZoom(true));this._setDisplay(this._decideMinimized())}else{this._miniMapMoving=false}this._aimingRect.setBounds(this._mainMap.getBounds())},_onMainMapMoving:function(e){this._aimingRect.setBounds(this._mainMap.getBounds())},_onMiniMapMoveStarted:function(e){if(!this.options.centerFixed){var lastAimingRect=this._aimingRect.getBounds();var sw=this._miniMap.latLngToContainerPoint(lastAimingRect.getSouthWest());var ne=this._miniMap.latLngToContainerPoint(lastAimingRect.getNorthEast());this._lastAimingRectPosition={sw:sw,ne:ne}}},_onMiniMapMoving:function(e){if(!this.options.centerFixed){if(!this._mainMapMoving&&this._lastAimingRectPosition){this._shadowRect.setBounds(new L.LatLngBounds(this._miniMap.containerPointToLatLng(this._lastAimingRectPosition.sw),this._miniMap.containerPointToLatLng(this._lastAimingRectPosition.ne)));this._shadowRect.setStyle({opacity:1,fillOpacity:.3})}}},_onMiniMapMoved:function(e){if(!this._mainMapMoving){this._miniMapMoving=true;this._mainMap.setView(this._miniMap.getCenter(),this._decideZoom(false));this._shadowRect.setStyle({opacity:0,fillOpacity:0})}else{this._mainMapMoving=false}},_isZoomLevelFixed:function(){var zoomLevelFixed=this.options.zoomLevelFixed;return this._isDefined(zoomLevelFixed)&&this._isInteger(zoomLevelFixed)},_decideZoom:function(fromMaintoMini){if(!this._isZoomLevelFixed()){if(fromMaintoMini){return this._mainMap.getZoom()+this.options.zoomLevelOffset}else{var currentDiff=this._miniMap.getZoom()-this._mainMap.getZoom();var proposedZoom=this._miniMap.getZoom()-this.options.zoomLevelOffset;var toRet;if(currentDiff>this.options.zoomLevelOffset&&this._mainMap.getZoom()<this._miniMap.getMinZoom()-this.options.zoomLevelOffset){if(this._miniMap.getZoom()>this._lastMiniMapZoom){toRet=this._mainMap.getZoom()+1;this._miniMap.setZoom(this._miniMap.getZoom()-1)}else{toRet=this._mainMap.getZoom()}}else{toRet=proposedZoom}this._lastMiniMapZoom=this._miniMap.getZoom();return toRet}}else{if(fromMaintoMini){return this.options.zoomLevelFixed}else{return this._mainMap.getZoom()}}},_decideMinimized:function(){if(this._userToggledDisplay){return this._minimized}if(this.options.autoToggleDisplay){if(this._mainMap.getBounds().contains(this._miniMap.getBounds())){return true}return false}return this._minimized},_isInteger:function(value){return typeof value==="number"},_isDefined:function(value){return typeof value!=="undefined"},_onToggle:function(){L.Util.requestAnimFrame(function(){L.DomEvent.on(this._container,"transitionend",this._fireToggleEvents,this);if(!L.Browser.any3d){L.Util.requestAnimFrame(this._fireToggleEvents,this)}},this)},_fireToggleEvents:function(){L.DomEvent.off(this._container,"transitionend",this._fireToggleEvents,this);var data={minimized:this._minimized};this.fire(this._minimized?"minimize":"restore",data);this.fire("toggle",data)}});L.Map.mergeOptions({miniMapControl:false});L.Map.addInitHook(function(){if(this.options.miniMapControl){this.miniMapControl=(new MiniMap).addTo(this)}});return MiniMap},window);
+(function(factory,window){if(typeof define==="function"&&define.amd){define(["leaflet"],factory)}else if(typeof exports==="object"){module.exports=factory(require("leaflet"))}if(typeof window!=="undefined"&&window.L){window.L.Control.MiniMap=factory(L);window.L.control.minimap=function(layer,options){return new window.L.Control.MiniMap(layer,options)}}})(function(L){var MiniMap=L.Control.extend({includes:L.Evented?L.Evented.prototype:L.Mixin.Events,options:{position:"bottomright",toggleDisplay:false,zoomLevelOffset:-5,zoomLevelFixed:false,centerFixed:false,zoomAnimation:false,autoToggleDisplay:false,minimized:false,width:150,height:150,collapsedWidth:19,collapsedHeight:19,aimingRectOptions:{color:"#ff7800",weight:1,clickable:false},shadowRectOptions:{color:"#000000",weight:1,clickable:false,opacity:0,fillOpacity:0},strings:{hideText:"Hide MiniMap",showText:"Show MiniMap"},mapOptions:{}},initialize:function(layer,options){L.Util.setOptions(this,options);this.options.aimingRectOptions.clickable=false;this.options.shadowRectOptions.clickable=false;this._layer=layer},onAdd:function(map){this._mainMap=map;this._container=L.DomUtil.create("div","leaflet-control-minimap");this._container.style.width=this.options.width+"px";this._container.style.height=this.options.height+"px";L.DomEvent.disableClickPropagation(this._container);L.DomEvent.on(this._container,"mousewheel",L.DomEvent.stopPropagation);var mapOptions={attributionControl:false,dragging:!this.options.centerFixed,zoomControl:false,zoomAnimation:this.options.zoomAnimation,autoToggleDisplay:this.options.autoToggleDisplay,touchZoom:this.options.centerFixed?"center":!this._isZoomLevelFixed(),scrollWheelZoom:this.options.centerFixed?"center":!this._isZoomLevelFixed(),doubleClickZoom:this.options.centerFixed?"center":!this._isZoomLevelFixed(),boxZoom:!this._isZoomLevelFixed(),crs:map.options.crs};mapOptions=L.Util.extend(this.options.mapOptions,mapOptions);this._miniMap=new L.Map(this._container,mapOptions);this._miniMap.addLayer(this._layer);this._mainMapMoving=false;this._miniMapMoving=false;this._userToggledDisplay=false;this._minimized=false;if(this.options.toggleDisplay){this._addToggleButton()}this._miniMap.whenReady(L.Util.bind(function(){this._aimingRect=L.rectangle(this._mainMap.getBounds(),this.options.aimingRectOptions).addTo(this._miniMap);this._shadowRect=L.rectangle(this._mainMap.getBounds(),this.options.shadowRectOptions).addTo(this._miniMap);this._mainMap.on("moveend",this._onMainMapMoved,this);this._mainMap.on("move",this._onMainMapMoving,this);this._miniMap.on("movestart",this._onMiniMapMoveStarted,this);this._miniMap.on("move",this._onMiniMapMoving,this);this._miniMap.on("moveend",this._onMiniMapMoved,this)},this));return this._container},addTo:function(map){L.Control.prototype.addTo.call(this,map);var center=this.options.centerFixed||this._mainMap.getCenter();this._miniMap.setView(center,this._decideZoom(true));this._setDisplay(this.options.minimized);return this},onRemove:function(map){this._mainMap.off("moveend",this._onMainMapMoved,this);this._mainMap.off("move",this._onMainMapMoving,this);this._miniMap.off("moveend",this._onMiniMapMoved,this);this._miniMap.removeLayer(this._layer)},changeLayer:function(layer){this._miniMap.removeLayer(this._layer);this._layer=layer;this._miniMap.addLayer(this._layer)},_addToggleButton:function(){this._toggleDisplayButton=this.options.toggleDisplay?this._createButton("",this._toggleButtonInitialTitleText(),"leaflet-control-minimap-toggle-display leaflet-control-minimap-toggle-display-"+this.options.position,this._container,this._toggleDisplayButtonClicked,this):undefined;this._toggleDisplayButton.style.width=this.options.collapsedWidth+"px";this._toggleDisplayButton.style.height=this.options.collapsedHeight+"px"},_toggleButtonInitialTitleText:function(){if(this.options.minimized){return this.options.strings.showText}else{return this.options.strings.hideText}},_createButton:function(html,title,className,container,fn,context){var link=L.DomUtil.create("a",className,container);link.innerHTML=html;link.href="#";link.title=title;var stop=L.DomEvent.stopPropagation;L.DomEvent.on(link,"click",stop).on(link,"mousedown",stop).on(link,"dblclick",stop).on(link,"click",L.DomEvent.preventDefault).on(link,"click",fn,context);return link},_toggleDisplayButtonClicked:function(){this._userToggledDisplay=true;if(!this._minimized){this._minimize()}else{this._restore()}},_setDisplay:function(minimize){if(minimize!==this._minimized){if(!this._minimized){this._minimize()}else{this._restore()}}},_minimize:function(){if(this.options.toggleDisplay){this._container.style.width=this.options.collapsedWidth+"px";this._container.style.height=this.options.collapsedHeight+"px";this._toggleDisplayButton.className+=" minimized-"+this.options.position;this._toggleDisplayButton.title=this.options.strings.showText}else{this._container.style.display="none"}this._minimized=true;this._onToggle()},_restore:function(){if(this.options.toggleDisplay){this._container.style.width=this.options.width+"px";this._container.style.height=this.options.height+"px";this._toggleDisplayButton.className=this._toggleDisplayButton.className.replace("minimized-"+this.options.position,"");this._toggleDisplayButton.title=this.options.strings.hideText}else{this._container.style.display="block"}this._minimized=false;this._onToggle()},_onMainMapMoved:function(e){if(!this._miniMapMoving){var center=this.options.centerFixed||this._mainMap.getCenter();this._mainMapMoving=true;this._miniMap.setView(center,this._decideZoom(true));this._setDisplay(this._decideMinimized())}else{this._miniMapMoving=false}this._aimingRect.setBounds(this._mainMap.getBounds())},_onMainMapMoving:function(e){this._aimingRect.setBounds(this._mainMap.getBounds())},_onMiniMapMoveStarted:function(e){if(!this.options.centerFixed){var lastAimingRect=this._aimingRect.getBounds();var sw=this._miniMap.latLngToContainerPoint(lastAimingRect.getSouthWest());var ne=this._miniMap.latLngToContainerPoint(lastAimingRect.getNorthEast());this._lastAimingRectPosition={sw:sw,ne:ne}}},_onMiniMapMoving:function(e){if(!this.options.centerFixed){if(!this._mainMapMoving&&this._lastAimingRectPosition){this._shadowRect.setBounds(new L.LatLngBounds(this._miniMap.containerPointToLatLng(this._lastAimingRectPosition.sw),this._miniMap.containerPointToLatLng(this._lastAimingRectPosition.ne)));this._shadowRect.setStyle({opacity:1,fillOpacity:.3})}}},_onMiniMapMoved:function(e){if(!this._mainMapMoving){this._miniMapMoving=true;this._mainMap.setView(this._miniMap.getCenter(),this._decideZoom(false));this._shadowRect.setStyle({opacity:0,fillOpacity:0})}else{this._mainMapMoving=false}},_isZoomLevelFixed:function(){var zoomLevelFixed=this.options.zoomLevelFixed;return this._isDefined(zoomLevelFixed)&&this._isInteger(zoomLevelFixed)},_decideZoom:function(fromMaintoMini){if(!this._isZoomLevelFixed()){if(fromMaintoMini){return this._mainMap.getZoom()+this.options.zoomLevelOffset}else{var currentDiff=this._miniMap.getZoom()-this._mainMap.getZoom();var proposedZoom=this._miniMap.getZoom()-this.options.zoomLevelOffset;var toRet;if(currentDiff>this.options.zoomLevelOffset&&this._mainMap.getZoom()<this._miniMap.getMinZoom()-this.options.zoomLevelOffset){if(this._miniMap.getZoom()>this._lastMiniMapZoom){toRet=this._mainMap.getZoom()+1;this._miniMap.setZoom(this._miniMap.getZoom()-1)}else{toRet=this._mainMap.getZoom()}}else{toRet=proposedZoom}this._lastMiniMapZoom=this._miniMap.getZoom();return toRet}}else{if(fromMaintoMini){return this.options.zoomLevelFixed}else{return this._mainMap.getZoom()}}},_decideMinimized:function(){if(this._userToggledDisplay){return this._minimized}if(this.options.autoToggleDisplay){if(this._mainMap.getBounds().contains(this._miniMap.getBounds())){return true}return false}return this._minimized},_isInteger:function(value){return typeof value==="number"},_isDefined:function(value){return typeof value!=="undefined"},_onToggle:function(){L.Util.requestAnimFrame(function(){L.DomEvent.on(this._container,"transitionend",this._fireToggleEvents,this);if(!L.Browser.any3d){L.Util.requestAnimFrame(this._fireToggleEvents,this)}},this)},_fireToggleEvents:function(){L.DomEvent.off(this._container,"transitionend",this._fireToggleEvents,this);var data={minimized:this._minimized};this.fire(this._minimized?"minimize":"restore",data);this.fire("toggle",data)}});L.Map.mergeOptions({miniMapControl:false});L.Map.addInitHook(function(){if(this.options.miniMapControl){this.miniMapControl=(new MiniMap).addTo(this)}});return MiniMap},window);
\ No newline at end of file
-/*! jQuery v2.1.4 | (c) 2005, 2015 jQuery Foundation, Inc. | jquery.org/license */
-!function(a,b){"object"==typeof module&&"object"==typeof module.exports?module.exports=a.document?b(a,!0):function(a){if(!a.document)throw new Error("jQuery requires a window with a document");return b(a)}:b(a)}("undefined"!=typeof window?window:this,function(a,b){var c=[],d=c.slice,e=c.concat,f=c.push,g=c.indexOf,h={},i=h.toString,j=h.hasOwnProperty,k={},l=a.document,m="2.1.4",n=function(a,b){return new n.fn.init(a,b)},o=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,p=/^-ms-/,q=/-([\da-z])/gi,r=function(a,b){return b.toUpperCase()};n.fn=n.prototype={jquery:m,constructor:n,selector:"",length:0,toArray:function(){return d.call(this)},get:function(a){return null!=a?0>a?this[a+this.length]:this[a]:d.call(this)},pushStack:function(a){var b=n.merge(this.constructor(),a);return b.prevObject=this,b.context=this.context,b},each:function(a,b){return n.each(this,a,b)},map:function(a){return this.pushStack(n.map(this,function(b,c){return a.call(b,c,b)}))},slice:function(){return this.pushStack(d.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(a){var b=this.length,c=+a+(0>a?b:0);return this.pushStack(c>=0&&b>c?[this[c]]:[])},end:function(){return this.prevObject||this.constructor(null)},push:f,sort:c.sort,splice:c.splice},n.extend=n.fn.extend=function(){var a,b,c,d,e,f,g=arguments[0]||{},h=1,i=arguments.length,j=!1;for("boolean"==typeof g&&(j=g,g=arguments[h]||{},h++),"object"==typeof g||n.isFunction(g)||(g={}),h===i&&(g=this,h--);i>h;h++)if(null!=(a=arguments[h]))for(b in a)c=g[b],d=a[b],g!==d&&(j&&d&&(n.isPlainObject(d)||(e=n.isArray(d)))?(e?(e=!1,f=c&&n.isArray(c)?c:[]):f=c&&n.isPlainObject(c)?c:{},g[b]=n.extend(j,f,d)):void 0!==d&&(g[b]=d));return g},n.extend({expando:"jQuery"+(m+Math.random()).replace(/\D/g,""),isReady:!0,error:function(a){throw new Error(a)},noop:function(){},isFunction:function(a){return"function"===n.type(a)},isArray:Array.isArray,isWindow:function(a){return null!=a&&a===a.window},isNumeric:function(a){return!n.isArray(a)&&a-parseFloat(a)+1>=0},isPlainObject:function(a){return"object"!==n.type(a)||a.nodeType||n.isWindow(a)?!1:a.constructor&&!j.call(a.constructor.prototype,"isPrototypeOf")?!1:!0},isEmptyObject:function(a){var b;for(b in a)return!1;return!0},type:function(a){return null==a?a+"":"object"==typeof a||"function"==typeof a?h[i.call(a)]||"object":typeof a},globalEval:function(a){var b,c=eval;a=n.trim(a),a&&(1===a.indexOf("use strict")?(b=l.createElement("script"),b.text=a,l.head.appendChild(b).parentNode.removeChild(b)):c(a))},camelCase:function(a){return a.replace(p,"ms-").replace(q,r)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toLowerCase()===b.toLowerCase()},each:function(a,b,c){var d,e=0,f=a.length,g=s(a);if(c){if(g){for(;f>e;e++)if(d=b.apply(a[e],c),d===!1)break}else for(e in a)if(d=b.apply(a[e],c),d===!1)break}else if(g){for(;f>e;e++)if(d=b.call(a[e],e,a[e]),d===!1)break}else for(e in a)if(d=b.call(a[e],e,a[e]),d===!1)break;return a},trim:function(a){return null==a?"":(a+"").replace(o,"")},makeArray:function(a,b){var c=b||[];return null!=a&&(s(Object(a))?n.merge(c,"string"==typeof a?[a]:a):f.call(c,a)),c},inArray:function(a,b,c){return null==b?-1:g.call(b,a,c)},merge:function(a,b){for(var c=+b.length,d=0,e=a.length;c>d;d++)a[e++]=b[d];return a.length=e,a},grep:function(a,b,c){for(var d,e=[],f=0,g=a.length,h=!c;g>f;f++)d=!b(a[f],f),d!==h&&e.push(a[f]);return e},map:function(a,b,c){var d,f=0,g=a.length,h=s(a),i=[];if(h)for(;g>f;f++)d=b(a[f],f,c),null!=d&&i.push(d);else for(f in a)d=b(a[f],f,c),null!=d&&i.push(d);return e.apply([],i)},guid:1,proxy:function(a,b){var c,e,f;return"string"==typeof b&&(c=a[b],b=a,a=c),n.isFunction(a)?(e=d.call(arguments,2),f=function(){return a.apply(b||this,e.concat(d.call(arguments)))},f.guid=a.guid=a.guid||n.guid++,f):void 0},now:Date.now,support:k}),n.each("Boolean Number String Function Array Date RegExp Object Error".split(" "),function(a,b){h["[object "+b+"]"]=b.toLowerCase()});function s(a){var b="length"in a&&a.length,c=n.type(a);return"function"===c||n.isWindow(a)?!1:1===a.nodeType&&b?!0:"array"===c||0===b||"number"==typeof b&&b>0&&b-1 in a}var t=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u="sizzle"+1*new Date,v=a.document,w=0,x=0,y=ha(),z=ha(),A=ha(),B=function(a,b){return a===b&&(l=!0),0},C=1<<31,D={}.hasOwnProperty,E=[],F=E.pop,G=E.push,H=E.push,I=E.slice,J=function(a,b){for(var c=0,d=a.length;d>c;c++)if(a[c]===b)return c;return-1},K="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",L="[\\x20\\t\\r\\n\\f]",M="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",N=M.replace("w","w#"),O="\\["+L+"*("+M+")(?:"+L+"*([*^$|!~]?=)"+L+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+N+"))|)"+L+"*\\]",P=":("+M+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+O+")*)|.*)\\)|)",Q=new RegExp(L+"+","g"),R=new RegExp("^"+L+"+|((?:^|[^\\\\])(?:\\\\.)*)"+L+"+$","g"),S=new RegExp("^"+L+"*,"+L+"*"),T=new RegExp("^"+L+"*([>+~]|"+L+")"+L+"*"),U=new RegExp("="+L+"*([^\\]'\"]*?)"+L+"*\\]","g"),V=new RegExp(P),W=new RegExp("^"+N+"$"),X={ID:new RegExp("^#("+M+")"),CLASS:new RegExp("^\\.("+M+")"),TAG:new RegExp("^("+M.replace("w","w*")+")"),ATTR:new RegExp("^"+O),PSEUDO:new RegExp("^"+P),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+L+"*(even|odd|(([+-]|)(\\d*)n|)"+L+"*(?:([+-]|)"+L+"*(\\d+)|))"+L+"*\\)|)","i"),bool:new RegExp("^(?:"+K+")$","i"),needsContext:new RegExp("^"+L+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+L+"*((?:-\\d)?\\d*)"+L+"*\\)|)(?=[^-]|$)","i")},Y=/^(?:input|select|textarea|button)$/i,Z=/^h\d$/i,$=/^[^{]+\{\s*\[native \w/,_=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,aa=/[+~]/,ba=/'|\\/g,ca=new RegExp("\\\\([\\da-f]{1,6}"+L+"?|("+L+")|.)","ig"),da=function(a,b,c){var d="0x"+b-65536;return d!==d||c?b:0>d?String.fromCharCode(d+65536):String.fromCharCode(d>>10|55296,1023&d|56320)},ea=function(){m()};try{H.apply(E=I.call(v.childNodes),v.childNodes),E[v.childNodes.length].nodeType}catch(fa){H={apply:E.length?function(a,b){G.apply(a,I.call(b))}:function(a,b){var c=a.length,d=0;while(a[c++]=b[d++]);a.length=c-1}}}function ga(a,b,d,e){var f,h,j,k,l,o,r,s,w,x;if((b?b.ownerDocument||b:v)!==n&&m(b),b=b||n,d=d||[],k=b.nodeType,"string"!=typeof a||!a||1!==k&&9!==k&&11!==k)return d;if(!e&&p){if(11!==k&&(f=_.exec(a)))if(j=f[1]){if(9===k){if(h=b.getElementById(j),!h||!h.parentNode)return d;if(h.id===j)return d.push(h),d}else if(b.ownerDocument&&(h=b.ownerDocument.getElementById(j))&&t(b,h)&&h.id===j)return d.push(h),d}else{if(f[2])return H.apply(d,b.getElementsByTagName(a)),d;if((j=f[3])&&c.getElementsByClassName)return H.apply(d,b.getElementsByClassName(j)),d}if(c.qsa&&(!q||!q.test(a))){if(s=r=u,w=b,x=1!==k&&a,1===k&&"object"!==b.nodeName.toLowerCase()){o=g(a),(r=b.getAttribute("id"))?s=r.replace(ba,"\\$&"):b.setAttribute("id",s),s="[id='"+s+"'] ",l=o.length;while(l--)o[l]=s+ra(o[l]);w=aa.test(a)&&pa(b.parentNode)||b,x=o.join(",")}if(x)try{return H.apply(d,w.querySelectorAll(x)),d}catch(y){}finally{r||b.removeAttribute("id")}}}return i(a.replace(R,"$1"),b,d,e)}function ha(){var a=[];function b(c,e){return a.push(c+" ")>d.cacheLength&&delete b[a.shift()],b[c+" "]=e}return b}function ia(a){return a[u]=!0,a}function ja(a){var b=n.createElement("div");try{return!!a(b)}catch(c){return!1}finally{b.parentNode&&b.parentNode.removeChild(b),b=null}}function ka(a,b){var c=a.split("|"),e=a.length;while(e--)d.attrHandle[c[e]]=b}function la(a,b){var c=b&&a,d=c&&1===a.nodeType&&1===b.nodeType&&(~b.sourceIndex||C)-(~a.sourceIndex||C);if(d)return d;if(c)while(c=c.nextSibling)if(c===b)return-1;return a?1:-1}function ma(a){return function(b){var c=b.nodeName.toLowerCase();return"input"===c&&b.type===a}}function na(a){return function(b){var c=b.nodeName.toLowerCase();return("input"===c||"button"===c)&&b.type===a}}function oa(a){return ia(function(b){return b=+b,ia(function(c,d){var e,f=a([],c.length,b),g=f.length;while(g--)c[e=f[g]]&&(c[e]=!(d[e]=c[e]))})})}function pa(a){return a&&"undefined"!=typeof a.getElementsByTagName&&a}c=ga.support={},f=ga.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return b?"HTML"!==b.nodeName:!1},m=ga.setDocument=function(a){var b,e,g=a?a.ownerDocument||a:v;return g!==n&&9===g.nodeType&&g.documentElement?(n=g,o=g.documentElement,e=g.defaultView,e&&e!==e.top&&(e.addEventListener?e.addEventListener("unload",ea,!1):e.attachEvent&&e.attachEvent("onunload",ea)),p=!f(g),c.attributes=ja(function(a){return a.className="i",!a.getAttribute("className")}),c.getElementsByTagName=ja(function(a){return a.appendChild(g.createComment("")),!a.getElementsByTagName("*").length}),c.getElementsByClassName=$.test(g.getElementsByClassName),c.getById=ja(function(a){return o.appendChild(a).id=u,!g.getElementsByName||!g.getElementsByName(u).length}),c.getById?(d.find.ID=function(a,b){if("undefined"!=typeof b.getElementById&&p){var c=b.getElementById(a);return c&&c.parentNode?[c]:[]}},d.filter.ID=function(a){var b=a.replace(ca,da);return function(a){return a.getAttribute("id")===b}}):(delete d.find.ID,d.filter.ID=function(a){var b=a.replace(ca,da);return function(a){var c="undefined"!=typeof a.getAttributeNode&&a.getAttributeNode("id");return c&&c.value===b}}),d.find.TAG=c.getElementsByTagName?function(a,b){return"undefined"!=typeof b.getElementsByTagName?b.getElementsByTagName(a):c.qsa?b.querySelectorAll(a):void 0}:function(a,b){var c,d=[],e=0,f=b.getElementsByTagName(a);if("*"===a){while(c=f[e++])1===c.nodeType&&d.push(c);return d}return f},d.find.CLASS=c.getElementsByClassName&&function(a,b){return p?b.getElementsByClassName(a):void 0},r=[],q=[],(c.qsa=$.test(g.querySelectorAll))&&(ja(function(a){o.appendChild(a).innerHTML="<a id='"+u+"'></a><select id='"+u+"-\f]' msallowcapture=''><option selected=''></option></select>",a.querySelectorAll("[msallowcapture^='']").length&&q.push("[*^$]="+L+"*(?:''|\"\")"),a.querySelectorAll("[selected]").length||q.push("\\["+L+"*(?:value|"+K+")"),a.querySelectorAll("[id~="+u+"-]").length||q.push("~="),a.querySelectorAll(":checked").length||q.push(":checked"),a.querySelectorAll("a#"+u+"+*").length||q.push(".#.+[+~]")}),ja(function(a){var b=g.createElement("input");b.setAttribute("type","hidden"),a.appendChild(b).setAttribute("name","D"),a.querySelectorAll("[name=d]").length&&q.push("name"+L+"*[*^$|!~]?="),a.querySelectorAll(":enabled").length||q.push(":enabled",":disabled"),a.querySelectorAll("*,:x"),q.push(",.*:")})),(c.matchesSelector=$.test(s=o.matches||o.webkitMatchesSelector||o.mozMatchesSelector||o.oMatchesSelector||o.msMatchesSelector))&&ja(function(a){c.disconnectedMatch=s.call(a,"div"),s.call(a,"[s!='']:x"),r.push("!=",P)}),q=q.length&&new RegExp(q.join("|")),r=r.length&&new RegExp(r.join("|")),b=$.test(o.compareDocumentPosition),t=b||$.test(o.contains)?function(a,b){var c=9===a.nodeType?a.documentElement:a,d=b&&b.parentNode;return a===d||!(!d||1!==d.nodeType||!(c.contains?c.contains(d):a.compareDocumentPosition&&16&a.compareDocumentPosition(d)))}:function(a,b){if(b)while(b=b.parentNode)if(b===a)return!0;return!1},B=b?function(a,b){if(a===b)return l=!0,0;var d=!a.compareDocumentPosition-!b.compareDocumentPosition;return d?d:(d=(a.ownerDocument||a)===(b.ownerDocument||b)?a.compareDocumentPosition(b):1,1&d||!c.sortDetached&&b.compareDocumentPosition(a)===d?a===g||a.ownerDocument===v&&t(v,a)?-1:b===g||b.ownerDocument===v&&t(v,b)?1:k?J(k,a)-J(k,b):0:4&d?-1:1)}:function(a,b){if(a===b)return l=!0,0;var c,d=0,e=a.parentNode,f=b.parentNode,h=[a],i=[b];if(!e||!f)return a===g?-1:b===g?1:e?-1:f?1:k?J(k,a)-J(k,b):0;if(e===f)return la(a,b);c=a;while(c=c.parentNode)h.unshift(c);c=b;while(c=c.parentNode)i.unshift(c);while(h[d]===i[d])d++;return d?la(h[d],i[d]):h[d]===v?-1:i[d]===v?1:0},g):n},ga.matches=function(a,b){return ga(a,null,null,b)},ga.matchesSelector=function(a,b){if((a.ownerDocument||a)!==n&&m(a),b=b.replace(U,"='$1']"),!(!c.matchesSelector||!p||r&&r.test(b)||q&&q.test(b)))try{var d=s.call(a,b);if(d||c.disconnectedMatch||a.document&&11!==a.document.nodeType)return d}catch(e){}return ga(b,n,null,[a]).length>0},ga.contains=function(a,b){return(a.ownerDocument||a)!==n&&m(a),t(a,b)},ga.attr=function(a,b){(a.ownerDocument||a)!==n&&m(a);var e=d.attrHandle[b.toLowerCase()],f=e&&D.call(d.attrHandle,b.toLowerCase())?e(a,b,!p):void 0;return void 0!==f?f:c.attributes||!p?a.getAttribute(b):(f=a.getAttributeNode(b))&&f.specified?f.value:null},ga.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)},ga.uniqueSort=function(a){var b,d=[],e=0,f=0;if(l=!c.detectDuplicates,k=!c.sortStable&&a.slice(0),a.sort(B),l){while(b=a[f++])b===a[f]&&(e=d.push(f));while(e--)a.splice(d[e],1)}return k=null,a},e=ga.getText=function(a){var b,c="",d=0,f=a.nodeType;if(f){if(1===f||9===f||11===f){if("string"==typeof a.textContent)return a.textContent;for(a=a.firstChild;a;a=a.nextSibling)c+=e(a)}else if(3===f||4===f)return a.nodeValue}else while(b=a[d++])c+=e(b);return c},d=ga.selectors={cacheLength:50,createPseudo:ia,match:X,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(a){return a[1]=a[1].replace(ca,da),a[3]=(a[3]||a[4]||a[5]||"").replace(ca,da),"~="===a[2]&&(a[3]=" "+a[3]+" "),a.slice(0,4)},CHILD:function(a){return a[1]=a[1].toLowerCase(),"nth"===a[1].slice(0,3)?(a[3]||ga.error(a[0]),a[4]=+(a[4]?a[5]+(a[6]||1):2*("even"===a[3]||"odd"===a[3])),a[5]=+(a[7]+a[8]||"odd"===a[3])):a[3]&&ga.error(a[0]),a},PSEUDO:function(a){var b,c=!a[6]&&a[2];return X.CHILD.test(a[0])?null:(a[3]?a[2]=a[4]||a[5]||"":c&&V.test(c)&&(b=g(c,!0))&&(b=c.indexOf(")",c.length-b)-c.length)&&(a[0]=a[0].slice(0,b),a[2]=c.slice(0,b)),a.slice(0,3))}},filter:{TAG:function(a){var b=a.replace(ca,da).toLowerCase();return"*"===a?function(){return!0}:function(a){return a.nodeName&&a.nodeName.toLowerCase()===b}},CLASS:function(a){var b=y[a+" "];return b||(b=new RegExp("(^|"+L+")"+a+"("+L+"|$)"))&&y(a,function(a){return b.test("string"==typeof a.className&&a.className||"undefined"!=typeof a.getAttribute&&a.getAttribute("class")||"")})},ATTR:function(a,b,c){return function(d){var e=ga.attr(d,a);return null==e?"!="===b:b?(e+="","="===b?e===c:"!="===b?e!==c:"^="===b?c&&0===e.indexOf(c):"*="===b?c&&e.indexOf(c)>-1:"$="===b?c&&e.slice(-c.length)===c:"~="===b?(" "+e.replace(Q," ")+" ").indexOf(c)>-1:"|="===b?e===c||e.slice(0,c.length+1)===c+"-":!1):!0}},CHILD:function(a,b,c,d,e){var f="nth"!==a.slice(0,3),g="last"!==a.slice(-4),h="of-type"===b;return 1===d&&0===e?function(a){return!!a.parentNode}:function(b,c,i){var j,k,l,m,n,o,p=f!==g?"nextSibling":"previousSibling",q=b.parentNode,r=h&&b.nodeName.toLowerCase(),s=!i&&!h;if(q){if(f){while(p){l=b;while(l=l[p])if(h?l.nodeName.toLowerCase()===r:1===l.nodeType)return!1;o=p="only"===a&&!o&&"nextSibling"}return!0}if(o=[g?q.firstChild:q.lastChild],g&&s){k=q[u]||(q[u]={}),j=k[a]||[],n=j[0]===w&&j[1],m=j[0]===w&&j[2],l=n&&q.childNodes[n];while(l=++n&&l&&l[p]||(m=n=0)||o.pop())if(1===l.nodeType&&++m&&l===b){k[a]=[w,n,m];break}}else if(s&&(j=(b[u]||(b[u]={}))[a])&&j[0]===w)m=j[1];else while(l=++n&&l&&l[p]||(m=n=0)||o.pop())if((h?l.nodeName.toLowerCase()===r:1===l.nodeType)&&++m&&(s&&((l[u]||(l[u]={}))[a]=[w,m]),l===b))break;return m-=e,m===d||m%d===0&&m/d>=0}}},PSEUDO:function(a,b){var c,e=d.pseudos[a]||d.setFilters[a.toLowerCase()]||ga.error("unsupported pseudo: "+a);return e[u]?e(b):e.length>1?(c=[a,a,"",b],d.setFilters.hasOwnProperty(a.toLowerCase())?ia(function(a,c){var d,f=e(a,b),g=f.length;while(g--)d=J(a,f[g]),a[d]=!(c[d]=f[g])}):function(a){return e(a,0,c)}):e}},pseudos:{not:ia(function(a){var b=[],c=[],d=h(a.replace(R,"$1"));return d[u]?ia(function(a,b,c,e){var f,g=d(a,null,e,[]),h=a.length;while(h--)(f=g[h])&&(a[h]=!(b[h]=f))}):function(a,e,f){return b[0]=a,d(b,null,f,c),b[0]=null,!c.pop()}}),has:ia(function(a){return function(b){return ga(a,b).length>0}}),contains:ia(function(a){return a=a.replace(ca,da),function(b){return(b.textContent||b.innerText||e(b)).indexOf(a)>-1}}),lang:ia(function(a){return W.test(a||"")||ga.error("unsupported lang: "+a),a=a.replace(ca,da).toLowerCase(),function(b){var c;do if(c=p?b.lang:b.getAttribute("xml:lang")||b.getAttribute("lang"))return c=c.toLowerCase(),c===a||0===c.indexOf(a+"-");while((b=b.parentNode)&&1===b.nodeType);return!1}}),target:function(b){var c=a.location&&a.location.hash;return c&&c.slice(1)===b.id},root:function(a){return a===o},focus:function(a){return a===n.activeElement&&(!n.hasFocus||n.hasFocus())&&!!(a.type||a.href||~a.tabIndex)},enabled:function(a){return a.disabled===!1},disabled:function(a){return a.disabled===!0},checked:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&!!a.checked||"option"===b&&!!a.selected},selected:function(a){return a.parentNode&&a.parentNode.selectedIndex,a.selected===!0},empty:function(a){for(a=a.firstChild;a;a=a.nextSibling)if(a.nodeType<6)return!1;return!0},parent:function(a){return!d.pseudos.empty(a)},header:function(a){return Z.test(a.nodeName)},input:function(a){return Y.test(a.nodeName)},button:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&"button"===a.type||"button"===b},text:function(a){var b;return"input"===a.nodeName.toLowerCase()&&"text"===a.type&&(null==(b=a.getAttribute("type"))||"text"===b.toLowerCase())},first:oa(function(){return[0]}),last:oa(function(a,b){return[b-1]}),eq:oa(function(a,b,c){return[0>c?c+b:c]}),even:oa(function(a,b){for(var c=0;b>c;c+=2)a.push(c);return a}),odd:oa(function(a,b){for(var c=1;b>c;c+=2)a.push(c);return a}),lt:oa(function(a,b,c){for(var d=0>c?c+b:c;--d>=0;)a.push(d);return a}),gt:oa(function(a,b,c){for(var d=0>c?c+b:c;++d<b;)a.push(d);return a})}},d.pseudos.nth=d.pseudos.eq;for(b in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})d.pseudos[b]=ma(b);for(b in{submit:!0,reset:!0})d.pseudos[b]=na(b);function qa(){}qa.prototype=d.filters=d.pseudos,d.setFilters=new qa,g=ga.tokenize=function(a,b){var c,e,f,g,h,i,j,k=z[a+" "];if(k)return b?0:k.slice(0);h=a,i=[],j=d.preFilter;while(h){(!c||(e=S.exec(h)))&&(e&&(h=h.slice(e[0].length)||h),i.push(f=[])),c=!1,(e=T.exec(h))&&(c=e.shift(),f.push({value:c,type:e[0].replace(R," ")}),h=h.slice(c.length));for(g in d.filter)!(e=X[g].exec(h))||j[g]&&!(e=j[g](e))||(c=e.shift(),f.push({value:c,type:g,matches:e}),h=h.slice(c.length));if(!c)break}return b?h.length:h?ga.error(a):z(a,i).slice(0)};function ra(a){for(var b=0,c=a.length,d="";c>b;b++)d+=a[b].value;return d}function sa(a,b,c){var d=b.dir,e=c&&"parentNode"===d,f=x++;return b.first?function(b,c,f){while(b=b[d])if(1===b.nodeType||e)return a(b,c,f)}:function(b,c,g){var h,i,j=[w,f];if(g){while(b=b[d])if((1===b.nodeType||e)&&a(b,c,g))return!0}else while(b=b[d])if(1===b.nodeType||e){if(i=b[u]||(b[u]={}),(h=i[d])&&h[0]===w&&h[1]===f)return j[2]=h[2];if(i[d]=j,j[2]=a(b,c,g))return!0}}}function ta(a){return a.length>1?function(b,c,d){var e=a.length;while(e--)if(!a[e](b,c,d))return!1;return!0}:a[0]}function ua(a,b,c){for(var d=0,e=b.length;e>d;d++)ga(a,b[d],c);return c}function va(a,b,c,d,e){for(var f,g=[],h=0,i=a.length,j=null!=b;i>h;h++)(f=a[h])&&(!c||c(f,d,e))&&(g.push(f),j&&b.push(h));return g}function wa(a,b,c,d,e,f){return d&&!d[u]&&(d=wa(d)),e&&!e[u]&&(e=wa(e,f)),ia(function(f,g,h,i){var j,k,l,m=[],n=[],o=g.length,p=f||ua(b||"*",h.nodeType?[h]:h,[]),q=!a||!f&&b?p:va(p,m,a,h,i),r=c?e||(f?a:o||d)?[]:g:q;if(c&&c(q,r,h,i),d){j=va(r,n),d(j,[],h,i),k=j.length;while(k--)(l=j[k])&&(r[n[k]]=!(q[n[k]]=l))}if(f){if(e||a){if(e){j=[],k=r.length;while(k--)(l=r[k])&&j.push(q[k]=l);e(null,r=[],j,i)}k=r.length;while(k--)(l=r[k])&&(j=e?J(f,l):m[k])>-1&&(f[j]=!(g[j]=l))}}else r=va(r===g?r.splice(o,r.length):r),e?e(null,g,r,i):H.apply(g,r)})}function xa(a){for(var b,c,e,f=a.length,g=d.relative[a[0].type],h=g||d.relative[" "],i=g?1:0,k=sa(function(a){return a===b},h,!0),l=sa(function(a){return J(b,a)>-1},h,!0),m=[function(a,c,d){var e=!g&&(d||c!==j)||((b=c).nodeType?k(a,c,d):l(a,c,d));return b=null,e}];f>i;i++)if(c=d.relative[a[i].type])m=[sa(ta(m),c)];else{if(c=d.filter[a[i].type].apply(null,a[i].matches),c[u]){for(e=++i;f>e;e++)if(d.relative[a[e].type])break;return wa(i>1&&ta(m),i>1&&ra(a.slice(0,i-1).concat({value:" "===a[i-2].type?"*":""})).replace(R,"$1"),c,e>i&&xa(a.slice(i,e)),f>e&&xa(a=a.slice(e)),f>e&&ra(a))}m.push(c)}return ta(m)}function ya(a,b){var c=b.length>0,e=a.length>0,f=function(f,g,h,i,k){var l,m,o,p=0,q="0",r=f&&[],s=[],t=j,u=f||e&&d.find.TAG("*",k),v=w+=null==t?1:Math.random()||.1,x=u.length;for(k&&(j=g!==n&&g);q!==x&&null!=(l=u[q]);q++){if(e&&l){m=0;while(o=a[m++])if(o(l,g,h)){i.push(l);break}k&&(w=v)}c&&((l=!o&&l)&&p--,f&&r.push(l))}if(p+=q,c&&q!==p){m=0;while(o=b[m++])o(r,s,g,h);if(f){if(p>0)while(q--)r[q]||s[q]||(s[q]=F.call(i));s=va(s)}H.apply(i,s),k&&!f&&s.length>0&&p+b.length>1&&ga.uniqueSort(i)}return k&&(w=v,j=t),r};return c?ia(f):f}return h=ga.compile=function(a,b){var c,d=[],e=[],f=A[a+" "];if(!f){b||(b=g(a)),c=b.length;while(c--)f=xa(b[c]),f[u]?d.push(f):e.push(f);f=A(a,ya(e,d)),f.selector=a}return f},i=ga.select=function(a,b,e,f){var i,j,k,l,m,n="function"==typeof a&&a,o=!f&&g(a=n.selector||a);if(e=e||[],1===o.length){if(j=o[0]=o[0].slice(0),j.length>2&&"ID"===(k=j[0]).type&&c.getById&&9===b.nodeType&&p&&d.relative[j[1].type]){if(b=(d.find.ID(k.matches[0].replace(ca,da),b)||[])[0],!b)return e;n&&(b=b.parentNode),a=a.slice(j.shift().value.length)}i=X.needsContext.test(a)?0:j.length;while(i--){if(k=j[i],d.relative[l=k.type])break;if((m=d.find[l])&&(f=m(k.matches[0].replace(ca,da),aa.test(j[0].type)&&pa(b.parentNode)||b))){if(j.splice(i,1),a=f.length&&ra(j),!a)return H.apply(e,f),e;break}}}return(n||h(a,o))(f,b,!p,e,aa.test(a)&&pa(b.parentNode)||b),e},c.sortStable=u.split("").sort(B).join("")===u,c.detectDuplicates=!!l,m(),c.sortDetached=ja(function(a){return 1&a.compareDocumentPosition(n.createElement("div"))}),ja(function(a){return a.innerHTML="<a href='#'></a>","#"===a.firstChild.getAttribute("href")})||ka("type|href|height|width",function(a,b,c){return c?void 0:a.getAttribute(b,"type"===b.toLowerCase()?1:2)}),c.attributes&&ja(function(a){return a.innerHTML="<input/>",a.firstChild.setAttribute("value",""),""===a.firstChild.getAttribute("value")})||ka("value",function(a,b,c){return c||"input"!==a.nodeName.toLowerCase()?void 0:a.defaultValue}),ja(function(a){return null==a.getAttribute("disabled")})||ka(K,function(a,b,c){var d;return c?void 0:a[b]===!0?b.toLowerCase():(d=a.getAttributeNode(b))&&d.specified?d.value:null}),ga}(a);n.find=t,n.expr=t.selectors,n.expr[":"]=n.expr.pseudos,n.unique=t.uniqueSort,n.text=t.getText,n.isXMLDoc=t.isXML,n.contains=t.contains;var u=n.expr.match.needsContext,v=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,w=/^.[^:#\[\.,]*$/;function x(a,b,c){if(n.isFunction(b))return n.grep(a,function(a,d){return!!b.call(a,d,a)!==c});if(b.nodeType)return n.grep(a,function(a){return a===b!==c});if("string"==typeof b){if(w.test(b))return n.filter(b,a,c);b=n.filter(b,a)}return n.grep(a,function(a){return g.call(b,a)>=0!==c})}n.filter=function(a,b,c){var d=b[0];return c&&(a=":not("+a+")"),1===b.length&&1===d.nodeType?n.find.matchesSelector(d,a)?[d]:[]:n.find.matches(a,n.grep(b,function(a){return 1===a.nodeType}))},n.fn.extend({find:function(a){var b,c=this.length,d=[],e=this;if("string"!=typeof a)return this.pushStack(n(a).filter(function(){for(b=0;c>b;b++)if(n.contains(e[b],this))return!0}));for(b=0;c>b;b++)n.find(a,e[b],d);return d=this.pushStack(c>1?n.unique(d):d),d.selector=this.selector?this.selector+" "+a:a,d},filter:function(a){return this.pushStack(x(this,a||[],!1))},not:function(a){return this.pushStack(x(this,a||[],!0))},is:function(a){return!!x(this,"string"==typeof a&&u.test(a)?n(a):a||[],!1).length}});var y,z=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,A=n.fn.init=function(a,b){var c,d;if(!a)return this;if("string"==typeof a){if(c="<"===a[0]&&">"===a[a.length-1]&&a.length>=3?[null,a,null]:z.exec(a),!c||!c[1]&&b)return!b||b.jquery?(b||y).find(a):this.constructor(b).find(a);if(c[1]){if(b=b instanceof n?b[0]:b,n.merge(this,n.parseHTML(c[1],b&&b.nodeType?b.ownerDocument||b:l,!0)),v.test(c[1])&&n.isPlainObject(b))for(c in b)n.isFunction(this[c])?this[c](b[c]):this.attr(c,b[c]);return this}return d=l.getElementById(c[2]),d&&d.parentNode&&(this.length=1,this[0]=d),this.context=l,this.selector=a,this}return a.nodeType?(this.context=this[0]=a,this.length=1,this):n.isFunction(a)?"undefined"!=typeof y.ready?y.ready(a):a(n):(void 0!==a.selector&&(this.selector=a.selector,this.context=a.context),n.makeArray(a,this))};A.prototype=n.fn,y=n(l);var B=/^(?:parents|prev(?:Until|All))/,C={children:!0,contents:!0,next:!0,prev:!0};n.extend({dir:function(a,b,c){var d=[],e=void 0!==c;while((a=a[b])&&9!==a.nodeType)if(1===a.nodeType){if(e&&n(a).is(c))break;d.push(a)}return d},sibling:function(a,b){for(var c=[];a;a=a.nextSibling)1===a.nodeType&&a!==b&&c.push(a);return c}}),n.fn.extend({has:function(a){var b=n(a,this),c=b.length;return this.filter(function(){for(var a=0;c>a;a++)if(n.contains(this,b[a]))return!0})},closest:function(a,b){for(var c,d=0,e=this.length,f=[],g=u.test(a)||"string"!=typeof a?n(a,b||this.context):0;e>d;d++)for(c=this[d];c&&c!==b;c=c.parentNode)if(c.nodeType<11&&(g?g.index(c)>-1:1===c.nodeType&&n.find.matchesSelector(c,a))){f.push(c);break}return this.pushStack(f.length>1?n.unique(f):f)},index:function(a){return a?"string"==typeof a?g.call(n(a),this[0]):g.call(this,a.jquery?a[0]:a):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(a,b){return this.pushStack(n.unique(n.merge(this.get(),n(a,b))))},addBack:function(a){return this.add(null==a?this.prevObject:this.prevObject.filter(a))}});function D(a,b){while((a=a[b])&&1!==a.nodeType);return a}n.each({parent:function(a){var b=a.parentNode;return b&&11!==b.nodeType?b:null},parents:function(a){return n.dir(a,"parentNode")},parentsUntil:function(a,b,c){return n.dir(a,"parentNode",c)},next:function(a){return D(a,"nextSibling")},prev:function(a){return D(a,"previousSibling")},nextAll:function(a){return n.dir(a,"nextSibling")},prevAll:function(a){return n.dir(a,"previousSibling")},nextUntil:function(a,b,c){return n.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return n.dir(a,"previousSibling",c)},siblings:function(a){return n.sibling((a.parentNode||{}).firstChild,a)},children:function(a){return n.sibling(a.firstChild)},contents:function(a){return a.contentDocument||n.merge([],a.childNodes)}},function(a,b){n.fn[a]=function(c,d){var e=n.map(this,b,c);return"Until"!==a.slice(-5)&&(d=c),d&&"string"==typeof d&&(e=n.filter(d,e)),this.length>1&&(C[a]||n.unique(e),B.test(a)&&e.reverse()),this.pushStack(e)}});var E=/\S+/g,F={};function G(a){var b=F[a]={};return n.each(a.match(E)||[],function(a,c){b[c]=!0}),b}n.Callbacks=function(a){a="string"==typeof a?F[a]||G(a):n.extend({},a);var b,c,d,e,f,g,h=[],i=!a.once&&[],j=function(l){for(b=a.memory&&l,c=!0,g=e||0,e=0,f=h.length,d=!0;h&&f>g;g++)if(h[g].apply(l[0],l[1])===!1&&a.stopOnFalse){b=!1;break}d=!1,h&&(i?i.length&&j(i.shift()):b?h=[]:k.disable())},k={add:function(){if(h){var c=h.length;!function g(b){n.each(b,function(b,c){var d=n.type(c);"function"===d?a.unique&&k.has(c)||h.push(c):c&&c.length&&"string"!==d&&g(c)})}(arguments),d?f=h.length:b&&(e=c,j(b))}return this},remove:function(){return h&&n.each(arguments,function(a,b){var c;while((c=n.inArray(b,h,c))>-1)h.splice(c,1),d&&(f>=c&&f--,g>=c&&g--)}),this},has:function(a){return a?n.inArray(a,h)>-1:!(!h||!h.length)},empty:function(){return h=[],f=0,this},disable:function(){return h=i=b=void 0,this},disabled:function(){return!h},lock:function(){return i=void 0,b||k.disable(),this},locked:function(){return!i},fireWith:function(a,b){return!h||c&&!i||(b=b||[],b=[a,b.slice?b.slice():b],d?i.push(b):j(b)),this},fire:function(){return k.fireWith(this,arguments),this},fired:function(){return!!c}};return k},n.extend({Deferred:function(a){var b=[["resolve","done",n.Callbacks("once memory"),"resolved"],["reject","fail",n.Callbacks("once memory"),"rejected"],["notify","progress",n.Callbacks("memory")]],c="pending",d={state:function(){return c},always:function(){return e.done(arguments).fail(arguments),this},then:function(){var a=arguments;return n.Deferred(function(c){n.each(b,function(b,f){var g=n.isFunction(a[b])&&a[b];e[f[1]](function(){var a=g&&g.apply(this,arguments);a&&n.isFunction(a.promise)?a.promise().done(c.resolve).fail(c.reject).progress(c.notify):c[f[0]+"With"](this===d?c.promise():this,g?[a]:arguments)})}),a=null}).promise()},promise:function(a){return null!=a?n.extend(a,d):d}},e={};return d.pipe=d.then,n.each(b,function(a,f){var g=f[2],h=f[3];d[f[1]]=g.add,h&&g.add(function(){c=h},b[1^a][2].disable,b[2][2].lock),e[f[0]]=function(){return e[f[0]+"With"](this===e?d:this,arguments),this},e[f[0]+"With"]=g.fireWith}),d.promise(e),a&&a.call(e,e),e},when:function(a){var b=0,c=d.call(arguments),e=c.length,f=1!==e||a&&n.isFunction(a.promise)?e:0,g=1===f?a:n.Deferred(),h=function(a,b,c){return function(e){b[a]=this,c[a]=arguments.length>1?d.call(arguments):e,c===i?g.notifyWith(b,c):--f||g.resolveWith(b,c)}},i,j,k;if(e>1)for(i=new Array(e),j=new Array(e),k=new Array(e);e>b;b++)c[b]&&n.isFunction(c[b].promise)?c[b].promise().done(h(b,k,c)).fail(g.reject).progress(h(b,j,i)):--f;return f||g.resolveWith(k,c),g.promise()}});var H;n.fn.ready=function(a){return n.ready.promise().done(a),this},n.extend({isReady:!1,readyWait:1,holdReady:function(a){a?n.readyWait++:n.ready(!0)},ready:function(a){(a===!0?--n.readyWait:n.isReady)||(n.isReady=!0,a!==!0&&--n.readyWait>0||(H.resolveWith(l,[n]),n.fn.triggerHandler&&(n(l).triggerHandler("ready"),n(l).off("ready"))))}});function I(){l.removeEventListener("DOMContentLoaded",I,!1),a.removeEventListener("load",I,!1),n.ready()}n.ready.promise=function(b){return H||(H=n.Deferred(),"complete"===l.readyState?setTimeout(n.ready):(l.addEventListener("DOMContentLoaded",I,!1),a.addEventListener("load",I,!1))),H.promise(b)},n.ready.promise();var J=n.access=function(a,b,c,d,e,f,g){var h=0,i=a.length,j=null==c;if("object"===n.type(c)){e=!0;for(h in c)n.access(a,b,h,c[h],!0,f,g)}else if(void 0!==d&&(e=!0,n.isFunction(d)||(g=!0),j&&(g?(b.call(a,d),b=null):(j=b,b=function(a,b,c){return j.call(n(a),c)})),b))for(;i>h;h++)b(a[h],c,g?d:d.call(a[h],h,b(a[h],c)));return e?a:j?b.call(a):i?b(a[0],c):f};n.acceptData=function(a){return 1===a.nodeType||9===a.nodeType||!+a.nodeType};function K(){Object.defineProperty(this.cache={},0,{get:function(){return{}}}),this.expando=n.expando+K.uid++}K.uid=1,K.accepts=n.acceptData,K.prototype={key:function(a){if(!K.accepts(a))return 0;var b={},c=a[this.expando];if(!c){c=K.uid++;try{b[this.expando]={value:c},Object.defineProperties(a,b)}catch(d){b[this.expando]=c,n.extend(a,b)}}return this.cache[c]||(this.cache[c]={}),c},set:function(a,b,c){var d,e=this.key(a),f=this.cache[e];if("string"==typeof b)f[b]=c;else if(n.isEmptyObject(f))n.extend(this.cache[e],b);else for(d in b)f[d]=b[d];return f},get:function(a,b){var c=this.cache[this.key(a)];return void 0===b?c:c[b]},access:function(a,b,c){var d;return void 0===b||b&&"string"==typeof b&&void 0===c?(d=this.get(a,b),void 0!==d?d:this.get(a,n.camelCase(b))):(this.set(a,b,c),void 0!==c?c:b)},remove:function(a,b){var c,d,e,f=this.key(a),g=this.cache[f];if(void 0===b)this.cache[f]={};else{n.isArray(b)?d=b.concat(b.map(n.camelCase)):(e=n.camelCase(b),b in g?d=[b,e]:(d=e,d=d in g?[d]:d.match(E)||[])),c=d.length;while(c--)delete g[d[c]]}},hasData:function(a){return!n.isEmptyObject(this.cache[a[this.expando]]||{})},discard:function(a){a[this.expando]&&delete this.cache[a[this.expando]]}};var L=new K,M=new K,N=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,O=/([A-Z])/g;function P(a,b,c){var d;if(void 0===c&&1===a.nodeType)if(d="data-"+b.replace(O,"-$1").toLowerCase(),c=a.getAttribute(d),"string"==typeof c){try{c="true"===c?!0:"false"===c?!1:"null"===c?null:+c+""===c?+c:N.test(c)?n.parseJSON(c):c}catch(e){}M.set(a,b,c)}else c=void 0;return c}n.extend({hasData:function(a){return M.hasData(a)||L.hasData(a)},data:function(a,b,c){
-return M.access(a,b,c)},removeData:function(a,b){M.remove(a,b)},_data:function(a,b,c){return L.access(a,b,c)},_removeData:function(a,b){L.remove(a,b)}}),n.fn.extend({data:function(a,b){var c,d,e,f=this[0],g=f&&f.attributes;if(void 0===a){if(this.length&&(e=M.get(f),1===f.nodeType&&!L.get(f,"hasDataAttrs"))){c=g.length;while(c--)g[c]&&(d=g[c].name,0===d.indexOf("data-")&&(d=n.camelCase(d.slice(5)),P(f,d,e[d])));L.set(f,"hasDataAttrs",!0)}return e}return"object"==typeof a?this.each(function(){M.set(this,a)}):J(this,function(b){var c,d=n.camelCase(a);if(f&&void 0===b){if(c=M.get(f,a),void 0!==c)return c;if(c=M.get(f,d),void 0!==c)return c;if(c=P(f,d,void 0),void 0!==c)return c}else this.each(function(){var c=M.get(this,d);M.set(this,d,b),-1!==a.indexOf("-")&&void 0!==c&&M.set(this,a,b)})},null,b,arguments.length>1,null,!0)},removeData:function(a){return this.each(function(){M.remove(this,a)})}}),n.extend({queue:function(a,b,c){var d;return a?(b=(b||"fx")+"queue",d=L.get(a,b),c&&(!d||n.isArray(c)?d=L.access(a,b,n.makeArray(c)):d.push(c)),d||[]):void 0},dequeue:function(a,b){b=b||"fx";var c=n.queue(a,b),d=c.length,e=c.shift(),f=n._queueHooks(a,b),g=function(){n.dequeue(a,b)};"inprogress"===e&&(e=c.shift(),d--),e&&("fx"===b&&c.unshift("inprogress"),delete f.stop,e.call(a,g,f)),!d&&f&&f.empty.fire()},_queueHooks:function(a,b){var c=b+"queueHooks";return L.get(a,c)||L.access(a,c,{empty:n.Callbacks("once memory").add(function(){L.remove(a,[b+"queue",c])})})}}),n.fn.extend({queue:function(a,b){var c=2;return"string"!=typeof a&&(b=a,a="fx",c--),arguments.length<c?n.queue(this[0],a):void 0===b?this:this.each(function(){var c=n.queue(this,a,b);n._queueHooks(this,a),"fx"===a&&"inprogress"!==c[0]&&n.dequeue(this,a)})},dequeue:function(a){return this.each(function(){n.dequeue(this,a)})},clearQueue:function(a){return this.queue(a||"fx",[])},promise:function(a,b){var c,d=1,e=n.Deferred(),f=this,g=this.length,h=function(){--d||e.resolveWith(f,[f])};"string"!=typeof a&&(b=a,a=void 0),a=a||"fx";while(g--)c=L.get(f[g],a+"queueHooks"),c&&c.empty&&(d++,c.empty.add(h));return h(),e.promise(b)}});var Q=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,R=["Top","Right","Bottom","Left"],S=function(a,b){return a=b||a,"none"===n.css(a,"display")||!n.contains(a.ownerDocument,a)},T=/^(?:checkbox|radio)$/i;!function(){var a=l.createDocumentFragment(),b=a.appendChild(l.createElement("div")),c=l.createElement("input");c.setAttribute("type","radio"),c.setAttribute("checked","checked"),c.setAttribute("name","t"),b.appendChild(c),k.checkClone=b.cloneNode(!0).cloneNode(!0).lastChild.checked,b.innerHTML="<textarea>x</textarea>",k.noCloneChecked=!!b.cloneNode(!0).lastChild.defaultValue}();var U="undefined";k.focusinBubbles="onfocusin"in a;var V=/^key/,W=/^(?:mouse|pointer|contextmenu)|click/,X=/^(?:focusinfocus|focusoutblur)$/,Y=/^([^.]*)(?:\.(.+)|)$/;function Z(){return!0}function $(){return!1}function _(){try{return l.activeElement}catch(a){}}n.event={global:{},add:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,o,p,q,r=L.get(a);if(r){c.handler&&(f=c,c=f.handler,e=f.selector),c.guid||(c.guid=n.guid++),(i=r.events)||(i=r.events={}),(g=r.handle)||(g=r.handle=function(b){return typeof n!==U&&n.event.triggered!==b.type?n.event.dispatch.apply(a,arguments):void 0}),b=(b||"").match(E)||[""],j=b.length;while(j--)h=Y.exec(b[j])||[],o=q=h[1],p=(h[2]||"").split(".").sort(),o&&(l=n.event.special[o]||{},o=(e?l.delegateType:l.bindType)||o,l=n.event.special[o]||{},k=n.extend({type:o,origType:q,data:d,handler:c,guid:c.guid,selector:e,needsContext:e&&n.expr.match.needsContext.test(e),namespace:p.join(".")},f),(m=i[o])||(m=i[o]=[],m.delegateCount=0,l.setup&&l.setup.call(a,d,p,g)!==!1||a.addEventListener&&a.addEventListener(o,g,!1)),l.add&&(l.add.call(a,k),k.handler.guid||(k.handler.guid=c.guid)),e?m.splice(m.delegateCount++,0,k):m.push(k),n.event.global[o]=!0)}},remove:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,o,p,q,r=L.hasData(a)&&L.get(a);if(r&&(i=r.events)){b=(b||"").match(E)||[""],j=b.length;while(j--)if(h=Y.exec(b[j])||[],o=q=h[1],p=(h[2]||"").split(".").sort(),o){l=n.event.special[o]||{},o=(d?l.delegateType:l.bindType)||o,m=i[o]||[],h=h[2]&&new RegExp("(^|\\.)"+p.join("\\.(?:.*\\.|)")+"(\\.|$)"),g=f=m.length;while(f--)k=m[f],!e&&q!==k.origType||c&&c.guid!==k.guid||h&&!h.test(k.namespace)||d&&d!==k.selector&&("**"!==d||!k.selector)||(m.splice(f,1),k.selector&&m.delegateCount--,l.remove&&l.remove.call(a,k));g&&!m.length&&(l.teardown&&l.teardown.call(a,p,r.handle)!==!1||n.removeEvent(a,o,r.handle),delete i[o])}else for(o in i)n.event.remove(a,o+b[j],c,d,!0);n.isEmptyObject(i)&&(delete r.handle,L.remove(a,"events"))}},trigger:function(b,c,d,e){var f,g,h,i,k,m,o,p=[d||l],q=j.call(b,"type")?b.type:b,r=j.call(b,"namespace")?b.namespace.split("."):[];if(g=h=d=d||l,3!==d.nodeType&&8!==d.nodeType&&!X.test(q+n.event.triggered)&&(q.indexOf(".")>=0&&(r=q.split("."),q=r.shift(),r.sort()),k=q.indexOf(":")<0&&"on"+q,b=b[n.expando]?b:new n.Event(q,"object"==typeof b&&b),b.isTrigger=e?2:3,b.namespace=r.join("."),b.namespace_re=b.namespace?new RegExp("(^|\\.)"+r.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,b.result=void 0,b.target||(b.target=d),c=null==c?[b]:n.makeArray(c,[b]),o=n.event.special[q]||{},e||!o.trigger||o.trigger.apply(d,c)!==!1)){if(!e&&!o.noBubble&&!n.isWindow(d)){for(i=o.delegateType||q,X.test(i+q)||(g=g.parentNode);g;g=g.parentNode)p.push(g),h=g;h===(d.ownerDocument||l)&&p.push(h.defaultView||h.parentWindow||a)}f=0;while((g=p[f++])&&!b.isPropagationStopped())b.type=f>1?i:o.bindType||q,m=(L.get(g,"events")||{})[b.type]&&L.get(g,"handle"),m&&m.apply(g,c),m=k&&g[k],m&&m.apply&&n.acceptData(g)&&(b.result=m.apply(g,c),b.result===!1&&b.preventDefault());return b.type=q,e||b.isDefaultPrevented()||o._default&&o._default.apply(p.pop(),c)!==!1||!n.acceptData(d)||k&&n.isFunction(d[q])&&!n.isWindow(d)&&(h=d[k],h&&(d[k]=null),n.event.triggered=q,d[q](),n.event.triggered=void 0,h&&(d[k]=h)),b.result}},dispatch:function(a){a=n.event.fix(a);var b,c,e,f,g,h=[],i=d.call(arguments),j=(L.get(this,"events")||{})[a.type]||[],k=n.event.special[a.type]||{};if(i[0]=a,a.delegateTarget=this,!k.preDispatch||k.preDispatch.call(this,a)!==!1){h=n.event.handlers.call(this,a,j),b=0;while((f=h[b++])&&!a.isPropagationStopped()){a.currentTarget=f.elem,c=0;while((g=f.handlers[c++])&&!a.isImmediatePropagationStopped())(!a.namespace_re||a.namespace_re.test(g.namespace))&&(a.handleObj=g,a.data=g.data,e=((n.event.special[g.origType]||{}).handle||g.handler).apply(f.elem,i),void 0!==e&&(a.result=e)===!1&&(a.preventDefault(),a.stopPropagation()))}return k.postDispatch&&k.postDispatch.call(this,a),a.result}},handlers:function(a,b){var c,d,e,f,g=[],h=b.delegateCount,i=a.target;if(h&&i.nodeType&&(!a.button||"click"!==a.type))for(;i!==this;i=i.parentNode||this)if(i.disabled!==!0||"click"!==a.type){for(d=[],c=0;h>c;c++)f=b[c],e=f.selector+" ",void 0===d[e]&&(d[e]=f.needsContext?n(e,this).index(i)>=0:n.find(e,this,null,[i]).length),d[e]&&d.push(f);d.length&&g.push({elem:i,handlers:d})}return h<b.length&&g.push({elem:this,handlers:b.slice(h)}),g},props:"altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(a,b){return null==a.which&&(a.which=null!=b.charCode?b.charCode:b.keyCode),a}},mouseHooks:{props:"button buttons clientX clientY offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(a,b){var c,d,e,f=b.button;return null==a.pageX&&null!=b.clientX&&(c=a.target.ownerDocument||l,d=c.documentElement,e=c.body,a.pageX=b.clientX+(d&&d.scrollLeft||e&&e.scrollLeft||0)-(d&&d.clientLeft||e&&e.clientLeft||0),a.pageY=b.clientY+(d&&d.scrollTop||e&&e.scrollTop||0)-(d&&d.clientTop||e&&e.clientTop||0)),a.which||void 0===f||(a.which=1&f?1:2&f?3:4&f?2:0),a}},fix:function(a){if(a[n.expando])return a;var b,c,d,e=a.type,f=a,g=this.fixHooks[e];g||(this.fixHooks[e]=g=W.test(e)?this.mouseHooks:V.test(e)?this.keyHooks:{}),d=g.props?this.props.concat(g.props):this.props,a=new n.Event(f),b=d.length;while(b--)c=d[b],a[c]=f[c];return a.target||(a.target=l),3===a.target.nodeType&&(a.target=a.target.parentNode),g.filter?g.filter(a,f):a},special:{load:{noBubble:!0},focus:{trigger:function(){return this!==_()&&this.focus?(this.focus(),!1):void 0},delegateType:"focusin"},blur:{trigger:function(){return this===_()&&this.blur?(this.blur(),!1):void 0},delegateType:"focusout"},click:{trigger:function(){return"checkbox"===this.type&&this.click&&n.nodeName(this,"input")?(this.click(),!1):void 0},_default:function(a){return n.nodeName(a.target,"a")}},beforeunload:{postDispatch:function(a){void 0!==a.result&&a.originalEvent&&(a.originalEvent.returnValue=a.result)}}},simulate:function(a,b,c,d){var e=n.extend(new n.Event,c,{type:a,isSimulated:!0,originalEvent:{}});d?n.event.trigger(e,null,b):n.event.dispatch.call(b,e),e.isDefaultPrevented()&&c.preventDefault()}},n.removeEvent=function(a,b,c){a.removeEventListener&&a.removeEventListener(b,c,!1)},n.Event=function(a,b){return this instanceof n.Event?(a&&a.type?(this.originalEvent=a,this.type=a.type,this.isDefaultPrevented=a.defaultPrevented||void 0===a.defaultPrevented&&a.returnValue===!1?Z:$):this.type=a,b&&n.extend(this,b),this.timeStamp=a&&a.timeStamp||n.now(),void(this[n.expando]=!0)):new n.Event(a,b)},n.Event.prototype={isDefaultPrevented:$,isPropagationStopped:$,isImmediatePropagationStopped:$,preventDefault:function(){var a=this.originalEvent;this.isDefaultPrevented=Z,a&&a.preventDefault&&a.preventDefault()},stopPropagation:function(){var a=this.originalEvent;this.isPropagationStopped=Z,a&&a.stopPropagation&&a.stopPropagation()},stopImmediatePropagation:function(){var a=this.originalEvent;this.isImmediatePropagationStopped=Z,a&&a.stopImmediatePropagation&&a.stopImmediatePropagation(),this.stopPropagation()}},n.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(a,b){n.event.special[a]={delegateType:b,bindType:b,handle:function(a){var c,d=this,e=a.relatedTarget,f=a.handleObj;return(!e||e!==d&&!n.contains(d,e))&&(a.type=f.origType,c=f.handler.apply(this,arguments),a.type=b),c}}}),k.focusinBubbles||n.each({focus:"focusin",blur:"focusout"},function(a,b){var c=function(a){n.event.simulate(b,a.target,n.event.fix(a),!0)};n.event.special[b]={setup:function(){var d=this.ownerDocument||this,e=L.access(d,b);e||d.addEventListener(a,c,!0),L.access(d,b,(e||0)+1)},teardown:function(){var d=this.ownerDocument||this,e=L.access(d,b)-1;e?L.access(d,b,e):(d.removeEventListener(a,c,!0),L.remove(d,b))}}}),n.fn.extend({on:function(a,b,c,d,e){var f,g;if("object"==typeof a){"string"!=typeof b&&(c=c||b,b=void 0);for(g in a)this.on(g,b,c,a[g],e);return this}if(null==c&&null==d?(d=b,c=b=void 0):null==d&&("string"==typeof b?(d=c,c=void 0):(d=c,c=b,b=void 0)),d===!1)d=$;else if(!d)return this;return 1===e&&(f=d,d=function(a){return n().off(a),f.apply(this,arguments)},d.guid=f.guid||(f.guid=n.guid++)),this.each(function(){n.event.add(this,a,d,c,b)})},one:function(a,b,c,d){return this.on(a,b,c,d,1)},off:function(a,b,c){var d,e;if(a&&a.preventDefault&&a.handleObj)return d=a.handleObj,n(a.delegateTarget).off(d.namespace?d.origType+"."+d.namespace:d.origType,d.selector,d.handler),this;if("object"==typeof a){for(e in a)this.off(e,b,a[e]);return this}return(b===!1||"function"==typeof b)&&(c=b,b=void 0),c===!1&&(c=$),this.each(function(){n.event.remove(this,a,c,b)})},trigger:function(a,b){return this.each(function(){n.event.trigger(a,b,this)})},triggerHandler:function(a,b){var c=this[0];return c?n.event.trigger(a,b,c,!0):void 0}});var aa=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,ba=/<([\w:]+)/,ca=/<|&#?\w+;/,da=/<(?:script|style|link)/i,ea=/checked\s*(?:[^=]|=\s*.checked.)/i,fa=/^$|\/(?:java|ecma)script/i,ga=/^true\/(.*)/,ha=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g,ia={option:[1,"<select multiple='multiple'>","</select>"],thead:[1,"<table>","</table>"],col:[2,"<table><colgroup>","</colgroup></table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:[0,"",""]};ia.optgroup=ia.option,ia.tbody=ia.tfoot=ia.colgroup=ia.caption=ia.thead,ia.th=ia.td;function ja(a,b){return n.nodeName(a,"table")&&n.nodeName(11!==b.nodeType?b:b.firstChild,"tr")?a.getElementsByTagName("tbody")[0]||a.appendChild(a.ownerDocument.createElement("tbody")):a}function ka(a){return a.type=(null!==a.getAttribute("type"))+"/"+a.type,a}function la(a){var b=ga.exec(a.type);return b?a.type=b[1]:a.removeAttribute("type"),a}function ma(a,b){for(var c=0,d=a.length;d>c;c++)L.set(a[c],"globalEval",!b||L.get(b[c],"globalEval"))}function na(a,b){var c,d,e,f,g,h,i,j;if(1===b.nodeType){if(L.hasData(a)&&(f=L.access(a),g=L.set(b,f),j=f.events)){delete g.handle,g.events={};for(e in j)for(c=0,d=j[e].length;d>c;c++)n.event.add(b,e,j[e][c])}M.hasData(a)&&(h=M.access(a),i=n.extend({},h),M.set(b,i))}}function oa(a,b){var c=a.getElementsByTagName?a.getElementsByTagName(b||"*"):a.querySelectorAll?a.querySelectorAll(b||"*"):[];return void 0===b||b&&n.nodeName(a,b)?n.merge([a],c):c}function pa(a,b){var c=b.nodeName.toLowerCase();"input"===c&&T.test(a.type)?b.checked=a.checked:("input"===c||"textarea"===c)&&(b.defaultValue=a.defaultValue)}n.extend({clone:function(a,b,c){var d,e,f,g,h=a.cloneNode(!0),i=n.contains(a.ownerDocument,a);if(!(k.noCloneChecked||1!==a.nodeType&&11!==a.nodeType||n.isXMLDoc(a)))for(g=oa(h),f=oa(a),d=0,e=f.length;e>d;d++)pa(f[d],g[d]);if(b)if(c)for(f=f||oa(a),g=g||oa(h),d=0,e=f.length;e>d;d++)na(f[d],g[d]);else na(a,h);return g=oa(h,"script"),g.length>0&&ma(g,!i&&oa(a,"script")),h},buildFragment:function(a,b,c,d){for(var e,f,g,h,i,j,k=b.createDocumentFragment(),l=[],m=0,o=a.length;o>m;m++)if(e=a[m],e||0===e)if("object"===n.type(e))n.merge(l,e.nodeType?[e]:e);else if(ca.test(e)){f=f||k.appendChild(b.createElement("div")),g=(ba.exec(e)||["",""])[1].toLowerCase(),h=ia[g]||ia._default,f.innerHTML=h[1]+e.replace(aa,"<$1></$2>")+h[2],j=h[0];while(j--)f=f.lastChild;n.merge(l,f.childNodes),f=k.firstChild,f.textContent=""}else l.push(b.createTextNode(e));k.textContent="",m=0;while(e=l[m++])if((!d||-1===n.inArray(e,d))&&(i=n.contains(e.ownerDocument,e),f=oa(k.appendChild(e),"script"),i&&ma(f),c)){j=0;while(e=f[j++])fa.test(e.type||"")&&c.push(e)}return k},cleanData:function(a){for(var b,c,d,e,f=n.event.special,g=0;void 0!==(c=a[g]);g++){if(n.acceptData(c)&&(e=c[L.expando],e&&(b=L.cache[e]))){if(b.events)for(d in b.events)f[d]?n.event.remove(c,d):n.removeEvent(c,d,b.handle);L.cache[e]&&delete L.cache[e]}delete M.cache[c[M.expando]]}}}),n.fn.extend({text:function(a){return J(this,function(a){return void 0===a?n.text(this):this.empty().each(function(){(1===this.nodeType||11===this.nodeType||9===this.nodeType)&&(this.textContent=a)})},null,a,arguments.length)},append:function(){return this.domManip(arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=ja(this,a);b.appendChild(a)}})},prepend:function(){return this.domManip(arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=ja(this,a);b.insertBefore(a,b.firstChild)}})},before:function(){return this.domManip(arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this)})},after:function(){return this.domManip(arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this.nextSibling)})},remove:function(a,b){for(var c,d=a?n.filter(a,this):this,e=0;null!=(c=d[e]);e++)b||1!==c.nodeType||n.cleanData(oa(c)),c.parentNode&&(b&&n.contains(c.ownerDocument,c)&&ma(oa(c,"script")),c.parentNode.removeChild(c));return this},empty:function(){for(var a,b=0;null!=(a=this[b]);b++)1===a.nodeType&&(n.cleanData(oa(a,!1)),a.textContent="");return this},clone:function(a,b){return a=null==a?!1:a,b=null==b?a:b,this.map(function(){return n.clone(this,a,b)})},html:function(a){return J(this,function(a){var b=this[0]||{},c=0,d=this.length;if(void 0===a&&1===b.nodeType)return b.innerHTML;if("string"==typeof a&&!da.test(a)&&!ia[(ba.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(aa,"<$1></$2>");try{for(;d>c;c++)b=this[c]||{},1===b.nodeType&&(n.cleanData(oa(b,!1)),b.innerHTML=a);b=0}catch(e){}}b&&this.empty().append(a)},null,a,arguments.length)},replaceWith:function(){var a=arguments[0];return this.domManip(arguments,function(b){a=this.parentNode,n.cleanData(oa(this)),a&&a.replaceChild(b,this)}),a&&(a.length||a.nodeType)?this:this.remove()},detach:function(a){return this.remove(a,!0)},domManip:function(a,b){a=e.apply([],a);var c,d,f,g,h,i,j=0,l=this.length,m=this,o=l-1,p=a[0],q=n.isFunction(p);if(q||l>1&&"string"==typeof p&&!k.checkClone&&ea.test(p))return this.each(function(c){var d=m.eq(c);q&&(a[0]=p.call(this,c,d.html())),d.domManip(a,b)});if(l&&(c=n.buildFragment(a,this[0].ownerDocument,!1,this),d=c.firstChild,1===c.childNodes.length&&(c=d),d)){for(f=n.map(oa(c,"script"),ka),g=f.length;l>j;j++)h=c,j!==o&&(h=n.clone(h,!0,!0),g&&n.merge(f,oa(h,"script"))),b.call(this[j],h,j);if(g)for(i=f[f.length-1].ownerDocument,n.map(f,la),j=0;g>j;j++)h=f[j],fa.test(h.type||"")&&!L.access(h,"globalEval")&&n.contains(i,h)&&(h.src?n._evalUrl&&n._evalUrl(h.src):n.globalEval(h.textContent.replace(ha,"")))}return this}}),n.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){n.fn[a]=function(a){for(var c,d=[],e=n(a),g=e.length-1,h=0;g>=h;h++)c=h===g?this:this.clone(!0),n(e[h])[b](c),f.apply(d,c.get());return this.pushStack(d)}});var qa,ra={};function sa(b,c){var d,e=n(c.createElement(b)).appendTo(c.body),f=a.getDefaultComputedStyle&&(d=a.getDefaultComputedStyle(e[0]))?d.display:n.css(e[0],"display");return e.detach(),f}function ta(a){var b=l,c=ra[a];return c||(c=sa(a,b),"none"!==c&&c||(qa=(qa||n("<iframe frameborder='0' width='0' height='0'/>")).appendTo(b.documentElement),b=qa[0].contentDocument,b.write(),b.close(),c=sa(a,b),qa.detach()),ra[a]=c),c}var ua=/^margin/,va=new RegExp("^("+Q+")(?!px)[a-z%]+$","i"),wa=function(b){return b.ownerDocument.defaultView.opener?b.ownerDocument.defaultView.getComputedStyle(b,null):a.getComputedStyle(b,null)};function xa(a,b,c){var d,e,f,g,h=a.style;return c=c||wa(a),c&&(g=c.getPropertyValue(b)||c[b]),c&&(""!==g||n.contains(a.ownerDocument,a)||(g=n.style(a,b)),va.test(g)&&ua.test(b)&&(d=h.width,e=h.minWidth,f=h.maxWidth,h.minWidth=h.maxWidth=h.width=g,g=c.width,h.width=d,h.minWidth=e,h.maxWidth=f)),void 0!==g?g+"":g}function ya(a,b){return{get:function(){return a()?void delete this.get:(this.get=b).apply(this,arguments)}}}!function(){var b,c,d=l.documentElement,e=l.createElement("div"),f=l.createElement("div");if(f.style){f.style.backgroundClip="content-box",f.cloneNode(!0).style.backgroundClip="",k.clearCloneStyle="content-box"===f.style.backgroundClip,e.style.cssText="border:0;width:0;height:0;top:0;left:-9999px;margin-top:1px;position:absolute",e.appendChild(f);function g(){f.style.cssText="-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;display:block;margin-top:1%;top:1%;border:1px;padding:1px;width:4px;position:absolute",f.innerHTML="",d.appendChild(e);var g=a.getComputedStyle(f,null);b="1%"!==g.top,c="4px"===g.width,d.removeChild(e)}a.getComputedStyle&&n.extend(k,{pixelPosition:function(){return g(),b},boxSizingReliable:function(){return null==c&&g(),c},reliableMarginRight:function(){var b,c=f.appendChild(l.createElement("div"));return c.style.cssText=f.style.cssText="-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;display:block;margin:0;border:0;padding:0",c.style.marginRight=c.style.width="0",f.style.width="1px",d.appendChild(e),b=!parseFloat(a.getComputedStyle(c,null).marginRight),d.removeChild(e),f.removeChild(c),b}})}}(),n.swap=function(a,b,c,d){var e,f,g={};for(f in b)g[f]=a.style[f],a.style[f]=b[f];e=c.apply(a,d||[]);for(f in b)a.style[f]=g[f];return e};var za=/^(none|table(?!-c[ea]).+)/,Aa=new RegExp("^("+Q+")(.*)$","i"),Ba=new RegExp("^([+-])=("+Q+")","i"),Ca={position:"absolute",visibility:"hidden",display:"block"},Da={letterSpacing:"0",fontWeight:"400"},Ea=["Webkit","O","Moz","ms"];function Fa(a,b){if(b in a)return b;var c=b[0].toUpperCase()+b.slice(1),d=b,e=Ea.length;while(e--)if(b=Ea[e]+c,b in a)return b;return d}function Ga(a,b,c){var d=Aa.exec(b);return d?Math.max(0,d[1]-(c||0))+(d[2]||"px"):b}function Ha(a,b,c,d,e){for(var f=c===(d?"border":"content")?4:"width"===b?1:0,g=0;4>f;f+=2)"margin"===c&&(g+=n.css(a,c+R[f],!0,e)),d?("content"===c&&(g-=n.css(a,"padding"+R[f],!0,e)),"margin"!==c&&(g-=n.css(a,"border"+R[f]+"Width",!0,e))):(g+=n.css(a,"padding"+R[f],!0,e),"padding"!==c&&(g+=n.css(a,"border"+R[f]+"Width",!0,e)));return g}function Ia(a,b,c){var d=!0,e="width"===b?a.offsetWidth:a.offsetHeight,f=wa(a),g="border-box"===n.css(a,"boxSizing",!1,f);if(0>=e||null==e){if(e=xa(a,b,f),(0>e||null==e)&&(e=a.style[b]),va.test(e))return e;d=g&&(k.boxSizingReliable()||e===a.style[b]),e=parseFloat(e)||0}return e+Ha(a,b,c||(g?"border":"content"),d,f)+"px"}function Ja(a,b){for(var c,d,e,f=[],g=0,h=a.length;h>g;g++)d=a[g],d.style&&(f[g]=L.get(d,"olddisplay"),c=d.style.display,b?(f[g]||"none"!==c||(d.style.display=""),""===d.style.display&&S(d)&&(f[g]=L.access(d,"olddisplay",ta(d.nodeName)))):(e=S(d),"none"===c&&e||L.set(d,"olddisplay",e?c:n.css(d,"display"))));for(g=0;h>g;g++)d=a[g],d.style&&(b&&"none"!==d.style.display&&""!==d.style.display||(d.style.display=b?f[g]||"":"none"));return a}n.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=xa(a,"opacity");return""===c?"1":c}}}},cssNumber:{columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":"cssFloat"},style:function(a,b,c,d){if(a&&3!==a.nodeType&&8!==a.nodeType&&a.style){var e,f,g,h=n.camelCase(b),i=a.style;return b=n.cssProps[h]||(n.cssProps[h]=Fa(i,h)),g=n.cssHooks[b]||n.cssHooks[h],void 0===c?g&&"get"in g&&void 0!==(e=g.get(a,!1,d))?e:i[b]:(f=typeof c,"string"===f&&(e=Ba.exec(c))&&(c=(e[1]+1)*e[2]+parseFloat(n.css(a,b)),f="number"),null!=c&&c===c&&("number"!==f||n.cssNumber[h]||(c+="px"),k.clearCloneStyle||""!==c||0!==b.indexOf("background")||(i[b]="inherit"),g&&"set"in g&&void 0===(c=g.set(a,c,d))||(i[b]=c)),void 0)}},css:function(a,b,c,d){var e,f,g,h=n.camelCase(b);return b=n.cssProps[h]||(n.cssProps[h]=Fa(a.style,h)),g=n.cssHooks[b]||n.cssHooks[h],g&&"get"in g&&(e=g.get(a,!0,c)),void 0===e&&(e=xa(a,b,d)),"normal"===e&&b in Da&&(e=Da[b]),""===c||c?(f=parseFloat(e),c===!0||n.isNumeric(f)?f||0:e):e}}),n.each(["height","width"],function(a,b){n.cssHooks[b]={get:function(a,c,d){return c?za.test(n.css(a,"display"))&&0===a.offsetWidth?n.swap(a,Ca,function(){return Ia(a,b,d)}):Ia(a,b,d):void 0},set:function(a,c,d){var e=d&&wa(a);return Ga(a,c,d?Ha(a,b,d,"border-box"===n.css(a,"boxSizing",!1,e),e):0)}}}),n.cssHooks.marginRight=ya(k.reliableMarginRight,function(a,b){return b?n.swap(a,{display:"inline-block"},xa,[a,"marginRight"]):void 0}),n.each({margin:"",padding:"",border:"Width"},function(a,b){n.cssHooks[a+b]={expand:function(c){for(var d=0,e={},f="string"==typeof c?c.split(" "):[c];4>d;d++)e[a+R[d]+b]=f[d]||f[d-2]||f[0];return e}},ua.test(a)||(n.cssHooks[a+b].set=Ga)}),n.fn.extend({css:function(a,b){return J(this,function(a,b,c){var d,e,f={},g=0;if(n.isArray(b)){for(d=wa(a),e=b.length;e>g;g++)f[b[g]]=n.css(a,b[g],!1,d);return f}return void 0!==c?n.style(a,b,c):n.css(a,b)},a,b,arguments.length>1)},show:function(){return Ja(this,!0)},hide:function(){return Ja(this)},toggle:function(a){return"boolean"==typeof a?a?this.show():this.hide():this.each(function(){S(this)?n(this).show():n(this).hide()})}});function Ka(a,b,c,d,e){return new Ka.prototype.init(a,b,c,d,e)}n.Tween=Ka,Ka.prototype={constructor:Ka,init:function(a,b,c,d,e,f){this.elem=a,this.prop=c,this.easing=e||"swing",this.options=b,this.start=this.now=this.cur(),this.end=d,this.unit=f||(n.cssNumber[c]?"":"px")},cur:function(){var a=Ka.propHooks[this.prop];return a&&a.get?a.get(this):Ka.propHooks._default.get(this)},run:function(a){var b,c=Ka.propHooks[this.prop];return this.options.duration?this.pos=b=n.easing[this.easing](a,this.options.duration*a,0,1,this.options.duration):this.pos=b=a,this.now=(this.end-this.start)*b+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),c&&c.set?c.set(this):Ka.propHooks._default.set(this),this}},Ka.prototype.init.prototype=Ka.prototype,Ka.propHooks={_default:{get:function(a){var b;return null==a.elem[a.prop]||a.elem.style&&null!=a.elem.style[a.prop]?(b=n.css(a.elem,a.prop,""),b&&"auto"!==b?b:0):a.elem[a.prop]},set:function(a){n.fx.step[a.prop]?n.fx.step[a.prop](a):a.elem.style&&(null!=a.elem.style[n.cssProps[a.prop]]||n.cssHooks[a.prop])?n.style(a.elem,a.prop,a.now+a.unit):a.elem[a.prop]=a.now}}},Ka.propHooks.scrollTop=Ka.propHooks.scrollLeft={set:function(a){a.elem.nodeType&&a.elem.parentNode&&(a.elem[a.prop]=a.now)}},n.easing={linear:function(a){return a},swing:function(a){return.5-Math.cos(a*Math.PI)/2}},n.fx=Ka.prototype.init,n.fx.step={};var La,Ma,Na=/^(?:toggle|show|hide)$/,Oa=new RegExp("^(?:([+-])=|)("+Q+")([a-z%]*)$","i"),Pa=/queueHooks$/,Qa=[Va],Ra={"*":[function(a,b){var c=this.createTween(a,b),d=c.cur(),e=Oa.exec(b),f=e&&e[3]||(n.cssNumber[a]?"":"px"),g=(n.cssNumber[a]||"px"!==f&&+d)&&Oa.exec(n.css(c.elem,a)),h=1,i=20;if(g&&g[3]!==f){f=f||g[3],e=e||[],g=+d||1;do h=h||".5",g/=h,n.style(c.elem,a,g+f);while(h!==(h=c.cur()/d)&&1!==h&&--i)}return e&&(g=c.start=+g||+d||0,c.unit=f,c.end=e[1]?g+(e[1]+1)*e[2]:+e[2]),c}]};function Sa(){return setTimeout(function(){La=void 0}),La=n.now()}function Ta(a,b){var c,d=0,e={height:a};for(b=b?1:0;4>d;d+=2-b)c=R[d],e["margin"+c]=e["padding"+c]=a;return b&&(e.opacity=e.width=a),e}function Ua(a,b,c){for(var d,e=(Ra[b]||[]).concat(Ra["*"]),f=0,g=e.length;g>f;f++)if(d=e[f].call(c,b,a))return d}function Va(a,b,c){var d,e,f,g,h,i,j,k,l=this,m={},o=a.style,p=a.nodeType&&S(a),q=L.get(a,"fxshow");c.queue||(h=n._queueHooks(a,"fx"),null==h.unqueued&&(h.unqueued=0,i=h.empty.fire,h.empty.fire=function(){h.unqueued||i()}),h.unqueued++,l.always(function(){l.always(function(){h.unqueued--,n.queue(a,"fx").length||h.empty.fire()})})),1===a.nodeType&&("height"in b||"width"in b)&&(c.overflow=[o.overflow,o.overflowX,o.overflowY],j=n.css(a,"display"),k="none"===j?L.get(a,"olddisplay")||ta(a.nodeName):j,"inline"===k&&"none"===n.css(a,"float")&&(o.display="inline-block")),c.overflow&&(o.overflow="hidden",l.always(function(){o.overflow=c.overflow[0],o.overflowX=c.overflow[1],o.overflowY=c.overflow[2]}));for(d in b)if(e=b[d],Na.exec(e)){if(delete b[d],f=f||"toggle"===e,e===(p?"hide":"show")){if("show"!==e||!q||void 0===q[d])continue;p=!0}m[d]=q&&q[d]||n.style(a,d)}else j=void 0;if(n.isEmptyObject(m))"inline"===("none"===j?ta(a.nodeName):j)&&(o.display=j);else{q?"hidden"in q&&(p=q.hidden):q=L.access(a,"fxshow",{}),f&&(q.hidden=!p),p?n(a).show():l.done(function(){n(a).hide()}),l.done(function(){var b;L.remove(a,"fxshow");for(b in m)n.style(a,b,m[b])});for(d in m)g=Ua(p?q[d]:0,d,l),d in q||(q[d]=g.start,p&&(g.end=g.start,g.start="width"===d||"height"===d?1:0))}}function Wa(a,b){var c,d,e,f,g;for(c in a)if(d=n.camelCase(c),e=b[d],f=a[c],n.isArray(f)&&(e=f[1],f=a[c]=f[0]),c!==d&&(a[d]=f,delete a[c]),g=n.cssHooks[d],g&&"expand"in g){f=g.expand(f),delete a[d];for(c in f)c in a||(a[c]=f[c],b[c]=e)}else b[d]=e}function Xa(a,b,c){var d,e,f=0,g=Qa.length,h=n.Deferred().always(function(){delete i.elem}),i=function(){if(e)return!1;for(var b=La||Sa(),c=Math.max(0,j.startTime+j.duration-b),d=c/j.duration||0,f=1-d,g=0,i=j.tweens.length;i>g;g++)j.tweens[g].run(f);return h.notifyWith(a,[j,f,c]),1>f&&i?c:(h.resolveWith(a,[j]),!1)},j=h.promise({elem:a,props:n.extend({},b),opts:n.extend(!0,{specialEasing:{}},c),originalProperties:b,originalOptions:c,startTime:La||Sa(),duration:c.duration,tweens:[],createTween:function(b,c){var d=n.Tween(a,j.opts,b,c,j.opts.specialEasing[b]||j.opts.easing);return j.tweens.push(d),d},stop:function(b){var c=0,d=b?j.tweens.length:0;if(e)return this;for(e=!0;d>c;c++)j.tweens[c].run(1);return b?h.resolveWith(a,[j,b]):h.rejectWith(a,[j,b]),this}}),k=j.props;for(Wa(k,j.opts.specialEasing);g>f;f++)if(d=Qa[f].call(j,a,k,j.opts))return d;return n.map(k,Ua,j),n.isFunction(j.opts.start)&&j.opts.start.call(a,j),n.fx.timer(n.extend(i,{elem:a,anim:j,queue:j.opts.queue})),j.progress(j.opts.progress).done(j.opts.done,j.opts.complete).fail(j.opts.fail).always(j.opts.always)}n.Animation=n.extend(Xa,{tweener:function(a,b){n.isFunction(a)?(b=a,a=["*"]):a=a.split(" ");for(var c,d=0,e=a.length;e>d;d++)c=a[d],Ra[c]=Ra[c]||[],Ra[c].unshift(b)},prefilter:function(a,b){b?Qa.unshift(a):Qa.push(a)}}),n.speed=function(a,b,c){var d=a&&"object"==typeof a?n.extend({},a):{complete:c||!c&&b||n.isFunction(a)&&a,duration:a,easing:c&&b||b&&!n.isFunction(b)&&b};return d.duration=n.fx.off?0:"number"==typeof d.duration?d.duration:d.duration in n.fx.speeds?n.fx.speeds[d.duration]:n.fx.speeds._default,(null==d.queue||d.queue===!0)&&(d.queue="fx"),d.old=d.complete,d.complete=function(){n.isFunction(d.old)&&d.old.call(this),d.queue&&n.dequeue(this,d.queue)},d},n.fn.extend({fadeTo:function(a,b,c,d){return this.filter(S).css("opacity",0).show().end().animate({opacity:b},a,c,d)},animate:function(a,b,c,d){var e=n.isEmptyObject(a),f=n.speed(b,c,d),g=function(){var b=Xa(this,n.extend({},a),f);(e||L.get(this,"finish"))&&b.stop(!0)};return g.finish=g,e||f.queue===!1?this.each(g):this.queue(f.queue,g)},stop:function(a,b,c){var d=function(a){var b=a.stop;delete a.stop,b(c)};return"string"!=typeof a&&(c=b,b=a,a=void 0),b&&a!==!1&&this.queue(a||"fx",[]),this.each(function(){var b=!0,e=null!=a&&a+"queueHooks",f=n.timers,g=L.get(this);if(e)g[e]&&g[e].stop&&d(g[e]);else for(e in g)g[e]&&g[e].stop&&Pa.test(e)&&d(g[e]);for(e=f.length;e--;)f[e].elem!==this||null!=a&&f[e].queue!==a||(f[e].anim.stop(c),b=!1,f.splice(e,1));(b||!c)&&n.dequeue(this,a)})},finish:function(a){return a!==!1&&(a=a||"fx"),this.each(function(){var b,c=L.get(this),d=c[a+"queue"],e=c[a+"queueHooks"],f=n.timers,g=d?d.length:0;for(c.finish=!0,n.queue(this,a,[]),e&&e.stop&&e.stop.call(this,!0),b=f.length;b--;)f[b].elem===this&&f[b].queue===a&&(f[b].anim.stop(!0),f.splice(b,1));for(b=0;g>b;b++)d[b]&&d[b].finish&&d[b].finish.call(this);delete c.finish})}}),n.each(["toggle","show","hide"],function(a,b){var c=n.fn[b];n.fn[b]=function(a,d,e){return null==a||"boolean"==typeof a?c.apply(this,arguments):this.animate(Ta(b,!0),a,d,e)}}),n.each({slideDown:Ta("show"),slideUp:Ta("hide"),slideToggle:Ta("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(a,b){n.fn[a]=function(a,c,d){return this.animate(b,a,c,d)}}),n.timers=[],n.fx.tick=function(){var a,b=0,c=n.timers;for(La=n.now();b<c.length;b++)a=c[b],a()||c[b]!==a||c.splice(b--,1);c.length||n.fx.stop(),La=void 0},n.fx.timer=function(a){n.timers.push(a),a()?n.fx.start():n.timers.pop()},n.fx.interval=13,n.fx.start=function(){Ma||(Ma=setInterval(n.fx.tick,n.fx.interval))},n.fx.stop=function(){clearInterval(Ma),Ma=null},n.fx.speeds={slow:600,fast:200,_default:400},n.fn.delay=function(a,b){return a=n.fx?n.fx.speeds[a]||a:a,b=b||"fx",this.queue(b,function(b,c){var d=setTimeout(b,a);c.stop=function(){clearTimeout(d)}})},function(){var a=l.createElement("input"),b=l.createElement("select"),c=b.appendChild(l.createElement("option"));a.type="checkbox",k.checkOn=""!==a.value,k.optSelected=c.selected,b.disabled=!0,k.optDisabled=!c.disabled,a=l.createElement("input"),a.value="t",a.type="radio",k.radioValue="t"===a.value}();var Ya,Za,$a=n.expr.attrHandle;n.fn.extend({attr:function(a,b){return J(this,n.attr,a,b,arguments.length>1)},removeAttr:function(a){return this.each(function(){n.removeAttr(this,a)})}}),n.extend({attr:function(a,b,c){var d,e,f=a.nodeType;if(a&&3!==f&&8!==f&&2!==f)return typeof a.getAttribute===U?n.prop(a,b,c):(1===f&&n.isXMLDoc(a)||(b=b.toLowerCase(),d=n.attrHooks[b]||(n.expr.match.bool.test(b)?Za:Ya)),
-void 0===c?d&&"get"in d&&null!==(e=d.get(a,b))?e:(e=n.find.attr(a,b),null==e?void 0:e):null!==c?d&&"set"in d&&void 0!==(e=d.set(a,c,b))?e:(a.setAttribute(b,c+""),c):void n.removeAttr(a,b))},removeAttr:function(a,b){var c,d,e=0,f=b&&b.match(E);if(f&&1===a.nodeType)while(c=f[e++])d=n.propFix[c]||c,n.expr.match.bool.test(c)&&(a[d]=!1),a.removeAttribute(c)},attrHooks:{type:{set:function(a,b){if(!k.radioValue&&"radio"===b&&n.nodeName(a,"input")){var c=a.value;return a.setAttribute("type",b),c&&(a.value=c),b}}}}}),Za={set:function(a,b,c){return b===!1?n.removeAttr(a,c):a.setAttribute(c,c),c}},n.each(n.expr.match.bool.source.match(/\w+/g),function(a,b){var c=$a[b]||n.find.attr;$a[b]=function(a,b,d){var e,f;return d||(f=$a[b],$a[b]=e,e=null!=c(a,b,d)?b.toLowerCase():null,$a[b]=f),e}});var _a=/^(?:input|select|textarea|button)$/i;n.fn.extend({prop:function(a,b){return J(this,n.prop,a,b,arguments.length>1)},removeProp:function(a){return this.each(function(){delete this[n.propFix[a]||a]})}}),n.extend({propFix:{"for":"htmlFor","class":"className"},prop:function(a,b,c){var d,e,f,g=a.nodeType;if(a&&3!==g&&8!==g&&2!==g)return f=1!==g||!n.isXMLDoc(a),f&&(b=n.propFix[b]||b,e=n.propHooks[b]),void 0!==c?e&&"set"in e&&void 0!==(d=e.set(a,c,b))?d:a[b]=c:e&&"get"in e&&null!==(d=e.get(a,b))?d:a[b]},propHooks:{tabIndex:{get:function(a){return a.hasAttribute("tabindex")||_a.test(a.nodeName)||a.href?a.tabIndex:-1}}}}),k.optSelected||(n.propHooks.selected={get:function(a){var b=a.parentNode;return b&&b.parentNode&&b.parentNode.selectedIndex,null}}),n.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){n.propFix[this.toLowerCase()]=this});var ab=/[\t\r\n\f]/g;n.fn.extend({addClass:function(a){var b,c,d,e,f,g,h="string"==typeof a&&a,i=0,j=this.length;if(n.isFunction(a))return this.each(function(b){n(this).addClass(a.call(this,b,this.className))});if(h)for(b=(a||"").match(E)||[];j>i;i++)if(c=this[i],d=1===c.nodeType&&(c.className?(" "+c.className+" ").replace(ab," "):" ")){f=0;while(e=b[f++])d.indexOf(" "+e+" ")<0&&(d+=e+" ");g=n.trim(d),c.className!==g&&(c.className=g)}return this},removeClass:function(a){var b,c,d,e,f,g,h=0===arguments.length||"string"==typeof a&&a,i=0,j=this.length;if(n.isFunction(a))return this.each(function(b){n(this).removeClass(a.call(this,b,this.className))});if(h)for(b=(a||"").match(E)||[];j>i;i++)if(c=this[i],d=1===c.nodeType&&(c.className?(" "+c.className+" ").replace(ab," "):"")){f=0;while(e=b[f++])while(d.indexOf(" "+e+" ")>=0)d=d.replace(" "+e+" "," ");g=a?n.trim(d):"",c.className!==g&&(c.className=g)}return this},toggleClass:function(a,b){var c=typeof a;return"boolean"==typeof b&&"string"===c?b?this.addClass(a):this.removeClass(a):this.each(n.isFunction(a)?function(c){n(this).toggleClass(a.call(this,c,this.className,b),b)}:function(){if("string"===c){var b,d=0,e=n(this),f=a.match(E)||[];while(b=f[d++])e.hasClass(b)?e.removeClass(b):e.addClass(b)}else(c===U||"boolean"===c)&&(this.className&&L.set(this,"__className__",this.className),this.className=this.className||a===!1?"":L.get(this,"__className__")||"")})},hasClass:function(a){for(var b=" "+a+" ",c=0,d=this.length;d>c;c++)if(1===this[c].nodeType&&(" "+this[c].className+" ").replace(ab," ").indexOf(b)>=0)return!0;return!1}});var bb=/\r/g;n.fn.extend({val:function(a){var b,c,d,e=this[0];{if(arguments.length)return d=n.isFunction(a),this.each(function(c){var e;1===this.nodeType&&(e=d?a.call(this,c,n(this).val()):a,null==e?e="":"number"==typeof e?e+="":n.isArray(e)&&(e=n.map(e,function(a){return null==a?"":a+""})),b=n.valHooks[this.type]||n.valHooks[this.nodeName.toLowerCase()],b&&"set"in b&&void 0!==b.set(this,e,"value")||(this.value=e))});if(e)return b=n.valHooks[e.type]||n.valHooks[e.nodeName.toLowerCase()],b&&"get"in b&&void 0!==(c=b.get(e,"value"))?c:(c=e.value,"string"==typeof c?c.replace(bb,""):null==c?"":c)}}}),n.extend({valHooks:{option:{get:function(a){var b=n.find.attr(a,"value");return null!=b?b:n.trim(n.text(a))}},select:{get:function(a){for(var b,c,d=a.options,e=a.selectedIndex,f="select-one"===a.type||0>e,g=f?null:[],h=f?e+1:d.length,i=0>e?h:f?e:0;h>i;i++)if(c=d[i],!(!c.selected&&i!==e||(k.optDisabled?c.disabled:null!==c.getAttribute("disabled"))||c.parentNode.disabled&&n.nodeName(c.parentNode,"optgroup"))){if(b=n(c).val(),f)return b;g.push(b)}return g},set:function(a,b){var c,d,e=a.options,f=n.makeArray(b),g=e.length;while(g--)d=e[g],(d.selected=n.inArray(d.value,f)>=0)&&(c=!0);return c||(a.selectedIndex=-1),f}}}}),n.each(["radio","checkbox"],function(){n.valHooks[this]={set:function(a,b){return n.isArray(b)?a.checked=n.inArray(n(a).val(),b)>=0:void 0}},k.checkOn||(n.valHooks[this].get=function(a){return null===a.getAttribute("value")?"on":a.value})}),n.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "),function(a,b){n.fn[b]=function(a,c){return arguments.length>0?this.on(b,null,a,c):this.trigger(b)}}),n.fn.extend({hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)},bind:function(a,b,c){return this.on(a,null,b,c)},unbind:function(a,b){return this.off(a,null,b)},delegate:function(a,b,c,d){return this.on(b,a,c,d)},undelegate:function(a,b,c){return 1===arguments.length?this.off(a,"**"):this.off(b,a||"**",c)}});var cb=n.now(),db=/\?/;n.parseJSON=function(a){return JSON.parse(a+"")},n.parseXML=function(a){var b,c;if(!a||"string"!=typeof a)return null;try{c=new DOMParser,b=c.parseFromString(a,"text/xml")}catch(d){b=void 0}return(!b||b.getElementsByTagName("parsererror").length)&&n.error("Invalid XML: "+a),b};var eb=/#.*$/,fb=/([?&])_=[^&]*/,gb=/^(.*?):[ \t]*([^\r\n]*)$/gm,hb=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,ib=/^(?:GET|HEAD)$/,jb=/^\/\//,kb=/^([\w.+-]+:)(?:\/\/(?:[^\/?#]*@|)([^\/?#:]*)(?::(\d+)|)|)/,lb={},mb={},nb="*/".concat("*"),ob=a.location.href,pb=kb.exec(ob.toLowerCase())||[];function qb(a){return function(b,c){"string"!=typeof b&&(c=b,b="*");var d,e=0,f=b.toLowerCase().match(E)||[];if(n.isFunction(c))while(d=f[e++])"+"===d[0]?(d=d.slice(1)||"*",(a[d]=a[d]||[]).unshift(c)):(a[d]=a[d]||[]).push(c)}}function rb(a,b,c,d){var e={},f=a===mb;function g(h){var i;return e[h]=!0,n.each(a[h]||[],function(a,h){var j=h(b,c,d);return"string"!=typeof j||f||e[j]?f?!(i=j):void 0:(b.dataTypes.unshift(j),g(j),!1)}),i}return g(b.dataTypes[0])||!e["*"]&&g("*")}function sb(a,b){var c,d,e=n.ajaxSettings.flatOptions||{};for(c in b)void 0!==b[c]&&((e[c]?a:d||(d={}))[c]=b[c]);return d&&n.extend(!0,a,d),a}function tb(a,b,c){var d,e,f,g,h=a.contents,i=a.dataTypes;while("*"===i[0])i.shift(),void 0===d&&(d=a.mimeType||b.getResponseHeader("Content-Type"));if(d)for(e in h)if(h[e]&&h[e].test(d)){i.unshift(e);break}if(i[0]in c)f=i[0];else{for(e in c){if(!i[0]||a.converters[e+" "+i[0]]){f=e;break}g||(g=e)}f=f||g}return f?(f!==i[0]&&i.unshift(f),c[f]):void 0}function ub(a,b,c,d){var e,f,g,h,i,j={},k=a.dataTypes.slice();if(k[1])for(g in a.converters)j[g.toLowerCase()]=a.converters[g];f=k.shift();while(f)if(a.responseFields[f]&&(c[a.responseFields[f]]=b),!i&&d&&a.dataFilter&&(b=a.dataFilter(b,a.dataType)),i=f,f=k.shift())if("*"===f)f=i;else if("*"!==i&&i!==f){if(g=j[i+" "+f]||j["* "+f],!g)for(e in j)if(h=e.split(" "),h[1]===f&&(g=j[i+" "+h[0]]||j["* "+h[0]])){g===!0?g=j[e]:j[e]!==!0&&(f=h[0],k.unshift(h[1]));break}if(g!==!0)if(g&&a["throws"])b=g(b);else try{b=g(b)}catch(l){return{state:"parsererror",error:g?l:"No conversion from "+i+" to "+f}}}return{state:"success",data:b}}n.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:ob,type:"GET",isLocal:hb.test(pb[1]),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":nb,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":n.parseJSON,"text xml":n.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(a,b){return b?sb(sb(a,n.ajaxSettings),b):sb(n.ajaxSettings,a)},ajaxPrefilter:qb(lb),ajaxTransport:qb(mb),ajax:function(a,b){"object"==typeof a&&(b=a,a=void 0),b=b||{};var c,d,e,f,g,h,i,j,k=n.ajaxSetup({},b),l=k.context||k,m=k.context&&(l.nodeType||l.jquery)?n(l):n.event,o=n.Deferred(),p=n.Callbacks("once memory"),q=k.statusCode||{},r={},s={},t=0,u="canceled",v={readyState:0,getResponseHeader:function(a){var b;if(2===t){if(!f){f={};while(b=gb.exec(e))f[b[1].toLowerCase()]=b[2]}b=f[a.toLowerCase()]}return null==b?null:b},getAllResponseHeaders:function(){return 2===t?e:null},setRequestHeader:function(a,b){var c=a.toLowerCase();return t||(a=s[c]=s[c]||a,r[a]=b),this},overrideMimeType:function(a){return t||(k.mimeType=a),this},statusCode:function(a){var b;if(a)if(2>t)for(b in a)q[b]=[q[b],a[b]];else v.always(a[v.status]);return this},abort:function(a){var b=a||u;return c&&c.abort(b),x(0,b),this}};if(o.promise(v).complete=p.add,v.success=v.done,v.error=v.fail,k.url=((a||k.url||ob)+"").replace(eb,"").replace(jb,pb[1]+"//"),k.type=b.method||b.type||k.method||k.type,k.dataTypes=n.trim(k.dataType||"*").toLowerCase().match(E)||[""],null==k.crossDomain&&(h=kb.exec(k.url.toLowerCase()),k.crossDomain=!(!h||h[1]===pb[1]&&h[2]===pb[2]&&(h[3]||("http:"===h[1]?"80":"443"))===(pb[3]||("http:"===pb[1]?"80":"443")))),k.data&&k.processData&&"string"!=typeof k.data&&(k.data=n.param(k.data,k.traditional)),rb(lb,k,b,v),2===t)return v;i=n.event&&k.global,i&&0===n.active++&&n.event.trigger("ajaxStart"),k.type=k.type.toUpperCase(),k.hasContent=!ib.test(k.type),d=k.url,k.hasContent||(k.data&&(d=k.url+=(db.test(d)?"&":"?")+k.data,delete k.data),k.cache===!1&&(k.url=fb.test(d)?d.replace(fb,"$1_="+cb++):d+(db.test(d)?"&":"?")+"_="+cb++)),k.ifModified&&(n.lastModified[d]&&v.setRequestHeader("If-Modified-Since",n.lastModified[d]),n.etag[d]&&v.setRequestHeader("If-None-Match",n.etag[d])),(k.data&&k.hasContent&&k.contentType!==!1||b.contentType)&&v.setRequestHeader("Content-Type",k.contentType),v.setRequestHeader("Accept",k.dataTypes[0]&&k.accepts[k.dataTypes[0]]?k.accepts[k.dataTypes[0]]+("*"!==k.dataTypes[0]?", "+nb+"; q=0.01":""):k.accepts["*"]);for(j in k.headers)v.setRequestHeader(j,k.headers[j]);if(k.beforeSend&&(k.beforeSend.call(l,v,k)===!1||2===t))return v.abort();u="abort";for(j in{success:1,error:1,complete:1})v[j](k[j]);if(c=rb(mb,k,b,v)){v.readyState=1,i&&m.trigger("ajaxSend",[v,k]),k.async&&k.timeout>0&&(g=setTimeout(function(){v.abort("timeout")},k.timeout));try{t=1,c.send(r,x)}catch(w){if(!(2>t))throw w;x(-1,w)}}else x(-1,"No Transport");function x(a,b,f,h){var j,r,s,u,w,x=b;2!==t&&(t=2,g&&clearTimeout(g),c=void 0,e=h||"",v.readyState=a>0?4:0,j=a>=200&&300>a||304===a,f&&(u=tb(k,v,f)),u=ub(k,u,v,j),j?(k.ifModified&&(w=v.getResponseHeader("Last-Modified"),w&&(n.lastModified[d]=w),w=v.getResponseHeader("etag"),w&&(n.etag[d]=w)),204===a||"HEAD"===k.type?x="nocontent":304===a?x="notmodified":(x=u.state,r=u.data,s=u.error,j=!s)):(s=x,(a||!x)&&(x="error",0>a&&(a=0))),v.status=a,v.statusText=(b||x)+"",j?o.resolveWith(l,[r,x,v]):o.rejectWith(l,[v,x,s]),v.statusCode(q),q=void 0,i&&m.trigger(j?"ajaxSuccess":"ajaxError",[v,k,j?r:s]),p.fireWith(l,[v,x]),i&&(m.trigger("ajaxComplete",[v,k]),--n.active||n.event.trigger("ajaxStop")))}return v},getJSON:function(a,b,c){return n.get(a,b,c,"json")},getScript:function(a,b){return n.get(a,void 0,b,"script")}}),n.each(["get","post"],function(a,b){n[b]=function(a,c,d,e){return n.isFunction(c)&&(e=e||d,d=c,c=void 0),n.ajax({url:a,type:b,dataType:e,data:c,success:d})}}),n._evalUrl=function(a){return n.ajax({url:a,type:"GET",dataType:"script",async:!1,global:!1,"throws":!0})},n.fn.extend({wrapAll:function(a){var b;return n.isFunction(a)?this.each(function(b){n(this).wrapAll(a.call(this,b))}):(this[0]&&(b=n(a,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstElementChild)a=a.firstElementChild;return a}).append(this)),this)},wrapInner:function(a){return this.each(n.isFunction(a)?function(b){n(this).wrapInner(a.call(this,b))}:function(){var b=n(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=n.isFunction(a);return this.each(function(c){n(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(){return this.parent().each(function(){n.nodeName(this,"body")||n(this).replaceWith(this.childNodes)}).end()}}),n.expr.filters.hidden=function(a){return a.offsetWidth<=0&&a.offsetHeight<=0},n.expr.filters.visible=function(a){return!n.expr.filters.hidden(a)};var vb=/%20/g,wb=/\[\]$/,xb=/\r?\n/g,yb=/^(?:submit|button|image|reset|file)$/i,zb=/^(?:input|select|textarea|keygen)/i;function Ab(a,b,c,d){var e;if(n.isArray(b))n.each(b,function(b,e){c||wb.test(a)?d(a,e):Ab(a+"["+("object"==typeof e?b:"")+"]",e,c,d)});else if(c||"object"!==n.type(b))d(a,b);else for(e in b)Ab(a+"["+e+"]",b[e],c,d)}n.param=function(a,b){var c,d=[],e=function(a,b){b=n.isFunction(b)?b():null==b?"":b,d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};if(void 0===b&&(b=n.ajaxSettings&&n.ajaxSettings.traditional),n.isArray(a)||a.jquery&&!n.isPlainObject(a))n.each(a,function(){e(this.name,this.value)});else for(c in a)Ab(c,a[c],b,e);return d.join("&").replace(vb,"+")},n.fn.extend({serialize:function(){return n.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var a=n.prop(this,"elements");return a?n.makeArray(a):this}).filter(function(){var a=this.type;return this.name&&!n(this).is(":disabled")&&zb.test(this.nodeName)&&!yb.test(a)&&(this.checked||!T.test(a))}).map(function(a,b){var c=n(this).val();return null==c?null:n.isArray(c)?n.map(c,function(a){return{name:b.name,value:a.replace(xb,"\r\n")}}):{name:b.name,value:c.replace(xb,"\r\n")}}).get()}}),n.ajaxSettings.xhr=function(){try{return new XMLHttpRequest}catch(a){}};var Bb=0,Cb={},Db={0:200,1223:204},Eb=n.ajaxSettings.xhr();a.attachEvent&&a.attachEvent("onunload",function(){for(var a in Cb)Cb[a]()}),k.cors=!!Eb&&"withCredentials"in Eb,k.ajax=Eb=!!Eb,n.ajaxTransport(function(a){var b;return k.cors||Eb&&!a.crossDomain?{send:function(c,d){var e,f=a.xhr(),g=++Bb;if(f.open(a.type,a.url,a.async,a.username,a.password),a.xhrFields)for(e in a.xhrFields)f[e]=a.xhrFields[e];a.mimeType&&f.overrideMimeType&&f.overrideMimeType(a.mimeType),a.crossDomain||c["X-Requested-With"]||(c["X-Requested-With"]="XMLHttpRequest");for(e in c)f.setRequestHeader(e,c[e]);b=function(a){return function(){b&&(delete Cb[g],b=f.onload=f.onerror=null,"abort"===a?f.abort():"error"===a?d(f.status,f.statusText):d(Db[f.status]||f.status,f.statusText,"string"==typeof f.responseText?{text:f.responseText}:void 0,f.getAllResponseHeaders()))}},f.onload=b(),f.onerror=b("error"),b=Cb[g]=b("abort");try{f.send(a.hasContent&&a.data||null)}catch(h){if(b)throw h}},abort:function(){b&&b()}}:void 0}),n.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/(?:java|ecma)script/},converters:{"text script":function(a){return n.globalEval(a),a}}}),n.ajaxPrefilter("script",function(a){void 0===a.cache&&(a.cache=!1),a.crossDomain&&(a.type="GET")}),n.ajaxTransport("script",function(a){if(a.crossDomain){var b,c;return{send:function(d,e){b=n("<script>").prop({async:!0,charset:a.scriptCharset,src:a.url}).on("load error",c=function(a){b.remove(),c=null,a&&e("error"===a.type?404:200,a.type)}),l.head.appendChild(b[0])},abort:function(){c&&c()}}}});var Fb=[],Gb=/(=)\?(?=&|$)|\?\?/;n.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var a=Fb.pop()||n.expando+"_"+cb++;return this[a]=!0,a}}),n.ajaxPrefilter("json jsonp",function(b,c,d){var e,f,g,h=b.jsonp!==!1&&(Gb.test(b.url)?"url":"string"==typeof b.data&&!(b.contentType||"").indexOf("application/x-www-form-urlencoded")&&Gb.test(b.data)&&"data");return h||"jsonp"===b.dataTypes[0]?(e=b.jsonpCallback=n.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,h?b[h]=b[h].replace(Gb,"$1"+e):b.jsonp!==!1&&(b.url+=(db.test(b.url)?"&":"?")+b.jsonp+"="+e),b.converters["script json"]=function(){return g||n.error(e+" was not called"),g[0]},b.dataTypes[0]="json",f=a[e],a[e]=function(){g=arguments},d.always(function(){a[e]=f,b[e]&&(b.jsonpCallback=c.jsonpCallback,Fb.push(e)),g&&n.isFunction(f)&&f(g[0]),g=f=void 0}),"script"):void 0}),n.parseHTML=function(a,b,c){if(!a||"string"!=typeof a)return null;"boolean"==typeof b&&(c=b,b=!1),b=b||l;var d=v.exec(a),e=!c&&[];return d?[b.createElement(d[1])]:(d=n.buildFragment([a],b,e),e&&e.length&&n(e).remove(),n.merge([],d.childNodes))};var Hb=n.fn.load;n.fn.load=function(a,b,c){if("string"!=typeof a&&Hb)return Hb.apply(this,arguments);var d,e,f,g=this,h=a.indexOf(" ");return h>=0&&(d=n.trim(a.slice(h)),a=a.slice(0,h)),n.isFunction(b)?(c=b,b=void 0):b&&"object"==typeof b&&(e="POST"),g.length>0&&n.ajax({url:a,type:e,dataType:"html",data:b}).done(function(a){f=arguments,g.html(d?n("<div>").append(n.parseHTML(a)).find(d):a)}).complete(c&&function(a,b){g.each(c,f||[a.responseText,b,a])}),this},n.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(a,b){n.fn[b]=function(a){return this.on(b,a)}}),n.expr.filters.animated=function(a){return n.grep(n.timers,function(b){return a===b.elem}).length};var Ib=a.document.documentElement;function Jb(a){return n.isWindow(a)?a:9===a.nodeType&&a.defaultView}n.offset={setOffset:function(a,b,c){var d,e,f,g,h,i,j,k=n.css(a,"position"),l=n(a),m={};"static"===k&&(a.style.position="relative"),h=l.offset(),f=n.css(a,"top"),i=n.css(a,"left"),j=("absolute"===k||"fixed"===k)&&(f+i).indexOf("auto")>-1,j?(d=l.position(),g=d.top,e=d.left):(g=parseFloat(f)||0,e=parseFloat(i)||0),n.isFunction(b)&&(b=b.call(a,c,h)),null!=b.top&&(m.top=b.top-h.top+g),null!=b.left&&(m.left=b.left-h.left+e),"using"in b?b.using.call(a,m):l.css(m)}},n.fn.extend({offset:function(a){if(arguments.length)return void 0===a?this:this.each(function(b){n.offset.setOffset(this,a,b)});var b,c,d=this[0],e={top:0,left:0},f=d&&d.ownerDocument;if(f)return b=f.documentElement,n.contains(b,d)?(typeof d.getBoundingClientRect!==U&&(e=d.getBoundingClientRect()),c=Jb(f),{top:e.top+c.pageYOffset-b.clientTop,left:e.left+c.pageXOffset-b.clientLeft}):e},position:function(){if(this[0]){var a,b,c=this[0],d={top:0,left:0};return"fixed"===n.css(c,"position")?b=c.getBoundingClientRect():(a=this.offsetParent(),b=this.offset(),n.nodeName(a[0],"html")||(d=a.offset()),d.top+=n.css(a[0],"borderTopWidth",!0),d.left+=n.css(a[0],"borderLeftWidth",!0)),{top:b.top-d.top-n.css(c,"marginTop",!0),left:b.left-d.left-n.css(c,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||Ib;while(a&&!n.nodeName(a,"html")&&"static"===n.css(a,"position"))a=a.offsetParent;return a||Ib})}}),n.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(b,c){var d="pageYOffset"===c;n.fn[b]=function(e){return J(this,function(b,e,f){var g=Jb(b);return void 0===f?g?g[c]:b[e]:void(g?g.scrollTo(d?a.pageXOffset:f,d?f:a.pageYOffset):b[e]=f)},b,e,arguments.length,null)}}),n.each(["top","left"],function(a,b){n.cssHooks[b]=ya(k.pixelPosition,function(a,c){return c?(c=xa(a,b),va.test(c)?n(a).position()[b]+"px":c):void 0})}),n.each({Height:"height",Width:"width"},function(a,b){n.each({padding:"inner"+a,content:b,"":"outer"+a},function(c,d){n.fn[d]=function(d,e){var f=arguments.length&&(c||"boolean"!=typeof d),g=c||(d===!0||e===!0?"margin":"border");return J(this,function(b,c,d){var e;return n.isWindow(b)?b.document.documentElement["client"+a]:9===b.nodeType?(e=b.documentElement,Math.max(b.body["scroll"+a],e["scroll"+a],b.body["offset"+a],e["offset"+a],e["client"+a])):void 0===d?n.css(b,c,g):n.style(b,c,d,g)},b,f?d:void 0,f,null)}})}),n.fn.size=function(){return this.length},n.fn.andSelf=n.fn.addBack,"function"==typeof define&&define.amd&&define("jquery",[],function(){return n});var Kb=a.jQuery,Lb=a.$;return n.noConflict=function(b){return a.$===n&&(a.$=Lb),b&&a.jQuery===n&&(a.jQuery=Kb),n},typeof b===U&&(a.jQuery=a.$=n),n});
-//# sourceMappingURL=jquery.min.map
\ No newline at end of file
+/*! jQuery v3.5.0 | (c) JS Foundation and other contributors | jquery.org/license */
+!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(C,e){"use strict";var t=[],r=Object.getPrototypeOf,s=t.slice,g=t.flat?function(e){return t.flat.call(e)}:function(e){return t.concat.apply([],e)},u=t.push,i=t.indexOf,n={},o=n.toString,v=n.hasOwnProperty,a=v.toString,l=a.call(Object),y={},m=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType},x=function(e){return null!=e&&e===e.window},E=C.document,c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||E).createElement("script");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[o.call(e)]||"object":typeof e}var f="3.5.0",S=function(e,t){return new S.fn.init(e,t)};function p(e){var t=!!e&&"length"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&("array"===n||0===t||"number"==typeof t&&0<t&&t-1 in e)}S.fn=S.prototype={jquery:f,constructor:S,length:0,toArray:function(){return s.call(this)},get:function(e){return null==e?s.call(this):e<0?this[e+this.length]:this[e]},pushStack:function(e){var t=S.merge(this.constructor(),e);return t.prevObject=this,t},each:function(e){return S.each(this,e)},map:function(n){return this.pushStack(S.map(this,function(e,t){return n.call(e,t,e)}))},slice:function(){return this.pushStack(s.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},even:function(){return this.pushStack(S.grep(this,function(e,t){return(t+1)%2}))},odd:function(){return this.pushStack(S.grep(this,function(e,t){return t%2}))},eq:function(e){var t=this.length,n=+e+(e<0?t:0);return this.pushStack(0<=n&&n<t?[this[n]]:[])},end:function(){return this.prevObject||this.constructor()},push:u,sort:t.sort,splice:t.splice},S.extend=S.fn.extend=function(){var e,t,n,r,i,o,a=arguments[0]||{},s=1,u=arguments.length,l=!1;for("boolean"==typeof a&&(l=a,a=arguments[s]||{},s++),"object"==typeof a||m(a)||(a={}),s===u&&(a=this,s--);s<u;s++)if(null!=(e=arguments[s]))for(t in e)r=e[t],"__proto__"!==t&&a!==r&&(l&&r&&(S.isPlainObject(r)||(i=Array.isArray(r)))?(n=a[t],o=i&&!Array.isArray(n)?[]:i||S.isPlainObject(n)?n:{},i=!1,a[t]=S.extend(l,o,r)):void 0!==r&&(a[t]=r));return a},S.extend({expando:"jQuery"+(f+Math.random()).replace(/\D/g,""),isReady:!0,error:function(e){throw new Error(e)},noop:function(){},isPlainObject:function(e){var t,n;return!(!e||"[object Object]"!==o.call(e))&&(!(t=r(e))||"function"==typeof(n=v.call(t,"constructor")&&t.constructor)&&a.call(n)===l)},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},globalEval:function(e,t,n){b(e,{nonce:t&&t.nonce},n)},each:function(e,t){var n,r=0;if(p(e)){for(n=e.length;r<n;r++)if(!1===t.call(e[r],r,e[r]))break}else for(r in e)if(!1===t.call(e[r],r,e[r]))break;return e},makeArray:function(e,t){var n=t||[];return null!=e&&(p(Object(e))?S.merge(n,"string"==typeof e?[e]:e):u.call(n,e)),n},inArray:function(e,t,n){return null==t?-1:i.call(t,e,n)},merge:function(e,t){for(var n=+t.length,r=0,i=e.length;r<n;r++)e[i++]=t[r];return e.length=i,e},grep:function(e,t,n){for(var r=[],i=0,o=e.length,a=!n;i<o;i++)!t(e[i],i)!==a&&r.push(e[i]);return r},map:function(e,t,n){var r,i,o=0,a=[];if(p(e))for(r=e.length;o<r;o++)null!=(i=t(e[o],o,n))&&a.push(i);else for(o in e)null!=(i=t(e[o],o,n))&&a.push(i);return g(a)},guid:1,support:y}),"function"==typeof Symbol&&(S.fn[Symbol.iterator]=t[Symbol.iterator]),S.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "),function(e,t){n["[object "+t+"]"]=t.toLowerCase()});var d=function(n){var e,d,b,o,i,h,f,g,w,u,l,T,C,a,E,v,s,c,y,S="sizzle"+1*new Date,p=n.document,k=0,r=0,m=ue(),x=ue(),A=ue(),N=ue(),D=function(e,t){return e===t&&(l=!0),0},j={}.hasOwnProperty,t=[],q=t.pop,L=t.push,H=t.push,O=t.slice,P=function(e,t){for(var n=0,r=e.length;n<r;n++)if(e[n]===t)return n;return-1},R="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",M="[\\x20\\t\\r\\n\\f]",I="(?:\\\\[\\da-fA-F]{1,6}"+M+"?|\\\\[^\\r\\n\\f]|[\\w-]|[^\0-\\x7f])+",W="\\["+M+"*("+I+")(?:"+M+"*([*^$|!~]?=)"+M+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+I+"))|)"+M+"*\\]",F=":("+I+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+W+")*)|.*)\\)|)",B=new RegExp(M+"+","g"),$=new RegExp("^"+M+"+|((?:^|[^\\\\])(?:\\\\.)*)"+M+"+$","g"),_=new RegExp("^"+M+"*,"+M+"*"),z=new RegExp("^"+M+"*([>+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp(F),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+F),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\[\\da-fA-F]{1,6}"+M+"?|\\\\([^\\r\\n\\f])","g"),ne=function(e,t){var n="0x"+e.slice(1)-65536;return t||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320))},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(p.childNodes),p.childNodes),t[p.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&(T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!N[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&(U.test(t)||z.test(t))){(f=ee.test(t)&&ye(e.parentNode)||e)===e&&d.scope||((s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=S)),o=(l=h(t)).length;while(o--)l[o]=(s?"#"+s:":scope")+" "+xe(l[o]);c=l.join(",")}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){N(t,!0)}finally{s===S&&e.removeAttribute("id")}}}return g(t.replace($,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[S]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e.namespaceURI,n=(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:p;return r!=C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),p!=C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.scope=ce(function(e){return a.appendChild(e).appendChild(C.createElement("div")),"undefined"!=typeof e.querySelectorAll&&!e.querySelectorAll(":scope fieldset div").length}),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=S,!C.getElementsByName||!C.getElementsByName(S).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){var t;a.appendChild(e).innerHTML="<a id='"+S+"'></a><select id='"+S+"-\r\\' msallowcapture=''><option selected=''></option></select>",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+S+"-]").length||v.push("~="),(t=C.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||v.push("\\["+M+"*name"+M+"*="+M+"*(?:''|\"\")"),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+S+"+*").length||v.push(".#.+[+~]"),e.querySelectorAll("\\\f"),v.push("[\\r\\n\\f]")}),ce(function(e){e.innerHTML="<a href='' disabled='disabled'></a><select disabled='disabled'><option/></select>";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",F)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},D=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e==C||e.ownerDocument==p&&y(p,e)?-1:t==C||t.ownerDocument==p&&y(p,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e==C?-1:t==C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]==p?-1:s[r]==p?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if(T(e),d.matchesSelector&&E&&!N[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){N(t,!0)}return 0<se(t,C,null,[e]).length},se.contains=function(e,t){return(e.ownerDocument||e)!=C&&T(e),y(e,t)},se.attr=function(e,t){(e.ownerDocument||e)!=C&&T(e);var n=b.attrHandle[t.toLowerCase()],r=n&&j.call(b.attrHandle,t.toLowerCase())?n(e,t,!E):void 0;return void 0!==r?r:d.attributes||!E?e.getAttribute(t):(r=e.getAttributeNode(t))&&r.specified?r.value:null},se.escape=function(e){return(e+"").replace(re,ie)},se.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)},se.uniqueSort=function(e){var t,n=[],r=0,i=0;if(l=!d.detectDuplicates,u=!d.sortStable&&e.slice(0),e.sort(D),l){while(t=e[i++])t===e[i]&&(r=n.push(i));while(r--)e.splice(n[r],1)}return u=null,e},o=se.getText=function(e){var t,n="",r=0,i=e.nodeType;if(i){if(1===i||9===i||11===i){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=o(e)}else if(3===i||4===i)return e.nodeValue}else while(t=e[r++])n+=o(t);return n},(b=se.selectors={cacheLength:50,createPseudo:le,match:G,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=m[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&m(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1<t.indexOf(i):"$="===r?i&&t.slice(-i.length)===i:"~="===r?-1<(" "+t.replace(B," ")+" ").indexOf(i):"|="===r&&(t===i||t.slice(0,i.length+1)===i+"-"))}},CHILD:function(h,e,t,g,v){var y="nth"!==h.slice(0,3),m="last"!==h.slice(-4),x="of-type"===e;return 1===g&&0===v?function(e){return!!e.parentNode}:function(e,t,n){var r,i,o,a,s,u,l=y!==m?"nextSibling":"previousSibling",c=e.parentNode,f=x&&e.nodeName.toLowerCase(),p=!n&&!x,d=!1;if(c){if(y){while(l){a=e;while(a=a[l])if(x?a.nodeName.toLowerCase()===f:1===a.nodeType)return!1;u=l="only"===h&&!u&&"nextSibling"}return!0}if(u=[m?c.firstChild:c.lastChild],m&&p){d=(s=(r=(i=(o=(a=c)[S]||(a[S]={}))[a.uniqueID]||(o[a.uniqueID]={}))[h]||[])[0]===k&&r[1])&&r[2],a=s&&c.childNodes[s];while(a=++s&&a&&a[l]||(d=s=0)||u.pop())if(1===a.nodeType&&++d&&a===e){i[h]=[k,s,d];break}}else if(p&&(d=s=(r=(i=(o=(a=e)[S]||(a[S]={}))[a.uniqueID]||(o[a.uniqueID]={}))[h]||[])[0]===k&&r[1]),!1===d)while(a=++s&&a&&a[l]||(d=s=0)||u.pop())if((x?a.nodeName.toLowerCase()===f:1===a.nodeType)&&++d&&(p&&((i=(o=a[S]||(a[S]={}))[a.uniqueID]||(o[a.uniqueID]={}))[h]=[k,d]),a===e))break;return(d-=v)===g||d%g==0&&0<=d/g}}},PSEUDO:function(e,o){var t,a=b.pseudos[e]||b.setFilters[e.toLowerCase()]||se.error("unsupported pseudo: "+e);return a[S]?a(o):1<a.length?(t=[e,e,"",o],b.setFilters.hasOwnProperty(e.toLowerCase())?le(function(e,t){var n,r=a(e,o),i=r.length;while(i--)e[n=P(e,r[i])]=!(t[n]=r[i])}):function(e){return a(e,0,t)}):a}},pseudos:{not:le(function(e){var r=[],i=[],s=f(e.replace($,"$1"));return s[S]?le(function(e,t,n,r){var i,o=s(e,null,r,[]),a=e.length;while(a--)(i=o[a])&&(e[a]=!(t[a]=i))}):function(e,t,n){return r[0]=e,s(r,null,n,i),r[0]=null,!i.pop()}}),has:le(function(t){return function(e){return 0<se(t,e).length}}),contains:le(function(t){return t=t.replace(te,ne),function(e){return-1<(e.textContent||o(e)).indexOf(t)}}),lang:le(function(n){return V.test(n||"")||se.error("unsupported lang: "+n),n=n.replace(te,ne).toLowerCase(),function(e){var t;do{if(t=E?e.lang:e.getAttribute("xml:lang")||e.getAttribute("lang"))return(t=t.toLowerCase())===n||0===t.indexOf(n+"-")}while((e=e.parentNode)&&1===e.nodeType);return!1}}),target:function(e){var t=n.location&&n.location.hash;return t&&t.slice(1)===e.id},root:function(e){return e===a},focus:function(e){return e===C.activeElement&&(!C.hasFocus||C.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:ge(!1),disabled:ge(!0),checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,!0===e.selected},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeType<6)return!1;return!0},parent:function(e){return!b.pseudos.empty(e)},header:function(e){return J.test(e.nodeName)},input:function(e){return Q.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||"text"===t.toLowerCase())},first:ve(function(){return[0]}),last:ve(function(e,t){return[t-1]}),eq:ve(function(e,t,n){return[n<0?n+t:n]}),even:ve(function(e,t){for(var n=0;n<t;n+=2)e.push(n);return e}),odd:ve(function(e,t){for(var n=1;n<t;n+=2)e.push(n);return e}),lt:ve(function(e,t,n){for(var r=n<0?n+t:t<n?t:n;0<=--r;)e.push(r);return e}),gt:ve(function(e,t,n){for(var r=n<0?n+t:n;++r<t;)e.push(r);return e})}}).pseudos.nth=b.pseudos.eq,{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})b.pseudos[e]=de(e);for(e in{submit:!0,reset:!0})b.pseudos[e]=he(e);function me(){}function xe(e){for(var t=0,n=e.length,r="";t<n;t++)r+=e[t].value;return r}function be(s,e,t){var u=e.dir,l=e.next,c=l||u,f=t&&"parentNode"===c,p=r++;return e.first?function(e,t,n){while(e=e[u])if(1===e.nodeType||f)return s(e,t,n);return!1}:function(e,t,n){var r,i,o,a=[k,p];if(n){while(e=e[u])if((1===e.nodeType||f)&&s(e,t,n))return!0}else while(e=e[u])if(1===e.nodeType||f)if(i=(o=e[S]||(e[S]={}))[e.uniqueID]||(o[e.uniqueID]={}),l&&l===e.nodeName.toLowerCase())e=e[u]||e;else{if((r=i[c])&&r[0]===k&&r[1]===p)return a[2]=r[2];if((i[c]=a)[2]=s(e,t,n))return!0}return!1}}function we(i){return 1<i.length?function(e,t,n){var r=i.length;while(r--)if(!i[r](e,t,n))return!1;return!0}:i[0]}function Te(e,t,n,r,i){for(var o,a=[],s=0,u=e.length,l=null!=t;s<u;s++)(o=e[s])&&(n&&!n(o,r,i)||(a.push(o),l&&t.push(s)));return a}function Ce(d,h,g,v,y,e){return v&&!v[S]&&(v=Ce(v)),y&&!y[S]&&(y=Ce(y,e)),le(function(e,t,n,r){var i,o,a,s=[],u=[],l=t.length,c=e||function(e,t,n){for(var r=0,i=t.length;r<i;r++)se(e,t[r],n);return n}(h||"*",n.nodeType?[n]:n,[]),f=!d||!e&&h?c:Te(c,s,d,n,r),p=g?y||(e?d:l||v)?[]:t:f;if(g&&g(f,p,n,r),v){i=Te(p,u),v(i,[],n,r),o=i.length;while(o--)(a=i[o])&&(p[u[o]]=!(f[u[o]]=a))}if(e){if(y||d){if(y){i=[],o=p.length;while(o--)(a=p[o])&&i.push(f[o]=a);y(null,p=[],i,r)}o=p.length;while(o--)(a=p[o])&&-1<(i=y?P(e,a):s[o])&&(e[i]=!(t[i]=a))}}else p=Te(p===t?p.splice(l,p.length):p),y?y(null,t,p,r):H.apply(t,p)})}function Ee(e){for(var i,t,n,r=e.length,o=b.relative[e[0].type],a=o||b.relative[" "],s=o?1:0,u=be(function(e){return e===i},a,!0),l=be(function(e){return-1<P(i,e)},a,!0),c=[function(e,t,n){var r=!o&&(n||t!==w)||((i=t).nodeType?u(e,t,n):l(e,t,n));return i=null,r}];s<r;s++)if(t=b.relative[e[s].type])c=[be(we(c),t)];else{if((t=b.filter[e[s].type].apply(null,e[s].matches))[S]){for(n=++s;n<r;n++)if(b.relative[e[n].type])break;return Ce(1<s&&we(c),1<s&&xe(e.slice(0,s-1).concat({value:" "===e[s-2].type?"*":""})).replace($,"$1"),t,s<n&&Ee(e.slice(s,n)),n<r&&Ee(e=e.slice(n)),n<r&&xe(e))}c.push(t)}return we(c)}return me.prototype=b.filters=b.pseudos,b.setFilters=new me,h=se.tokenize=function(e,t){var n,r,i,o,a,s,u,l=x[e+" "];if(l)return t?0:l.slice(0);a=e,s=[],u=b.preFilter;while(a){for(o in n&&!(r=_.exec(a))||(r&&(a=a.slice(r[0].length)||a),s.push(i=[])),n=!1,(r=z.exec(a))&&(n=r.shift(),i.push({value:n,type:r[0].replace($," ")}),a=a.slice(n.length)),b.filter)!(r=G[o].exec(a))||u[o]&&!(r=u[o](r))||(n=r.shift(),i.push({value:n,type:o,matches:r}),a=a.slice(n.length));if(!n)break}return t?a.length:a?se.error(e):x(e,s).slice(0)},f=se.compile=function(e,t){var n,v,y,m,x,r,i=[],o=[],a=A[e+" "];if(!a){t||(t=h(e)),n=t.length;while(n--)(a=Ee(t[n]))[S]?i.push(a):o.push(a);(a=A(e,(v=o,m=0<(y=i).length,x=0<v.length,r=function(e,t,n,r,i){var o,a,s,u=0,l="0",c=e&&[],f=[],p=w,d=e||x&&b.find.TAG("*",i),h=k+=null==p?1:Math.random()||.1,g=d.length;for(i&&(w=t==C||t||i);l!==g&&null!=(o=d[l]);l++){if(x&&o){a=0,t||o.ownerDocument==C||(T(o),n=!E);while(s=v[a++])if(s(o,t||C,n)){r.push(o);break}i&&(k=h)}m&&((o=!s&&o)&&u--,e&&c.push(o))}if(u+=l,m&&l!==u){a=0;while(s=y[a++])s(c,f,t,n);if(e){if(0<u)while(l--)c[l]||f[l]||(f[l]=q.call(r));f=Te(f)}H.apply(r,f),i&&!e&&0<f.length&&1<u+y.length&&se.uniqueSort(r)}return i&&(k=h,w=p),c},m?le(r):r))).selector=e}return a},g=se.select=function(e,t,n,r){var i,o,a,s,u,l="function"==typeof e&&e,c=!r&&h(e=l.selector||e);if(n=n||[],1===c.length){if(2<(o=c[0]=c[0].slice(0)).length&&"ID"===(a=o[0]).type&&9===t.nodeType&&E&&b.relative[o[1].type]){if(!(t=(b.find.ID(a.matches[0].replace(te,ne),t)||[])[0]))return n;l&&(t=t.parentNode),e=e.slice(o.shift().value.length)}i=G.needsContext.test(e)?0:o.length;while(i--){if(a=o[i],b.relative[s=a.type])break;if((u=b.find[s])&&(r=u(a.matches[0].replace(te,ne),ee.test(o[0].type)&&ye(t.parentNode)||t))){if(o.splice(i,1),!(e=r.length&&xe(o)))return H.apply(n,r),n;break}}}return(l||f(e,c))(r,t,!E,n,!t||ee.test(e)&&ye(t.parentNode)||t),n},d.sortStable=S.split("").sort(D).join("")===S,d.detectDuplicates=!!l,T(),d.sortDetached=ce(function(e){return 1&e.compareDocumentPosition(C.createElement("fieldset"))}),ce(function(e){return e.innerHTML="<a href='#'></a>","#"===e.firstChild.getAttribute("href")})||fe("type|href|height|width",function(e,t,n){if(!n)return e.getAttribute(t,"type"===t.toLowerCase()?1:2)}),d.attributes&&ce(function(e){return e.innerHTML="<input/>",e.firstChild.setAttribute("value",""),""===e.firstChild.getAttribute("value")})||fe("value",function(e,t,n){if(!n&&"input"===e.nodeName.toLowerCase())return e.defaultValue}),ce(function(e){return null==e.getAttribute("disabled")})||fe(R,function(e,t,n){var r;if(!n)return!0===e[t]?t.toLowerCase():(r=e.getAttributeNode(t))&&r.specified?r.value:null}),se}(C);S.find=d,S.expr=d.selectors,S.expr[":"]=S.expr.pseudos,S.uniqueSort=S.unique=d.uniqueSort,S.text=d.getText,S.isXMLDoc=d.isXML,S.contains=d.contains,S.escapeSelector=d.escape;var h=function(e,t,n){var r=[],i=void 0!==n;while((e=e[t])&&9!==e.nodeType)if(1===e.nodeType){if(i&&S(e).is(n))break;r.push(e)}return r},T=function(e,t){for(var n=[];e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n},k=S.expr.match.needsContext;function A(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()}var N=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function D(e,n,r){return m(n)?S.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?S.grep(e,function(e){return e===n!==r}):"string"!=typeof n?S.grep(e,function(e){return-1<i.call(n,e)!==r}):S.filter(n,e,r)}S.filter=function(e,t,n){var r=t[0];return n&&(e=":not("+e+")"),1===t.length&&1===r.nodeType?S.find.matchesSelector(r,e)?[r]:[]:S.find.matches(e,S.grep(t,function(e){return 1===e.nodeType}))},S.fn.extend({find:function(e){var t,n,r=this.length,i=this;if("string"!=typeof e)return this.pushStack(S(e).filter(function(){for(t=0;t<r;t++)if(S.contains(i[t],this))return!0}));for(n=this.pushStack([]),t=0;t<r;t++)S.find(e,i[t],n);return 1<r?S.uniqueSort(n):n},filter:function(e){return this.pushStack(D(this,e||[],!1))},not:function(e){return this.pushStack(D(this,e||[],!0))},is:function(e){return!!D(this,"string"==typeof e&&k.test(e)?S(e):e||[],!1).length}});var j,q=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/;(S.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||j,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:q.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof S?t[0]:t,S.merge(this,S.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),N.test(r[1])&&S.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(S):S.makeArray(e,this)}).prototype=S.fn,j=S(E);var L=/^(?:parents|prev(?:Until|All))/,H={children:!0,contents:!0,next:!0,prev:!0};function O(e,t){while((e=e[t])&&1!==e.nodeType);return e}S.fn.extend({has:function(e){var t=S(e,this),n=t.length;return this.filter(function(){for(var e=0;e<n;e++)if(S.contains(this,t[e]))return!0})},closest:function(e,t){var n,r=0,i=this.length,o=[],a="string"!=typeof e&&S(e);if(!k.test(e))for(;r<i;r++)for(n=this[r];n&&n!==t;n=n.parentNode)if(n.nodeType<11&&(a?-1<a.index(n):1===n.nodeType&&S.find.matchesSelector(n,e))){o.push(n);break}return this.pushStack(1<o.length?S.uniqueSort(o):o)},index:function(e){return e?"string"==typeof e?i.call(S(e),this[0]):i.call(this,e.jquery?e[0]:e):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){return this.pushStack(S.uniqueSort(S.merge(this.get(),S(e,t))))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}}),S.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return h(e,"parentNode")},parentsUntil:function(e,t,n){return h(e,"parentNode",n)},next:function(e){return O(e,"nextSibling")},prev:function(e){return O(e,"previousSibling")},nextAll:function(e){return h(e,"nextSibling")},prevAll:function(e){return h(e,"previousSibling")},nextUntil:function(e,t,n){return h(e,"nextSibling",n)},prevUntil:function(e,t,n){return h(e,"previousSibling",n)},siblings:function(e){return T((e.parentNode||{}).firstChild,e)},children:function(e){return T(e.firstChild)},contents:function(e){return null!=e.contentDocument&&r(e.contentDocument)?e.contentDocument:(A(e,"template")&&(e=e.content||e),S.merge([],e.childNodes))}},function(r,i){S.fn[r]=function(e,t){var n=S.map(this,i,e);return"Until"!==r.slice(-5)&&(t=e),t&&"string"==typeof t&&(n=S.filter(t,n)),1<this.length&&(H[r]||S.uniqueSort(n),L.test(r)&&n.reverse()),this.pushStack(n)}});var P=/[^\x20\t\r\n\f]+/g;function R(e){return e}function M(e){throw e}function I(e,t,n,r){var i;try{e&&m(i=e.promise)?i.call(e).done(t).fail(n):e&&m(i=e.then)?i.call(e,t,n):t.apply(void 0,[e].slice(r))}catch(e){n.apply(void 0,[e])}}S.Callbacks=function(r){var e,n;r="string"==typeof r?(e=r,n={},S.each(e.match(P)||[],function(e,t){n[t]=!0}),n):S.extend({},r);var i,t,o,a,s=[],u=[],l=-1,c=function(){for(a=a||r.once,o=i=!0;u.length;l=-1){t=u.shift();while(++l<s.length)!1===s[l].apply(t[0],t[1])&&r.stopOnFalse&&(l=s.length,t=!1)}r.memory||(t=!1),i=!1,a&&(s=t?[]:"")},f={add:function(){return s&&(t&&!i&&(l=s.length-1,u.push(t)),function n(e){S.each(e,function(e,t){m(t)?r.unique&&f.has(t)||s.push(t):t&&t.length&&"string"!==w(t)&&n(t)})}(arguments),t&&!i&&c()),this},remove:function(){return S.each(arguments,function(e,t){var n;while(-1<(n=S.inArray(t,s,n)))s.splice(n,1),n<=l&&l--}),this},has:function(e){return e?-1<S.inArray(e,s):0<s.length},empty:function(){return s&&(s=[]),this},disable:function(){return a=u=[],s=t="",this},disabled:function(){return!s},lock:function(){return a=u=[],t||i||(s=t=""),this},locked:function(){return!!a},fireWith:function(e,t){return a||(t=[e,(t=t||[]).slice?t.slice():t],u.push(t),i||c()),this},fire:function(){return f.fireWith(this,arguments),this},fired:function(){return!!o}};return f},S.extend({Deferred:function(e){var o=[["notify","progress",S.Callbacks("memory"),S.Callbacks("memory"),2],["resolve","done",S.Callbacks("once memory"),S.Callbacks("once memory"),0,"resolved"],["reject","fail",S.Callbacks("once memory"),S.Callbacks("once memory"),1,"rejected"]],i="pending",a={state:function(){return i},always:function(){return s.done(arguments).fail(arguments),this},"catch":function(e){return a.then(null,e)},pipe:function(){var i=arguments;return S.Deferred(function(r){S.each(o,function(e,t){var n=m(i[t[4]])&&i[t[4]];s[t[1]](function(){var e=n&&n.apply(this,arguments);e&&m(e.promise)?e.promise().progress(r.notify).done(r.resolve).fail(r.reject):r[t[0]+"With"](this,n?[e]:arguments)})}),i=null}).promise()},then:function(t,n,r){var u=0;function l(i,o,a,s){return function(){var n=this,r=arguments,e=function(){var e,t;if(!(i<u)){if((e=a.apply(n,r))===o.promise())throw new TypeError("Thenable self-resolution");t=e&&("object"==typeof e||"function"==typeof e)&&e.then,m(t)?s?t.call(e,l(u,o,R,s),l(u,o,M,s)):(u++,t.call(e,l(u,o,R,s),l(u,o,M,s),l(u,o,R,o.notifyWith))):(a!==R&&(n=void 0,r=[e]),(s||o.resolveWith)(n,r))}},t=s?e:function(){try{e()}catch(e){S.Deferred.exceptionHook&&S.Deferred.exceptionHook(e,t.stackTrace),u<=i+1&&(a!==M&&(n=void 0,r=[e]),o.rejectWith(n,r))}};i?t():(S.Deferred.getStackHook&&(t.stackTrace=S.Deferred.getStackHook()),C.setTimeout(t))}}return S.Deferred(function(e){o[0][3].add(l(0,e,m(r)?r:R,e.notifyWith)),o[1][3].add(l(0,e,m(t)?t:R)),o[2][3].add(l(0,e,m(n)?n:M))}).promise()},promise:function(e){return null!=e?S.extend(e,a):a}},s={};return S.each(o,function(e,t){var n=t[2],r=t[5];a[t[1]]=n.add,r&&n.add(function(){i=r},o[3-e][2].disable,o[3-e][3].disable,o[0][2].lock,o[0][3].lock),n.add(t[3].fire),s[t[0]]=function(){return s[t[0]+"With"](this===s?void 0:this,arguments),this},s[t[0]+"With"]=n.fireWith}),a.promise(s),e&&e.call(s,s),s},when:function(e){var n=arguments.length,t=n,r=Array(t),i=s.call(arguments),o=S.Deferred(),a=function(t){return function(e){r[t]=this,i[t]=1<arguments.length?s.call(arguments):e,--n||o.resolveWith(r,i)}};if(n<=1&&(I(e,o.done(a(t)).resolve,o.reject,!n),"pending"===o.state()||m(i[t]&&i[t].then)))return o.then();while(t--)I(i[t],a(t),o.reject);return o.promise()}});var W=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;S.Deferred.exceptionHook=function(e,t){C.console&&C.console.warn&&e&&W.test(e.name)&&C.console.warn("jQuery.Deferred exception: "+e.message,e.stack,t)},S.readyException=function(e){C.setTimeout(function(){throw e})};var F=S.Deferred();function B(){E.removeEventListener("DOMContentLoaded",B),C.removeEventListener("load",B),S.ready()}S.fn.ready=function(e){return F.then(e)["catch"](function(e){S.readyException(e)}),this},S.extend({isReady:!1,readyWait:1,ready:function(e){(!0===e?--S.readyWait:S.isReady)||(S.isReady=!0)!==e&&0<--S.readyWait||F.resolveWith(E,[S])}}),S.ready.then=F.then,"complete"===E.readyState||"loading"!==E.readyState&&!E.documentElement.doScroll?C.setTimeout(S.ready):(E.addEventListener("DOMContentLoaded",B),C.addEventListener("load",B));var $=function(e,t,n,r,i,o,a){var s=0,u=e.length,l=null==n;if("object"===w(n))for(s in i=!0,n)$(e,t,s,n[s],!0,o,a);else if(void 0!==r&&(i=!0,m(r)||(a=!0),l&&(a?(t.call(e,r),t=null):(l=t,t=function(e,t,n){return l.call(S(e),n)})),t))for(;s<u;s++)t(e[s],n,a?r:r.call(e[s],s,t(e[s],n)));return i?e:l?t.call(e):u?t(e[0],n):o},_=/^-ms-/,z=/-([a-z])/g;function U(e,t){return t.toUpperCase()}function X(e){return e.replace(_,"ms-").replace(z,U)}var V=function(e){return 1===e.nodeType||9===e.nodeType||!+e.nodeType};function G(){this.expando=S.expando+G.uid++}G.uid=1,G.prototype={cache:function(e){var t=e[this.expando];return t||(t=Object.create(null),V(e)&&(e.nodeType?e[this.expando]=t:Object.defineProperty(e,this.expando,{value:t,configurable:!0}))),t},set:function(e,t,n){var r,i=this.cache(e);if("string"==typeof t)i[X(t)]=n;else for(r in t)i[X(r)]=t[r];return i},get:function(e,t){return void 0===t?this.cache(e):e[this.expando]&&e[this.expando][X(t)]},access:function(e,t,n){return void 0===t||t&&"string"==typeof t&&void 0===n?this.get(e,t):(this.set(e,t,n),void 0!==n?n:t)},remove:function(e,t){var n,r=e[this.expando];if(void 0!==r){if(void 0!==t){n=(t=Array.isArray(t)?t.map(X):(t=X(t))in r?[t]:t.match(P)||[]).length;while(n--)delete r[t[n]]}(void 0===t||S.isEmptyObject(r))&&(e.nodeType?e[this.expando]=void 0:delete e[this.expando])}},hasData:function(e){var t=e[this.expando];return void 0!==t&&!S.isEmptyObject(t)}};var Y=new G,Q=new G,J=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,K=/[A-Z]/g;function Z(e,t,n){var r,i;if(void 0===n&&1===e.nodeType)if(r="data-"+t.replace(K,"-$&").toLowerCase(),"string"==typeof(n=e.getAttribute(r))){try{n="true"===(i=n)||"false"!==i&&("null"===i?null:i===+i+""?+i:J.test(i)?JSON.parse(i):i)}catch(e){}Q.set(e,t,n)}else n=void 0;return n}S.extend({hasData:function(e){return Q.hasData(e)||Y.hasData(e)},data:function(e,t,n){return Q.access(e,t,n)},removeData:function(e,t){Q.remove(e,t)},_data:function(e,t,n){return Y.access(e,t,n)},_removeData:function(e,t){Y.remove(e,t)}}),S.fn.extend({data:function(n,e){var t,r,i,o=this[0],a=o&&o.attributes;if(void 0===n){if(this.length&&(i=Q.get(o),1===o.nodeType&&!Y.get(o,"hasDataAttrs"))){t=a.length;while(t--)a[t]&&0===(r=a[t].name).indexOf("data-")&&(r=X(r.slice(5)),Z(o,r,i[r]));Y.set(o,"hasDataAttrs",!0)}return i}return"object"==typeof n?this.each(function(){Q.set(this,n)}):$(this,function(e){var t;if(o&&void 0===e)return void 0!==(t=Q.get(o,n))?t:void 0!==(t=Z(o,n))?t:void 0;this.each(function(){Q.set(this,n,e)})},null,e,1<arguments.length,null,!0)},removeData:function(e){return this.each(function(){Q.remove(this,e)})}}),S.extend({queue:function(e,t,n){var r;if(e)return t=(t||"fx")+"queue",r=Y.get(e,t),n&&(!r||Array.isArray(n)?r=Y.access(e,t,S.makeArray(n)):r.push(n)),r||[]},dequeue:function(e,t){t=t||"fx";var n=S.queue(e,t),r=n.length,i=n.shift(),o=S._queueHooks(e,t);"inprogress"===i&&(i=n.shift(),r--),i&&("fx"===t&&n.unshift("inprogress"),delete o.stop,i.call(e,function(){S.dequeue(e,t)},o)),!r&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return Y.get(e,n)||Y.access(e,n,{empty:S.Callbacks("once memory").add(function(){Y.remove(e,[t+"queue",n])})})}}),S.fn.extend({queue:function(t,n){var e=2;return"string"!=typeof t&&(n=t,t="fx",e--),arguments.length<e?S.queue(this[0],t):void 0===n?this:this.each(function(){var e=S.queue(this,t,n);S._queueHooks(this,t),"fx"===t&&"inprogress"!==e[0]&&S.dequeue(this,t)})},dequeue:function(e){return this.each(function(){S.dequeue(this,e)})},clearQueue:function(e){return this.queue(e||"fx",[])},promise:function(e,t){var n,r=1,i=S.Deferred(),o=this,a=this.length,s=function(){--r||i.resolveWith(o,[o])};"string"!=typeof e&&(t=e,e=void 0),e=e||"fx";while(a--)(n=Y.get(o[a],e+"queueHooks"))&&n.empty&&(r++,n.empty.add(s));return s(),i.promise(t)}});var ee=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,te=new RegExp("^(?:([+-])=|)("+ee+")([a-z%]*)$","i"),ne=["Top","Right","Bottom","Left"],re=E.documentElement,ie=function(e){return S.contains(e.ownerDocument,e)},oe={composed:!0};re.getRootNode&&(ie=function(e){return S.contains(e.ownerDocument,e)||e.getRootNode(oe)===e.ownerDocument});var ae=function(e,t){return"none"===(e=t||e).style.display||""===e.style.display&&ie(e)&&"none"===S.css(e,"display")};function se(e,t,n,r){var i,o,a=20,s=r?function(){return r.cur()}:function(){return S.css(e,t,"")},u=s(),l=n&&n[3]||(S.cssNumber[t]?"":"px"),c=e.nodeType&&(S.cssNumber[t]||"px"!==l&&+u)&&te.exec(S.css(e,t));if(c&&c[3]!==l){u/=2,l=l||c[3],c=+u||1;while(a--)S.style(e,t,c+l),(1-o)*(1-(o=s()/u||.5))<=0&&(a=0),c/=o;c*=2,S.style(e,t,c+l),n=n||[]}return n&&(c=+c||+u||0,i=n[1]?c+(n[1]+1)*n[2]:+n[2],r&&(r.unit=l,r.start=c,r.end=i)),i}var ue={};function le(e,t){for(var n,r,i,o,a,s,u,l=[],c=0,f=e.length;c<f;c++)(r=e[c]).style&&(n=r.style.display,t?("none"===n&&(l[c]=Y.get(r,"display")||null,l[c]||(r.style.display="")),""===r.style.display&&ae(r)&&(l[c]=(u=a=o=void 0,a=(i=r).ownerDocument,s=i.nodeName,(u=ue[s])||(o=a.body.appendChild(a.createElement(s)),u=S.css(o,"display"),o.parentNode.removeChild(o),"none"===u&&(u="block"),ue[s]=u)))):"none"!==n&&(l[c]="none",Y.set(r,"display",n)));for(c=0;c<f;c++)null!=l[c]&&(e[c].style.display=l[c]);return e}S.fn.extend({show:function(){return le(this,!0)},hide:function(){return le(this)},toggle:function(e){return"boolean"==typeof e?e?this.show():this.hide():this.each(function(){ae(this)?S(this).show():S(this).hide()})}});var ce,fe,pe=/^(?:checkbox|radio)$/i,de=/<([a-z][^\/\0>\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i;ce=E.createDocumentFragment().appendChild(E.createElement("div")),(fe=E.createElement("input")).setAttribute("type","radio"),fe.setAttribute("checked","checked"),fe.setAttribute("name","t"),ce.appendChild(fe),y.checkClone=ce.cloneNode(!0).cloneNode(!0).lastChild.checked,ce.innerHTML="<textarea>x</textarea>",y.noCloneChecked=!!ce.cloneNode(!0).lastChild.defaultValue,ce.innerHTML="<option></option>",y.option=!!ce.lastChild;var ge={thead:[1,"<table>","</table>"],col:[2,"<table><colgroup>","</colgroup></table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:[0,"",""]};function ve(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?S.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;n<r;n++)Y.set(e[n],"globalEval",!t||Y.get(t[n],"globalEval"))}ge.tbody=ge.tfoot=ge.colgroup=ge.caption=ge.thead,ge.th=ge.td,y.option||(ge.optgroup=ge.option=[1,"<select multiple='multiple'>","</select>"]);var me=/<|&#?\w+;/;function xe(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d<h;d++)if((o=e[d])||0===o)if("object"===w(o))S.merge(p,o.nodeType?[o]:o);else if(me.test(o)){a=a||f.appendChild(t.createElement("div")),s=(de.exec(o)||["",""])[1].toLowerCase(),u=ge[s]||ge._default,a.innerHTML=u[1]+S.htmlPrefilter(o)+u[2],c=u[0];while(c--)a=a.lastChild;S.merge(p,a.childNodes),(a=f.firstChild).textContent=""}else p.push(t.createTextNode(o));f.textContent="",d=0;while(o=p[d++])if(r&&-1<S.inArray(o,r))i&&i.push(o);else if(l=ie(o),a=ve(f.appendChild(o),"script"),l&&ye(a),n){c=0;while(o=a[c++])he.test(o.type||"")&&n.push(o)}return f}var be=/^key/,we=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,Te=/^([^.]*)(?:\.(.+)|)/;function Ce(){return!0}function Ee(){return!1}function Se(e,t){return e===function(){try{return E.activeElement}catch(e){}}()==("focus"===t)}function ke(e,t,n,r,i,o){var a,s;if("object"==typeof t){for(s in"string"!=typeof n&&(r=r||n,n=void 0),t)ke(e,s,n,r,t[s],o);return e}if(null==r&&null==i?(i=n,r=n=void 0):null==i&&("string"==typeof n?(i=r,r=void 0):(i=r,r=n,n=void 0)),!1===i)i=Ee;else if(!i)return e;return 1===o&&(a=i,(i=function(e){return S().off(e),a.apply(this,arguments)}).guid=a.guid||(a.guid=S.guid++)),e.each(function(){S.event.add(this,t,i,r,n)})}function Ae(e,i,o){o?(Y.set(e,i,!1),S.event.add(e,i,{namespace:!1,handler:function(e){var t,n,r=Y.get(this,i);if(1&e.isTrigger&&this[i]){if(r.length)(S.event.special[i]||{}).delegateType&&e.stopPropagation();else if(r=s.call(arguments),Y.set(this,i,r),t=o(this,i),this[i](),r!==(n=Y.get(this,i))||t?Y.set(this,i,!1):n={},r!==n)return e.stopImmediatePropagation(),e.preventDefault(),n.value}else r.length&&(Y.set(this,i,{value:S.event.trigger(S.extend(r[0],S.Event.prototype),r.slice(1),this)}),e.stopImmediatePropagation())}})):void 0===Y.get(e,i)&&S.event.add(e,i,Ce)}S.event={global:{},add:function(t,e,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=Y.get(t);if(V(t)){n.handler&&(n=(o=n).handler,i=o.selector),i&&S.find.matchesSelector(re,i),n.guid||(n.guid=S.guid++),(u=v.events)||(u=v.events=Object.create(null)),(a=v.handle)||(a=v.handle=function(e){return"undefined"!=typeof S&&S.event.triggered!==e.type?S.event.dispatch.apply(t,arguments):void 0}),l=(e=(e||"").match(P)||[""]).length;while(l--)d=g=(s=Te.exec(e[l])||[])[1],h=(s[2]||"").split(".").sort(),d&&(f=S.event.special[d]||{},d=(i?f.delegateType:f.bindType)||d,f=S.event.special[d]||{},c=S.extend({type:d,origType:g,data:r,handler:n,guid:n.guid,selector:i,needsContext:i&&S.expr.match.needsContext.test(i),namespace:h.join(".")},o),(p=u[d])||((p=u[d]=[]).delegateCount=0,f.setup&&!1!==f.setup.call(t,r,h,a)||t.addEventListener&&t.addEventListener(d,a)),f.add&&(f.add.call(t,c),c.handler.guid||(c.handler.guid=n.guid)),i?p.splice(p.delegateCount++,0,c):p.push(c),S.event.global[d]=!0)}},remove:function(e,t,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=Y.hasData(e)&&Y.get(e);if(v&&(u=v.events)){l=(t=(t||"").match(P)||[""]).length;while(l--)if(d=g=(s=Te.exec(t[l])||[])[1],h=(s[2]||"").split(".").sort(),d){f=S.event.special[d]||{},p=u[d=(r?f.delegateType:f.bindType)||d]||[],s=s[2]&&new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),a=o=p.length;while(o--)c=p[o],!i&&g!==c.origType||n&&n.guid!==c.guid||s&&!s.test(c.namespace)||r&&r!==c.selector&&("**"!==r||!c.selector)||(p.splice(o,1),c.selector&&p.delegateCount--,f.remove&&f.remove.call(e,c));a&&!p.length&&(f.teardown&&!1!==f.teardown.call(e,h,v.handle)||S.removeEvent(e,d,v.handle),delete u[d])}else for(d in u)S.event.remove(e,d+t[l],n,r,!0);S.isEmptyObject(u)&&Y.remove(e,"handle events")}},dispatch:function(e){var t,n,r,i,o,a,s=new Array(arguments.length),u=S.event.fix(e),l=(Y.get(this,"events")||Object.create(null))[u.type]||[],c=S.event.special[u.type]||{};for(s[0]=u,t=1;t<arguments.length;t++)s[t]=arguments[t];if(u.delegateTarget=this,!c.preDispatch||!1!==c.preDispatch.call(this,u)){a=S.event.handlers.call(this,u,l),t=0;while((i=a[t++])&&!u.isPropagationStopped()){u.currentTarget=i.elem,n=0;while((o=i.handlers[n++])&&!u.isImmediatePropagationStopped())u.rnamespace&&!1!==o.namespace&&!u.rnamespace.test(o.namespace)||(u.handleObj=o,u.data=o.data,void 0!==(r=((S.event.special[o.origType]||{}).handle||o.handler).apply(i.elem,s))&&!1===(u.result=r)&&(u.preventDefault(),u.stopPropagation()))}return c.postDispatch&&c.postDispatch.call(this,u),u.result}},handlers:function(e,t){var n,r,i,o,a,s=[],u=t.delegateCount,l=e.target;if(u&&l.nodeType&&!("click"===e.type&&1<=e.button))for(;l!==this;l=l.parentNode||this)if(1===l.nodeType&&("click"!==e.type||!0!==l.disabled)){for(o=[],a={},n=0;n<u;n++)void 0===a[i=(r=t[n]).selector+" "]&&(a[i]=r.needsContext?-1<S(i,this).index(l):S.find(i,this,null,[l]).length),a[i]&&o.push(r);o.length&&s.push({elem:l,handlers:o})}return l=this,u<t.length&&s.push({elem:l,handlers:t.slice(u)}),s},addProp:function(t,e){Object.defineProperty(S.Event.prototype,t,{enumerable:!0,configurable:!0,get:m(e)?function(){if(this.originalEvent)return e(this.originalEvent)}:function(){if(this.originalEvent)return this.originalEvent[t]},set:function(e){Object.defineProperty(this,t,{enumerable:!0,configurable:!0,writable:!0,value:e})}})},fix:function(e){return e[S.expando]?e:new S.Event(e)},special:{load:{noBubble:!0},click:{setup:function(e){var t=this||e;return pe.test(t.type)&&t.click&&A(t,"input")&&Ae(t,"click",Ce),!1},trigger:function(e){var t=this||e;return pe.test(t.type)&&t.click&&A(t,"input")&&Ae(t,"click"),!0},_default:function(e){var t=e.target;return pe.test(t.type)&&t.click&&A(t,"input")&&Y.get(t,"click")||A(t,"a")}},beforeunload:{postDispatch:function(e){void 0!==e.result&&e.originalEvent&&(e.originalEvent.returnValue=e.result)}}}},S.removeEvent=function(e,t,n){e.removeEventListener&&e.removeEventListener(t,n)},S.Event=function(e,t){if(!(this instanceof S.Event))return new S.Event(e,t);e&&e.type?(this.originalEvent=e,this.type=e.type,this.isDefaultPrevented=e.defaultPrevented||void 0===e.defaultPrevented&&!1===e.returnValue?Ce:Ee,this.target=e.target&&3===e.target.nodeType?e.target.parentNode:e.target,this.currentTarget=e.currentTarget,this.relatedTarget=e.relatedTarget):this.type=e,t&&S.extend(this,t),this.timeStamp=e&&e.timeStamp||Date.now(),this[S.expando]=!0},S.Event.prototype={constructor:S.Event,isDefaultPrevented:Ee,isPropagationStopped:Ee,isImmediatePropagationStopped:Ee,isSimulated:!1,preventDefault:function(){var e=this.originalEvent;this.isDefaultPrevented=Ce,e&&!this.isSimulated&&e.preventDefault()},stopPropagation:function(){var e=this.originalEvent;this.isPropagationStopped=Ce,e&&!this.isSimulated&&e.stopPropagation()},stopImmediatePropagation:function(){var e=this.originalEvent;this.isImmediatePropagationStopped=Ce,e&&!this.isSimulated&&e.stopImmediatePropagation(),this.stopPropagation()}},S.each({altKey:!0,bubbles:!0,cancelable:!0,changedTouches:!0,ctrlKey:!0,detail:!0,eventPhase:!0,metaKey:!0,pageX:!0,pageY:!0,shiftKey:!0,view:!0,"char":!0,code:!0,charCode:!0,key:!0,keyCode:!0,button:!0,buttons:!0,clientX:!0,clientY:!0,offsetX:!0,offsetY:!0,pointerId:!0,pointerType:!0,screenX:!0,screenY:!0,targetTouches:!0,toElement:!0,touches:!0,which:function(e){var t=e.button;return null==e.which&&be.test(e.type)?null!=e.charCode?e.charCode:e.keyCode:!e.which&&void 0!==t&&we.test(e.type)?1&t?1:2&t?3:4&t?2:0:e.which}},S.event.addProp),S.each({focus:"focusin",blur:"focusout"},function(e,t){S.event.special[e]={setup:function(){return Ae(this,e,Se),!1},trigger:function(){return Ae(this,e),!0},delegateType:t}}),S.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(e,i){S.event.special[e]={delegateType:i,bindType:i,handle:function(e){var t,n=e.relatedTarget,r=e.handleObj;return n&&(n===this||S.contains(this,n))||(e.type=r.origType,t=r.handler.apply(this,arguments),e.type=i),t}}}),S.fn.extend({on:function(e,t,n,r){return ke(this,e,t,n,r)},one:function(e,t,n,r){return ke(this,e,t,n,r,1)},off:function(e,t,n){var r,i;if(e&&e.preventDefault&&e.handleObj)return r=e.handleObj,S(e.delegateTarget).off(r.namespace?r.origType+"."+r.namespace:r.origType,r.selector,r.handler),this;if("object"==typeof e){for(i in e)this.off(i,t,e[i]);return this}return!1!==t&&"function"!=typeof t||(n=t,t=void 0),!1===n&&(n=Ee),this.each(function(){S.event.remove(this,e,n,t)})}});var Ne=/<script|<style|<link/i,De=/checked\s*(?:[^=]|=\s*.checked.)/i,je=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g;function qe(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&S(e).children("tbody")[0]||e}function Le(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function He(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Oe(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(Y.hasData(e)&&(s=Y.get(e).events))for(i in Y.remove(t,"handle events"),s)for(n=0,r=s[i].length;n<r;n++)S.event.add(t,i,s[i][n]);Q.hasData(e)&&(o=Q.access(e),a=S.extend({},o),Q.set(t,a))}}function Pe(n,r,i,o){r=g(r);var e,t,a,s,u,l,c=0,f=n.length,p=f-1,d=r[0],h=m(d);if(h||1<f&&"string"==typeof d&&!y.checkClone&&De.test(d))return n.each(function(e){var t=n.eq(e);h&&(r[0]=d.call(this,e,t.html())),Pe(t,r,i,o)});if(f&&(t=(e=xe(r,n[0].ownerDocument,!1,n,o)).firstChild,1===e.childNodes.length&&(e=t),t||o)){for(s=(a=S.map(ve(e,"script"),Le)).length;c<f;c++)u=e,c!==p&&(u=S.clone(u,!0,!0),s&&S.merge(a,ve(u,"script"))),i.call(n[c],u,c);if(s)for(l=a[a.length-1].ownerDocument,S.map(a,He),c=0;c<s;c++)u=a[c],he.test(u.type||"")&&!Y.access(u,"globalEval")&&S.contains(l,u)&&(u.src&&"module"!==(u.type||"").toLowerCase()?S._evalUrl&&!u.noModule&&S._evalUrl(u.src,{nonce:u.nonce||u.getAttribute("nonce")},l):b(u.textContent.replace(je,""),u,l))}return n}function Re(e,t,n){for(var r,i=t?S.filter(t,e):e,o=0;null!=(r=i[o]);o++)n||1!==r.nodeType||S.cleanData(ve(r)),r.parentNode&&(n&&ie(r)&&ye(ve(r,"script")),r.parentNode.removeChild(r));return e}S.extend({htmlPrefilter:function(e){return e},clone:function(e,t,n){var r,i,o,a,s,u,l,c=e.cloneNode(!0),f=ie(e);if(!(y.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||S.isXMLDoc(e)))for(a=ve(c),r=0,i=(o=ve(e)).length;r<i;r++)s=o[r],u=a[r],void 0,"input"===(l=u.nodeName.toLowerCase())&&pe.test(s.type)?u.checked=s.checked:"input"!==l&&"textarea"!==l||(u.defaultValue=s.defaultValue);if(t)if(n)for(o=o||ve(e),a=a||ve(c),r=0,i=o.length;r<i;r++)Oe(o[r],a[r]);else Oe(e,c);return 0<(a=ve(c,"script")).length&&ye(a,!f&&ve(e,"script")),c},cleanData:function(e){for(var t,n,r,i=S.event.special,o=0;void 0!==(n=e[o]);o++)if(V(n)){if(t=n[Y.expando]){if(t.events)for(r in t.events)i[r]?S.event.remove(n,r):S.removeEvent(n,r,t.handle);n[Y.expando]=void 0}n[Q.expando]&&(n[Q.expando]=void 0)}}}),S.fn.extend({detach:function(e){return Re(this,e,!0)},remove:function(e){return Re(this,e)},text:function(e){return $(this,function(e){return void 0===e?S.text(this):this.empty().each(function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=e)})},null,e,arguments.length)},append:function(){return Pe(this,arguments,function(e){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||qe(this,e).appendChild(e)})},prepend:function(){return Pe(this,arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=qe(this,e);t.insertBefore(e,t.firstChild)}})},before:function(){return Pe(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return Pe(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},empty:function(){for(var e,t=0;null!=(e=this[t]);t++)1===e.nodeType&&(S.cleanData(ve(e,!1)),e.textContent="");return this},clone:function(e,t){return e=null!=e&&e,t=null==t?e:t,this.map(function(){return S.clone(this,e,t)})},html:function(e){return $(this,function(e){var t=this[0]||{},n=0,r=this.length;if(void 0===e&&1===t.nodeType)return t.innerHTML;if("string"==typeof e&&!Ne.test(e)&&!ge[(de.exec(e)||["",""])[1].toLowerCase()]){e=S.htmlPrefilter(e);try{for(;n<r;n++)1===(t=this[n]||{}).nodeType&&(S.cleanData(ve(t,!1)),t.innerHTML=e);t=0}catch(e){}}t&&this.empty().append(e)},null,e,arguments.length)},replaceWith:function(){var n=[];return Pe(this,arguments,function(e){var t=this.parentNode;S.inArray(this,n)<0&&(S.cleanData(ve(this)),t&&t.replaceChild(e,this))},n)}}),S.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(e,a){S.fn[e]=function(e){for(var t,n=[],r=S(e),i=r.length-1,o=0;o<=i;o++)t=o===i?this:this.clone(!0),S(r[o])[a](t),u.apply(n,t.get());return this.pushStack(n)}});var Me=new RegExp("^("+ee+")(?!px)[a-z%]+$","i"),Ie=function(e){var t=e.ownerDocument.defaultView;return t&&t.opener||(t=C),t.getComputedStyle(e)},We=function(e,t,n){var r,i,o={};for(i in t)o[i]=e.style[i],e.style[i]=t[i];for(i in r=n.call(e),t)e.style[i]=o[i];return r},Fe=new RegExp(ne.join("|"),"i");function Be(e,t,n){var r,i,o,a,s=e.style;return(n=n||Ie(e))&&(""!==(a=n.getPropertyValue(t)||n[t])||ie(e)||(a=S.style(e,t)),!y.pixelBoxStyles()&&Me.test(a)&&Fe.test(t)&&(r=s.width,i=s.minWidth,o=s.maxWidth,s.minWidth=s.maxWidth=s.width=a,a=n.width,s.width=r,s.minWidth=i,s.maxWidth=o)),void 0!==a?a+"":a}function $e(e,t){return{get:function(){if(!e())return(this.get=t).apply(this,arguments);delete this.get}}}!function(){function e(){if(l){u.style.cssText="position:absolute;left:-11111px;width:60px;margin-top:1px;padding:0;border:0",l.style.cssText="position:relative;display:block;box-sizing:border-box;overflow:scroll;margin:auto;border:1px;padding:1px;width:60%;top:1%",re.appendChild(u).appendChild(l);var e=C.getComputedStyle(l);n="1%"!==e.top,s=12===t(e.marginLeft),l.style.right="60%",o=36===t(e.right),r=36===t(e.width),l.style.position="absolute",i=12===t(l.offsetWidth/3),re.removeChild(u),l=null}}function t(e){return Math.round(parseFloat(e))}var n,r,i,o,a,s,u=E.createElement("div"),l=E.createElement("div");l.style&&(l.style.backgroundClip="content-box",l.cloneNode(!0).style.backgroundClip="",y.clearCloneStyle="content-box"===l.style.backgroundClip,S.extend(y,{boxSizingReliable:function(){return e(),r},pixelBoxStyles:function(){return e(),o},pixelPosition:function(){return e(),n},reliableMarginLeft:function(){return e(),s},scrollboxSize:function(){return e(),i},reliableTrDimensions:function(){var e,t,n,r;return null==a&&(e=E.createElement("table"),t=E.createElement("tr"),n=E.createElement("div"),e.style.cssText="position:absolute;left:-11111px",t.style.height="1px",n.style.height="9px",re.appendChild(e).appendChild(t).appendChild(n),r=C.getComputedStyle(t),a=3<parseInt(r.height),re.removeChild(e)),a}}))}();var _e=["Webkit","Moz","ms"],ze=E.createElement("div").style,Ue={};function Xe(e){var t=S.cssProps[e]||Ue[e];return t||(e in ze?e:Ue[e]=function(e){var t=e[0].toUpperCase()+e.slice(1),n=_e.length;while(n--)if((e=_e[n]+t)in ze)return e}(e)||e)}var Ve=/^(none|table(?!-c[ea]).+)/,Ge=/^--/,Ye={position:"absolute",visibility:"hidden",display:"block"},Qe={letterSpacing:"0",fontWeight:"400"};function Je(e,t,n){var r=te.exec(t);return r?Math.max(0,r[2]-(n||0))+(r[3]||"px"):t}function Ke(e,t,n,r,i,o){var a="width"===t?1:0,s=0,u=0;if(n===(r?"border":"content"))return 0;for(;a<4;a+=2)"margin"===n&&(u+=S.css(e,n+ne[a],!0,i)),r?("content"===n&&(u-=S.css(e,"padding"+ne[a],!0,i)),"margin"!==n&&(u-=S.css(e,"border"+ne[a]+"Width",!0,i))):(u+=S.css(e,"padding"+ne[a],!0,i),"padding"!==n?u+=S.css(e,"border"+ne[a]+"Width",!0,i):s+=S.css(e,"border"+ne[a]+"Width",!0,i));return!r&&0<=o&&(u+=Math.max(0,Math.ceil(e["offset"+t[0].toUpperCase()+t.slice(1)]-o-u-s-.5))||0),u}function Ze(e,t,n){var r=Ie(e),i=(!y.boxSizingReliable()||n)&&"border-box"===S.css(e,"boxSizing",!1,r),o=i,a=Be(e,t,r),s="offset"+t[0].toUpperCase()+t.slice(1);if(Me.test(a)){if(!n)return a;a="auto"}return(!y.boxSizingReliable()&&i||!y.reliableTrDimensions()&&A(e,"tr")||"auto"===a||!parseFloat(a)&&"inline"===S.css(e,"display",!1,r))&&e.getClientRects().length&&(i="border-box"===S.css(e,"boxSizing",!1,r),(o=s in e)&&(a=e[s])),(a=parseFloat(a)||0)+Ke(e,t,n||(i?"border":"content"),o,r,a)+"px"}function et(e,t,n,r,i){return new et.prototype.init(e,t,n,r,i)}S.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=Be(e,"opacity");return""===n?"1":n}}}},cssNumber:{animationIterationCount:!0,columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,gridArea:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnStart:!0,gridRow:!0,gridRowEnd:!0,gridRowStart:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{},style:function(e,t,n,r){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var i,o,a,s=X(t),u=Ge.test(t),l=e.style;if(u||(t=Xe(s)),a=S.cssHooks[t]||S.cssHooks[s],void 0===n)return a&&"get"in a&&void 0!==(i=a.get(e,!1,r))?i:l[t];"string"===(o=typeof n)&&(i=te.exec(n))&&i[1]&&(n=se(e,t,i),o="number"),null!=n&&n==n&&("number"!==o||u||(n+=i&&i[3]||(S.cssNumber[s]?"":"px")),y.clearCloneStyle||""!==n||0!==t.indexOf("background")||(l[t]="inherit"),a&&"set"in a&&void 0===(n=a.set(e,n,r))||(u?l.setProperty(t,n):l[t]=n))}},css:function(e,t,n,r){var i,o,a,s=X(t);return Ge.test(t)||(t=Xe(s)),(a=S.cssHooks[t]||S.cssHooks[s])&&"get"in a&&(i=a.get(e,!0,n)),void 0===i&&(i=Be(e,t,r)),"normal"===i&&t in Qe&&(i=Qe[t]),""===n||n?(o=parseFloat(i),!0===n||isFinite(o)?o||0:i):i}}),S.each(["height","width"],function(e,u){S.cssHooks[u]={get:function(e,t,n){if(t)return!Ve.test(S.css(e,"display"))||e.getClientRects().length&&e.getBoundingClientRect().width?Ze(e,u,n):We(e,Ye,function(){return Ze(e,u,n)})},set:function(e,t,n){var r,i=Ie(e),o=!y.scrollboxSize()&&"absolute"===i.position,a=(o||n)&&"border-box"===S.css(e,"boxSizing",!1,i),s=n?Ke(e,u,n,a,i):0;return a&&o&&(s-=Math.ceil(e["offset"+u[0].toUpperCase()+u.slice(1)]-parseFloat(i[u])-Ke(e,u,"border",!1,i)-.5)),s&&(r=te.exec(t))&&"px"!==(r[3]||"px")&&(e.style[u]=t,t=S.css(e,u)),Je(0,t,s)}}}),S.cssHooks.marginLeft=$e(y.reliableMarginLeft,function(e,t){if(t)return(parseFloat(Be(e,"marginLeft"))||e.getBoundingClientRect().left-We(e,{marginLeft:0},function(){return e.getBoundingClientRect().left}))+"px"}),S.each({margin:"",padding:"",border:"Width"},function(i,o){S.cssHooks[i+o]={expand:function(e){for(var t=0,n={},r="string"==typeof e?e.split(" "):[e];t<4;t++)n[i+ne[t]+o]=r[t]||r[t-2]||r[0];return n}},"margin"!==i&&(S.cssHooks[i+o].set=Je)}),S.fn.extend({css:function(e,t){return $(this,function(e,t,n){var r,i,o={},a=0;if(Array.isArray(t)){for(r=Ie(e),i=t.length;a<i;a++)o[t[a]]=S.css(e,t[a],!1,r);return o}return void 0!==n?S.style(e,t,n):S.css(e,t)},e,t,1<arguments.length)}}),((S.Tween=et).prototype={constructor:et,init:function(e,t,n,r,i,o){this.elem=e,this.prop=n,this.easing=i||S.easing._default,this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=o||(S.cssNumber[n]?"":"px")},cur:function(){var e=et.propHooks[this.prop];return e&&e.get?e.get(this):et.propHooks._default.get(this)},run:function(e){var t,n=et.propHooks[this.prop];return this.options.duration?this.pos=t=S.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):this.pos=t=e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):et.propHooks._default.set(this),this}}).init.prototype=et.prototype,(et.propHooks={_default:{get:function(e){var t;return 1!==e.elem.nodeType||null!=e.elem[e.prop]&&null==e.elem.style[e.prop]?e.elem[e.prop]:(t=S.css(e.elem,e.prop,""))&&"auto"!==t?t:0},set:function(e){S.fx.step[e.prop]?S.fx.step[e.prop](e):1!==e.elem.nodeType||!S.cssHooks[e.prop]&&null==e.elem.style[Xe(e.prop)]?e.elem[e.prop]=e.now:S.style(e.elem,e.prop,e.now+e.unit)}}}).scrollTop=et.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},S.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2},_default:"swing"},S.fx=et.prototype.init,S.fx.step={};var tt,nt,rt,it,ot=/^(?:toggle|show|hide)$/,at=/queueHooks$/;function st(){nt&&(!1===E.hidden&&C.requestAnimationFrame?C.requestAnimationFrame(st):C.setTimeout(st,S.fx.interval),S.fx.tick())}function ut(){return C.setTimeout(function(){tt=void 0}),tt=Date.now()}function lt(e,t){var n,r=0,i={height:e};for(t=t?1:0;r<4;r+=2-t)i["margin"+(n=ne[r])]=i["padding"+n]=e;return t&&(i.opacity=i.width=e),i}function ct(e,t,n){for(var r,i=(ft.tweeners[t]||[]).concat(ft.tweeners["*"]),o=0,a=i.length;o<a;o++)if(r=i[o].call(n,t,e))return r}function ft(o,e,t){var n,a,r=0,i=ft.prefilters.length,s=S.Deferred().always(function(){delete u.elem}),u=function(){if(a)return!1;for(var e=tt||ut(),t=Math.max(0,l.startTime+l.duration-e),n=1-(t/l.duration||0),r=0,i=l.tweens.length;r<i;r++)l.tweens[r].run(n);return s.notifyWith(o,[l,n,t]),n<1&&i?t:(i||s.notifyWith(o,[l,1,0]),s.resolveWith(o,[l]),!1)},l=s.promise({elem:o,props:S.extend({},e),opts:S.extend(!0,{specialEasing:{},easing:S.easing._default},t),originalProperties:e,originalOptions:t,startTime:tt||ut(),duration:t.duration,tweens:[],createTween:function(e,t){var n=S.Tween(o,l.opts,e,t,l.opts.specialEasing[e]||l.opts.easing);return l.tweens.push(n),n},stop:function(e){var t=0,n=e?l.tweens.length:0;if(a)return this;for(a=!0;t<n;t++)l.tweens[t].run(1);return e?(s.notifyWith(o,[l,1,0]),s.resolveWith(o,[l,e])):s.rejectWith(o,[l,e]),this}}),c=l.props;for(!function(e,t){var n,r,i,o,a;for(n in e)if(i=t[r=X(n)],o=e[n],Array.isArray(o)&&(i=o[1],o=e[n]=o[0]),n!==r&&(e[r]=o,delete e[n]),(a=S.cssHooks[r])&&"expand"in a)for(n in o=a.expand(o),delete e[r],o)n in e||(e[n]=o[n],t[n]=i);else t[r]=i}(c,l.opts.specialEasing);r<i;r++)if(n=ft.prefilters[r].call(l,o,c,l.opts))return m(n.stop)&&(S._queueHooks(l.elem,l.opts.queue).stop=n.stop.bind(n)),n;return S.map(c,ct,l),m(l.opts.start)&&l.opts.start.call(o,l),l.progress(l.opts.progress).done(l.opts.done,l.opts.complete).fail(l.opts.fail).always(l.opts.always),S.fx.timer(S.extend(u,{elem:o,anim:l,queue:l.opts.queue})),l}S.Animation=S.extend(ft,{tweeners:{"*":[function(e,t){var n=this.createTween(e,t);return se(n.elem,e,te.exec(t),n),n}]},tweener:function(e,t){m(e)?(t=e,e=["*"]):e=e.match(P);for(var n,r=0,i=e.length;r<i;r++)n=e[r],ft.tweeners[n]=ft.tweeners[n]||[],ft.tweeners[n].unshift(t)},prefilters:[function(e,t,n){var r,i,o,a,s,u,l,c,f="width"in t||"height"in t,p=this,d={},h=e.style,g=e.nodeType&&ae(e),v=Y.get(e,"fxshow");for(r in n.queue||(null==(a=S._queueHooks(e,"fx")).unqueued&&(a.unqueued=0,s=a.empty.fire,a.empty.fire=function(){a.unqueued||s()}),a.unqueued++,p.always(function(){p.always(function(){a.unqueued--,S.queue(e,"fx").length||a.empty.fire()})})),t)if(i=t[r],ot.test(i)){if(delete t[r],o=o||"toggle"===i,i===(g?"hide":"show")){if("show"!==i||!v||void 0===v[r])continue;g=!0}d[r]=v&&v[r]||S.style(e,r)}if((u=!S.isEmptyObject(t))||!S.isEmptyObject(d))for(r in f&&1===e.nodeType&&(n.overflow=[h.overflow,h.overflowX,h.overflowY],null==(l=v&&v.display)&&(l=Y.get(e,"display")),"none"===(c=S.css(e,"display"))&&(l?c=l:(le([e],!0),l=e.style.display||l,c=S.css(e,"display"),le([e]))),("inline"===c||"inline-block"===c&&null!=l)&&"none"===S.css(e,"float")&&(u||(p.done(function(){h.display=l}),null==l&&(c=h.display,l="none"===c?"":c)),h.display="inline-block")),n.overflow&&(h.overflow="hidden",p.always(function(){h.overflow=n.overflow[0],h.overflowX=n.overflow[1],h.overflowY=n.overflow[2]})),u=!1,d)u||(v?"hidden"in v&&(g=v.hidden):v=Y.access(e,"fxshow",{display:l}),o&&(v.hidden=!g),g&&le([e],!0),p.done(function(){for(r in g||le([e]),Y.remove(e,"fxshow"),d)S.style(e,r,d[r])})),u=ct(g?v[r]:0,r,p),r in v||(v[r]=u.start,g&&(u.end=u.start,u.start=0))}],prefilter:function(e,t){t?ft.prefilters.unshift(e):ft.prefilters.push(e)}}),S.speed=function(e,t,n){var r=e&&"object"==typeof e?S.extend({},e):{complete:n||!n&&t||m(e)&&e,duration:e,easing:n&&t||t&&!m(t)&&t};return S.fx.off?r.duration=0:"number"!=typeof r.duration&&(r.duration in S.fx.speeds?r.duration=S.fx.speeds[r.duration]:r.duration=S.fx.speeds._default),null!=r.queue&&!0!==r.queue||(r.queue="fx"),r.old=r.complete,r.complete=function(){m(r.old)&&r.old.call(this),r.queue&&S.dequeue(this,r.queue)},r},S.fn.extend({fadeTo:function(e,t,n,r){return this.filter(ae).css("opacity",0).show().end().animate({opacity:t},e,n,r)},animate:function(t,e,n,r){var i=S.isEmptyObject(t),o=S.speed(e,n,r),a=function(){var e=ft(this,S.extend({},t),o);(i||Y.get(this,"finish"))&&e.stop(!0)};return a.finish=a,i||!1===o.queue?this.each(a):this.queue(o.queue,a)},stop:function(i,e,o){var a=function(e){var t=e.stop;delete e.stop,t(o)};return"string"!=typeof i&&(o=e,e=i,i=void 0),e&&this.queue(i||"fx",[]),this.each(function(){var e=!0,t=null!=i&&i+"queueHooks",n=S.timers,r=Y.get(this);if(t)r[t]&&r[t].stop&&a(r[t]);else for(t in r)r[t]&&r[t].stop&&at.test(t)&&a(r[t]);for(t=n.length;t--;)n[t].elem!==this||null!=i&&n[t].queue!==i||(n[t].anim.stop(o),e=!1,n.splice(t,1));!e&&o||S.dequeue(this,i)})},finish:function(a){return!1!==a&&(a=a||"fx"),this.each(function(){var e,t=Y.get(this),n=t[a+"queue"],r=t[a+"queueHooks"],i=S.timers,o=n?n.length:0;for(t.finish=!0,S.queue(this,a,[]),r&&r.stop&&r.stop.call(this,!0),e=i.length;e--;)i[e].elem===this&&i[e].queue===a&&(i[e].anim.stop(!0),i.splice(e,1));for(e=0;e<o;e++)n[e]&&n[e].finish&&n[e].finish.call(this);delete t.finish})}}),S.each(["toggle","show","hide"],function(e,r){var i=S.fn[r];S.fn[r]=function(e,t,n){return null==e||"boolean"==typeof e?i.apply(this,arguments):this.animate(lt(r,!0),e,t,n)}}),S.each({slideDown:lt("show"),slideUp:lt("hide"),slideToggle:lt("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(e,r){S.fn[e]=function(e,t,n){return this.animate(r,e,t,n)}}),S.timers=[],S.fx.tick=function(){var e,t=0,n=S.timers;for(tt=Date.now();t<n.length;t++)(e=n[t])()||n[t]!==e||n.splice(t--,1);n.length||S.fx.stop(),tt=void 0},S.fx.timer=function(e){S.timers.push(e),S.fx.start()},S.fx.interval=13,S.fx.start=function(){nt||(nt=!0,st())},S.fx.stop=function(){nt=null},S.fx.speeds={slow:600,fast:200,_default:400},S.fn.delay=function(r,e){return r=S.fx&&S.fx.speeds[r]||r,e=e||"fx",this.queue(e,function(e,t){var n=C.setTimeout(e,r);t.stop=function(){C.clearTimeout(n)}})},rt=E.createElement("input"),it=E.createElement("select").appendChild(E.createElement("option")),rt.type="checkbox",y.checkOn=""!==rt.value,y.optSelected=it.selected,(rt=E.createElement("input")).value="t",rt.type="radio",y.radioValue="t"===rt.value;var pt,dt=S.expr.attrHandle;S.fn.extend({attr:function(e,t){return $(this,S.attr,e,t,1<arguments.length)},removeAttr:function(e){return this.each(function(){S.removeAttr(this,e)})}}),S.extend({attr:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return"undefined"==typeof e.getAttribute?S.prop(e,t,n):(1===o&&S.isXMLDoc(e)||(i=S.attrHooks[t.toLowerCase()]||(S.expr.match.bool.test(t)?pt:void 0)),void 0!==n?null===n?void S.removeAttr(e,t):i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:(e.setAttribute(t,n+""),n):i&&"get"in i&&null!==(r=i.get(e,t))?r:null==(r=S.find.attr(e,t))?void 0:r)},attrHooks:{type:{set:function(e,t){if(!y.radioValue&&"radio"===t&&A(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}},removeAttr:function(e,t){var n,r=0,i=t&&t.match(P);if(i&&1===e.nodeType)while(n=i[r++])e.removeAttribute(n)}}),pt={set:function(e,t,n){return!1===t?S.removeAttr(e,n):e.setAttribute(n,n),n}},S.each(S.expr.match.bool.source.match(/\w+/g),function(e,t){var a=dt[t]||S.find.attr;dt[t]=function(e,t,n){var r,i,o=t.toLowerCase();return n||(i=dt[o],dt[o]=r,r=null!=a(e,t,n)?o:null,dt[o]=i),r}});var ht=/^(?:input|select|textarea|button)$/i,gt=/^(?:a|area)$/i;function vt(e){return(e.match(P)||[]).join(" ")}function yt(e){return e.getAttribute&&e.getAttribute("class")||""}function mt(e){return Array.isArray(e)?e:"string"==typeof e&&e.match(P)||[]}S.fn.extend({prop:function(e,t){return $(this,S.prop,e,t,1<arguments.length)},removeProp:function(e){return this.each(function(){delete this[S.propFix[e]||e]})}}),S.extend({prop:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return 1===o&&S.isXMLDoc(e)||(t=S.propFix[t]||t,i=S.propHooks[t]),void 0!==n?i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:e[t]=n:i&&"get"in i&&null!==(r=i.get(e,t))?r:e[t]},propHooks:{tabIndex:{get:function(e){var t=S.find.attr(e,"tabindex");return t?parseInt(t,10):ht.test(e.nodeName)||gt.test(e.nodeName)&&e.href?0:-1}}},propFix:{"for":"htmlFor","class":"className"}}),y.optSelected||(S.propHooks.selected={get:function(e){var t=e.parentNode;return t&&t.parentNode&&t.parentNode.selectedIndex,null},set:function(e){var t=e.parentNode;t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex)}}),S.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){S.propFix[this.toLowerCase()]=this}),S.fn.extend({addClass:function(t){var e,n,r,i,o,a,s,u=0;if(m(t))return this.each(function(e){S(this).addClass(t.call(this,e,yt(this)))});if((e=mt(t)).length)while(n=this[u++])if(i=yt(n),r=1===n.nodeType&&" "+vt(i)+" "){a=0;while(o=e[a++])r.indexOf(" "+o+" ")<0&&(r+=o+" ");i!==(s=vt(r))&&n.setAttribute("class",s)}return this},removeClass:function(t){var e,n,r,i,o,a,s,u=0;if(m(t))return this.each(function(e){S(this).removeClass(t.call(this,e,yt(this)))});if(!arguments.length)return this.attr("class","");if((e=mt(t)).length)while(n=this[u++])if(i=yt(n),r=1===n.nodeType&&" "+vt(i)+" "){a=0;while(o=e[a++])while(-1<r.indexOf(" "+o+" "))r=r.replace(" "+o+" "," ");i!==(s=vt(r))&&n.setAttribute("class",s)}return this},toggleClass:function(i,t){var o=typeof i,a="string"===o||Array.isArray(i);return"boolean"==typeof t&&a?t?this.addClass(i):this.removeClass(i):m(i)?this.each(function(e){S(this).toggleClass(i.call(this,e,yt(this),t),t)}):this.each(function(){var e,t,n,r;if(a){t=0,n=S(this),r=mt(i);while(e=r[t++])n.hasClass(e)?n.removeClass(e):n.addClass(e)}else void 0!==i&&"boolean"!==o||((e=yt(this))&&Y.set(this,"__className__",e),this.setAttribute&&this.setAttribute("class",e||!1===i?"":Y.get(this,"__className__")||""))})},hasClass:function(e){var t,n,r=0;t=" "+e+" ";while(n=this[r++])if(1===n.nodeType&&-1<(" "+vt(yt(n))+" ").indexOf(t))return!0;return!1}});var xt=/\r/g;S.fn.extend({val:function(n){var r,e,i,t=this[0];return arguments.length?(i=m(n),this.each(function(e){var t;1===this.nodeType&&(null==(t=i?n.call(this,e,S(this).val()):n)?t="":"number"==typeof t?t+="":Array.isArray(t)&&(t=S.map(t,function(e){return null==e?"":e+""})),(r=S.valHooks[this.type]||S.valHooks[this.nodeName.toLowerCase()])&&"set"in r&&void 0!==r.set(this,t,"value")||(this.value=t))})):t?(r=S.valHooks[t.type]||S.valHooks[t.nodeName.toLowerCase()])&&"get"in r&&void 0!==(e=r.get(t,"value"))?e:"string"==typeof(e=t.value)?e.replace(xt,""):null==e?"":e:void 0}}),S.extend({valHooks:{option:{get:function(e){var t=S.find.attr(e,"value");return null!=t?t:vt(S.text(e))}},select:{get:function(e){var t,n,r,i=e.options,o=e.selectedIndex,a="select-one"===e.type,s=a?null:[],u=a?o+1:i.length;for(r=o<0?u:a?o:0;r<u;r++)if(((n=i[r]).selected||r===o)&&!n.disabled&&(!n.parentNode.disabled||!A(n.parentNode,"optgroup"))){if(t=S(n).val(),a)return t;s.push(t)}return s},set:function(e,t){var n,r,i=e.options,o=S.makeArray(t),a=i.length;while(a--)((r=i[a]).selected=-1<S.inArray(S.valHooks.option.get(r),o))&&(n=!0);return n||(e.selectedIndex=-1),o}}}}),S.each(["radio","checkbox"],function(){S.valHooks[this]={set:function(e,t){if(Array.isArray(t))return e.checked=-1<S.inArray(S(e).val(),t)}},y.checkOn||(S.valHooks[this].get=function(e){return null===e.getAttribute("value")?"on":e.value})}),y.focusin="onfocusin"in C;var bt=/^(?:focusinfocus|focusoutblur)$/,wt=function(e){e.stopPropagation()};S.extend(S.event,{trigger:function(e,t,n,r){var i,o,a,s,u,l,c,f,p=[n||E],d=v.call(e,"type")?e.type:e,h=v.call(e,"namespace")?e.namespace.split("."):[];if(o=f=a=n=n||E,3!==n.nodeType&&8!==n.nodeType&&!bt.test(d+S.event.triggered)&&(-1<d.indexOf(".")&&(d=(h=d.split(".")).shift(),h.sort()),u=d.indexOf(":")<0&&"on"+d,(e=e[S.expando]?e:new S.Event(d,"object"==typeof e&&e)).isTrigger=r?2:3,e.namespace=h.join("."),e.rnamespace=e.namespace?new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,e.result=void 0,e.target||(e.target=n),t=null==t?[e]:S.makeArray(t,[e]),c=S.event.special[d]||{},r||!c.trigger||!1!==c.trigger.apply(n,t))){if(!r&&!c.noBubble&&!x(n)){for(s=c.delegateType||d,bt.test(s+d)||(o=o.parentNode);o;o=o.parentNode)p.push(o),a=o;a===(n.ownerDocument||E)&&p.push(a.defaultView||a.parentWindow||C)}i=0;while((o=p[i++])&&!e.isPropagationStopped())f=o,e.type=1<i?s:c.bindType||d,(l=(Y.get(o,"events")||Object.create(null))[e.type]&&Y.get(o,"handle"))&&l.apply(o,t),(l=u&&o[u])&&l.apply&&V(o)&&(e.result=l.apply(o,t),!1===e.result&&e.preventDefault());return e.type=d,r||e.isDefaultPrevented()||c._default&&!1!==c._default.apply(p.pop(),t)||!V(n)||u&&m(n[d])&&!x(n)&&((a=n[u])&&(n[u]=null),S.event.triggered=d,e.isPropagationStopped()&&f.addEventListener(d,wt),n[d](),e.isPropagationStopped()&&f.removeEventListener(d,wt),S.event.triggered=void 0,a&&(n[u]=a)),e.result}},simulate:function(e,t,n){var r=S.extend(new S.Event,n,{type:e,isSimulated:!0});S.event.trigger(r,null,t)}}),S.fn.extend({trigger:function(e,t){return this.each(function(){S.event.trigger(e,t,this)})},triggerHandler:function(e,t){var n=this[0];if(n)return S.event.trigger(e,t,n,!0)}}),y.focusin||S.each({focus:"focusin",blur:"focusout"},function(n,r){var i=function(e){S.event.simulate(r,e.target,S.event.fix(e))};S.event.special[r]={setup:function(){var e=this.ownerDocument||this.document||this,t=Y.access(e,r);t||e.addEventListener(n,i,!0),Y.access(e,r,(t||0)+1)},teardown:function(){var e=this.ownerDocument||this.document||this,t=Y.access(e,r)-1;t?Y.access(e,r,t):(e.removeEventListener(n,i,!0),Y.remove(e,r))}}});var Tt=C.location,Ct={guid:Date.now()},Et=/\?/;S.parseXML=function(e){var t;if(!e||"string"!=typeof e)return null;try{t=(new C.DOMParser).parseFromString(e,"text/xml")}catch(e){t=void 0}return t&&!t.getElementsByTagName("parsererror").length||S.error("Invalid XML: "+e),t};var St=/\[\]$/,kt=/\r?\n/g,At=/^(?:submit|button|image|reset|file)$/i,Nt=/^(?:input|select|textarea|keygen)/i;function Dt(n,e,r,i){var t;if(Array.isArray(e))S.each(e,function(e,t){r||St.test(n)?i(n,t):Dt(n+"["+("object"==typeof t&&null!=t?e:"")+"]",t,r,i)});else if(r||"object"!==w(e))i(n,e);else for(t in e)Dt(n+"["+t+"]",e[t],r,i)}S.param=function(e,t){var n,r=[],i=function(e,t){var n=m(t)?t():t;r[r.length]=encodeURIComponent(e)+"="+encodeURIComponent(null==n?"":n)};if(null==e)return"";if(Array.isArray(e)||e.jquery&&!S.isPlainObject(e))S.each(e,function(){i(this.name,this.value)});else for(n in e)Dt(n,e[n],t,i);return r.join("&")},S.fn.extend({serialize:function(){return S.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var e=S.prop(this,"elements");return e?S.makeArray(e):this}).filter(function(){var e=this.type;return this.name&&!S(this).is(":disabled")&&Nt.test(this.nodeName)&&!At.test(e)&&(this.checked||!pe.test(e))}).map(function(e,t){var n=S(this).val();return null==n?null:Array.isArray(n)?S.map(n,function(e){return{name:t.name,value:e.replace(kt,"\r\n")}}):{name:t.name,value:n.replace(kt,"\r\n")}}).get()}});var jt=/%20/g,qt=/#.*$/,Lt=/([?&])_=[^&]*/,Ht=/^(.*?):[ \t]*([^\r\n]*)$/gm,Ot=/^(?:GET|HEAD)$/,Pt=/^\/\//,Rt={},Mt={},It="*/".concat("*"),Wt=E.createElement("a");function Ft(o){return function(e,t){"string"!=typeof e&&(t=e,e="*");var n,r=0,i=e.toLowerCase().match(P)||[];if(m(t))while(n=i[r++])"+"===n[0]?(n=n.slice(1)||"*",(o[n]=o[n]||[]).unshift(t)):(o[n]=o[n]||[]).push(t)}}function Bt(t,i,o,a){var s={},u=t===Mt;function l(e){var r;return s[e]=!0,S.each(t[e]||[],function(e,t){var n=t(i,o,a);return"string"!=typeof n||u||s[n]?u?!(r=n):void 0:(i.dataTypes.unshift(n),l(n),!1)}),r}return l(i.dataTypes[0])||!s["*"]&&l("*")}function $t(e,t){var n,r,i=S.ajaxSettings.flatOptions||{};for(n in t)void 0!==t[n]&&((i[n]?e:r||(r={}))[n]=t[n]);return r&&S.extend(!0,e,r),e}Wt.href=Tt.href,S.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:Tt.href,type:"GET",isLocal:/^(?:about|app|app-storage|.+-extension|file|res|widget):$/.test(Tt.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":It,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":JSON.parse,"text xml":S.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?$t($t(e,S.ajaxSettings),t):$t(S.ajaxSettings,e)},ajaxPrefilter:Ft(Rt),ajaxTransport:Ft(Mt),ajax:function(e,t){"object"==typeof e&&(t=e,e=void 0),t=t||{};var c,f,p,n,d,r,h,g,i,o,v=S.ajaxSetup({},t),y=v.context||v,m=v.context&&(y.nodeType||y.jquery)?S(y):S.event,x=S.Deferred(),b=S.Callbacks("once memory"),w=v.statusCode||{},a={},s={},u="canceled",T={readyState:0,getResponseHeader:function(e){var t;if(h){if(!n){n={};while(t=Ht.exec(p))n[t[1].toLowerCase()+" "]=(n[t[1].toLowerCase()+" "]||[]).concat(t[2])}t=n[e.toLowerCase()+" "]}return null==t?null:t.join(", ")},getAllResponseHeaders:function(){return h?p:null},setRequestHeader:function(e,t){return null==h&&(e=s[e.toLowerCase()]=s[e.toLowerCase()]||e,a[e]=t),this},overrideMimeType:function(e){return null==h&&(v.mimeType=e),this},statusCode:function(e){var t;if(e)if(h)T.always(e[T.status]);else for(t in e)w[t]=[w[t],e[t]];return this},abort:function(e){var t=e||u;return c&&c.abort(t),l(0,t),this}};if(x.promise(T),v.url=((e||v.url||Tt.href)+"").replace(Pt,Tt.protocol+"//"),v.type=t.method||t.type||v.method||v.type,v.dataTypes=(v.dataType||"*").toLowerCase().match(P)||[""],null==v.crossDomain){r=E.createElement("a");try{r.href=v.url,r.href=r.href,v.crossDomain=Wt.protocol+"//"+Wt.host!=r.protocol+"//"+r.host}catch(e){v.crossDomain=!0}}if(v.data&&v.processData&&"string"!=typeof v.data&&(v.data=S.param(v.data,v.traditional)),Bt(Rt,v,t,T),h)return T;for(i in(g=S.event&&v.global)&&0==S.active++&&S.event.trigger("ajaxStart"),v.type=v.type.toUpperCase(),v.hasContent=!Ot.test(v.type),f=v.url.replace(qt,""),v.hasContent?v.data&&v.processData&&0===(v.contentType||"").indexOf("application/x-www-form-urlencoded")&&(v.data=v.data.replace(jt,"+")):(o=v.url.slice(f.length),v.data&&(v.processData||"string"==typeof v.data)&&(f+=(Et.test(f)?"&":"?")+v.data,delete v.data),!1===v.cache&&(f=f.replace(Lt,"$1"),o=(Et.test(f)?"&":"?")+"_="+Ct.guid+++o),v.url=f+o),v.ifModified&&(S.lastModified[f]&&T.setRequestHeader("If-Modified-Since",S.lastModified[f]),S.etag[f]&&T.setRequestHeader("If-None-Match",S.etag[f])),(v.data&&v.hasContent&&!1!==v.contentType||t.contentType)&&T.setRequestHeader("Content-Type",v.contentType),T.setRequestHeader("Accept",v.dataTypes[0]&&v.accepts[v.dataTypes[0]]?v.accepts[v.dataTypes[0]]+("*"!==v.dataTypes[0]?", "+It+"; q=0.01":""):v.accepts["*"]),v.headers)T.setRequestHeader(i,v.headers[i]);if(v.beforeSend&&(!1===v.beforeSend.call(y,T,v)||h))return T.abort();if(u="abort",b.add(v.complete),T.done(v.success),T.fail(v.error),c=Bt(Mt,v,t,T)){if(T.readyState=1,g&&m.trigger("ajaxSend",[T,v]),h)return T;v.async&&0<v.timeout&&(d=C.setTimeout(function(){T.abort("timeout")},v.timeout));try{h=!1,c.send(a,l)}catch(e){if(h)throw e;l(-1,e)}}else l(-1,"No Transport");function l(e,t,n,r){var i,o,a,s,u,l=t;h||(h=!0,d&&C.clearTimeout(d),c=void 0,p=r||"",T.readyState=0<e?4:0,i=200<=e&&e<300||304===e,n&&(s=function(e,t,n){var r,i,o,a,s=e.contents,u=e.dataTypes;while("*"===u[0])u.shift(),void 0===r&&(r=e.mimeType||t.getResponseHeader("Content-Type"));if(r)for(i in s)if(s[i]&&s[i].test(r)){u.unshift(i);break}if(u[0]in n)o=u[0];else{for(i in n){if(!u[0]||e.converters[i+" "+u[0]]){o=i;break}a||(a=i)}o=o||a}if(o)return o!==u[0]&&u.unshift(o),n[o]}(v,T,n)),!i&&-1<S.inArray("script",v.dataTypes)&&(v.converters["text script"]=function(){}),s=function(e,t,n,r){var i,o,a,s,u,l={},c=e.dataTypes.slice();if(c[1])for(a in e.converters)l[a.toLowerCase()]=e.converters[a];o=c.shift();while(o)if(e.responseFields[o]&&(n[e.responseFields[o]]=t),!u&&r&&e.dataFilter&&(t=e.dataFilter(t,e.dataType)),u=o,o=c.shift())if("*"===o)o=u;else if("*"!==u&&u!==o){if(!(a=l[u+" "+o]||l["* "+o]))for(i in l)if((s=i.split(" "))[1]===o&&(a=l[u+" "+s[0]]||l["* "+s[0]])){!0===a?a=l[i]:!0!==l[i]&&(o=s[0],c.unshift(s[1]));break}if(!0!==a)if(a&&e["throws"])t=a(t);else try{t=a(t)}catch(e){return{state:"parsererror",error:a?e:"No conversion from "+u+" to "+o}}}return{state:"success",data:t}}(v,s,T,i),i?(v.ifModified&&((u=T.getResponseHeader("Last-Modified"))&&(S.lastModified[f]=u),(u=T.getResponseHeader("etag"))&&(S.etag[f]=u)),204===e||"HEAD"===v.type?l="nocontent":304===e?l="notmodified":(l=s.state,o=s.data,i=!(a=s.error))):(a=l,!e&&l||(l="error",e<0&&(e=0))),T.status=e,T.statusText=(t||l)+"",i?x.resolveWith(y,[o,l,T]):x.rejectWith(y,[T,l,a]),T.statusCode(w),w=void 0,g&&m.trigger(i?"ajaxSuccess":"ajaxError",[T,v,i?o:a]),b.fireWith(y,[T,l]),g&&(m.trigger("ajaxComplete",[T,v]),--S.active||S.event.trigger("ajaxStop")))}return T},getJSON:function(e,t,n){return S.get(e,t,n,"json")},getScript:function(e,t){return S.get(e,void 0,t,"script")}}),S.each(["get","post"],function(e,i){S[i]=function(e,t,n,r){return m(t)&&(r=r||n,n=t,t=void 0),S.ajax(S.extend({url:e,type:i,dataType:r,data:t,success:n},S.isPlainObject(e)&&e))}}),S.ajaxPrefilter(function(e){var t;for(t in e.headers)"content-type"===t.toLowerCase()&&(e.contentType=e.headers[t]||"")}),S._evalUrl=function(e,t,n){return S.ajax({url:e,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,converters:{"text script":function(){}},dataFilter:function(e){S.globalEval(e,t,n)}})},S.fn.extend({wrapAll:function(e){var t;return this[0]&&(m(e)&&(e=e.call(this[0])),t=S(e,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){var e=this;while(e.firstElementChild)e=e.firstElementChild;return e}).append(this)),this},wrapInner:function(n){return m(n)?this.each(function(e){S(this).wrapInner(n.call(this,e))}):this.each(function(){var e=S(this),t=e.contents();t.length?t.wrapAll(n):e.append(n)})},wrap:function(t){var n=m(t);return this.each(function(e){S(this).wrapAll(n?t.call(this,e):t)})},unwrap:function(e){return this.parent(e).not("body").each(function(){S(this).replaceWith(this.childNodes)}),this}}),S.expr.pseudos.hidden=function(e){return!S.expr.pseudos.visible(e)},S.expr.pseudos.visible=function(e){return!!(e.offsetWidth||e.offsetHeight||e.getClientRects().length)},S.ajaxSettings.xhr=function(){try{return new C.XMLHttpRequest}catch(e){}};var _t={0:200,1223:204},zt=S.ajaxSettings.xhr();y.cors=!!zt&&"withCredentials"in zt,y.ajax=zt=!!zt,S.ajaxTransport(function(i){var o,a;if(y.cors||zt&&!i.crossDomain)return{send:function(e,t){var n,r=i.xhr();if(r.open(i.type,i.url,i.async,i.username,i.password),i.xhrFields)for(n in i.xhrFields)r[n]=i.xhrFields[n];for(n in i.mimeType&&r.overrideMimeType&&r.overrideMimeType(i.mimeType),i.crossDomain||e["X-Requested-With"]||(e["X-Requested-With"]="XMLHttpRequest"),e)r.setRequestHeader(n,e[n]);o=function(e){return function(){o&&(o=a=r.onload=r.onerror=r.onabort=r.ontimeout=r.onreadystatechange=null,"abort"===e?r.abort():"error"===e?"number"!=typeof r.status?t(0,"error"):t(r.status,r.statusText):t(_t[r.status]||r.status,r.statusText,"text"!==(r.responseType||"text")||"string"!=typeof r.responseText?{binary:r.response}:{text:r.responseText},r.getAllResponseHeaders()))}},r.onload=o(),a=r.onerror=r.ontimeout=o("error"),void 0!==r.onabort?r.onabort=a:r.onreadystatechange=function(){4===r.readyState&&C.setTimeout(function(){o&&a()})},o=o("abort");try{r.send(i.hasContent&&i.data||null)}catch(e){if(o)throw e}},abort:function(){o&&o()}}}),S.ajaxPrefilter(function(e){e.crossDomain&&(e.contents.script=!1)}),S.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(e){return S.globalEval(e),e}}}),S.ajaxPrefilter("script",function(e){void 0===e.cache&&(e.cache=!1),e.crossDomain&&(e.type="GET")}),S.ajaxTransport("script",function(n){var r,i;if(n.crossDomain||n.scriptAttrs)return{send:function(e,t){r=S("<script>").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var Ut,Xt=[],Vt=/(=)\?(?=&|$)|\?\?/;S.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Xt.pop()||S.expando+"_"+Ct.guid++;return this[e]=!0,e}}),S.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Vt.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Vt.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Vt,"$1"+r):!1!==e.jsonp&&(e.url+=(Et.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||S.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?S(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,Xt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((Ut=E.implementation.createHTMLDocument("").body).innerHTML="<form></form><form></form>",2===Ut.childNodes.length),S.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=N.exec(e))?[t.createElement(i[1])]:(i=xe([e],t,o),o&&o.length&&S(o).remove(),S.merge([],i.childNodes)));var r,i,o},S.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1<s&&(r=vt(e.slice(s)),e=e.slice(0,s)),m(t)?(n=t,t=void 0):t&&"object"==typeof t&&(i="POST"),0<a.length&&S.ajax({url:e,type:i||"GET",dataType:"html",data:t}).done(function(e){o=arguments,a.html(r?S("<div>").append(S.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},S.expr.pseudos.animated=function(t){return S.grep(S.timers,function(e){return t===e.elem}).length},S.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=S.css(e,"position"),c=S(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=S.css(e,"top"),u=S.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,S.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):("number"==typeof f.top&&(f.top+="px"),"number"==typeof f.left&&(f.left+="px"),c.css(f))}},S.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){S.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===S.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===S.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=S(e).offset()).top+=S.css(e,"borderTopWidth",!0),i.left+=S.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-S.css(r,"marginTop",!0),left:t.left-i.left-S.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===S.css(e,"position"))e=e.offsetParent;return e||re})}}),S.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;S.fn[t]=function(e){return $(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),S.each(["top","left"],function(e,n){S.cssHooks[n]=$e(y.pixelPosition,function(e,t){if(t)return t=Be(e,n),Me.test(t)?S(e).position()[n]+"px":t})}),S.each({Height:"height",Width:"width"},function(a,s){S.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){S.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return $(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?S.css(e,t,i):S.style(e,t,n,i)},s,n?e:void 0,n)}})}),S.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){S.fn[t]=function(e){return this.on(t,e)}}),S.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),S.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){S.fn[n]=function(e,t){return 0<arguments.length?this.on(n,null,e,t):this.trigger(n)}});var Gt=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;S.proxy=function(e,t){var n,r,i;if("string"==typeof t&&(n=e[t],t=e,e=n),m(e))return r=s.call(arguments,2),(i=function(){return e.apply(t||this,r.concat(s.call(arguments)))}).guid=e.guid=e.guid||S.guid++,i},S.holdReady=function(e){e?S.readyWait++:S.ready(!0)},S.isArray=Array.isArray,S.parseJSON=JSON.parse,S.nodeName=A,S.isFunction=m,S.isWindow=x,S.camelCase=X,S.type=w,S.now=Date.now,S.isNumeric=function(e){var t=S.type(e);return("number"===t||"string"===t)&&!isNaN(e-parseFloat(e))},S.trim=function(e){return null==e?"":(e+"").replace(Gt,"")},"function"==typeof define&&define.amd&&define("jquery",[],function(){return S});var Yt=C.jQuery,Qt=C.$;return S.noConflict=function(e){return C.$===S&&(C.$=Qt),e&&C.jQuery===S&&(C.jQuery=Yt),S},"undefined"==typeof e&&(C.jQuery=C.$=S),S});
/* @preserve
- * Leaflet 1.3.1+Detached: ba6f97fff8647e724e4dfe66d2ed7da11f908989.ba6f97f, a JS library for interactive maps. http://leafletjs.com
- * (c) 2010-2017 Vladimir Agafonkin, (c) 2010-2011 CloudMade
+ * Leaflet 1.6.0, a JS library for interactive maps. http://leafletjs.com
+ * (c) 2010-2019 Vladimir Agafonkin, (c) 2010-2011 CloudMade
*/
-!function(t,i){"object"==typeof exports&&"undefined"!=typeof module?i(exports):"function"==typeof define&&define.amd?define(["exports"],i):i(t.L={})}(this,function(t){"use strict";function i(t){var i,e,n,o;for(e=1,n=arguments.length;e<n;e++){o=arguments[e];for(i in o)t[i]=o[i]}return t}function e(t,i){var e=Array.prototype.slice;if(t.bind)return t.bind.apply(t,e.call(arguments,1));var n=e.call(arguments,2);return function(){return t.apply(i,n.length?n.concat(e.call(arguments)):arguments)}}function n(t){return t._leaflet_id=t._leaflet_id||++ti,t._leaflet_id}function o(t,i,e){var n,o,s,r;return r=function(){n=!1,o&&(s.apply(e,o),o=!1)},s=function(){n?o=arguments:(t.apply(e,arguments),setTimeout(r,i),n=!0)}}function s(t,i,e){var n=i[1],o=i[0],s=n-o;return t===n&&e?t:((t-o)%s+s)%s+o}function r(){return!1}function a(t,i){var e=Math.pow(10,void 0===i?6:i);return Math.round(t*e)/e}function h(t){return t.trim?t.trim():t.replace(/^\s+|\s+$/g,"")}function u(t){return h(t).split(/\s+/)}function l(t,i){t.hasOwnProperty("options")||(t.options=t.options?Qt(t.options):{});for(var e in i)t.options[e]=i[e];return t.options}function c(t,i,e){var n=[];for(var o in t)n.push(encodeURIComponent(e?o.toUpperCase():o)+"="+encodeURIComponent(t[o]));return(i&&-1!==i.indexOf("?")?"&":"?")+n.join("&")}function _(t,i){return t.replace(ii,function(t,e){var n=i[e];if(void 0===n)throw new Error("No value provided for variable "+t);return"function"==typeof n&&(n=n(i)),n})}function d(t,i){for(var e=0;e<t.length;e++)if(t[e]===i)return e;return-1}function p(t){return window["webkit"+t]||window["moz"+t]||window["ms"+t]}function m(t){var i=+new Date,e=Math.max(0,16-(i-oi));return oi=i+e,window.setTimeout(t,e)}function f(t,i,n){if(!n||si!==m)return si.call(window,e(t,i));t.call(i)}function g(t){t&&ri.call(window,t)}function v(){}function y(t){if("undefined"!=typeof L&&L&&L.Mixin){t=ei(t)?t:[t];for(var i=0;i<t.length;i++)t[i]===L.Mixin.Events&&console.warn("Deprecated include of L.Mixin.Events: this property will be removed in future releases, please inherit from L.Evented instead.",(new Error).stack)}}function x(t,i,e){this.x=e?Math.round(t):t,this.y=e?Math.round(i):i}function w(t,i,e){return t instanceof x?t:ei(t)?new x(t[0],t[1]):void 0===t||null===t?t:"object"==typeof t&&"x"in t&&"y"in t?new x(t.x,t.y):new x(t,i,e)}function P(t,i){if(t)for(var e=i?[t,i]:t,n=0,o=e.length;n<o;n++)this.extend(e[n])}function b(t,i){return!t||t instanceof P?t:new P(t,i)}function T(t,i){if(t)for(var e=i?[t,i]:t,n=0,o=e.length;n<o;n++)this.extend(e[n])}function z(t,i){return t instanceof T?t:new T(t,i)}function M(t,i,e){if(isNaN(t)||isNaN(i))throw new Error("Invalid LatLng object: ("+t+", "+i+")");this.lat=+t,this.lng=+i,void 0!==e&&(this.alt=+e)}function C(t,i,e){return t instanceof M?t:ei(t)&&"object"!=typeof t[0]?3===t.length?new M(t[0],t[1],t[2]):2===t.length?new M(t[0],t[1]):null:void 0===t||null===t?t:"object"==typeof t&&"lat"in t?new M(t.lat,"lng"in t?t.lng:t.lon,t.alt):void 0===i?null:new M(t,i,e)}function Z(t,i,e,n){if(ei(t))return this._a=t[0],this._b=t[1],this._c=t[2],void(this._d=t[3]);this._a=t,this._b=i,this._c=e,this._d=n}function S(t,i,e,n){return new Z(t,i,e,n)}function E(t){return document.createElementNS("http://www.w3.org/2000/svg",t)}function k(t,i){var e,n,o,s,r,a,h="";for(e=0,o=t.length;e<o;e++){for(n=0,s=(r=t[e]).length;n<s;n++)a=r[n],h+=(n?"L":"M")+a.x+" "+a.y;h+=i?Xi?"z":"x":""}return h||"M0 0"}function A(t){return navigator.userAgent.toLowerCase().indexOf(t)>=0}function I(t,i,e,n){return"touchstart"===i?O(t,e,n):"touchmove"===i?W(t,e,n):"touchend"===i&&H(t,e,n),this}function B(t,i,e){var n=t["_leaflet_"+i+e];return"touchstart"===i?t.removeEventListener(Qi,n,!1):"touchmove"===i?t.removeEventListener(te,n,!1):"touchend"===i&&(t.removeEventListener(ie,n,!1),t.removeEventListener(ee,n,!1)),this}function O(t,i,n){var o=e(function(t){if("mouse"!==t.pointerType&&t.MSPOINTER_TYPE_MOUSE&&t.pointerType!==t.MSPOINTER_TYPE_MOUSE){if(!(ne.indexOf(t.target.tagName)<0))return;$(t)}j(t,i)});t["_leaflet_touchstart"+n]=o,t.addEventListener(Qi,o,!1),se||(document.documentElement.addEventListener(Qi,R,!0),document.documentElement.addEventListener(te,D,!0),document.documentElement.addEventListener(ie,N,!0),document.documentElement.addEventListener(ee,N,!0),se=!0)}function R(t){oe[t.pointerId]=t,re++}function D(t){oe[t.pointerId]&&(oe[t.pointerId]=t)}function N(t){delete oe[t.pointerId],re--}function j(t,i){t.touches=[];for(var e in oe)t.touches.push(oe[e]);t.changedTouches=[t],i(t)}function W(t,i,e){var n=function(t){(t.pointerType!==t.MSPOINTER_TYPE_MOUSE&&"mouse"!==t.pointerType||0!==t.buttons)&&j(t,i)};t["_leaflet_touchmove"+e]=n,t.addEventListener(te,n,!1)}function H(t,i,e){var n=function(t){j(t,i)};t["_leaflet_touchend"+e]=n,t.addEventListener(ie,n,!1),t.addEventListener(ee,n,!1)}function F(t,i,e){function n(t){var i;if(Ui){if(!Pi||"mouse"===t.pointerType)return;i=re}else i=t.touches.length;if(!(i>1)){var e=Date.now(),n=e-(s||e);r=t.touches?t.touches[0]:t,a=n>0&&n<=h,s=e}}function o(t){if(a&&!r.cancelBubble){if(Ui){if(!Pi||"mouse"===t.pointerType)return;var e,n,o={};for(n in r)e=r[n],o[n]=e&&e.bind?e.bind(r):e;r=o}r.type="dblclick",i(r),s=null}}var s,r,a=!1,h=250;return t[ue+ae+e]=n,t[ue+he+e]=o,t[ue+"dblclick"+e]=i,t.addEventListener(ae,n,!1),t.addEventListener(he,o,!1),t.addEventListener("dblclick",i,!1),this}function U(t,i){var e=t[ue+ae+i],n=t[ue+he+i],o=t[ue+"dblclick"+i];return t.removeEventListener(ae,e,!1),t.removeEventListener(he,n,!1),Pi||t.removeEventListener("dblclick",o,!1),this}function V(t,i,e,n){if("object"==typeof i)for(var o in i)G(t,o,i[o],e);else for(var s=0,r=(i=u(i)).length;s<r;s++)G(t,i[s],e,n);return this}function q(t,i,e,n){if("object"==typeof i)for(var o in i)K(t,o,i[o],e);else if(i)for(var s=0,r=(i=u(i)).length;s<r;s++)K(t,i[s],e,n);else{for(var a in t[le])K(t,a,t[le][a]);delete t[le]}return this}function G(t,i,e,o){var s=i+n(e)+(o?"_"+n(o):"");if(t[le]&&t[le][s])return this;var r=function(i){return e.call(o||t,i||window.event)},a=r;Ui&&0===i.indexOf("touch")?I(t,i,r,s):!Vi||"dblclick"!==i||!F||Ui&&Si?"addEventListener"in t?"mousewheel"===i?t.addEventListener("onwheel"in t?"wheel":"mousewheel",r,!1):"mouseenter"===i||"mouseleave"===i?(r=function(i){i=i||window.event,ot(t,i)&&a(i)},t.addEventListener("mouseenter"===i?"mouseover":"mouseout",r,!1)):("click"===i&&Ti&&(r=function(t){st(t,a)}),t.addEventListener(i,r,!1)):"attachEvent"in t&&t.attachEvent("on"+i,r):F(t,r,s),t[le]=t[le]||{},t[le][s]=r}function K(t,i,e,o){var s=i+n(e)+(o?"_"+n(o):""),r=t[le]&&t[le][s];if(!r)return this;Ui&&0===i.indexOf("touch")?B(t,i,s):!Vi||"dblclick"!==i||!U||Ui&&Si?"removeEventListener"in t?"mousewheel"===i?t.removeEventListener("onwheel"in t?"wheel":"mousewheel",r,!1):t.removeEventListener("mouseenter"===i?"mouseover":"mouseleave"===i?"mouseout":i,r,!1):"detachEvent"in t&&t.detachEvent("on"+i,r):U(t,s),t[le][s]=null}function Y(t){return t.stopPropagation?t.stopPropagation():t.originalEvent?t.originalEvent._stopped=!0:t.cancelBubble=!0,nt(t),this}function X(t){return G(t,"mousewheel",Y),this}function J(t){return V(t,"mousedown touchstart dblclick",Y),G(t,"click",et),this}function $(t){return t.preventDefault?t.preventDefault():t.returnValue=!1,this}function Q(t){return $(t),Y(t),this}function tt(t,i){if(!i)return new x(t.clientX,t.clientY);var e=i.getBoundingClientRect(),n=e.width/i.offsetWidth||1,o=e.height/i.offsetHeight||1;return new x(t.clientX/n-e.left-i.clientLeft,t.clientY/o-e.top-i.clientTop)}function it(t){return Pi?t.wheelDeltaY/2:t.deltaY&&0===t.deltaMode?-t.deltaY/ce:t.deltaY&&1===t.deltaMode?20*-t.deltaY:t.deltaY&&2===t.deltaMode?60*-t.deltaY:t.deltaX||t.deltaZ?0:t.wheelDelta?(t.wheelDeltaY||t.wheelDelta)/2:t.detail&&Math.abs(t.detail)<32765?20*-t.detail:t.detail?t.detail/-32765*60:0}function et(t){_e[t.type]=!0}function nt(t){var i=_e[t.type];return _e[t.type]=!1,i}function ot(t,i){var e=i.relatedTarget;if(!e)return!0;try{for(;e&&e!==t;)e=e.parentNode}catch(t){return!1}return e!==t}function st(t,i){var e=t.timeStamp||t.originalEvent&&t.originalEvent.timeStamp,n=pi&&e-pi;n&&n>100&&n<500||t.target._simulatedClick&&!t._simulated?Q(t):(pi=e,i(t))}function rt(t){return"string"==typeof t?document.getElementById(t):t}function at(t,i){var e=t.style[i]||t.currentStyle&&t.currentStyle[i];if((!e||"auto"===e)&&document.defaultView){var n=document.defaultView.getComputedStyle(t,null);e=n?n[i]:null}return"auto"===e?null:e}function ht(t,i,e){var n=document.createElement(t);return n.className=i||"",e&&e.appendChild(n),n}function ut(t){var i=t.parentNode;i&&i.removeChild(t)}function lt(t){for(;t.firstChild;)t.removeChild(t.firstChild)}function ct(t){var i=t.parentNode;i.lastChild!==t&&i.appendChild(t)}function _t(t){var i=t.parentNode;i.firstChild!==t&&i.insertBefore(t,i.firstChild)}function dt(t,i){if(void 0!==t.classList)return t.classList.contains(i);var e=gt(t);return e.length>0&&new RegExp("(^|\\s)"+i+"(\\s|$)").test(e)}function pt(t,i){if(void 0!==t.classList)for(var e=u(i),n=0,o=e.length;n<o;n++)t.classList.add(e[n]);else if(!dt(t,i)){var s=gt(t);ft(t,(s?s+" ":"")+i)}}function mt(t,i){void 0!==t.classList?t.classList.remove(i):ft(t,h((" "+gt(t)+" ").replace(" "+i+" "," ")))}function ft(t,i){void 0===t.className.baseVal?t.className=i:t.className.baseVal=i}function gt(t){return void 0===t.className.baseVal?t.className:t.className.baseVal}function vt(t,i){"opacity"in t.style?t.style.opacity=i:"filter"in t.style&&yt(t,i)}function yt(t,i){var e=!1,n="DXImageTransform.Microsoft.Alpha";try{e=t.filters.item(n)}catch(t){if(1===i)return}i=Math.round(100*i),e?(e.Enabled=100!==i,e.Opacity=i):t.style.filter+=" progid:"+n+"(opacity="+i+")"}function xt(t){for(var i=document.documentElement.style,e=0;e<t.length;e++)if(t[e]in i)return t[e];return!1}function wt(t,i,e){var n=i||new x(0,0);t.style[pe]=(Oi?"translate("+n.x+"px,"+n.y+"px)":"translate3d("+n.x+"px,"+n.y+"px,0)")+(e?" scale("+e+")":"")}function Lt(t,i){t._leaflet_pos=i,Ni?wt(t,i):(t.style.left=i.x+"px",t.style.top=i.y+"px")}function Pt(t){return t._leaflet_pos||new x(0,0)}function bt(){V(window,"dragstart",$)}function Tt(){q(window,"dragstart",$)}function zt(t){for(;-1===t.tabIndex;)t=t.parentNode;t.style&&(Mt(),ve=t,ye=t.style.outline,t.style.outline="none",V(window,"keydown",Mt))}function Mt(){ve&&(ve.style.outline=ye,ve=void 0,ye=void 0,q(window,"keydown",Mt))}function Ct(t,i){if(!i||!t.length)return t.slice();var e=i*i;return t=kt(t,e),t=St(t,e)}function Zt(t,i,e){return Math.sqrt(Rt(t,i,e,!0))}function St(t,i){var e=t.length,n=new(typeof Uint8Array!=void 0+""?Uint8Array:Array)(e);n[0]=n[e-1]=1,Et(t,n,i,0,e-1);var o,s=[];for(o=0;o<e;o++)n[o]&&s.push(t[o]);return s}function Et(t,i,e,n,o){var s,r,a,h=0;for(r=n+1;r<=o-1;r++)(a=Rt(t[r],t[n],t[o],!0))>h&&(s=r,h=a);h>e&&(i[s]=1,Et(t,i,e,n,s),Et(t,i,e,s,o))}function kt(t,i){for(var e=[t[0]],n=1,o=0,s=t.length;n<s;n++)Ot(t[n],t[o])>i&&(e.push(t[n]),o=n);return o<s-1&&e.push(t[s-1]),e}function At(t,i,e,n,o){var s,r,a,h=n?Se:Bt(t,e),u=Bt(i,e);for(Se=u;;){if(!(h|u))return[t,i];if(h&u)return!1;a=Bt(r=It(t,i,s=h||u,e,o),e),s===h?(t=r,h=a):(i=r,u=a)}}function It(t,i,e,n,o){var s,r,a=i.x-t.x,h=i.y-t.y,u=n.min,l=n.max;return 8&e?(s=t.x+a*(l.y-t.y)/h,r=l.y):4&e?(s=t.x+a*(u.y-t.y)/h,r=u.y):2&e?(s=l.x,r=t.y+h*(l.x-t.x)/a):1&e&&(s=u.x,r=t.y+h*(u.x-t.x)/a),new x(s,r,o)}function Bt(t,i){var e=0;return t.x<i.min.x?e|=1:t.x>i.max.x&&(e|=2),t.y<i.min.y?e|=4:t.y>i.max.y&&(e|=8),e}function Ot(t,i){var e=i.x-t.x,n=i.y-t.y;return e*e+n*n}function Rt(t,i,e,n){var o,s=i.x,r=i.y,a=e.x-s,h=e.y-r,u=a*a+h*h;return u>0&&((o=((t.x-s)*a+(t.y-r)*h)/u)>1?(s=e.x,r=e.y):o>0&&(s+=a*o,r+=h*o)),a=t.x-s,h=t.y-r,n?a*a+h*h:new x(s,r)}function Dt(t){return!ei(t[0])||"object"!=typeof t[0][0]&&void 0!==t[0][0]}function Nt(t){return console.warn("Deprecated use of _flat, please use L.LineUtil.isFlat instead."),Dt(t)}function jt(t,i,e){var n,o,s,r,a,h,u,l,c,_=[1,4,2,8];for(o=0,u=t.length;o<u;o++)t[o]._code=Bt(t[o],i);for(r=0;r<4;r++){for(l=_[r],n=[],o=0,s=(u=t.length)-1;o<u;s=o++)a=t[o],h=t[s],a._code&l?h._code&l||((c=It(h,a,l,i,e))._code=Bt(c,i),n.push(c)):(h._code&l&&((c=It(h,a,l,i,e))._code=Bt(c,i),n.push(c)),n.push(a));t=n}return t}function Wt(t,i){var e,n,o,s,r="Feature"===t.type?t.geometry:t,a=r?r.coordinates:null,h=[],u=i&&i.pointToLayer,l=i&&i.coordsToLatLng||Ht;if(!a&&!r)return null;switch(r.type){case"Point":return e=l(a),u?u(t,e):new Xe(e);case"MultiPoint":for(o=0,s=a.length;o<s;o++)e=l(a[o]),h.push(u?u(t,e):new Xe(e));return new qe(h);case"LineString":case"MultiLineString":return n=Ft(a,"LineString"===r.type?0:1,l),new tn(n,i);case"Polygon":case"MultiPolygon":return n=Ft(a,"Polygon"===r.type?1:2,l),new en(n,i);case"GeometryCollection":for(o=0,s=r.geometries.length;o<s;o++){var c=Wt({geometry:r.geometries[o],type:"Feature",properties:t.properties},i);c&&h.push(c)}return new qe(h);default:throw new Error("Invalid GeoJSON object.")}}function Ht(t){return new M(t[1],t[0],t[2])}function Ft(t,i,e){for(var n,o=[],s=0,r=t.length;s<r;s++)n=i?Ft(t[s],i-1,e):(e||Ht)(t[s]),o.push(n);return o}function Ut(t,i){return i="number"==typeof i?i:6,void 0!==t.alt?[a(t.lng,i),a(t.lat,i),a(t.alt,i)]:[a(t.lng,i),a(t.lat,i)]}function Vt(t,i,e,n){for(var o=[],s=0,r=t.length;s<r;s++)o.push(i?Vt(t[s],i-1,e,n):Ut(t[s],n));return!i&&e&&o.push(o[0]),o}function qt(t,e){return t.feature?i({},t.feature,{geometry:e}):Gt(e)}function Gt(t){return"Feature"===t.type||"FeatureCollection"===t.type?t:{type:"Feature",properties:{},geometry:t}}function Kt(t,i){return new nn(t,i)}function Yt(t,i){return new dn(t,i)}function Xt(t){return Yi?new fn(t):null}function Jt(t){return Xi||Ji?new xn(t):null}var $t=Object.freeze;Object.freeze=function(t){return t};var Qt=Object.create||function(){function t(){}return function(i){return t.prototype=i,new t}}(),ti=0,ii=/\{ *([\w_-]+) *\}/g,ei=Array.isArray||function(t){return"[object Array]"===Object.prototype.toString.call(t)},ni="data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs=",oi=0,si=window.requestAnimationFrame||p("RequestAnimationFrame")||m,ri=window.cancelAnimationFrame||p("CancelAnimationFrame")||p("CancelRequestAnimationFrame")||function(t){window.clearTimeout(t)},ai=(Object.freeze||Object)({freeze:$t,extend:i,create:Qt,bind:e,lastId:ti,stamp:n,throttle:o,wrapNum:s,falseFn:r,formatNum:a,trim:h,splitWords:u,setOptions:l,getParamString:c,template:_,isArray:ei,indexOf:d,emptyImageUrl:ni,requestFn:si,cancelFn:ri,requestAnimFrame:f,cancelAnimFrame:g});v.extend=function(t){var e=function(){this.initialize&&this.initialize.apply(this,arguments),this.callInitHooks()},n=e.__super__=this.prototype,o=Qt(n);o.constructor=e,e.prototype=o;for(var s in this)this.hasOwnProperty(s)&&"prototype"!==s&&"__super__"!==s&&(e[s]=this[s]);return t.statics&&(i(e,t.statics),delete t.statics),t.includes&&(y(t.includes),i.apply(null,[o].concat(t.includes)),delete t.includes),o.options&&(t.options=i(Qt(o.options),t.options)),i(o,t),o._initHooks=[],o.callInitHooks=function(){if(!this._initHooksCalled){n.callInitHooks&&n.callInitHooks.call(this),this._initHooksCalled=!0;for(var t=0,i=o._initHooks.length;t<i;t++)o._initHooks[t].call(this)}},e},v.include=function(t){return i(this.prototype,t),this},v.mergeOptions=function(t){return i(this.prototype.options,t),this},v.addInitHook=function(t){var i=Array.prototype.slice.call(arguments,1),e="function"==typeof t?t:function(){this[t].apply(this,i)};return this.prototype._initHooks=this.prototype._initHooks||[],this.prototype._initHooks.push(e),this};var hi={on:function(t,i,e){if("object"==typeof t)for(var n in t)this._on(n,t[n],i);else for(var o=0,s=(t=u(t)).length;o<s;o++)this._on(t[o],i,e);return this},off:function(t,i,e){if(t)if("object"==typeof t)for(var n in t)this._off(n,t[n],i);else for(var o=0,s=(t=u(t)).length;o<s;o++)this._off(t[o],i,e);else delete this._events;return this},_on:function(t,i,e){this._events=this._events||{};var n=this._events[t];n||(n=[],this._events[t]=n),e===this&&(e=void 0);for(var o={fn:i,ctx:e},s=n,r=0,a=s.length;r<a;r++)if(s[r].fn===i&&s[r].ctx===e)return;s.push(o)},_off:function(t,i,e){var n,o,s;if(this._events&&(n=this._events[t]))if(i){if(e===this&&(e=void 0),n)for(o=0,s=n.length;o<s;o++){var a=n[o];if(a.ctx===e&&a.fn===i)return a.fn=r,this._firingCount&&(this._events[t]=n=n.slice()),void n.splice(o,1)}}else{for(o=0,s=n.length;o<s;o++)n[o].fn=r;delete this._events[t]}},fire:function(t,e,n){if(!this.listens(t,n))return this;var o=i({},e,{type:t,target:this,sourceTarget:e&&e.sourceTarget||this});if(this._events){var s=this._events[t];if(s){this._firingCount=this._firingCount+1||1;for(var r=0,a=s.length;r<a;r++){var h=s[r];h.fn.call(h.ctx||this,o)}this._firingCount--}}return n&&this._propagateEvent(o),this},listens:function(t,i){var e=this._events&&this._events[t];if(e&&e.length)return!0;if(i)for(var n in this._eventParents)if(this._eventParents[n].listens(t,i))return!0;return!1},once:function(t,i,n){if("object"==typeof t){for(var o in t)this.once(o,t[o],i);return this}var s=e(function(){this.off(t,i,n).off(t,s,n)},this);return this.on(t,i,n).on(t,s,n)},addEventParent:function(t){return this._eventParents=this._eventParents||{},this._eventParents[n(t)]=t,this},removeEventParent:function(t){return this._eventParents&&delete this._eventParents[n(t)],this},_propagateEvent:function(t){for(var e in this._eventParents)this._eventParents[e].fire(t.type,i({layer:t.target,propagatedFrom:t.target},t),!0)}};hi.addEventListener=hi.on,hi.removeEventListener=hi.clearAllEventListeners=hi.off,hi.addOneTimeEventListener=hi.once,hi.fireEvent=hi.fire,hi.hasEventListeners=hi.listens;var ui=v.extend(hi),li=Math.trunc||function(t){return t>0?Math.floor(t):Math.ceil(t)};x.prototype={clone:function(){return new x(this.x,this.y)},add:function(t){return this.clone()._add(w(t))},_add:function(t){return this.x+=t.x,this.y+=t.y,this},subtract:function(t){return this.clone()._subtract(w(t))},_subtract:function(t){return this.x-=t.x,this.y-=t.y,this},divideBy:function(t){return this.clone()._divideBy(t)},_divideBy:function(t){return this.x/=t,this.y/=t,this},multiplyBy:function(t){return this.clone()._multiplyBy(t)},_multiplyBy:function(t){return this.x*=t,this.y*=t,this},scaleBy:function(t){return new x(this.x*t.x,this.y*t.y)},unscaleBy:function(t){return new x(this.x/t.x,this.y/t.y)},round:function(){return this.clone()._round()},_round:function(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this},floor:function(){return this.clone()._floor()},_floor:function(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this},ceil:function(){return this.clone()._ceil()},_ceil:function(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this},trunc:function(){return this.clone()._trunc()},_trunc:function(){return this.x=li(this.x),this.y=li(this.y),this},distanceTo:function(t){var i=(t=w(t)).x-this.x,e=t.y-this.y;return Math.sqrt(i*i+e*e)},equals:function(t){return(t=w(t)).x===this.x&&t.y===this.y},contains:function(t){return t=w(t),Math.abs(t.x)<=Math.abs(this.x)&&Math.abs(t.y)<=Math.abs(this.y)},toString:function(){return"Point("+a(this.x)+", "+a(this.y)+")"}},P.prototype={extend:function(t){return t=w(t),this.min||this.max?(this.min.x=Math.min(t.x,this.min.x),this.max.x=Math.max(t.x,this.max.x),this.min.y=Math.min(t.y,this.min.y),this.max.y=Math.max(t.y,this.max.y)):(this.min=t.clone(),this.max=t.clone()),this},getCenter:function(t){return new x((this.min.x+this.max.x)/2,(this.min.y+this.max.y)/2,t)},getBottomLeft:function(){return new x(this.min.x,this.max.y)},getTopRight:function(){return new x(this.max.x,this.min.y)},getTopLeft:function(){return this.min},getBottomRight:function(){return this.max},getSize:function(){return this.max.subtract(this.min)},contains:function(t){var i,e;return(t="number"==typeof t[0]||t instanceof x?w(t):b(t))instanceof P?(i=t.min,e=t.max):i=e=t,i.x>=this.min.x&&e.x<=this.max.x&&i.y>=this.min.y&&e.y<=this.max.y},intersects:function(t){t=b(t);var i=this.min,e=this.max,n=t.min,o=t.max,s=o.x>=i.x&&n.x<=e.x,r=o.y>=i.y&&n.y<=e.y;return s&&r},overlaps:function(t){t=b(t);var i=this.min,e=this.max,n=t.min,o=t.max,s=o.x>i.x&&n.x<e.x,r=o.y>i.y&&n.y<e.y;return s&&r},isValid:function(){return!(!this.min||!this.max)}},T.prototype={extend:function(t){var i,e,n=this._southWest,o=this._northEast;if(t instanceof M)i=t,e=t;else{if(!(t instanceof T))return t?this.extend(C(t)||z(t)):this;if(i=t._southWest,e=t._northEast,!i||!e)return this}return n||o?(n.lat=Math.min(i.lat,n.lat),n.lng=Math.min(i.lng,n.lng),o.lat=Math.max(e.lat,o.lat),o.lng=Math.max(e.lng,o.lng)):(this._southWest=new M(i.lat,i.lng),this._northEast=new M(e.lat,e.lng)),this},pad:function(t){var i=this._southWest,e=this._northEast,n=Math.abs(i.lat-e.lat)*t,o=Math.abs(i.lng-e.lng)*t;return new T(new M(i.lat-n,i.lng-o),new M(e.lat+n,e.lng+o))},getCenter:function(){return new M((this._southWest.lat+this._northEast.lat)/2,(this._southWest.lng+this._northEast.lng)/2)},getSouthWest:function(){return this._southWest},getNorthEast:function(){return this._northEast},getNorthWest:function(){return new M(this.getNorth(),this.getWest())},getSouthEast:function(){return new M(this.getSouth(),this.getEast())},getWest:function(){return this._southWest.lng},getSouth:function(){return this._southWest.lat},getEast:function(){return this._northEast.lng},getNorth:function(){return this._northEast.lat},contains:function(t){t="number"==typeof t[0]||t instanceof M||"lat"in t?C(t):z(t);var i,e,n=this._southWest,o=this._northEast;return t instanceof T?(i=t.getSouthWest(),e=t.getNorthEast()):i=e=t,i.lat>=n.lat&&e.lat<=o.lat&&i.lng>=n.lng&&e.lng<=o.lng},intersects:function(t){t=z(t);var i=this._southWest,e=this._northEast,n=t.getSouthWest(),o=t.getNorthEast(),s=o.lat>=i.lat&&n.lat<=e.lat,r=o.lng>=i.lng&&n.lng<=e.lng;return s&&r},overlaps:function(t){t=z(t);var i=this._southWest,e=this._northEast,n=t.getSouthWest(),o=t.getNorthEast(),s=o.lat>i.lat&&n.lat<e.lat,r=o.lng>i.lng&&n.lng<e.lng;return s&&r},toBBoxString:function(){return[this.getWest(),this.getSouth(),this.getEast(),this.getNorth()].join(",")},equals:function(t,i){return!!t&&(t=z(t),this._southWest.equals(t.getSouthWest(),i)&&this._northEast.equals(t.getNorthEast(),i))},isValid:function(){return!(!this._southWest||!this._northEast)}},M.prototype={equals:function(t,i){return!!t&&(t=C(t),Math.max(Math.abs(this.lat-t.lat),Math.abs(this.lng-t.lng))<=(void 0===i?1e-9:i))},toString:function(t){return"LatLng("+a(this.lat,t)+", "+a(this.lng,t)+")"},distanceTo:function(t){return _i.distance(this,C(t))},wrap:function(){return _i.wrapLatLng(this)},toBounds:function(t){var i=180*t/40075017,e=i/Math.cos(Math.PI/180*this.lat);return z([this.lat-i,this.lng-e],[this.lat+i,this.lng+e])},clone:function(){return new M(this.lat,this.lng,this.alt)}};var ci={latLngToPoint:function(t,i){var e=this.projection.project(t),n=this.scale(i);return this.transformation._transform(e,n)},pointToLatLng:function(t,i){var e=this.scale(i),n=this.transformation.untransform(t,e);return this.projection.unproject(n)},project:function(t){return this.projection.project(t)},unproject:function(t){return this.projection.unproject(t)},scale:function(t){return 256*Math.pow(2,t)},zoom:function(t){return Math.log(t/256)/Math.LN2},getProjectedBounds:function(t){if(this.infinite)return null;var i=this.projection.bounds,e=this.scale(t);return new P(this.transformation.transform(i.min,e),this.transformation.transform(i.max,e))},infinite:!1,wrapLatLng:function(t){var i=this.wrapLng?s(t.lng,this.wrapLng,!0):t.lng;return new M(this.wrapLat?s(t.lat,this.wrapLat,!0):t.lat,i,t.alt)},wrapLatLngBounds:function(t){var i=t.getCenter(),e=this.wrapLatLng(i),n=i.lat-e.lat,o=i.lng-e.lng;if(0===n&&0===o)return t;var s=t.getSouthWest(),r=t.getNorthEast();return new T(new M(s.lat-n,s.lng-o),new M(r.lat-n,r.lng-o))}},_i=i({},ci,{wrapLng:[-180,180],R:6371e3,distance:function(t,i){var e=Math.PI/180,n=t.lat*e,o=i.lat*e,s=Math.sin((i.lat-t.lat)*e/2),r=Math.sin((i.lng-t.lng)*e/2),a=s*s+Math.cos(n)*Math.cos(o)*r*r,h=2*Math.atan2(Math.sqrt(a),Math.sqrt(1-a));return this.R*h}}),di={R:6378137,MAX_LATITUDE:85.0511287798,project:function(t){var i=Math.PI/180,e=this.MAX_LATITUDE,n=Math.max(Math.min(e,t.lat),-e),o=Math.sin(n*i);return new x(this.R*t.lng*i,this.R*Math.log((1+o)/(1-o))/2)},unproject:function(t){var i=180/Math.PI;return new M((2*Math.atan(Math.exp(t.y/this.R))-Math.PI/2)*i,t.x*i/this.R)},bounds:function(){var t=6378137*Math.PI;return new P([-t,-t],[t,t])}()};Z.prototype={transform:function(t,i){return this._transform(t.clone(),i)},_transform:function(t,i){return i=i||1,t.x=i*(this._a*t.x+this._b),t.y=i*(this._c*t.y+this._d),t},untransform:function(t,i){return i=i||1,new x((t.x/i-this._b)/this._a,(t.y/i-this._d)/this._c)}};var pi,mi,fi,gi,vi=i({},_i,{code:"EPSG:3857",projection:di,transformation:function(){var t=.5/(Math.PI*di.R);return S(t,.5,-t,.5)}()}),yi=i({},vi,{code:"EPSG:900913"}),xi=document.documentElement.style,wi="ActiveXObject"in window,Li=wi&&!document.addEventListener,Pi="msLaunchUri"in navigator&&!("documentMode"in document),bi=A("webkit"),Ti=A("android"),zi=A("android 2")||A("android 3"),Mi=parseInt(/WebKit\/([0-9]+)|$/.exec(navigator.userAgent)[1],10),Ci=Ti&&A("Google")&&Mi<537&&!("AudioNode"in window),Zi=!!window.opera,Si=A("chrome"),Ei=A("gecko")&&!bi&&!Zi&&!wi,ki=!Si&&A("safari"),Ai=A("phantom"),Ii="OTransition"in xi,Bi=0===navigator.platform.indexOf("Win"),Oi=wi&&"transition"in xi,Ri="WebKitCSSMatrix"in window&&"m11"in new window.WebKitCSSMatrix&&!zi,Di="MozPerspective"in xi,Ni=!window.L_DISABLE_3D&&(Oi||Ri||Di)&&!Ii&&!Ai,ji="undefined"!=typeof orientation||A("mobile"),Wi=ji&&bi,Hi=ji&&Ri,Fi=!window.PointerEvent&&window.MSPointerEvent,Ui=!(!window.PointerEvent&&!Fi),Vi=!window.L_NO_TOUCH&&(Ui||"ontouchstart"in window||window.DocumentTouch&&document instanceof window.DocumentTouch),qi=ji&&Zi,Gi=ji&&Ei,Ki=(window.devicePixelRatio||window.screen.deviceXDPI/window.screen.logicalXDPI)>1,Yi=!!document.createElement("canvas").getContext,Xi=!(!document.createElementNS||!E("svg").createSVGRect),Ji=!Xi&&function(){try{var t=document.createElement("div");t.innerHTML='<v:shape adj="1"/>';var i=t.firstChild;return i.style.behavior="url(#default#VML)",i&&"object"==typeof i.adj}catch(t){return!1}}(),$i=(Object.freeze||Object)({ie:wi,ielt9:Li,edge:Pi,webkit:bi,android:Ti,android23:zi,androidStock:Ci,opera:Zi,chrome:Si,gecko:Ei,safari:ki,phantom:Ai,opera12:Ii,win:Bi,ie3d:Oi,webkit3d:Ri,gecko3d:Di,any3d:Ni,mobile:ji,mobileWebkit:Wi,mobileWebkit3d:Hi,msPointer:Fi,pointer:Ui,touch:Vi,mobileOpera:qi,mobileGecko:Gi,retina:Ki,canvas:Yi,svg:Xi,vml:Ji}),Qi=Fi?"MSPointerDown":"pointerdown",te=Fi?"MSPointerMove":"pointermove",ie=Fi?"MSPointerUp":"pointerup",ee=Fi?"MSPointerCancel":"pointercancel",ne=["INPUT","SELECT","OPTION"],oe={},se=!1,re=0,ae=Fi?"MSPointerDown":Ui?"pointerdown":"touchstart",he=Fi?"MSPointerUp":Ui?"pointerup":"touchend",ue="_leaflet_",le="_leaflet_events",ce=Bi&&Si?2*window.devicePixelRatio:Ei?window.devicePixelRatio:1,_e={},de=(Object.freeze||Object)({on:V,off:q,stopPropagation:Y,disableScrollPropagation:X,disableClickPropagation:J,preventDefault:$,stop:Q,getMousePosition:tt,getWheelDelta:it,fakeStop:et,skipped:nt,isExternalTarget:ot,addListener:V,removeListener:q}),pe=xt(["transform","WebkitTransform","OTransform","MozTransform","msTransform"]),me=xt(["webkitTransition","transition","OTransition","MozTransition","msTransition"]),fe="webkitTransition"===me||"OTransition"===me?me+"End":"transitionend";if("onselectstart"in document)mi=function(){V(window,"selectstart",$)},fi=function(){q(window,"selectstart",$)};else{var ge=xt(["userSelect","WebkitUserSelect","OUserSelect","MozUserSelect","msUserSelect"]);mi=function(){if(ge){var t=document.documentElement.style;gi=t[ge],t[ge]="none"}},fi=function(){ge&&(document.documentElement.style[ge]=gi,gi=void 0)}}var ve,ye,xe=(Object.freeze||Object)({TRANSFORM:pe,TRANSITION:me,TRANSITION_END:fe,get:rt,getStyle:at,create:ht,remove:ut,empty:lt,toFront:ct,toBack:_t,hasClass:dt,addClass:pt,removeClass:mt,setClass:ft,getClass:gt,setOpacity:vt,testProp:xt,setTransform:wt,setPosition:Lt,getPosition:Pt,disableTextSelection:mi,enableTextSelection:fi,disableImageDrag:bt,enableImageDrag:Tt,preventOutline:zt,restoreOutline:Mt}),we=ui.extend({run:function(t,i,e,n){this.stop(),this._el=t,this._inProgress=!0,this._duration=e||.25,this._easeOutPower=1/Math.max(n||.5,.2),this._startPos=Pt(t),this._offset=i.subtract(this._startPos),this._startTime=+new Date,this.fire("start"),this._animate()},stop:function(){this._inProgress&&(this._step(!0),this._complete())},_animate:function(){this._animId=f(this._animate,this),this._step()},_step:function(t){var i=+new Date-this._startTime,e=1e3*this._duration;i<e?this._runFrame(this._easeOut(i/e),t):(this._runFrame(1),this._complete())},_runFrame:function(t,i){var e=this._startPos.add(this._offset.multiplyBy(t));i&&e._round(),Lt(this._el,e),this.fire("step")},_complete:function(){g(this._animId),this._inProgress=!1,this.fire("end")},_easeOut:function(t){return 1-Math.pow(1-t,this._easeOutPower)}}),Le=ui.extend({options:{crs:vi,center:void 0,zoom:void 0,minZoom:void 0,maxZoom:void 0,layers:[],maxBounds:void 0,renderer:void 0,zoomAnimation:!0,zoomAnimationThreshold:4,fadeAnimation:!0,markerZoomAnimation:!0,transform3DLimit:8388608,zoomSnap:1,zoomDelta:1,trackResize:!0},initialize:function(t,i){i=l(this,i),this._initContainer(t),this._initLayout(),this._onResize=e(this._onResize,this),this._initEvents(),i.maxBounds&&this.setMaxBounds(i.maxBounds),void 0!==i.zoom&&(this._zoom=this._limitZoom(i.zoom)),i.center&&void 0!==i.zoom&&this.setView(C(i.center),i.zoom,{reset:!0}),this._handlers=[],this._layers={},this._zoomBoundLayers={},this._sizeChanged=!0,this.callInitHooks(),this._zoomAnimated=me&&Ni&&!qi&&this.options.zoomAnimation,this._zoomAnimated&&(this._createAnimProxy(),V(this._proxy,fe,this._catchTransitionEnd,this)),this._addLayers(this.options.layers)},setView:function(t,e,n){return e=void 0===e?this._zoom:this._limitZoom(e),t=this._limitCenter(C(t),e,this.options.maxBounds),n=n||{},this._stop(),this._loaded&&!n.reset&&!0!==n&&(void 0!==n.animate&&(n.zoom=i({animate:n.animate},n.zoom),n.pan=i({animate:n.animate,duration:n.duration},n.pan)),this._zoom!==e?this._tryAnimatedZoom&&this._tryAnimatedZoom(t,e,n.zoom):this._tryAnimatedPan(t,n.pan))?(clearTimeout(this._sizeTimer),this):(this._resetView(t,e),this)},setZoom:function(t,i){return this._loaded?this.setView(this.getCenter(),t,{zoom:i}):(this._zoom=t,this)},zoomIn:function(t,i){return t=t||(Ni?this.options.zoomDelta:1),this.setZoom(this._zoom+t,i)},zoomOut:function(t,i){return t=t||(Ni?this.options.zoomDelta:1),this.setZoom(this._zoom-t,i)},setZoomAround:function(t,i,e){var n=this.getZoomScale(i),o=this.getSize().divideBy(2),s=(t instanceof x?t:this.latLngToContainerPoint(t)).subtract(o).multiplyBy(1-1/n),r=this.containerPointToLatLng(o.add(s));return this.setView(r,i,{zoom:e})},_getBoundsCenterZoom:function(t,i){i=i||{},t=t.getBounds?t.getBounds():z(t);var e=w(i.paddingTopLeft||i.padding||[0,0]),n=w(i.paddingBottomRight||i.padding||[0,0]),o=this.getBoundsZoom(t,!1,e.add(n));if((o="number"==typeof i.maxZoom?Math.min(i.maxZoom,o):o)===1/0)return{center:t.getCenter(),zoom:o};var s=n.subtract(e).divideBy(2),r=this.project(t.getSouthWest(),o),a=this.project(t.getNorthEast(),o);return{center:this.unproject(r.add(a).divideBy(2).add(s),o),zoom:o}},fitBounds:function(t,i){if(!(t=z(t)).isValid())throw new Error("Bounds are not valid.");var e=this._getBoundsCenterZoom(t,i);return this.setView(e.center,e.zoom,i)},fitWorld:function(t){return this.fitBounds([[-90,-180],[90,180]],t)},panTo:function(t,i){return this.setView(t,this._zoom,{pan:i})},panBy:function(t,i){if(t=w(t).round(),i=i||{},!t.x&&!t.y)return this.fire("moveend");if(!0!==i.animate&&!this.getSize().contains(t))return this._resetView(this.unproject(this.project(this.getCenter()).add(t)),this.getZoom()),this;if(this._panAnim||(this._panAnim=new we,this._panAnim.on({step:this._onPanTransitionStep,end:this._onPanTransitionEnd},this)),i.noMoveStart||this.fire("movestart"),!1!==i.animate){pt(this._mapPane,"leaflet-pan-anim");var e=this._getMapPanePos().subtract(t).round();this._panAnim.run(this._mapPane,e,i.duration||.25,i.easeLinearity)}else this._rawPanBy(t),this.fire("move").fire("moveend");return this},flyTo:function(t,i,e){function n(t){var i=(g*g-m*m+(t?-1:1)*x*x*v*v)/(2*(t?g:m)*x*v),e=Math.sqrt(i*i+1)-i;return e<1e-9?-18:Math.log(e)}function o(t){return(Math.exp(t)-Math.exp(-t))/2}function s(t){return(Math.exp(t)+Math.exp(-t))/2}function r(t){return o(t)/s(t)}function a(t){return m*(s(w)/s(w+y*t))}function h(t){return m*(s(w)*r(w+y*t)-o(w))/x}function u(t){return 1-Math.pow(1-t,1.5)}function l(){var e=(Date.now()-L)/b,n=u(e)*P;e<=1?(this._flyToFrame=f(l,this),this._move(this.unproject(c.add(_.subtract(c).multiplyBy(h(n)/v)),p),this.getScaleZoom(m/a(n),p),{flyTo:!0})):this._move(t,i)._moveEnd(!0)}if(!1===(e=e||{}).animate||!Ni)return this.setView(t,i,e);this._stop();var c=this.project(this.getCenter()),_=this.project(t),d=this.getSize(),p=this._zoom;t=C(t),i=void 0===i?p:i;var m=Math.max(d.x,d.y),g=m*this.getZoomScale(p,i),v=_.distanceTo(c)||1,y=1.42,x=y*y,w=n(0),L=Date.now(),P=(n(1)-w)/y,b=e.duration?1e3*e.duration:1e3*P*.8;return this._moveStart(!0,e.noMoveStart),l.call(this),this},flyToBounds:function(t,i){var e=this._getBoundsCenterZoom(t,i);return this.flyTo(e.center,e.zoom,i)},setMaxBounds:function(t){return(t=z(t)).isValid()?(this.options.maxBounds&&this.off("moveend",this._panInsideMaxBounds),this.options.maxBounds=t,this._loaded&&this._panInsideMaxBounds(),this.on("moveend",this._panInsideMaxBounds)):(this.options.maxBounds=null,this.off("moveend",this._panInsideMaxBounds))},setMinZoom:function(t){var i=this.options.minZoom;return this.options.minZoom=t,this._loaded&&i!==t&&(this.fire("zoomlevelschange"),this.getZoom()<this.options.minZoom)?this.setZoom(t):this},setMaxZoom:function(t){var i=this.options.maxZoom;return this.options.maxZoom=t,this._loaded&&i!==t&&(this.fire("zoomlevelschange"),this.getZoom()>this.options.maxZoom)?this.setZoom(t):this},panInsideBounds:function(t,i){this._enforcingBounds=!0;var e=this.getCenter(),n=this._limitCenter(e,this._zoom,z(t));return e.equals(n)||this.panTo(n,i),this._enforcingBounds=!1,this},invalidateSize:function(t){if(!this._loaded)return this;t=i({animate:!1,pan:!0},!0===t?{animate:!0}:t);var n=this.getSize();this._sizeChanged=!0,this._lastCenter=null;var o=this.getSize(),s=n.divideBy(2).round(),r=o.divideBy(2).round(),a=s.subtract(r);return a.x||a.y?(t.animate&&t.pan?this.panBy(a):(t.pan&&this._rawPanBy(a),this.fire("move"),t.debounceMoveend?(clearTimeout(this._sizeTimer),this._sizeTimer=setTimeout(e(this.fire,this,"moveend"),200)):this.fire("moveend")),this.fire("resize",{oldSize:n,newSize:o})):this},stop:function(){return this.setZoom(this._limitZoom(this._zoom)),this.options.zoomSnap||this.fire("viewreset"),this._stop()},locate:function(t){if(t=this._locateOptions=i({timeout:1e4,watch:!1},t),!("geolocation"in navigator))return this._handleGeolocationError({code:0,message:"Geolocation not supported."}),this;var n=e(this._handleGeolocationResponse,this),o=e(this._handleGeolocationError,this);return t.watch?this._locationWatchId=navigator.geolocation.watchPosition(n,o,t):navigator.geolocation.getCurrentPosition(n,o,t),this},stopLocate:function(){return navigator.geolocation&&navigator.geolocation.clearWatch&&navigator.geolocation.clearWatch(this._locationWatchId),this._locateOptions&&(this._locateOptions.setView=!1),this},_handleGeolocationError:function(t){var i=t.code,e=t.message||(1===i?"permission denied":2===i?"position unavailable":"timeout");this._locateOptions.setView&&!this._loaded&&this.fitWorld(),this.fire("locationerror",{code:i,message:"Geolocation error: "+e+"."})},_handleGeolocationResponse:function(t){var i=new M(t.coords.latitude,t.coords.longitude),e=i.toBounds(t.coords.accuracy),n=this._locateOptions;if(n.setView){var o=this.getBoundsZoom(e);this.setView(i,n.maxZoom?Math.min(o,n.maxZoom):o)}var s={latlng:i,bounds:e,timestamp:t.timestamp};for(var r in t.coords)"number"==typeof t.coords[r]&&(s[r]=t.coords[r]);this.fire("locationfound",s)},addHandler:function(t,i){if(!i)return this;var e=this[t]=new i(this);return this._handlers.push(e),this.options[t]&&e.enable(),this},remove:function(){if(this._initEvents(!0),this._containerId!==this._container._leaflet_id)throw new Error("Map container is being reused by another instance");try{delete this._container._leaflet_id,delete this._containerId}catch(t){this._container._leaflet_id=void 0,this._containerId=void 0}void 0!==this._locationWatchId&&this.stopLocate(),this._stop(),ut(this._mapPane),this._clearControlPos&&this._clearControlPos(),this._clearHandlers(),this._loaded&&this.fire("unload");var t;for(t in this._layers)this._layers[t].remove();for(t in this._panes)ut(this._panes[t]);return this._layers=[],this._panes=[],delete this._mapPane,delete this._renderer,this},createPane:function(t,i){var e=ht("div","leaflet-pane"+(t?" leaflet-"+t.replace("Pane","")+"-pane":""),i||this._mapPane);return t&&(this._panes[t]=e),e},getCenter:function(){return this._checkIfLoaded(),this._lastCenter&&!this._moved()?this._lastCenter:this.layerPointToLatLng(this._getCenterLayerPoint())},getZoom:function(){return this._zoom},getBounds:function(){var t=this.getPixelBounds();return new T(this.unproject(t.getBottomLeft()),this.unproject(t.getTopRight()))},getMinZoom:function(){return void 0===this.options.minZoom?this._layersMinZoom||0:this.options.minZoom},getMaxZoom:function(){return void 0===this.options.maxZoom?void 0===this._layersMaxZoom?1/0:this._layersMaxZoom:this.options.maxZoom},getBoundsZoom:function(t,i,e){t=z(t),e=w(e||[0,0]);var n=this.getZoom()||0,o=this.getMinZoom(),s=this.getMaxZoom(),r=t.getNorthWest(),a=t.getSouthEast(),h=this.getSize().subtract(e),u=b(this.project(a,n),this.project(r,n)).getSize(),l=Ni?this.options.zoomSnap:1,c=h.x/u.x,_=h.y/u.y,d=i?Math.max(c,_):Math.min(c,_);return n=this.getScaleZoom(d,n),l&&(n=Math.round(n/(l/100))*(l/100),n=i?Math.ceil(n/l)*l:Math.floor(n/l)*l),Math.max(o,Math.min(s,n))},getSize:function(){return this._size&&!this._sizeChanged||(this._size=new x(this._container.clientWidth||0,this._container.clientHeight||0),this._sizeChanged=!1),this._size.clone()},getPixelBounds:function(t,i){var e=this._getTopLeftPoint(t,i);return new P(e,e.add(this.getSize()))},getPixelOrigin:function(){return this._checkIfLoaded(),this._pixelOrigin},getPixelWorldBounds:function(t){return this.options.crs.getProjectedBounds(void 0===t?this.getZoom():t)},getPane:function(t){return"string"==typeof t?this._panes[t]:t},getPanes:function(){return this._panes},getContainer:function(){return this._container},getZoomScale:function(t,i){var e=this.options.crs;return i=void 0===i?this._zoom:i,e.scale(t)/e.scale(i)},getScaleZoom:function(t,i){var e=this.options.crs;i=void 0===i?this._zoom:i;var n=e.zoom(t*e.scale(i));return isNaN(n)?1/0:n},project:function(t,i){return i=void 0===i?this._zoom:i,this.options.crs.latLngToPoint(C(t),i)},unproject:function(t,i){return i=void 0===i?this._zoom:i,this.options.crs.pointToLatLng(w(t),i)},layerPointToLatLng:function(t){var i=w(t).add(this.getPixelOrigin());return this.unproject(i)},latLngToLayerPoint:function(t){return this.project(C(t))._round()._subtract(this.getPixelOrigin())},wrapLatLng:function(t){return this.options.crs.wrapLatLng(C(t))},wrapLatLngBounds:function(t){return this.options.crs.wrapLatLngBounds(z(t))},distance:function(t,i){return this.options.crs.distance(C(t),C(i))},containerPointToLayerPoint:function(t){return w(t).subtract(this._getMapPanePos())},layerPointToContainerPoint:function(t){return w(t).add(this._getMapPanePos())},containerPointToLatLng:function(t){var i=this.containerPointToLayerPoint(w(t));return this.layerPointToLatLng(i)},latLngToContainerPoint:function(t){return this.layerPointToContainerPoint(this.latLngToLayerPoint(C(t)))},mouseEventToContainerPoint:function(t){return tt(t,this._container)},mouseEventToLayerPoint:function(t){return this.containerPointToLayerPoint(this.mouseEventToContainerPoint(t))},mouseEventToLatLng:function(t){return this.layerPointToLatLng(this.mouseEventToLayerPoint(t))},_initContainer:function(t){var i=this._container=rt(t);if(!i)throw new Error("Map container not found.");if(i._leaflet_id)throw new Error("Map container is already initialized.");V(i,"scroll",this._onScroll,this),this._containerId=n(i)},_initLayout:function(){var t=this._container;this._fadeAnimated=this.options.fadeAnimation&&Ni,pt(t,"leaflet-container"+(Vi?" leaflet-touch":"")+(Ki?" leaflet-retina":"")+(Li?" leaflet-oldie":"")+(ki?" leaflet-safari":"")+(this._fadeAnimated?" leaflet-fade-anim":""));var i=at(t,"position");"absolute"!==i&&"relative"!==i&&"fixed"!==i&&(t.style.position="relative"),this._initPanes(),this._initControlPos&&this._initControlPos()},_initPanes:function(){var t=this._panes={};this._paneRenderers={},this._mapPane=this.createPane("mapPane",this._container),Lt(this._mapPane,new x(0,0)),this.createPane("tilePane"),this.createPane("shadowPane"),this.createPane("overlayPane"),this.createPane("markerPane"),this.createPane("tooltipPane"),this.createPane("popupPane"),this.options.markerZoomAnimation||(pt(t.markerPane,"leaflet-zoom-hide"),pt(t.shadowPane,"leaflet-zoom-hide"))},_resetView:function(t,i){Lt(this._mapPane,new x(0,0));var e=!this._loaded;this._loaded=!0,i=this._limitZoom(i),this.fire("viewprereset");var n=this._zoom!==i;this._moveStart(n,!1)._move(t,i)._moveEnd(n),this.fire("viewreset"),e&&this.fire("load")},_moveStart:function(t,i){return t&&this.fire("zoomstart"),i||this.fire("movestart"),this},_move:function(t,i,e){void 0===i&&(i=this._zoom);var n=this._zoom!==i;return this._zoom=i,this._lastCenter=t,this._pixelOrigin=this._getNewPixelOrigin(t),(n||e&&e.pinch)&&this.fire("zoom",e),this.fire("move",e)},_moveEnd:function(t){return t&&this.fire("zoomend"),this.fire("moveend")},_stop:function(){return g(this._flyToFrame),this._panAnim&&this._panAnim.stop(),this},_rawPanBy:function(t){Lt(this._mapPane,this._getMapPanePos().subtract(t))},_getZoomSpan:function(){return this.getMaxZoom()-this.getMinZoom()},_panInsideMaxBounds:function(){this._enforcingBounds||this.panInsideBounds(this.options.maxBounds)},_checkIfLoaded:function(){if(!this._loaded)throw new Error("Set map center and zoom first.")},_initEvents:function(t){this._targets={},this._targets[n(this._container)]=this;var i=t?q:V;i(this._container,"click dblclick mousedown mouseup mouseover mouseout mousemove contextmenu keypress",this._handleDOMEvent,this),this.options.trackResize&&i(window,"resize",this._onResize,this),Ni&&this.options.transform3DLimit&&(t?this.off:this.on).call(this,"moveend",this._onMoveEnd)},_onResize:function(){g(this._resizeRequest),this._resizeRequest=f(function(){this.invalidateSize({debounceMoveend:!0})},this)},_onScroll:function(){this._container.scrollTop=0,this._container.scrollLeft=0},_onMoveEnd:function(){var t=this._getMapPanePos();Math.max(Math.abs(t.x),Math.abs(t.y))>=this.options.transform3DLimit&&this._resetView(this.getCenter(),this.getZoom())},_findEventTargets:function(t,i){for(var e,o=[],s="mouseout"===i||"mouseover"===i,r=t.target||t.srcElement,a=!1;r;){if((e=this._targets[n(r)])&&("click"===i||"preclick"===i)&&!t._simulated&&this._draggableMoved(e)){a=!0;break}if(e&&e.listens(i,!0)){if(s&&!ot(r,t))break;if(o.push(e),s)break}if(r===this._container)break;r=r.parentNode}return o.length||a||s||!ot(r,t)||(o=[this]),o},_handleDOMEvent:function(t){if(this._loaded&&!nt(t)){var i=t.type;"mousedown"!==i&&"keypress"!==i||zt(t.target||t.srcElement),this._fireDOMEvent(t,i)}},_mouseEvents:["click","dblclick","mouseover","mouseout","contextmenu"],_fireDOMEvent:function(t,e,n){if("click"===t.type){var o=i({},t);o.type="preclick",this._fireDOMEvent(o,o.type,n)}if(!t._stopped&&(n=(n||[]).concat(this._findEventTargets(t,e))).length){var s=n[0];"contextmenu"===e&&s.listens(e,!0)&&$(t);var r={originalEvent:t};if("keypress"!==t.type){var a=s.getLatLng&&(!s._radius||s._radius<=10);r.containerPoint=a?this.latLngToContainerPoint(s.getLatLng()):this.mouseEventToContainerPoint(t),r.layerPoint=this.containerPointToLayerPoint(r.containerPoint),r.latlng=a?s.getLatLng():this.layerPointToLatLng(r.layerPoint)}for(var h=0;h<n.length;h++)if(n[h].fire(e,r,!0),r.originalEvent._stopped||!1===n[h].options.bubblingMouseEvents&&-1!==d(this._mouseEvents,e))return}},_draggableMoved:function(t){return(t=t.dragging&&t.dragging.enabled()?t:this).dragging&&t.dragging.moved()||this.boxZoom&&this.boxZoom.moved()},_clearHandlers:function(){for(var t=0,i=this._handlers.length;t<i;t++)this._handlers[t].disable()},whenReady:function(t,i){return this._loaded?t.call(i||this,{target:this}):this.on("load",t,i),this},_getMapPanePos:function(){return Pt(this._mapPane)||new x(0,0)},_moved:function(){var t=this._getMapPanePos();return t&&!t.equals([0,0])},_getTopLeftPoint:function(t,i){return(t&&void 0!==i?this._getNewPixelOrigin(t,i):this.getPixelOrigin()).subtract(this._getMapPanePos())},_getNewPixelOrigin:function(t,i){var e=this.getSize()._divideBy(2);return this.project(t,i)._subtract(e)._add(this._getMapPanePos())._round()},_latLngToNewLayerPoint:function(t,i,e){var n=this._getNewPixelOrigin(e,i);return this.project(t,i)._subtract(n)},_latLngBoundsToNewLayerBounds:function(t,i,e){var n=this._getNewPixelOrigin(e,i);return b([this.project(t.getSouthWest(),i)._subtract(n),this.project(t.getNorthWest(),i)._subtract(n),this.project(t.getSouthEast(),i)._subtract(n),this.project(t.getNorthEast(),i)._subtract(n)])},_getCenterLayerPoint:function(){return this.containerPointToLayerPoint(this.getSize()._divideBy(2))},_getCenterOffset:function(t){return this.latLngToLayerPoint(t).subtract(this._getCenterLayerPoint())},_limitCenter:function(t,i,e){if(!e)return t;var n=this.project(t,i),o=this.getSize().divideBy(2),s=new P(n.subtract(o),n.add(o)),r=this._getBoundsOffset(s,e,i);return r.round().equals([0,0])?t:this.unproject(n.add(r),i)},_limitOffset:function(t,i){if(!i)return t;var e=this.getPixelBounds(),n=new P(e.min.add(t),e.max.add(t));return t.add(this._getBoundsOffset(n,i))},_getBoundsOffset:function(t,i,e){var n=b(this.project(i.getNorthEast(),e),this.project(i.getSouthWest(),e)),o=n.min.subtract(t.min),s=n.max.subtract(t.max);return new x(this._rebound(o.x,-s.x),this._rebound(o.y,-s.y))},_rebound:function(t,i){return t+i>0?Math.round(t-i)/2:Math.max(0,Math.ceil(t))-Math.max(0,Math.floor(i))},_limitZoom:function(t){var i=this.getMinZoom(),e=this.getMaxZoom(),n=Ni?this.options.zoomSnap:1;return n&&(t=Math.round(t/n)*n),Math.max(i,Math.min(e,t))},_onPanTransitionStep:function(){this.fire("move")},_onPanTransitionEnd:function(){mt(this._mapPane,"leaflet-pan-anim"),this.fire("moveend")},_tryAnimatedPan:function(t,i){var e=this._getCenterOffset(t)._trunc();return!(!0!==(i&&i.animate)&&!this.getSize().contains(e))&&(this.panBy(e,i),!0)},_createAnimProxy:function(){var t=this._proxy=ht("div","leaflet-proxy leaflet-zoom-animated");this._panes.mapPane.appendChild(t),this.on("zoomanim",function(t){var i=pe,e=this._proxy.style[i];wt(this._proxy,this.project(t.center,t.zoom),this.getZoomScale(t.zoom,1)),e===this._proxy.style[i]&&this._animatingZoom&&this._onZoomTransitionEnd()},this),this.on("load moveend",function(){var t=this.getCenter(),i=this.getZoom();wt(this._proxy,this.project(t,i),this.getZoomScale(i,1))},this),this._on("unload",this._destroyAnimProxy,this)},_destroyAnimProxy:function(){ut(this._proxy),delete this._proxy},_catchTransitionEnd:function(t){this._animatingZoom&&t.propertyName.indexOf("transform")>=0&&this._onZoomTransitionEnd()},_nothingToAnimate:function(){return!this._container.getElementsByClassName("leaflet-zoom-animated").length},_tryAnimatedZoom:function(t,i,e){if(this._animatingZoom)return!0;if(e=e||{},!this._zoomAnimated||!1===e.animate||this._nothingToAnimate()||Math.abs(i-this._zoom)>this.options.zoomAnimationThreshold)return!1;var n=this.getZoomScale(i),o=this._getCenterOffset(t)._divideBy(1-1/n);return!(!0!==e.animate&&!this.getSize().contains(o))&&(f(function(){this._moveStart(!0,!1)._animateZoom(t,i,!0)},this),!0)},_animateZoom:function(t,i,n,o){this._mapPane&&(n&&(this._animatingZoom=!0,this._animateToCenter=t,this._animateToZoom=i,pt(this._mapPane,"leaflet-zoom-anim")),this.fire("zoomanim",{center:t,zoom:i,noUpdate:o}),setTimeout(e(this._onZoomTransitionEnd,this),250))},_onZoomTransitionEnd:function(){this._animatingZoom&&(this._mapPane&&mt(this._mapPane,"leaflet-zoom-anim"),this._animatingZoom=!1,this._move(this._animateToCenter,this._animateToZoom),f(function(){this._moveEnd(!0)},this))}}),Pe=v.extend({options:{position:"topright"},initialize:function(t){l(this,t)},getPosition:function(){return this.options.position},setPosition:function(t){var i=this._map;return i&&i.removeControl(this),this.options.position=t,i&&i.addControl(this),this},getContainer:function(){return this._container},addTo:function(t){this.remove(),this._map=t;var i=this._container=this.onAdd(t),e=this.getPosition(),n=t._controlCorners[e];return pt(i,"leaflet-control"),-1!==e.indexOf("bottom")?n.insertBefore(i,n.firstChild):n.appendChild(i),this},remove:function(){return this._map?(ut(this._container),this.onRemove&&this.onRemove(this._map),this._map=null,this):this},_refocusOnMap:function(t){this._map&&t&&t.screenX>0&&t.screenY>0&&this._map.getContainer().focus()}}),be=function(t){return new Pe(t)};Le.include({addControl:function(t){return t.addTo(this),this},removeControl:function(t){return t.remove(),this},_initControlPos:function(){function t(t,o){var s=e+t+" "+e+o;i[t+o]=ht("div",s,n)}var i=this._controlCorners={},e="leaflet-",n=this._controlContainer=ht("div",e+"control-container",this._container);t("top","left"),t("top","right"),t("bottom","left"),t("bottom","right")},_clearControlPos:function(){for(var t in this._controlCorners)ut(this._controlCorners[t]);ut(this._controlContainer),delete this._controlCorners,delete this._controlContainer}});var Te=Pe.extend({options:{collapsed:!0,position:"topright",autoZIndex:!0,hideSingleBase:!1,sortLayers:!1,sortFunction:function(t,i,e,n){return e<n?-1:n<e?1:0}},initialize:function(t,i,e){l(this,e),this._layerControlInputs=[],this._layers=[],this._lastZIndex=0,this._handlingClick=!1;for(var n in t)this._addLayer(t[n],n);for(n in i)this._addLayer(i[n],n,!0)},onAdd:function(t){this._initLayout(),this._update(),this._map=t,t.on("zoomend",this._checkDisabledLayers,this);for(var i=0;i<this._layers.length;i++)this._layers[i].layer.on("add remove",this._onLayerChange,this);return this._container},addTo:function(t){return Pe.prototype.addTo.call(this,t),this._expandIfNotCollapsed()},onRemove:function(){this._map.off("zoomend",this._checkDisabledLayers,this);for(var t=0;t<this._layers.length;t++)this._layers[t].layer.off("add remove",this._onLayerChange,this)},addBaseLayer:function(t,i){return this._addLayer(t,i),this._map?this._update():this},addOverlay:function(t,i){return this._addLayer(t,i,!0),this._map?this._update():this},removeLayer:function(t){t.off("add remove",this._onLayerChange,this);var i=this._getLayer(n(t));return i&&this._layers.splice(this._layers.indexOf(i),1),this._map?this._update():this},expand:function(){pt(this._container,"leaflet-control-layers-expanded"),this._form.style.height=null;var t=this._map.getSize().y-(this._container.offsetTop+50);return t<this._form.clientHeight?(pt(this._form,"leaflet-control-layers-scrollbar"),this._form.style.height=t+"px"):mt(this._form,"leaflet-control-layers-scrollbar"),this._checkDisabledLayers(),this},collapse:function(){return mt(this._container,"leaflet-control-layers-expanded"),this},_initLayout:function(){var t="leaflet-control-layers",i=this._container=ht("div",t),e=this.options.collapsed;i.setAttribute("aria-haspopup",!0),J(i),X(i);var n=this._form=ht("form",t+"-list");e&&(this._map.on("click",this.collapse,this),Ti||V(i,{mouseenter:this.expand,mouseleave:this.collapse},this));var o=this._layersLink=ht("a",t+"-toggle",i);o.href="#",o.title="Layers",Vi?(V(o,"click",Q),V(o,"click",this.expand,this)):V(o,"focus",this.expand,this),e||this.expand(),this._baseLayersList=ht("div",t+"-base",n),this._separator=ht("div",t+"-separator",n),this._overlaysList=ht("div",t+"-overlays",n),i.appendChild(n)},_getLayer:function(t){for(var i=0;i<this._layers.length;i++)if(this._layers[i]&&n(this._layers[i].layer)===t)return this._layers[i]},_addLayer:function(t,i,n){this._map&&t.on("add remove",this._onLayerChange,this),this._layers.push({layer:t,name:i,overlay:n}),this.options.sortLayers&&this._layers.sort(e(function(t,i){return this.options.sortFunction(t.layer,i.layer,t.name,i.name)},this)),this.options.autoZIndex&&t.setZIndex&&(this._lastZIndex++,t.setZIndex(this._lastZIndex)),this._expandIfNotCollapsed()},_update:function(){if(!this._container)return this;lt(this._baseLayersList),lt(this._overlaysList),this._layerControlInputs=[];var t,i,e,n,o=0;for(e=0;e<this._layers.length;e++)n=this._layers[e],this._addItem(n),i=i||n.overlay,t=t||!n.overlay,o+=n.overlay?0:1;return this.options.hideSingleBase&&(t=t&&o>1,this._baseLayersList.style.display=t?"":"none"),this._separator.style.display=i&&t?"":"none",this},_onLayerChange:function(t){this._handlingClick||this._update();var i=this._getLayer(n(t.target)),e=i.overlay?"add"===t.type?"overlayadd":"overlayremove":"add"===t.type?"baselayerchange":null;e&&this._map.fire(e,i)},_createRadioElement:function(t,i){var e='<input type="radio" class="leaflet-control-layers-selector" name="'+t+'"'+(i?' checked="checked"':"")+"/>",n=document.createElement("div");return n.innerHTML=e,n.firstChild},_addItem:function(t){var i,e=document.createElement("label"),o=this._map.hasLayer(t.layer);t.overlay?((i=document.createElement("input")).type="checkbox",i.className="leaflet-control-layers-selector",i.defaultChecked=o):i=this._createRadioElement("leaflet-base-layers",o),this._layerControlInputs.push(i),i.layerId=n(t.layer),V(i,"click",this._onInputClick,this);var s=document.createElement("span");s.innerHTML=" "+t.name;var r=document.createElement("div");return e.appendChild(r),r.appendChild(i),r.appendChild(s),(t.overlay?this._overlaysList:this._baseLayersList).appendChild(e),this._checkDisabledLayers(),e},_onInputClick:function(){var t,i,e=this._layerControlInputs,n=[],o=[];this._handlingClick=!0;for(var s=e.length-1;s>=0;s--)t=e[s],i=this._getLayer(t.layerId).layer,t.checked?n.push(i):t.checked||o.push(i);for(s=0;s<o.length;s++)this._map.hasLayer(o[s])&&this._map.removeLayer(o[s]);for(s=0;s<n.length;s++)this._map.hasLayer(n[s])||this._map.addLayer(n[s]);this._handlingClick=!1,this._refocusOnMap()},_checkDisabledLayers:function(){for(var t,i,e=this._layerControlInputs,n=this._map.getZoom(),o=e.length-1;o>=0;o--)t=e[o],i=this._getLayer(t.layerId).layer,t.disabled=void 0!==i.options.minZoom&&n<i.options.minZoom||void 0!==i.options.maxZoom&&n>i.options.maxZoom},_expandIfNotCollapsed:function(){return this._map&&!this.options.collapsed&&this.expand(),this},_expand:function(){return this.expand()},_collapse:function(){return this.collapse()}}),ze=Pe.extend({options:{position:"topleft",zoomInText:"+",zoomInTitle:"Zoom in",zoomOutText:"−",zoomOutTitle:"Zoom out"},onAdd:function(t){var i="leaflet-control-zoom",e=ht("div",i+" leaflet-bar"),n=this.options;return this._zoomInButton=this._createButton(n.zoomInText,n.zoomInTitle,i+"-in",e,this._zoomIn),this._zoomOutButton=this._createButton(n.zoomOutText,n.zoomOutTitle,i+"-out",e,this._zoomOut),this._updateDisabled(),t.on("zoomend zoomlevelschange",this._updateDisabled,this),e},onRemove:function(t){t.off("zoomend zoomlevelschange",this._updateDisabled,this)},disable:function(){return this._disabled=!0,this._updateDisabled(),this},enable:function(){return this._disabled=!1,this._updateDisabled(),this},_zoomIn:function(t){!this._disabled&&this._map._zoom<this._map.getMaxZoom()&&this._map.zoomIn(this._map.options.zoomDelta*(t.shiftKey?3:1))},_zoomOut:function(t){!this._disabled&&this._map._zoom>this._map.getMinZoom()&&this._map.zoomOut(this._map.options.zoomDelta*(t.shiftKey?3:1))},_createButton:function(t,i,e,n,o){var s=ht("a",e,n);return s.innerHTML=t,s.href="#",s.title=i,s.setAttribute("role","button"),s.setAttribute("aria-label",i),J(s),V(s,"click",Q),V(s,"click",o,this),V(s,"click",this._refocusOnMap,this),s},_updateDisabled:function(){var t=this._map,i="leaflet-disabled";mt(this._zoomInButton,i),mt(this._zoomOutButton,i),(this._disabled||t._zoom===t.getMinZoom())&&pt(this._zoomOutButton,i),(this._disabled||t._zoom===t.getMaxZoom())&&pt(this._zoomInButton,i)}});Le.mergeOptions({zoomControl:!0}),Le.addInitHook(function(){this.options.zoomControl&&(this.zoomControl=new ze,this.addControl(this.zoomControl))});var Me=Pe.extend({options:{position:"bottomleft",maxWidth:100,metric:!0,imperial:!0},onAdd:function(t){var i=ht("div","leaflet-control-scale"),e=this.options;return this._addScales(e,"leaflet-control-scale-line",i),t.on(e.updateWhenIdle?"moveend":"move",this._update,this),t.whenReady(this._update,this),i},onRemove:function(t){t.off(this.options.updateWhenIdle?"moveend":"move",this._update,this)},_addScales:function(t,i,e){t.metric&&(this._mScale=ht("div",i,e)),t.imperial&&(this._iScale=ht("div",i,e))},_update:function(){var t=this._map,i=t.getSize().y/2,e=t.distance(t.containerPointToLatLng([0,i]),t.containerPointToLatLng([this.options.maxWidth,i]));this._updateScales(e)},_updateScales:function(t){this.options.metric&&t&&this._updateMetric(t),this.options.imperial&&t&&this._updateImperial(t)},_updateMetric:function(t){var i=this._getRoundNum(t),e=i<1e3?i+" m":i/1e3+" km";this._updateScale(this._mScale,e,i/t)},_updateImperial:function(t){var i,e,n,o=3.2808399*t;o>5280?(i=o/5280,e=this._getRoundNum(i),this._updateScale(this._iScale,e+" mi",e/i)):(n=this._getRoundNum(o),this._updateScale(this._iScale,n+" ft",n/o))},_updateScale:function(t,i,e){t.style.width=Math.round(this.options.maxWidth*e)+"px",t.innerHTML=i},_getRoundNum:function(t){var i=Math.pow(10,(Math.floor(t)+"").length-1),e=t/i;return e=e>=10?10:e>=5?5:e>=3?3:e>=2?2:1,i*e}}),Ce=Pe.extend({options:{position:"bottomright",prefix:'<a href="http://leafletjs.com" title="A JS library for interactive maps">Leaflet</a>'},initialize:function(t){l(this,t),this._attributions={}},onAdd:function(t){t.attributionControl=this,this._container=ht("div","leaflet-control-attribution"),J(this._container);for(var i in t._layers)t._layers[i].getAttribution&&this.addAttribution(t._layers[i].getAttribution());return this._update(),this._container},setPrefix:function(t){return this.options.prefix=t,this._update(),this},addAttribution:function(t){return t?(this._attributions[t]||(this._attributions[t]=0),this._attributions[t]++,this._update(),this):this},removeAttribution:function(t){return t?(this._attributions[t]&&(this._attributions[t]--,this._update()),this):this},_update:function(){if(this._map){var t=[];for(var i in this._attributions)this._attributions[i]&&t.push(i);var e=[];this.options.prefix&&e.push(this.options.prefix),t.length&&e.push(t.join(", ")),this._container.innerHTML=e.join(" | ")}}});Le.mergeOptions({attributionControl:!0}),Le.addInitHook(function(){this.options.attributionControl&&(new Ce).addTo(this)});Pe.Layers=Te,Pe.Zoom=ze,Pe.Scale=Me,Pe.Attribution=Ce,be.layers=function(t,i,e){return new Te(t,i,e)},be.zoom=function(t){return new ze(t)},be.scale=function(t){return new Me(t)},be.attribution=function(t){return new Ce(t)};var Ze=v.extend({initialize:function(t){this._map=t},enable:function(){return this._enabled?this:(this._enabled=!0,this.addHooks(),this)},disable:function(){return this._enabled?(this._enabled=!1,this.removeHooks(),this):this},enabled:function(){return!!this._enabled}});Ze.addTo=function(t,i){return t.addHandler(i,this),this};var Se,Ee={Events:hi},ke=Vi?"touchstart mousedown":"mousedown",Ae={mousedown:"mouseup",touchstart:"touchend",pointerdown:"touchend",MSPointerDown:"touchend"},Ie={mousedown:"mousemove",touchstart:"touchmove",pointerdown:"touchmove",MSPointerDown:"touchmove"},Be=ui.extend({options:{clickTolerance:3},initialize:function(t,i,e,n){l(this,n),this._element=t,this._dragStartTarget=i||t,this._preventOutline=e},enable:function(){this._enabled||(V(this._dragStartTarget,ke,this._onDown,this),this._enabled=!0)},disable:function(){this._enabled&&(Be._dragging===this&&this.finishDrag(),q(this._dragStartTarget,ke,this._onDown,this),this._enabled=!1,this._moved=!1)},_onDown:function(t){if(!t._simulated&&this._enabled&&(this._moved=!1,!dt(this._element,"leaflet-zoom-anim")&&!(Be._dragging||t.shiftKey||1!==t.which&&1!==t.button&&!t.touches||(Be._dragging=this,this._preventOutline&&zt(this._element),bt(),mi(),this._moving)))){this.fire("down");var i=t.touches?t.touches[0]:t;this._startPoint=new x(i.clientX,i.clientY),V(document,Ie[t.type],this._onMove,this),V(document,Ae[t.type],this._onUp,this)}},_onMove:function(t){if(!t._simulated&&this._enabled)if(t.touches&&t.touches.length>1)this._moved=!0;else{var i=t.touches&&1===t.touches.length?t.touches[0]:t,e=new x(i.clientX,i.clientY).subtract(this._startPoint);(e.x||e.y)&&(Math.abs(e.x)+Math.abs(e.y)<this.options.clickTolerance||($(t),this._moved||(this.fire("dragstart"),this._moved=!0,this._startPos=Pt(this._element).subtract(e),pt(document.body,"leaflet-dragging"),this._lastTarget=t.target||t.srcElement,window.SVGElementInstance&&this._lastTarget instanceof SVGElementInstance&&(this._lastTarget=this._lastTarget.correspondingUseElement),pt(this._lastTarget,"leaflet-drag-target")),this._newPos=this._startPos.add(e),this._moving=!0,g(this._animRequest),this._lastEvent=t,this._animRequest=f(this._updatePosition,this,!0)))}},_updatePosition:function(){var t={originalEvent:this._lastEvent};this.fire("predrag",t),Lt(this._element,this._newPos),this.fire("drag",t)},_onUp:function(t){!t._simulated&&this._enabled&&this.finishDrag()},finishDrag:function(){mt(document.body,"leaflet-dragging"),this._lastTarget&&(mt(this._lastTarget,"leaflet-drag-target"),this._lastTarget=null);for(var t in Ie)q(document,Ie[t],this._onMove,this),q(document,Ae[t],this._onUp,this);Tt(),fi(),this._moved&&this._moving&&(g(this._animRequest),this.fire("dragend",{distance:this._newPos.distanceTo(this._startPos)})),this._moving=!1,Be._dragging=!1}}),Oe=(Object.freeze||Object)({simplify:Ct,pointToSegmentDistance:Zt,closestPointOnSegment:function(t,i,e){return Rt(t,i,e)},clipSegment:At,_getEdgeIntersection:It,_getBitCode:Bt,_sqClosestPointOnSegment:Rt,isFlat:Dt,_flat:Nt}),Re=(Object.freeze||Object)({clipPolygon:jt}),De={project:function(t){return new x(t.lng,t.lat)},unproject:function(t){return new M(t.y,t.x)},bounds:new P([-180,-90],[180,90])},Ne={R:6378137,R_MINOR:6356752.314245179,bounds:new P([-20037508.34279,-15496570.73972],[20037508.34279,18764656.23138]),project:function(t){var i=Math.PI/180,e=this.R,n=t.lat*i,o=this.R_MINOR/e,s=Math.sqrt(1-o*o),r=s*Math.sin(n),a=Math.tan(Math.PI/4-n/2)/Math.pow((1-r)/(1+r),s/2);return n=-e*Math.log(Math.max(a,1e-10)),new x(t.lng*i*e,n)},unproject:function(t){for(var i,e=180/Math.PI,n=this.R,o=this.R_MINOR/n,s=Math.sqrt(1-o*o),r=Math.exp(-t.y/n),a=Math.PI/2-2*Math.atan(r),h=0,u=.1;h<15&&Math.abs(u)>1e-7;h++)i=s*Math.sin(a),i=Math.pow((1-i)/(1+i),s/2),a+=u=Math.PI/2-2*Math.atan(r*i)-a;return new M(a*e,t.x*e/n)}},je=(Object.freeze||Object)({LonLat:De,Mercator:Ne,SphericalMercator:di}),We=i({},_i,{code:"EPSG:3395",projection:Ne,transformation:function(){var t=.5/(Math.PI*Ne.R);return S(t,.5,-t,.5)}()}),He=i({},_i,{code:"EPSG:4326",projection:De,transformation:S(1/180,1,-1/180,.5)}),Fe=i({},ci,{projection:De,transformation:S(1,0,-1,0),scale:function(t){return Math.pow(2,t)},zoom:function(t){return Math.log(t)/Math.LN2},distance:function(t,i){var e=i.lng-t.lng,n=i.lat-t.lat;return Math.sqrt(e*e+n*n)},infinite:!0});ci.Earth=_i,ci.EPSG3395=We,ci.EPSG3857=vi,ci.EPSG900913=yi,ci.EPSG4326=He,ci.Simple=Fe;var Ue=ui.extend({options:{pane:"overlayPane",attribution:null,bubblingMouseEvents:!0},addTo:function(t){return t.addLayer(this),this},remove:function(){return this.removeFrom(this._map||this._mapToAdd)},removeFrom:function(t){return t&&t.removeLayer(this),this},getPane:function(t){return this._map.getPane(t?this.options[t]||t:this.options.pane)},addInteractiveTarget:function(t){return this._map._targets[n(t)]=this,this},removeInteractiveTarget:function(t){return delete this._map._targets[n(t)],this},getAttribution:function(){return this.options.attribution},_layerAdd:function(t){var i=t.target;if(i.hasLayer(this)){if(this._map=i,this._zoomAnimated=i._zoomAnimated,this.getEvents){var e=this.getEvents();i.on(e,this),this.once("remove",function(){i.off(e,this)},this)}this.onAdd(i),this.getAttribution&&i.attributionControl&&i.attributionControl.addAttribution(this.getAttribution()),this.fire("add"),i.fire("layeradd",{layer:this})}}});Le.include({addLayer:function(t){if(!t._layerAdd)throw new Error("The provided object is not a Layer.");var i=n(t);return this._layers[i]?this:(this._layers[i]=t,t._mapToAdd=this,t.beforeAdd&&t.beforeAdd(this),this.whenReady(t._layerAdd,t),this)},removeLayer:function(t){var i=n(t);return this._layers[i]?(this._loaded&&t.onRemove(this),t.getAttribution&&this.attributionControl&&this.attributionControl.removeAttribution(t.getAttribution()),delete this._layers[i],this._loaded&&(this.fire("layerremove",{layer:t}),t.fire("remove")),t._map=t._mapToAdd=null,this):this},hasLayer:function(t){return!!t&&n(t)in this._layers},eachLayer:function(t,i){for(var e in this._layers)t.call(i,this._layers[e]);return this},_addLayers:function(t){for(var i=0,e=(t=t?ei(t)?t:[t]:[]).length;i<e;i++)this.addLayer(t[i])},_addZoomLimit:function(t){!isNaN(t.options.maxZoom)&&isNaN(t.options.minZoom)||(this._zoomBoundLayers[n(t)]=t,this._updateZoomLevels())},_removeZoomLimit:function(t){var i=n(t);this._zoomBoundLayers[i]&&(delete this._zoomBoundLayers[i],this._updateZoomLevels())},_updateZoomLevels:function(){var t=1/0,i=-1/0,e=this._getZoomSpan();for(var n in this._zoomBoundLayers){var o=this._zoomBoundLayers[n].options;t=void 0===o.minZoom?t:Math.min(t,o.minZoom),i=void 0===o.maxZoom?i:Math.max(i,o.maxZoom)}this._layersMaxZoom=i===-1/0?void 0:i,this._layersMinZoom=t===1/0?void 0:t,e!==this._getZoomSpan()&&this.fire("zoomlevelschange"),void 0===this.options.maxZoom&&this._layersMaxZoom&&this.getZoom()>this._layersMaxZoom&&this.setZoom(this._layersMaxZoom),void 0===this.options.minZoom&&this._layersMinZoom&&this.getZoom()<this._layersMinZoom&&this.setZoom(this._layersMinZoom)}});var Ve=Ue.extend({initialize:function(t,i){l(this,i),this._layers={};var e,n;if(t)for(e=0,n=t.length;e<n;e++)this.addLayer(t[e])},addLayer:function(t){var i=this.getLayerId(t);return this._layers[i]=t,this._map&&this._map.addLayer(t),this},removeLayer:function(t){var i=t in this._layers?t:this.getLayerId(t);return this._map&&this._layers[i]&&this._map.removeLayer(this._layers[i]),delete this._layers[i],this},hasLayer:function(t){return!!t&&(t in this._layers||this.getLayerId(t)in this._layers)},clearLayers:function(){return this.eachLayer(this.removeLayer,this)},invoke:function(t){var i,e,n=Array.prototype.slice.call(arguments,1);for(i in this._layers)(e=this._layers[i])[t]&&e[t].apply(e,n);return this},onAdd:function(t){this.eachLayer(t.addLayer,t)},onRemove:function(t){this.eachLayer(t.removeLayer,t)},eachLayer:function(t,i){for(var e in this._layers)t.call(i,this._layers[e]);return this},getLayer:function(t){return this._layers[t]},getLayers:function(){var t=[];return this.eachLayer(t.push,t),t},setZIndex:function(t){return this.invoke("setZIndex",t)},getLayerId:function(t){return n(t)}}),qe=Ve.extend({addLayer:function(t){return this.hasLayer(t)?this:(t.addEventParent(this),Ve.prototype.addLayer.call(this,t),this.fire("layeradd",{layer:t}))},removeLayer:function(t){return this.hasLayer(t)?(t in this._layers&&(t=this._layers[t]),t.removeEventParent(this),Ve.prototype.removeLayer.call(this,t),this.fire("layerremove",{layer:t})):this},setStyle:function(t){return this.invoke("setStyle",t)},bringToFront:function(){return this.invoke("bringToFront")},bringToBack:function(){return this.invoke("bringToBack")},getBounds:function(){var t=new T;for(var i in this._layers){var e=this._layers[i];t.extend(e.getBounds?e.getBounds():e.getLatLng())}return t}}),Ge=v.extend({options:{popupAnchor:[0,0],tooltipAnchor:[0,0]},initialize:function(t){l(this,t)},createIcon:function(t){return this._createIcon("icon",t)},createShadow:function(t){return this._createIcon("shadow",t)},_createIcon:function(t,i){var e=this._getIconUrl(t);if(!e){if("icon"===t)throw new Error("iconUrl not set in Icon options (see the docs).");return null}var n=this._createImg(e,i&&"IMG"===i.tagName?i:null);return this._setIconStyles(n,t),n},_setIconStyles:function(t,i){var e=this.options,n=e[i+"Size"];"number"==typeof n&&(n=[n,n]);var o=w(n),s=w("shadow"===i&&e.shadowAnchor||e.iconAnchor||o&&o.divideBy(2,!0));t.className="leaflet-marker-"+i+" "+(e.className||""),s&&(t.style.marginLeft=-s.x+"px",t.style.marginTop=-s.y+"px"),o&&(t.style.width=o.x+"px",t.style.height=o.y+"px")},_createImg:function(t,i){return i=i||document.createElement("img"),i.src=t,i},_getIconUrl:function(t){return Ki&&this.options[t+"RetinaUrl"]||this.options[t+"Url"]}}),Ke=Ge.extend({options:{iconUrl:"marker-icon.png",iconRetinaUrl:"marker-icon-2x.png",shadowUrl:"marker-shadow.png",iconSize:[25,41],iconAnchor:[12,41],popupAnchor:[1,-34],tooltipAnchor:[16,-28],shadowSize:[41,41]},_getIconUrl:function(t){return Ke.imagePath||(Ke.imagePath=this._detectIconPath()),(this.options.imagePath||Ke.imagePath)+Ge.prototype._getIconUrl.call(this,t)},_detectIconPath:function(){var t=ht("div","leaflet-default-icon-path",document.body),i=at(t,"background-image")||at(t,"backgroundImage");return document.body.removeChild(t),i=null===i||0!==i.indexOf("url")?"":i.replace(/^url\(["']?/,"").replace(/marker-icon\.png["']?\)$/,"")}}),Ye=Ze.extend({initialize:function(t){this._marker=t},addHooks:function(){var t=this._marker._icon;this._draggable||(this._draggable=new Be(t,t,!0)),this._draggable.on({dragstart:this._onDragStart,predrag:this._onPreDrag,drag:this._onDrag,dragend:this._onDragEnd},this).enable(),pt(t,"leaflet-marker-draggable")},removeHooks:function(){this._draggable.off({dragstart:this._onDragStart,predrag:this._onPreDrag,drag:this._onDrag,dragend:this._onDragEnd},this).disable(),this._marker._icon&&mt(this._marker._icon,"leaflet-marker-draggable")},moved:function(){return this._draggable&&this._draggable._moved},_adjustPan:function(t){var i=this._marker,e=i._map,n=this._marker.options.autoPanSpeed,o=this._marker.options.autoPanPadding,s=L.DomUtil.getPosition(i._icon),r=e.getPixelBounds(),a=e.getPixelOrigin(),h=b(r.min._subtract(a).add(o),r.max._subtract(a).subtract(o));if(!h.contains(s)){var u=w((Math.max(h.max.x,s.x)-h.max.x)/(r.max.x-h.max.x)-(Math.min(h.min.x,s.x)-h.min.x)/(r.min.x-h.min.x),(Math.max(h.max.y,s.y)-h.max.y)/(r.max.y-h.max.y)-(Math.min(h.min.y,s.y)-h.min.y)/(r.min.y-h.min.y)).multiplyBy(n);e.panBy(u,{animate:!1}),this._draggable._newPos._add(u),this._draggable._startPos._add(u),L.DomUtil.setPosition(i._icon,this._draggable._newPos),this._onDrag(t),this._panRequest=f(this._adjustPan.bind(this,t))}},_onDragStart:function(){this._oldLatLng=this._marker.getLatLng(),this._marker.closePopup().fire("movestart").fire("dragstart")},_onPreDrag:function(t){this._marker.options.autoPan&&(g(this._panRequest),this._panRequest=f(this._adjustPan.bind(this,t)))},_onDrag:function(t){var i=this._marker,e=i._shadow,n=Pt(i._icon),o=i._map.layerPointToLatLng(n);e&&Lt(e,n),i._latlng=o,t.latlng=o,t.oldLatLng=this._oldLatLng,i.fire("move",t).fire("drag",t)},_onDragEnd:function(t){g(this._panRequest),delete this._oldLatLng,this._marker.fire("moveend").fire("dragend",t)}}),Xe=Ue.extend({options:{icon:new Ke,interactive:!0,draggable:!1,autoPan:!1,autoPanPadding:[50,50],autoPanSpeed:10,keyboard:!0,title:"",alt:"",zIndexOffset:0,opacity:1,riseOnHover:!1,riseOffset:250,pane:"markerPane",bubblingMouseEvents:!1},initialize:function(t,i){l(this,i),this._latlng=C(t)},onAdd:function(t){this._zoomAnimated=this._zoomAnimated&&t.options.markerZoomAnimation,this._zoomAnimated&&t.on("zoomanim",this._animateZoom,this),this._initIcon(),this.update()},onRemove:function(t){this.dragging&&this.dragging.enabled()&&(this.options.draggable=!0,this.dragging.removeHooks()),delete this.dragging,this._zoomAnimated&&t.off("zoomanim",this._animateZoom,this),this._removeIcon(),this._removeShadow()},getEvents:function(){return{zoom:this.update,viewreset:this.update}},getLatLng:function(){return this._latlng},setLatLng:function(t){var i=this._latlng;return this._latlng=C(t),this.update(),this.fire("move",{oldLatLng:i,latlng:this._latlng})},setZIndexOffset:function(t){return this.options.zIndexOffset=t,this.update()},setIcon:function(t){return this.options.icon=t,this._map&&(this._initIcon(),this.update()),this._popup&&this.bindPopup(this._popup,this._popup.options),this},getElement:function(){return this._icon},update:function(){if(this._icon&&this._map){var t=this._map.latLngToLayerPoint(this._latlng).round();this._setPos(t)}return this},_initIcon:function(){var t=this.options,i="leaflet-zoom-"+(this._zoomAnimated?"animated":"hide"),e=t.icon.createIcon(this._icon),n=!1;e!==this._icon&&(this._icon&&this._removeIcon(),n=!0,t.title&&(e.title=t.title),"IMG"===e.tagName&&(e.alt=t.alt||"")),pt(e,i),t.keyboard&&(e.tabIndex="0"),this._icon=e,t.riseOnHover&&this.on({mouseover:this._bringToFront,mouseout:this._resetZIndex});var o=t.icon.createShadow(this._shadow),s=!1;o!==this._shadow&&(this._removeShadow(),s=!0),o&&(pt(o,i),o.alt=""),this._shadow=o,t.opacity<1&&this._updateOpacity(),n&&this.getPane().appendChild(this._icon),this._initInteraction(),o&&s&&this.getPane("shadowPane").appendChild(this._shadow)},_removeIcon:function(){this.options.riseOnHover&&this.off({mouseover:this._bringToFront,mouseout:this._resetZIndex}),ut(this._icon),this.removeInteractiveTarget(this._icon),this._icon=null},_removeShadow:function(){this._shadow&&ut(this._shadow),this._shadow=null},_setPos:function(t){Lt(this._icon,t),this._shadow&&Lt(this._shadow,t),this._zIndex=t.y+this.options.zIndexOffset,this._resetZIndex()},_updateZIndex:function(t){this._icon.style.zIndex=this._zIndex+t},_animateZoom:function(t){var i=this._map._latLngToNewLayerPoint(this._latlng,t.zoom,t.center).round();this._setPos(i)},_initInteraction:function(){if(this.options.interactive&&(pt(this._icon,"leaflet-interactive"),this.addInteractiveTarget(this._icon),Ye)){var t=this.options.draggable;this.dragging&&(t=this.dragging.enabled(),this.dragging.disable()),this.dragging=new Ye(this),t&&this.dragging.enable()}},setOpacity:function(t){return this.options.opacity=t,this._map&&this._updateOpacity(),this},_updateOpacity:function(){var t=this.options.opacity;vt(this._icon,t),this._shadow&&vt(this._shadow,t)},_bringToFront:function(){this._updateZIndex(this.options.riseOffset)},_resetZIndex:function(){this._updateZIndex(0)},_getPopupAnchor:function(){return this.options.icon.options.popupAnchor},_getTooltipAnchor:function(){return this.options.icon.options.tooltipAnchor}}),Je=Ue.extend({options:{stroke:!0,color:"#3388ff",weight:3,opacity:1,lineCap:"round",lineJoin:"round",dashArray:null,dashOffset:null,fill:!1,fillColor:null,fillOpacity:.2,fillRule:"evenodd",interactive:!0,bubblingMouseEvents:!0},beforeAdd:function(t){this._renderer=t.getRenderer(this)},onAdd:function(){this._renderer._initPath(this),this._reset(),this._renderer._addPath(this)},onRemove:function(){this._renderer._removePath(this)},redraw:function(){return this._map&&this._renderer._updatePath(this),this},setStyle:function(t){return l(this,t),this._renderer&&this._renderer._updateStyle(this),this},bringToFront:function(){return this._renderer&&this._renderer._bringToFront(this),this},bringToBack:function(){return this._renderer&&this._renderer._bringToBack(this),this},getElement:function(){return this._path},_reset:function(){this._project(),this._update()},_clickTolerance:function(){return(this.options.stroke?this.options.weight/2:0)+this._renderer.options.tolerance}}),$e=Je.extend({options:{fill:!0,radius:10},initialize:function(t,i){l(this,i),this._latlng=C(t),this._radius=this.options.radius},setLatLng:function(t){return this._latlng=C(t),this.redraw(),this.fire("move",{latlng:this._latlng})},getLatLng:function(){return this._latlng},setRadius:function(t){return this.options.radius=this._radius=t,this.redraw()},getRadius:function(){return this._radius},setStyle:function(t){var i=t&&t.radius||this._radius;return Je.prototype.setStyle.call(this,t),this.setRadius(i),this},_project:function(){this._point=this._map.latLngToLayerPoint(this._latlng),this._updateBounds()},_updateBounds:function(){var t=this._radius,i=this._radiusY||t,e=this._clickTolerance(),n=[t+e,i+e];this._pxBounds=new P(this._point.subtract(n),this._point.add(n))},_update:function(){this._map&&this._updatePath()},_updatePath:function(){this._renderer._updateCircle(this)},_empty:function(){return this._radius&&!this._renderer._bounds.intersects(this._pxBounds)},_containsPoint:function(t){return t.distanceTo(this._point)<=this._radius+this._clickTolerance()}}),Qe=$e.extend({initialize:function(t,e,n){if("number"==typeof e&&(e=i({},n,{radius:e})),l(this,e),this._latlng=C(t),isNaN(this.options.radius))throw new Error("Circle radius cannot be NaN");this._mRadius=this.options.radius},setRadius:function(t){return this._mRadius=t,this.redraw()},getRadius:function(){return this._mRadius},getBounds:function(){var t=[this._radius,this._radiusY||this._radius];return new T(this._map.layerPointToLatLng(this._point.subtract(t)),this._map.layerPointToLatLng(this._point.add(t)))},setStyle:Je.prototype.setStyle,_project:function(){var t=this._latlng.lng,i=this._latlng.lat,e=this._map,n=e.options.crs;if(n.distance===_i.distance){var o=Math.PI/180,s=this._mRadius/_i.R/o,r=e.project([i+s,t]),a=e.project([i-s,t]),h=r.add(a).divideBy(2),u=e.unproject(h).lat,l=Math.acos((Math.cos(s*o)-Math.sin(i*o)*Math.sin(u*o))/(Math.cos(i*o)*Math.cos(u*o)))/o;(isNaN(l)||0===l)&&(l=s/Math.cos(Math.PI/180*i)),this._point=h.subtract(e.getPixelOrigin()),this._radius=isNaN(l)?0:h.x-e.project([u,t-l]).x,this._radiusY=h.y-r.y}else{var c=n.unproject(n.project(this._latlng).subtract([this._mRadius,0]));this._point=e.latLngToLayerPoint(this._latlng),this._radius=this._point.x-e.latLngToLayerPoint(c).x}this._updateBounds()}}),tn=Je.extend({options:{smoothFactor:1,noClip:!1},initialize:function(t,i){l(this,i),this._setLatLngs(t)},getLatLngs:function(){return this._latlngs},setLatLngs:function(t){return this._setLatLngs(t),this.redraw()},isEmpty:function(){return!this._latlngs.length},closestLayerPoint:function(t){for(var i,e,n=1/0,o=null,s=Rt,r=0,a=this._parts.length;r<a;r++)for(var h=this._parts[r],u=1,l=h.length;u<l;u++){var c=s(t,i=h[u-1],e=h[u],!0);c<n&&(n=c,o=s(t,i,e))}return o&&(o.distance=Math.sqrt(n)),o},getCenter:function(){if(!this._map)throw new Error("Must add layer to map before using getCenter()");var t,i,e,n,o,s,r,a=this._rings[0],h=a.length;if(!h)return null;for(t=0,i=0;t<h-1;t++)i+=a[t].distanceTo(a[t+1])/2;if(0===i)return this._map.layerPointToLatLng(a[0]);for(t=0,n=0;t<h-1;t++)if(o=a[t],s=a[t+1],e=o.distanceTo(s),(n+=e)>i)return r=(n-i)/e,this._map.layerPointToLatLng([s.x-r*(s.x-o.x),s.y-r*(s.y-o.y)])},getBounds:function(){return this._bounds},addLatLng:function(t,i){return i=i||this._defaultShape(),t=C(t),i.push(t),this._bounds.extend(t),this.redraw()},_setLatLngs:function(t){this._bounds=new T,this._latlngs=this._convertLatLngs(t)},_defaultShape:function(){return Dt(this._latlngs)?this._latlngs:this._latlngs[0]},_convertLatLngs:function(t){for(var i=[],e=Dt(t),n=0,o=t.length;n<o;n++)e?(i[n]=C(t[n]),this._bounds.extend(i[n])):i[n]=this._convertLatLngs(t[n]);return i},_project:function(){var t=new P;this._rings=[],this._projectLatlngs(this._latlngs,this._rings,t);var i=this._clickTolerance(),e=new x(i,i);this._bounds.isValid()&&t.isValid()&&(t.min._subtract(e),t.max._add(e),this._pxBounds=t)},_projectLatlngs:function(t,i,e){var n,o,s=t[0]instanceof M,r=t.length;if(s){for(o=[],n=0;n<r;n++)o[n]=this._map.latLngToLayerPoint(t[n]),e.extend(o[n]);i.push(o)}else for(n=0;n<r;n++)this._projectLatlngs(t[n],i,e)},_clipPoints:function(){var t=this._renderer._bounds;if(this._parts=[],this._pxBounds&&this._pxBounds.intersects(t))if(this.options.noClip)this._parts=this._rings;else{var i,e,n,o,s,r,a,h=this._parts;for(i=0,n=0,o=this._rings.length;i<o;i++)for(e=0,s=(a=this._rings[i]).length;e<s-1;e++)(r=At(a[e],a[e+1],t,e,!0))&&(h[n]=h[n]||[],h[n].push(r[0]),r[1]===a[e+1]&&e!==s-2||(h[n].push(r[1]),n++))}},_simplifyPoints:function(){for(var t=this._parts,i=this.options.smoothFactor,e=0,n=t.length;e<n;e++)t[e]=Ct(t[e],i)},_update:function(){this._map&&(this._clipPoints(),this._simplifyPoints(),this._updatePath())},_updatePath:function(){this._renderer._updatePoly(this)},_containsPoint:function(t,i){var e,n,o,s,r,a,h=this._clickTolerance();if(!this._pxBounds||!this._pxBounds.contains(t))return!1;for(e=0,s=this._parts.length;e<s;e++)for(n=0,o=(r=(a=this._parts[e]).length)-1;n<r;o=n++)if((i||0!==n)&&Zt(t,a[o],a[n])<=h)return!0;return!1}});tn._flat=Nt;var en=tn.extend({options:{fill:!0},isEmpty:function(){return!this._latlngs.length||!this._latlngs[0].length},getCenter:function(){if(!this._map)throw new Error("Must add layer to map before using getCenter()");var t,i,e,n,o,s,r,a,h,u=this._rings[0],l=u.length;if(!l)return null;for(s=r=a=0,t=0,i=l-1;t<l;i=t++)e=u[t],n=u[i],o=e.y*n.x-n.y*e.x,r+=(e.x+n.x)*o,a+=(e.y+n.y)*o,s+=3*o;return h=0===s?u[0]:[r/s,a/s],this._map.layerPointToLatLng(h)},_convertLatLngs:function(t){var i=tn.prototype._convertLatLngs.call(this,t),e=i.length;return e>=2&&i[0]instanceof M&&i[0].equals(i[e-1])&&i.pop(),i},_setLatLngs:function(t){tn.prototype._setLatLngs.call(this,t),Dt(this._latlngs)&&(this._latlngs=[this._latlngs])},_defaultShape:function(){return Dt(this._latlngs[0])?this._latlngs[0]:this._latlngs[0][0]},_clipPoints:function(){var t=this._renderer._bounds,i=this.options.weight,e=new x(i,i);if(t=new P(t.min.subtract(e),t.max.add(e)),this._parts=[],this._pxBounds&&this._pxBounds.intersects(t))if(this.options.noClip)this._parts=this._rings;else for(var n,o=0,s=this._rings.length;o<s;o++)(n=jt(this._rings[o],t,!0)).length&&this._parts.push(n)},_updatePath:function(){this._renderer._updatePoly(this,!0)},_containsPoint:function(t){var i,e,n,o,s,r,a,h,u=!1;if(!this._pxBounds.contains(t))return!1;for(o=0,a=this._parts.length;o<a;o++)for(s=0,r=(h=(i=this._parts[o]).length)-1;s<h;r=s++)e=i[s],n=i[r],e.y>t.y!=n.y>t.y&&t.x<(n.x-e.x)*(t.y-e.y)/(n.y-e.y)+e.x&&(u=!u);return u||tn.prototype._containsPoint.call(this,t,!0)}}),nn=qe.extend({initialize:function(t,i){l(this,i),this._layers={},t&&this.addData(t)},addData:function(t){var i,e,n,o=ei(t)?t:t.features;if(o){for(i=0,e=o.length;i<e;i++)((n=o[i]).geometries||n.geometry||n.features||n.coordinates)&&this.addData(n);return this}var s=this.options;if(s.filter&&!s.filter(t))return this;var r=Wt(t,s);return r?(r.feature=Gt(t),r.defaultOptions=r.options,this.resetStyle(r),s.onEachFeature&&s.onEachFeature(t,r),this.addLayer(r)):this},resetStyle:function(t){return t.options=i({},t.defaultOptions),this._setLayerStyle(t,this.options.style),this},setStyle:function(t){return this.eachLayer(function(i){this._setLayerStyle(i,t)},this)},_setLayerStyle:function(t,i){"function"==typeof i&&(i=i(t.feature)),t.setStyle&&t.setStyle(i)}}),on={toGeoJSON:function(t){return qt(this,{type:"Point",coordinates:Ut(this.getLatLng(),t)})}};Xe.include(on),Qe.include(on),$e.include(on),tn.include({toGeoJSON:function(t){var i=!Dt(this._latlngs),e=Vt(this._latlngs,i?1:0,!1,t);return qt(this,{type:(i?"Multi":"")+"LineString",coordinates:e})}}),en.include({toGeoJSON:function(t){var i=!Dt(this._latlngs),e=i&&!Dt(this._latlngs[0]),n=Vt(this._latlngs,e?2:i?1:0,!0,t);return i||(n=[n]),qt(this,{type:(e?"Multi":"")+"Polygon",coordinates:n})}}),Ve.include({toMultiPoint:function(t){var i=[];return this.eachLayer(function(e){i.push(e.toGeoJSON(t).geometry.coordinates)}),qt(this,{type:"MultiPoint",coordinates:i})},toGeoJSON:function(t){var i=this.feature&&this.feature.geometry&&this.feature.geometry.type;if("MultiPoint"===i)return this.toMultiPoint(t);var e="GeometryCollection"===i,n=[];return this.eachLayer(function(i){if(i.toGeoJSON){var o=i.toGeoJSON(t);if(e)n.push(o.geometry);else{var s=Gt(o);"FeatureCollection"===s.type?n.push.apply(n,s.features):n.push(s)}}}),e?qt(this,{geometries:n,type:"GeometryCollection"}):{type:"FeatureCollection",features:n}}});var sn=Kt,rn=Ue.extend({options:{opacity:1,alt:"",interactive:!1,crossOrigin:!1,errorOverlayUrl:"",zIndex:1,className:""},initialize:function(t,i,e){this._url=t,this._bounds=z(i),l(this,e)},onAdd:function(){this._image||(this._initImage(),this.options.opacity<1&&this._updateOpacity()),this.options.interactive&&(pt(this._image,"leaflet-interactive"),this.addInteractiveTarget(this._image)),this.getPane().appendChild(this._image),this._reset()},onRemove:function(){ut(this._image),this.options.interactive&&this.removeInteractiveTarget(this._image)},setOpacity:function(t){return this.options.opacity=t,this._image&&this._updateOpacity(),this},setStyle:function(t){return t.opacity&&this.setOpacity(t.opacity),this},bringToFront:function(){return this._map&&ct(this._image),this},bringToBack:function(){return this._map&&_t(this._image),this},setUrl:function(t){return this._url=t,this._image&&(this._image.src=t),this},setBounds:function(t){return this._bounds=z(t),this._map&&this._reset(),this},getEvents:function(){var t={zoom:this._reset,viewreset:this._reset};return this._zoomAnimated&&(t.zoomanim=this._animateZoom),t},setZIndex:function(t){return this.options.zIndex=t,this._updateZIndex(),this},getBounds:function(){return this._bounds},getElement:function(){return this._image},_initImage:function(){var t="IMG"===this._url.tagName,i=this._image=t?this._url:ht("img");pt(i,"leaflet-image-layer"),this._zoomAnimated&&pt(i,"leaflet-zoom-animated"),this.options.className&&pt(i,this.options.className),i.onselectstart=r,i.onmousemove=r,i.onload=e(this.fire,this,"load"),i.onerror=e(this._overlayOnError,this,"error"),this.options.crossOrigin&&(i.crossOrigin=""),this.options.zIndex&&this._updateZIndex(),t?this._url=i.src:(i.src=this._url,i.alt=this.options.alt)},_animateZoom:function(t){var i=this._map.getZoomScale(t.zoom),e=this._map._latLngBoundsToNewLayerBounds(this._bounds,t.zoom,t.center).min;wt(this._image,e,i)},_reset:function(){var t=this._image,i=new P(this._map.latLngToLayerPoint(this._bounds.getNorthWest()),this._map.latLngToLayerPoint(this._bounds.getSouthEast())),e=i.getSize();Lt(t,i.min),t.style.width=e.x+"px",t.style.height=e.y+"px"},_updateOpacity:function(){vt(this._image,this.options.opacity)},_updateZIndex:function(){this._image&&void 0!==this.options.zIndex&&null!==this.options.zIndex&&(this._image.style.zIndex=this.options.zIndex)},_overlayOnError:function(){this.fire("error");var t=this.options.errorOverlayUrl;t&&this._url!==t&&(this._url=t,this._image.src=t)}}),an=rn.extend({options:{autoplay:!0,loop:!0},_initImage:function(){var t="VIDEO"===this._url.tagName,i=this._image=t?this._url:ht("video");if(pt(i,"leaflet-image-layer"),this._zoomAnimated&&pt(i,"leaflet-zoom-animated"),i.onselectstart=r,i.onmousemove=r,i.onloadeddata=e(this.fire,this,"load"),t){for(var n=i.getElementsByTagName("source"),o=[],s=0;s<n.length;s++)o.push(n[s].src);this._url=n.length>0?o:[i.src]}else{ei(this._url)||(this._url=[this._url]),i.autoplay=!!this.options.autoplay,i.loop=!!this.options.loop;for(var a=0;a<this._url.length;a++){var h=ht("source");h.src=this._url[a],i.appendChild(h)}}}}),hn=Ue.extend({options:{offset:[0,7],className:"",pane:"popupPane"},initialize:function(t,i){l(this,t),this._source=i},onAdd:function(t){this._zoomAnimated=t._zoomAnimated,this._container||this._initLayout(),t._fadeAnimated&&vt(this._container,0),clearTimeout(this._removeTimeout),this.getPane().appendChild(this._container),this.update(),t._fadeAnimated&&vt(this._container,1),this.bringToFront()},onRemove:function(t){t._fadeAnimated?(vt(this._container,0),this._removeTimeout=setTimeout(e(ut,void 0,this._container),200)):ut(this._container)},getLatLng:function(){return this._latlng},setLatLng:function(t){return this._latlng=C(t),this._map&&(this._updatePosition(),this._adjustPan()),this},getContent:function(){return this._content},setContent:function(t){return this._content=t,this.update(),this},getElement:function(){return this._container},update:function(){this._map&&(this._container.style.visibility="hidden",this._updateContent(),this._updateLayout(),this._updatePosition(),this._container.style.visibility="",this._adjustPan())},getEvents:function(){var t={zoom:this._updatePosition,viewreset:this._updatePosition};return this._zoomAnimated&&(t.zoomanim=this._animateZoom),t},isOpen:function(){return!!this._map&&this._map.hasLayer(this)},bringToFront:function(){return this._map&&ct(this._container),this},bringToBack:function(){return this._map&&_t(this._container),this},_updateContent:function(){if(this._content){var t=this._contentNode,i="function"==typeof this._content?this._content(this._source||this):this._content;if("string"==typeof i)t.innerHTML=i;else{for(;t.hasChildNodes();)t.removeChild(t.firstChild);t.appendChild(i)}this.fire("contentupdate")}},_updatePosition:function(){if(this._map){var t=this._map.latLngToLayerPoint(this._latlng),i=w(this.options.offset),e=this._getAnchor();this._zoomAnimated?Lt(this._container,t.add(e)):i=i.add(t).add(e);var n=this._containerBottom=-i.y,o=this._containerLeft=-Math.round(this._containerWidth/2)+i.x;this._container.style.bottom=n+"px",this._container.style.left=o+"px"}},_getAnchor:function(){return[0,0]}}),un=hn.extend({options:{maxWidth:300,minWidth:50,maxHeight:null,autoPan:!0,autoPanPaddingTopLeft:null,autoPanPaddingBottomRight:null,autoPanPadding:[5,5],keepInView:!1,closeButton:!0,autoClose:!0,closeOnEscapeKey:!0,className:""},openOn:function(t){return t.openPopup(this),this},onAdd:function(t){hn.prototype.onAdd.call(this,t),t.fire("popupopen",{popup:this}),this._source&&(this._source.fire("popupopen",{popup:this},!0),this._source instanceof Je||this._source.on("preclick",Y))},onRemove:function(t){hn.prototype.onRemove.call(this,t),t.fire("popupclose",{popup:this}),this._source&&(this._source.fire("popupclose",{popup:this},!0),this._source instanceof Je||this._source.off("preclick",Y))},getEvents:function(){var t=hn.prototype.getEvents.call(this);return(void 0!==this.options.closeOnClick?this.options.closeOnClick:this._map.options.closePopupOnClick)&&(t.preclick=this._close),this.options.keepInView&&(t.moveend=this._adjustPan),t},_close:function(){this._map&&this._map.closePopup(this)},_initLayout:function(){var t="leaflet-popup",i=this._container=ht("div",t+" "+(this.options.className||"")+" leaflet-zoom-animated"),e=this._wrapper=ht("div",t+"-content-wrapper",i);if(this._contentNode=ht("div",t+"-content",e),J(e),X(this._contentNode),V(e,"contextmenu",Y),this._tipContainer=ht("div",t+"-tip-container",i),this._tip=ht("div",t+"-tip",this._tipContainer),this.options.closeButton){var n=this._closeButton=ht("a",t+"-close-button",i);n.href="#close",n.innerHTML="×",V(n,"click",this._onCloseButtonClick,this)}},_updateLayout:function(){var t=this._contentNode,i=t.style;i.width="",i.whiteSpace="nowrap";var e=t.offsetWidth;e=Math.min(e,this.options.maxWidth),e=Math.max(e,this.options.minWidth),i.width=e+1+"px",i.whiteSpace="",i.height="";var n=t.offsetHeight,o=this.options.maxHeight;o&&n>o?(i.height=o+"px",pt(t,"leaflet-popup-scrolled")):mt(t,"leaflet-popup-scrolled"),this._containerWidth=this._container.offsetWidth},_animateZoom:function(t){var i=this._map._latLngToNewLayerPoint(this._latlng,t.zoom,t.center),e=this._getAnchor();Lt(this._container,i.add(e))},_adjustPan:function(){if(!(!this.options.autoPan||this._map._panAnim&&this._map._panAnim._inProgress)){var t=this._map,i=parseInt(at(this._container,"marginBottom"),10)||0,e=this._container.offsetHeight+i,n=this._containerWidth,o=new x(this._containerLeft,-e-this._containerBottom);o._add(Pt(this._container));var s=t.layerPointToContainerPoint(o),r=w(this.options.autoPanPadding),a=w(this.options.autoPanPaddingTopLeft||r),h=w(this.options.autoPanPaddingBottomRight||r),u=t.getSize(),l=0,c=0;s.x+n+h.x>u.x&&(l=s.x+n-u.x+h.x),s.x-l-a.x<0&&(l=s.x-a.x),s.y+e+h.y>u.y&&(c=s.y+e-u.y+h.y),s.y-c-a.y<0&&(c=s.y-a.y),(l||c)&&t.fire("autopanstart").panBy([l,c])}},_onCloseButtonClick:function(t){this._close(),Q(t)},_getAnchor:function(){return w(this._source&&this._source._getPopupAnchor?this._source._getPopupAnchor():[0,0])}});Le.mergeOptions({closePopupOnClick:!0}),Le.include({openPopup:function(t,i,e){return t instanceof un||(t=new un(e).setContent(t)),i&&t.setLatLng(i),this.hasLayer(t)?this:(this._popup&&this._popup.options.autoClose&&this.closePopup(),this._popup=t,this.addLayer(t))},closePopup:function(t){return t&&t!==this._popup||(t=this._popup,this._popup=null),t&&this.removeLayer(t),this}}),Ue.include({bindPopup:function(t,i){return t instanceof un?(l(t,i),this._popup=t,t._source=this):(this._popup&&!i||(this._popup=new un(i,this)),this._popup.setContent(t)),this._popupHandlersAdded||(this.on({click:this._openPopup,keypress:this._onKeyPress,remove:this.closePopup,move:this._movePopup}),this._popupHandlersAdded=!0),this},unbindPopup:function(){return this._popup&&(this.off({click:this._openPopup,keypress:this._onKeyPress,remove:this.closePopup,move:this._movePopup}),this._popupHandlersAdded=!1,this._popup=null),this},openPopup:function(t,i){if(t instanceof Ue||(i=t,t=this),t instanceof qe)for(var e in this._layers){t=this._layers[e];break}return i||(i=t.getCenter?t.getCenter():t.getLatLng()),this._popup&&this._map&&(this._popup._source=t,this._popup.update(),this._map.openPopup(this._popup,i)),this},closePopup:function(){return this._popup&&this._popup._close(),this},togglePopup:function(t){return this._popup&&(this._popup._map?this.closePopup():this.openPopup(t)),this},isPopupOpen:function(){return!!this._popup&&this._popup.isOpen()},setPopupContent:function(t){return this._popup&&this._popup.setContent(t),this},getPopup:function(){return this._popup},_openPopup:function(t){var i=t.layer||t.target;this._popup&&this._map&&(Q(t),i instanceof Je?this.openPopup(t.layer||t.target,t.latlng):this._map.hasLayer(this._popup)&&this._popup._source===i?this.closePopup():this.openPopup(i,t.latlng))},_movePopup:function(t){this._popup.setLatLng(t.latlng)},_onKeyPress:function(t){13===t.originalEvent.keyCode&&this._openPopup(t)}});var ln=hn.extend({options:{pane:"tooltipPane",offset:[0,0],direction:"auto",permanent:!1,sticky:!1,interactive:!1,opacity:.9},onAdd:function(t){hn.prototype.onAdd.call(this,t),this.setOpacity(this.options.opacity),t.fire("tooltipopen",{tooltip:this}),this._source&&this._source.fire("tooltipopen",{tooltip:this},!0)},onRemove:function(t){hn.prototype.onRemove.call(this,t),t.fire("tooltipclose",{tooltip:this}),this._source&&this._source.fire("tooltipclose",{tooltip:this},!0)},getEvents:function(){var t=hn.prototype.getEvents.call(this);return Vi&&!this.options.permanent&&(t.preclick=this._close),t},_close:function(){this._map&&this._map.closeTooltip(this)},_initLayout:function(){var t="leaflet-tooltip "+(this.options.className||"")+" leaflet-zoom-"+(this._zoomAnimated?"animated":"hide");this._contentNode=this._container=ht("div",t)},_updateLayout:function(){},_adjustPan:function(){},_setPosition:function(t){var i=this._map,e=this._container,n=i.latLngToContainerPoint(i.getCenter()),o=i.layerPointToContainerPoint(t),s=this.options.direction,r=e.offsetWidth,a=e.offsetHeight,h=w(this.options.offset),u=this._getAnchor();"top"===s?t=t.add(w(-r/2+h.x,-a+h.y+u.y,!0)):"bottom"===s?t=t.subtract(w(r/2-h.x,-h.y,!0)):"center"===s?t=t.subtract(w(r/2+h.x,a/2-u.y+h.y,!0)):"right"===s||"auto"===s&&o.x<n.x?(s="right",t=t.add(w(h.x+u.x,u.y-a/2+h.y,!0))):(s="left",t=t.subtract(w(r+u.x-h.x,a/2-u.y-h.y,!0))),mt(e,"leaflet-tooltip-right"),mt(e,"leaflet-tooltip-left"),mt(e,"leaflet-tooltip-top"),mt(e,"leaflet-tooltip-bottom"),pt(e,"leaflet-tooltip-"+s),Lt(e,t)},_updatePosition:function(){var t=this._map.latLngToLayerPoint(this._latlng);this._setPosition(t)},setOpacity:function(t){this.options.opacity=t,this._container&&vt(this._container,t)},_animateZoom:function(t){var i=this._map._latLngToNewLayerPoint(this._latlng,t.zoom,t.center);this._setPosition(i)},_getAnchor:function(){return w(this._source&&this._source._getTooltipAnchor&&!this.options.sticky?this._source._getTooltipAnchor():[0,0])}});Le.include({openTooltip:function(t,i,e){return t instanceof ln||(t=new ln(e).setContent(t)),i&&t.setLatLng(i),this.hasLayer(t)?this:this.addLayer(t)},closeTooltip:function(t){return t&&this.removeLayer(t),this}}),Ue.include({bindTooltip:function(t,i){return t instanceof ln?(l(t,i),this._tooltip=t,t._source=this):(this._tooltip&&!i||(this._tooltip=new ln(i,this)),this._tooltip.setContent(t)),this._initTooltipInteractions(),this._tooltip.options.permanent&&this._map&&this._map.hasLayer(this)&&this.openTooltip(),this},unbindTooltip:function(){return this._tooltip&&(this._initTooltipInteractions(!0),this.closeTooltip(),this._tooltip=null),this},_initTooltipInteractions:function(t){if(t||!this._tooltipHandlersAdded){var i=t?"off":"on",e={remove:this.closeTooltip,move:this._moveTooltip};this._tooltip.options.permanent?e.add=this._openTooltip:(e.mouseover=this._openTooltip,e.mouseout=this.closeTooltip,this._tooltip.options.sticky&&(e.mousemove=this._moveTooltip),Vi&&(e.click=this._openTooltip)),this[i](e),this._tooltipHandlersAdded=!t}},openTooltip:function(t,i){if(t instanceof Ue||(i=t,t=this),t instanceof qe)for(var e in this._layers){t=this._layers[e];break}return i||(i=t.getCenter?t.getCenter():t.getLatLng()),this._tooltip&&this._map&&(this._tooltip._source=t,this._tooltip.update(),this._map.openTooltip(this._tooltip,i),this._tooltip.options.interactive&&this._tooltip._container&&(pt(this._tooltip._container,"leaflet-clickable"),this.addInteractiveTarget(this._tooltip._container))),this},closeTooltip:function(){return this._tooltip&&(this._tooltip._close(),this._tooltip.options.interactive&&this._tooltip._container&&(mt(this._tooltip._container,"leaflet-clickable"),this.removeInteractiveTarget(this._tooltip._container))),this},toggleTooltip:function(t){return this._tooltip&&(this._tooltip._map?this.closeTooltip():this.openTooltip(t)),this},isTooltipOpen:function(){return this._tooltip.isOpen()},setTooltipContent:function(t){return this._tooltip&&this._tooltip.setContent(t),this},getTooltip:function(){return this._tooltip},_openTooltip:function(t){var i=t.layer||t.target;this._tooltip&&this._map&&this.openTooltip(i,this._tooltip.options.sticky?t.latlng:void 0)},_moveTooltip:function(t){var i,e,n=t.latlng;this._tooltip.options.sticky&&t.originalEvent&&(i=this._map.mouseEventToContainerPoint(t.originalEvent),e=this._map.containerPointToLayerPoint(i),n=this._map.layerPointToLatLng(e)),this._tooltip.setLatLng(n)}});var cn=Ge.extend({options:{iconSize:[12,12],html:!1,bgPos:null,className:"leaflet-div-icon"},createIcon:function(t){var i=t&&"DIV"===t.tagName?t:document.createElement("div"),e=this.options;if(i.innerHTML=!1!==e.html?e.html:"",e.bgPos){var n=w(e.bgPos);i.style.backgroundPosition=-n.x+"px "+-n.y+"px"}return this._setIconStyles(i,"icon"),i},createShadow:function(){return null}});Ge.Default=Ke;var _n=Ue.extend({options:{tileSize:256,opacity:1,updateWhenIdle:ji,updateWhenZooming:!0,updateInterval:200,zIndex:1,bounds:null,minZoom:0,maxZoom:void 0,maxNativeZoom:void 0,minNativeZoom:void 0,noWrap:!1,pane:"tilePane",className:"",keepBuffer:2},initialize:function(t){l(this,t)},onAdd:function(){this._initContainer(),this._levels={},this._tiles={},this._resetView(),this._update()},beforeAdd:function(t){t._addZoomLimit(this)},onRemove:function(t){this._removeAllTiles(),ut(this._container),t._removeZoomLimit(this),this._container=null,this._tileZoom=void 0},bringToFront:function(){return this._map&&(ct(this._container),this._setAutoZIndex(Math.max)),this},bringToBack:function(){return this._map&&(_t(this._container),this._setAutoZIndex(Math.min)),this},getContainer:function(){return this._container},setOpacity:function(t){return this.options.opacity=t,this._updateOpacity(),this},setZIndex:function(t){return this.options.zIndex=t,this._updateZIndex(),this},isLoading:function(){return this._loading},redraw:function(){return this._map&&(this._removeAllTiles(),this._update()),this},getEvents:function(){var t={viewprereset:this._invalidateAll,viewreset:this._resetView,zoom:this._resetView,moveend:this._onMoveEnd};return this.options.updateWhenIdle||(this._onMove||(this._onMove=o(this._onMoveEnd,this.options.updateInterval,this)),t.move=this._onMove),this._zoomAnimated&&(t.zoomanim=this._animateZoom),t},createTile:function(){return document.createElement("div")},getTileSize:function(){var t=this.options.tileSize;return t instanceof x?t:new x(t,t)},_updateZIndex:function(){this._container&&void 0!==this.options.zIndex&&null!==this.options.zIndex&&(this._container.style.zIndex=this.options.zIndex)},_setAutoZIndex:function(t){for(var i,e=this.getPane().children,n=-t(-1/0,1/0),o=0,s=e.length;o<s;o++)i=e[o].style.zIndex,e[o]!==this._container&&i&&(n=t(n,+i));isFinite(n)&&(this.options.zIndex=n+t(-1,1),this._updateZIndex())},_updateOpacity:function(){if(this._map&&!Li){vt(this._container,this.options.opacity);var t=+new Date,i=!1,e=!1;for(var n in this._tiles){var o=this._tiles[n];if(o.current&&o.loaded){var s=Math.min(1,(t-o.loaded)/200);vt(o.el,s),s<1?i=!0:(o.active?e=!0:this._onOpaqueTile(o),o.active=!0)}}e&&!this._noPrune&&this._pruneTiles(),i&&(g(this._fadeFrame),this._fadeFrame=f(this._updateOpacity,this))}},_onOpaqueTile:r,_initContainer:function(){this._container||(this._container=ht("div","leaflet-layer "+(this.options.className||"")),this._updateZIndex(),this.options.opacity<1&&this._updateOpacity(),this.getPane().appendChild(this._container))},_updateLevels:function(){var t=this._tileZoom,i=this.options.maxZoom;if(void 0!==t){for(var e in this._levels)this._levels[e].el.children.length||e===t?(this._levels[e].el.style.zIndex=i-Math.abs(t-e),this._onUpdateLevel(e)):(ut(this._levels[e].el),this._removeTilesAtZoom(e),this._onRemoveLevel(e),delete this._levels[e]);var n=this._levels[t],o=this._map;return n||((n=this._levels[t]={}).el=ht("div","leaflet-tile-container leaflet-zoom-animated",this._container),n.el.style.zIndex=i,n.origin=o.project(o.unproject(o.getPixelOrigin()),t).round(),n.zoom=t,this._setZoomTransform(n,o.getCenter(),o.getZoom()),n.el.offsetWidth,this._onCreateLevel(n)),this._level=n,n}},_onUpdateLevel:r,_onRemoveLevel:r,_onCreateLevel:r,_pruneTiles:function(){if(this._map){var t,i,e=this._map.getZoom();if(e>this.options.maxZoom||e<this.options.minZoom)this._removeAllTiles();else{for(t in this._tiles)(i=this._tiles[t]).retain=i.current;for(t in this._tiles)if((i=this._tiles[t]).current&&!i.active){var n=i.coords;this._retainParent(n.x,n.y,n.z,n.z-5)||this._retainChildren(n.x,n.y,n.z,n.z+2)}for(t in this._tiles)this._tiles[t].retain||this._removeTile(t)}}},_removeTilesAtZoom:function(t){for(var i in this._tiles)this._tiles[i].coords.z===t&&this._removeTile(i)},_removeAllTiles:function(){for(var t in this._tiles)this._removeTile(t)},_invalidateAll:function(){for(var t in this._levels)ut(this._levels[t].el),this._onRemoveLevel(t),delete this._levels[t];this._removeAllTiles(),this._tileZoom=void 0},_retainParent:function(t,i,e,n){var o=Math.floor(t/2),s=Math.floor(i/2),r=e-1,a=new x(+o,+s);a.z=+r;var h=this._tileCoordsToKey(a),u=this._tiles[h];return u&&u.active?(u.retain=!0,!0):(u&&u.loaded&&(u.retain=!0),r>n&&this._retainParent(o,s,r,n))},_retainChildren:function(t,i,e,n){for(var o=2*t;o<2*t+2;o++)for(var s=2*i;s<2*i+2;s++){var r=new x(o,s);r.z=e+1;var a=this._tileCoordsToKey(r),h=this._tiles[a];h&&h.active?h.retain=!0:(h&&h.loaded&&(h.retain=!0),e+1<n&&this._retainChildren(o,s,e+1,n))}},_resetView:function(t){var i=t&&(t.pinch||t.flyTo);this._setView(this._map.getCenter(),this._map.getZoom(),i,i)},_animateZoom:function(t){this._setView(t.center,t.zoom,!0,t.noUpdate)},_clampZoom:function(t){var i=this.options;return void 0!==i.minNativeZoom&&t<i.minNativeZoom?i.minNativeZoom:void 0!==i.maxNativeZoom&&i.maxNativeZoom<t?i.maxNativeZoom:t},_setView:function(t,i,e,n){var o=this._clampZoom(Math.round(i));(void 0!==this.options.maxZoom&&o>this.options.maxZoom||void 0!==this.options.minZoom&&o<this.options.minZoom)&&(o=void 0);var s=this.options.updateWhenZooming&&o!==this._tileZoom;n&&!s||(this._tileZoom=o,this._abortLoading&&this._abortLoading(),this._updateLevels(),this._resetGrid(),void 0!==o&&this._update(t),e||this._pruneTiles(),this._noPrune=!!e),this._setZoomTransforms(t,i)},_setZoomTransforms:function(t,i){for(var e in this._levels)this._setZoomTransform(this._levels[e],t,i)},_setZoomTransform:function(t,i,e){var n=this._map.getZoomScale(e,t.zoom),o=t.origin.multiplyBy(n).subtract(this._map._getNewPixelOrigin(i,e)).round();Ni?wt(t.el,o,n):Lt(t.el,o)},_resetGrid:function(){var t=this._map,i=t.options.crs,e=this._tileSize=this.getTileSize(),n=this._tileZoom,o=this._map.getPixelWorldBounds(this._tileZoom);o&&(this._globalTileRange=this._pxBoundsToTileRange(o)),this._wrapX=i.wrapLng&&!this.options.noWrap&&[Math.floor(t.project([0,i.wrapLng[0]],n).x/e.x),Math.ceil(t.project([0,i.wrapLng[1]],n).x/e.y)],this._wrapY=i.wrapLat&&!this.options.noWrap&&[Math.floor(t.project([i.wrapLat[0],0],n).y/e.x),Math.ceil(t.project([i.wrapLat[1],0],n).y/e.y)]},_onMoveEnd:function(){this._map&&!this._map._animatingZoom&&this._update()},_getTiledPixelBounds:function(t){var i=this._map,e=i._animatingZoom?Math.max(i._animateToZoom,i.getZoom()):i.getZoom(),n=i.getZoomScale(e,this._tileZoom),o=i.project(t,this._tileZoom).floor(),s=i.getSize().divideBy(2*n);return new P(o.subtract(s),o.add(s))},_update:function(t){var i=this._map;if(i){var e=this._clampZoom(i.getZoom());if(void 0===t&&(t=i.getCenter()),void 0!==this._tileZoom){var n=this._getTiledPixelBounds(t),o=this._pxBoundsToTileRange(n),s=o.getCenter(),r=[],a=this.options.keepBuffer,h=new P(o.getBottomLeft().subtract([a,-a]),o.getTopRight().add([a,-a]));if(!(isFinite(o.min.x)&&isFinite(o.min.y)&&isFinite(o.max.x)&&isFinite(o.max.y)))throw new Error("Attempted to load an infinite number of tiles");for(var u in this._tiles){var l=this._tiles[u].coords;l.z===this._tileZoom&&h.contains(new x(l.x,l.y))||(this._tiles[u].current=!1)}if(Math.abs(e-this._tileZoom)>1)this._setView(t,e);else{for(var c=o.min.y;c<=o.max.y;c++)for(var _=o.min.x;_<=o.max.x;_++){var d=new x(_,c);if(d.z=this._tileZoom,this._isValidTile(d)){var p=this._tiles[this._tileCoordsToKey(d)];p?p.current=!0:r.push(d)}}if(r.sort(function(t,i){return t.distanceTo(s)-i.distanceTo(s)}),0!==r.length){this._loading||(this._loading=!0,this.fire("loading"));var m=document.createDocumentFragment();for(_=0;_<r.length;_++)this._addTile(r[_],m);this._level.el.appendChild(m)}}}}},_isValidTile:function(t){var i=this._map.options.crs;if(!i.infinite){var e=this._globalTileRange;if(!i.wrapLng&&(t.x<e.min.x||t.x>e.max.x)||!i.wrapLat&&(t.y<e.min.y||t.y>e.max.y))return!1}if(!this.options.bounds)return!0;var n=this._tileCoordsToBounds(t);return z(this.options.bounds).overlaps(n)},_keyToBounds:function(t){return this._tileCoordsToBounds(this._keyToTileCoords(t))},_tileCoordsToNwSe:function(t){var i=this._map,e=this.getTileSize(),n=t.scaleBy(e),o=n.add(e);return[i.unproject(n,t.z),i.unproject(o,t.z)]},_tileCoordsToBounds:function(t){var i=this._tileCoordsToNwSe(t),e=new T(i[0],i[1]);return this.options.noWrap||(e=this._map.wrapLatLngBounds(e)),e},_tileCoordsToKey:function(t){return t.x+":"+t.y+":"+t.z},_keyToTileCoords:function(t){var i=t.split(":"),e=new x(+i[0],+i[1]);return e.z=+i[2],e},_removeTile:function(t){var i=this._tiles[t];i&&(Ci||i.el.setAttribute("src",ni),ut(i.el),delete this._tiles[t],this.fire("tileunload",{tile:i.el,coords:this._keyToTileCoords(t)}))},_initTile:function(t){pt(t,"leaflet-tile");var i=this.getTileSize();t.style.width=i.x+"px",t.style.height=i.y+"px",t.onselectstart=r,t.onmousemove=r,Li&&this.options.opacity<1&&vt(t,this.options.opacity),Ti&&!zi&&(t.style.WebkitBackfaceVisibility="hidden")},_addTile:function(t,i){var n=this._getTilePos(t),o=this._tileCoordsToKey(t),s=this.createTile(this._wrapCoords(t),e(this._tileReady,this,t));this._initTile(s),this.createTile.length<2&&f(e(this._tileReady,this,t,null,s)),Lt(s,n),this._tiles[o]={el:s,coords:t,current:!0},i.appendChild(s),this.fire("tileloadstart",{tile:s,coords:t})},_tileReady:function(t,i,n){if(this._map){i&&this.fire("tileerror",{error:i,tile:n,coords:t});var o=this._tileCoordsToKey(t);(n=this._tiles[o])&&(n.loaded=+new Date,this._map._fadeAnimated?(vt(n.el,0),g(this._fadeFrame),this._fadeFrame=f(this._updateOpacity,this)):(n.active=!0,this._pruneTiles()),i||(pt(n.el,"leaflet-tile-loaded"),this.fire("tileload",{tile:n.el,coords:t})),this._noTilesToLoad()&&(this._loading=!1,this.fire("load"),Li||!this._map._fadeAnimated?f(this._pruneTiles,this):setTimeout(e(this._pruneTiles,this),250)))}},_getTilePos:function(t){return t.scaleBy(this.getTileSize()).subtract(this._level.origin)},_wrapCoords:function(t){var i=new x(this._wrapX?s(t.x,this._wrapX):t.x,this._wrapY?s(t.y,this._wrapY):t.y);return i.z=t.z,i},_pxBoundsToTileRange:function(t){var i=this.getTileSize();return new P(t.min.unscaleBy(i).floor(),t.max.unscaleBy(i).ceil().subtract([1,1]))},_noTilesToLoad:function(){for(var t in this._tiles)if(!this._tiles[t].loaded)return!1;return!0}}),dn=_n.extend({options:{minZoom:0,maxZoom:18,subdomains:"abc",errorTileUrl:"",zoomOffset:0,tms:!1,zoomReverse:!1,detectRetina:!1,crossOrigin:!1},initialize:function(t,i){this._url=t,(i=l(this,i)).detectRetina&&Ki&&i.maxZoom>0&&(i.tileSize=Math.floor(i.tileSize/2),i.zoomReverse?(i.zoomOffset--,i.minZoom++):(i.zoomOffset++,i.maxZoom--),i.minZoom=Math.max(0,i.minZoom)),"string"==typeof i.subdomains&&(i.subdomains=i.subdomains.split("")),Ti||this.on("tileunload",this._onTileRemove)},setUrl:function(t,i){return this._url=t,i||this.redraw(),this},createTile:function(t,i){var n=document.createElement("img");return V(n,"load",e(this._tileOnLoad,this,i,n)),V(n,"error",e(this._tileOnError,this,i,n)),this.options.crossOrigin&&(n.crossOrigin=""),n.alt="",n.setAttribute("role","presentation"),n.src=this.getTileUrl(t),n},getTileUrl:function(t){var e={r:Ki?"@2x":"",s:this._getSubdomain(t),x:t.x,y:t.y,z:this._getZoomForUrl()};if(this._map&&!this._map.options.crs.infinite){var n=this._globalTileRange.max.y-t.y;this.options.tms&&(e.y=n),e["-y"]=n}return _(this._url,i(e,this.options))},_tileOnLoad:function(t,i){Li?setTimeout(e(t,this,null,i),0):t(null,i)},_tileOnError:function(t,i,e){var n=this.options.errorTileUrl;n&&i.getAttribute("src")!==n&&(i.src=n),t(e,i)},_onTileRemove:function(t){t.tile.onload=null},_getZoomForUrl:function(){var t=this._tileZoom,i=this.options.maxZoom,e=this.options.zoomReverse,n=this.options.zoomOffset;return e&&(t=i-t),t+n},_getSubdomain:function(t){var i=Math.abs(t.x+t.y)%this.options.subdomains.length;return this.options.subdomains[i]},_abortLoading:function(){var t,i;for(t in this._tiles)this._tiles[t].coords.z!==this._tileZoom&&((i=this._tiles[t].el).onload=r,i.onerror=r,i.complete||(i.src=ni,ut(i),delete this._tiles[t]))}}),pn=dn.extend({defaultWmsParams:{service:"WMS",request:"GetMap",layers:"",styles:"",format:"image/jpeg",transparent:!1,version:"1.1.1"},options:{crs:null,uppercase:!1},initialize:function(t,e){this._url=t;var n=i({},this.defaultWmsParams);for(var o in e)o in this.options||(n[o]=e[o]);var s=(e=l(this,e)).detectRetina&&Ki?2:1,r=this.getTileSize();n.width=r.x*s,n.height=r.y*s,this.wmsParams=n},onAdd:function(t){this._crs=this.options.crs||t.options.crs,this._wmsVersion=parseFloat(this.wmsParams.version);var i=this._wmsVersion>=1.3?"crs":"srs";this.wmsParams[i]=this._crs.code,dn.prototype.onAdd.call(this,t)},getTileUrl:function(t){var i=this._tileCoordsToNwSe(t),e=this._crs,n=b(e.project(i[0]),e.project(i[1])),o=n.min,s=n.max,r=(this._wmsVersion>=1.3&&this._crs===He?[o.y,o.x,s.y,s.x]:[o.x,o.y,s.x,s.y]).join(","),a=L.TileLayer.prototype.getTileUrl.call(this,t);return a+c(this.wmsParams,a,this.options.uppercase)+(this.options.uppercase?"&BBOX=":"&bbox=")+r},setParams:function(t,e){return i(this.wmsParams,t),e||this.redraw(),this}});dn.WMS=pn,Yt.wms=function(t,i){return new pn(t,i)};var mn=Ue.extend({options:{padding:.1,tolerance:0},initialize:function(t){l(this,t),n(this),this._layers=this._layers||{}},onAdd:function(){this._container||(this._initContainer(),this._zoomAnimated&&pt(this._container,"leaflet-zoom-animated")),this.getPane().appendChild(this._container),this._update(),this.on("update",this._updatePaths,this)},onRemove:function(){this.off("update",this._updatePaths,this),this._destroyContainer()},getEvents:function(){var t={viewreset:this._reset,zoom:this._onZoom,moveend:this._update,zoomend:this._onZoomEnd};return this._zoomAnimated&&(t.zoomanim=this._onAnimZoom),t},_onAnimZoom:function(t){this._updateTransform(t.center,t.zoom)},_onZoom:function(){this._updateTransform(this._map.getCenter(),this._map.getZoom())},_updateTransform:function(t,i){var e=this._map.getZoomScale(i,this._zoom),n=Pt(this._container),o=this._map.getSize().multiplyBy(.5+this.options.padding),s=this._map.project(this._center,i),r=this._map.project(t,i).subtract(s),a=o.multiplyBy(-e).add(n).add(o).subtract(r);Ni?wt(this._container,a,e):Lt(this._container,a)},_reset:function(){this._update(),this._updateTransform(this._center,this._zoom);for(var t in this._layers)this._layers[t]._reset()},_onZoomEnd:function(){for(var t in this._layers)this._layers[t]._project()},_updatePaths:function(){for(var t in this._layers)this._layers[t]._update()},_update:function(){var t=this.options.padding,i=this._map.getSize(),e=this._map.containerPointToLayerPoint(i.multiplyBy(-t)).round();this._bounds=new P(e,e.add(i.multiplyBy(1+2*t)).round()),this._center=this._map.getCenter(),this._zoom=this._map.getZoom()}}),fn=mn.extend({getEvents:function(){var t=mn.prototype.getEvents.call(this);return t.viewprereset=this._onViewPreReset,t},_onViewPreReset:function(){this._postponeUpdatePaths=!0},onAdd:function(){mn.prototype.onAdd.call(this),this._draw()},_initContainer:function(){var t=this._container=document.createElement("canvas");V(t,"mousemove",o(this._onMouseMove,32,this),this),V(t,"click dblclick mousedown mouseup contextmenu",this._onClick,this),V(t,"mouseout",this._handleMouseOut,this),this._ctx=t.getContext("2d")},_destroyContainer:function(){delete this._ctx,ut(this._container),q(this._container),delete this._container},_updatePaths:function(){if(!this._postponeUpdatePaths){this._redrawBounds=null;for(var t in this._layers)this._layers[t]._update();this._redraw()}},_update:function(){if(!this._map._animatingZoom||!this._bounds){this._drawnLayers={},mn.prototype._update.call(this);var t=this._bounds,i=this._container,e=t.getSize(),n=Ki?2:1;Lt(i,t.min),i.width=n*e.x,i.height=n*e.y,i.style.width=e.x+"px",i.style.height=e.y+"px",Ki&&this._ctx.scale(2,2),this._ctx.translate(-t.min.x,-t.min.y),this.fire("update")}},_reset:function(){mn.prototype._reset.call(this),this._postponeUpdatePaths&&(this._postponeUpdatePaths=!1,this._updatePaths())},_initPath:function(t){this._updateDashArray(t),this._layers[n(t)]=t;var i=t._order={layer:t,prev:this._drawLast,next:null};this._drawLast&&(this._drawLast.next=i),this._drawLast=i,this._drawFirst=this._drawFirst||this._drawLast},_addPath:function(t){this._requestRedraw(t)},_removePath:function(t){var i=t._order,e=i.next,n=i.prev;e?e.prev=n:this._drawLast=n,n?n.next=e:this._drawFirst=e,delete t._order,delete this._layers[L.stamp(t)],this._requestRedraw(t)},_updatePath:function(t){this._extendRedrawBounds(t),t._project(),t._update(),this._requestRedraw(t)},_updateStyle:function(t){this._updateDashArray(t),this._requestRedraw(t)},_updateDashArray:function(t){if(t.options.dashArray){var i,e=t.options.dashArray.split(","),n=[];for(i=0;i<e.length;i++)n.push(Number(e[i]));t.options._dashArray=n}},_requestRedraw:function(t){this._map&&(this._extendRedrawBounds(t),this._redrawRequest=this._redrawRequest||f(this._redraw,this))},_extendRedrawBounds:function(t){if(t._pxBounds){var i=(t.options.weight||0)+1;this._redrawBounds=this._redrawBounds||new P,this._redrawBounds.extend(t._pxBounds.min.subtract([i,i])),this._redrawBounds.extend(t._pxBounds.max.add([i,i]))}},_redraw:function(){this._redrawRequest=null,this._redrawBounds&&(this._redrawBounds.min._floor(),this._redrawBounds.max._ceil()),this._clear(),this._draw(),this._redrawBounds=null},_clear:function(){var t=this._redrawBounds;if(t){var i=t.getSize();this._ctx.clearRect(t.min.x,t.min.y,i.x,i.y)}else this._ctx.clearRect(0,0,this._container.width,this._container.height)},_draw:function(){var t,i=this._redrawBounds;if(this._ctx.save(),i){var e=i.getSize();this._ctx.beginPath(),this._ctx.rect(i.min.x,i.min.y,e.x,e.y),this._ctx.clip()}this._drawing=!0;for(var n=this._drawFirst;n;n=n.next)t=n.layer,(!i||t._pxBounds&&t._pxBounds.intersects(i))&&t._updatePath();this._drawing=!1,this._ctx.restore()},_updatePoly:function(t,i){if(this._drawing){var e,n,o,s,r=t._parts,a=r.length,h=this._ctx;if(a){for(this._drawnLayers[t._leaflet_id]=t,h.beginPath(),e=0;e<a;e++){for(n=0,o=r[e].length;n<o;n++)s=r[e][n],h[n?"lineTo":"moveTo"](s.x,s.y);i&&h.closePath()}this._fillStroke(h,t)}}},_updateCircle:function(t){if(this._drawing&&!t._empty()){var i=t._point,e=this._ctx,n=Math.max(Math.round(t._radius),1),o=(Math.max(Math.round(t._radiusY),1)||n)/n;this._drawnLayers[t._leaflet_id]=t,1!==o&&(e.save(),e.scale(1,o)),e.beginPath(),e.arc(i.x,i.y/o,n,0,2*Math.PI,!1),1!==o&&e.restore(),this._fillStroke(e,t)}},_fillStroke:function(t,i){var e=i.options;e.fill&&(t.globalAlpha=e.fillOpacity,t.fillStyle=e.fillColor||e.color,t.fill(e.fillRule||"evenodd")),e.stroke&&0!==e.weight&&(t.setLineDash&&t.setLineDash(i.options&&i.options._dashArray||[]),t.globalAlpha=e.opacity,t.lineWidth=e.weight,t.strokeStyle=e.color,t.lineCap=e.lineCap,t.lineJoin=e.lineJoin,t.stroke())},_onClick:function(t){for(var i,e,n=this._map.mouseEventToLayerPoint(t),o=this._drawFirst;o;o=o.next)(i=o.layer).options.interactive&&i._containsPoint(n)&&!this._map._draggableMoved(i)&&(e=i);e&&(et(t),this._fireEvent([e],t))},_onMouseMove:function(t){if(this._map&&!this._map.dragging.moving()&&!this._map._animatingZoom){var i=this._map.mouseEventToLayerPoint(t);this._handleMouseHover(t,i)}},_handleMouseOut:function(t){var i=this._hoveredLayer;i&&(mt(this._container,"leaflet-interactive"),this._fireEvent([i],t,"mouseout"),this._hoveredLayer=null)},_handleMouseHover:function(t,i){for(var e,n,o=this._drawFirst;o;o=o.next)(e=o.layer).options.interactive&&e._containsPoint(i)&&(n=e);n!==this._hoveredLayer&&(this._handleMouseOut(t),n&&(pt(this._container,"leaflet-interactive"),this._fireEvent([n],t,"mouseover"),this._hoveredLayer=n)),this._hoveredLayer&&this._fireEvent([this._hoveredLayer],t)},_fireEvent:function(t,i,e){this._map._fireDOMEvent(i,e||i.type,t)},_bringToFront:function(t){var i=t._order,e=i.next,n=i.prev;e&&(e.prev=n,n?n.next=e:e&&(this._drawFirst=e),i.prev=this._drawLast,this._drawLast.next=i,i.next=null,this._drawLast=i,this._requestRedraw(t))},_bringToBack:function(t){var i=t._order,e=i.next,n=i.prev;n&&(n.next=e,e?e.prev=n:n&&(this._drawLast=n),i.prev=null,i.next=this._drawFirst,this._drawFirst.prev=i,this._drawFirst=i,this._requestRedraw(t))}}),gn=function(){try{return document.namespaces.add("lvml","urn:schemas-microsoft-com:vml"),function(t){return document.createElement("<lvml:"+t+' class="lvml">')}}catch(t){return function(t){return document.createElement("<"+t+' xmlns="urn:schemas-microsoft.com:vml" class="lvml">')}}}(),vn={_initContainer:function(){this._container=ht("div","leaflet-vml-container")},_update:function(){this._map._animatingZoom||(mn.prototype._update.call(this),this.fire("update"))},_initPath:function(t){var i=t._container=gn("shape");pt(i,"leaflet-vml-shape "+(this.options.className||"")),i.coordsize="1 1",t._path=gn("path"),i.appendChild(t._path),this._updateStyle(t),this._layers[n(t)]=t},_addPath:function(t){var i=t._container;this._container.appendChild(i),t.options.interactive&&t.addInteractiveTarget(i)},_removePath:function(t){var i=t._container;ut(i),t.removeInteractiveTarget(i),delete this._layers[n(t)]},_updateStyle:function(t){var i=t._stroke,e=t._fill,n=t.options,o=t._container;o.stroked=!!n.stroke,o.filled=!!n.fill,n.stroke?(i||(i=t._stroke=gn("stroke")),o.appendChild(i),i.weight=n.weight+"px",i.color=n.color,i.opacity=n.opacity,n.dashArray?i.dashStyle=ei(n.dashArray)?n.dashArray.join(" "):n.dashArray.replace(/( *, *)/g," "):i.dashStyle="",i.endcap=n.lineCap.replace("butt","flat"),i.joinstyle=n.lineJoin):i&&(o.removeChild(i),t._stroke=null),n.fill?(e||(e=t._fill=gn("fill")),o.appendChild(e),e.color=n.fillColor||n.color,e.opacity=n.fillOpacity):e&&(o.removeChild(e),t._fill=null)},_updateCircle:function(t){var i=t._point.round(),e=Math.round(t._radius),n=Math.round(t._radiusY||e);this._setPath(t,t._empty()?"M0 0":"AL "+i.x+","+i.y+" "+e+","+n+" 0,23592600")},_setPath:function(t,i){t._path.v=i},_bringToFront:function(t){ct(t._container)},_bringToBack:function(t){_t(t._container)}},yn=Ji?gn:E,xn=mn.extend({getEvents:function(){var t=mn.prototype.getEvents.call(this);return t.zoomstart=this._onZoomStart,t},_initContainer:function(){this._container=yn("svg"),this._container.setAttribute("pointer-events","none"),this._rootGroup=yn("g"),this._container.appendChild(this._rootGroup)},_destroyContainer:function(){ut(this._container),q(this._container),delete this._container,delete this._rootGroup,delete this._svgSize},_onZoomStart:function(){this._update()},_update:function(){if(!this._map._animatingZoom||!this._bounds){mn.prototype._update.call(this);var t=this._bounds,i=t.getSize(),e=this._container;this._svgSize&&this._svgSize.equals(i)||(this._svgSize=i,e.setAttribute("width",i.x),e.setAttribute("height",i.y)),Lt(e,t.min),e.setAttribute("viewBox",[t.min.x,t.min.y,i.x,i.y].join(" ")),this.fire("update")}},_initPath:function(t){var i=t._path=yn("path");t.options.className&&pt(i,t.options.className),t.options.interactive&&pt(i,"leaflet-interactive"),this._updateStyle(t),this._layers[n(t)]=t},_addPath:function(t){this._rootGroup||this._initContainer(),this._rootGroup.appendChild(t._path),t.addInteractiveTarget(t._path)},_removePath:function(t){ut(t._path),t.removeInteractiveTarget(t._path),delete this._layers[n(t)]},_updatePath:function(t){t._project(),t._update()},_updateStyle:function(t){var i=t._path,e=t.options;i&&(e.stroke?(i.setAttribute("stroke",e.color),i.setAttribute("stroke-opacity",e.opacity),i.setAttribute("stroke-width",e.weight),i.setAttribute("stroke-linecap",e.lineCap),i.setAttribute("stroke-linejoin",e.lineJoin),e.dashArray?i.setAttribute("stroke-dasharray",e.dashArray):i.removeAttribute("stroke-dasharray"),e.dashOffset?i.setAttribute("stroke-dashoffset",e.dashOffset):i.removeAttribute("stroke-dashoffset")):i.setAttribute("stroke","none"),e.fill?(i.setAttribute("fill",e.fillColor||e.color),i.setAttribute("fill-opacity",e.fillOpacity),i.setAttribute("fill-rule",e.fillRule||"evenodd")):i.setAttribute("fill","none"))},_updatePoly:function(t,i){this._setPath(t,k(t._parts,i))},_updateCircle:function(t){var i=t._point,e=Math.max(Math.round(t._radius),1),n="a"+e+","+(Math.max(Math.round(t._radiusY),1)||e)+" 0 1,0 ",o=t._empty()?"M0 0":"M"+(i.x-e)+","+i.y+n+2*e+",0 "+n+2*-e+",0 ";this._setPath(t,o)},_setPath:function(t,i){t._path.setAttribute("d",i)},_bringToFront:function(t){ct(t._path)},_bringToBack:function(t){_t(t._path)}});Ji&&xn.include(vn),Le.include({getRenderer:function(t){var i=t.options.renderer||this._getPaneRenderer(t.options.pane)||this.options.renderer||this._renderer;return i||(i=this._renderer=this.options.preferCanvas&&Xt()||Jt()),this.hasLayer(i)||this.addLayer(i),i},_getPaneRenderer:function(t){if("overlayPane"===t||void 0===t)return!1;var i=this._paneRenderers[t];return void 0===i&&(i=xn&&Jt({pane:t})||fn&&Xt({pane:t}),this._paneRenderers[t]=i),i}});var wn=en.extend({initialize:function(t,i){en.prototype.initialize.call(this,this._boundsToLatLngs(t),i)},setBounds:function(t){return this.setLatLngs(this._boundsToLatLngs(t))},_boundsToLatLngs:function(t){return t=z(t),[t.getSouthWest(),t.getNorthWest(),t.getNorthEast(),t.getSouthEast()]}});xn.create=yn,xn.pointsToPath=k,nn.geometryToLayer=Wt,nn.coordsToLatLng=Ht,nn.coordsToLatLngs=Ft,nn.latLngToCoords=Ut,nn.latLngsToCoords=Vt,nn.getFeature=qt,nn.asFeature=Gt,Le.mergeOptions({boxZoom:!0});var Ln=Ze.extend({initialize:function(t){this._map=t,this._container=t._container,this._pane=t._panes.overlayPane,this._resetStateTimeout=0,t.on("unload",this._destroy,this)},addHooks:function(){V(this._container,"mousedown",this._onMouseDown,this)},removeHooks:function(){q(this._container,"mousedown",this._onMouseDown,this)},moved:function(){return this._moved},_destroy:function(){ut(this._pane),delete this._pane},_resetState:function(){this._resetStateTimeout=0,this._moved=!1},_clearDeferredResetState:function(){0!==this._resetStateTimeout&&(clearTimeout(this._resetStateTimeout),this._resetStateTimeout=0)},_onMouseDown:function(t){if(!t.shiftKey||1!==t.which&&1!==t.button)return!1;this._clearDeferredResetState(),this._resetState(),mi(),bt(),this._startPoint=this._map.mouseEventToContainerPoint(t),V(document,{contextmenu:Q,mousemove:this._onMouseMove,mouseup:this._onMouseUp,keydown:this._onKeyDown},this)},_onMouseMove:function(t){this._moved||(this._moved=!0,this._box=ht("div","leaflet-zoom-box",this._container),pt(this._container,"leaflet-crosshair"),this._map.fire("boxzoomstart")),this._point=this._map.mouseEventToContainerPoint(t);var i=new P(this._point,this._startPoint),e=i.getSize();Lt(this._box,i.min),this._box.style.width=e.x+"px",this._box.style.height=e.y+"px"},_finish:function(){this._moved&&(ut(this._box),mt(this._container,"leaflet-crosshair")),fi(),Tt(),q(document,{contextmenu:Q,mousemove:this._onMouseMove,mouseup:this._onMouseUp,keydown:this._onKeyDown},this)},_onMouseUp:function(t){if((1===t.which||1===t.button)&&(this._finish(),this._moved)){this._clearDeferredResetState(),this._resetStateTimeout=setTimeout(e(this._resetState,this),0);var i=new T(this._map.containerPointToLatLng(this._startPoint),this._map.containerPointToLatLng(this._point));this._map.fitBounds(i).fire("boxzoomend",{boxZoomBounds:i})}},_onKeyDown:function(t){27===t.keyCode&&this._finish()}});Le.addInitHook("addHandler","boxZoom",Ln),Le.mergeOptions({doubleClickZoom:!0});var Pn=Ze.extend({addHooks:function(){this._map.on("dblclick",this._onDoubleClick,this)},removeHooks:function(){this._map.off("dblclick",this._onDoubleClick,this)},_onDoubleClick:function(t){var i=this._map,e=i.getZoom(),n=i.options.zoomDelta,o=t.originalEvent.shiftKey?e-n:e+n;"center"===i.options.doubleClickZoom?i.setZoom(o):i.setZoomAround(t.containerPoint,o)}});Le.addInitHook("addHandler","doubleClickZoom",Pn),Le.mergeOptions({dragging:!0,inertia:!zi,inertiaDeceleration:3400,inertiaMaxSpeed:1/0,easeLinearity:.2,worldCopyJump:!1,maxBoundsViscosity:0});var bn=Ze.extend({addHooks:function(){if(!this._draggable){var t=this._map;this._draggable=new Be(t._mapPane,t._container),this._draggable.on({dragstart:this._onDragStart,drag:this._onDrag,dragend:this._onDragEnd},this),this._draggable.on("predrag",this._onPreDragLimit,this),t.options.worldCopyJump&&(this._draggable.on("predrag",this._onPreDragWrap,this),t.on("zoomend",this._onZoomEnd,this),t.whenReady(this._onZoomEnd,this))}pt(this._map._container,"leaflet-grab leaflet-touch-drag"),this._draggable.enable(),this._positions=[],this._times=[]},removeHooks:function(){mt(this._map._container,"leaflet-grab"),mt(this._map._container,"leaflet-touch-drag"),this._draggable.disable()},moved:function(){return this._draggable&&this._draggable._moved},moving:function(){return this._draggable&&this._draggable._moving},_onDragStart:function(){var t=this._map;if(t._stop(),this._map.options.maxBounds&&this._map.options.maxBoundsViscosity){var i=z(this._map.options.maxBounds);this._offsetLimit=b(this._map.latLngToContainerPoint(i.getNorthWest()).multiplyBy(-1),this._map.latLngToContainerPoint(i.getSouthEast()).multiplyBy(-1).add(this._map.getSize())),this._viscosity=Math.min(1,Math.max(0,this._map.options.maxBoundsViscosity))}else this._offsetLimit=null;t.fire("movestart").fire("dragstart"),t.options.inertia&&(this._positions=[],this._times=[])},_onDrag:function(t){if(this._map.options.inertia){var i=this._lastTime=+new Date,e=this._lastPos=this._draggable._absPos||this._draggable._newPos;this._positions.push(e),this._times.push(i),this._prunePositions(i)}this._map.fire("move",t).fire("drag",t)},_prunePositions:function(t){for(;this._positions.length>1&&t-this._times[0]>50;)this._positions.shift(),this._times.shift()},_onZoomEnd:function(){var t=this._map.getSize().divideBy(2),i=this._map.latLngToLayerPoint([0,0]);this._initialWorldOffset=i.subtract(t).x,this._worldWidth=this._map.getPixelWorldBounds().getSize().x},_viscousLimit:function(t,i){return t-(t-i)*this._viscosity},_onPreDragLimit:function(){if(this._viscosity&&this._offsetLimit){var t=this._draggable._newPos.subtract(this._draggable._startPos),i=this._offsetLimit;t.x<i.min.x&&(t.x=this._viscousLimit(t.x,i.min.x)),t.y<i.min.y&&(t.y=this._viscousLimit(t.y,i.min.y)),t.x>i.max.x&&(t.x=this._viscousLimit(t.x,i.max.x)),t.y>i.max.y&&(t.y=this._viscousLimit(t.y,i.max.y)),this._draggable._newPos=this._draggable._startPos.add(t)}},_onPreDragWrap:function(){var t=this._worldWidth,i=Math.round(t/2),e=this._initialWorldOffset,n=this._draggable._newPos.x,o=(n-i+e)%t+i-e,s=(n+i+e)%t-i-e,r=Math.abs(o+e)<Math.abs(s+e)?o:s;this._draggable._absPos=this._draggable._newPos.clone(),this._draggable._newPos.x=r},_onDragEnd:function(t){var i=this._map,e=i.options,n=!e.inertia||this._times.length<2;if(i.fire("dragend",t),n)i.fire("moveend");else{this._prunePositions(+new Date);var o=this._lastPos.subtract(this._positions[0]),s=(this._lastTime-this._times[0])/1e3,r=e.easeLinearity,a=o.multiplyBy(r/s),h=a.distanceTo([0,0]),u=Math.min(e.inertiaMaxSpeed,h),l=a.multiplyBy(u/h),c=u/(e.inertiaDeceleration*r),_=l.multiplyBy(-c/2).round();_.x||_.y?(_=i._limitOffset(_,i.options.maxBounds),f(function(){i.panBy(_,{duration:c,easeLinearity:r,noMoveStart:!0,animate:!0})})):i.fire("moveend")}}});Le.addInitHook("addHandler","dragging",bn),Le.mergeOptions({keyboard:!0,keyboardPanDelta:80});var Tn=Ze.extend({keyCodes:{left:[37],right:[39],down:[40],up:[38],zoomIn:[187,107,61,171],zoomOut:[189,109,54,173]},initialize:function(t){this._map=t,this._setPanDelta(t.options.keyboardPanDelta),this._setZoomDelta(t.options.zoomDelta)},addHooks:function(){var t=this._map._container;t.tabIndex<=0&&(t.tabIndex="0"),V(t,{focus:this._onFocus,blur:this._onBlur,mousedown:this._onMouseDown},this),this._map.on({focus:this._addHooks,blur:this._removeHooks},this)},removeHooks:function(){this._removeHooks(),q(this._map._container,{focus:this._onFocus,blur:this._onBlur,mousedown:this._onMouseDown},this),this._map.off({focus:this._addHooks,blur:this._removeHooks},this)},_onMouseDown:function(){if(!this._focused){var t=document.body,i=document.documentElement,e=t.scrollTop||i.scrollTop,n=t.scrollLeft||i.scrollLeft;this._map._container.focus(),window.scrollTo(n,e)}},_onFocus:function(){this._focused=!0,this._map.fire("focus")},_onBlur:function(){this._focused=!1,this._map.fire("blur")},_setPanDelta:function(t){var i,e,n=this._panKeys={},o=this.keyCodes;for(i=0,e=o.left.length;i<e;i++)n[o.left[i]]=[-1*t,0];for(i=0,e=o.right.length;i<e;i++)n[o.right[i]]=[t,0];for(i=0,e=o.down.length;i<e;i++)n[o.down[i]]=[0,t];for(i=0,e=o.up.length;i<e;i++)n[o.up[i]]=[0,-1*t]},_setZoomDelta:function(t){var i,e,n=this._zoomKeys={},o=this.keyCodes;for(i=0,e=o.zoomIn.length;i<e;i++)n[o.zoomIn[i]]=t;for(i=0,e=o.zoomOut.length;i<e;i++)n[o.zoomOut[i]]=-t},_addHooks:function(){V(document,"keydown",this._onKeyDown,this)},_removeHooks:function(){q(document,"keydown",this._onKeyDown,this)},_onKeyDown:function(t){if(!(t.altKey||t.ctrlKey||t.metaKey)){var i,e=t.keyCode,n=this._map;if(e in this._panKeys){if(n._panAnim&&n._panAnim._inProgress)return;i=this._panKeys[e],t.shiftKey&&(i=w(i).multiplyBy(3)),n.panBy(i),n.options.maxBounds&&n.panInsideBounds(n.options.maxBounds)}else if(e in this._zoomKeys)n.setZoom(n.getZoom()+(t.shiftKey?3:1)*this._zoomKeys[e]);else{if(27!==e||!n._popup||!n._popup.options.closeOnEscapeKey)return;n.closePopup()}Q(t)}}});Le.addInitHook("addHandler","keyboard",Tn),Le.mergeOptions({scrollWheelZoom:!0,wheelDebounceTime:40,wheelPxPerZoomLevel:60});var zn=Ze.extend({addHooks:function(){V(this._map._container,"mousewheel",this._onWheelScroll,this),this._delta=0},removeHooks:function(){q(this._map._container,"mousewheel",this._onWheelScroll,this)},_onWheelScroll:function(t){var i=it(t),n=this._map.options.wheelDebounceTime;this._delta+=i,this._lastMousePos=this._map.mouseEventToContainerPoint(t),this._startTime||(this._startTime=+new Date);var o=Math.max(n-(+new Date-this._startTime),0);clearTimeout(this._timer),this._timer=setTimeout(e(this._performZoom,this),o),Q(t)},_performZoom:function(){var t=this._map,i=t.getZoom(),e=this._map.options.zoomSnap||0;t._stop();var n=this._delta/(4*this._map.options.wheelPxPerZoomLevel),o=4*Math.log(2/(1+Math.exp(-Math.abs(n))))/Math.LN2,s=e?Math.ceil(o/e)*e:o,r=t._limitZoom(i+(this._delta>0?s:-s))-i;this._delta=0,this._startTime=null,r&&("center"===t.options.scrollWheelZoom?t.setZoom(i+r):t.setZoomAround(this._lastMousePos,i+r))}});Le.addInitHook("addHandler","scrollWheelZoom",zn),Le.mergeOptions({tap:!0,tapTolerance:15});var Mn=Ze.extend({addHooks:function(){V(this._map._container,"touchstart",this._onDown,this)},removeHooks:function(){q(this._map._container,"touchstart",this._onDown,this)},_onDown:function(t){if(t.touches){if($(t),this._fireClick=!0,t.touches.length>1)return this._fireClick=!1,void clearTimeout(this._holdTimeout);var i=t.touches[0],n=i.target;this._startPos=this._newPos=new x(i.clientX,i.clientY),n.tagName&&"a"===n.tagName.toLowerCase()&&pt(n,"leaflet-active"),this._holdTimeout=setTimeout(e(function(){this._isTapValid()&&(this._fireClick=!1,this._onUp(),this._simulateEvent("contextmenu",i))},this),1e3),this._simulateEvent("mousedown",i),V(document,{touchmove:this._onMove,touchend:this._onUp},this)}},_onUp:function(t){if(clearTimeout(this._holdTimeout),q(document,{touchmove:this._onMove,touchend:this._onUp},this),this._fireClick&&t&&t.changedTouches){var i=t.changedTouches[0],e=i.target;e&&e.tagName&&"a"===e.tagName.toLowerCase()&&mt(e,"leaflet-active"),this._simulateEvent("mouseup",i),this._isTapValid()&&this._simulateEvent("click",i)}},_isTapValid:function(){return this._newPos.distanceTo(this._startPos)<=this._map.options.tapTolerance},_onMove:function(t){var i=t.touches[0];this._newPos=new x(i.clientX,i.clientY),this._simulateEvent("mousemove",i)},_simulateEvent:function(t,i){var e=document.createEvent("MouseEvents");e._simulated=!0,i.target._simulatedClick=!0,e.initMouseEvent(t,!0,!0,window,1,i.screenX,i.screenY,i.clientX,i.clientY,!1,!1,!1,!1,0,null),i.target.dispatchEvent(e)}});Vi&&!Ui&&Le.addInitHook("addHandler","tap",Mn),Le.mergeOptions({touchZoom:Vi&&!zi,bounceAtZoomLimits:!0});var Cn=Ze.extend({addHooks:function(){pt(this._map._container,"leaflet-touch-zoom"),V(this._map._container,"touchstart",this._onTouchStart,this)},removeHooks:function(){mt(this._map._container,"leaflet-touch-zoom"),q(this._map._container,"touchstart",this._onTouchStart,this)},_onTouchStart:function(t){var i=this._map;if(t.touches&&2===t.touches.length&&!i._animatingZoom&&!this._zooming){var e=i.mouseEventToContainerPoint(t.touches[0]),n=i.mouseEventToContainerPoint(t.touches[1]);this._centerPoint=i.getSize()._divideBy(2),this._startLatLng=i.containerPointToLatLng(this._centerPoint),"center"!==i.options.touchZoom&&(this._pinchStartLatLng=i.containerPointToLatLng(e.add(n)._divideBy(2))),this._startDist=e.distanceTo(n),this._startZoom=i.getZoom(),this._moved=!1,this._zooming=!0,i._stop(),V(document,"touchmove",this._onTouchMove,this),V(document,"touchend",this._onTouchEnd,this),$(t)}},_onTouchMove:function(t){if(t.touches&&2===t.touches.length&&this._zooming){var i=this._map,n=i.mouseEventToContainerPoint(t.touches[0]),o=i.mouseEventToContainerPoint(t.touches[1]),s=n.distanceTo(o)/this._startDist;if(this._zoom=i.getScaleZoom(s,this._startZoom),!i.options.bounceAtZoomLimits&&(this._zoom<i.getMinZoom()&&s<1||this._zoom>i.getMaxZoom()&&s>1)&&(this._zoom=i._limitZoom(this._zoom)),"center"===i.options.touchZoom){if(this._center=this._startLatLng,1===s)return}else{var r=n._add(o)._divideBy(2)._subtract(this._centerPoint);if(1===s&&0===r.x&&0===r.y)return;this._center=i.unproject(i.project(this._pinchStartLatLng,this._zoom).subtract(r),this._zoom)}this._moved||(i._moveStart(!0,!1),this._moved=!0),g(this._animRequest);var a=e(i._move,i,this._center,this._zoom,{pinch:!0,round:!1});this._animRequest=f(a,this,!0),$(t)}},_onTouchEnd:function(){this._moved&&this._zooming?(this._zooming=!1,g(this._animRequest),q(document,"touchmove",this._onTouchMove),q(document,"touchend",this._onTouchEnd),this._map.options.zoomAnimation?this._map._animateZoom(this._center,this._map._limitZoom(this._zoom),!0,this._map.options.zoomSnap):this._map._resetView(this._center,this._map._limitZoom(this._zoom))):this._zooming=!1}});Le.addInitHook("addHandler","touchZoom",Cn),Le.BoxZoom=Ln,Le.DoubleClickZoom=Pn,Le.Drag=bn,Le.Keyboard=Tn,Le.ScrollWheelZoom=zn,Le.Tap=Mn,Le.TouchZoom=Cn;var Zn=window.L;window.L=t,Object.freeze=$t,t.version="1.3.1+HEAD.ba6f97f",t.noConflict=function(){return window.L=Zn,this},t.Control=Pe,t.control=be,t.Browser=$i,t.Evented=ui,t.Mixin=Ee,t.Util=ai,t.Class=v,t.Handler=Ze,t.extend=i,t.bind=e,t.stamp=n,t.setOptions=l,t.DomEvent=de,t.DomUtil=xe,t.PosAnimation=we,t.Draggable=Be,t.LineUtil=Oe,t.PolyUtil=Re,t.Point=x,t.point=w,t.Bounds=P,t.bounds=b,t.Transformation=Z,t.transformation=S,t.Projection=je,t.LatLng=M,t.latLng=C,t.LatLngBounds=T,t.latLngBounds=z,t.CRS=ci,t.GeoJSON=nn,t.geoJSON=Kt,t.geoJson=sn,t.Layer=Ue,t.LayerGroup=Ve,t.layerGroup=function(t,i){return new Ve(t,i)},t.FeatureGroup=qe,t.featureGroup=function(t){return new qe(t)},t.ImageOverlay=rn,t.imageOverlay=function(t,i,e){return new rn(t,i,e)},t.VideoOverlay=an,t.videoOverlay=function(t,i,e){return new an(t,i,e)},t.DivOverlay=hn,t.Popup=un,t.popup=function(t,i){return new un(t,i)},t.Tooltip=ln,t.tooltip=function(t,i){return new ln(t,i)},t.Icon=Ge,t.icon=function(t){return new Ge(t)},t.DivIcon=cn,t.divIcon=function(t){return new cn(t)},t.Marker=Xe,t.marker=function(t,i){return new Xe(t,i)},t.TileLayer=dn,t.tileLayer=Yt,t.GridLayer=_n,t.gridLayer=function(t){return new _n(t)},t.SVG=xn,t.svg=Jt,t.Renderer=mn,t.Canvas=fn,t.canvas=Xt,t.Path=Je,t.CircleMarker=$e,t.circleMarker=function(t,i){return new $e(t,i)},t.Circle=Qe,t.circle=function(t,i,e){return new Qe(t,i,e)},t.Polyline=tn,t.polyline=function(t,i){return new tn(t,i)},t.Polygon=en,t.polygon=function(t,i){return new en(t,i)},t.Rectangle=wn,t.rectangle=function(t,i){return new wn(t,i)},t.Map=Le,t.map=function(t,i){return new Le(t,i)}});
\ No newline at end of file
+!function(t,i){"object"==typeof exports&&"undefined"!=typeof module?i(exports):"function"==typeof define&&define.amd?define(["exports"],i):i(t.L={})}(this,function(t){"use strict";var i=Object.freeze;function h(t){var i,e,n,o;for(e=1,n=arguments.length;e<n;e++)for(i in o=arguments[e])t[i]=o[i];return t}Object.freeze=function(t){return t};var s=Object.create||function(t){return e.prototype=t,new e};function e(){}function a(t,i){var e=Array.prototype.slice;if(t.bind)return t.bind.apply(t,e.call(arguments,1));var n=e.call(arguments,2);return function(){return t.apply(i,n.length?n.concat(e.call(arguments)):arguments)}}var n=0;function u(t){return t._leaflet_id=t._leaflet_id||++n,t._leaflet_id}function o(t,i,e){var n,o,s,r;return r=function(){n=!1,o&&(s.apply(e,o),o=!1)},s=function(){n?o=arguments:(t.apply(e,arguments),setTimeout(r,i),n=!0)}}function r(t,i,e){var n=i[1],o=i[0],s=n-o;return t===n&&e?t:((t-o)%s+s)%s+o}function l(){return!1}function c(t,i){var e=Math.pow(10,void 0===i?6:i);return Math.round(t*e)/e}function _(t){return t.trim?t.trim():t.replace(/^\s+|\s+$/g,"")}function d(t){return _(t).split(/\s+/)}function p(t,i){for(var e in t.hasOwnProperty("options")||(t.options=t.options?s(t.options):{}),i)t.options[e]=i[e];return t.options}function m(t,i,e){var n=[];for(var o in t)n.push(encodeURIComponent(e?o.toUpperCase():o)+"="+encodeURIComponent(t[o]));return(i&&-1!==i.indexOf("?")?"&":"?")+n.join("&")}var f=/\{ *([\w_-]+) *\}/g;function g(t,n){return t.replace(f,function(t,i){var e=n[i];if(void 0===e)throw new Error("No value provided for variable "+t);return"function"==typeof e&&(e=e(n)),e})}var v=Array.isArray||function(t){return"[object Array]"===Object.prototype.toString.call(t)};function y(t,i){for(var e=0;e<t.length;e++)if(t[e]===i)return e;return-1}var x="data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs=";function w(t){return window["webkit"+t]||window["moz"+t]||window["ms"+t]}var P=0;function b(t){var i=+new Date,e=Math.max(0,16-(i-P));return P=i+e,window.setTimeout(t,e)}var T=window.requestAnimationFrame||w("RequestAnimationFrame")||b,z=window.cancelAnimationFrame||w("CancelAnimationFrame")||w("CancelRequestAnimationFrame")||function(t){window.clearTimeout(t)};function M(t,i,e){if(!e||T!==b)return T.call(window,a(t,i));t.call(i)}function C(t){t&&z.call(window,t)}var S=(Object.freeze||Object)({freeze:i,extend:h,create:s,bind:a,lastId:n,stamp:u,throttle:o,wrapNum:r,falseFn:l,formatNum:c,trim:_,splitWords:d,setOptions:p,getParamString:m,template:g,isArray:v,indexOf:y,emptyImageUrl:x,requestFn:T,cancelFn:z,requestAnimFrame:M,cancelAnimFrame:C});function E(){}E.extend=function(t){function i(){this.initialize&&this.initialize.apply(this,arguments),this.callInitHooks()}var e=i.__super__=this.prototype,n=s(e);for(var o in(n.constructor=i).prototype=n,this)this.hasOwnProperty(o)&&"prototype"!==o&&"__super__"!==o&&(i[o]=this[o]);return t.statics&&(h(i,t.statics),delete t.statics),t.includes&&(function(t){if("undefined"==typeof L||!L||!L.Mixin)return;t=v(t)?t:[t];for(var i=0;i<t.length;i++)t[i]===L.Mixin.Events&&console.warn("Deprecated include of L.Mixin.Events: this property will be removed in future releases, please inherit from L.Evented instead.",(new Error).stack)}(t.includes),h.apply(null,[n].concat(t.includes)),delete t.includes),n.options&&(t.options=h(s(n.options),t.options)),h(n,t),n._initHooks=[],n.callInitHooks=function(){if(!this._initHooksCalled){e.callInitHooks&&e.callInitHooks.call(this),this._initHooksCalled=!0;for(var t=0,i=n._initHooks.length;t<i;t++)n._initHooks[t].call(this)}},i},E.include=function(t){return h(this.prototype,t),this},E.mergeOptions=function(t){return h(this.prototype.options,t),this},E.addInitHook=function(t){var i=Array.prototype.slice.call(arguments,1),e="function"==typeof t?t:function(){this[t].apply(this,i)};return this.prototype._initHooks=this.prototype._initHooks||[],this.prototype._initHooks.push(e),this};var Z={on:function(t,i,e){if("object"==typeof t)for(var n in t)this._on(n,t[n],i);else for(var o=0,s=(t=d(t)).length;o<s;o++)this._on(t[o],i,e);return this},off:function(t,i,e){if(t)if("object"==typeof t)for(var n in t)this._off(n,t[n],i);else for(var o=0,s=(t=d(t)).length;o<s;o++)this._off(t[o],i,e);else delete this._events;return this},_on:function(t,i,e){this._events=this._events||{};var n=this._events[t];n||(n=[],this._events[t]=n),e===this&&(e=void 0);for(var o={fn:i,ctx:e},s=n,r=0,a=s.length;r<a;r++)if(s[r].fn===i&&s[r].ctx===e)return;s.push(o)},_off:function(t,i,e){var n,o,s;if(this._events&&(n=this._events[t]))if(i){if(e===this&&(e=void 0),n)for(o=0,s=n.length;o<s;o++){var r=n[o];if(r.ctx===e&&r.fn===i)return r.fn=l,this._firingCount&&(this._events[t]=n=n.slice()),void n.splice(o,1)}}else{for(o=0,s=n.length;o<s;o++)n[o].fn=l;delete this._events[t]}},fire:function(t,i,e){if(!this.listens(t,e))return this;var n=h({},i,{type:t,target:this,sourceTarget:i&&i.sourceTarget||this});if(this._events){var o=this._events[t];if(o){this._firingCount=this._firingCount+1||1;for(var s=0,r=o.length;s<r;s++){var a=o[s];a.fn.call(a.ctx||this,n)}this._firingCount--}}return e&&this._propagateEvent(n),this},listens:function(t,i){var e=this._events&&this._events[t];if(e&&e.length)return!0;if(i)for(var n in this._eventParents)if(this._eventParents[n].listens(t,i))return!0;return!1},once:function(t,i,e){if("object"==typeof t){for(var n in t)this.once(n,t[n],i);return this}var o=a(function(){this.off(t,i,e).off(t,o,e)},this);return this.on(t,i,e).on(t,o,e)},addEventParent:function(t){return this._eventParents=this._eventParents||{},this._eventParents[u(t)]=t,this},removeEventParent:function(t){return this._eventParents&&delete this._eventParents[u(t)],this},_propagateEvent:function(t){for(var i in this._eventParents)this._eventParents[i].fire(t.type,h({layer:t.target,propagatedFrom:t.target},t),!0)}};Z.addEventListener=Z.on,Z.removeEventListener=Z.clearAllEventListeners=Z.off,Z.addOneTimeEventListener=Z.once,Z.fireEvent=Z.fire,Z.hasEventListeners=Z.listens;var k=E.extend(Z);function B(t,i,e){this.x=e?Math.round(t):t,this.y=e?Math.round(i):i}var A=Math.trunc||function(t){return 0<t?Math.floor(t):Math.ceil(t)};function I(t,i,e){return t instanceof B?t:v(t)?new B(t[0],t[1]):null==t?t:"object"==typeof t&&"x"in t&&"y"in t?new B(t.x,t.y):new B(t,i,e)}function O(t,i){if(t)for(var e=i?[t,i]:t,n=0,o=e.length;n<o;n++)this.extend(e[n])}function R(t,i){return!t||t instanceof O?t:new O(t,i)}function N(t,i){if(t)for(var e=i?[t,i]:t,n=0,o=e.length;n<o;n++)this.extend(e[n])}function D(t,i){return t instanceof N?t:new N(t,i)}function j(t,i,e){if(isNaN(t)||isNaN(i))throw new Error("Invalid LatLng object: ("+t+", "+i+")");this.lat=+t,this.lng=+i,void 0!==e&&(this.alt=+e)}function W(t,i,e){return t instanceof j?t:v(t)&&"object"!=typeof t[0]?3===t.length?new j(t[0],t[1],t[2]):2===t.length?new j(t[0],t[1]):null:null==t?t:"object"==typeof t&&"lat"in t?new j(t.lat,"lng"in t?t.lng:t.lon,t.alt):void 0===i?null:new j(t,i,e)}B.prototype={clone:function(){return new B(this.x,this.y)},add:function(t){return this.clone()._add(I(t))},_add:function(t){return this.x+=t.x,this.y+=t.y,this},subtract:function(t){return this.clone()._subtract(I(t))},_subtract:function(t){return this.x-=t.x,this.y-=t.y,this},divideBy:function(t){return this.clone()._divideBy(t)},_divideBy:function(t){return this.x/=t,this.y/=t,this},multiplyBy:function(t){return this.clone()._multiplyBy(t)},_multiplyBy:function(t){return this.x*=t,this.y*=t,this},scaleBy:function(t){return new B(this.x*t.x,this.y*t.y)},unscaleBy:function(t){return new B(this.x/t.x,this.y/t.y)},round:function(){return this.clone()._round()},_round:function(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this},floor:function(){return this.clone()._floor()},_floor:function(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this},ceil:function(){return this.clone()._ceil()},_ceil:function(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this},trunc:function(){return this.clone()._trunc()},_trunc:function(){return this.x=A(this.x),this.y=A(this.y),this},distanceTo:function(t){var i=(t=I(t)).x-this.x,e=t.y-this.y;return Math.sqrt(i*i+e*e)},equals:function(t){return(t=I(t)).x===this.x&&t.y===this.y},contains:function(t){return t=I(t),Math.abs(t.x)<=Math.abs(this.x)&&Math.abs(t.y)<=Math.abs(this.y)},toString:function(){return"Point("+c(this.x)+", "+c(this.y)+")"}},O.prototype={extend:function(t){return t=I(t),this.min||this.max?(this.min.x=Math.min(t.x,this.min.x),this.max.x=Math.max(t.x,this.max.x),this.min.y=Math.min(t.y,this.min.y),this.max.y=Math.max(t.y,this.max.y)):(this.min=t.clone(),this.max=t.clone()),this},getCenter:function(t){return new B((this.min.x+this.max.x)/2,(this.min.y+this.max.y)/2,t)},getBottomLeft:function(){return new B(this.min.x,this.max.y)},getTopRight:function(){return new B(this.max.x,this.min.y)},getTopLeft:function(){return this.min},getBottomRight:function(){return this.max},getSize:function(){return this.max.subtract(this.min)},contains:function(t){var i,e;return(t="number"==typeof t[0]||t instanceof B?I(t):R(t))instanceof O?(i=t.min,e=t.max):i=e=t,i.x>=this.min.x&&e.x<=this.max.x&&i.y>=this.min.y&&e.y<=this.max.y},intersects:function(t){t=R(t);var i=this.min,e=this.max,n=t.min,o=t.max,s=o.x>=i.x&&n.x<=e.x,r=o.y>=i.y&&n.y<=e.y;return s&&r},overlaps:function(t){t=R(t);var i=this.min,e=this.max,n=t.min,o=t.max,s=o.x>i.x&&n.x<e.x,r=o.y>i.y&&n.y<e.y;return s&&r},isValid:function(){return!(!this.min||!this.max)}},N.prototype={extend:function(t){var i,e,n=this._southWest,o=this._northEast;if(t instanceof j)e=i=t;else{if(!(t instanceof N))return t?this.extend(W(t)||D(t)):this;if(i=t._southWest,e=t._northEast,!i||!e)return this}return n||o?(n.lat=Math.min(i.lat,n.lat),n.lng=Math.min(i.lng,n.lng),o.lat=Math.max(e.lat,o.lat),o.lng=Math.max(e.lng,o.lng)):(this._southWest=new j(i.lat,i.lng),this._northEast=new j(e.lat,e.lng)),this},pad:function(t){var i=this._southWest,e=this._northEast,n=Math.abs(i.lat-e.lat)*t,o=Math.abs(i.lng-e.lng)*t;return new N(new j(i.lat-n,i.lng-o),new j(e.lat+n,e.lng+o))},getCenter:function(){return new j((this._southWest.lat+this._northEast.lat)/2,(this._southWest.lng+this._northEast.lng)/2)},getSouthWest:function(){return this._southWest},getNorthEast:function(){return this._northEast},getNorthWest:function(){return new j(this.getNorth(),this.getWest())},getSouthEast:function(){return new j(this.getSouth(),this.getEast())},getWest:function(){return this._southWest.lng},getSouth:function(){return this._southWest.lat},getEast:function(){return this._northEast.lng},getNorth:function(){return this._northEast.lat},contains:function(t){t="number"==typeof t[0]||t instanceof j||"lat"in t?W(t):D(t);var i,e,n=this._southWest,o=this._northEast;return t instanceof N?(i=t.getSouthWest(),e=t.getNorthEast()):i=e=t,i.lat>=n.lat&&e.lat<=o.lat&&i.lng>=n.lng&&e.lng<=o.lng},intersects:function(t){t=D(t);var i=this._southWest,e=this._northEast,n=t.getSouthWest(),o=t.getNorthEast(),s=o.lat>=i.lat&&n.lat<=e.lat,r=o.lng>=i.lng&&n.lng<=e.lng;return s&&r},overlaps:function(t){t=D(t);var i=this._southWest,e=this._northEast,n=t.getSouthWest(),o=t.getNorthEast(),s=o.lat>i.lat&&n.lat<e.lat,r=o.lng>i.lng&&n.lng<e.lng;return s&&r},toBBoxString:function(){return[this.getWest(),this.getSouth(),this.getEast(),this.getNorth()].join(",")},equals:function(t,i){return!!t&&(t=D(t),this._southWest.equals(t.getSouthWest(),i)&&this._northEast.equals(t.getNorthEast(),i))},isValid:function(){return!(!this._southWest||!this._northEast)}};var H,F={latLngToPoint:function(t,i){var e=this.projection.project(t),n=this.scale(i);return this.transformation._transform(e,n)},pointToLatLng:function(t,i){var e=this.scale(i),n=this.transformation.untransform(t,e);return this.projection.unproject(n)},project:function(t){return this.projection.project(t)},unproject:function(t){return this.projection.unproject(t)},scale:function(t){return 256*Math.pow(2,t)},zoom:function(t){return Math.log(t/256)/Math.LN2},getProjectedBounds:function(t){if(this.infinite)return null;var i=this.projection.bounds,e=this.scale(t);return new O(this.transformation.transform(i.min,e),this.transformation.transform(i.max,e))},infinite:!(j.prototype={equals:function(t,i){return!!t&&(t=W(t),Math.max(Math.abs(this.lat-t.lat),Math.abs(this.lng-t.lng))<=(void 0===i?1e-9:i))},toString:function(t){return"LatLng("+c(this.lat,t)+", "+c(this.lng,t)+")"},distanceTo:function(t){return U.distance(this,W(t))},wrap:function(){return U.wrapLatLng(this)},toBounds:function(t){var i=180*t/40075017,e=i/Math.cos(Math.PI/180*this.lat);return D([this.lat-i,this.lng-e],[this.lat+i,this.lng+e])},clone:function(){return new j(this.lat,this.lng,this.alt)}}),wrapLatLng:function(t){var i=this.wrapLng?r(t.lng,this.wrapLng,!0):t.lng;return new j(this.wrapLat?r(t.lat,this.wrapLat,!0):t.lat,i,t.alt)},wrapLatLngBounds:function(t){var i=t.getCenter(),e=this.wrapLatLng(i),n=i.lat-e.lat,o=i.lng-e.lng;if(0==n&&0==o)return t;var s=t.getSouthWest(),r=t.getNorthEast();return new N(new j(s.lat-n,s.lng-o),new j(r.lat-n,r.lng-o))}},U=h({},F,{wrapLng:[-180,180],R:6371e3,distance:function(t,i){var e=Math.PI/180,n=t.lat*e,o=i.lat*e,s=Math.sin((i.lat-t.lat)*e/2),r=Math.sin((i.lng-t.lng)*e/2),a=s*s+Math.cos(n)*Math.cos(o)*r*r,h=2*Math.atan2(Math.sqrt(a),Math.sqrt(1-a));return this.R*h}}),V=6378137,q={R:V,MAX_LATITUDE:85.0511287798,project:function(t){var i=Math.PI/180,e=this.MAX_LATITUDE,n=Math.max(Math.min(e,t.lat),-e),o=Math.sin(n*i);return new B(this.R*t.lng*i,this.R*Math.log((1+o)/(1-o))/2)},unproject:function(t){var i=180/Math.PI;return new j((2*Math.atan(Math.exp(t.y/this.R))-Math.PI/2)*i,t.x*i/this.R)},bounds:(H=V*Math.PI,new O([-H,-H],[H,H]))};function G(t,i,e,n){if(v(t))return this._a=t[0],this._b=t[1],this._c=t[2],void(this._d=t[3]);this._a=t,this._b=i,this._c=e,this._d=n}function K(t,i,e,n){return new G(t,i,e,n)}G.prototype={transform:function(t,i){return this._transform(t.clone(),i)},_transform:function(t,i){return i=i||1,t.x=i*(this._a*t.x+this._b),t.y=i*(this._c*t.y+this._d),t},untransform:function(t,i){return i=i||1,new B((t.x/i-this._b)/this._a,(t.y/i-this._d)/this._c)}};var Y,X=h({},U,{code:"EPSG:3857",projection:q,transformation:(Y=.5/(Math.PI*q.R),K(Y,.5,-Y,.5))}),J=h({},X,{code:"EPSG:900913"});function $(t){return document.createElementNS("http://www.w3.org/2000/svg",t)}function Q(t,i){var e,n,o,s,r,a,h="";for(e=0,o=t.length;e<o;e++){for(n=0,s=(r=t[e]).length;n<s;n++)h+=(n?"L":"M")+(a=r[n]).x+" "+a.y;h+=i?Zt?"z":"x":""}return h||"M0 0"}var tt=document.documentElement.style,it="ActiveXObject"in window,et=it&&!document.addEventListener,nt="msLaunchUri"in navigator&&!("documentMode"in document),ot=Bt("webkit"),st=Bt("android"),rt=Bt("android 2")||Bt("android 3"),at=parseInt(/WebKit\/([0-9]+)|$/.exec(navigator.userAgent)[1],10),ht=st&&Bt("Google")&&at<537&&!("AudioNode"in window),ut=!!window.opera,lt=Bt("chrome"),ct=Bt("gecko")&&!ot&&!ut&&!it,_t=!lt&&Bt("safari"),dt=Bt("phantom"),pt="OTransition"in tt,mt=0===navigator.platform.indexOf("Win"),ft=it&&"transition"in tt,gt="WebKitCSSMatrix"in window&&"m11"in new window.WebKitCSSMatrix&&!rt,vt="MozPerspective"in tt,yt=!window.L_DISABLE_3D&&(ft||gt||vt)&&!pt&&!dt,xt="undefined"!=typeof orientation||Bt("mobile"),wt=xt&&ot,Pt=xt&>,Lt=!window.PointerEvent&&window.MSPointerEvent,bt=!(ot||!window.PointerEvent&&!Lt),Tt=!window.L_NO_TOUCH&&(bt||"ontouchstart"in window||window.DocumentTouch&&document instanceof window.DocumentTouch),zt=xt&&ut,Mt=xt&&ct,Ct=1<(window.devicePixelRatio||window.screen.deviceXDPI/window.screen.logicalXDPI),St=function(){var t=!1;try{var i=Object.defineProperty({},"passive",{get:function(){t=!0}});window.addEventListener("testPassiveEventSupport",l,i),window.removeEventListener("testPassiveEventSupport",l,i)}catch(t){}return t},Et=!!document.createElement("canvas").getContext,Zt=!(!document.createElementNS||!$("svg").createSVGRect),kt=!Zt&&function(){try{var t=document.createElement("div");t.innerHTML='<v:shape adj="1"/>';var i=t.firstChild;return i.style.behavior="url(#default#VML)",i&&"object"==typeof i.adj}catch(t){return!1}}();function Bt(t){return 0<=navigator.userAgent.toLowerCase().indexOf(t)}var At=(Object.freeze||Object)({ie:it,ielt9:et,edge:nt,webkit:ot,android:st,android23:rt,androidStock:ht,opera:ut,chrome:lt,gecko:ct,safari:_t,phantom:dt,opera12:pt,win:mt,ie3d:ft,webkit3d:gt,gecko3d:vt,any3d:yt,mobile:xt,mobileWebkit:wt,mobileWebkit3d:Pt,msPointer:Lt,pointer:bt,touch:Tt,mobileOpera:zt,mobileGecko:Mt,retina:Ct,passiveEvents:St,canvas:Et,svg:Zt,vml:kt}),It=Lt?"MSPointerDown":"pointerdown",Ot=Lt?"MSPointerMove":"pointermove",Rt=Lt?"MSPointerUp":"pointerup",Nt=Lt?"MSPointerCancel":"pointercancel",Dt=["INPUT","SELECT","OPTION"],jt={},Wt=!1,Ht=0;function Ft(t,i,e,n){return"touchstart"===i?function(t,i,e){var n=a(function(t){if("mouse"!==t.pointerType&&t.MSPOINTER_TYPE_MOUSE&&t.pointerType!==t.MSPOINTER_TYPE_MOUSE){if(!(Dt.indexOf(t.target.tagName)<0))return;ji(t)}Gt(t,i)});t["_leaflet_touchstart"+e]=n,t.addEventListener(It,n,!1),Wt||(document.documentElement.addEventListener(It,Ut,!0),document.documentElement.addEventListener(Ot,Vt,!0),document.documentElement.addEventListener(Rt,qt,!0),document.documentElement.addEventListener(Nt,qt,!0),Wt=!0)}(t,e,n):"touchmove"===i?function(t,i,e){function n(t){(t.pointerType!==t.MSPOINTER_TYPE_MOUSE&&"mouse"!==t.pointerType||0!==t.buttons)&&Gt(t,i)}t["_leaflet_touchmove"+e]=n,t.addEventListener(Ot,n,!1)}(t,e,n):"touchend"===i&&function(t,i,e){function n(t){Gt(t,i)}t["_leaflet_touchend"+e]=n,t.addEventListener(Rt,n,!1),t.addEventListener(Nt,n,!1)}(t,e,n),this}function Ut(t){jt[t.pointerId]=t,Ht++}function Vt(t){jt[t.pointerId]&&(jt[t.pointerId]=t)}function qt(t){delete jt[t.pointerId],Ht--}function Gt(t,i){for(var e in t.touches=[],jt)t.touches.push(jt[e]);t.changedTouches=[t],i(t)}var Kt=Lt?"MSPointerDown":bt?"pointerdown":"touchstart",Yt=Lt?"MSPointerUp":bt?"pointerup":"touchend",Xt="_leaflet_";function Jt(t,o,i){var s,r,a=!1;function e(t){var i;if(bt){if(!nt||"mouse"===t.pointerType)return;i=Ht}else i=t.touches.length;if(!(1<i)){var e=Date.now(),n=e-(s||e);r=t.touches?t.touches[0]:t,a=0<n&&n<=250,s=e}}function n(t){if(a&&!r.cancelBubble){if(bt){if(!nt||"mouse"===t.pointerType)return;var i,e,n={};for(e in r)i=r[e],n[e]=i&&i.bind?i.bind(r):i;r=n}r.type="dblclick",r.button=0,o(r),s=null}}return t[Xt+Kt+i]=e,t[Xt+Yt+i]=n,t[Xt+"dblclick"+i]=o,t.addEventListener(Kt,e,!!St&&{passive:!1}),t.addEventListener(Yt,n,!!St&&{passive:!1}),t.addEventListener("dblclick",o,!1),this}function $t(t,i){var e=t[Xt+Kt+i],n=t[Xt+Yt+i],o=t[Xt+"dblclick"+i];return t.removeEventListener(Kt,e,!!St&&{passive:!1}),t.removeEventListener(Yt,n,!!St&&{passive:!1}),nt||t.removeEventListener("dblclick",o,!1),this}var Qt,ti,ii,ei,ni,oi=xi(["transform","webkitTransform","OTransform","MozTransform","msTransform"]),si=xi(["webkitTransition","transition","OTransition","MozTransition","msTransition"]),ri="webkitTransition"===si||"OTransition"===si?si+"End":"transitionend";function ai(t){return"string"==typeof t?document.getElementById(t):t}function hi(t,i){var e=t.style[i]||t.currentStyle&&t.currentStyle[i];if((!e||"auto"===e)&&document.defaultView){var n=document.defaultView.getComputedStyle(t,null);e=n?n[i]:null}return"auto"===e?null:e}function ui(t,i,e){var n=document.createElement(t);return n.className=i||"",e&&e.appendChild(n),n}function li(t){var i=t.parentNode;i&&i.removeChild(t)}function ci(t){for(;t.firstChild;)t.removeChild(t.firstChild)}function _i(t){var i=t.parentNode;i&&i.lastChild!==t&&i.appendChild(t)}function di(t){var i=t.parentNode;i&&i.firstChild!==t&&i.insertBefore(t,i.firstChild)}function pi(t,i){if(void 0!==t.classList)return t.classList.contains(i);var e=vi(t);return 0<e.length&&new RegExp("(^|\\s)"+i+"(\\s|$)").test(e)}function mi(t,i){if(void 0!==t.classList)for(var e=d(i),n=0,o=e.length;n<o;n++)t.classList.add(e[n]);else if(!pi(t,i)){var s=vi(t);gi(t,(s?s+" ":"")+i)}}function fi(t,i){void 0!==t.classList?t.classList.remove(i):gi(t,_((" "+vi(t)+" ").replace(" "+i+" "," ")))}function gi(t,i){void 0===t.className.baseVal?t.className=i:t.className.baseVal=i}function vi(t){return t.correspondingElement&&(t=t.correspondingElement),void 0===t.className.baseVal?t.className:t.className.baseVal}function yi(t,i){"opacity"in t.style?t.style.opacity=i:"filter"in t.style&&function(t,i){var e=!1,n="DXImageTransform.Microsoft.Alpha";try{e=t.filters.item(n)}catch(t){if(1===i)return}i=Math.round(100*i),e?(e.Enabled=100!==i,e.Opacity=i):t.style.filter+=" progid:"+n+"(opacity="+i+")"}(t,i)}function xi(t){for(var i=document.documentElement.style,e=0;e<t.length;e++)if(t[e]in i)return t[e];return!1}function wi(t,i,e){var n=i||new B(0,0);t.style[oi]=(ft?"translate("+n.x+"px,"+n.y+"px)":"translate3d("+n.x+"px,"+n.y+"px,0)")+(e?" scale("+e+")":"")}function Pi(t,i){t._leaflet_pos=i,yt?wi(t,i):(t.style.left=i.x+"px",t.style.top=i.y+"px")}function Li(t){return t._leaflet_pos||new B(0,0)}if("onselectstart"in document)Qt=function(){ki(window,"selectstart",ji)},ti=function(){Ai(window,"selectstart",ji)};else{var bi=xi(["userSelect","WebkitUserSelect","OUserSelect","MozUserSelect","msUserSelect"]);Qt=function(){if(bi){var t=document.documentElement.style;ii=t[bi],t[bi]="none"}},ti=function(){bi&&(document.documentElement.style[bi]=ii,ii=void 0)}}function Ti(){ki(window,"dragstart",ji)}function zi(){Ai(window,"dragstart",ji)}function Mi(t){for(;-1===t.tabIndex;)t=t.parentNode;t.style&&(Ci(),ni=(ei=t).style.outline,t.style.outline="none",ki(window,"keydown",Ci))}function Ci(){ei&&(ei.style.outline=ni,ni=ei=void 0,Ai(window,"keydown",Ci))}function Si(t){for(;!((t=t.parentNode).offsetWidth&&t.offsetHeight||t===document.body););return t}function Ei(t){var i=t.getBoundingClientRect();return{x:i.width/t.offsetWidth||1,y:i.height/t.offsetHeight||1,boundingClientRect:i}}var Zi=(Object.freeze||Object)({TRANSFORM:oi,TRANSITION:si,TRANSITION_END:ri,get:ai,getStyle:hi,create:ui,remove:li,empty:ci,toFront:_i,toBack:di,hasClass:pi,addClass:mi,removeClass:fi,setClass:gi,getClass:vi,setOpacity:yi,testProp:xi,setTransform:wi,setPosition:Pi,getPosition:Li,disableTextSelection:Qt,enableTextSelection:ti,disableImageDrag:Ti,enableImageDrag:zi,preventOutline:Mi,restoreOutline:Ci,getSizedParentNode:Si,getScale:Ei});function ki(t,i,e,n){if("object"==typeof i)for(var o in i)Ii(t,o,i[o],e);else for(var s=0,r=(i=d(i)).length;s<r;s++)Ii(t,i[s],e,n);return this}var Bi="_leaflet_events";function Ai(t,i,e,n){if("object"==typeof i)for(var o in i)Oi(t,o,i[o],e);else if(i)for(var s=0,r=(i=d(i)).length;s<r;s++)Oi(t,i[s],e,n);else{for(var a in t[Bi])Oi(t,a,t[Bi][a]);delete t[Bi]}return this}function Ii(i,t,e,n){var o=t+u(e)+(n?"_"+u(n):"");if(i[Bi]&&i[Bi][o])return this;var s=function(t){return e.call(n||i,t||window.event)},r=s;bt&&0===t.indexOf("touch")?Ft(i,t,s,o):!Tt||"dblclick"!==t||bt&<?"addEventListener"in i?"mousewheel"===t?i.addEventListener("onwheel"in i?"wheel":"mousewheel",s,!!St&&{passive:!1}):"mouseenter"===t||"mouseleave"===t?(s=function(t){t=t||window.event,Yi(i,t)&&r(t)},i.addEventListener("mouseenter"===t?"mouseover":"mouseout",s,!1)):("click"===t&&st&&(s=function(t){!function(t,i){var e=t.timeStamp||t.originalEvent&&t.originalEvent.timeStamp,n=Vi&&e-Vi;if(n&&100<n&&n<500||t.target._simulatedClick&&!t._simulated)return Wi(t);Vi=e,i(t)}(t,r)}),i.addEventListener(t,s,!1)):"attachEvent"in i&&i.attachEvent("on"+t,s):Jt(i,s,o),i[Bi]=i[Bi]||{},i[Bi][o]=s}function Oi(t,i,e,n){var o=i+u(e)+(n?"_"+u(n):""),s=t[Bi]&&t[Bi][o];if(!s)return this;bt&&0===i.indexOf("touch")?function(t,i,e){var n=t["_leaflet_"+i+e];"touchstart"===i?t.removeEventListener(It,n,!1):"touchmove"===i?t.removeEventListener(Ot,n,!1):"touchend"===i&&(t.removeEventListener(Rt,n,!1),t.removeEventListener(Nt,n,!1))}(t,i,o):!Tt||"dblclick"!==i||bt&<?"removeEventListener"in t?"mousewheel"===i?t.removeEventListener("onwheel"in t?"wheel":"mousewheel",s,!!St&&{passive:!1}):t.removeEventListener("mouseenter"===i?"mouseover":"mouseleave"===i?"mouseout":i,s,!1):"detachEvent"in t&&t.detachEvent("on"+i,s):$t(t,o),t[Bi][o]=null}function Ri(t){return t.stopPropagation?t.stopPropagation():t.originalEvent?t.originalEvent._stopped=!0:t.cancelBubble=!0,Ki(t),this}function Ni(t){return Ii(t,"mousewheel",Ri),this}function Di(t){return ki(t,"mousedown touchstart dblclick",Ri),Ii(t,"click",Gi),this}function ji(t){return t.preventDefault?t.preventDefault():t.returnValue=!1,this}function Wi(t){return ji(t),Ri(t),this}function Hi(t,i){if(!i)return new B(t.clientX,t.clientY);var e=Ei(i),n=e.boundingClientRect;return new B((t.clientX-n.left)/e.x-i.clientLeft,(t.clientY-n.top)/e.y-i.clientTop)}var Fi=mt&<?2*window.devicePixelRatio:ct?window.devicePixelRatio:1;function Ui(t){return nt?t.wheelDeltaY/2:t.deltaY&&0===t.deltaMode?-t.deltaY/Fi:t.deltaY&&1===t.deltaMode?20*-t.deltaY:t.deltaY&&2===t.deltaMode?60*-t.deltaY:t.deltaX||t.deltaZ?0:t.wheelDelta?(t.wheelDeltaY||t.wheelDelta)/2:t.detail&&Math.abs(t.detail)<32765?20*-t.detail:t.detail?t.detail/-32765*60:0}var Vi,qi={};function Gi(t){qi[t.type]=!0}function Ki(t){var i=qi[t.type];return qi[t.type]=!1,i}function Yi(t,i){var e=i.relatedTarget;if(!e)return!0;try{for(;e&&e!==t;)e=e.parentNode}catch(t){return!1}return e!==t}var Xi=(Object.freeze||Object)({on:ki,off:Ai,stopPropagation:Ri,disableScrollPropagation:Ni,disableClickPropagation:Di,preventDefault:ji,stop:Wi,getMousePosition:Hi,getWheelDelta:Ui,fakeStop:Gi,skipped:Ki,isExternalTarget:Yi,addListener:ki,removeListener:Ai}),Ji=k.extend({run:function(t,i,e,n){this.stop(),this._el=t,this._inProgress=!0,this._duration=e||.25,this._easeOutPower=1/Math.max(n||.5,.2),this._startPos=Li(t),this._offset=i.subtract(this._startPos),this._startTime=+new Date,this.fire("start"),this._animate()},stop:function(){this._inProgress&&(this._step(!0),this._complete())},_animate:function(){this._animId=M(this._animate,this),this._step()},_step:function(t){var i=+new Date-this._startTime,e=1e3*this._duration;i<e?this._runFrame(this._easeOut(i/e),t):(this._runFrame(1),this._complete())},_runFrame:function(t,i){var e=this._startPos.add(this._offset.multiplyBy(t));i&&e._round(),Pi(this._el,e),this.fire("step")},_complete:function(){C(this._animId),this._inProgress=!1,this.fire("end")},_easeOut:function(t){return 1-Math.pow(1-t,this._easeOutPower)}}),$i=k.extend({options:{crs:X,center:void 0,zoom:void 0,minZoom:void 0,maxZoom:void 0,layers:[],maxBounds:void 0,renderer:void 0,zoomAnimation:!0,zoomAnimationThreshold:4,fadeAnimation:!0,markerZoomAnimation:!0,transform3DLimit:8388608,zoomSnap:1,zoomDelta:1,trackResize:!0},initialize:function(t,i){i=p(this,i),this._handlers=[],this._layers={},this._zoomBoundLayers={},this._sizeChanged=!0,this._initContainer(t),this._initLayout(),this._onResize=a(this._onResize,this),this._initEvents(),i.maxBounds&&this.setMaxBounds(i.maxBounds),void 0!==i.zoom&&(this._zoom=this._limitZoom(i.zoom)),i.center&&void 0!==i.zoom&&this.setView(W(i.center),i.zoom,{reset:!0}),this.callInitHooks(),this._zoomAnimated=si&&yt&&!zt&&this.options.zoomAnimation,this._zoomAnimated&&(this._createAnimProxy(),ki(this._proxy,ri,this._catchTransitionEnd,this)),this._addLayers(this.options.layers)},setView:function(t,i,e){if((i=void 0===i?this._zoom:this._limitZoom(i),t=this._limitCenter(W(t),i,this.options.maxBounds),e=e||{},this._stop(),this._loaded&&!e.reset&&!0!==e)&&(void 0!==e.animate&&(e.zoom=h({animate:e.animate},e.zoom),e.pan=h({animate:e.animate,duration:e.duration},e.pan)),this._zoom!==i?this._tryAnimatedZoom&&this._tryAnimatedZoom(t,i,e.zoom):this._tryAnimatedPan(t,e.pan)))return clearTimeout(this._sizeTimer),this;return this._resetView(t,i),this},setZoom:function(t,i){return this._loaded?this.setView(this.getCenter(),t,{zoom:i}):(this._zoom=t,this)},zoomIn:function(t,i){return t=t||(yt?this.options.zoomDelta:1),this.setZoom(this._zoom+t,i)},zoomOut:function(t,i){return t=t||(yt?this.options.zoomDelta:1),this.setZoom(this._zoom-t,i)},setZoomAround:function(t,i,e){var n=this.getZoomScale(i),o=this.getSize().divideBy(2),s=(t instanceof B?t:this.latLngToContainerPoint(t)).subtract(o).multiplyBy(1-1/n),r=this.containerPointToLatLng(o.add(s));return this.setView(r,i,{zoom:e})},_getBoundsCenterZoom:function(t,i){i=i||{},t=t.getBounds?t.getBounds():D(t);var e=I(i.paddingTopLeft||i.padding||[0,0]),n=I(i.paddingBottomRight||i.padding||[0,0]),o=this.getBoundsZoom(t,!1,e.add(n));if((o="number"==typeof i.maxZoom?Math.min(i.maxZoom,o):o)===1/0)return{center:t.getCenter(),zoom:o};var s=n.subtract(e).divideBy(2),r=this.project(t.getSouthWest(),o),a=this.project(t.getNorthEast(),o);return{center:this.unproject(r.add(a).divideBy(2).add(s),o),zoom:o}},fitBounds:function(t,i){if(!(t=D(t)).isValid())throw new Error("Bounds are not valid.");var e=this._getBoundsCenterZoom(t,i);return this.setView(e.center,e.zoom,i)},fitWorld:function(t){return this.fitBounds([[-90,-180],[90,180]],t)},panTo:function(t,i){return this.setView(t,this._zoom,{pan:i})},panBy:function(t,i){if(i=i||{},!(t=I(t).round()).x&&!t.y)return this.fire("moveend");if(!0!==i.animate&&!this.getSize().contains(t))return this._resetView(this.unproject(this.project(this.getCenter()).add(t)),this.getZoom()),this;if(this._panAnim||(this._panAnim=new Ji,this._panAnim.on({step:this._onPanTransitionStep,end:this._onPanTransitionEnd},this)),i.noMoveStart||this.fire("movestart"),!1!==i.animate){mi(this._mapPane,"leaflet-pan-anim");var e=this._getMapPanePos().subtract(t).round();this._panAnim.run(this._mapPane,e,i.duration||.25,i.easeLinearity)}else this._rawPanBy(t),this.fire("move").fire("moveend");return this},flyTo:function(n,o,t){if(!1===(t=t||{}).animate||!yt)return this.setView(n,o,t);this._stop();var s=this.project(this.getCenter()),r=this.project(n),i=this.getSize(),a=this._zoom;n=W(n),o=void 0===o?a:o;var h=Math.max(i.x,i.y),u=h*this.getZoomScale(a,o),l=r.distanceTo(s)||1,c=1.42,_=c*c;function e(t){var i=(u*u-h*h+(t?-1:1)*_*_*l*l)/(2*(t?u:h)*_*l),e=Math.sqrt(i*i+1)-i;return e<1e-9?-18:Math.log(e)}function d(t){return(Math.exp(t)-Math.exp(-t))/2}function p(t){return(Math.exp(t)+Math.exp(-t))/2}var m=e(0);function f(t){return h*(p(m)*function(t){return d(t)/p(t)}(m+c*t)-d(m))/_}var g=Date.now(),v=(e(1)-m)/c,y=t.duration?1e3*t.duration:1e3*v*.8;return this._moveStart(!0,t.noMoveStart),function t(){var i=(Date.now()-g)/y,e=function(t){return 1-Math.pow(1-t,1.5)}(i)*v;i<=1?(this._flyToFrame=M(t,this),this._move(this.unproject(s.add(r.subtract(s).multiplyBy(f(e)/l)),a),this.getScaleZoom(h/function(t){return h*(p(m)/p(m+c*t))}(e),a),{flyTo:!0})):this._move(n,o)._moveEnd(!0)}.call(this),this},flyToBounds:function(t,i){var e=this._getBoundsCenterZoom(t,i);return this.flyTo(e.center,e.zoom,i)},setMaxBounds:function(t){return(t=D(t)).isValid()?(this.options.maxBounds&&this.off("moveend",this._panInsideMaxBounds),this.options.maxBounds=t,this._loaded&&this._panInsideMaxBounds(),this.on("moveend",this._panInsideMaxBounds)):(this.options.maxBounds=null,this.off("moveend",this._panInsideMaxBounds))},setMinZoom:function(t){var i=this.options.minZoom;return this.options.minZoom=t,this._loaded&&i!==t&&(this.fire("zoomlevelschange"),this.getZoom()<this.options.minZoom)?this.setZoom(t):this},setMaxZoom:function(t){var i=this.options.maxZoom;return this.options.maxZoom=t,this._loaded&&i!==t&&(this.fire("zoomlevelschange"),this.getZoom()>this.options.maxZoom)?this.setZoom(t):this},panInsideBounds:function(t,i){this._enforcingBounds=!0;var e=this.getCenter(),n=this._limitCenter(e,this._zoom,D(t));return e.equals(n)||this.panTo(n,i),this._enforcingBounds=!1,this},panInside:function(t,i){var e=I((i=i||{}).paddingTopLeft||i.padding||[0,0]),n=I(i.paddingBottomRight||i.padding||[0,0]),o=this.getCenter(),s=this.project(o),r=this.project(t),a=this.getPixelBounds(),h=a.getSize().divideBy(2),u=R([a.min.add(e),a.max.subtract(n)]);if(!u.contains(r)){this._enforcingBounds=!0;var l=s.subtract(r),c=I(r.x+l.x,r.y+l.y);(r.x<u.min.x||r.x>u.max.x)&&(c.x=s.x-l.x,0<l.x?c.x+=h.x-e.x:c.x-=h.x-n.x),(r.y<u.min.y||r.y>u.max.y)&&(c.y=s.y-l.y,0<l.y?c.y+=h.y-e.y:c.y-=h.y-n.y),this.panTo(this.unproject(c),i),this._enforcingBounds=!1}return this},invalidateSize:function(t){if(!this._loaded)return this;t=h({animate:!1,pan:!0},!0===t?{animate:!0}:t);var i=this.getSize();this._sizeChanged=!0,this._lastCenter=null;var e=this.getSize(),n=i.divideBy(2).round(),o=e.divideBy(2).round(),s=n.subtract(o);return s.x||s.y?(t.animate&&t.pan?this.panBy(s):(t.pan&&this._rawPanBy(s),this.fire("move"),t.debounceMoveend?(clearTimeout(this._sizeTimer),this._sizeTimer=setTimeout(a(this.fire,this,"moveend"),200)):this.fire("moveend")),this.fire("resize",{oldSize:i,newSize:e})):this},stop:function(){return this.setZoom(this._limitZoom(this._zoom)),this.options.zoomSnap||this.fire("viewreset"),this._stop()},locate:function(t){if(t=this._locateOptions=h({timeout:1e4,watch:!1},t),!("geolocation"in navigator))return this._handleGeolocationError({code:0,message:"Geolocation not supported."}),this;var i=a(this._handleGeolocationResponse,this),e=a(this._handleGeolocationError,this);return t.watch?this._locationWatchId=navigator.geolocation.watchPosition(i,e,t):navigator.geolocation.getCurrentPosition(i,e,t),this},stopLocate:function(){return navigator.geolocation&&navigator.geolocation.clearWatch&&navigator.geolocation.clearWatch(this._locationWatchId),this._locateOptions&&(this._locateOptions.setView=!1),this},_handleGeolocationError:function(t){var i=t.code,e=t.message||(1===i?"permission denied":2===i?"position unavailable":"timeout");this._locateOptions.setView&&!this._loaded&&this.fitWorld(),this.fire("locationerror",{code:i,message:"Geolocation error: "+e+"."})},_handleGeolocationResponse:function(t){var i=new j(t.coords.latitude,t.coords.longitude),e=i.toBounds(2*t.coords.accuracy),n=this._locateOptions;if(n.setView){var o=this.getBoundsZoom(e);this.setView(i,n.maxZoom?Math.min(o,n.maxZoom):o)}var s={latlng:i,bounds:e,timestamp:t.timestamp};for(var r in t.coords)"number"==typeof t.coords[r]&&(s[r]=t.coords[r]);this.fire("locationfound",s)},addHandler:function(t,i){if(!i)return this;var e=this[t]=new i(this);return this._handlers.push(e),this.options[t]&&e.enable(),this},remove:function(){if(this._initEvents(!0),this._containerId!==this._container._leaflet_id)throw new Error("Map container is being reused by another instance");try{delete this._container._leaflet_id,delete this._containerId}catch(t){this._container._leaflet_id=void 0,this._containerId=void 0}var t;for(t in void 0!==this._locationWatchId&&this.stopLocate(),this._stop(),li(this._mapPane),this._clearControlPos&&this._clearControlPos(),this._resizeRequest&&(C(this._resizeRequest),this._resizeRequest=null),this._clearHandlers(),this._loaded&&this.fire("unload"),this._layers)this._layers[t].remove();for(t in this._panes)li(this._panes[t]);return this._layers=[],this._panes=[],delete this._mapPane,delete this._renderer,this},createPane:function(t,i){var e=ui("div","leaflet-pane"+(t?" leaflet-"+t.replace("Pane","")+"-pane":""),i||this._mapPane);return t&&(this._panes[t]=e),e},getCenter:function(){return this._checkIfLoaded(),this._lastCenter&&!this._moved()?this._lastCenter:this.layerPointToLatLng(this._getCenterLayerPoint())},getZoom:function(){return this._zoom},getBounds:function(){var t=this.getPixelBounds();return new N(this.unproject(t.getBottomLeft()),this.unproject(t.getTopRight()))},getMinZoom:function(){return void 0===this.options.minZoom?this._layersMinZoom||0:this.options.minZoom},getMaxZoom:function(){return void 0===this.options.maxZoom?void 0===this._layersMaxZoom?1/0:this._layersMaxZoom:this.options.maxZoom},getBoundsZoom:function(t,i,e){t=D(t),e=I(e||[0,0]);var n=this.getZoom()||0,o=this.getMinZoom(),s=this.getMaxZoom(),r=t.getNorthWest(),a=t.getSouthEast(),h=this.getSize().subtract(e),u=R(this.project(a,n),this.project(r,n)).getSize(),l=yt?this.options.zoomSnap:1,c=h.x/u.x,_=h.y/u.y,d=i?Math.max(c,_):Math.min(c,_);return n=this.getScaleZoom(d,n),l&&(n=Math.round(n/(l/100))*(l/100),n=i?Math.ceil(n/l)*l:Math.floor(n/l)*l),Math.max(o,Math.min(s,n))},getSize:function(){return this._size&&!this._sizeChanged||(this._size=new B(this._container.clientWidth||0,this._container.clientHeight||0),this._sizeChanged=!1),this._size.clone()},getPixelBounds:function(t,i){var e=this._getTopLeftPoint(t,i);return new O(e,e.add(this.getSize()))},getPixelOrigin:function(){return this._checkIfLoaded(),this._pixelOrigin},getPixelWorldBounds:function(t){return this.options.crs.getProjectedBounds(void 0===t?this.getZoom():t)},getPane:function(t){return"string"==typeof t?this._panes[t]:t},getPanes:function(){return this._panes},getContainer:function(){return this._container},getZoomScale:function(t,i){var e=this.options.crs;return i=void 0===i?this._zoom:i,e.scale(t)/e.scale(i)},getScaleZoom:function(t,i){var e=this.options.crs;i=void 0===i?this._zoom:i;var n=e.zoom(t*e.scale(i));return isNaN(n)?1/0:n},project:function(t,i){return i=void 0===i?this._zoom:i,this.options.crs.latLngToPoint(W(t),i)},unproject:function(t,i){return i=void 0===i?this._zoom:i,this.options.crs.pointToLatLng(I(t),i)},layerPointToLatLng:function(t){var i=I(t).add(this.getPixelOrigin());return this.unproject(i)},latLngToLayerPoint:function(t){return this.project(W(t))._round()._subtract(this.getPixelOrigin())},wrapLatLng:function(t){return this.options.crs.wrapLatLng(W(t))},wrapLatLngBounds:function(t){return this.options.crs.wrapLatLngBounds(D(t))},distance:function(t,i){return this.options.crs.distance(W(t),W(i))},containerPointToLayerPoint:function(t){return I(t).subtract(this._getMapPanePos())},layerPointToContainerPoint:function(t){return I(t).add(this._getMapPanePos())},containerPointToLatLng:function(t){var i=this.containerPointToLayerPoint(I(t));return this.layerPointToLatLng(i)},latLngToContainerPoint:function(t){return this.layerPointToContainerPoint(this.latLngToLayerPoint(W(t)))},mouseEventToContainerPoint:function(t){return Hi(t,this._container)},mouseEventToLayerPoint:function(t){return this.containerPointToLayerPoint(this.mouseEventToContainerPoint(t))},mouseEventToLatLng:function(t){return this.layerPointToLatLng(this.mouseEventToLayerPoint(t))},_initContainer:function(t){var i=this._container=ai(t);if(!i)throw new Error("Map container not found.");if(i._leaflet_id)throw new Error("Map container is already initialized.");ki(i,"scroll",this._onScroll,this),this._containerId=u(i)},_initLayout:function(){var t=this._container;this._fadeAnimated=this.options.fadeAnimation&&yt,mi(t,"leaflet-container"+(Tt?" leaflet-touch":"")+(Ct?" leaflet-retina":"")+(et?" leaflet-oldie":"")+(_t?" leaflet-safari":"")+(this._fadeAnimated?" leaflet-fade-anim":""));var i=hi(t,"position");"absolute"!==i&&"relative"!==i&&"fixed"!==i&&(t.style.position="relative"),this._initPanes(),this._initControlPos&&this._initControlPos()},_initPanes:function(){var t=this._panes={};this._paneRenderers={},this._mapPane=this.createPane("mapPane",this._container),Pi(this._mapPane,new B(0,0)),this.createPane("tilePane"),this.createPane("shadowPane"),this.createPane("overlayPane"),this.createPane("markerPane"),this.createPane("tooltipPane"),this.createPane("popupPane"),this.options.markerZoomAnimation||(mi(t.markerPane,"leaflet-zoom-hide"),mi(t.shadowPane,"leaflet-zoom-hide"))},_resetView:function(t,i){Pi(this._mapPane,new B(0,0));var e=!this._loaded;this._loaded=!0,i=this._limitZoom(i),this.fire("viewprereset");var n=this._zoom!==i;this._moveStart(n,!1)._move(t,i)._moveEnd(n),this.fire("viewreset"),e&&this.fire("load")},_moveStart:function(t,i){return t&&this.fire("zoomstart"),i||this.fire("movestart"),this},_move:function(t,i,e){void 0===i&&(i=this._zoom);var n=this._zoom!==i;return this._zoom=i,this._lastCenter=t,this._pixelOrigin=this._getNewPixelOrigin(t),(n||e&&e.pinch)&&this.fire("zoom",e),this.fire("move",e)},_moveEnd:function(t){return t&&this.fire("zoomend"),this.fire("moveend")},_stop:function(){return C(this._flyToFrame),this._panAnim&&this._panAnim.stop(),this},_rawPanBy:function(t){Pi(this._mapPane,this._getMapPanePos().subtract(t))},_getZoomSpan:function(){return this.getMaxZoom()-this.getMinZoom()},_panInsideMaxBounds:function(){this._enforcingBounds||this.panInsideBounds(this.options.maxBounds)},_checkIfLoaded:function(){if(!this._loaded)throw new Error("Set map center and zoom first.")},_initEvents:function(t){this._targets={};var i=t?Ai:ki;i((this._targets[u(this._container)]=this)._container,"click dblclick mousedown mouseup mouseover mouseout mousemove contextmenu keypress keydown keyup",this._handleDOMEvent,this),this.options.trackResize&&i(window,"resize",this._onResize,this),yt&&this.options.transform3DLimit&&(t?this.off:this.on).call(this,"moveend",this._onMoveEnd)},_onResize:function(){C(this._resizeRequest),this._resizeRequest=M(function(){this.invalidateSize({debounceMoveend:!0})},this)},_onScroll:function(){this._container.scrollTop=0,this._container.scrollLeft=0},_onMoveEnd:function(){var t=this._getMapPanePos();Math.max(Math.abs(t.x),Math.abs(t.y))>=this.options.transform3DLimit&&this._resetView(this.getCenter(),this.getZoom())},_findEventTargets:function(t,i){for(var e,n=[],o="mouseout"===i||"mouseover"===i,s=t.target||t.srcElement,r=!1;s;){if((e=this._targets[u(s)])&&("click"===i||"preclick"===i)&&!t._simulated&&this._draggableMoved(e)){r=!0;break}if(e&&e.listens(i,!0)){if(o&&!Yi(s,t))break;if(n.push(e),o)break}if(s===this._container)break;s=s.parentNode}return n.length||r||o||!Yi(s,t)||(n=[this]),n},_handleDOMEvent:function(t){if(this._loaded&&!Ki(t)){var i=t.type;"mousedown"!==i&&"keypress"!==i&&"keyup"!==i&&"keydown"!==i||Mi(t.target||t.srcElement),this._fireDOMEvent(t,i)}},_mouseEvents:["click","dblclick","mouseover","mouseout","contextmenu"],_fireDOMEvent:function(t,i,e){if("click"===t.type){var n=h({},t);n.type="preclick",this._fireDOMEvent(n,n.type,e)}if(!t._stopped&&(e=(e||[]).concat(this._findEventTargets(t,i))).length){var o=e[0];"contextmenu"===i&&o.listens(i,!0)&&ji(t);var s={originalEvent:t};if("keypress"!==t.type&&"keydown"!==t.type&&"keyup"!==t.type){var r=o.getLatLng&&(!o._radius||o._radius<=10);s.containerPoint=r?this.latLngToContainerPoint(o.getLatLng()):this.mouseEventToContainerPoint(t),s.layerPoint=this.containerPointToLayerPoint(s.containerPoint),s.latlng=r?o.getLatLng():this.layerPointToLatLng(s.layerPoint)}for(var a=0;a<e.length;a++)if(e[a].fire(i,s,!0),s.originalEvent._stopped||!1===e[a].options.bubblingMouseEvents&&-1!==y(this._mouseEvents,i))return}},_draggableMoved:function(t){return(t=t.dragging&&t.dragging.enabled()?t:this).dragging&&t.dragging.moved()||this.boxZoom&&this.boxZoom.moved()},_clearHandlers:function(){for(var t=0,i=this._handlers.length;t<i;t++)this._handlers[t].disable()},whenReady:function(t,i){return this._loaded?t.call(i||this,{target:this}):this.on("load",t,i),this},_getMapPanePos:function(){return Li(this._mapPane)||new B(0,0)},_moved:function(){var t=this._getMapPanePos();return t&&!t.equals([0,0])},_getTopLeftPoint:function(t,i){return(t&&void 0!==i?this._getNewPixelOrigin(t,i):this.getPixelOrigin()).subtract(this._getMapPanePos())},_getNewPixelOrigin:function(t,i){var e=this.getSize()._divideBy(2);return this.project(t,i)._subtract(e)._add(this._getMapPanePos())._round()},_latLngToNewLayerPoint:function(t,i,e){var n=this._getNewPixelOrigin(e,i);return this.project(t,i)._subtract(n)},_latLngBoundsToNewLayerBounds:function(t,i,e){var n=this._getNewPixelOrigin(e,i);return R([this.project(t.getSouthWest(),i)._subtract(n),this.project(t.getNorthWest(),i)._subtract(n),this.project(t.getSouthEast(),i)._subtract(n),this.project(t.getNorthEast(),i)._subtract(n)])},_getCenterLayerPoint:function(){return this.containerPointToLayerPoint(this.getSize()._divideBy(2))},_getCenterOffset:function(t){return this.latLngToLayerPoint(t).subtract(this._getCenterLayerPoint())},_limitCenter:function(t,i,e){if(!e)return t;var n=this.project(t,i),o=this.getSize().divideBy(2),s=new O(n.subtract(o),n.add(o)),r=this._getBoundsOffset(s,e,i);return r.round().equals([0,0])?t:this.unproject(n.add(r),i)},_limitOffset:function(t,i){if(!i)return t;var e=this.getPixelBounds(),n=new O(e.min.add(t),e.max.add(t));return t.add(this._getBoundsOffset(n,i))},_getBoundsOffset:function(t,i,e){var n=R(this.project(i.getNorthEast(),e),this.project(i.getSouthWest(),e)),o=n.min.subtract(t.min),s=n.max.subtract(t.max);return new B(this._rebound(o.x,-s.x),this._rebound(o.y,-s.y))},_rebound:function(t,i){return 0<t+i?Math.round(t-i)/2:Math.max(0,Math.ceil(t))-Math.max(0,Math.floor(i))},_limitZoom:function(t){var i=this.getMinZoom(),e=this.getMaxZoom(),n=yt?this.options.zoomSnap:1;return n&&(t=Math.round(t/n)*n),Math.max(i,Math.min(e,t))},_onPanTransitionStep:function(){this.fire("move")},_onPanTransitionEnd:function(){fi(this._mapPane,"leaflet-pan-anim"),this.fire("moveend")},_tryAnimatedPan:function(t,i){var e=this._getCenterOffset(t)._trunc();return!(!0!==(i&&i.animate)&&!this.getSize().contains(e))&&(this.panBy(e,i),!0)},_createAnimProxy:function(){var t=this._proxy=ui("div","leaflet-proxy leaflet-zoom-animated");this._panes.mapPane.appendChild(t),this.on("zoomanim",function(t){var i=oi,e=this._proxy.style[i];wi(this._proxy,this.project(t.center,t.zoom),this.getZoomScale(t.zoom,1)),e===this._proxy.style[i]&&this._animatingZoom&&this._onZoomTransitionEnd()},this),this.on("load moveend",this._animMoveEnd,this),this._on("unload",this._destroyAnimProxy,this)},_destroyAnimProxy:function(){li(this._proxy),this.off("load moveend",this._animMoveEnd,this),delete this._proxy},_animMoveEnd:function(){var t=this.getCenter(),i=this.getZoom();wi(this._proxy,this.project(t,i),this.getZoomScale(i,1))},_catchTransitionEnd:function(t){this._animatingZoom&&0<=t.propertyName.indexOf("transform")&&this._onZoomTransitionEnd()},_nothingToAnimate:function(){return!this._container.getElementsByClassName("leaflet-zoom-animated").length},_tryAnimatedZoom:function(t,i,e){if(this._animatingZoom)return!0;if(e=e||{},!this._zoomAnimated||!1===e.animate||this._nothingToAnimate()||Math.abs(i-this._zoom)>this.options.zoomAnimationThreshold)return!1;var n=this.getZoomScale(i),o=this._getCenterOffset(t)._divideBy(1-1/n);return!(!0!==e.animate&&!this.getSize().contains(o))&&(M(function(){this._moveStart(!0,!1)._animateZoom(t,i,!0)},this),!0)},_animateZoom:function(t,i,e,n){this._mapPane&&(e&&(this._animatingZoom=!0,this._animateToCenter=t,this._animateToZoom=i,mi(this._mapPane,"leaflet-zoom-anim")),this.fire("zoomanim",{center:t,zoom:i,noUpdate:n}),setTimeout(a(this._onZoomTransitionEnd,this),250))},_onZoomTransitionEnd:function(){this._animatingZoom&&(this._mapPane&&fi(this._mapPane,"leaflet-zoom-anim"),this._animatingZoom=!1,this._move(this._animateToCenter,this._animateToZoom),M(function(){this._moveEnd(!0)},this))}});function Qi(t){return new te(t)}var te=E.extend({options:{position:"topright"},initialize:function(t){p(this,t)},getPosition:function(){return this.options.position},setPosition:function(t){var i=this._map;return i&&i.removeControl(this),this.options.position=t,i&&i.addControl(this),this},getContainer:function(){return this._container},addTo:function(t){this.remove(),this._map=t;var i=this._container=this.onAdd(t),e=this.getPosition(),n=t._controlCorners[e];return mi(i,"leaflet-control"),-1!==e.indexOf("bottom")?n.insertBefore(i,n.firstChild):n.appendChild(i),this._map.on("unload",this.remove,this),this},remove:function(){return this._map&&(li(this._container),this.onRemove&&this.onRemove(this._map),this._map.off("unload",this.remove,this),this._map=null),this},_refocusOnMap:function(t){this._map&&t&&0<t.screenX&&0<t.screenY&&this._map.getContainer().focus()}});$i.include({addControl:function(t){return t.addTo(this),this},removeControl:function(t){return t.remove(),this},_initControlPos:function(){var n=this._controlCorners={},o="leaflet-",s=this._controlContainer=ui("div",o+"control-container",this._container);function t(t,i){var e=o+t+" "+o+i;n[t+i]=ui("div",e,s)}t("top","left"),t("top","right"),t("bottom","left"),t("bottom","right")},_clearControlPos:function(){for(var t in this._controlCorners)li(this._controlCorners[t]);li(this._controlContainer),delete this._controlCorners,delete this._controlContainer}});var ie=te.extend({options:{collapsed:!0,position:"topright",autoZIndex:!0,hideSingleBase:!1,sortLayers:!1,sortFunction:function(t,i,e,n){return e<n?-1:n<e?1:0}},initialize:function(t,i,e){for(var n in p(this,e),this._layerControlInputs=[],this._layers=[],this._lastZIndex=0,this._handlingClick=!1,t)this._addLayer(t[n],n);for(n in i)this._addLayer(i[n],n,!0)},onAdd:function(t){this._initLayout(),this._update(),(this._map=t).on("zoomend",this._checkDisabledLayers,this);for(var i=0;i<this._layers.length;i++)this._layers[i].layer.on("add remove",this._onLayerChange,this);return this._container},addTo:function(t){return te.prototype.addTo.call(this,t),this._expandIfNotCollapsed()},onRemove:function(){this._map.off("zoomend",this._checkDisabledLayers,this);for(var t=0;t<this._layers.length;t++)this._layers[t].layer.off("add remove",this._onLayerChange,this)},addBaseLayer:function(t,i){return this._addLayer(t,i),this._map?this._update():this},addOverlay:function(t,i){return this._addLayer(t,i,!0),this._map?this._update():this},removeLayer:function(t){t.off("add remove",this._onLayerChange,this);var i=this._getLayer(u(t));return i&&this._layers.splice(this._layers.indexOf(i),1),this._map?this._update():this},expand:function(){mi(this._container,"leaflet-control-layers-expanded"),this._section.style.height=null;var t=this._map.getSize().y-(this._container.offsetTop+50);return t<this._section.clientHeight?(mi(this._section,"leaflet-control-layers-scrollbar"),this._section.style.height=t+"px"):fi(this._section,"leaflet-control-layers-scrollbar"),this._checkDisabledLayers(),this},collapse:function(){return fi(this._container,"leaflet-control-layers-expanded"),this},_initLayout:function(){var t="leaflet-control-layers",i=this._container=ui("div",t),e=this.options.collapsed;i.setAttribute("aria-haspopup",!0),Di(i),Ni(i);var n=this._section=ui("section",t+"-list");e&&(this._map.on("click",this.collapse,this),st||ki(i,{mouseenter:this.expand,mouseleave:this.collapse},this));var o=this._layersLink=ui("a",t+"-toggle",i);o.href="#",o.title="Layers",Tt?(ki(o,"click",Wi),ki(o,"click",this.expand,this)):ki(o,"focus",this.expand,this),e||this.expand(),this._baseLayersList=ui("div",t+"-base",n),this._separator=ui("div",t+"-separator",n),this._overlaysList=ui("div",t+"-overlays",n),i.appendChild(n)},_getLayer:function(t){for(var i=0;i<this._layers.length;i++)if(this._layers[i]&&u(this._layers[i].layer)===t)return this._layers[i]},_addLayer:function(t,i,e){this._map&&t.on("add remove",this._onLayerChange,this),this._layers.push({layer:t,name:i,overlay:e}),this.options.sortLayers&&this._layers.sort(a(function(t,i){return this.options.sortFunction(t.layer,i.layer,t.name,i.name)},this)),this.options.autoZIndex&&t.setZIndex&&(this._lastZIndex++,t.setZIndex(this._lastZIndex)),this._expandIfNotCollapsed()},_update:function(){if(!this._container)return this;ci(this._baseLayersList),ci(this._overlaysList),this._layerControlInputs=[];var t,i,e,n,o=0;for(e=0;e<this._layers.length;e++)n=this._layers[e],this._addItem(n),i=i||n.overlay,t=t||!n.overlay,o+=n.overlay?0:1;return this.options.hideSingleBase&&(t=t&&1<o,this._baseLayersList.style.display=t?"":"none"),this._separator.style.display=i&&t?"":"none",this},_onLayerChange:function(t){this._handlingClick||this._update();var i=this._getLayer(u(t.target)),e=i.overlay?"add"===t.type?"overlayadd":"overlayremove":"add"===t.type?"baselayerchange":null;e&&this._map.fire(e,i)},_createRadioElement:function(t,i){var e='<input type="radio" class="leaflet-control-layers-selector" name="'+t+'"'+(i?' checked="checked"':"")+"/>",n=document.createElement("div");return n.innerHTML=e,n.firstChild},_addItem:function(t){var i,e=document.createElement("label"),n=this._map.hasLayer(t.layer);t.overlay?((i=document.createElement("input")).type="checkbox",i.className="leaflet-control-layers-selector",i.defaultChecked=n):i=this._createRadioElement("leaflet-base-layers_"+u(this),n),this._layerControlInputs.push(i),i.layerId=u(t.layer),ki(i,"click",this._onInputClick,this);var o=document.createElement("span");o.innerHTML=" "+t.name;var s=document.createElement("div");return e.appendChild(s),s.appendChild(i),s.appendChild(o),(t.overlay?this._overlaysList:this._baseLayersList).appendChild(e),this._checkDisabledLayers(),e},_onInputClick:function(){var t,i,e=this._layerControlInputs,n=[],o=[];this._handlingClick=!0;for(var s=e.length-1;0<=s;s--)t=e[s],i=this._getLayer(t.layerId).layer,t.checked?n.push(i):t.checked||o.push(i);for(s=0;s<o.length;s++)this._map.hasLayer(o[s])&&this._map.removeLayer(o[s]);for(s=0;s<n.length;s++)this._map.hasLayer(n[s])||this._map.addLayer(n[s]);this._handlingClick=!1,this._refocusOnMap()},_checkDisabledLayers:function(){for(var t,i,e=this._layerControlInputs,n=this._map.getZoom(),o=e.length-1;0<=o;o--)t=e[o],i=this._getLayer(t.layerId).layer,t.disabled=void 0!==i.options.minZoom&&n<i.options.minZoom||void 0!==i.options.maxZoom&&n>i.options.maxZoom},_expandIfNotCollapsed:function(){return this._map&&!this.options.collapsed&&this.expand(),this},_expand:function(){return this.expand()},_collapse:function(){return this.collapse()}}),ee=te.extend({options:{position:"topleft",zoomInText:"+",zoomInTitle:"Zoom in",zoomOutText:"−",zoomOutTitle:"Zoom out"},onAdd:function(t){var i="leaflet-control-zoom",e=ui("div",i+" leaflet-bar"),n=this.options;return this._zoomInButton=this._createButton(n.zoomInText,n.zoomInTitle,i+"-in",e,this._zoomIn),this._zoomOutButton=this._createButton(n.zoomOutText,n.zoomOutTitle,i+"-out",e,this._zoomOut),this._updateDisabled(),t.on("zoomend zoomlevelschange",this._updateDisabled,this),e},onRemove:function(t){t.off("zoomend zoomlevelschange",this._updateDisabled,this)},disable:function(){return this._disabled=!0,this._updateDisabled(),this},enable:function(){return this._disabled=!1,this._updateDisabled(),this},_zoomIn:function(t){!this._disabled&&this._map._zoom<this._map.getMaxZoom()&&this._map.zoomIn(this._map.options.zoomDelta*(t.shiftKey?3:1))},_zoomOut:function(t){!this._disabled&&this._map._zoom>this._map.getMinZoom()&&this._map.zoomOut(this._map.options.zoomDelta*(t.shiftKey?3:1))},_createButton:function(t,i,e,n,o){var s=ui("a",e,n);return s.innerHTML=t,s.href="#",s.title=i,s.setAttribute("role","button"),s.setAttribute("aria-label",i),Di(s),ki(s,"click",Wi),ki(s,"click",o,this),ki(s,"click",this._refocusOnMap,this),s},_updateDisabled:function(){var t=this._map,i="leaflet-disabled";fi(this._zoomInButton,i),fi(this._zoomOutButton,i),!this._disabled&&t._zoom!==t.getMinZoom()||mi(this._zoomOutButton,i),!this._disabled&&t._zoom!==t.getMaxZoom()||mi(this._zoomInButton,i)}});$i.mergeOptions({zoomControl:!0}),$i.addInitHook(function(){this.options.zoomControl&&(this.zoomControl=new ee,this.addControl(this.zoomControl))});var ne=te.extend({options:{position:"bottomleft",maxWidth:100,metric:!0,imperial:!0},onAdd:function(t){var i="leaflet-control-scale",e=ui("div",i),n=this.options;return this._addScales(n,i+"-line",e),t.on(n.updateWhenIdle?"moveend":"move",this._update,this),t.whenReady(this._update,this),e},onRemove:function(t){t.off(this.options.updateWhenIdle?"moveend":"move",this._update,this)},_addScales:function(t,i,e){t.metric&&(this._mScale=ui("div",i,e)),t.imperial&&(this._iScale=ui("div",i,e))},_update:function(){var t=this._map,i=t.getSize().y/2,e=t.distance(t.containerPointToLatLng([0,i]),t.containerPointToLatLng([this.options.maxWidth,i]));this._updateScales(e)},_updateScales:function(t){this.options.metric&&t&&this._updateMetric(t),this.options.imperial&&t&&this._updateImperial(t)},_updateMetric:function(t){var i=this._getRoundNum(t),e=i<1e3?i+" m":i/1e3+" km";this._updateScale(this._mScale,e,i/t)},_updateImperial:function(t){var i,e,n,o=3.2808399*t;5280<o?(i=o/5280,e=this._getRoundNum(i),this._updateScale(this._iScale,e+" mi",e/i)):(n=this._getRoundNum(o),this._updateScale(this._iScale,n+" ft",n/o))},_updateScale:function(t,i,e){t.style.width=Math.round(this.options.maxWidth*e)+"px",t.innerHTML=i},_getRoundNum:function(t){var i=Math.pow(10,(Math.floor(t)+"").length-1),e=t/i;return i*(e=10<=e?10:5<=e?5:3<=e?3:2<=e?2:1)}}),oe=te.extend({options:{position:"bottomright",prefix:'<a href="https://leafletjs.com" title="A JS library for interactive maps">Leaflet</a>'},initialize:function(t){p(this,t),this._attributions={}},onAdd:function(t){for(var i in(t.attributionControl=this)._container=ui("div","leaflet-control-attribution"),Di(this._container),t._layers)t._layers[i].getAttribution&&this.addAttribution(t._layers[i].getAttribution());return this._update(),this._container},setPrefix:function(t){return this.options.prefix=t,this._update(),this},addAttribution:function(t){return t&&(this._attributions[t]||(this._attributions[t]=0),this._attributions[t]++,this._update()),this},removeAttribution:function(t){return t&&this._attributions[t]&&(this._attributions[t]--,this._update()),this},_update:function(){if(this._map){var t=[];for(var i in this._attributions)this._attributions[i]&&t.push(i);var e=[];this.options.prefix&&e.push(this.options.prefix),t.length&&e.push(t.join(", ")),this._container.innerHTML=e.join(" | ")}}});$i.mergeOptions({attributionControl:!0}),$i.addInitHook(function(){this.options.attributionControl&&(new oe).addTo(this)});te.Layers=ie,te.Zoom=ee,te.Scale=ne,te.Attribution=oe,Qi.layers=function(t,i,e){return new ie(t,i,e)},Qi.zoom=function(t){return new ee(t)},Qi.scale=function(t){return new ne(t)},Qi.attribution=function(t){return new oe(t)};var se=E.extend({initialize:function(t){this._map=t},enable:function(){return this._enabled||(this._enabled=!0,this.addHooks()),this},disable:function(){return this._enabled&&(this._enabled=!1,this.removeHooks()),this},enabled:function(){return!!this._enabled}});se.addTo=function(t,i){return t.addHandler(i,this),this};var re,ae={Events:Z},he=Tt?"touchstart mousedown":"mousedown",ue={mousedown:"mouseup",touchstart:"touchend",pointerdown:"touchend",MSPointerDown:"touchend"},le={mousedown:"mousemove",touchstart:"touchmove",pointerdown:"touchmove",MSPointerDown:"touchmove"},ce=k.extend({options:{clickTolerance:3},initialize:function(t,i,e,n){p(this,n),this._element=t,this._dragStartTarget=i||t,this._preventOutline=e},enable:function(){this._enabled||(ki(this._dragStartTarget,he,this._onDown,this),this._enabled=!0)},disable:function(){this._enabled&&(ce._dragging===this&&this.finishDrag(),Ai(this._dragStartTarget,he,this._onDown,this),this._enabled=!1,this._moved=!1)},_onDown:function(t){if(!t._simulated&&this._enabled&&(this._moved=!1,!pi(this._element,"leaflet-zoom-anim")&&!(ce._dragging||t.shiftKey||1!==t.which&&1!==t.button&&!t.touches||((ce._dragging=this)._preventOutline&&Mi(this._element),Ti(),Qt(),this._moving)))){this.fire("down");var i=t.touches?t.touches[0]:t,e=Si(this._element);this._startPoint=new B(i.clientX,i.clientY),this._parentScale=Ei(e),ki(document,le[t.type],this._onMove,this),ki(document,ue[t.type],this._onUp,this)}},_onMove:function(t){if(!t._simulated&&this._enabled)if(t.touches&&1<t.touches.length)this._moved=!0;else{var i=t.touches&&1===t.touches.length?t.touches[0]:t,e=new B(i.clientX,i.clientY)._subtract(this._startPoint);(e.x||e.y)&&(Math.abs(e.x)+Math.abs(e.y)<this.options.clickTolerance||(e.x/=this._parentScale.x,e.y/=this._parentScale.y,ji(t),this._moved||(this.fire("dragstart"),this._moved=!0,this._startPos=Li(this._element).subtract(e),mi(document.body,"leaflet-dragging"),this._lastTarget=t.target||t.srcElement,window.SVGElementInstance&&this._lastTarget instanceof SVGElementInstance&&(this._lastTarget=this._lastTarget.correspondingUseElement),mi(this._lastTarget,"leaflet-drag-target")),this._newPos=this._startPos.add(e),this._moving=!0,C(this._animRequest),this._lastEvent=t,this._animRequest=M(this._updatePosition,this,!0)))}},_updatePosition:function(){var t={originalEvent:this._lastEvent};this.fire("predrag",t),Pi(this._element,this._newPos),this.fire("drag",t)},_onUp:function(t){!t._simulated&&this._enabled&&this.finishDrag()},finishDrag:function(){for(var t in fi(document.body,"leaflet-dragging"),this._lastTarget&&(fi(this._lastTarget,"leaflet-drag-target"),this._lastTarget=null),le)Ai(document,le[t],this._onMove,this),Ai(document,ue[t],this._onUp,this);zi(),ti(),this._moved&&this._moving&&(C(this._animRequest),this.fire("dragend",{distance:this._newPos.distanceTo(this._startPos)})),this._moving=!1,ce._dragging=!1}});function _e(t,i){if(!i||!t.length)return t.slice();var e=i*i;return t=function(t,i){var e=t.length,n=new(typeof Uint8Array!=void 0+""?Uint8Array:Array)(e);n[0]=n[e-1]=1,function t(i,e,n,o,s){var r,a,h,u=0;for(a=o+1;a<=s-1;a++)h=ge(i[a],i[o],i[s],!0),u<h&&(r=a,u=h);n<u&&(e[r]=1,t(i,e,n,o,r),t(i,e,n,r,s))}(t,n,i,0,e-1);var o,s=[];for(o=0;o<e;o++)n[o]&&s.push(t[o]);return s}(t=function(t,i){for(var e=[t[0]],n=1,o=0,s=t.length;n<s;n++)r=t[n],a=t[o],void 0,h=a.x-r.x,u=a.y-r.y,i<h*h+u*u&&(e.push(t[n]),o=n);var r,a,h,u;o<s-1&&e.push(t[s-1]);return e}(t,e),e)}function de(t,i,e){return Math.sqrt(ge(t,i,e,!0))}function pe(t,i,e,n,o){var s,r,a,h=n?re:fe(t,e),u=fe(i,e);for(re=u;;){if(!(h|u))return[t,i];if(h&u)return!1;a=fe(r=me(t,i,s=h||u,e,o),e),s===h?(t=r,h=a):(i=r,u=a)}}function me(t,i,e,n,o){var s,r,a=i.x-t.x,h=i.y-t.y,u=n.min,l=n.max;return 8&e?(s=t.x+a*(l.y-t.y)/h,r=l.y):4&e?(s=t.x+a*(u.y-t.y)/h,r=u.y):2&e?(s=l.x,r=t.y+h*(l.x-t.x)/a):1&e&&(s=u.x,r=t.y+h*(u.x-t.x)/a),new B(s,r,o)}function fe(t,i){var e=0;return t.x<i.min.x?e|=1:t.x>i.max.x&&(e|=2),t.y<i.min.y?e|=4:t.y>i.max.y&&(e|=8),e}function ge(t,i,e,n){var o,s=i.x,r=i.y,a=e.x-s,h=e.y-r,u=a*a+h*h;return 0<u&&(1<(o=((t.x-s)*a+(t.y-r)*h)/u)?(s=e.x,r=e.y):0<o&&(s+=a*o,r+=h*o)),a=t.x-s,h=t.y-r,n?a*a+h*h:new B(s,r)}function ve(t){return!v(t[0])||"object"!=typeof t[0][0]&&void 0!==t[0][0]}function ye(t){return console.warn("Deprecated use of _flat, please use L.LineUtil.isFlat instead."),ve(t)}var xe=(Object.freeze||Object)({simplify:_e,pointToSegmentDistance:de,closestPointOnSegment:function(t,i,e){return ge(t,i,e)},clipSegment:pe,_getEdgeIntersection:me,_getBitCode:fe,_sqClosestPointOnSegment:ge,isFlat:ve,_flat:ye});function we(t,i,e){var n,o,s,r,a,h,u,l,c,_=[1,4,2,8];for(o=0,u=t.length;o<u;o++)t[o]._code=fe(t[o],i);for(r=0;r<4;r++){for(l=_[r],n=[],o=0,s=(u=t.length)-1;o<u;s=o++)a=t[o],h=t[s],a._code&l?h._code&l||((c=me(h,a,l,i,e))._code=fe(c,i),n.push(c)):(h._code&l&&((c=me(h,a,l,i,e))._code=fe(c,i),n.push(c)),n.push(a));t=n}return t}var Pe,Le=(Object.freeze||Object)({clipPolygon:we}),be={project:function(t){return new B(t.lng,t.lat)},unproject:function(t){return new j(t.y,t.x)},bounds:new O([-180,-90],[180,90])},Te={R:6378137,R_MINOR:6356752.314245179,bounds:new O([-20037508.34279,-15496570.73972],[20037508.34279,18764656.23138]),project:function(t){var i=Math.PI/180,e=this.R,n=t.lat*i,o=this.R_MINOR/e,s=Math.sqrt(1-o*o),r=s*Math.sin(n),a=Math.tan(Math.PI/4-n/2)/Math.pow((1-r)/(1+r),s/2);return n=-e*Math.log(Math.max(a,1e-10)),new B(t.lng*i*e,n)},unproject:function(t){for(var i,e=180/Math.PI,n=this.R,o=this.R_MINOR/n,s=Math.sqrt(1-o*o),r=Math.exp(-t.y/n),a=Math.PI/2-2*Math.atan(r),h=0,u=.1;h<15&&1e-7<Math.abs(u);h++)i=s*Math.sin(a),i=Math.pow((1-i)/(1+i),s/2),a+=u=Math.PI/2-2*Math.atan(r*i)-a;return new j(a*e,t.x*e/n)}},ze=(Object.freeze||Object)({LonLat:be,Mercator:Te,SphericalMercator:q}),Me=h({},U,{code:"EPSG:3395",projection:Te,transformation:(Pe=.5/(Math.PI*Te.R),K(Pe,.5,-Pe,.5))}),Ce=h({},U,{code:"EPSG:4326",projection:be,transformation:K(1/180,1,-1/180,.5)}),Se=h({},F,{projection:be,transformation:K(1,0,-1,0),scale:function(t){return Math.pow(2,t)},zoom:function(t){return Math.log(t)/Math.LN2},distance:function(t,i){var e=i.lng-t.lng,n=i.lat-t.lat;return Math.sqrt(e*e+n*n)},infinite:!0});F.Earth=U,F.EPSG3395=Me,F.EPSG3857=X,F.EPSG900913=J,F.EPSG4326=Ce,F.Simple=Se;var Ee=k.extend({options:{pane:"overlayPane",attribution:null,bubblingMouseEvents:!0},addTo:function(t){return t.addLayer(this),this},remove:function(){return this.removeFrom(this._map||this._mapToAdd)},removeFrom:function(t){return t&&t.removeLayer(this),this},getPane:function(t){return this._map.getPane(t?this.options[t]||t:this.options.pane)},addInteractiveTarget:function(t){return this._map._targets[u(t)]=this},removeInteractiveTarget:function(t){return delete this._map._targets[u(t)],this},getAttribution:function(){return this.options.attribution},_layerAdd:function(t){var i=t.target;if(i.hasLayer(this)){if(this._map=i,this._zoomAnimated=i._zoomAnimated,this.getEvents){var e=this.getEvents();i.on(e,this),this.once("remove",function(){i.off(e,this)},this)}this.onAdd(i),this.getAttribution&&i.attributionControl&&i.attributionControl.addAttribution(this.getAttribution()),this.fire("add"),i.fire("layeradd",{layer:this})}}});$i.include({addLayer:function(t){if(!t._layerAdd)throw new Error("The provided object is not a Layer.");var i=u(t);return this._layers[i]||((this._layers[i]=t)._mapToAdd=this,t.beforeAdd&&t.beforeAdd(this),this.whenReady(t._layerAdd,t)),this},removeLayer:function(t){var i=u(t);return this._layers[i]&&(this._loaded&&t.onRemove(this),t.getAttribution&&this.attributionControl&&this.attributionControl.removeAttribution(t.getAttribution()),delete this._layers[i],this._loaded&&(this.fire("layerremove",{layer:t}),t.fire("remove")),t._map=t._mapToAdd=null),this},hasLayer:function(t){return!!t&&u(t)in this._layers},eachLayer:function(t,i){for(var e in this._layers)t.call(i,this._layers[e]);return this},_addLayers:function(t){for(var i=0,e=(t=t?v(t)?t:[t]:[]).length;i<e;i++)this.addLayer(t[i])},_addZoomLimit:function(t){!isNaN(t.options.maxZoom)&&isNaN(t.options.minZoom)||(this._zoomBoundLayers[u(t)]=t,this._updateZoomLevels())},_removeZoomLimit:function(t){var i=u(t);this._zoomBoundLayers[i]&&(delete this._zoomBoundLayers[i],this._updateZoomLevels())},_updateZoomLevels:function(){var t=1/0,i=-1/0,e=this._getZoomSpan();for(var n in this._zoomBoundLayers){var o=this._zoomBoundLayers[n].options;t=void 0===o.minZoom?t:Math.min(t,o.minZoom),i=void 0===o.maxZoom?i:Math.max(i,o.maxZoom)}this._layersMaxZoom=i===-1/0?void 0:i,this._layersMinZoom=t===1/0?void 0:t,e!==this._getZoomSpan()&&this.fire("zoomlevelschange"),void 0===this.options.maxZoom&&this._layersMaxZoom&&this.getZoom()>this._layersMaxZoom&&this.setZoom(this._layersMaxZoom),void 0===this.options.minZoom&&this._layersMinZoom&&this.getZoom()<this._layersMinZoom&&this.setZoom(this._layersMinZoom)}});var Ze=Ee.extend({initialize:function(t,i){var e,n;if(p(this,i),this._layers={},t)for(e=0,n=t.length;e<n;e++)this.addLayer(t[e])},addLayer:function(t){var i=this.getLayerId(t);return this._layers[i]=t,this._map&&this._map.addLayer(t),this},removeLayer:function(t){var i=t in this._layers?t:this.getLayerId(t);return this._map&&this._layers[i]&&this._map.removeLayer(this._layers[i]),delete this._layers[i],this},hasLayer:function(t){return!!t&&(t in this._layers||this.getLayerId(t)in this._layers)},clearLayers:function(){return this.eachLayer(this.removeLayer,this)},invoke:function(t){var i,e,n=Array.prototype.slice.call(arguments,1);for(i in this._layers)(e=this._layers[i])[t]&&e[t].apply(e,n);return this},onAdd:function(t){this.eachLayer(t.addLayer,t)},onRemove:function(t){this.eachLayer(t.removeLayer,t)},eachLayer:function(t,i){for(var e in this._layers)t.call(i,this._layers[e]);return this},getLayer:function(t){return this._layers[t]},getLayers:function(){var t=[];return this.eachLayer(t.push,t),t},setZIndex:function(t){return this.invoke("setZIndex",t)},getLayerId:function(t){return u(t)}}),ke=Ze.extend({addLayer:function(t){return this.hasLayer(t)?this:(t.addEventParent(this),Ze.prototype.addLayer.call(this,t),this.fire("layeradd",{layer:t}))},removeLayer:function(t){return this.hasLayer(t)?(t in this._layers&&(t=this._layers[t]),t.removeEventParent(this),Ze.prototype.removeLayer.call(this,t),this.fire("layerremove",{layer:t})):this},setStyle:function(t){return this.invoke("setStyle",t)},bringToFront:function(){return this.invoke("bringToFront")},bringToBack:function(){return this.invoke("bringToBack")},getBounds:function(){var t=new N;for(var i in this._layers){var e=this._layers[i];t.extend(e.getBounds?e.getBounds():e.getLatLng())}return t}}),Be=E.extend({options:{popupAnchor:[0,0],tooltipAnchor:[0,0]},initialize:function(t){p(this,t)},createIcon:function(t){return this._createIcon("icon",t)},createShadow:function(t){return this._createIcon("shadow",t)},_createIcon:function(t,i){var e=this._getIconUrl(t);if(!e){if("icon"===t)throw new Error("iconUrl not set in Icon options (see the docs).");return null}var n=this._createImg(e,i&&"IMG"===i.tagName?i:null);return this._setIconStyles(n,t),n},_setIconStyles:function(t,i){var e=this.options,n=e[i+"Size"];"number"==typeof n&&(n=[n,n]);var o=I(n),s=I("shadow"===i&&e.shadowAnchor||e.iconAnchor||o&&o.divideBy(2,!0));t.className="leaflet-marker-"+i+" "+(e.className||""),s&&(t.style.marginLeft=-s.x+"px",t.style.marginTop=-s.y+"px"),o&&(t.style.width=o.x+"px",t.style.height=o.y+"px")},_createImg:function(t,i){return(i=i||document.createElement("img")).src=t,i},_getIconUrl:function(t){return Ct&&this.options[t+"RetinaUrl"]||this.options[t+"Url"]}});var Ae=Be.extend({options:{iconUrl:"marker-icon.png",iconRetinaUrl:"marker-icon-2x.png",shadowUrl:"marker-shadow.png",iconSize:[25,41],iconAnchor:[12,41],popupAnchor:[1,-34],tooltipAnchor:[16,-28],shadowSize:[41,41]},_getIconUrl:function(t){return Ae.imagePath||(Ae.imagePath=this._detectIconPath()),(this.options.imagePath||Ae.imagePath)+Be.prototype._getIconUrl.call(this,t)},_detectIconPath:function(){var t=ui("div","leaflet-default-icon-path",document.body),i=hi(t,"background-image")||hi(t,"backgroundImage");return document.body.removeChild(t),i=null===i||0!==i.indexOf("url")?"":i.replace(/^url\(["']?/,"").replace(/marker-icon\.png["']?\)$/,"")}}),Ie=se.extend({initialize:function(t){this._marker=t},addHooks:function(){var t=this._marker._icon;this._draggable||(this._draggable=new ce(t,t,!0)),this._draggable.on({dragstart:this._onDragStart,predrag:this._onPreDrag,drag:this._onDrag,dragend:this._onDragEnd},this).enable(),mi(t,"leaflet-marker-draggable")},removeHooks:function(){this._draggable.off({dragstart:this._onDragStart,predrag:this._onPreDrag,drag:this._onDrag,dragend:this._onDragEnd},this).disable(),this._marker._icon&&fi(this._marker._icon,"leaflet-marker-draggable")},moved:function(){return this._draggable&&this._draggable._moved},_adjustPan:function(t){var i=this._marker,e=i._map,n=this._marker.options.autoPanSpeed,o=this._marker.options.autoPanPadding,s=Li(i._icon),r=e.getPixelBounds(),a=e.getPixelOrigin(),h=R(r.min._subtract(a).add(o),r.max._subtract(a).subtract(o));if(!h.contains(s)){var u=I((Math.max(h.max.x,s.x)-h.max.x)/(r.max.x-h.max.x)-(Math.min(h.min.x,s.x)-h.min.x)/(r.min.x-h.min.x),(Math.max(h.max.y,s.y)-h.max.y)/(r.max.y-h.max.y)-(Math.min(h.min.y,s.y)-h.min.y)/(r.min.y-h.min.y)).multiplyBy(n);e.panBy(u,{animate:!1}),this._draggable._newPos._add(u),this._draggable._startPos._add(u),Pi(i._icon,this._draggable._newPos),this._onDrag(t),this._panRequest=M(this._adjustPan.bind(this,t))}},_onDragStart:function(){this._oldLatLng=this._marker.getLatLng(),this._marker.closePopup().fire("movestart").fire("dragstart")},_onPreDrag:function(t){this._marker.options.autoPan&&(C(this._panRequest),this._panRequest=M(this._adjustPan.bind(this,t)))},_onDrag:function(t){var i=this._marker,e=i._shadow,n=Li(i._icon),o=i._map.layerPointToLatLng(n);e&&Pi(e,n),i._latlng=o,t.latlng=o,t.oldLatLng=this._oldLatLng,i.fire("move",t).fire("drag",t)},_onDragEnd:function(t){C(this._panRequest),delete this._oldLatLng,this._marker.fire("moveend").fire("dragend",t)}}),Oe=Ee.extend({options:{icon:new Ae,interactive:!0,keyboard:!0,title:"",alt:"",zIndexOffset:0,opacity:1,riseOnHover:!1,riseOffset:250,pane:"markerPane",shadowPane:"shadowPane",bubblingMouseEvents:!1,draggable:!1,autoPan:!1,autoPanPadding:[50,50],autoPanSpeed:10},initialize:function(t,i){p(this,i),this._latlng=W(t)},onAdd:function(t){this._zoomAnimated=this._zoomAnimated&&t.options.markerZoomAnimation,this._zoomAnimated&&t.on("zoomanim",this._animateZoom,this),this._initIcon(),this.update()},onRemove:function(t){this.dragging&&this.dragging.enabled()&&(this.options.draggable=!0,this.dragging.removeHooks()),delete this.dragging,this._zoomAnimated&&t.off("zoomanim",this._animateZoom,this),this._removeIcon(),this._removeShadow()},getEvents:function(){return{zoom:this.update,viewreset:this.update}},getLatLng:function(){return this._latlng},setLatLng:function(t){var i=this._latlng;return this._latlng=W(t),this.update(),this.fire("move",{oldLatLng:i,latlng:this._latlng})},setZIndexOffset:function(t){return this.options.zIndexOffset=t,this.update()},getIcon:function(){return this.options.icon},setIcon:function(t){return this.options.icon=t,this._map&&(this._initIcon(),this.update()),this._popup&&this.bindPopup(this._popup,this._popup.options),this},getElement:function(){return this._icon},update:function(){if(this._icon&&this._map){var t=this._map.latLngToLayerPoint(this._latlng).round();this._setPos(t)}return this},_initIcon:function(){var t=this.options,i="leaflet-zoom-"+(this._zoomAnimated?"animated":"hide"),e=t.icon.createIcon(this._icon),n=!1;e!==this._icon&&(this._icon&&this._removeIcon(),n=!0,t.title&&(e.title=t.title),"IMG"===e.tagName&&(e.alt=t.alt||"")),mi(e,i),t.keyboard&&(e.tabIndex="0"),this._icon=e,t.riseOnHover&&this.on({mouseover:this._bringToFront,mouseout:this._resetZIndex});var o=t.icon.createShadow(this._shadow),s=!1;o!==this._shadow&&(this._removeShadow(),s=!0),o&&(mi(o,i),o.alt=""),this._shadow=o,t.opacity<1&&this._updateOpacity(),n&&this.getPane().appendChild(this._icon),this._initInteraction(),o&&s&&this.getPane(t.shadowPane).appendChild(this._shadow)},_removeIcon:function(){this.options.riseOnHover&&this.off({mouseover:this._bringToFront,mouseout:this._resetZIndex}),li(this._icon),this.removeInteractiveTarget(this._icon),this._icon=null},_removeShadow:function(){this._shadow&&li(this._shadow),this._shadow=null},_setPos:function(t){this._icon&&Pi(this._icon,t),this._shadow&&Pi(this._shadow,t),this._zIndex=t.y+this.options.zIndexOffset,this._resetZIndex()},_updateZIndex:function(t){this._icon&&(this._icon.style.zIndex=this._zIndex+t)},_animateZoom:function(t){var i=this._map._latLngToNewLayerPoint(this._latlng,t.zoom,t.center).round();this._setPos(i)},_initInteraction:function(){if(this.options.interactive&&(mi(this._icon,"leaflet-interactive"),this.addInteractiveTarget(this._icon),Ie)){var t=this.options.draggable;this.dragging&&(t=this.dragging.enabled(),this.dragging.disable()),this.dragging=new Ie(this),t&&this.dragging.enable()}},setOpacity:function(t){return this.options.opacity=t,this._map&&this._updateOpacity(),this},_updateOpacity:function(){var t=this.options.opacity;this._icon&&yi(this._icon,t),this._shadow&&yi(this._shadow,t)},_bringToFront:function(){this._updateZIndex(this.options.riseOffset)},_resetZIndex:function(){this._updateZIndex(0)},_getPopupAnchor:function(){return this.options.icon.options.popupAnchor},_getTooltipAnchor:function(){return this.options.icon.options.tooltipAnchor}});var Re=Ee.extend({options:{stroke:!0,color:"#3388ff",weight:3,opacity:1,lineCap:"round",lineJoin:"round",dashArray:null,dashOffset:null,fill:!1,fillColor:null,fillOpacity:.2,fillRule:"evenodd",interactive:!0,bubblingMouseEvents:!0},beforeAdd:function(t){this._renderer=t.getRenderer(this)},onAdd:function(){this._renderer._initPath(this),this._reset(),this._renderer._addPath(this)},onRemove:function(){this._renderer._removePath(this)},redraw:function(){return this._map&&this._renderer._updatePath(this),this},setStyle:function(t){return p(this,t),this._renderer&&(this._renderer._updateStyle(this),this.options.stroke&&t&&t.hasOwnProperty("weight")&&this._updateBounds()),this},bringToFront:function(){return this._renderer&&this._renderer._bringToFront(this),this},bringToBack:function(){return this._renderer&&this._renderer._bringToBack(this),this},getElement:function(){return this._path},_reset:function(){this._project(),this._update()},_clickTolerance:function(){return(this.options.stroke?this.options.weight/2:0)+this._renderer.options.tolerance}}),Ne=Re.extend({options:{fill:!0,radius:10},initialize:function(t,i){p(this,i),this._latlng=W(t),this._radius=this.options.radius},setLatLng:function(t){var i=this._latlng;return this._latlng=W(t),this.redraw(),this.fire("move",{oldLatLng:i,latlng:this._latlng})},getLatLng:function(){return this._latlng},setRadius:function(t){return this.options.radius=this._radius=t,this.redraw()},getRadius:function(){return this._radius},setStyle:function(t){var i=t&&t.radius||this._radius;return Re.prototype.setStyle.call(this,t),this.setRadius(i),this},_project:function(){this._point=this._map.latLngToLayerPoint(this._latlng),this._updateBounds()},_updateBounds:function(){var t=this._radius,i=this._radiusY||t,e=this._clickTolerance(),n=[t+e,i+e];this._pxBounds=new O(this._point.subtract(n),this._point.add(n))},_update:function(){this._map&&this._updatePath()},_updatePath:function(){this._renderer._updateCircle(this)},_empty:function(){return this._radius&&!this._renderer._bounds.intersects(this._pxBounds)},_containsPoint:function(t){return t.distanceTo(this._point)<=this._radius+this._clickTolerance()}});var De=Ne.extend({initialize:function(t,i,e){if("number"==typeof i&&(i=h({},e,{radius:i})),p(this,i),this._latlng=W(t),isNaN(this.options.radius))throw new Error("Circle radius cannot be NaN");this._mRadius=this.options.radius},setRadius:function(t){return this._mRadius=t,this.redraw()},getRadius:function(){return this._mRadius},getBounds:function(){var t=[this._radius,this._radiusY||this._radius];return new N(this._map.layerPointToLatLng(this._point.subtract(t)),this._map.layerPointToLatLng(this._point.add(t)))},setStyle:Re.prototype.setStyle,_project:function(){var t=this._latlng.lng,i=this._latlng.lat,e=this._map,n=e.options.crs;if(n.distance===U.distance){var o=Math.PI/180,s=this._mRadius/U.R/o,r=e.project([i+s,t]),a=e.project([i-s,t]),h=r.add(a).divideBy(2),u=e.unproject(h).lat,l=Math.acos((Math.cos(s*o)-Math.sin(i*o)*Math.sin(u*o))/(Math.cos(i*o)*Math.cos(u*o)))/o;!isNaN(l)&&0!==l||(l=s/Math.cos(Math.PI/180*i)),this._point=h.subtract(e.getPixelOrigin()),this._radius=isNaN(l)?0:h.x-e.project([u,t-l]).x,this._radiusY=h.y-r.y}else{var c=n.unproject(n.project(this._latlng).subtract([this._mRadius,0]));this._point=e.latLngToLayerPoint(this._latlng),this._radius=this._point.x-e.latLngToLayerPoint(c).x}this._updateBounds()}});var je=Re.extend({options:{smoothFactor:1,noClip:!1},initialize:function(t,i){p(this,i),this._setLatLngs(t)},getLatLngs:function(){return this._latlngs},setLatLngs:function(t){return this._setLatLngs(t),this.redraw()},isEmpty:function(){return!this._latlngs.length},closestLayerPoint:function(t){for(var i,e,n=1/0,o=null,s=ge,r=0,a=this._parts.length;r<a;r++)for(var h=this._parts[r],u=1,l=h.length;u<l;u++){var c=s(t,i=h[u-1],e=h[u],!0);c<n&&(n=c,o=s(t,i,e))}return o&&(o.distance=Math.sqrt(n)),o},getCenter:function(){if(!this._map)throw new Error("Must add layer to map before using getCenter()");var t,i,e,n,o,s,r,a=this._rings[0],h=a.length;if(!h)return null;for(i=t=0;t<h-1;t++)i+=a[t].distanceTo(a[t+1])/2;if(0===i)return this._map.layerPointToLatLng(a[0]);for(n=t=0;t<h-1;t++)if(o=a[t],s=a[t+1],i<(n+=e=o.distanceTo(s)))return r=(n-i)/e,this._map.layerPointToLatLng([s.x-r*(s.x-o.x),s.y-r*(s.y-o.y)])},getBounds:function(){return this._bounds},addLatLng:function(t,i){return i=i||this._defaultShape(),t=W(t),i.push(t),this._bounds.extend(t),this.redraw()},_setLatLngs:function(t){this._bounds=new N,this._latlngs=this._convertLatLngs(t)},_defaultShape:function(){return ve(this._latlngs)?this._latlngs:this._latlngs[0]},_convertLatLngs:function(t){for(var i=[],e=ve(t),n=0,o=t.length;n<o;n++)e?(i[n]=W(t[n]),this._bounds.extend(i[n])):i[n]=this._convertLatLngs(t[n]);return i},_project:function(){var t=new O;this._rings=[],this._projectLatlngs(this._latlngs,this._rings,t),this._bounds.isValid()&&t.isValid()&&(this._rawPxBounds=t,this._updateBounds())},_updateBounds:function(){var t=this._clickTolerance(),i=new B(t,t);this._pxBounds=new O([this._rawPxBounds.min.subtract(i),this._rawPxBounds.max.add(i)])},_projectLatlngs:function(t,i,e){var n,o,s=t[0]instanceof j,r=t.length;if(s){for(o=[],n=0;n<r;n++)o[n]=this._map.latLngToLayerPoint(t[n]),e.extend(o[n]);i.push(o)}else for(n=0;n<r;n++)this._projectLatlngs(t[n],i,e)},_clipPoints:function(){var t=this._renderer._bounds;if(this._parts=[],this._pxBounds&&this._pxBounds.intersects(t))if(this.options.noClip)this._parts=this._rings;else{var i,e,n,o,s,r,a,h=this._parts;for(n=i=0,o=this._rings.length;i<o;i++)for(e=0,s=(a=this._rings[i]).length;e<s-1;e++)(r=pe(a[e],a[e+1],t,e,!0))&&(h[n]=h[n]||[],h[n].push(r[0]),r[1]===a[e+1]&&e!==s-2||(h[n].push(r[1]),n++))}},_simplifyPoints:function(){for(var t=this._parts,i=this.options.smoothFactor,e=0,n=t.length;e<n;e++)t[e]=_e(t[e],i)},_update:function(){this._map&&(this._clipPoints(),this._simplifyPoints(),this._updatePath())},_updatePath:function(){this._renderer._updatePoly(this)},_containsPoint:function(t,i){var e,n,o,s,r,a,h=this._clickTolerance();if(!this._pxBounds||!this._pxBounds.contains(t))return!1;for(e=0,s=this._parts.length;e<s;e++)for(n=0,o=(r=(a=this._parts[e]).length)-1;n<r;o=n++)if((i||0!==n)&&de(t,a[o],a[n])<=h)return!0;return!1}});je._flat=ye;var We=je.extend({options:{fill:!0},isEmpty:function(){return!this._latlngs.length||!this._latlngs[0].length},getCenter:function(){if(!this._map)throw new Error("Must add layer to map before using getCenter()");var t,i,e,n,o,s,r,a,h,u=this._rings[0],l=u.length;if(!l)return null;for(s=r=a=0,t=0,i=l-1;t<l;i=t++)e=u[t],n=u[i],o=e.y*n.x-n.y*e.x,r+=(e.x+n.x)*o,a+=(e.y+n.y)*o,s+=3*o;return h=0===s?u[0]:[r/s,a/s],this._map.layerPointToLatLng(h)},_convertLatLngs:function(t){var i=je.prototype._convertLatLngs.call(this,t),e=i.length;return 2<=e&&i[0]instanceof j&&i[0].equals(i[e-1])&&i.pop(),i},_setLatLngs:function(t){je.prototype._setLatLngs.call(this,t),ve(this._latlngs)&&(this._latlngs=[this._latlngs])},_defaultShape:function(){return ve(this._latlngs[0])?this._latlngs[0]:this._latlngs[0][0]},_clipPoints:function(){var t=this._renderer._bounds,i=this.options.weight,e=new B(i,i);if(t=new O(t.min.subtract(e),t.max.add(e)),this._parts=[],this._pxBounds&&this._pxBounds.intersects(t))if(this.options.noClip)this._parts=this._rings;else for(var n,o=0,s=this._rings.length;o<s;o++)(n=we(this._rings[o],t,!0)).length&&this._parts.push(n)},_updatePath:function(){this._renderer._updatePoly(this,!0)},_containsPoint:function(t){var i,e,n,o,s,r,a,h,u=!1;if(!this._pxBounds||!this._pxBounds.contains(t))return!1;for(o=0,a=this._parts.length;o<a;o++)for(s=0,r=(h=(i=this._parts[o]).length)-1;s<h;r=s++)e=i[s],n=i[r],e.y>t.y!=n.y>t.y&&t.x<(n.x-e.x)*(t.y-e.y)/(n.y-e.y)+e.x&&(u=!u);return u||je.prototype._containsPoint.call(this,t,!0)}});var He=ke.extend({initialize:function(t,i){p(this,i),this._layers={},t&&this.addData(t)},addData:function(t){var i,e,n,o=v(t)?t:t.features;if(o){for(i=0,e=o.length;i<e;i++)((n=o[i]).geometries||n.geometry||n.features||n.coordinates)&&this.addData(n);return this}var s=this.options;if(s.filter&&!s.filter(t))return this;var r=Fe(t,s);return r?(r.feature=Xe(t),r.defaultOptions=r.options,this.resetStyle(r),s.onEachFeature&&s.onEachFeature(t,r),this.addLayer(r)):this},resetStyle:function(t){return void 0===t?this.eachLayer(this.resetStyle,this):(t.options=h({},t.defaultOptions),this._setLayerStyle(t,this.options.style),this)},setStyle:function(i){return this.eachLayer(function(t){this._setLayerStyle(t,i)},this)},_setLayerStyle:function(t,i){t.setStyle&&("function"==typeof i&&(i=i(t.feature)),t.setStyle(i))}});function Fe(t,i){var e,n,o,s,r="Feature"===t.type?t.geometry:t,a=r?r.coordinates:null,h=[],u=i&&i.pointToLayer,l=i&&i.coordsToLatLng||Ve;if(!a&&!r)return null;switch(r.type){case"Point":return Ue(u,t,e=l(a),i);case"MultiPoint":for(o=0,s=a.length;o<s;o++)e=l(a[o]),h.push(Ue(u,t,e,i));return new ke(h);case"LineString":case"MultiLineString":return n=qe(a,"LineString"===r.type?0:1,l),new je(n,i);case"Polygon":case"MultiPolygon":return n=qe(a,"Polygon"===r.type?1:2,l),new We(n,i);case"GeometryCollection":for(o=0,s=r.geometries.length;o<s;o++){var c=Fe({geometry:r.geometries[o],type:"Feature",properties:t.properties},i);c&&h.push(c)}return new ke(h);default:throw new Error("Invalid GeoJSON object.")}}function Ue(t,i,e,n){return t?t(i,e):new Oe(e,n&&n.markersInheritOptions&&n)}function Ve(t){return new j(t[1],t[0],t[2])}function qe(t,i,e){for(var n,o=[],s=0,r=t.length;s<r;s++)n=i?qe(t[s],i-1,e):(e||Ve)(t[s]),o.push(n);return o}function Ge(t,i){return i="number"==typeof i?i:6,void 0!==t.alt?[c(t.lng,i),c(t.lat,i),c(t.alt,i)]:[c(t.lng,i),c(t.lat,i)]}function Ke(t,i,e,n){for(var o=[],s=0,r=t.length;s<r;s++)o.push(i?Ke(t[s],i-1,e,n):Ge(t[s],n));return!i&&e&&o.push(o[0]),o}function Ye(t,i){return t.feature?h({},t.feature,{geometry:i}):Xe(i)}function Xe(t){return"Feature"===t.type||"FeatureCollection"===t.type?t:{type:"Feature",properties:{},geometry:t}}var Je={toGeoJSON:function(t){return Ye(this,{type:"Point",coordinates:Ge(this.getLatLng(),t)})}};function $e(t,i){return new He(t,i)}Oe.include(Je),De.include(Je),Ne.include(Je),je.include({toGeoJSON:function(t){var i=!ve(this._latlngs);return Ye(this,{type:(i?"Multi":"")+"LineString",coordinates:Ke(this._latlngs,i?1:0,!1,t)})}}),We.include({toGeoJSON:function(t){var i=!ve(this._latlngs),e=i&&!ve(this._latlngs[0]),n=Ke(this._latlngs,e?2:i?1:0,!0,t);return i||(n=[n]),Ye(this,{type:(e?"Multi":"")+"Polygon",coordinates:n})}}),Ze.include({toMultiPoint:function(i){var e=[];return this.eachLayer(function(t){e.push(t.toGeoJSON(i).geometry.coordinates)}),Ye(this,{type:"MultiPoint",coordinates:e})},toGeoJSON:function(n){var t=this.feature&&this.feature.geometry&&this.feature.geometry.type;if("MultiPoint"===t)return this.toMultiPoint(n);var o="GeometryCollection"===t,s=[];return this.eachLayer(function(t){if(t.toGeoJSON){var i=t.toGeoJSON(n);if(o)s.push(i.geometry);else{var e=Xe(i);"FeatureCollection"===e.type?s.push.apply(s,e.features):s.push(e)}}}),o?Ye(this,{geometries:s,type:"GeometryCollection"}):{type:"FeatureCollection",features:s}}});var Qe=$e,tn=Ee.extend({options:{opacity:1,alt:"",interactive:!1,crossOrigin:!1,errorOverlayUrl:"",zIndex:1,className:""},initialize:function(t,i,e){this._url=t,this._bounds=D(i),p(this,e)},onAdd:function(){this._image||(this._initImage(),this.options.opacity<1&&this._updateOpacity()),this.options.interactive&&(mi(this._image,"leaflet-interactive"),this.addInteractiveTarget(this._image)),this.getPane().appendChild(this._image),this._reset()},onRemove:function(){li(this._image),this.options.interactive&&this.removeInteractiveTarget(this._image)},setOpacity:function(t){return this.options.opacity=t,this._image&&this._updateOpacity(),this},setStyle:function(t){return t.opacity&&this.setOpacity(t.opacity),this},bringToFront:function(){return this._map&&_i(this._image),this},bringToBack:function(){return this._map&&di(this._image),this},setUrl:function(t){return this._url=t,this._image&&(this._image.src=t),this},setBounds:function(t){return this._bounds=D(t),this._map&&this._reset(),this},getEvents:function(){var t={zoom:this._reset,viewreset:this._reset};return this._zoomAnimated&&(t.zoomanim=this._animateZoom),t},setZIndex:function(t){return this.options.zIndex=t,this._updateZIndex(),this},getBounds:function(){return this._bounds},getElement:function(){return this._image},_initImage:function(){var t="IMG"===this._url.tagName,i=this._image=t?this._url:ui("img");mi(i,"leaflet-image-layer"),this._zoomAnimated&&mi(i,"leaflet-zoom-animated"),this.options.className&&mi(i,this.options.className),i.onselectstart=l,i.onmousemove=l,i.onload=a(this.fire,this,"load"),i.onerror=a(this._overlayOnError,this,"error"),!this.options.crossOrigin&&""!==this.options.crossOrigin||(i.crossOrigin=!0===this.options.crossOrigin?"":this.options.crossOrigin),this.options.zIndex&&this._updateZIndex(),t?this._url=i.src:(i.src=this._url,i.alt=this.options.alt)},_animateZoom:function(t){var i=this._map.getZoomScale(t.zoom),e=this._map._latLngBoundsToNewLayerBounds(this._bounds,t.zoom,t.center).min;wi(this._image,e,i)},_reset:function(){var t=this._image,i=new O(this._map.latLngToLayerPoint(this._bounds.getNorthWest()),this._map.latLngToLayerPoint(this._bounds.getSouthEast())),e=i.getSize();Pi(t,i.min),t.style.width=e.x+"px",t.style.height=e.y+"px"},_updateOpacity:function(){yi(this._image,this.options.opacity)},_updateZIndex:function(){this._image&&void 0!==this.options.zIndex&&null!==this.options.zIndex&&(this._image.style.zIndex=this.options.zIndex)},_overlayOnError:function(){this.fire("error");var t=this.options.errorOverlayUrl;t&&this._url!==t&&(this._url=t,this._image.src=t)}}),en=tn.extend({options:{autoplay:!0,loop:!0,keepAspectRatio:!0},_initImage:function(){var t="VIDEO"===this._url.tagName,i=this._image=t?this._url:ui("video");if(mi(i,"leaflet-image-layer"),this._zoomAnimated&&mi(i,"leaflet-zoom-animated"),this.options.className&&mi(i,this.options.className),i.onselectstart=l,i.onmousemove=l,i.onloadeddata=a(this.fire,this,"load"),t){for(var e=i.getElementsByTagName("source"),n=[],o=0;o<e.length;o++)n.push(e[o].src);this._url=0<e.length?n:[i.src]}else{v(this._url)||(this._url=[this._url]),!this.options.keepAspectRatio&&i.style.hasOwnProperty("objectFit")&&(i.style.objectFit="fill"),i.autoplay=!!this.options.autoplay,i.loop=!!this.options.loop;for(var s=0;s<this._url.length;s++){var r=ui("source");r.src=this._url[s],i.appendChild(r)}}}});var nn=tn.extend({_initImage:function(){var t=this._image=this._url;mi(t,"leaflet-image-layer"),this._zoomAnimated&&mi(t,"leaflet-zoom-animated"),this.options.className&&mi(t,this.options.className),t.onselectstart=l,t.onmousemove=l}});var on=Ee.extend({options:{offset:[0,7],className:"",pane:"popupPane"},initialize:function(t,i){p(this,t),this._source=i},onAdd:function(t){this._zoomAnimated=t._zoomAnimated,this._container||this._initLayout(),t._fadeAnimated&&yi(this._container,0),clearTimeout(this._removeTimeout),this.getPane().appendChild(this._container),this.update(),t._fadeAnimated&&yi(this._container,1),this.bringToFront()},onRemove:function(t){t._fadeAnimated?(yi(this._container,0),this._removeTimeout=setTimeout(a(li,void 0,this._container),200)):li(this._container)},getLatLng:function(){return this._latlng},setLatLng:function(t){return this._latlng=W(t),this._map&&(this._updatePosition(),this._adjustPan()),this},getContent:function(){return this._content},setContent:function(t){return this._content=t,this.update(),this},getElement:function(){return this._container},update:function(){this._map&&(this._container.style.visibility="hidden",this._updateContent(),this._updateLayout(),this._updatePosition(),this._container.style.visibility="",this._adjustPan())},getEvents:function(){var t={zoom:this._updatePosition,viewreset:this._updatePosition};return this._zoomAnimated&&(t.zoomanim=this._animateZoom),t},isOpen:function(){return!!this._map&&this._map.hasLayer(this)},bringToFront:function(){return this._map&&_i(this._container),this},bringToBack:function(){return this._map&&di(this._container),this},_prepareOpen:function(t,i,e){if(i instanceof Ee||(e=i,i=t),i instanceof ke)for(var n in t._layers){i=t._layers[n];break}if(!e)if(i.getCenter)e=i.getCenter();else{if(!i.getLatLng)throw new Error("Unable to get source layer LatLng.");e=i.getLatLng()}return this._source=i,this.update(),e},_updateContent:function(){if(this._content){var t=this._contentNode,i="function"==typeof this._content?this._content(this._source||this):this._content;if("string"==typeof i)t.innerHTML=i;else{for(;t.hasChildNodes();)t.removeChild(t.firstChild);t.appendChild(i)}this.fire("contentupdate")}},_updatePosition:function(){if(this._map){var t=this._map.latLngToLayerPoint(this._latlng),i=I(this.options.offset),e=this._getAnchor();this._zoomAnimated?Pi(this._container,t.add(e)):i=i.add(t).add(e);var n=this._containerBottom=-i.y,o=this._containerLeft=-Math.round(this._containerWidth/2)+i.x;this._container.style.bottom=n+"px",this._container.style.left=o+"px"}},_getAnchor:function(){return[0,0]}}),sn=on.extend({options:{maxWidth:300,minWidth:50,maxHeight:null,autoPan:!0,autoPanPaddingTopLeft:null,autoPanPaddingBottomRight:null,autoPanPadding:[5,5],keepInView:!1,closeButton:!0,autoClose:!0,closeOnEscapeKey:!0,className:""},openOn:function(t){return t.openPopup(this),this},onAdd:function(t){on.prototype.onAdd.call(this,t),t.fire("popupopen",{popup:this}),this._source&&(this._source.fire("popupopen",{popup:this},!0),this._source instanceof Re||this._source.on("preclick",Ri))},onRemove:function(t){on.prototype.onRemove.call(this,t),t.fire("popupclose",{popup:this}),this._source&&(this._source.fire("popupclose",{popup:this},!0),this._source instanceof Re||this._source.off("preclick",Ri))},getEvents:function(){var t=on.prototype.getEvents.call(this);return(void 0!==this.options.closeOnClick?this.options.closeOnClick:this._map.options.closePopupOnClick)&&(t.preclick=this._close),this.options.keepInView&&(t.moveend=this._adjustPan),t},_close:function(){this._map&&this._map.closePopup(this)},_initLayout:function(){var t="leaflet-popup",i=this._container=ui("div",t+" "+(this.options.className||"")+" leaflet-zoom-animated"),e=this._wrapper=ui("div",t+"-content-wrapper",i);if(this._contentNode=ui("div",t+"-content",e),Di(e),Ni(this._contentNode),ki(e,"contextmenu",Ri),this._tipContainer=ui("div",t+"-tip-container",i),this._tip=ui("div",t+"-tip",this._tipContainer),this.options.closeButton){var n=this._closeButton=ui("a",t+"-close-button",i);n.href="#close",n.innerHTML="×",ki(n,"click",this._onCloseButtonClick,this)}},_updateLayout:function(){var t=this._contentNode,i=t.style;i.width="",i.whiteSpace="nowrap";var e=t.offsetWidth;e=Math.min(e,this.options.maxWidth),e=Math.max(e,this.options.minWidth),i.width=e+1+"px",i.whiteSpace="",i.height="";var n=t.offsetHeight,o=this.options.maxHeight,s="leaflet-popup-scrolled";o&&o<n?(i.height=o+"px",mi(t,s)):fi(t,s),this._containerWidth=this._container.offsetWidth},_animateZoom:function(t){var i=this._map._latLngToNewLayerPoint(this._latlng,t.zoom,t.center),e=this._getAnchor();Pi(this._container,i.add(e))},_adjustPan:function(){if(this.options.autoPan){this._map._panAnim&&this._map._panAnim.stop();var t=this._map,i=parseInt(hi(this._container,"marginBottom"),10)||0,e=this._container.offsetHeight+i,n=this._containerWidth,o=new B(this._containerLeft,-e-this._containerBottom);o._add(Li(this._container));var s=t.layerPointToContainerPoint(o),r=I(this.options.autoPanPadding),a=I(this.options.autoPanPaddingTopLeft||r),h=I(this.options.autoPanPaddingBottomRight||r),u=t.getSize(),l=0,c=0;s.x+n+h.x>u.x&&(l=s.x+n-u.x+h.x),s.x-l-a.x<0&&(l=s.x-a.x),s.y+e+h.y>u.y&&(c=s.y+e-u.y+h.y),s.y-c-a.y<0&&(c=s.y-a.y),(l||c)&&t.fire("autopanstart").panBy([l,c])}},_onCloseButtonClick:function(t){this._close(),Wi(t)},_getAnchor:function(){return I(this._source&&this._source._getPopupAnchor?this._source._getPopupAnchor():[0,0])}});$i.mergeOptions({closePopupOnClick:!0}),$i.include({openPopup:function(t,i,e){return t instanceof sn||(t=new sn(e).setContent(t)),i&&t.setLatLng(i),this.hasLayer(t)?this:(this._popup&&this._popup.options.autoClose&&this.closePopup(),this._popup=t,this.addLayer(t))},closePopup:function(t){return t&&t!==this._popup||(t=this._popup,this._popup=null),t&&this.removeLayer(t),this}}),Ee.include({bindPopup:function(t,i){return t instanceof sn?(p(t,i),(this._popup=t)._source=this):(this._popup&&!i||(this._popup=new sn(i,this)),this._popup.setContent(t)),this._popupHandlersAdded||(this.on({click:this._openPopup,keypress:this._onKeyPress,remove:this.closePopup,move:this._movePopup}),this._popupHandlersAdded=!0),this},unbindPopup:function(){return this._popup&&(this.off({click:this._openPopup,keypress:this._onKeyPress,remove:this.closePopup,move:this._movePopup}),this._popupHandlersAdded=!1,this._popup=null),this},openPopup:function(t,i){return this._popup&&this._map&&(i=this._popup._prepareOpen(this,t,i),this._map.openPopup(this._popup,i)),this},closePopup:function(){return this._popup&&this._popup._close(),this},togglePopup:function(t){return this._popup&&(this._popup._map?this.closePopup():this.openPopup(t)),this},isPopupOpen:function(){return!!this._popup&&this._popup.isOpen()},setPopupContent:function(t){return this._popup&&this._popup.setContent(t),this},getPopup:function(){return this._popup},_openPopup:function(t){var i=t.layer||t.target;this._popup&&this._map&&(Wi(t),i instanceof Re?this.openPopup(t.layer||t.target,t.latlng):this._map.hasLayer(this._popup)&&this._popup._source===i?this.closePopup():this.openPopup(i,t.latlng))},_movePopup:function(t){this._popup.setLatLng(t.latlng)},_onKeyPress:function(t){13===t.originalEvent.keyCode&&this._openPopup(t)}});var rn=on.extend({options:{pane:"tooltipPane",offset:[0,0],direction:"auto",permanent:!1,sticky:!1,interactive:!1,opacity:.9},onAdd:function(t){on.prototype.onAdd.call(this,t),this.setOpacity(this.options.opacity),t.fire("tooltipopen",{tooltip:this}),this._source&&this._source.fire("tooltipopen",{tooltip:this},!0)},onRemove:function(t){on.prototype.onRemove.call(this,t),t.fire("tooltipclose",{tooltip:this}),this._source&&this._source.fire("tooltipclose",{tooltip:this},!0)},getEvents:function(){var t=on.prototype.getEvents.call(this);return Tt&&!this.options.permanent&&(t.preclick=this._close),t},_close:function(){this._map&&this._map.closeTooltip(this)},_initLayout:function(){var t="leaflet-tooltip "+(this.options.className||"")+" leaflet-zoom-"+(this._zoomAnimated?"animated":"hide");this._contentNode=this._container=ui("div",t)},_updateLayout:function(){},_adjustPan:function(){},_setPosition:function(t){var i=this._map,e=this._container,n=i.latLngToContainerPoint(i.getCenter()),o=i.layerPointToContainerPoint(t),s=this.options.direction,r=e.offsetWidth,a=e.offsetHeight,h=I(this.options.offset),u=this._getAnchor();t="top"===s?t.add(I(-r/2+h.x,-a+h.y+u.y,!0)):"bottom"===s?t.subtract(I(r/2-h.x,-h.y,!0)):"center"===s?t.subtract(I(r/2+h.x,a/2-u.y+h.y,!0)):"right"===s||"auto"===s&&o.x<n.x?(s="right",t.add(I(h.x+u.x,u.y-a/2+h.y,!0))):(s="left",t.subtract(I(r+u.x-h.x,a/2-u.y-h.y,!0))),fi(e,"leaflet-tooltip-right"),fi(e,"leaflet-tooltip-left"),fi(e,"leaflet-tooltip-top"),fi(e,"leaflet-tooltip-bottom"),mi(e,"leaflet-tooltip-"+s),Pi(e,t)},_updatePosition:function(){var t=this._map.latLngToLayerPoint(this._latlng);this._setPosition(t)},setOpacity:function(t){this.options.opacity=t,this._container&&yi(this._container,t)},_animateZoom:function(t){var i=this._map._latLngToNewLayerPoint(this._latlng,t.zoom,t.center);this._setPosition(i)},_getAnchor:function(){return I(this._source&&this._source._getTooltipAnchor&&!this.options.sticky?this._source._getTooltipAnchor():[0,0])}});$i.include({openTooltip:function(t,i,e){return t instanceof rn||(t=new rn(e).setContent(t)),i&&t.setLatLng(i),this.hasLayer(t)?this:this.addLayer(t)},closeTooltip:function(t){return t&&this.removeLayer(t),this}}),Ee.include({bindTooltip:function(t,i){return t instanceof rn?(p(t,i),(this._tooltip=t)._source=this):(this._tooltip&&!i||(this._tooltip=new rn(i,this)),this._tooltip.setContent(t)),this._initTooltipInteractions(),this._tooltip.options.permanent&&this._map&&this._map.hasLayer(this)&&this.openTooltip(),this},unbindTooltip:function(){return this._tooltip&&(this._initTooltipInteractions(!0),this.closeTooltip(),this._tooltip=null),this},_initTooltipInteractions:function(t){if(t||!this._tooltipHandlersAdded){var i=t?"off":"on",e={remove:this.closeTooltip,move:this._moveTooltip};this._tooltip.options.permanent?e.add=this._openTooltip:(e.mouseover=this._openTooltip,e.mouseout=this.closeTooltip,this._tooltip.options.sticky&&(e.mousemove=this._moveTooltip),Tt&&(e.click=this._openTooltip)),this[i](e),this._tooltipHandlersAdded=!t}},openTooltip:function(t,i){return this._tooltip&&this._map&&(i=this._tooltip._prepareOpen(this,t,i),this._map.openTooltip(this._tooltip,i),this._tooltip.options.interactive&&this._tooltip._container&&(mi(this._tooltip._container,"leaflet-clickable"),this.addInteractiveTarget(this._tooltip._container))),this},closeTooltip:function(){return this._tooltip&&(this._tooltip._close(),this._tooltip.options.interactive&&this._tooltip._container&&(fi(this._tooltip._container,"leaflet-clickable"),this.removeInteractiveTarget(this._tooltip._container))),this},toggleTooltip:function(t){return this._tooltip&&(this._tooltip._map?this.closeTooltip():this.openTooltip(t)),this},isTooltipOpen:function(){return this._tooltip.isOpen()},setTooltipContent:function(t){return this._tooltip&&this._tooltip.setContent(t),this},getTooltip:function(){return this._tooltip},_openTooltip:function(t){var i=t.layer||t.target;this._tooltip&&this._map&&this.openTooltip(i,this._tooltip.options.sticky?t.latlng:void 0)},_moveTooltip:function(t){var i,e,n=t.latlng;this._tooltip.options.sticky&&t.originalEvent&&(i=this._map.mouseEventToContainerPoint(t.originalEvent),e=this._map.containerPointToLayerPoint(i),n=this._map.layerPointToLatLng(e)),this._tooltip.setLatLng(n)}});var an=Be.extend({options:{iconSize:[12,12],html:!1,bgPos:null,className:"leaflet-div-icon"},createIcon:function(t){var i=t&&"DIV"===t.tagName?t:document.createElement("div"),e=this.options;if(e.html instanceof Element?(ci(i),i.appendChild(e.html)):i.innerHTML=!1!==e.html?e.html:"",e.bgPos){var n=I(e.bgPos);i.style.backgroundPosition=-n.x+"px "+-n.y+"px"}return this._setIconStyles(i,"icon"),i},createShadow:function(){return null}});Be.Default=Ae;var hn=Ee.extend({options:{tileSize:256,opacity:1,updateWhenIdle:xt,updateWhenZooming:!0,updateInterval:200,zIndex:1,bounds:null,minZoom:0,maxZoom:void 0,maxNativeZoom:void 0,minNativeZoom:void 0,noWrap:!1,pane:"tilePane",className:"",keepBuffer:2},initialize:function(t){p(this,t)},onAdd:function(){this._initContainer(),this._levels={},this._tiles={},this._resetView(),this._update()},beforeAdd:function(t){t._addZoomLimit(this)},onRemove:function(t){this._removeAllTiles(),li(this._container),t._removeZoomLimit(this),this._container=null,this._tileZoom=void 0},bringToFront:function(){return this._map&&(_i(this._container),this._setAutoZIndex(Math.max)),this},bringToBack:function(){return this._map&&(di(this._container),this._setAutoZIndex(Math.min)),this},getContainer:function(){return this._container},setOpacity:function(t){return this.options.opacity=t,this._updateOpacity(),this},setZIndex:function(t){return this.options.zIndex=t,this._updateZIndex(),this},isLoading:function(){return this._loading},redraw:function(){return this._map&&(this._removeAllTiles(),this._update()),this},getEvents:function(){var t={viewprereset:this._invalidateAll,viewreset:this._resetView,zoom:this._resetView,moveend:this._onMoveEnd};return this.options.updateWhenIdle||(this._onMove||(this._onMove=o(this._onMoveEnd,this.options.updateInterval,this)),t.move=this._onMove),this._zoomAnimated&&(t.zoomanim=this._animateZoom),t},createTile:function(){return document.createElement("div")},getTileSize:function(){var t=this.options.tileSize;return t instanceof B?t:new B(t,t)},_updateZIndex:function(){this._container&&void 0!==this.options.zIndex&&null!==this.options.zIndex&&(this._container.style.zIndex=this.options.zIndex)},_setAutoZIndex:function(t){for(var i,e=this.getPane().children,n=-t(-1/0,1/0),o=0,s=e.length;o<s;o++)i=e[o].style.zIndex,e[o]!==this._container&&i&&(n=t(n,+i));isFinite(n)&&(this.options.zIndex=n+t(-1,1),this._updateZIndex())},_updateOpacity:function(){if(this._map&&!et){yi(this._container,this.options.opacity);var t=+new Date,i=!1,e=!1;for(var n in this._tiles){var o=this._tiles[n];if(o.current&&o.loaded){var s=Math.min(1,(t-o.loaded)/200);yi(o.el,s),s<1?i=!0:(o.active?e=!0:this._onOpaqueTile(o),o.active=!0)}}e&&!this._noPrune&&this._pruneTiles(),i&&(C(this._fadeFrame),this._fadeFrame=M(this._updateOpacity,this))}},_onOpaqueTile:l,_initContainer:function(){this._container||(this._container=ui("div","leaflet-layer "+(this.options.className||"")),this._updateZIndex(),this.options.opacity<1&&this._updateOpacity(),this.getPane().appendChild(this._container))},_updateLevels:function(){var t=this._tileZoom,i=this.options.maxZoom;if(void 0!==t){for(var e in this._levels)this._levels[e].el.children.length||e===t?(this._levels[e].el.style.zIndex=i-Math.abs(t-e),this._onUpdateLevel(e)):(li(this._levels[e].el),this._removeTilesAtZoom(e),this._onRemoveLevel(e),delete this._levels[e]);var n=this._levels[t],o=this._map;return n||((n=this._levels[t]={}).el=ui("div","leaflet-tile-container leaflet-zoom-animated",this._container),n.el.style.zIndex=i,n.origin=o.project(o.unproject(o.getPixelOrigin()),t).round(),n.zoom=t,this._setZoomTransform(n,o.getCenter(),o.getZoom()),n.el.offsetWidth,this._onCreateLevel(n)),this._level=n}},_onUpdateLevel:l,_onRemoveLevel:l,_onCreateLevel:l,_pruneTiles:function(){if(this._map){var t,i,e=this._map.getZoom();if(e>this.options.maxZoom||e<this.options.minZoom)this._removeAllTiles();else{for(t in this._tiles)(i=this._tiles[t]).retain=i.current;for(t in this._tiles)if((i=this._tiles[t]).current&&!i.active){var n=i.coords;this._retainParent(n.x,n.y,n.z,n.z-5)||this._retainChildren(n.x,n.y,n.z,n.z+2)}for(t in this._tiles)this._tiles[t].retain||this._removeTile(t)}}},_removeTilesAtZoom:function(t){for(var i in this._tiles)this._tiles[i].coords.z===t&&this._removeTile(i)},_removeAllTiles:function(){for(var t in this._tiles)this._removeTile(t)},_invalidateAll:function(){for(var t in this._levels)li(this._levels[t].el),this._onRemoveLevel(t),delete this._levels[t];this._removeAllTiles(),this._tileZoom=void 0},_retainParent:function(t,i,e,n){var o=Math.floor(t/2),s=Math.floor(i/2),r=e-1,a=new B(+o,+s);a.z=+r;var h=this._tileCoordsToKey(a),u=this._tiles[h];return u&&u.active?u.retain=!0:(u&&u.loaded&&(u.retain=!0),n<r&&this._retainParent(o,s,r,n))},_retainChildren:function(t,i,e,n){for(var o=2*t;o<2*t+2;o++)for(var s=2*i;s<2*i+2;s++){var r=new B(o,s);r.z=e+1;var a=this._tileCoordsToKey(r),h=this._tiles[a];h&&h.active?h.retain=!0:(h&&h.loaded&&(h.retain=!0),e+1<n&&this._retainChildren(o,s,e+1,n))}},_resetView:function(t){var i=t&&(t.pinch||t.flyTo);this._setView(this._map.getCenter(),this._map.getZoom(),i,i)},_animateZoom:function(t){this._setView(t.center,t.zoom,!0,t.noUpdate)},_clampZoom:function(t){var i=this.options;return void 0!==i.minNativeZoom&&t<i.minNativeZoom?i.minNativeZoom:void 0!==i.maxNativeZoom&&i.maxNativeZoom<t?i.maxNativeZoom:t},_setView:function(t,i,e,n){var o=this._clampZoom(Math.round(i));(void 0!==this.options.maxZoom&&o>this.options.maxZoom||void 0!==this.options.minZoom&&o<this.options.minZoom)&&(o=void 0);var s=this.options.updateWhenZooming&&o!==this._tileZoom;n&&!s||(this._tileZoom=o,this._abortLoading&&this._abortLoading(),this._updateLevels(),this._resetGrid(),void 0!==o&&this._update(t),e||this._pruneTiles(),this._noPrune=!!e),this._setZoomTransforms(t,i)},_setZoomTransforms:function(t,i){for(var e in this._levels)this._setZoomTransform(this._levels[e],t,i)},_setZoomTransform:function(t,i,e){var n=this._map.getZoomScale(e,t.zoom),o=t.origin.multiplyBy(n).subtract(this._map._getNewPixelOrigin(i,e)).round();yt?wi(t.el,o,n):Pi(t.el,o)},_resetGrid:function(){var t=this._map,i=t.options.crs,e=this._tileSize=this.getTileSize(),n=this._tileZoom,o=this._map.getPixelWorldBounds(this._tileZoom);o&&(this._globalTileRange=this._pxBoundsToTileRange(o)),this._wrapX=i.wrapLng&&!this.options.noWrap&&[Math.floor(t.project([0,i.wrapLng[0]],n).x/e.x),Math.ceil(t.project([0,i.wrapLng[1]],n).x/e.y)],this._wrapY=i.wrapLat&&!this.options.noWrap&&[Math.floor(t.project([i.wrapLat[0],0],n).y/e.x),Math.ceil(t.project([i.wrapLat[1],0],n).y/e.y)]},_onMoveEnd:function(){this._map&&!this._map._animatingZoom&&this._update()},_getTiledPixelBounds:function(t){var i=this._map,e=i._animatingZoom?Math.max(i._animateToZoom,i.getZoom()):i.getZoom(),n=i.getZoomScale(e,this._tileZoom),o=i.project(t,this._tileZoom).floor(),s=i.getSize().divideBy(2*n);return new O(o.subtract(s),o.add(s))},_update:function(t){var i=this._map;if(i){var e=this._clampZoom(i.getZoom());if(void 0===t&&(t=i.getCenter()),void 0!==this._tileZoom){var n=this._getTiledPixelBounds(t),o=this._pxBoundsToTileRange(n),s=o.getCenter(),r=[],a=this.options.keepBuffer,h=new O(o.getBottomLeft().subtract([a,-a]),o.getTopRight().add([a,-a]));if(!(isFinite(o.min.x)&&isFinite(o.min.y)&&isFinite(o.max.x)&&isFinite(o.max.y)))throw new Error("Attempted to load an infinite number of tiles");for(var u in this._tiles){var l=this._tiles[u].coords;l.z===this._tileZoom&&h.contains(new B(l.x,l.y))||(this._tiles[u].current=!1)}if(1<Math.abs(e-this._tileZoom))this._setView(t,e);else{for(var c=o.min.y;c<=o.max.y;c++)for(var _=o.min.x;_<=o.max.x;_++){var d=new B(_,c);if(d.z=this._tileZoom,this._isValidTile(d)){var p=this._tiles[this._tileCoordsToKey(d)];p?p.current=!0:r.push(d)}}if(r.sort(function(t,i){return t.distanceTo(s)-i.distanceTo(s)}),0!==r.length){this._loading||(this._loading=!0,this.fire("loading"));var m=document.createDocumentFragment();for(_=0;_<r.length;_++)this._addTile(r[_],m);this._level.el.appendChild(m)}}}}},_isValidTile:function(t){var i=this._map.options.crs;if(!i.infinite){var e=this._globalTileRange;if(!i.wrapLng&&(t.x<e.min.x||t.x>e.max.x)||!i.wrapLat&&(t.y<e.min.y||t.y>e.max.y))return!1}if(!this.options.bounds)return!0;var n=this._tileCoordsToBounds(t);return D(this.options.bounds).overlaps(n)},_keyToBounds:function(t){return this._tileCoordsToBounds(this._keyToTileCoords(t))},_tileCoordsToNwSe:function(t){var i=this._map,e=this.getTileSize(),n=t.scaleBy(e),o=n.add(e);return[i.unproject(n,t.z),i.unproject(o,t.z)]},_tileCoordsToBounds:function(t){var i=this._tileCoordsToNwSe(t),e=new N(i[0],i[1]);return this.options.noWrap||(e=this._map.wrapLatLngBounds(e)),e},_tileCoordsToKey:function(t){return t.x+":"+t.y+":"+t.z},_keyToTileCoords:function(t){var i=t.split(":"),e=new B(+i[0],+i[1]);return e.z=+i[2],e},_removeTile:function(t){var i=this._tiles[t];i&&(li(i.el),delete this._tiles[t],this.fire("tileunload",{tile:i.el,coords:this._keyToTileCoords(t)}))},_initTile:function(t){mi(t,"leaflet-tile");var i=this.getTileSize();t.style.width=i.x+"px",t.style.height=i.y+"px",t.onselectstart=l,t.onmousemove=l,et&&this.options.opacity<1&&yi(t,this.options.opacity),st&&!rt&&(t.style.WebkitBackfaceVisibility="hidden")},_addTile:function(t,i){var e=this._getTilePos(t),n=this._tileCoordsToKey(t),o=this.createTile(this._wrapCoords(t),a(this._tileReady,this,t));this._initTile(o),this.createTile.length<2&&M(a(this._tileReady,this,t,null,o)),Pi(o,e),this._tiles[n]={el:o,coords:t,current:!0},i.appendChild(o),this.fire("tileloadstart",{tile:o,coords:t})},_tileReady:function(t,i,e){i&&this.fire("tileerror",{error:i,tile:e,coords:t});var n=this._tileCoordsToKey(t);(e=this._tiles[n])&&(e.loaded=+new Date,this._map._fadeAnimated?(yi(e.el,0),C(this._fadeFrame),this._fadeFrame=M(this._updateOpacity,this)):(e.active=!0,this._pruneTiles()),i||(mi(e.el,"leaflet-tile-loaded"),this.fire("tileload",{tile:e.el,coords:t})),this._noTilesToLoad()&&(this._loading=!1,this.fire("load"),et||!this._map._fadeAnimated?M(this._pruneTiles,this):setTimeout(a(this._pruneTiles,this),250)))},_getTilePos:function(t){return t.scaleBy(this.getTileSize()).subtract(this._level.origin)},_wrapCoords:function(t){var i=new B(this._wrapX?r(t.x,this._wrapX):t.x,this._wrapY?r(t.y,this._wrapY):t.y);return i.z=t.z,i},_pxBoundsToTileRange:function(t){var i=this.getTileSize();return new O(t.min.unscaleBy(i).floor(),t.max.unscaleBy(i).ceil().subtract([1,1]))},_noTilesToLoad:function(){for(var t in this._tiles)if(!this._tiles[t].loaded)return!1;return!0}});var un=hn.extend({options:{minZoom:0,maxZoom:18,subdomains:"abc",errorTileUrl:"",zoomOffset:0,tms:!1,zoomReverse:!1,detectRetina:!1,crossOrigin:!1},initialize:function(t,i){this._url=t,(i=p(this,i)).detectRetina&&Ct&&0<i.maxZoom&&(i.tileSize=Math.floor(i.tileSize/2),i.zoomReverse?(i.zoomOffset--,i.minZoom++):(i.zoomOffset++,i.maxZoom--),i.minZoom=Math.max(0,i.minZoom)),"string"==typeof i.subdomains&&(i.subdomains=i.subdomains.split("")),st||this.on("tileunload",this._onTileRemove)},setUrl:function(t,i){return this._url===t&&void 0===i&&(i=!0),this._url=t,i||this.redraw(),this},createTile:function(t,i){var e=document.createElement("img");return ki(e,"load",a(this._tileOnLoad,this,i,e)),ki(e,"error",a(this._tileOnError,this,i,e)),!this.options.crossOrigin&&""!==this.options.crossOrigin||(e.crossOrigin=!0===this.options.crossOrigin?"":this.options.crossOrigin),e.alt="",e.setAttribute("role","presentation"),e.src=this.getTileUrl(t),e},getTileUrl:function(t){var i={r:Ct?"@2x":"",s:this._getSubdomain(t),x:t.x,y:t.y,z:this._getZoomForUrl()};if(this._map&&!this._map.options.crs.infinite){var e=this._globalTileRange.max.y-t.y;this.options.tms&&(i.y=e),i["-y"]=e}return g(this._url,h(i,this.options))},_tileOnLoad:function(t,i){et?setTimeout(a(t,this,null,i),0):t(null,i)},_tileOnError:function(t,i,e){var n=this.options.errorTileUrl;n&&i.getAttribute("src")!==n&&(i.src=n),t(e,i)},_onTileRemove:function(t){t.tile.onload=null},_getZoomForUrl:function(){var t=this._tileZoom,i=this.options.maxZoom;return this.options.zoomReverse&&(t=i-t),t+this.options.zoomOffset},_getSubdomain:function(t){var i=Math.abs(t.x+t.y)%this.options.subdomains.length;return this.options.subdomains[i]},_abortLoading:function(){var t,i;for(t in this._tiles)this._tiles[t].coords.z!==this._tileZoom&&((i=this._tiles[t].el).onload=l,i.onerror=l,i.complete||(i.src=x,li(i),delete this._tiles[t]))},_removeTile:function(t){var i=this._tiles[t];if(i)return ht||i.el.setAttribute("src",x),hn.prototype._removeTile.call(this,t)},_tileReady:function(t,i,e){if(this._map&&(!e||e.getAttribute("src")!==x))return hn.prototype._tileReady.call(this,t,i,e)}});function ln(t,i){return new un(t,i)}var cn=un.extend({defaultWmsParams:{service:"WMS",request:"GetMap",layers:"",styles:"",format:"image/jpeg",transparent:!1,version:"1.1.1"},options:{crs:null,uppercase:!1},initialize:function(t,i){this._url=t;var e=h({},this.defaultWmsParams);for(var n in i)n in this.options||(e[n]=i[n]);var o=(i=p(this,i)).detectRetina&&Ct?2:1,s=this.getTileSize();e.width=s.x*o,e.height=s.y*o,this.wmsParams=e},onAdd:function(t){this._crs=this.options.crs||t.options.crs,this._wmsVersion=parseFloat(this.wmsParams.version);var i=1.3<=this._wmsVersion?"crs":"srs";this.wmsParams[i]=this._crs.code,un.prototype.onAdd.call(this,t)},getTileUrl:function(t){var i=this._tileCoordsToNwSe(t),e=this._crs,n=R(e.project(i[0]),e.project(i[1])),o=n.min,s=n.max,r=(1.3<=this._wmsVersion&&this._crs===Ce?[o.y,o.x,s.y,s.x]:[o.x,o.y,s.x,s.y]).join(","),a=un.prototype.getTileUrl.call(this,t);return a+m(this.wmsParams,a,this.options.uppercase)+(this.options.uppercase?"&BBOX=":"&bbox=")+r},setParams:function(t,i){return h(this.wmsParams,t),i||this.redraw(),this}});un.WMS=cn,ln.wms=function(t,i){return new cn(t,i)};var _n=Ee.extend({options:{padding:.1,tolerance:0},initialize:function(t){p(this,t),u(this),this._layers=this._layers||{}},onAdd:function(){this._container||(this._initContainer(),this._zoomAnimated&&mi(this._container,"leaflet-zoom-animated")),this.getPane().appendChild(this._container),this._update(),this.on("update",this._updatePaths,this)},onRemove:function(){this.off("update",this._updatePaths,this),this._destroyContainer()},getEvents:function(){var t={viewreset:this._reset,zoom:this._onZoom,moveend:this._update,zoomend:this._onZoomEnd};return this._zoomAnimated&&(t.zoomanim=this._onAnimZoom),t},_onAnimZoom:function(t){this._updateTransform(t.center,t.zoom)},_onZoom:function(){this._updateTransform(this._map.getCenter(),this._map.getZoom())},_updateTransform:function(t,i){var e=this._map.getZoomScale(i,this._zoom),n=Li(this._container),o=this._map.getSize().multiplyBy(.5+this.options.padding),s=this._map.project(this._center,i),r=this._map.project(t,i).subtract(s),a=o.multiplyBy(-e).add(n).add(o).subtract(r);yt?wi(this._container,a,e):Pi(this._container,a)},_reset:function(){for(var t in this._update(),this._updateTransform(this._center,this._zoom),this._layers)this._layers[t]._reset()},_onZoomEnd:function(){for(var t in this._layers)this._layers[t]._project()},_updatePaths:function(){for(var t in this._layers)this._layers[t]._update()},_update:function(){var t=this.options.padding,i=this._map.getSize(),e=this._map.containerPointToLayerPoint(i.multiplyBy(-t)).round();this._bounds=new O(e,e.add(i.multiplyBy(1+2*t)).round()),this._center=this._map.getCenter(),this._zoom=this._map.getZoom()}}),dn=_n.extend({getEvents:function(){var t=_n.prototype.getEvents.call(this);return t.viewprereset=this._onViewPreReset,t},_onViewPreReset:function(){this._postponeUpdatePaths=!0},onAdd:function(){_n.prototype.onAdd.call(this),this._draw()},_initContainer:function(){var t=this._container=document.createElement("canvas");ki(t,"mousemove",this._onMouseMove,this),ki(t,"click dblclick mousedown mouseup contextmenu",this._onClick,this),ki(t,"mouseout",this._handleMouseOut,this),this._ctx=t.getContext("2d")},_destroyContainer:function(){C(this._redrawRequest),delete this._ctx,li(this._container),Ai(this._container),delete this._container},_updatePaths:function(){if(!this._postponeUpdatePaths){for(var t in this._redrawBounds=null,this._layers)this._layers[t]._update();this._redraw()}},_update:function(){if(!this._map._animatingZoom||!this._bounds){_n.prototype._update.call(this);var t=this._bounds,i=this._container,e=t.getSize(),n=Ct?2:1;Pi(i,t.min),i.width=n*e.x,i.height=n*e.y,i.style.width=e.x+"px",i.style.height=e.y+"px",Ct&&this._ctx.scale(2,2),this._ctx.translate(-t.min.x,-t.min.y),this.fire("update")}},_reset:function(){_n.prototype._reset.call(this),this._postponeUpdatePaths&&(this._postponeUpdatePaths=!1,this._updatePaths())},_initPath:function(t){this._updateDashArray(t);var i=(this._layers[u(t)]=t)._order={layer:t,prev:this._drawLast,next:null};this._drawLast&&(this._drawLast.next=i),this._drawLast=i,this._drawFirst=this._drawFirst||this._drawLast},_addPath:function(t){this._requestRedraw(t)},_removePath:function(t){var i=t._order,e=i.next,n=i.prev;e?e.prev=n:this._drawLast=n,n?n.next=e:this._drawFirst=e,delete t._order,delete this._layers[u(t)],this._requestRedraw(t)},_updatePath:function(t){this._extendRedrawBounds(t),t._project(),t._update(),this._requestRedraw(t)},_updateStyle:function(t){this._updateDashArray(t),this._requestRedraw(t)},_updateDashArray:function(t){if("string"==typeof t.options.dashArray){var i,e,n=t.options.dashArray.split(/[, ]+/),o=[];for(e=0;e<n.length;e++){if(i=Number(n[e]),isNaN(i))return;o.push(i)}t.options._dashArray=o}else t.options._dashArray=t.options.dashArray},_requestRedraw:function(t){this._map&&(this._extendRedrawBounds(t),this._redrawRequest=this._redrawRequest||M(this._redraw,this))},_extendRedrawBounds:function(t){if(t._pxBounds){var i=(t.options.weight||0)+1;this._redrawBounds=this._redrawBounds||new O,this._redrawBounds.extend(t._pxBounds.min.subtract([i,i])),this._redrawBounds.extend(t._pxBounds.max.add([i,i]))}},_redraw:function(){this._redrawRequest=null,this._redrawBounds&&(this._redrawBounds.min._floor(),this._redrawBounds.max._ceil()),this._clear(),this._draw(),this._redrawBounds=null},_clear:function(){var t=this._redrawBounds;if(t){var i=t.getSize();this._ctx.clearRect(t.min.x,t.min.y,i.x,i.y)}else this._ctx.clearRect(0,0,this._container.width,this._container.height)},_draw:function(){var t,i=this._redrawBounds;if(this._ctx.save(),i){var e=i.getSize();this._ctx.beginPath(),this._ctx.rect(i.min.x,i.min.y,e.x,e.y),this._ctx.clip()}this._drawing=!0;for(var n=this._drawFirst;n;n=n.next)t=n.layer,(!i||t._pxBounds&&t._pxBounds.intersects(i))&&t._updatePath();this._drawing=!1,this._ctx.restore()},_updatePoly:function(t,i){if(this._drawing){var e,n,o,s,r=t._parts,a=r.length,h=this._ctx;if(a){for(h.beginPath(),e=0;e<a;e++){for(n=0,o=r[e].length;n<o;n++)s=r[e][n],h[n?"lineTo":"moveTo"](s.x,s.y);i&&h.closePath()}this._fillStroke(h,t)}}},_updateCircle:function(t){if(this._drawing&&!t._empty()){var i=t._point,e=this._ctx,n=Math.max(Math.round(t._radius),1),o=(Math.max(Math.round(t._radiusY),1)||n)/n;1!=o&&(e.save(),e.scale(1,o)),e.beginPath(),e.arc(i.x,i.y/o,n,0,2*Math.PI,!1),1!=o&&e.restore(),this._fillStroke(e,t)}},_fillStroke:function(t,i){var e=i.options;e.fill&&(t.globalAlpha=e.fillOpacity,t.fillStyle=e.fillColor||e.color,t.fill(e.fillRule||"evenodd")),e.stroke&&0!==e.weight&&(t.setLineDash&&t.setLineDash(i.options&&i.options._dashArray||[]),t.globalAlpha=e.opacity,t.lineWidth=e.weight,t.strokeStyle=e.color,t.lineCap=e.lineCap,t.lineJoin=e.lineJoin,t.stroke())},_onClick:function(t){for(var i,e,n=this._map.mouseEventToLayerPoint(t),o=this._drawFirst;o;o=o.next)(i=o.layer).options.interactive&&i._containsPoint(n)&&!this._map._draggableMoved(i)&&(e=i);e&&(Gi(t),this._fireEvent([e],t))},_onMouseMove:function(t){if(this._map&&!this._map.dragging.moving()&&!this._map._animatingZoom){var i=this._map.mouseEventToLayerPoint(t);this._handleMouseHover(t,i)}},_handleMouseOut:function(t){var i=this._hoveredLayer;i&&(fi(this._container,"leaflet-interactive"),this._fireEvent([i],t,"mouseout"),this._hoveredLayer=null,this._mouseHoverThrottled=!1)},_handleMouseHover:function(t,i){if(!this._mouseHoverThrottled){for(var e,n,o=this._drawFirst;o;o=o.next)(e=o.layer).options.interactive&&e._containsPoint(i)&&(n=e);n!==this._hoveredLayer&&(this._handleMouseOut(t),n&&(mi(this._container,"leaflet-interactive"),this._fireEvent([n],t,"mouseover"),this._hoveredLayer=n)),this._hoveredLayer&&this._fireEvent([this._hoveredLayer],t),this._mouseHoverThrottled=!0,setTimeout(L.bind(function(){this._mouseHoverThrottled=!1},this),32)}},_fireEvent:function(t,i,e){this._map._fireDOMEvent(i,e||i.type,t)},_bringToFront:function(t){var i=t._order;if(i){var e=i.next,n=i.prev;e&&((e.prev=n)?n.next=e:e&&(this._drawFirst=e),i.prev=this._drawLast,(this._drawLast.next=i).next=null,this._drawLast=i,this._requestRedraw(t))}},_bringToBack:function(t){var i=t._order;if(i){var e=i.next,n=i.prev;n&&((n.next=e)?e.prev=n:n&&(this._drawLast=n),i.prev=null,i.next=this._drawFirst,this._drawFirst.prev=i,this._drawFirst=i,this._requestRedraw(t))}}});function pn(t){return Et?new dn(t):null}var mn=function(){try{return document.namespaces.add("lvml","urn:schemas-microsoft-com:vml"),function(t){return document.createElement("<lvml:"+t+' class="lvml">')}}catch(t){return function(t){return document.createElement("<"+t+' xmlns="urn:schemas-microsoft.com:vml" class="lvml">')}}}(),fn={_initContainer:function(){this._container=ui("div","leaflet-vml-container")},_update:function(){this._map._animatingZoom||(_n.prototype._update.call(this),this.fire("update"))},_initPath:function(t){var i=t._container=mn("shape");mi(i,"leaflet-vml-shape "+(this.options.className||"")),i.coordsize="1 1",t._path=mn("path"),i.appendChild(t._path),this._updateStyle(t),this._layers[u(t)]=t},_addPath:function(t){var i=t._container;this._container.appendChild(i),t.options.interactive&&t.addInteractiveTarget(i)},_removePath:function(t){var i=t._container;li(i),t.removeInteractiveTarget(i),delete this._layers[u(t)]},_updateStyle:function(t){var i=t._stroke,e=t._fill,n=t.options,o=t._container;o.stroked=!!n.stroke,o.filled=!!n.fill,n.stroke?(i||(i=t._stroke=mn("stroke")),o.appendChild(i),i.weight=n.weight+"px",i.color=n.color,i.opacity=n.opacity,n.dashArray?i.dashStyle=v(n.dashArray)?n.dashArray.join(" "):n.dashArray.replace(/( *, *)/g," "):i.dashStyle="",i.endcap=n.lineCap.replace("butt","flat"),i.joinstyle=n.lineJoin):i&&(o.removeChild(i),t._stroke=null),n.fill?(e||(e=t._fill=mn("fill")),o.appendChild(e),e.color=n.fillColor||n.color,e.opacity=n.fillOpacity):e&&(o.removeChild(e),t._fill=null)},_updateCircle:function(t){var i=t._point.round(),e=Math.round(t._radius),n=Math.round(t._radiusY||e);this._setPath(t,t._empty()?"M0 0":"AL "+i.x+","+i.y+" "+e+","+n+" 0,23592600")},_setPath:function(t,i){t._path.v=i},_bringToFront:function(t){_i(t._container)},_bringToBack:function(t){di(t._container)}},gn=kt?mn:$,vn=_n.extend({getEvents:function(){var t=_n.prototype.getEvents.call(this);return t.zoomstart=this._onZoomStart,t},_initContainer:function(){this._container=gn("svg"),this._container.setAttribute("pointer-events","none"),this._rootGroup=gn("g"),this._container.appendChild(this._rootGroup)},_destroyContainer:function(){li(this._container),Ai(this._container),delete this._container,delete this._rootGroup,delete this._svgSize},_onZoomStart:function(){this._update()},_update:function(){if(!this._map._animatingZoom||!this._bounds){_n.prototype._update.call(this);var t=this._bounds,i=t.getSize(),e=this._container;this._svgSize&&this._svgSize.equals(i)||(this._svgSize=i,e.setAttribute("width",i.x),e.setAttribute("height",i.y)),Pi(e,t.min),e.setAttribute("viewBox",[t.min.x,t.min.y,i.x,i.y].join(" ")),this.fire("update")}},_initPath:function(t){var i=t._path=gn("path");t.options.className&&mi(i,t.options.className),t.options.interactive&&mi(i,"leaflet-interactive"),this._updateStyle(t),this._layers[u(t)]=t},_addPath:function(t){this._rootGroup||this._initContainer(),this._rootGroup.appendChild(t._path),t.addInteractiveTarget(t._path)},_removePath:function(t){li(t._path),t.removeInteractiveTarget(t._path),delete this._layers[u(t)]},_updatePath:function(t){t._project(),t._update()},_updateStyle:function(t){var i=t._path,e=t.options;i&&(e.stroke?(i.setAttribute("stroke",e.color),i.setAttribute("stroke-opacity",e.opacity),i.setAttribute("stroke-width",e.weight),i.setAttribute("stroke-linecap",e.lineCap),i.setAttribute("stroke-linejoin",e.lineJoin),e.dashArray?i.setAttribute("stroke-dasharray",e.dashArray):i.removeAttribute("stroke-dasharray"),e.dashOffset?i.setAttribute("stroke-dashoffset",e.dashOffset):i.removeAttribute("stroke-dashoffset")):i.setAttribute("stroke","none"),e.fill?(i.setAttribute("fill",e.fillColor||e.color),i.setAttribute("fill-opacity",e.fillOpacity),i.setAttribute("fill-rule",e.fillRule||"evenodd")):i.setAttribute("fill","none"))},_updatePoly:function(t,i){this._setPath(t,Q(t._parts,i))},_updateCircle:function(t){var i=t._point,e=Math.max(Math.round(t._radius),1),n="a"+e+","+(Math.max(Math.round(t._radiusY),1)||e)+" 0 1,0 ",o=t._empty()?"M0 0":"M"+(i.x-e)+","+i.y+n+2*e+",0 "+n+2*-e+",0 ";this._setPath(t,o)},_setPath:function(t,i){t._path.setAttribute("d",i)},_bringToFront:function(t){_i(t._path)},_bringToBack:function(t){di(t._path)}});function yn(t){return Zt||kt?new vn(t):null}kt&&vn.include(fn),$i.include({getRenderer:function(t){var i=t.options.renderer||this._getPaneRenderer(t.options.pane)||this.options.renderer||this._renderer;return i||(i=this._renderer=this._createRenderer()),this.hasLayer(i)||this.addLayer(i),i},_getPaneRenderer:function(t){if("overlayPane"===t||void 0===t)return!1;var i=this._paneRenderers[t];return void 0===i&&(i=this._createRenderer({pane:t}),this._paneRenderers[t]=i),i},_createRenderer:function(t){return this.options.preferCanvas&&pn(t)||yn(t)}});var xn=We.extend({initialize:function(t,i){We.prototype.initialize.call(this,this._boundsToLatLngs(t),i)},setBounds:function(t){return this.setLatLngs(this._boundsToLatLngs(t))},_boundsToLatLngs:function(t){return[(t=D(t)).getSouthWest(),t.getNorthWest(),t.getNorthEast(),t.getSouthEast()]}});vn.create=gn,vn.pointsToPath=Q,He.geometryToLayer=Fe,He.coordsToLatLng=Ve,He.coordsToLatLngs=qe,He.latLngToCoords=Ge,He.latLngsToCoords=Ke,He.getFeature=Ye,He.asFeature=Xe,$i.mergeOptions({boxZoom:!0});var wn=se.extend({initialize:function(t){this._map=t,this._container=t._container,this._pane=t._panes.overlayPane,this._resetStateTimeout=0,t.on("unload",this._destroy,this)},addHooks:function(){ki(this._container,"mousedown",this._onMouseDown,this)},removeHooks:function(){Ai(this._container,"mousedown",this._onMouseDown,this)},moved:function(){return this._moved},_destroy:function(){li(this._pane),delete this._pane},_resetState:function(){this._resetStateTimeout=0,this._moved=!1},_clearDeferredResetState:function(){0!==this._resetStateTimeout&&(clearTimeout(this._resetStateTimeout),this._resetStateTimeout=0)},_onMouseDown:function(t){if(!t.shiftKey||1!==t.which&&1!==t.button)return!1;this._clearDeferredResetState(),this._resetState(),Qt(),Ti(),this._startPoint=this._map.mouseEventToContainerPoint(t),ki(document,{contextmenu:Wi,mousemove:this._onMouseMove,mouseup:this._onMouseUp,keydown:this._onKeyDown},this)},_onMouseMove:function(t){this._moved||(this._moved=!0,this._box=ui("div","leaflet-zoom-box",this._container),mi(this._container,"leaflet-crosshair"),this._map.fire("boxzoomstart")),this._point=this._map.mouseEventToContainerPoint(t);var i=new O(this._point,this._startPoint),e=i.getSize();Pi(this._box,i.min),this._box.style.width=e.x+"px",this._box.style.height=e.y+"px"},_finish:function(){this._moved&&(li(this._box),fi(this._container,"leaflet-crosshair")),ti(),zi(),Ai(document,{contextmenu:Wi,mousemove:this._onMouseMove,mouseup:this._onMouseUp,keydown:this._onKeyDown},this)},_onMouseUp:function(t){if((1===t.which||1===t.button)&&(this._finish(),this._moved)){this._clearDeferredResetState(),this._resetStateTimeout=setTimeout(a(this._resetState,this),0);var i=new N(this._map.containerPointToLatLng(this._startPoint),this._map.containerPointToLatLng(this._point));this._map.fitBounds(i).fire("boxzoomend",{boxZoomBounds:i})}},_onKeyDown:function(t){27===t.keyCode&&this._finish()}});$i.addInitHook("addHandler","boxZoom",wn),$i.mergeOptions({doubleClickZoom:!0});var Pn=se.extend({addHooks:function(){this._map.on("dblclick",this._onDoubleClick,this)},removeHooks:function(){this._map.off("dblclick",this._onDoubleClick,this)},_onDoubleClick:function(t){var i=this._map,e=i.getZoom(),n=i.options.zoomDelta,o=t.originalEvent.shiftKey?e-n:e+n;"center"===i.options.doubleClickZoom?i.setZoom(o):i.setZoomAround(t.containerPoint,o)}});$i.addInitHook("addHandler","doubleClickZoom",Pn),$i.mergeOptions({dragging:!0,inertia:!rt,inertiaDeceleration:3400,inertiaMaxSpeed:1/0,easeLinearity:.2,worldCopyJump:!1,maxBoundsViscosity:0});var Ln=se.extend({addHooks:function(){if(!this._draggable){var t=this._map;this._draggable=new ce(t._mapPane,t._container),this._draggable.on({dragstart:this._onDragStart,drag:this._onDrag,dragend:this._onDragEnd},this),this._draggable.on("predrag",this._onPreDragLimit,this),t.options.worldCopyJump&&(this._draggable.on("predrag",this._onPreDragWrap,this),t.on("zoomend",this._onZoomEnd,this),t.whenReady(this._onZoomEnd,this))}mi(this._map._container,"leaflet-grab leaflet-touch-drag"),this._draggable.enable(),this._positions=[],this._times=[]},removeHooks:function(){fi(this._map._container,"leaflet-grab"),fi(this._map._container,"leaflet-touch-drag"),this._draggable.disable()},moved:function(){return this._draggable&&this._draggable._moved},moving:function(){return this._draggable&&this._draggable._moving},_onDragStart:function(){var t=this._map;if(t._stop(),this._map.options.maxBounds&&this._map.options.maxBoundsViscosity){var i=D(this._map.options.maxBounds);this._offsetLimit=R(this._map.latLngToContainerPoint(i.getNorthWest()).multiplyBy(-1),this._map.latLngToContainerPoint(i.getSouthEast()).multiplyBy(-1).add(this._map.getSize())),this._viscosity=Math.min(1,Math.max(0,this._map.options.maxBoundsViscosity))}else this._offsetLimit=null;t.fire("movestart").fire("dragstart"),t.options.inertia&&(this._positions=[],this._times=[])},_onDrag:function(t){if(this._map.options.inertia){var i=this._lastTime=+new Date,e=this._lastPos=this._draggable._absPos||this._draggable._newPos;this._positions.push(e),this._times.push(i),this._prunePositions(i)}this._map.fire("move",t).fire("drag",t)},_prunePositions:function(t){for(;1<this._positions.length&&50<t-this._times[0];)this._positions.shift(),this._times.shift()},_onZoomEnd:function(){var t=this._map.getSize().divideBy(2),i=this._map.latLngToLayerPoint([0,0]);this._initialWorldOffset=i.subtract(t).x,this._worldWidth=this._map.getPixelWorldBounds().getSize().x},_viscousLimit:function(t,i){return t-(t-i)*this._viscosity},_onPreDragLimit:function(){if(this._viscosity&&this._offsetLimit){var t=this._draggable._newPos.subtract(this._draggable._startPos),i=this._offsetLimit;t.x<i.min.x&&(t.x=this._viscousLimit(t.x,i.min.x)),t.y<i.min.y&&(t.y=this._viscousLimit(t.y,i.min.y)),t.x>i.max.x&&(t.x=this._viscousLimit(t.x,i.max.x)),t.y>i.max.y&&(t.y=this._viscousLimit(t.y,i.max.y)),this._draggable._newPos=this._draggable._startPos.add(t)}},_onPreDragWrap:function(){var t=this._worldWidth,i=Math.round(t/2),e=this._initialWorldOffset,n=this._draggable._newPos.x,o=(n-i+e)%t+i-e,s=(n+i+e)%t-i-e,r=Math.abs(o+e)<Math.abs(s+e)?o:s;this._draggable._absPos=this._draggable._newPos.clone(),this._draggable._newPos.x=r},_onDragEnd:function(t){var i=this._map,e=i.options,n=!e.inertia||this._times.length<2;if(i.fire("dragend",t),n)i.fire("moveend");else{this._prunePositions(+new Date);var o=this._lastPos.subtract(this._positions[0]),s=(this._lastTime-this._times[0])/1e3,r=e.easeLinearity,a=o.multiplyBy(r/s),h=a.distanceTo([0,0]),u=Math.min(e.inertiaMaxSpeed,h),l=a.multiplyBy(u/h),c=u/(e.inertiaDeceleration*r),_=l.multiplyBy(-c/2).round();_.x||_.y?(_=i._limitOffset(_,i.options.maxBounds),M(function(){i.panBy(_,{duration:c,easeLinearity:r,noMoveStart:!0,animate:!0})})):i.fire("moveend")}}});$i.addInitHook("addHandler","dragging",Ln),$i.mergeOptions({keyboard:!0,keyboardPanDelta:80});var bn=se.extend({keyCodes:{left:[37],right:[39],down:[40],up:[38],zoomIn:[187,107,61,171],zoomOut:[189,109,54,173]},initialize:function(t){this._map=t,this._setPanDelta(t.options.keyboardPanDelta),this._setZoomDelta(t.options.zoomDelta)},addHooks:function(){var t=this._map._container;t.tabIndex<=0&&(t.tabIndex="0"),ki(t,{focus:this._onFocus,blur:this._onBlur,mousedown:this._onMouseDown},this),this._map.on({focus:this._addHooks,blur:this._removeHooks},this)},removeHooks:function(){this._removeHooks(),Ai(this._map._container,{focus:this._onFocus,blur:this._onBlur,mousedown:this._onMouseDown},this),this._map.off({focus:this._addHooks,blur:this._removeHooks},this)},_onMouseDown:function(){if(!this._focused){var t=document.body,i=document.documentElement,e=t.scrollTop||i.scrollTop,n=t.scrollLeft||i.scrollLeft;this._map._container.focus(),window.scrollTo(n,e)}},_onFocus:function(){this._focused=!0,this._map.fire("focus")},_onBlur:function(){this._focused=!1,this._map.fire("blur")},_setPanDelta:function(t){var i,e,n=this._panKeys={},o=this.keyCodes;for(i=0,e=o.left.length;i<e;i++)n[o.left[i]]=[-1*t,0];for(i=0,e=o.right.length;i<e;i++)n[o.right[i]]=[t,0];for(i=0,e=o.down.length;i<e;i++)n[o.down[i]]=[0,t];for(i=0,e=o.up.length;i<e;i++)n[o.up[i]]=[0,-1*t]},_setZoomDelta:function(t){var i,e,n=this._zoomKeys={},o=this.keyCodes;for(i=0,e=o.zoomIn.length;i<e;i++)n[o.zoomIn[i]]=t;for(i=0,e=o.zoomOut.length;i<e;i++)n[o.zoomOut[i]]=-t},_addHooks:function(){ki(document,"keydown",this._onKeyDown,this)},_removeHooks:function(){Ai(document,"keydown",this._onKeyDown,this)},_onKeyDown:function(t){if(!(t.altKey||t.ctrlKey||t.metaKey)){var i,e=t.keyCode,n=this._map;if(e in this._panKeys)n._panAnim&&n._panAnim._inProgress||(i=this._panKeys[e],t.shiftKey&&(i=I(i).multiplyBy(3)),n.panBy(i),n.options.maxBounds&&n.panInsideBounds(n.options.maxBounds));else if(e in this._zoomKeys)n.setZoom(n.getZoom()+(t.shiftKey?3:1)*this._zoomKeys[e]);else{if(27!==e||!n._popup||!n._popup.options.closeOnEscapeKey)return;n.closePopup()}Wi(t)}}});$i.addInitHook("addHandler","keyboard",bn),$i.mergeOptions({scrollWheelZoom:!0,wheelDebounceTime:40,wheelPxPerZoomLevel:60});var Tn=se.extend({addHooks:function(){ki(this._map._container,"mousewheel",this._onWheelScroll,this),this._delta=0},removeHooks:function(){Ai(this._map._container,"mousewheel",this._onWheelScroll,this)},_onWheelScroll:function(t){var i=Ui(t),e=this._map.options.wheelDebounceTime;this._delta+=i,this._lastMousePos=this._map.mouseEventToContainerPoint(t),this._startTime||(this._startTime=+new Date);var n=Math.max(e-(+new Date-this._startTime),0);clearTimeout(this._timer),this._timer=setTimeout(a(this._performZoom,this),n),Wi(t)},_performZoom:function(){var t=this._map,i=t.getZoom(),e=this._map.options.zoomSnap||0;t._stop();var n=this._delta/(4*this._map.options.wheelPxPerZoomLevel),o=4*Math.log(2/(1+Math.exp(-Math.abs(n))))/Math.LN2,s=e?Math.ceil(o/e)*e:o,r=t._limitZoom(i+(0<this._delta?s:-s))-i;this._delta=0,this._startTime=null,r&&("center"===t.options.scrollWheelZoom?t.setZoom(i+r):t.setZoomAround(this._lastMousePos,i+r))}});$i.addInitHook("addHandler","scrollWheelZoom",Tn),$i.mergeOptions({tap:!0,tapTolerance:15});var zn=se.extend({addHooks:function(){ki(this._map._container,"touchstart",this._onDown,this)},removeHooks:function(){Ai(this._map._container,"touchstart",this._onDown,this)},_onDown:function(t){if(t.touches){if(ji(t),this._fireClick=!0,1<t.touches.length)return this._fireClick=!1,void clearTimeout(this._holdTimeout);var i=t.touches[0],e=i.target;this._startPos=this._newPos=new B(i.clientX,i.clientY),e.tagName&&"a"===e.tagName.toLowerCase()&&mi(e,"leaflet-active"),this._holdTimeout=setTimeout(a(function(){this._isTapValid()&&(this._fireClick=!1,this._onUp(),this._simulateEvent("contextmenu",i))},this),1e3),this._simulateEvent("mousedown",i),ki(document,{touchmove:this._onMove,touchend:this._onUp},this)}},_onUp:function(t){if(clearTimeout(this._holdTimeout),Ai(document,{touchmove:this._onMove,touchend:this._onUp},this),this._fireClick&&t&&t.changedTouches){var i=t.changedTouches[0],e=i.target;e&&e.tagName&&"a"===e.tagName.toLowerCase()&&fi(e,"leaflet-active"),this._simulateEvent("mouseup",i),this._isTapValid()&&this._simulateEvent("click",i)}},_isTapValid:function(){return this._newPos.distanceTo(this._startPos)<=this._map.options.tapTolerance},_onMove:function(t){var i=t.touches[0];this._newPos=new B(i.clientX,i.clientY),this._simulateEvent("mousemove",i)},_simulateEvent:function(t,i){var e=document.createEvent("MouseEvents");e._simulated=!0,i.target._simulatedClick=!0,e.initMouseEvent(t,!0,!0,window,1,i.screenX,i.screenY,i.clientX,i.clientY,!1,!1,!1,!1,0,null),i.target.dispatchEvent(e)}});Tt&&!bt&&$i.addInitHook("addHandler","tap",zn),$i.mergeOptions({touchZoom:Tt&&!rt,bounceAtZoomLimits:!0});var Mn=se.extend({addHooks:function(){mi(this._map._container,"leaflet-touch-zoom"),ki(this._map._container,"touchstart",this._onTouchStart,this)},removeHooks:function(){fi(this._map._container,"leaflet-touch-zoom"),Ai(this._map._container,"touchstart",this._onTouchStart,this)},_onTouchStart:function(t){var i=this._map;if(t.touches&&2===t.touches.length&&!i._animatingZoom&&!this._zooming){var e=i.mouseEventToContainerPoint(t.touches[0]),n=i.mouseEventToContainerPoint(t.touches[1]);this._centerPoint=i.getSize()._divideBy(2),this._startLatLng=i.containerPointToLatLng(this._centerPoint),"center"!==i.options.touchZoom&&(this._pinchStartLatLng=i.containerPointToLatLng(e.add(n)._divideBy(2))),this._startDist=e.distanceTo(n),this._startZoom=i.getZoom(),this._moved=!1,this._zooming=!0,i._stop(),ki(document,"touchmove",this._onTouchMove,this),ki(document,"touchend",this._onTouchEnd,this),ji(t)}},_onTouchMove:function(t){if(t.touches&&2===t.touches.length&&this._zooming){var i=this._map,e=i.mouseEventToContainerPoint(t.touches[0]),n=i.mouseEventToContainerPoint(t.touches[1]),o=e.distanceTo(n)/this._startDist;if(this._zoom=i.getScaleZoom(o,this._startZoom),!i.options.bounceAtZoomLimits&&(this._zoom<i.getMinZoom()&&o<1||this._zoom>i.getMaxZoom()&&1<o)&&(this._zoom=i._limitZoom(this._zoom)),"center"===i.options.touchZoom){if(this._center=this._startLatLng,1==o)return}else{var s=e._add(n)._divideBy(2)._subtract(this._centerPoint);if(1==o&&0===s.x&&0===s.y)return;this._center=i.unproject(i.project(this._pinchStartLatLng,this._zoom).subtract(s),this._zoom)}this._moved||(i._moveStart(!0,!1),this._moved=!0),C(this._animRequest);var r=a(i._move,i,this._center,this._zoom,{pinch:!0,round:!1});this._animRequest=M(r,this,!0),ji(t)}},_onTouchEnd:function(){this._moved&&this._zooming?(this._zooming=!1,C(this._animRequest),Ai(document,"touchmove",this._onTouchMove),Ai(document,"touchend",this._onTouchEnd),this._map.options.zoomAnimation?this._map._animateZoom(this._center,this._map._limitZoom(this._zoom),!0,this._map.options.zoomSnap):this._map._resetView(this._center,this._map._limitZoom(this._zoom))):this._zooming=!1}});$i.addInitHook("addHandler","touchZoom",Mn),$i.BoxZoom=wn,$i.DoubleClickZoom=Pn,$i.Drag=Ln,$i.Keyboard=bn,$i.ScrollWheelZoom=Tn,$i.Tap=zn,$i.TouchZoom=Mn,Object.freeze=i,t.version="1.6.0",t.Control=te,t.control=Qi,t.Browser=At,t.Evented=k,t.Mixin=ae,t.Util=S,t.Class=E,t.Handler=se,t.extend=h,t.bind=a,t.stamp=u,t.setOptions=p,t.DomEvent=Xi,t.DomUtil=Zi,t.PosAnimation=Ji,t.Draggable=ce,t.LineUtil=xe,t.PolyUtil=Le,t.Point=B,t.point=I,t.Bounds=O,t.bounds=R,t.Transformation=G,t.transformation=K,t.Projection=ze,t.LatLng=j,t.latLng=W,t.LatLngBounds=N,t.latLngBounds=D,t.CRS=F,t.GeoJSON=He,t.geoJSON=$e,t.geoJson=Qe,t.Layer=Ee,t.LayerGroup=Ze,t.layerGroup=function(t,i){return new Ze(t,i)},t.FeatureGroup=ke,t.featureGroup=function(t){return new ke(t)},t.ImageOverlay=tn,t.imageOverlay=function(t,i,e){return new tn(t,i,e)},t.VideoOverlay=en,t.videoOverlay=function(t,i,e){return new en(t,i,e)},t.SVGOverlay=nn,t.svgOverlay=function(t,i,e){return new nn(t,i,e)},t.DivOverlay=on,t.Popup=sn,t.popup=function(t,i){return new sn(t,i)},t.Tooltip=rn,t.tooltip=function(t,i){return new rn(t,i)},t.Icon=Be,t.icon=function(t){return new Be(t)},t.DivIcon=an,t.divIcon=function(t){return new an(t)},t.Marker=Oe,t.marker=function(t,i){return new Oe(t,i)},t.TileLayer=un,t.tileLayer=ln,t.GridLayer=hn,t.gridLayer=function(t){return new hn(t)},t.SVG=vn,t.svg=yn,t.Renderer=_n,t.Canvas=dn,t.canvas=pn,t.Path=Re,t.CircleMarker=Ne,t.circleMarker=function(t,i){return new Ne(t,i)},t.Circle=De,t.circle=function(t,i,e){return new De(t,i,e)},t.Polyline=je,t.polyline=function(t,i){return new je(t,i)},t.Polygon=We,t.polygon=function(t,i){return new We(t,i)},t.Rectangle=xn,t.rectangle=function(t,i){return new xn(t,i)},t.Map=$i,t.map=function(t,i){return new $i(t,i)};var Cn=window.L;t.noConflict=function(){return window.L=Cn,this},window.L=t});
\ No newline at end of file
jQuery(document).ready(function(){
if ( !$('#search-page,#reverse-page').length ){ return; }
-
+
var is_reverse_search = !!( $('#reverse-page').length );
$('#q').focus();
+ $(document).ready(function() {
+ $("input[name='query-selector']").click(function(){
+ var query_val = $("input[name='query-selector']:checked").val() ;
+ if (query_val == "simple") {
+ $("div.form-group-structured").hide();
+ $("div.form-group-simple").show();
+ $('.form-group-structured').find('input:text').val('');
+ }
+ else if (query_val == "structured") {
+ $("div.form-group-simple").hide();
+ $("div.form-group-structured").show();
+ $('.form-group-simple').find('input:text').val('');
+ }
+ });
+ });
+
map = new L.map('map', {
attributionControl: (nominatim_map_init.tile_attribution && nominatim_map_init.tile_attribution.length),
scrollWheelZoom: true, // !L.Browser.touch,
});
L.tileLayer(nominatim_map_init.tile_url, {
- noWrap: true, // otherwise we end up with click coordinates like latitude -728
// moved to footer
attribution: (nominatim_map_init.tile_attribution || null ) //'© <a href="http://osm.org/copyright">OpenStreetMap</a> contributors'
}).addTo(map);
function display_map_position(mouse_lat_lng){
+ if (mouse_lat_lng) {
+ mouse_lat_lng = map.wrapLatLng(mouse_lat_lng);
+ }
html_mouse = "mouse position " + (mouse_lat_lng ? [mouse_lat_lng.lat.toFixed(5), mouse_lat_lng.lng.toFixed(5)].join(',') : '-');
html_click = "last click: " + (last_click_latlng ? [last_click_latlng.lat.toFixed(5),last_click_latlng.lng.toFixed(5)].join(',') : '-');
$('#map-position-inner').html([html_center,html_zoom,html_viewbox,html_click,html_mouse].join('<br/>'));
+ var center_lat_lng = map.wrapLatLng(map.getCenter());
var reverse_params = {
- // lat: map.getCenter().lat.toFixed(5),
- // lon: map.getCenter().lng.toFixed(5),
- // zoom: 2,
+ lat: center_lat_lng.lat.toFixed(5),
+ lon: center_lat_lng.lng.toFixed(5),
+ zoom: map.getZoom(),
format: 'html'
}
$('#switch-to-reverse').attr('href', 'reverse.php?' + $.param(reverse_params));
function map_viewbox_as_string() {
- // since .toBBoxString() doesn't round numbers
+ var bounds = map.getBounds();
+ var west = bounds.getWest();
+ var east = bounds.getEast();
+
+ if ((east - west) >= 360) { // covers more than whole planet
+ west = map.getCenter().lng-179.999;
+ east = map.getCenter().lng+179.999;
+ }
+ east = L.latLng(77, east).wrap().lng;
+ west = L.latLng(77, west).wrap().lng;
+
return [
- map.getBounds().getSouthWest().lng.toFixed(5), // left
- map.getBounds().getNorthEast().lat.toFixed(5), // top
- map.getBounds().getNorthEast().lng.toFixed(5), // right
- map.getBounds().getSouthWest().lat.toFixed(5) // bottom
+ west.toFixed(5), // left
+ bounds.getNorth().toFixed(5), // top
+ east.toFixed(5), // right
+ bounds.getSouth().toFixed(5) // bottom
].join(',');
}
function map_link_to_osm(){
circle.on('click', function(){
highlight_result(position);
});
- layerGroup.addLayer(circle);
+ layerGroup.addLayer(circle);
}
if (result.aBoundingBox){
if ( is_reverse_search ){
map.on('click', function(e){
$('form input[name=lat]').val( e.latlng.lat);
- $('form input[name=lon]').val( e.latlng.lng);
+ $('form input[name=lon]').val( e.latlng.wrap().lng);
$('form').submit();
});
});
+jQuery(document).ready(function(){
+
+ if ( !$('#details-index-page').length ){ return; }
+
+ $('#form-by-type-and-id,#form-by-osm-url').on('submit', function(e){
+ e.preventDefault();
+
+ var val = $(this).find('input[type=edit]').val();
+ var matches = val.match(/^\s*([NWR])(\d+)\s*$/i);
+
+ if (!matches) {
+ matches = val.match(/\/(relation|way|node)\/(\d+)\s*$/);
+ }
+
+ if (matches) {
+ $(this).find('input[name=osmtype]').val(matches[1].charAt(0).toUpperCase());
+ $(this).find('input[name=osmid]').val(matches[2]);
+ $(this).get(0).submit();
+ } else {
+ alert('invalid input');
+ }
+ });
+});
+
jQuery(document).ready(function(){
if ( !$('#details-page').length ){ return; }
<?php
-@define('CONST_ConnectionBucket_PageType', 'Reverse');
-require_once(dirname(dirname(__FILE__)).'/settings/settings.php');
require_once(CONST_BasePath.'/lib/init-website.php');
require_once(CONST_BasePath.'/lib/log.php');
require_once(CONST_BasePath.'/lib/PlaceLookup.php');
$oParams = new Nominatim\ParameterParser();
// Format for output
-$sOutputFormat = $oParams->getSet('format', array('xml', 'json', 'geojson'), 'xml');
+$sOutputFormat = $oParams->getSet('format', array('xml', 'json', 'jsonv2', 'geojson', 'geocodejson'), 'xml');
+set_exception_handler_by_format($sOutputFormat);
// Preferred language
$aLangPrefOrder = $oParams->getPreferredLanguages();
-$oDB =& getDB();
+$oDB = new Nominatim\DB();
+$oDB->connect();
$hLog = logStart($oDB, 'place', $_SERVER['QUERY_STRING'], $aLangPrefOrder);
$oResult = $oPlace;
unset($oResult['aAddress']);
if (isset($oPlace['aAddress'])) $oResult['address'] = $oPlace['aAddress'];
- unset($oResult['langaddress']);
- $oResult['name'] = $oPlace['langaddress'];
+ if ($sOutputFormat != 'geocodejson') {
+ unset($oResult['langaddress']);
+ $oResult['name'] = $oPlace['langaddress'];
+ }
+
+ $aOutlineResult = $oPlaceLookup->getOutlines(
+ $oPlace['place_id'],
+ $oPlace['lon'],
+ $oPlace['lat'],
+ Nominatim\ClassTypes\getProperty($oPlace, 'defdiameter', 0.0001)
+ );
+
+ if ($aOutlineResult) {
+ $oResult = array_merge($oResult, $aOutlineResult);
+ }
+
$aSearchResults[] = $oResult;
}
}
$aExcludePlaceIDs = array();
$sMoreURL = '';
+logEnd($oDB, $hLog, 1);
+
$sOutputTemplate = ($sOutputFormat == 'jsonv2') ? 'json' : $sOutputFormat;
include(CONST_BasePath.'/lib/template/search-'.$sOutputTemplate.'.php');
<?php
-require_once(dirname(dirname(__FILE__)).'/settings/settings.php');
require_once(CONST_BasePath.'/lib/init-website.php');
require_once(CONST_BasePath.'/lib/log.php');
require_once(CONST_BasePath.'/lib/output.php');
ini_set('memory_limit', '200M');
$oParams = new Nominatim\ParameterParser();
+$sOutputFormat = $oParams->getSet('format', array('html', 'json'), 'html');
+set_exception_handler_by_format($sOutputFormat);
-$sOutputFormat = 'html';
$iDays = $oParams->getInt('days', false);
$bReduced = $oParams->getBool('reduced', false);
$sClass = $oParams->getString('class', false);
-$oDB =& getDB();
+$oDB = new Nominatim\DB();
+$oDB->connect();
-$iTotalBroken = (int) chksql($oDB->getOne('select count(*) from import_polygon_error'));
+$iTotalBroken = (int) $oDB->getOne('SELECT count(*) FROM import_polygon_error');
$aPolygons = array();
while ($iTotalBroken && empty($aPolygons)) {
- $sSQL = 'select osm_type as "type",osm_id as "id",class as "key",type as "value",name->\'name\' as "name",';
- $sSQL .= 'country_code as "country",errormessage as "error message",updated';
- $sSQL .= ' from import_polygon_error';
+ $sSQL = 'SELECT osm_type, osm_id, class, type, name->\'name\' as "name",';
+ $sSQL .= 'country_code, errormessage, updated';
+ $sSQL .= ' FROM import_polygon_error';
$aWhere = array();
if ($iDays) {
if ($sClass) $sWhere[] = "class = '".pg_escape_string($sClass)."'";
if (!empty($aWhere)) {
- $sSQL .= ' where '.join(' and ', $aWhere);
+ $sSQL .= ' WHERE '.join(' and ', $aWhere);
}
- $sSQL .= ' order by updated desc limit 1000';
- $aPolygons = chksql($oDB->getAll($sSQL));
+ $sSQL .= ' ORDER BY updated desc LIMIT 1000';
+ $aPolygons = $oDB->getAll($sSQL);
}
if (CONST_Debug) {
exit;
}
-?>
-<!DOCTYPE html>
-<html>
-<head>
- <meta charset="utf-8"/>
- <meta http-equiv="Content-Type" content="text/html;charset=utf-8" >
-
- <title>Nominatim Broken Polygon Data</title>
-
- <meta name="description" content="List of broken OSM polygon data by date" lang="en-US" />
-
-</head>
-
-<body>
-<style type="text/css">
-table {
- border-width: 1px;
- border-spacing: 0px;
- border-style: solid;
- border-color: gray;
- border-collapse: collapse;
- background-color: white;
- margin: 10px;
-}
-table th {
- border-width: 1px;
- padding: 2px;
- border-style: inset;
- border-color: gray;
- border-left-color: #ddd;
- border-right-color: #ddd;
- background-color: #eee;
- -moz-border-radius: 0px 0px 0px 0px;
+if ($sOutputFormat == 'json') {
+ echo javascript_renderData($aPolygons);
+} else {
+ include(CONST_BasePath.'/lib/template/polygons-html.php');
}
-table td {
- border-width: 1px;
- padding: 2px;
- border-style: inset;
- border-color: gray;
- border-left-color: #ddd;
- border-right-color: #ddd;
- background-color: white;
- -moz-border-radius: 0px 0px 0px 0px;
-}
-</style>
-
-<?php
-
-echo "<p>Total number of broken polygons: $iTotalBroken</p>";
-if (!$aPolygons) exit;
-echo '<table>';
-echo '<tr>';
-//var_dump($aPolygons[0]);
-foreach ($aPolygons[0] as $sCol => $sVal) {
- echo '<th>'.$sCol.'</th>';
-}
-echo '<th> </th>';
-echo '</tr>';
-$aSeen = array();
-foreach ($aPolygons as $aRow) {
- if (isset($aSeen[$aRow['type'].$aRow['id']])) continue;
- $aSeen[$aRow['type'].$aRow['id']] = 1;
- echo '<tr>';
- foreach ($aRow as $sCol => $sVal) {
- switch ($sCol) {
- case 'error message':
- if (preg_match('/Self-intersection\\[([0-9.\\-]+) ([0-9.\\-]+)\\]/', $sVal, $aMatch)) {
- $aRow['lat'] = $aMatch[2];
- $aRow['lon'] = $aMatch[1];
- echo '<td><a href="https://www.openstreetmap.org/?lat='.$aMatch[2].'&lon='.$aMatch[1].'&zoom=18&layers=M&'.$sOSMType.'='.$aRow['id'].'">'.($sVal?$sVal:' ').'</a></td>';
- } else {
- echo '<td>'.($sVal?$sVal:' ').'</td>';
- }
- break;
- case 'id':
- echo '<td>'.osmLink($aRow).'</td>';
- break;
- default:
- echo '<td>'.($sVal?$sVal:' ').'</td>';
- break;
- }
- }
- echo '<td><a href="http://localhost:8111/import?url=https://www.openstreetmap.org/api/0.6/'.$sOSMType.'/'.$aRow['id'].'/full" target="josm">josm</a></td>';
- echo '</tr>';
-}
-echo '</table>';
-
-?>
-</body>
-</html>
<?php
-@define('CONST_ConnectionBucket_PageType', 'Reverse');
-require_once(dirname(dirname(__FILE__)).'/settings/settings.php');
require_once(CONST_BasePath.'/lib/init-website.php');
require_once(CONST_BasePath.'/lib/log.php');
require_once(CONST_BasePath.'/lib/PlaceLookup.php');
// Format for output
$sOutputFormat = $oParams->getSet('format', array('html', 'xml', 'json', 'jsonv2', 'geojson', 'geocodejson'), 'xml');
+set_exception_handler_by_format($sOutputFormat);
// Preferred language
$aLangPrefOrder = $oParams->getPreferredLanguages();
-$oDB =& getDB();
+$oDB = new Nominatim\DB();
+$oDB->connect();
$hLog = logStart($oDB, 'reverse', $_SERVER['QUERY_STRING'], $aLangPrefOrder);
$aPlace = array();
}
+logEnd($oDB, $hLog, count($aPlace) ? 1 : 0);
if (CONST_Debug) {
var_dump($aPlace);
}
if ($sOutputFormat == 'html') {
- $sDataDate = chksql($oDB->getOne("select TO_CHAR(lastimportdate,'YYYY/MM/DD HH24:MI')||' GMT' from import_status limit 1"));
+ $sDataDate = $oDB->getOne("select TO_CHAR(lastimportdate,'YYYY/MM/DD HH24:MI')||' GMT' from import_status limit 1");
$sTileURL = CONST_Map_Tile_URL;
$sTileAttribution = CONST_Map_Tile_Attribution;
} elseif ($sOutputFormat == 'geocodejson') {
$sQuery = $fLat.','.$fLon;
if (isset($aPlace['place_id'])) {
- $fDistance = chksql($oDB->getOne('SELECT ST_Distance(ST_SetSRID(ST_Point('.$fLon.','.$fLat.'),4326), centroid) FROM placex where place_id='.$aPlace['place_id']));
+ $fDistance = $oDB->getOne(
+ 'SELECT ST_Distance(ST_SetSRID(ST_Point(:lon,:lat),4326), centroid) FROM placex where place_id = :placeid',
+ array(':lon' => $fLon, ':lat' => $fLat, ':placeid' => $aPlace['place_id'])
+ );
}
}
<?php
-@define('CONST_ConnectionBucket_PageType', 'Search');
-require_once(dirname(dirname(__FILE__)).'/settings/settings.php');
require_once(CONST_BasePath.'/lib/init-website.php');
require_once(CONST_BasePath.'/lib/log.php');
require_once(CONST_BasePath.'/lib/Geocode.php');
require_once(CONST_BasePath.'/lib/output.php');
ini_set('memory_limit', '200M');
-$oDB =& getDB();
+$oDB = new Nominatim\DB();
+$oDB->connect();
$oParams = new Nominatim\ParameterParser();
$oGeocode = new Nominatim\Geocode($oDB);
// Format for output
$sOutputFormat = $oParams->getSet('format', array('html', 'xml', 'json', 'jsonv2', 'geojson', 'geocodejson'), 'html');
+set_exception_handler_by_format($sOutputFormat);
$sForcedGeometry = ($sOutputFormat == 'html') ? 'geojson' : null;
$oGeocode->loadParamArray($oParams, $sForcedGeometry);
if (!$oGeocode->getQueryString()
&& isset($_SERVER['PATH_INFO'])
+ && strlen($_SERVER['PATH_INFO']) > 0
&& $_SERVER['PATH_INFO'][0] == '/'
) {
$sQuery = substr(rawurldecode($_SERVER['PATH_INFO']), 1);
$aSearchResults = $oGeocode->lookup();
if ($sOutputFormat=='html') {
- $sDataDate = chksql($oDB->getOne("select TO_CHAR(lastimportdate,'YYYY/MM/DD HH24:MI')||' GMT' from import_status limit 1"));
+ $sDataDate = $oDB->getOne("select TO_CHAR(lastimportdate,'YYYY/MM/DD HH24:MI')||' GMT' from import_status limit 1");
}
logEnd($oDB, $hLog, count($aSearchResults));
<?php
-@define('CONST_ConnectionBucket_PageType', 'Status');
-
-require_once(dirname(dirname(__FILE__)).'/settings/settings.php');
require_once(CONST_BasePath.'/lib/init-website.php');
require_once(CONST_BasePath.'/lib/ParameterParser.php');
require_once(CONST_BasePath.'/lib/Status.php');
$oParams = new Nominatim\ParameterParser();
$sOutputFormat = $oParams->getSet('format', array('text', 'json'), 'text');
-$oDB = DB::connect(CONST_Database_DSN, false);
-$oStatus = new Nominatim\Status($oDB);
-
+$oDB = new Nominatim\DB();
if ($sOutputFormat == 'json') {
header('content-type: application/json; charset=UTF-8');
try {
+ $oStatus = new Nominatim\Status($oDB);
$oStatus->status();
} catch (Exception $oErr) {
if ($sOutputFormat == 'json') {
+++ /dev/null
-DROP TABLE entity;
-DROP TABLE entity_label;
-DROP TABLE entity_description;
-DROP TABLE entity_alias;
-DROP TABLE entity_link;
-DROP TABLE entity_property;
-
-CREATE TABLE entity (
- entity_id bigint,
- title text,
- pid bigint,
- qid bigint,
- datatype text,
- CONSTRAINT pk_entity PRIMARY KEY(entity_id)
-);
-
-CREATE TABLE entity_label (
- entity_id bigint,
- language text,
- label text,
- CONSTRAINT pk_entity_label PRIMARY KEY(entity_id,language)
-);
-
-CREATE TABLE entity_description (
- entity_id bigint,
- language text,
- description text,
- CONSTRAINT pk_entity_description PRIMARY KEY(entity_id,language)
-);
-
-CREATE TABLE entity_alias (
- entity_id bigint,
- language text,
- alias text,
- CONSTRAINT pk_entity_alias PRIMARY KEY(entity_id,language,alias)
-);
-
-CREATE TABLE entity_link (
- entity_id bigint,
- target text,
- value text,
- CONSTRAINT pk_entity_link PRIMARY KEY(entity_id,target)
-);
-
-CREATE TABLE entity_link_hit (
- entity_id bigint,
- target text,
- value text,
- hits bigint,
- CONSTRAINT pk_entity_link_hit PRIMARY KEY(entity_id,target)
-);
-
-CREATE TABLE link_hit (
- target text,
- value text,
- hits bigint,
- CONSTRAINT pk_link_hit PRIMARY KEY(target,value)
-);
-
-CREATE TABLE entity_property (
- entity_id bigint,
- order_id bigint,
- pid bigint,
- string text,
- toqid bigint,
- location geometry,
- datetime timestamp with time zone,
- CONSTRAINT pk_entity_property PRIMARY KEY(entity_id, order_id)
-);
-
-CREATE TABLE import_link_hit (
- target text,
- value text,
- hits bigint
-);
+++ /dev/null
-PSQL=/usr/lib/postgresql/9.2/bin/psql -d wikidata
-
-cat create.sql | $PSQL
-
-cat entity.csv | $PSQL -c "COPY entity from STDIN WITH CSV"
-cat entity_label.csv | $PSQL -c "COPY entity_label from STDIN WITH CSV"
-cat entity_description.csv | $PSQL -c "COPY entity_description from STDIN WITH CSV"
-cat entity_alias.csv | $PSQL -c "COPY entity_alias from STDIN WITH CSV"
-cat entity_link.csv | $PSQL -c "COPY entity_link from STDIN WITH CSV"
-cat entity_property.csv | $PSQL -c "COPY entity_property from STDIN WITH CSV"
-
-$PSQL -c "create index idx_entity_link_target on entity_link using btree (target,value)"
-$PSQL -c "create index idx_entity_qid on entity using btree (qid)"
-$PSQL -c "create table property_label_en as select pid,null::text as label from entity where pid is not null"
-$PSQL -c "update property_label_en set label = x.label from (select pid,label,language from entity join entity_label using (entity_id) where pid is not null and language = 'en') as x where x.pid = property_label_en.pid"
-$PSQL -c "create unique index idx_property_label_en on property_label_en using btree (pid)"
-$PSQL -c "alter table entity add column label_en text"
-$PSQL -c "update entity set label_en = label from entity_label where entity.entity_id = entity_label.entity_id and language = 'en'"
-$PSQL -c "alter table entity add column description_en text"
-$PSQL -c "update entity set description_en = description from entity_description where entity.entity_id = entity_description.entity_id and language = 'en'"
-
-cat totals.txt | $PSQL -c "COPY import_link_hit from STDIN WITH CSV DELIMITER ' '"
-$PSQL -c "truncate link_hit"
-$PSQL -c "insert into link_hit select target||'wiki', replace(catch_decode_url_part(value), '_', ' '), sum(hits) from import_link_hit where replace(catch_decode_url_part(value), '_', ' ') is not null group by target||'wiki', replace(dcatch_decode_url_part(value), '_', ' ')"
-$PSQL -c "truncate entity_link_hit"
-$PSQL -c "insert into entity_link_hit select entity_id, target, value, coalesce(hits,0) from entity_link left outer join link_hit using (target, value)"
-$PSQL -c "create table entity_hit as select entity_id,sum(hits) as hits from entity_link_hit group by entity_id"
-$PSQL -c "create unique index idx_entity_hit on entity_hit using btree (entity_id)"
+++ /dev/null
-#!/usr/bin/php -Cq
-<?php
-
-$hFile = @fopen('wikidatawiki-20130623-pages-articles.xml', 'r');
-
-$hFileEntity = fopen('entity.csv', 'w');
-$hFileEntityLabel = fopen('entity_label.csv', 'w');
-$hFileEntityDescription = fopen('entity_description.csv', 'w');
-$hFileEntityAlias = fopen('entity_alias.csv', 'w');
-$hFileEntityLink = fopen('entity_link.csv', 'w');
-$hFileEntityProperty = fopen('entity_property.csv', 'w');
-
-$iCount = 0;
-
-$sTitle = '';
-$iNS = false;
-$iID = false;
-
-if ($hFile) {
- while (($sLine = fgets($hFile, 4000000)) !== false) {
- if (substr($sLine, 0, 11) == ' <title>') {
- $sTitle = substr($sLine, 11, -9);
- } elseif (substr($sLine, 0, 8) == ' <ns>') {
- $iNS = (int)substr($sLine, 8, -6);
- } elseif (substr($sLine, 0, 8) == ' <id>') {
- $iID = (int)substr($sLine, 8, -6);
- } elseif (substr($sLine, 0, 33) == ' <text xml:space="preserve">') {
- if ($iNS == -2) continue;
- if ($iNS == -1) continue;
- if ($iNS == 1) continue;
- if ($iNS == 2) continue;
- if ($iNS == 3) continue;
- if ($iNS == 4) continue;
- if ($iNS == 5) continue;
- if ($iNS == 6) continue;
- if ($iNS == 7) continue;
- if ($iNS == 8) continue;
- if ($iNS == 9) continue;
- if ($iNS == 10) continue;
- if ($iNS == 11) continue;
- if ($iNS == 12) continue;
- if ($iNS == 13) continue;
- if ($iNS == 14) continue;
- if ($iNS == 15) continue;
- if ($iNS == 121) continue;
- if ($iNS == 123) continue;
- if ($iNS == 829) continue;
- if ($iNS == 1198) continue;
- if ($iNS == 1199) continue;
- $sText = html_entity_decode(substr($sLine, 33, -8), ENT_COMPAT, 'UTF-8');
- $aArticle = json_decode($sText, true);
-
- if (array_diff(array_keys($aArticle), array('label', 'description', 'aliases', 'links', 'entity', 'claims', 'datatype')) != array()) {
- // DEBUG
- var_dump($sTitle);
- var_dump(array_keys($aArticle));
- var_dump($aArticle);
- exit;
- }
-
- $iPID = $iQID = null;
- if ($aArticle['entity'][0] == 'p') {
- $iPID = (int) substr($aArticle['entity'], 1);
- } elseif ($aArticle['entity'][0] == 'q') {
- $iQID = (int) substr($aArticle['entity'], 1);
- } else {
- continue;
- }
-
- echo '.';
-
- fputcsv($hFileEntity, array($iID, $sTitle, $iPID, $iQID, @$aArticle['datatype']));
-
- foreach ($aArticle['label'] as $sLang => $sLabel) {
- fputcsv($hFileEntityLabel, array($iID, $sLang, $sLabel));
- // echo "insert into entity_label values (".$iID.",'".pg_escape_string($sLang)."','".pg_escape_string($sLabel)."');\n";
- }
-
- foreach ($aArticle['description'] as $sLang => $sLabel) {
- fputcsv($hFileEntityDescription, array($iID, $sLang, $sLabel));
- // echo "insert into entity_description values (".$iID.",'".pg_escape_string($sLang)."','".pg_escape_string($sLabel)."');\n";
- }
-
- foreach ($aArticle['aliases'] as $sLang => $aLabels) {
- $aUniqueAlias = array();
- foreach ($aLabels as $sLabel) {
- if (!isset($aUniqueAlias[$sLabel]) && $sLabel) {
- fputcsv($hFileEntityAlias, array($iID, $sLang, $sLabel));
- // echo "insert into entity_alias values (".$iID.",'".pg_escape_string($sLang)."','".pg_escape_string($sLabel)."');\n";
- $aUniqueAlias[$sLabel] = true;
- }
- }
- }
-
- foreach ($aArticle['links'] as $sLang => $sLabel) {
- fputcsv($hFileEntityLink, array($iID, $sLang, $sLabel));
- // echo "insert into entity_link values (".$iID.",'".pg_escape_string($sLang)."','".pg_escape_string($sLabel)."');\n";
- }
-
-
- if (isset($aArticle['claims'])) {
- //
- foreach ($aArticle['claims'] as $iClaim => $aClaim) {
- //
- $bFail = false;
- if ($aClaim['m'][0] == 'novalue') continue;
- if ($aClaim['m'][0] == 'somevalue') continue;
- $iPID = (int)$aClaim['m'][1];
- if ($aClaim['m'][0] != 'value') $bFail = true;
- if ($aClaim['m'][2]== 'wikibase-entityid') {
- //
- if ($aClaim['m'][3]['entity-type'] != 'item') $bFail = true;
- fputcsv($hFileEntityProperty, array($iID, $iClaim, $iPID, null, $aClaim['m'][3]['numeric-id'], null, null));
- // echo "insert into entity_property values (nextval('seq_entity_property'),".$iID.",".$iPID.",null,".$aClaim['m'][3]['numeric-id'].",null);\n";
- } elseif ($aClaim['m'][2] == 'globecoordinate') {
- //
- if ($aClaim['m'][3]['globe'] != 'http://www.wikidata.org/entity/Q2') $bFail = true;
- fputcsv(
- $hFileEntityProperty,
- array(
- $iID,
- $iClaim,
- $iPID,
- null,
- null,
- 'SRID=4326;POINT('.((float) $aClaim['m'][3]['longitude']).' '.((float)$aClaim['m'][3]['latitude']).')', null
- )
- );
- /* echo "insert into entity_property values (nextval('seq_entity_property'),";
- * echo $iID.",".$iPID.",null,null,ST_SetSRID(ST_MakePoint(".((float)$aClaim['m'][3]['longitude']);
- * echo ", ".((float)$aClaim['m'][3]['latitude'])."),4326));\n";
- */
- } elseif ($aClaim['m'][2] == 'time') {
- // TODO!
- /*
- if ($aClaim['m'][3]['calendarmodel'] == 'http://www.wikidata.org/entity/Q1985727') {
- // Gregorian
- if (preg_match('#(\\+|-)0*([0-9]{4})-([0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2})Z#', $aClaim['m'][3]['time'], $aMatch)) {
- if ((int)$aMatch[2] < 4700 && ) {
- $sDateString = $aMatch[2].'-'.$aMatch[3].($aClaim['m'][3]['timezone']>=0?'+':'').$aClaim['m'][3]['timezone'].($aMatch[1]=='-'?' bc':'');
- fputcsv($hFileEntityProperty, array($iID,$iClaim,$iPID,null,null,null,$sDateString));
- }
- } else {
- // $bFail = true;
- }
- } elseif ( $aClaim['m'][3]['calendarmodel'] != 'http://www.wikidata.org/entity/Q1985786') {
- // Julian
- if (preg_match('#(\\+|-)0*([0-9]{4})-([0-9]{2})-([0-9]{2})T([0-9]{2}:[0-9]{2}:[0-9]{2})Z#', $aClaim['m'][3]['time'], $aMatch)) {
- var_dump($aMatch);
- exit;
- $iDayCount = juliantojd(2, 11, 1732);
- var_dump($iDayCount, jdtogregorian($iDayCount));
- } else {
- $bFail = true;
- exit;
- }
- exit;
- } else {
- // $bFail = true;
- }
- */
- } elseif ($aClaim['m'][2] == 'string') {
- // echo "insert into entity_property values (nextval('seq_entity_property'),".$iID.",".$iPID.",'".pg_escape_string($aClaim['m'][3])."',null,null);\n";
- fputcsv($hFileEntityProperty, array($iID, $iClaim, $iPID, $aClaim['m'][3], null, null, null));
- } else {
- $bFail = true;
- }
-
- // Don't care about sources: if ($aClaim['refs'] != array()) $bFail = true;
-
- if ($bFail) {
- var_dump($sTitle);
- var_dump($aClaim);
- } else {
- // process
- }
- }
- }
- }
- }
- fclose($hFile);
- fclose($hFileEntity);
- fclose($hFileEntityLabel);
- fclose($hFileEntityDescription);
- fclose($hFileEntityAlias);
- fclose($hFileEntityLink);
- fclose($hFileEntityProperty);
-}
+++ /dev/null
-<?php
-
-for ($iTimestamp = mktime(0, 0, 0, 5, 1, 2013); $iTimestamp < mktime(0, 0, 0, 6, 15, 2013); $iTimestamp += 24*60*60) {
- $sYear = date('Y', $iTimestamp);
- $sMonth = date('Y-m', $iTimestamp);
- $sDay = date('Ymd', $iTimestamp);
-
- for ($iHour = 0; $iHour < 24; $iHour++) {
- $sFilename = sprintf('pagecounts-'.$sDay.'-%02d0000', $iHour);
- echo $sFilename."\n";
- if (!file_exists($sFilename.'.gz')) {
- exec('wget http://dumps.wikimedia.org/other/pagecounts-raw/'.$sYear.'/'.$sMonth.'/'.$sFilename.'.gz');
- }
-
- exec('gzip -dc '.$sFilename.'.gz'.' | grep -e "^[a-z]\{2\} [^ :]\+ [0-9]\+" > hour.txt');
-
- $hPrevTotals = @fopen('totals.txt', 'r');
- $hDayTotals = @fopen('hour.txt', 'r');
- $hNewTotals = @fopen('newtotals.txt', 'w');
-
- $sPrevKey = $sDayKey = true;
- $sPrevLine = true;
- $sDayLine = true;
-
- do {
- if ($sPrevKey === $sDayKey) {
- if ($sPrevLine !== true) fputs($hNewTotals, "$sPrevKey ".($iPrevValue+$iDayValue)."\n");
- $sPrevLine = true;
- $sDayLine = true;
- } elseif ($sDayKey !== false && ($sPrevKey > $sDayKey || $sPrevKey === false)) {
- fputs($hNewTotals, "$sDayKey ".($iDayValue)."\n");
- $sDayLine = true;
- } elseif ($sPrevKey !== false && ($sDayKey > $sPrevKey || $sDayKey === false)) {
- fputs($hNewTotals, "$sPrevKey ".($iPrevValue)."\n");
- $sPrevLine = true;
- }
-
- if ($sPrevLine === true) {
- $sPrevLine = $hPrevTotals?fgets($hPrevTotals, 4096):false;
- if ($sPrevLine !== false) {
- $aPrevLine = explode(' ', $sPrevLine);
- $sPrevKey = $aPrevLine[0].' '.$aPrevLine[1];
- $iPrevValue = (int)$aPrevLine[2];
- } else {
- $sPrevKey = false;
- $iPrevValue = 0;
- }
- }
-
- if ($sDayLine === true) {
- $sDayLine = $hDayTotals?fgets($hDayTotals, 4096):false;
- if ($sDayLine !== false) {
- preg_match('#^([a-z]{2}) ([^ :]+) ([0-9]+) [0-9]+$#', $sDayLine, $aMatch);
- $sDayKey = $aMatch[1].' '.$aMatch[2];
- $iDayValue = (int)$aMatch[3];
- } else {
- $sDayKey = false;
- $iDayValue = 0;
- }
- }
- } while ($sPrevLine !== false || $sDayLine !== false);
-
- @fclose($hPrevTotals);
- @fclose($hDayTotals);
- @fclose($hNewTotals);
-
- @unlink('totals.txt');
- rename('newtotals.txt', 'totals.txt');
- }
-}
-
-// Notes:
-/*
- gzip -dc $FILE.gz | grep -e "^en [^ :]\+ [0-9]\+" |
- sed "s#\(^[a-z]\{2\}\) \([^ :]\+\) \([0-9]\+\) [0-9]\+#update wikipedia_article set hit_count = coalesce(hit_count,0) + \3 where language = '\1'
- and title = catch_decode_url_part('\2');#g" | /opt/mapquest/stdbase-dev$
- cat totals.txt | sed "s#\(^[a-z]\{2\}\) \([^ ]\+\) \([0-9]\+\)\$#update entity_link set hits = s,0) + \3 where target = '\1wiki' and value = catch_decode_url_part('\2');#g"
- cat totals.txt | sed "s#\(^[a-z]\{2\}\) \([^ ]\+\) \([0-9]\+\)\$#update entity_link set hits = coalesce(hits,0) + \3 where target = '\1wiki' and value = catch_decode_url_part('\2');#g"
-*/