Repository: stamen/terrain-classic Branch: master Commit: d6bf46afefe4 Files: 106 Total size: 13.8 MB Directory structure: gitextract_45kd9m1q/ ├── .gitignore ├── .gitmodules ├── .nvmrc ├── LICENSE ├── Makefile ├── README.md ├── bin/ │ └── imposm3 ├── fonts/ │ ├── PT-Sans-LICENSE.txt │ └── unifont-LICENSE.txt ├── imposm3_mapping.json ├── labels.mss ├── landcover/ │ ├── LCType_z9-urban-only.vrt │ ├── LCType_z9.vrt │ ├── LCType_z9_s3-urban-only.vrt │ ├── LCType_z9_s3.vrt │ ├── LC_500m_MODIS-to-rgb.vrt │ ├── LC_500m_MODIS-urban-only.vrt │ ├── LC_5min_global_2012-to-rgb.vrt │ ├── LC_5min_global_2012.tif │ ├── landcover-1km-rgb.tif │ ├── landcover-1km-to-merc.vrt │ ├── landcover-1km-to-rgb.vrt │ ├── landcover-1km.tif │ └── landcover-palette.md ├── lib/ │ ├── libgeos_c.so.1 │ ├── libhyperleveldb.so.0 │ └── libleveldb.so.1 ├── map.mss ├── package.json ├── shields/ │ └── default-shields.ai ├── shp/ │ ├── .dockerignore │ ├── .gitignore │ ├── Dockerfile │ ├── continents_900913.dbf │ ├── continents_900913.index │ ├── continents_900913.prj │ ├── continents_900913.shp │ ├── continents_900913.shx │ └── labels_admin/ │ ├── admin-0-labels-z4.dbf │ ├── admin-0-labels-z4.index │ ├── admin-0-labels-z4.prj │ ├── admin-0-labels-z4.shp │ ├── admin-0-labels-z4.shx │ ├── admin-0-labels-z5.dbf │ ├── admin-0-labels-z5.index │ ├── admin-0-labels-z5.prj │ ├── admin-0-labels-z5.shp │ ├── admin-0-labels-z5.shx │ ├── admin-0-labels-z6.dbf │ ├── admin-0-labels-z6.index │ ├── admin-0-labels-z6.prj │ ├── admin-0-labels-z6.shp │ ├── admin-0-labels-z6.shx │ ├── admin-1-labels-z4.dbf │ ├── admin-1-labels-z4.index │ ├── admin-1-labels-z4.prj │ ├── admin-1-labels-z4.shp │ ├── admin-1-labels-z4.shx │ ├── admin-1-labels-z5.dbf │ ├── admin-1-labels-z5.index │ ├── admin-1-labels-z5.prj │ ├── admin-1-labels-z5.shp │ ├── admin-1-labels-z5.shx │ ├── admin-1-labels-z6.dbf │ ├── admin-1-labels-z6.index │ ├── admin-1-labels-z6.prj │ ├── admin-1-labels-z6.shp │ ├── admin-1-labels-z6.shx │ ├── admin-1-labels-z7.dbf │ ├── admin-1-labels-z7.index │ ├── admin-1-labels-z7.prj │ ├── admin-1-labels-z7.shp │ ├── admin-1-labels-z7.shx │ ├── admin_0_countries_110m-points.dbf │ ├── admin_0_countries_110m-points.index │ ├── admin_0_countries_110m-points.prj │ ├── admin_0_countries_110m-points.shp │ └── admin_0_countries_110m-points.shx ├── shp-local/ │ ├── nullisland.dbf │ ├── nullisland.geojson │ ├── nullisland.prj │ ├── nullisland.shp │ └── nullisland.shx ├── sql/ │ └── functions/ │ ├── admin1_labels.sql │ ├── aries_labels.sql │ ├── highroad.sql │ ├── highway_shields.sql │ └── osm_admin_area.sql ├── terrain-classic-background.mss ├── terrain-classic-background.yml ├── terrain-classic-features.mss ├── terrain-classic-features.yml ├── terrain-classic-labels.mss ├── terrain-classic-labels.yml ├── terrain-classic-lines.mss ├── terrain-classic-lines.yml ├── terrain-classic-water.mss ├── terrain-classic-water.yml ├── terrain-classic.mss ├── terrain-classic.yml ├── tessera.json └── tmp/ ├── old_key.txt ├── old_lc_rgb_values.txt ├── old_vrt_rgb_values.txt ├── parse-vrt-xml.js └── terrain_og/ └── index.html ================================================ FILE CONTENTS ================================================ ================================================ FILE: .gitignore ================================================ data/ *.mml *.xml .env .DS_Store *.swp node_modules .thumb.png cache info.txt .vagrant secrets.json *.pem layers landcover/GlobalLandCover_tif.zip landcover/LCType.tif landcover/LCType_z9.tif npm-debug.log ================================================ FILE: .gitmodules ================================================ [submodule "side-by-side"] path = side-by-side url = https://github.com/stamen/side-by-side ================================================ FILE: .nvmrc ================================================ 4 ================================================ FILE: LICENSE ================================================ Copyright (c) 2015, Stamen Design Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies. THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ================================================ FILE: Makefile ================================================ SHELL := /bin/bash PATH := $(PATH):node_modules/.bin define EXPAND_EXPORTS export $(word 1, $(subst =, , $(1))) := $(word 2, $(subst =, , $(1))) endef # wrap Makefile body with a check for pgexplode ifeq ($(shell test -f node_modules/.bin/pgexplode; echo $$?), 0) # load .env $(foreach a,$(shell cat .env 2> /dev/null),$(eval $(call EXPAND_EXPORTS,$(a)))) # expand PG* environment vars $(foreach a,$(shell set -a && source .env 2> /dev/null; node_modules/.bin/pgexplode),$(eval $(call EXPAND_EXPORTS,$(a)))) define create_relation @psql -c "\d $(subst db/,,$@)" > /dev/null 2>&1 || \ psql -v ON_ERROR_STOP=1 -qX1f sql/$(subst db/,,$@).sql endef define create_extension @psql -c "\dx $(subst db/,,$@)" | grep $(subst db/,,$@) > /dev/null 2>&1 || \ psql -v ON_ERROR_STOP=1 -qX1c "CREATE EXTENSION $(subst db/,,$@)" endef define register_function_target .PHONY: db/functions/$(strip $(1)) db/functions/$(strip $(1)): db @psql -c "\df $(1)" | grep -i $(1) > /dev/null 2>&1 || \ psql -v ON_ERROR_STOP=1 -qX1f sql/functions/$(1).sql endef default: terrain-classic link: @test -e ${HOME}/Documents/MapBox/project && \ test -e ${HOME}/Documents/MapBox/project/terrain-classic || \ ln -sf "`pwd`" ${HOME}/Documents/MapBox/project/terrain-classic clean: @rm -f *.mml *.xml .env: @echo DATABASE_URL=postgres:///terrain-classic > $@ %: %.mml @cp $< project.mml mml: $(subst .yml,.mml,$(filter-out circle.yml,$(wildcard *.yml))) xml: $(subst .yml,.xml,$(filter-out circle.yml,$(wildcard *.yml))) .PRECIOUS: %.mml %.mml: %.yml map.mss labels.mss %.mss interp js-yaml @echo Building $@ @cat $< | interp | js-yaml > tmp.mml && mv tmp.mml $@ .PRECIOUS: %.xml %.xml: %.mml carto @echo @echo Building $@ @echo @carto -a 3.0.11 $< > $@ || (rm -f $@; false) .PHONY: carto carto: node_modules/carto/package.json .PHONY: interp interp: node_modules/interp/package.json .PHONY: js-yaml js-yaml: node_modules/js-yaml/package.json node_modules/carto/package.json: PKG = $(word 2,$(subst /, ,$@)) node_modules/carto/package.json: node_modules/millstone/package.json @type node > /dev/null 2>&1 || (echo "Please install Node.js" && false) @echo "Installing $(PKG)" @npm install $(PKG) node_modules/interp/package.json: PKG = $(word 2,$(subst /, ,$@)) node_modules/interp/package.json: @type node > /dev/null 2>&1 || (echo "Please install Node.js" && false) @echo "Installing $(PKG)" @npm install $(PKG) node_modules/js-yaml/package.json: PKG = $(word 2,$(subst /, ,$@)) node_modules/js-yaml/package.json: @type node > /dev/null 2>&1 || (echo "Please install Node.js" && false) @echo "Installing $(PKG)" @npm install $(PKG) node_modules/millstone/package.json: PKG = $(word 2,$(subst /, ,$@)) node_modules/millstone/package.json: @type node > /dev/null 2>&1 || (echo "Please install Node.js" && false) @echo "Installing $(PKG)" @npm install $(PKG) .PHONY: DATABASE_URL DATABASE_URL: @test "${$@}" || (echo "$@ is undefined" && false) .PHONY: db db: DATABASE_URL @psql -c "SELECT 1" > /dev/null 2>&1 || \ createdb .PHONY: db/postgis db/postgis: db $(call create_extension) .PHONY: db/hstore db/hstore: db $(call create_extension) .PHONY: db/shared db/shared: db/postgres db/aries db/shapefiles db/natearth db/generalizations db/landcover # create targets for each file in sql/functions $(foreach fn,$(shell ls sql/functions/ 2> /dev/null | sed 's/\..*//'),$(eval $(call register_function_target,$(fn)))) # Import PBF ($2) as $1 define import .PHONY: db/osm-$(strip $(word 1, $(subst :, ,$(1)))) db/$(strip $(word 1, $(subst :, ,$(1)))) db/$(strip $(word 1, $(subst :, ,$(1)))): db/osm-$(strip $(word 1, $(subst :, ,$(1)))) db/shared db/osm-$(strip $(word 1, $(subst :, ,$(1)))): db/postgis db/hstore $(strip $(word 2, $(subst :, ,$(1)))) @psql -c "\d osm_roads" > /dev/null 2>&1 || \ imposm3 import \ --cachedir cache \ -mapping=imposm3_mapping.json \ -read $(strip $(word 2, $(subst :, ,$(1)))) \ -overwritecache imposm3 import \ --cachedir cache \ -mapping=imposm3_mapping.json \ -connection="$${DATABASE_URL}" \ -write imposm3 import \ -mapping=imposm3_mapping.json \ -connection="$${DATABASE_URL}" \ -optimize imposm3 import \ -mapping=imposm3_mapping.json \ -connection="$${DATABASE_URL}" \ -deployproduction endef .PHONY: db/postgres db/postgres: db/functions/highroad db/functions/highway_shields db/functions/osm_admin_area .PHONY: db/ne_10m_admin_1_states_provinces_labels db/ne_10m_admin_1_states_provinces_labels: db/ne_10m_admin_1_states_provinces_scale_rank db/functions/admin1_labels .PHONY: db/generalizations db/generalizations: db/ne_10m_admin_1_states_provinces_labels .PHONY: db/shapefiles db/shapefiles: db/admin_0_countries_110m_points \ db/admin_0_labels_z4 \ db/admin_0_labels_z5 \ db/admin_0_labels_z6 \ db/admin_1_labels_z4 \ db/admin_1_labels_z5 \ db/continents \ db/land_polygons \ db/nullisland \ db/water_polygons .PHONY: db/admin_0_countries_110m_points db/admin_0_countries_110m_points: db/postgis shp/labels_admin/admin_0_countries_110m-points.shp @psql -c "\d $(subst db/,,$@)" > /dev/null 2>&1 || \ ogr2ogr --config PG_USE_COPY YES \ -nln $(subst db/,,$@) \ -t_srs EPSG:3857 \ -lco ENCODING=UTF-8 \ -nlt PROMOTE_TO_MULTI \ -lco POSTGIS_VERSION=2.0 \ -lco GEOMETRY_NAME=geom \ -lco SRID=3857 \ -lco PRECISION=NO \ -f PGDump /vsistdout/ \ $(word 2, $^) | psql -q .PHONY: admin_0_labels_z4 db/admin_0_labels_z4: db/postgis shp/labels_admin/admin-0-labels-z4.shp @psql -c "\d $(subst db/,,$@)" > /dev/null 2>&1 || \ ogr2ogr --config PG_USE_COPY YES \ -nln $(subst db/,,$@) \ -t_srs EPSG:3857 \ -lco ENCODING=UTF-8 \ -nlt PROMOTE_TO_MULTI \ -lco POSTGIS_VERSION=2.0 \ -lco GEOMETRY_NAME=geom \ -lco SRID=3857 \ -lco PRECISION=NO \ -f PGDump /vsistdout/ \ $(word 2, $^) | psql -q .PHONY: admin_0_labels_z5 db/admin_0_labels_z5: db/postgis shp/labels_admin/admin-0-labels-z5.shp @psql -c "\d $(subst db/,,$@)" > /dev/null 2>&1 || \ ogr2ogr --config PG_USE_COPY YES \ -nln $(subst db/,,$@) \ -t_srs EPSG:3857 \ -lco ENCODING=UTF-8 \ -nlt PROMOTE_TO_MULTI \ -lco POSTGIS_VERSION=2.0 \ -lco GEOMETRY_NAME=geom \ -lco SRID=3857 \ -lco PRECISION=NO \ -f PGDump /vsistdout/ \ $(word 2, $^) | psql -q .PHONY: admin_0_labels_z6 db/admin_0_labels_z6: db/postgis shp/labels_admin/admin-0-labels-z6.shp @psql -c "\d $(subst db/,,$@)" > /dev/null 2>&1 || \ ogr2ogr --config PG_USE_COPY YES \ -nln $(subst db/,,$@) \ -t_srs EPSG:3857 \ -lco ENCODING=UTF-8 \ -nlt PROMOTE_TO_MULTI \ -lco POSTGIS_VERSION=2.0 \ -lco GEOMETRY_NAME=geom \ -lco SRID=3857 \ -lco PRECISION=NO \ -f PGDump /vsistdout/ \ $(word 2, $^) | psql -q .PHONY: admin_1_labels_z4 db/admin_1_labels_z4: db/postgis shp/labels_admin/admin-1-labels-z4.shp @psql -c "\d $(subst db/,,$@)" > /dev/null 2>&1 || \ ogr2ogr --config PG_USE_COPY YES \ -nln $(subst db/,,$@) \ -t_srs EPSG:3857 \ -lco ENCODING=UTF-8 \ -nlt PROMOTE_TO_MULTI \ -lco POSTGIS_VERSION=2.0 \ -lco GEOMETRY_NAME=geom \ -lco SRID=3857 \ -lco PRECISION=NO \ -f PGDump /vsistdout/ \ $(word 2, $^) | psql -q .PHONY: admin_1_labels_z5 db/admin_1_labels_z5: db/postgis shp/labels_admin/admin-1-labels-z5.shp @psql -c "\d $(subst db/,,$@)" > /dev/null 2>&1 || \ ogr2ogr --config PG_USE_COPY YES \ -nln $(subst db/,,$@) \ -t_srs EPSG:3857 \ -lco ENCODING=UTF-8 \ -nlt PROMOTE_TO_MULTI \ -lco POSTGIS_VERSION=2.0 \ -lco GEOMETRY_NAME=geom \ -lco SRID=3857 \ -lco PRECISION=NO \ -f PGDump /vsistdout/ \ $(word 2, $^) | psql -q .PHONY: db/continents db/continents: db/postgis shp/continents_900913.shp @psql -c "\d $(subst db/,,$@)" > /dev/null 2>&1 || \ ogr2ogr --config PG_USE_COPY YES \ -nln $(subst db/,,$@) \ -t_srs EPSG:3857 \ -lco ENCODING=UTF-8 \ -nlt PROMOTE_TO_MULTI \ -lco POSTGIS_VERSION=2.0 \ -lco GEOMETRY_NAME=geom \ -lco SRID=3857 \ -lco PRECISION=NO \ -f PGDump /vsistdout/ \ $(word 2, $^) | psql -q .PHONY: db/land_polygons db/land_polygons: db/postgis data/osmdata/land_polygons_split.zip @psql -c "\d $(subst db/,,$@)" > /dev/null 2>&1 || \ ogr2ogr --config PG_USE_COPY YES \ -nln $(subst db/,,$@) \ -t_srs EPSG:3857 \ -lco ENCODING=UTF-8 \ -nlt PROMOTE_TO_MULTI \ -lco POSTGIS_VERSION=2.0 \ -lco GEOMETRY_NAME=geom \ -lco SRID=3857 \ -lco PRECISION=NO \ -clipsrc -20037508.34 -20037508.34 20037508.34 20037508.34 \ -f PGDump /vsistdout/ \ /vsizip/$(word 2, $^)/land-polygons-split-3857/land_polygons.shp | psql -q .PHONY: db/nullisland db/nullisland: db/postgis shp-local/nullisland.geojson @psql -c "\d $(subst db/,,$@)" > /dev/null 2>&1 || \ ogr2ogr --config PG_USE_COPY YES \ -nln $(subst db/,,$@) \ -t_srs EPSG:3857 \ -lco ENCODING=UTF-8 \ -nlt PROMOTE_TO_MULTI \ -lco POSTGIS_VERSION=2.0 \ -lco GEOMETRY_NAME=geom \ -lco SRID=3857 \ -lco PRECISION=NO \ -f PGDump /vsistdout/ \ $(word 2, $^) | psql -q .PHONY: db/water_polygons db/water_polygons: db/postgis data/osmdata/water_polygons.zip @psql -c "\d $(subst db/,,$@)" > /dev/null 2>&1 || \ ogr2ogr --config PG_USE_COPY YES \ -nln $(subst db/,,$@) \ -t_srs EPSG:3857 \ -lco ENCODING=UTF-8 \ -nlt PROMOTE_TO_MULTI \ -lco POSTGIS_VERSION=2.0 \ -lco GEOMETRY_NAME=geom \ -lco SRID=3857 \ -lco PRECISION=NO \ -f PGDump /vsistdout/ \ /vsizip/$(word 2, $^)/water-polygons-split-3857/water_polygons.shp | psql -q .PHONY: db/natearth db/natearth: db/ne_50m_ocean \ db/ne_10m_ocean \ db/ne_50m_land \ db/ne_10m_rivers_lake_centerlines_scale_rank \ db/ne_50m_admin_0_countries_lakes \ db/ne_10m_admin_0_countries_lakes \ db/ne_10m_admin_0_boundary_lines_map_units \ db/ne_50m_admin_1_states_provinces_lines \ db/ne_10m_geography_marine_polys \ db/ne_50m_geography_marine_polys \ db/ne_110m_geography_marine_polys \ db/ne_10m_airports \ db/ne_10m_roads \ db/ne_10m_lakes \ db/ne_50m_lakes \ db/ne_10m_admin_0_boundary_lines_land \ db/ne_50m_admin_0_boundary_lines_land \ db/ne_10m_admin_1_states_provinces_scale_rank \ db/ne_10m_admin_1_states_provinces_lines \ db/ne_10m_geography_regions_elevation_points db/aries: db/postgis data/aries/z4to10.json @psql -c "\d $(subst db/,,$@)" > /dev/null 2>&1 || \ ogr2ogr --config PG_USE_COPY YES \ -t_srs EPSG:3857 \ -nlt PROMOTE_TO_MULTI \ -nln $(subst db/,,$@) \ -lco GEOMETRY_NAME=geometry \ -lco SRID=3857 \ -f PGDump /vsistdout/ \ $(word 2,$^) | pv | psql -q # TODO places target that lists registered places PLACES=BC:data/extract/north-america/ca/british-columbia-latest.osm.pbf \ CA:data/extract/north-america/us/california-latest.osm.pbf \ belize:data/extract/central-america/belize-latest.osm.pbf \ switzerland:data/extract/europe/switzerland-latest.osm.pbf \ mexico:data/extract/north-america/mexico-latest.osm.pbf \ mexico_city:data/metro/mexico-city_mexico.osm.pbf \ japan:data/extract/asia/japan-latest.osm.pbf \ tokyo:data/metro/tokyo_japan.osm.pbf \ cle:data/metro/cleveland_ohio.osm.pbf \ MA:data/extract/north-america/us/massachusetts-latest.osm.pbf \ NY:data/extract/north-america/us/new-york-latest.osm.pbf \ OH:data/extract/north-america/us/ohio-latest.osm.pbf \ sf:data/metro/san-francisco-bay_california.osm.pbf \ sfbay:data/metro/sf-bay-area.osm.pbf \ seattle:data/metro/seattle_washington.osm.pbf \ WA:data/extract/north-america/us/washington-latest.osm.pbf \ vancouver:data/metro/vancouver_canada.osm.pbf $(foreach place,$(PLACES),$(eval $(call import,$(place)))) .SECONDARY: data/extract/% data/extract/%: @mkdir -p $$(dirname $@) curl -Lf http://download.geofabrik.de/$(@:data/extract/%=%) -o $@ .SECONDARY: data/metro/% data/metro/%: @mkdir -p $$(dirname $@) curl -Lf https://s3.amazonaws.com/metro-extracts.mapzen.com/$(@:data/metro/%=%) -o $@ .SECONDARY: data/osmdata/land_polygons.zip # so the zip matches the shapefile name data/osmdata/land_polygons.zip: @mkdir -p $$(dirname $@) curl -Lf http://data.openstreetmapdata.com/land-polygons-complete-3857.zip -o $@ .SECONDARY: data/osmdata/land_polygons_split.zip data/osmdata/land_polygons_split.zip: @mkdir -p $$(dirname $@) curl -Lf http://data.openstreetmapdata.com/land-polygons-split-3857.zip -o $@ .SECONDARY: data/osmdata/water_polygons.zip data/osmdata/water_polygons.zip: @mkdir -p $$(dirname $@) curl -Lf http://data.openstreetmapdata.com/water-polygons-split-3857.zip -o $@ define natural_earth db/$(strip $(word 1, $(subst :, ,$(1)))): $(strip $(word 2, $(subst :, ,$(1)))) db/postgis @psql -c "\d $(strip $(word 1, $(subst :, ,$(1))))" > /dev/null 2>&1 || \ ogr2ogr --config OGR_ENABLE_PARTIAL_REPROJECTION TRUE \ --config SHAPE_ENCODING WINDOWS-1252 \ --config PG_USE_COPY YES \ -nln $$(subst db/,,$$@) \ -t_srs EPSG:3857 \ -lco ENCODING=UTF-8 \ -nlt PROMOTE_TO_MULTI \ -lco POSTGIS_VERSION=2.0 \ -lco GEOMETRY_NAME=geom \ -lco SRID=3857 \ -lco PRECISION=NO \ -clipsrc -180 -85.05112878 180 85.05112878 \ -segmentize 1 \ -skipfailures \ -f PGDump /vsistdout/ \ /vsizip/$$::[shapefile] NATURAL_EARTH=ne_50m_land:data/ne/50m/physical/ne_50m_land.zip \ ne_10m_ocean:data/ne/10m/physical/ne_10m_ocean.zip \ ne_50m_ocean:data/ne/50m/physical/ne_50m_ocean.zip \ ne_10m_rivers_lake_centerlines_scale_rank:data/ne/10m/physical/ne_10m_rivers_lake_centerlines_scale_rank.zip \ ne_50m_admin_0_countries_lakes:data/ne/50m/cultural/ne_50m_admin_0_countries_lakes.zip \ ne_10m_admin_0_countries_lakes:data/ne/10m/cultural/ne_10m_admin_0_countries_lakes.zip \ ne_10m_admin_0_boundary_lines_map_units:data/ne/10m/cultural/ne_10m_admin_0_boundary_lines_map_units.zip \ ne_50m_admin_1_states_provinces_lines:data/ne/50m/cultural/ne_50m_admin_1_states_provinces_lines.zip \ ne_10m_geography_marine_polys:data/ne-stamen/10m/physical/ne_10m_geography_marine_polys.zip \ ne_50m_geography_marine_polys:data/ne-stamen/50m/physical/ne_50m_geography_marine_polys.zip \ ne_110m_geography_marine_polys:data/ne-stamen/110m/physical/ne_110m_geography_marine_polys.zip \ ne_10m_airports:data/ne-stamen/10m/cultural/ne_10m_airports.zip \ ne_10m_roads:data/ne/10m/cultural/ne_10m_roads.zip \ ne_10m_lakes:data/ne/10m/physical/ne_10m_lakes.zip \ ne_50m_lakes:data/ne/50m/physical/ne_50m_lakes.zip \ ne_10m_admin_0_boundary_lines_land:data/ne/10m/cultural/ne_10m_admin_0_boundary_lines_land.zip \ ne_50m_admin_0_boundary_lines_land:data/ne/50m/cultural/ne_50m_admin_0_boundary_lines_land.zip \ ne_10m_admin_1_states_provinces_scale_rank:data/ne/10m/cultural/ne_10m_admin_1_states_provinces_scale_rank.zip:ne_10m_admin_1_states_provinces_scale_rank/ne_10m_admin_1_states_provinces_scale_rank.shp \ ne_10m_admin_1_states_provinces_lines:data/ne/10m/cultural/ne_10m_admin_1_states_provinces_lines.zip:ne_10m_admin_1_states_provinces_lines.shp \ ne_10m_geography_regions_elevation_points:data/ne/10m/physical/ne_10m_geography_regions_elevation_points.zip:ne_10m_geography_regions_elevation_points.shp $(foreach shape,$(NATURAL_EARTH),$(eval $(call natural_earth,$(shape)))) db/ne_10m_admin_1_states_provinces_scale_rank: db/postgis data/ne/10m/cultural/ne_10m_admin_1_states_provinces_scale_rank.zip @psql -c "\d $(subst db/,,$@)" > /dev/null 2>&1 || \ ogr2ogr --config OGR_ENABLE_PARTIAL_REPROJECTION TRUE \ --config PG_USE_COPY YES \ -nln $(subst db/,,$@) \ -t_srs EPSG:3857 \ -lco ENCODING=UTF-8 \ -nlt PROMOTE_TO_MULTI \ -lco POSTGIS_VERSION=2.0 \ -lco GEOMETRY_NAME=geom \ -lco SRID=3857 \ -lco PRECISION=NO \ -clipsrc -180 -85.05112878 180 85.05112878 \ -segmentize 1 \ -skipfailures \ -f PGDump /vsistdout/ \ /vsizip/$(word 2, $^) | psql -q define natural_earth_sources .SECONDARY: data/ne/$(1)/$(2)/%.zip data/ne/$(1)/$(2)/%.zip: @mkdir -p $$(dir $$@) curl -fL http://www.naturalearthdata.com/http//www.naturalearthdata.com/download/$(1)/$(2)/$$(@:data/ne/$(1)/$(2)/%=%) -o $$@ .SECONDARY: data/ne/$(1)/$(2)/%.zip data/ne-stamen/$(1)/$(2)/%.zip: @mkdir -p $$(dir $$@) curl -fL "https://github.com/stamen/natural-earth-vector/blob/master/zips/$(1)_$(2)/$$(@:data/ne-stamen/$(1)/$(2)/%=%)?raw=true" -o $$@ endef scales=10m 50m 110m themes=cultural physical raster $(foreach a,$(scales),$(foreach b,$(themes),$(eval $(call natural_earth_sources,$(a),$(b))))) .PHONY: db/landcover db/landcover: landcover/LCType_z9.tif landcover/LCType_z9.tif: landcover/LCType.tif gdalwarp -t_srs EPSG:3857 -multi -wm 256 -wo NUM_THREADS=ALL_CPUS -co tiled=yes -co compress=lzw -co predictor=2 -co sparse_ok=true -co blockxsize=256 -co blockysize=256 -ts 131072 131072 $< $@ gdaladdo $@ --config COMPRESS_OVERVIEW LZW --config PREDICTOR_OVERVIEW 2 2 4 8 16 32 64 128 256 landcover/LCType.tif: landcover/GlobalLandCover_tif.zip unzip -oju $< -d $$(dirname $@) .SECONDARY: landcover/GlobalLandCover_tif.zip landcover/GlobalLandCover_tif.zip: curl -fL "http://landcover.usgs.gov/documents/GlobalLandCover_tif.zip" -o $@ # complete wrapping else default: $(error Please install pgexplode: "npm install pgexplode") endif ================================================ FILE: README.md ================================================ Terrain Classic =============== World-wide CartoCSS port of Stamen's classic terrain style. UPDATE: As of 2023 this code is not longer used to generate Terrain tiles. Stamen's Terrain style has been updated to use vector tiles and is now hosted on Stadia Maps. Learn more: https://stadiamaps.com/stamen/ Stamen's original Terrain style was developed in 2011 as part of Stamen's [Citytracking](https://github.com/Citytracking) initiative, funded by the [Knight Foundation](http://www.knightfoundation.org/). The old repository can be found [here](https://github.com/citytracking/terrain), for historical interest. The original Terrain style only covered the United States. As part of another Knight Foundation grant in 2015, we expanded Terrain to cover the entire world. The Knight grant also funded prototyping for some totally-different new terrain styles, so to avoid confusion we called this reboot of the old style "Terrain Classic." ![Terrain screenshot](https://github.com/stamen/terrain-classic/raw/master/terrain_classic.png?raw=true) Most of the development process for Terrain Classic was based on the [toner-carto repo](https://github.com/stamen/toner-carto). Developing ---------- ### Prerequisites - PostgreSQL - PostGIS @2.2.0 - Node.js --version 0.10\* - GDAL - TileMill 1@`master` (this includes the latest Mapnik): [github.com/mapbox/tilemill](https://github.com/mapbox/tilemill) - [Imposm 3](https://github.com/omniscale/imposm3), which includes dependencies of its own: `go`, `leveldb`, and `protobuf`. **\*NOTE:** The [Node Version Manager](https://github.com/creationix/nvm) script is helpful if you are using a more recent version of Node than 0.10 (which is fairly likely). This is important as *TileMill 1@master will only run on Node --version 0.10.* On OS X, installation with [Homebrew](http://brew.sh/) looks like this: ``` brew install postgis gdal node go leveldb protobuf pv # follow instructions to start postgresql mkdir -p /tmp/imposm cd /tmp/imposm export GOPATH=`pwd` git clone https://github.com/omniscale/imposm3 src/imposm3 go get imposm3 go install imposm3 # bin/imposm3 is your new binary; either add $GOPATH/bin to your PATH or copy # it to /usr/local/bin (or similar) ``` ### Terrain Classic Itself - Clone this repo - Run `make link` to sym-link the project into your TileMill project directory - Run `make db/shared` to fetch and transform Natural Earth and OSM coastline data - Run `make db/CA` (or similar; see[`PLACES`](https://github.com/stamen/terrain-classic/blob/master/Makefile#L168-L178) in the `Makefile` for a list of registered extracts and expand it as desired). - Run `make` to generate the `project.mml` file. (Alternatively, make`terrain-classic-background`, `terrain-classic-lines`, or`terrain-classic-labels` to work on the variant styles) - Start TileMill by running `npm start` from the TileMill repo - Open http://localhost:20009/#/project/terrain-classic `make db/` will write to the database specified in `.env` (with a format that resembles `postgres:///terrain`, where `terrain` is the database name). If you experience trouble connecting, try adding credentials, e.g. `postgres://user:password@localhost/terrain` (it will use `$USER` with no password otherwise). Barring that, check your`pg_hba.conf` to ensure that access is configured correctly. (We primarily develop on OS X where PostgreSQL from Homebrew works out of the box.) **NOTE**: Changes to project settings (i.e. `.mml` files not `.mss` stylesheets) in TileMill will not persist the changes. To make changes, edit the relevant `.yml` file and re-run `make [variant]` to re-generate the `project.mml` that TileMill reads. To test the terrain style with a hillshade overlay, a `tessera.json` config is provided. Install tessera with `npm install tessera` and then run `npm start` in the terrain-classic directory. Open http://localhost:8080/ to view the `terrain-classic` style composited with Open Terrain hillshades. Testing with the side-by-side viewer (experimental) --------------------------------------------------- In the root folder run `npm install && npm start` which will start tessera running at [http://localhost:8080](http://localhost:8080) Then, in the `side-by-side` folder, run a simple webserver such as `python -m SimpleHTTPServer`. Then go to [http://localhost:8000](http://localhost:8000) (or whatever port the webserver is running at) to view the side-by-side viewer. FAQ --- > What's the deal with the `Makefile`? Why is it so complicated? Magic, mostly. It probably can (and should) be simplified! Consider this another, in-progress "make for data" approach (which actually uses `make`). The goal here is to provide an idempotent process for bootstrapping the project that uses as few additional dependencies as possible. `make` is the age-old solution to this problem, although it takes a more file-focused approach. Put another way, it attempts to efficiently encapsulate otherwise complicated and error-prone operations. The `Makefile` here attempts to replicate `make`'s behavior relative to rebuilding files with database tables. In other words, if a Postgres relation already exists, it will be left as-is. If it doesn't exist (has been dropped or hasn't been created), it will be created on-demand. > Why do I have to install `pgexplode`? `libpq` (which underlies PostgreSQL's command-line tools) supports a number of [environment variables](http://www.postgresql.org/docs/9.4/static/libpq-envars.html) which can be used to avoid repetition (and avoid errors). However, each component of the connection information is separate, and is more easily and concisely encoded in a URI (i.e. `DATABASE_URL`). `pgexplode` is aware of `libpq`'s environment variables and will expand `DATABASE_URL`s components (which is simpler than managing multiple values and constructing a URL for `imposm3` and other tools). ================================================ FILE: bin/imposm3 ================================================ [File too large to display: 13.3 MB] ================================================ FILE: fonts/PT-Sans-LICENSE.txt ================================================ Paratype PT Sans Free Font License Copyright © 2009 ParaType Ltd. with Reserved Names "PT Sans" and "ParaType". FONT LICENSE PERMISSION & CONDITIONS Permission is hereby granted, free of charge, to any person obtaining a copy of the font software, to use, study, copy, merge, embed, modify, redistribute, and sell modified and unmodified copies of the font software, subject to the following conditions: 1) Neither the font software nor any of its individual components, in original or modified versions, may be sold by itself. 2) Original or modified versions of the font software may be bundled, redistributed and/or sold with any software, provided that each copy contains the above copyright notice and this license. These can be included either as stand-alone text files, human-readable headers or in the appropriate machine-readable metadata fields within text or binary files as long as those fields can be easily viewed by the user. 3) No modified version of the font software may use the Reserved Name(s) or combinations of Reserved Names with other words unless explicit written permission is granted by the ParaType. This restriction only applies to the primary font name as presented to the users. 4) The name of ParaType or the author(s) of the font software shall not be used to promote, endorse or advertise any modified version, except to acknowledge the contribution(s) of ParaType and the author(s) or with explicit written permission of ParaType. 5) The font software, modified or unmodified, in part or in whole, must be distributed entirely under this license, and must not be distributed under any other license. The requirement for fonts to remain under this license does not apply to any document created using the Font Software. TERMINATION & TERRITORY This license has no limits on time and territory, but it becomes null and void if any of the above conditions are not met. DISCLAIMER THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL PARATYPE BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM OTHER DEALINGS IN THE FONT SOFTWARE. ParaType Ltd http://www.paratype.ru ================================================ FILE: fonts/unifont-LICENSE.txt ================================================ LICENSE ------- The source code for everything except the compiled fonts in this current release is licensed as follows: License for this current distribution of program source files (i.e., everything except the fonts) is released under the terms of the GNU General Public License version 2, or (at your option) a later version. See the section below for a copy of the GNU General Public License version 2. The license for the compiled fonts is covered by the above GPL terms with the GNU font embedding exception, as follows: As a special exception, if you create a document which uses this font, and embed this font or unaltered portions of this font into the document, this font does not by itself cause the resulting document to be covered by the GNU General Public License. This exception does not however invalidate any other reasons why the document might be covered by the GNU General Public License. If you modify this font, you may extend this exception to your version of the font, but you are not obligated to do so. If you do not wish to do so, delete this exception statement from your version. See "http://www.gnu.org/licenses/gpl-faq.html#FontException" for more details. GPL VERSION 2 ------------- GNU GENERAL PUBLIC LICENSE Version 2, June 1991 Copyright (C) 1989, 1991 Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundation's software and to any other program whose authors commit to using it. (Some other Free Software Foundation software is covered by the GNU Lesser General Public License instead.) You can apply it to your programs, too. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things. To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it. For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software. Also, for each author's protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors' reputations. Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all. The precise terms and conditions for copying, distribution and modification follow. GNU GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The "Program", below, refers to any such program or work, and a "work based on the Program" means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language. (Hereinafter, translation is included without limitation in the term "modification".) Each licensee is addressed as "you". Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program does. 1. You may copy and distribute verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and give any other recipients of the Program a copy of this License along with the Program. You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. 2. You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: a) You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change. b) You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License. c) If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.) These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program. In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. 3. You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following: a) Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, b) Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, c) Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.) The source code for a work means the preferred form of the work for making modifications to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. If distribution of executable or object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code. 4. You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. 5. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Program or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Program (or any work based on the Program), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Program or works based on it. 6. Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License. 7. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all. For example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program. If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances. It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system, which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. 8. If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Program under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License. 9. The Free Software Foundation may publish revised and/or new versions of the General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Program specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation. 10. If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. NO WARRANTY 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. END OF TERMS AND CONDITIONS How to Apply These Terms to Your New Programs If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms. To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. Copyright (C) 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. Also add information on how to contact you by electronic and paper mail. If the program is interactive, make it output a short notice like this when it starts in an interactive mode: Gnomovision version 69, Copyright (C) year name of author Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details. The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, the commands you use may be called something other than `show w' and `show c'; they could even be mouse-clicks or menu items--whatever suits your program. You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the program, if necessary. Here is a sample; alter the names: Yoyodyne, Inc., hereby disclaims all copyright interest in the program `Gnomovision' (which makes passes at compilers) written by James Hacker. , 1 April 1989 Ty Coon, President of Vice This General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Lesser General Public License instead of this License. ================================================ FILE: imposm3_mapping.json ================================================ { "generalized_tables": { "planet_osm_line_z10": { "source": "planet_osm_line_z11", "sql_filter": "highway in ('motorway', 'trunk', 'primary', 'secondary')", "tolerance": 76 }, "planet_osm_line_z11": { "source": "planet_osm_line_z12", "sql_filter": "highway in ('motorway', 'trunk', 'primary', 'secondary', 'tertiary')", "tolerance": 38 }, "planet_osm_line_z12": { "source": "planet_osm_line_z13", "sql_filter": "highway in ('motorway', 'motorway_link', 'trunk', 'trunk_link', 'primary', 'secondary','tertiary','residential','unclassified','road')", "tolerance": 19 }, "planet_osm_line_z13": { "source": "planet_osm_line_z14", "sql_filter": "highway in ('motorway', 'motorway_link', 'trunk', 'trunk_link', 'primary', 'primary_link', 'secondary','secondary_link', 'tertiary','residential','unclassified','road','raceway','service')", "tolerance": 9 }, "planet_osm_line_z14": { "source": "roads", "sql_filter": "highway in ('motorway', 'motorway_link', 'trunk', 'trunk_link', 'primary', 'primary_link', 'secondary','secondary_link', 'tertiary','tertiary_link','residential','unclassified','road','minor','raceway') OR railway = 'rail'", "tolerance": 4 }, "landcover_z13": { "source": "landcover", "sql_filter": "area > 100000", "tolerance": 9 }, "landcover_z10": { "source": "landcover_z13", "sql_filter": "area > 500000", "tolerance": 76 }, "urban_areas_z13": { "source": "urban_areas", "sql_filter": "area > 100000", "tolerance": 9 }, "urban_areas_z10": { "source": "urban_areas_z13", "sql_filter": "area > 500000", "tolerance": 76 }, "green_areas_z13": { "source": "green_areas", "sql_filter": "area > 75000", "tolerance": 9 }, "green_areas_z10": { "source": "green_areas_z13", "sql_filter": "area > 5000000", "tolerance": 76 }, "brown_areas_z13": { "source": "brown_areas", "sql_filter": "area > 75000", "tolerance": 9 }, "brown_areas_z10": { "source": "brown_areas_z13", "sql_filter": "area > 5000000", "tolerance": 76 }, "water_areas_z13": { "source": "water_areas", "sql_filter": "area > 25000 OR type = 'riverbank'", "tolerance": 9 }, "water_areas_z10": { "source": "water_areas_z13", "sql_filter": "area > 2500000 OR type = 'riverbank'", "tolerance": 76 }, "buildings_z13": { "source": "buildings", "sql_filter": "area > 40000", "tolerance": 9 } }, "tables": { "admin": { "fields": [ { "type": "id", "name": "osm_id", "key": null }, { "type": "geometry", "name": "geometry", "key": null }, { "type": "string", "name": "name", "key": "name" }, { "type": "mapping_value", "name": "type", "key": null }, { "type": "integer", "name": "admin_level", "key": "admin_level" } ], "type": "polygon", "mapping": { "boundary": [ "administrative" ] } }, "aeroways": { "fields":[ { "type": "id", "name": "osm_id", "key": null }, { "type": "geometry", "name": "geometry", "key": null }, { "type": "string", "name": "name", "key": "name" }, { "type": "string", "name": "type", "key": "aeroway" } ], "type":"linestring", "mapping": { "aeroway": [ "__any__" ] } }, "stations": { "fields":[ { "type": "id", "name": "osm_id", "key": null }, { "type": "geometry", "name": "geometry", "key": null }, { "type": "string", "name": "name", "key": "name" }, { "type": "string", "name": "railway", "key": "railway" }, { "type": "string", "name": "highway", "key": "highway" } ], "type":"point", "mappings":{ "stations":{ "mapping":{ "railway":[ "station" ], "highway":[ "bus_stop" ] } } } }, "mountain_peaks": { "fields": [ { "type": "id", "name": "osm_id", "key": null }, { "type": "geometry", "name": "geometry", "key": null }, { "type": "string", "name": "name", "key": "name" }, { "type":"string", "name": "height_meters", "key": "ele" }, { "type": "mapping_value", "name": "type", "key": null } ], "type":"point", "mappings": { "type": { "mapping": { "natural": [ "peak", "volcano", "saddle" ], "tourism":[ "viewpoint" ], "man_made":[ "tower", "water_tower", "monitoring_station", "survey_point", "cairn" ] } }, "height_meters": { "mapping": { "ele" : [ "__any__" ] } } } }, "buildings": { "fields": [ { "type": "id", "name": "osm_id", "key": null }, { "type": "geometry", "name": "geometry", "key": null }, { "type": "pseudoarea", "name": "area", "key": null }, { "type": "string", "name": "name", "key": "name" }, { "type": "string", "name": "type", "key": "building" } ], "type":"polygon", "mappings": { "building": { "mapping": { "building": [ "__any__" ], "waterway": [ "dam" ] } } } }, "water_areas": { "fields": [ { "type": "id", "name": "osm_id", "key": null }, { "type": "geometry", "name": "geometry", "key": null }, { "type": "pseudoarea", "name": "area", "key": null }, { "type": "string", "name": "name", "key": "name" }, { "type": "mapping_value", "name": "type", "key": null } ], "type":"polygon", "mappings": { "water_areas": { "mapping": { "natural": [ "water", "bay" ], "waterway":[ "riverbank" ], "landuse":[ "reservoir" ] } } } }, "brown_areas": { "fields": [ { "type": "id", "name": "osm_id", "key": null }, { "type": "geometry", "name": "geometry", "key": null }, { "type": "pseudoarea", "name": "area", "key": null }, { "type": "string", "name": "name", "key": "name" }, { "type": "mapping_value", "name": "type", "key": null } ], "type":"polygon", "mappings": { "brown_areas": { "mapping": { "landuse": [ "brownfield", "landfill", "quarry" ], "natural":[ "mud", "marsh", "wetland" ] } } } }, "green_areas": { "fields": [ { "type": "id", "name": "osm_id", "key": null }, { "type": "geometry", "name": "geometry", "key": null }, { "type": "pseudoarea", "name": "area", "key": null }, { "type": "string", "name": "name", "key": "name" }, { "type": "mapping_value", "name": "type", "key": null } ], "type":"polygon", "mappings": { "green_areas": { "mapping": { "leisure": [ "park", "water_park", "marina", "nature_reserve", "playground", "garden", "common", "sports_centre", "golf_course", "stadium", "track", "pitch" ], "amenity":[ "graveyard" ], "natural":[ "wood" ], "landuse":[ "cemetery", "recreation_ground", "forest", "wood" ] } } } }, "landcover": { "fields": [ { "type": "id", "name": "osm_id", "key": null }, { "type": "geometry", "name": "geometry", "key": null }, { "type": "pseudoarea", "name": "area", "key": null }, { "type": "string", "name": "name", "key": "name" }, { "type": "mapping_value", "name": "type", "key": null } ], "type":"polygon", "mappings": { "landcover": { "mapping": { "natural": [ "scrub", "grassland", "heath", "rock", "bare_rock", "beach", "sand", "scree", "fell", "glacier" ], "amenity":[ "parking" ], "landuse":[ "farmland", "grass", "meadow", "farm", "farmyard", "vineyard", "orchard" ] } } } }, "urban_areas": { "fields": [ { "type": "id", "name": "osm_id", "key": null }, { "type": "geometry", "name": "geometry", "key": null }, { "type": "pseudoarea", "name": "area", "key": null }, { "type": "string", "name": "name", "key": "name" }, { "type": "mapping_value", "name": "type", "key": null } ], "type":"polygon", "mappings": { "urban_areas": { "mapping": { "leisure": [ "playground", "sports_centre", "stadium", "track", "pitch" ], "amenity":[ "graveyard" ], "landuse":[ "cemetery", "commercial", "retail", "brownfield", "residential", "industrial" ] } } } }, "roads": { "fields": [ { "type": "id", "name": "osm_id", "key": null }, { "type": "geometry", "name": "geometry", "key": null }, { "type": "string", "name": "highway", "key": "highway" }, { "type": "string", "name": "railway", "key": "railway" }, { "type": "string", "name": "name", "key": "name" }, { "type": "boolint", "name": "tunnel", "key": "tunnel" }, { "type": "boolint", "name": "bridge", "key": "bridge" }, { "type": "direction", "name": "oneway", "key": "oneway" }, { "type": "string", "name": "ref", "key": "ref" }, { "type": "wayzorder", "name": "z_order", "key": "layer" }, { "type": "string", "name": "access", "key": "access" }, { "type": "string", "name": "service", "key": "service" }, { "type": "mapping_key", "name": "class", "key": null } ], "type": "linestring", "filters": { "exclude_tags": [ ["area", "yes"] ] }, "mappings": { "railway": { "mapping": { "railway": [ "rail", "tram", "light_rail", "subway", "narrow_gauge", "preserved", "funicular", "monorail", "disused" ] } }, "roads": { "mapping": { "man_made": [ "pier", "groyne" ], "highway": [ "motorway", "motorway_link", "trunk", "trunk_link", "primary", "primary_link", "secondary", "secondary_link", "tertiary", "tertiary_link", "road", "path", "track", "service", "footway", "bridleway", "cycleway", "steps", "pedestrian", "living_street", "unclassified", "residential", "raceway" ] } } } } } } ================================================ FILE: labels.mss ================================================ @text_font_transport: 'PT Sans Narrow Regular', 'Unifont Medium'; @text_font_shield: 'PT Sans Bold', 'Unifont Medium'; @text_font_administrative: 'PT Sans Bold', 'Unifont Medium'; @text_font_city: 'PT Sans Narrow Regular', 'Unifont Medium'; @text_font_parks: 'PT Sans Narrow Regular', 'Unifont Medium'; @text_font_italic: 'PT Sans Italic', 'Unifont Medium'; @text_font_bold_italic: 'PT Sans Bold Italic', 'Unifont Medium'; @label_color_transport: #524c4c; @label_color_shield: #fff; @label_color_shield_fed: #333; // 80 K @label_color_administrative: #2e2115; // @label_color_city: #2e2115; @text_font_size_xxsm: 12; @text_font_size_xsm: 14; @text_font_size_sm: 15; @text_font_size_medium: 17; @text_font_size_medium_plus: 18; @text_font_size_large: 20; @text_font_size_xlg: 24; @text_font_size_xxlg: 34; @text_character_spacing_sm: 0.7; @text_character_spacing_md: 1.2; @text_character_spacing_lg: 1.7; @text_character_spacing_xlg: 2.2; @text_line_spacing_normal: 0; // uses "default" line spacing for font @text_line_spacing_negative_1: -1; // decreases default slightly for small type eg: 12px @text_line_spacing_negative_2: -2; @text_line_spacing_negative_4: -4; @text_line_spacing_negative_7: -7; @text_line_spacing_negative_10: -10; @text_font_halo_radius_xsm: 1; @text_font_halo_radius_sm: 1.5; @text_font_halo_radius_md: 1.75; @text_font_halo_radius_large: 2; @label_color_halo_low: fadeout(rgba(255,255,255,0.7), 30%); @label_color_halo_high: fadeout(rgba(255,255,255,1), 10%); @label_color_administrative_halo: fadeout(#fff, 30%); @label_color_physical: #000; @label_color_physical_halo: fadeout(@color_physical,10%); @label_color_transport_halo: desaturate(#F7F7E6,50%); @label_color_airport_halo: #f7f7e6; @label_color_places_halo_low: fadeout(rgba(255,255,255, 1), 30%); @label_color_places_halo_high: fadeout(rgba(255,255,255, 1), 30%); @label_color_green_area: #374c30; @label_color_green_area_halo: #dee0be; // same as @color_physical, the land background @label_color_water: darken(@color_water,20); @label_color_water_halo: @color_water; Map { font-directory: url("fonts/"); buffer-size: 128; } #mountain_peaks_ne { [zoom>=4][comment =~'.*Highest.*'], [zoom>=4][comment =~'.*highest.*'], [zoom>=4][name =~'.*Vinson.*'], [zoom>=6][elevation>=1000], [zoom>=8][elevation>=1500], [zoom>=9][elevation>=500] { shield-name: [name] + '\n' + [elevation] + 'm'; shield-face-name: @text_font_italic; shield-size: @text_font_size_xxsm; shield-file: url('icons/triangle-18.svg'); shield-transform: scale(0.5,0.5); shield-unlock-image: true; shield-avoid-edges: true; shield-fill: @label_color_physical; shield-halo-radius: @text_font_halo_radius_md; shield-halo-fill: @label_color_halo_low; shield-min-distance: 2; shield-placement-type: simple; shield-placements: 'NW,SE,N,S,E,W,NE,SW'; shield-text-dy: 5; shield-text-dx: 5; shield-min-distance: 1000; shield-wrap-width: 80; shield-line-spacing: -2; [comment =~'.*Highest.*'], [comment =~'.*highest.*'], [name =~'.*Vinson.*'] { shield-file: url('icons/triangle-18.svg'); shield-face-name: @text_font_bold_italic; // special call out to the tallest peaks on each continent! shield-transform: scale(0.65,0.65); } [zoom>=7] { shield-halo-fill: @label_color_halo_high; } [zoom>=8] { shield-file: url('icons/triangle-18.svg'); shield-size: @text_font_size_xsm; } [zoom>=10] { shield-file: url('icons/triangle-18.svg'); shield-size: @text_font_size_sm; shield-transform: scale(0.8,0.8); shield-text-dy: 7; shield-text-dx: 7; } // replace McKinley with Denali (not the dryest solution but TileMill is being weird...) [zoom>=4][zoom<=18][name=~'.*McKinley'] { shield-name: "Denali" + '\n' + [elevation] + 'm'; shield-face-name: @text_font_bold_italic; shield-size: @text_font_size_xxsm; shield-file: url('icons/triangle-18.svg'); shield-transform: scale(0.5,0.5); shield-unlock-image: true; shield-avoid-edges: true; shield-fill: @label_color_physical; shield-halo-fill: @label_color_physical_halo; shield-halo-radius: 1; shield-min-distance: 2; shield-placement-type: simple; shield-placements: 'NW,SE,N,S,E,W,NE,SW'; shield-text-dy: 5; shield-text-dx: 5; shield-min-distance: 1000; shield-wrap-width: 30; shield-line-spacing: -2; [zoom>=8] { shield-size: @text_font_size_xsm; } [zoom>=10] { shield-size: @text_font_size_sm; shield-transform: scale(0.8,0.8); shield-text-dy: 7; shield-text-dx: 7; } } } } #minor_road_labels, #major_road_labels, { text-name: [name]; text-face-name: @text_font_transport; text-placement: line; text-label-position-tolerance: 2; text-max-char-angle-delta: 20; text-min-path-length: 30; text-fill: #444; text-spacing: 256; text-min-distance: 5; text-character-spacing: @text_character_spacing_sm; text-avoid-edges: true; text-halo-fill: @label_color_transport_halo; text-halo-radius: @text_font_halo_radius_md; [kind='major_road'] { text-size: @text_font_size_xxsm; } [zoom>=13] { text-size: @text_font_size_xxsm; [kind='major_road'] { text-size: @text_font_size_xxsm * 1.2; } } [zoom>=14] { text-min-distance: 10; text-size: @text_font_size_sm; text-character-spacing: @text_character_spacing_md; text-halo-radius: @text_font_halo_radius_large; [kind='major_road'] { text-size: @text_font_size_sm * 1.2; } } [zoom>=16]{ text-min-distance: 100; text-character-spacing: @text_character_spacing_lg; } } #highway_shields { [zoom>=11], [highway='motorway'], [highway='trunk'], [highway='primary'] { [ref_length>0][ref_length<8] { // default rectangle shield shield-fill: @label_color_shield_fed; shield-transform: scale(1.1,1.1); shield-face-name: @text_font_shield; shield-name: [ref]; shield-size: 10; shield-min-distance: 60; shield-spacing: 60; // half the width of the shield to prevent from wrapping shield-min-padding: 10; shield-file: url(shields/default-rg.svg); [priority=4] { [ref_length>6][ref_length<8] { shield-file: url(shields/default-lg.svg); } [ref_length<=4][ref_length>=3] { shield-file: url(shields/default-sm.svg); } [ref_length<3][ref_length>0] { shield-file: url(shields/default-xsm.svg); } } // hide state shields at lower zooms [zoom>=11][zoom<=12][highway='trunk'], [zoom>=11][zoom<=12][highway='primary'], [zoom>=11][zoom<=12][highway='secondary'], [zoom>=11][zoom<=12][highway='tertiary'] { shield-opacity: 0; shield-size: 0; } [ref=~'I \d+'] { shield-file: url(shields/interstate_2.svg); shield-transform: scale(0.033, 0.033); shield-fill: @label_color_shield; shield-size: 9; shield-name: "[ref].replace('I ', '')"; [zoom>=13] { shield-size: 11; shield-transform: scale(0.038, 0.038); shield-min-distance: 65; } [zoom>=15] { shield-size: 13; shield-transform: scale(0.045, 0.045); } [zoom>=17] { shield-size: 15; shield-transform: scale(0.05, 0.05); } } [ref=~'I \d{3,}'] { shield-file: url(shields/interstate_3.svg); shield-transform: scale(0.033, 0.033); shield-fill: @label_color_shield; shield-size: 9; shield-name: "[ref].replace('I ', '')"; [zoom>=13] { shield-size: 11; shield-transform: scale(0.038, 0.038); shield-min-distance: 65; } [zoom>=15] { shield-size: 13; shield-transform: scale(0.045, 0.045); } [zoom>=17] { shield-size: 13; shield-transform: scale(0.05, 0.05); } } [ref=~'US \d+'] { shield-file: url(shields/us.svg); shield-transform: scale(0.062, 0.062); shield-size: 10; shield-name: "[ref].replace('US ', '')"; shield-fill: @label_color_shield_fed; shield-text-dy: 1; shield-character-spacing: -1; [zoom>=13] { shield-size: 12; shield-transform: scale(0.075, 0.075); } [zoom>=15] { shield-size: 14; shield-transform: scale(0.088, 0.088); } [zoom>=17] { shield-size: 16; shield-transform: scale(0.091, 0.091); } } [ref=~'CA \d+'] { shield-file: url(shields/ca.svg); shield-fill: @label_color_shield; shield-transform: scale(0.052, 0.052); shield-size: 10; shield-name: "[ref].replace('CA ', '')"; shield-dy: -2.5; shield-character-spacing: -1; [zoom>=11][zoom<=12][highway='trunk'], [zoom>=11][zoom<=12][highway='primary'], [zoom>=11][zoom<=12][highway='secondary'], [zoom>=11][zoom<=12][highway='tertiary'] { shield-opacity: 0; shield-size: 0; } [zoom>=13] { shield-size: 12; shield-transform: scale(0.060, 0.060); shield-min-distance: 70; } [zoom>=14] { shield-min-distance: 80; } [zoom>=15] { shield-size: 14; shield-transform: scale(0.080, 0.080); shield-dy: -3.5; } [zoom>=17] { shield-size: 16; shield-transform: scale(0.090, 0.090); } } } } } #ne_110m_geography_marine_polys[zoom=2][scalerank=0][changed!=''], #ne_110m_geography_marine_polys[zoom=3][changed!=''], #ne_50m_geography_marine_polys[zoom=4][scalerank<4][changed!=''] { text-name: [name]; [namealt!=''] { text-name: [name] + '\n(' + [namealt] + ')'; } text-face-name: @text_font_bold_italic; text-wrap-width: 40; text-wrap-character: ' '; text-size: @text_font_size_sm; text-character-spacing: @text_character_spacing_xlg; text-align: center; text-fill: @label_color_water; text-halo-radius: @text_font_halo_radius_xsm; text-halo-fill: @label_color_water_halo; text-placement: interior; } #ne_50m_geography_marine_polys[zoom=5][scalerank<4][changed!=''], #ne_10m_geography_marine_polys[zoom>=6][zoom<=8][scalerank<7][changed!=''] { text-name: [name]; [namealt!=''] { text-name: [name] + '\n(' + [namealt] + ')'; } [name = 'Hecate Straight'] { text-name: 'Hecate Strait' + [namealt]; // Becase we know namealt is empty } [name = 'Queen Charlotte Straight'] { text-name: 'Queen Charlotte Strait' + [namealt]; // Becase we know namealt is empty } text-face-name: @text_font_bold_italic; text-wrap-width: 50; text-size: @text_font_size_medium; text-character-spacing: @text_character_spacing_lg; text-fill: @label_color_water; text-halo-radius: @text_font_halo_radius_xsm; text-halo-fill: @label_color_water_halo; text-placement: interior; text-align: center; } #water-bodies-labels-low, #water-bodies-labels-med, #water-bodies-labels-high { [zoom=9][area>1000000000], [zoom=10][area>100000000], [zoom=11][area>25000000], [zoom=12][area>5000000], [zoom=13][area>2000000], [zoom=14][area>200000], [zoom=15][area>50000], [zoom=16][area>10000], [zoom>=17] { text-name: "[name]"; text-face-name: @text_font_italic; text-placement: interior; text-max-char-angle-delta: 30; text-wrap-width: 40; text-halo-radius: @text_font_halo_radius_large; text-fill: @label_color_water; text-halo-fill: @label_color_water_halo; text-size: @text_font_size_xsm; [zoom>9][zoom<12] { text-spacing: 200; text-wrap-width: 50; } [zoom=12] { text-size: @text_font_size_xsm; text-spacing: 200; text-wrap-width: 70; } [zoom=13] { text-size: @text_font_size_xsm; text-spacing: 100; text-wrap-width: 70; } [zoom=14] { text-size: @text_font_size_xsm; text-spacing: 100; text-wrap-width: 70; } [zoom>=15] { text-size: @text_font_size_sm; text-spacing: 100; text-wrap-width: 40; } } } #green-areas-labels-low, #green-areas-labels-med, #green-areas-labels-high { [zoom=8][area>100000000], [zoom=9][area>100000000], [zoom=10][area>100000000], [zoom=11][area>5000000], [zoom=12][area>1000000], [zoom=13][area>400000], [zoom=14][area>200000], [zoom=15][area>50000], [zoom=16][area>10000], [zoom>=17] { text-name: [name]; text-face-name: @text_font_parks; text-placement: interior; text-wrap-width: 96; text-wrap-before: true; text-line-spacing: -3; text-fill: @label_color_green_area; text-size: 15; [zoom>=8] { text-halo-fill: @label_color_green_area_halo; text-halo-radius: @text_font_halo_radius_sm; } [zoom>=11] { text-fill: #586e50; text-halo-radius: @text_font_halo_radius_large; } [zoom>=15] { text-size: 20; text-line-spacing: -7; } } } #continents { text-name: [name]; text-face-name: @text_font_administrative; text-wrap-width: 32; text-size: 24; text-line-spacing: -12; text-fill: #2e2115; text-halo-radius: @text_font_halo_radius_sm; text-halo-fill: @label_color_halo_low; } #admin1-labels { // [zoom>=4][scalerank<3], [zoom>=5][scalerank<=3][admin!='United States of America'][admin!='Canada'], [zoom>=6][scalerank<=5], [zoom>=7][scalerank>=6] { text-name: [name]; text-transform: uppercase; text-face-name: @text_font_administrative; text-fill: #555; //@label_color_administrative; text-halo-fill: @label_color_halo_high; text-halo-radius: @text_font_halo_radius_md; text-halo-opacity: 0.7; text-size: @text_font_size_sm * 0.8; text-wrap-width: 40; text-placement-type: simple; text-placements: 'E,N,W,S'; text-allow-overlap: false; text-min-distance: 30; text-avoid-edges: true; text-min-padding: 5; [zoom>=5] { text-size: @text_font_size_sm; text-character-spacing: 0; text-min-distance: 30; } [zoom>=6] { text-size: @text_font_size_sm; text-halo-fill: @label_color_halo_high; text-halo-opacity: 1; text-character-spacing: 1; } [zoom>=7] { text-size: @text_font_size_medium; text-character-spacing: 2; } } } #admin1-labels-50m-z4 { text-face-name: @text_font_administrative; text-wrap-width: 80; text-fill: @label_color_administrative; text-halo-radius: @text_font_halo_radius_sm; text-halo-fill: @label_color_halo_low; text-name: "[label_z4]"; text-size: @text_font_size_xsm; text-character-spacing: 1; } #admin1-labels-50m-z5 { text-face-name: @text_font_administrative; text-wrap-width: 80; text-fill: @label_color_administrative; text-halo-radius: @text_font_halo_radius_md; text-halo-fill: @label_color_halo_high; // text-halo-comp-op: overlay; text-halo-rasterizer: fast; text-name: "[label_z5]"; text-size: @text_font_size_sm; text-character-spacing: 1; } // #admin1-labels-50m-z6 { // text-face-name: @text_font_administrative; // text-wrap-width: 80; // text-fill: @label_color_administrative; // text-halo-radius: @text_font_halo_radius_sm; // text-halo-fill: @label_color_halo_low; // text-name: "[label_z6]"; // text-size: @text_font_size_medium; // text-character-spacing: 2; // } // #admin1-labels-50m-z7 { // text-face-name: @text_font_administrative; // text-wrap-width: 80; // text-fill: @label_color_administrative; // text-halo-radius: @text_font_halo_radius_sm; // text-halo-fill: @label_color_halo_low; // text-name: "[label_z7]"; // text-size: @text_font_size_large; // text-character-spacing: 3; // } /* Admin 0 labels */ #admin0-labels-z3[longfrom>3] { text-name: "[shortname]"; text-face-name: @text_font_administrative; text-transform: uppercase; text-wrap-width: 80; text-character-spacing: @text_character_spacing_sm; text-size: @text_font_size_medium_plus; text-halo-radius: @text_font_halo_radius_sm; text-halo-fill: @label_color_halo_low; text-fill: @label_color_administrative; text-min-distance: 5; } #admin0-labels-z3[longfrom<=3] { text-name: "[name]"; text-face-name: @text_font_administrative; text-transform: uppercase; text-size: @text_font_size_medium_plus; text-line-spacing: -8; text-wrap-width: 100; text-character-spacing: @text_character_spacing_sm; text-halo-radius: @text_font_halo_radius_sm; text-halo-fill: @label_color_halo_low; text-fill: @label_color_administrative; } #admin0-labels-z4 { text-name: [name]; text-face-name: @text_font_administrative; text-transform: uppercase; text-wrap-width: 80; text-character-spacing: @text_character_spacing_lg; text-size: @text_font_size_large; text-min-distance: 15; text-halo-radius: @text_font_halo_radius_sm; text-halo-fill: @label_color_halo_low; text-fill: @label_color_administrative; } #admin0-labels-z5 { text-name: [name]; text-face-name: @text_font_administrative; text-transform: uppercase; text-wrap-width: 80; text-character-spacing: @text_character_spacing_xlg; text-size: @text_font_size_xlg; text-halo-radius: @text_font_halo_radius_sm; text-halo-fill: @label_color_halo_low; text-fill: @label_color_administrative; } #admin0-labels-z6 { text-name: [name]; text-face-name: @text_font_administrative; text-transform: uppercase; text-wrap-width: 80; text-character-spacing: @text_character_spacing_xlg; text-size: @text_font_size_xxlg; text-halo-radius: @text_font_halo_radius_sm; text-halo-fill: @label_color_halo_low; text-fill: @label_color_administrative; } /* city labels - using hwy shields */ #aries-places-labels { [zoom=4][scalerank<5], [zoom=5][scalerank<6], [zoom=6][scalerank<7], [zoom=7][scalerank<8], [zoom=8][scalerank<9], [zoom=9][scalerank<9], [zoom=9][scalerank=9][population>=10000], [zoom=10][scalerank<10], [zoom=10][scalerank=10][population>=10000]{ shield-file: url(shields/circle-12.svg); shield-size: @text_font_size_xxsm; shield-line-spacing: @text_line_spacing_negative_2; shield-fill: @label_color_city; shield-halo-fill: @label_color_halo_high; shield-halo-radius: @text_font_halo_radius_large; shield-halo-opacity: 0.7; shield-unlock-image: true; shield-avoid-edges: true; shield-transform: scale(0.5, 0.5); shield-face-name: @text_font_city; shield-name: [name]; shield-min-distance: 2; shield-placement-type: simple; shield-placements: 'NE,SW,NW,SE,E,W'; shield-text-dy: 3; shield-text-dx: 3; shield-min-distance: 40; shield-wrap-width: 30; shield-line-spacing: -7; [zoom>=5]{ shield-size: @text_font_size_medium; [population>700000] { shield-size: @text_font_size_medium * 1.2; shield-line-spacing: @text_line_spacing_negative_7; shield-text-dy: 5; shield-text-dx: 5; } } [zoom>=6] { shield-halo-radius: @text_font_halo_radius_md; shield-halo-fill: @label_color_halo_high; shield-halo-opacity: 1; } [zoom>=8] { shield-line-spacing: @text_line_spacing_negative_4; shield-transform: scale(0.75, 0.75); shield-text-dy: 5; shield-text-dx: 5; } [zoom>=10]{ shield-size: @text_font_size_medium_plus; shield-halo-radius: @text_font_halo_radius_large; shield-halo-fill: @label_color_halo_high; shield-transform: scale(0.85, 0.85); shield-text-dy: 5; shield-text-dx: 5; [population>100000] { shield-size: @text_font_size_medium_plus * 1.2; shield-transform: scale(1, 1); shield-text-dy: 7; shield-text-dx: 7; } [population>700000] { shield-size: @text_font_size_medium_plus * 1.4; shield-line-spacing: @text_line_spacing_negative_10; } } } // Switch to text symbolizer instead of shield [zoom>=11]{ text-name: [name]; text-face-name: @text_font_city; text-size: @text_font_size_medium_plus; text-fill: @label_color_city; text-halo-fill: @label_color_halo_high; text-halo-radius: @text_font_halo_radius_large; text-avoid-edges: true; text-min-distance: 3; text-wrap-width: 20; text-line-spacing: -5; //text-placement-type: simple; //text-placements: 'NE,SW,NW,SE,E,W,N,S'; [zoom>=11] { [population>100000] { text-size: @text_font_size_medium_plus * 1.2; } [population>700000] { text-size: @text_font_size_medium_plus; //@text_font_size_medium_plus * 1.2; } [population>7000000] { text-size: @text_font_size_medium_plus * 1.4; } } [zoom>=12] { text-size: @text_font_size_large; [population>100000] { text-size: @text_font_size_large * 1.2; } [population>700000] { text-size: @text_font_size_large * 1.2; } [population>7000000] { text-size: @text_font_size_large * 1.3; } } } } #airports { [zoom>=10] { text-name: [abbrev]; text-face-name: @text_font_transport; text-fill: #444; text-size: @text_font_size_medium_plus; text-halo-fill: @label_color_airport_halo; text-halo-radius: @text_font_halo_radius_large; text-wrap-width: 128; text-dy: 14; } [zoom>=13] { text-name: [name]; } [zoom=14][natlscale>.04], [zoom=15][natlscale>.02], [zoom>=16][natlscale>.01] { text-dy: 20; } [zoom=8][natlscale>2.3][type='major'], [zoom=9][natlscale>1.2][type='major'], [zoom=10][natlscale>0.57][type='major'], [zoom=11][natlscale>0.29][type='major'], [zoom=12][natlscale>0.29][type='major'], [zoom=13][natlscale>0.29][type='major'] { point-file: url('icons/airport_major_l.png'); } [zoom=14][natlscale>.29][type='major'], [zoom=15][natlscale>.29][type='major'], [zoom>=16][natlscale>.29][type='major'] { point-file: url('icons/airport_major_xl.png'); } [zoom=8][natlscale>2.3][type='small'], [zoom=9][natlscale>1.2][type='small'], [zoom=10][natlscale>.57][type='small'], [zoom=11][natlscale>.29][type='small'], [zoom=12][natlscale>.29][type='small'], [zoom=13][natlscale>.29][type='small'] { point-file: url('icons/airport_small_l.png'); } [zoom=14][natlscale>.29][type='small'], [zoom=15][natlscale>.29][type='small'], [zoom>=16][natlscale>.29][type='small'] { point-file: url('icons/airport_small_xl.png'); } [zoom=8][natlscale>2.3][type='military'], [zoom=9][natlscale>1.2][type='military'], [zoom=10][natlscale>.57][type='military'], [zoom=11][natlscale>.29][type='military'], [zoom=12][natlscale>.29][type='military'], [zoom=13][natlscale>.29][type='military'] { point-file: url('icons/airport_military_l.png'); } [zoom=14][natlscale>.29][type='military'], [zoom=15][natlscale>.29][type='military'], [zoom>=16][natlscale>.29][type='military'] { point-file: url('icons/airport_military_xl.png'); } [zoom=8][natlscale>2.3][type='spaceport'], [zoom=9][natlscale>1.2][type='spaceport'], [zoom=10][natlscale>.57][type='spaceport'], [zoom=11][natlscale>.29][type='spaceport'], [zoom=12][natlscale>.29][type='spaceport'], [zoom=13][natlscale>.29][type='spaceport'] { point-file: url('icons/intergalactic_l.png'); } [zoom=14][natlscale>.29][type='spaceport'], [zoom=15][natlscale>.29][type='spaceport'], [zoom>=16][natlscale>.29][type='spaceport'] { point-file: url('icons/intergalactic_xl.png'); } } ================================================ FILE: landcover/LCType_z9-urban-only.vrt ================================================ PROJCS["WGS 84 / Pseudo-Mercator",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0],UNIT["degree",0.0174532925199433],AUTHORITY["EPSG","4326"]],PROJECTION["Mercator_1SP"],PARAMETER["central_meridian",0],PARAMETER["scale_factor",1],PARAMETER["false_easting",0],PARAMETER["false_northing",0],UNIT["metre",1,AUTHORITY["EPSG","9001"]],EXTENSION["PROJ4","+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs"],AUTHORITY["EPSG","3857"]] -2.0037508342566229e+07, 3.0574697872593975e+02, 0.0000000000000000e+00, 1.4908873541090125e+08, 0.0000000000000000e+00, -1.3395686191437126e+03 Palette LCType_z9.tif 1 ================================================ FILE: landcover/LCType_z9.vrt ================================================ PROJCS["WGS 84 / Pseudo-Mercator",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0],UNIT["degree",0.0174532925199433],AUTHORITY["EPSG","4326"]],PROJECTION["Mercator_1SP"],PARAMETER["central_meridian",0],PARAMETER["scale_factor",1],PARAMETER["false_easting",0],PARAMETER["false_northing",0],UNIT["metre",1,AUTHORITY["EPSG","9001"]],EXTENSION["PROJ4","+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs"],AUTHORITY["EPSG","3857"]] -2.0037508342566229e+07, 3.0574697872593975e+02, 0.0000000000000000e+00, 1.4908873541090125e+08, 0.0000000000000000e+00, -1.3395686191437126e+03 Palette LCType_z9.tif 1 ================================================ FILE: landcover/LCType_z9_s3-urban-only.vrt ================================================ PROJCS["WGS 84 / Pseudo-Mercator",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0],UNIT["degree",0.0174532925199433],AUTHORITY["EPSG","4326"]],PROJECTION["Mercator_1SP"],PARAMETER["central_meridian",0],PARAMETER["scale_factor",1],PARAMETER["false_easting",0],PARAMETER["false_northing",0],UNIT["metre",1,AUTHORITY["EPSG","9001"]],EXTENSION["PROJ4","+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs"],AUTHORITY["EPSG","3857"]] -2.0037508342566229e+07, 3.0574697872593975e+02, 0.0000000000000000e+00, 1.4908873541090125e+08, 0.0000000000000000e+00, -1.3395686191437126e+03 Palette /vsicurl/http://s3.amazonaws.com/maps.stamen.com/data/terrain/LCType_z9.tif 1 ================================================ FILE: landcover/LCType_z9_s3.vrt ================================================ PROJCS["WGS 84 / Pseudo-Mercator",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0],UNIT["degree",0.0174532925199433],AUTHORITY["EPSG","4326"]],PROJECTION["Mercator_1SP"],PARAMETER["central_meridian",0],PARAMETER["scale_factor",1],PARAMETER["false_easting",0],PARAMETER["false_northing",0],UNIT["metre",1,AUTHORITY["EPSG","9001"]],EXTENSION["PROJ4","+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs"],AUTHORITY["EPSG","3857"]] -2.0037508342566229e+07, 3.0574697872593975e+02, 0.0000000000000000e+00, 1.4908873541090125e+08, 0.0000000000000000e+00, -1.3395686191437126e+03 Palette /vsicurl/http://s3.amazonaws.com/maps.stamen.com/data/terrain/LCType_z9.tif 1 ================================================ FILE: landcover/LC_500m_MODIS-to-rgb.vrt ================================================ GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0],UNIT["degree",0.0174532925199433],AUTHORITY["EPSG","4326"]] -1.7999999999799661e+02, 4.1666666666667187e-03, 0.0000000000000000e+00, 8.9999999991917704e+01, 0.0000000000000000e+00, -4.1666666666667187e-03 Palette LCType.tif 1 ================================================ FILE: landcover/LC_500m_MODIS-urban-only.vrt ================================================ GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0],UNIT["degree",0.0174532925199433],AUTHORITY["EPSG","4326"]] -1.7999999999799661e+02, 4.1666666666667187e-03, 0.0000000000000000e+00, 8.9999999991917704e+01, 0.0000000000000000e+00, -4.1666666666667187e-03 Palette LCType.tif 1 ================================================ FILE: landcover/LC_5min_global_2012-to-rgb.vrt ================================================ GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0],UNIT["degree",0.0174532925199433],AUTHORITY["EPSG","4326"]] -1.8000000000000000e+02, 8.3333333333333329e-02, 0.0000000000000000e+00, 8.4000000000000000e+01, 0.0000000000000000e+00, -8.3333333333333329e-02 Palette LC_5min_global_2012.tif 1 ================================================ FILE: landcover/landcover-1km-to-merc.vrt ================================================ North American Land Cover Characteristics USGS DRG production software 2002:12:09 09:24:29 National Atlas of the United States public domain raw data 254 254 2 (pixels/inch) Area Red landcover-1km-rgb.tif 1 Green landcover-1km-rgb.tif 2 Blue landcover-1km-rgb.tif 3 ================================================ FILE: landcover/landcover-1km-to-rgb.vrt ================================================ PROJCS["Lambert Azimuthal Equal Area projection with arbitrary plane grid; projection center 100.0 degrees W, 45.0 degrees N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0],UNIT["degree",0.0174532925199433],AUTHORITY["EPSG","4326"]],PROJECTION["Lambert_Azimuthal_Equal_Area"],PARAMETER["latitude_of_center",45],PARAMETER["longitude_of_center",-100],PARAMETER["false_easting",0],PARAMETER["false_northing",0],UNIT["metre",1,AUTHORITY["EPSG","9001"]]] -5.7606280000000000e+06, 1.0010420000000000e+03, 0.0000000000000000e+00, 4.4883310000000000e+06, 0.0000000000000000e+00, -1.0010420000000000e+03 North American Land Cover Characteristics USGS DRG production software 2002:12:09 09:24:29 National Atlas of the United States public domain raw data 254 254 2 (pixels/inch) Area Palette landcover-1km.tif 1 ================================================ FILE: landcover/landcover-palette.md ================================================ | Classification | Red | Green | Blue | |-----------------|-----|-----|----| | Evergreen Forest | 133 | 180 | 127 | | Other Forest | 149 | 188 | 133 | | Grassland | 236 | 234 | 191 | | Shrubland | 180 | 215 | 171 | | Savanna | 222 | 224 | 190 | | Wetland | 175 | 214 | 195 | | Cropland | 228 | 229 | 185 | | Cropland & Nat. Veg. | 209 | 226 | 172 | | Barren | 240 | 255 | 255 | | Urban | 237 | 237 | 237 | | Snow and Ice | 244 | 255 | 255 | ================================================ FILE: map.mss ================================================ @color_physical: #dee0be; @color_physical_bright: #fff; @color_urban: #EDEDED; // 7% k @color_water: #99b3cc; @color_administrative_lowzoom: #000; @color_administrative_dark: #000; @color_administrative_bright: #fff; @color_administrative_medium_low: #000; @color_administrative_medium_high: #000; @color_administrative_medium_high2: #000; @color_transport: #999; // 40% K @color_transport_casing_z10: #ddd; @color_transport_casing: #fff; @color_transport_inline: #fff; @color_transport_tunnel: #ccc; // 20% K @color_transport_hwy: #737373; // 55% K @color_transport_minor: #aaa; @color_transport_rail: #aaa; // 33% K @color_transport_path: #666; // 60% K @color_building: #ccc; @color_building_outline: darken(@color_building,20); @color_building_outline_special: #00aeef; @color_airport_runways: #c8cebe; // hsl(82,8,81) @color_airport_runways_detail: darken(@color_airport_runways,20); @color_airport_area: lighten(@color_airport_runways,10); @color_green_areas: darken(#c0d3b5,18); Map { background-color: @color_water; font-directory: url("fonts/"); buffer-size: 8; } /** * "shore" is a general class for layers with continents, coastlines, lakes, * and other kinds of meeting points between water and land. */ .shore { line-color: @color_physical; /* lighten background color, as we decrease landcover opacity */ [zoom>=12] { polygon-fill: lighten(@color_physical,20); } [zoom>=14] { polygon-fill: lighten(@color_physical,40); } line-cap: round; line-join: round; line-width: 0; } #ne_10m_rivers_lake_centerlines_scale_rank { [zoom=4][scalerank<4] { line-color: @color_water; line-width: 0.5; [strokeweig>1] { line-width: 1; } [strokeweig>2] { line-width: 2; } } [zoom=5][scalerank<5] { line-color: @color_water; line-width: 0.5; [strokeweig>1] { line-width: 1; } [strokeweig>2] { line-width: 2; } } [zoom=6][scalerank<6] { line-color: @color_water; line-width: 0.5; [strokeweig>1] { line-width: 1; } [strokeweig>2] { line-width: 2; } } [zoom=7][scalerank<7] { line-color: @color_water; line-width: 1; [strokeweig>1] { line-width: 1.5; } [strokeweig>2] { line-width: 2.5; } } [zoom>=8] { line-width: 1; line-color: @color_water; [strokeweig>1] { line-width: 2; } [strokeweig>2] { line-width: 3; } } } #water, #ne_50m_ocean, #ne_10m_lakes, #ne_50m_lakes { line-color: @color_water; line-width: 0; polygon-fill: @color_water; [zoom>=5]{ line-width: 0.5; } } .country-boundary[scalerank<6], .country-boundary-10m[scalerank<6] { line-color: @color_administrative_dark; line-opacity: 0.2; line-width: 2; line-dasharray: 7,3; ::glow { line-color: @color_administrative_dark; line-opacity: 0.08; line-width: 4; line-dasharray: 7,3; } } #admin1-lines-10m, #admin0-map-units-10m { [zoom>=4][adm0_a3='CAN'], [zoom>=4][adm0_a3='USA'], [zoom>=4][adm0_a3='AUS'], [zoom>=5][scalerank<=2], [zoom>=5][featurecla='Map unit boundary'][adm0_a3='GBR'], [zoom>=6][scalerank<=4], [zoom>=6][featurecla='Map unit boundary'][adm0_a3='GBR'], [zoom>=7][scalerank<=6] { line-color: @color_administrative_dark; line-opacity: 0.15; line-width: 1.5; line-dasharray: 7,3; ::glow { line-color: @color_administrative_dark; line-opacity: 0.05; line-width: 3; line-dasharray: 7,3; } } [zoom>=7][scalerank<=5] { line-width: 1; line-color: @color_administrative_medium_low; line-dasharray: 1,5; line-cap: round; } [zoom>=8][scalerank<=6] { line-width: 1.2; line-color: @color_administrative_medium_high; line-dasharray: 1,5; line-cap: round; } [zoom>=9][scalerank<=8] { line-width: 1.2; line-color: @color_administrative_medium_high2; line-dasharray: 1,5; line-cap: round; } } #lakes-50m[zoom<3][scalerank<1], #lakes-50m[zoom=3][scalerank<2], #lakes-50m[zoom=4][scalerank<3], #lakes-50m[zoom=5][scalerank<5], #lakes-50m[zoom=6], #lakes-10m, { line-width: 1; polygon-fill: @color_physical; } #ne-roads[zoom=7][scalerank<=4], #ne-roads[zoom>=8][scalerank<=8] { ::casing { line-color: @color_transport_casing; line-opacity: 0.5; line-width: 1.5; [zoom=8][scalerank<=6] { line-width: 3; } } line-color: @color_transport; line-width: 0; [zoom=8][scalerank<=6] { line-width: 1; } } /** * Ocean, lake, and river polygons */ #water-bodies-low[zoom=8][area>50000000], #water-bodies-low[zoom=9][area>10000000], #water-bodies-low[zoom=10][area>2500000], #water-bodies-med[zoom=11][area> 800000], #water-bodies-med[zoom=12][area> 500000], #water-bodies-med[zoom=13][area> 25000], #water-bodies-high[zoom=14][area> 10000], #water-bodies-high[zoom>=15] { polygon-fill: @color_water; } /** * Water bodies that are parts of rivers * should never be filtered */ #water-bodies-low[type='riverbank'], #water-bodies-med[type='riverbank'], #water-bodies-high[type='riverbank'] { polygon-fill: @color_water; } #nullisland { polygon-fill: @color_physical; } /** * Use OSM administrative boundaries at zooms >= 10 * Filter out really small admin areas for features like * Indian Reservations at higher zooms **/ #admin1-lines-osm{ [zoom>=10][area_km2>1000], [zoom>=12][area_km2>500], [zoom>=14][area_km2>0]{ line-width: 2.0; opacity: 0.2; // apply to layer, not line. Helps overlaps. line-color: @color_administrative_medium_high2; line-dasharray: 1,5; line-cap: round; ::glow { line-color: @color_administrative_dark; opacity: 0.08; line-width: 4; line-dasharray: 1,5; } } } /** * Zoom 13 buildings. * Already filtered by size upon import. */ #buildings-med[type!='no'] { polygon-fill: @color_building; line-width: 0.5; line-color: @color_building_outline; } /** * Zoom 14+ buildings. * Includes all buildings. */ #buildings-high[type!='no'] { [zoom=14] { [area>=5000] { polygon-fill: @color_building; line-width: 0.5; line-color: @color_building_outline; } } /** * This is for outlines and no stripe. Catches small buildings. * Larger buildings will be overridden with stripes below. */ [zoom>=15][area>=2000], [zoom>=16] { polygon-fill: @color_building; line-width: 0.5; line-color: @color_building_outline; } [zoom=15][area>=3000], [zoom=16][area>=2000], [zoom=17][area>=1000], [zoom>=18], { polygon-fill: @color_building; line-width: 0.5; line-color: @color_building_outline; } // Stamen HQ fancy candycane striping [zoom>=18] { [osm_id=260351411], [osm_id=224030635], // Seth's house [osm_id=248153467], // Sean's house [osm_id=291796473], // Stamen South { polygon-fill: @color_building; line-width: 1.5; line-color: @color_building_outline_special; } } } #green-areas-low[zoom=10][area>5000000], #green-areas-med[zoom=11][area>1000000], #green-areas-med[zoom=12][area> 500000], #green-areas-med[zoom=12][area> 200000], #green-areas-med[zoom=13][area> 75000], #green-areas-high[zoom=13][area> 10000], #green-areas-high[zoom>=13], { polygon-fill: @color_green_areas; polygon-gamma: 0.3; opacity: 0.7; image-filters-inflate: true; image-filters: agg-stack-blur(5,5); [type='nature_reserve'] { polygon-fill: @color_green_areas; /*polygon-opacity: 0.5;*/ opacity: 0.5; } #green-areas-high[zoom>=14] { /*image-filters: agg-stack-blur(15,15);*/ } } #brown-areas-low[zoom=10][area>5000000], #brown-areas-med[zoom=11][area>1000000], #brown-areas-med[zoom=12][area> 500000], #brown-areas-med[zoom=12][area> 200000], #brown-areas-med[zoom=13][area> 75000], #brown-areas-high[zoom=13][area> 10000], #brown-areas-high[zoom>13], #brown-areas-high[zoom>=13], { // DO NOT match wetlands color in landcover .vrt // This includes a mix of brownfields, mud, and wetlands. Needs to be neutral brownish polygon-fill: #b8b894; polygon-opacity: 0.6; image-filters-inflate: true; image-filters: agg-stack-blur(5,5); [type='wetland'] { polygon-fill: darken(#a0b8c8,10%); // more blueish polygon-opacity: 0.4; } } .landcover[type='parking'] { polygon-fill: #ddd; polygon-opacity: 0.5; } .landcover[type='scrub'], .landcover[type='grassland'], .landcover[type='heath'], .landcover[type='grass'], .landcover[type='meadow'] { polygon-fill: #d4daaa; // Greener than grasslands color in landcover .vrt } .landcover[type='beach'], .landcover[type='sand'] { polygon-fill: #fff0b9; polygon-opacity: 0.7; } .landcover[type='rock'], .landcover[type='bare_rock'], .landcover[type='scree'], .landcover[type='fell'] { polygon-fill: rgb(240,240,210); // Match bare rock color in landcover .vrt } .landcover[type='glacier'] { polygon-fill: rgb(244,255,255); // Match snow and ice color in landcover .vrt } .landcover[type='orchard'] { polygon-fill: rgb(209,226,172); // Match cropand/natural mosiac color in landcover .vrt } .landcover[type='farmland'], .landcover[type='farmyard'], .landcover[type='farm'], .landcover[type='orchard'], .landcover[type='vineyard'] { polygon-fill: rgb(228,229,195); // Match croplands color in landcover .vrt } /** * airport area fills **/ #aerodromes { [type='aerodrome'] { [zoom>=10] { polygon-fill: @color_airport_area; line-width: 0; } } } /** * airport runways and taxiways **/ #aeroways { line-color: @color_airport_runways; line-cap: square; line-join: miter; // make sure airport fills don't render above features like roads [type='aerodrome'] { [zoom>=10] { polygon-opacity: 0; line-width: 0; } } [type='runway'] { [zoom=10] { line-width: 1; } [zoom=11] { line-width: 1.5; } [zoom=12] { line-width: 2; } [zoom=13] { line-width: 4; } [zoom=14] { line-width: 8; } [zoom=15] { line-width: 16; } [zoom=16] { line-width: 32; } [zoom=17] { line-width: 64; } [zoom>=18] { line-width: 128; } } [type='taxiway'] { [zoom=13] { line-width: 1; } [zoom=14] { line-width: 2; } [zoom=15] { line-width: 4; } [zoom=16] { line-width: 8; } [zoom=17] { line-width: 16; } [zoom>=18] { line-width: 32; } } } #tunnels, #roads, #roads_med, #highways_med, #bridges { ::casing, ::outline, { line-cap: butt; line-width: 0; line-color: @color_transport_casing; } line-join: round; line-cap: round; line-width: 1; line-color: @color_transport; } #tunnels { [zoom>=14] { ::outline { line-opacity: 0.7; line-color: @color_transport_tunnel; } line-opacity: 0.5; line-width: 4; } } #tunnels[kind='highway'] { [zoom>=15] { ::outline { line-width: 5.5; } line-width: 4; } [zoom>=16] { ::outline { line-width: 7; line-opacity: 0.4; } line-opacity: 0.7; line-color: @color_transport_tunnel; [is_link='yes'] { ::outline { line-color: @color_transport_casing; } } } [zoom>=17] { ::outline { line-width: 18; } line-width: 12; [is_link='yes'] { ::outline { line-width: 9; } } } [zoom>=18] { ::outline { line-width: 22; line-color: @color_transport; } line-width: 18; line-color: @color_transport_inline; } [zoom>=19] { ::outline { line-width: 30; } line-width: 26; [is_link='yes'] { ::outline { line-width: 13; } } } } #tunnels[kind='major_road'] { [zoom>=15] { ::outline { line-width: 5; line-opacity: 0.7; line-color: @color_transport_tunnel; } line-width: 3; line-opacity: 0.5; } [zoom>=16] { ::outline { line-width: 7; line-opacity: 0.4; } line-opacity: 0.7; line-color: @color_transport_tunnel; [is_link='yes'] { ::outline { line-color: @color_transport_casing; } } } [zoom>=17] { ::outline { line-width: 18; } line-width: 12; [is_link='yes'] { ::outline { line-width: 9; } } } [zoom>=18] { ::outline { line-width: 22; } line-width: 18; } [zoom>=19] { ::outline { line-width: 30; } line-width: 26; [is_link='yes'] { ::outline { line-width: 13; } } } } #tunnels[kind='minor_road'] { [zoom>=15] { ::outline { line-opacity: 0.7; line-color: @color_transport_tunnel; } line-color: @color_transport_minor; line-width: 1.5; line-opacity: 0.5; } [zoom>=16] { ::outline { line-width: 7; } line-width: 4; line-color: @color_transport; } [zoom>=17] { ::outline { line-width: 9; } line-width: 7; } [zoom>=18] { ::outline { line-width: 17; line-color: @color_transport; } line-width: 13; line-color: @color_transport_casing; } [zoom>=19] { ::outline { line-width: 20; } line-width: 16; } } #bridges[kind='highway'] { [zoom>=13] { ::outline { line-width: 8; } line-width: 4; line-color: @color_transport_hwy; [is_link='yes'] { ::outline { line-width: 0; } line-width: 1; line-color: @color_transport_hwy; } } [zoom>=14] { ::outline { line-width: 8; } line-width: 4; [is_link='yes'] { ::outline { line-width: 4; } line-width: 2.5; } } [zoom>=15] { ::outline { line-width: 11; } line-width: 6; [is_link='yes'] { ::outline { line-width: 5.5; } line-width: 2.5; } } [zoom>=16] { ::outline { line-width: 14; } line-width: 9; [is_link='yes'] { ::outline { line-width: 7; } line-width: 2.5; } } [zoom>=17] { ::outline { line-width: 20; } line-width: 15; [is_link='yes'] { ::outline { line-width: 9; } line-width: 5; } } [zoom>=18] { ::outline { line-width: 44; line-color: @color_transport; } line-width: 28; line-color: @color_transport_inline; [is_link='yes'] { ::outline { line-width: 22; } line-width: 18; } } [zoom>=19] { ::outline { line-width: 51; } line-width: 35; [is_link='yes'] { ::outline { line-width: 21; } line-width: 16; } } } #bridges[kind='major_road'] { line-color: @color_transport; [zoom>=14] { ::outline { line-width: 5; } line-width: 1.9; } [zoom>=15] { ::outline { line-width: 8.5; } line-width: 5.5; [is_link='yes'] { ::outline { line-width: 5.5; } line-width: 2.5; } } [zoom>=16] { ::outline { line-width: 11; } line-width: 7; [is_link='yes'] { ::outline { line-width: 7; } line-width: 2.5; } } [zoom>=17] { ::outline { line-width: 18; } line-width: 12; [is_link='yes'] { ::outline { line-width: 8; } line-width: 4; } } [zoom>=18] { ::outline { line-width: 24; line-color: @color_transport; } line-width: 18; line-color: @color_transport_inline; [is_link='yes'] { ::outline { line-width: 14; } line-width: 9; } } [zoom>=19] { ::outline { line-width: 32; } line-width: 26; [is_link='yes'] { ::outline { line-width: 18; } line-width: 13; } } } #roads, #roads_med, #highways_med { ::casing, ::outline, { line-cap: butt; line-width: 0; line-color: @color_transport_casing; } line-join: round; line-cap: round; line-width: 0; line-color: @color_transport; [is_link='yes'] { [zoom>=16] { ::casing { line-width: 8; } line-width: 4; } } } #roads[kind='highway'], #highways_med[kind='highway'] { [zoom>=9] { ::outline { line-width: 3; line-color: @color_transport_casing_z10; } line-width: 1.5; } [zoom>=10] { ::outline { line-width: 5; } line-width: 2; } [zoom>=11] { ::outline { line-width: 5; line-color: @color_transport_casing; } line-width: 3; line-color: @color_transport_hwy; } [zoom>=12] { ::outline { line-width: 5; } line-width: 3; [is_link='yes'] { ::outline { line-width: 0; } line-width: 0.5; } } [zoom>=13] { ::outline { line-width: 8; } line-width: 4; [is_link='yes'] { ::outline { line-width: 3; } line-width: 1; } } [zoom>=14] { ::outline { line-width: 9; } line-width: 4; [is_link='yes'] { ::outline { line-width: 4; } line-width: 2.5; } } [zoom>=15] { ::casing { line-width: 11; } line-width: 6; [is_link='yes'] { ::casing { line-width: 6.5; } line-width: 2.25; } } [zoom>=16] { ::casing { line-width: 13; } line-width: 7.5; [is_link='yes'] { ::casing { line-width: 7; } line-width: 2.5; } } [zoom>=17] { ::casing { line-width: 24; } line-width: 15; [is_link='yes'] { ::casing { line-width: 9; } line-width: 5; } } [zoom>=18] { ::casing { line-width: 39; } line-width: 28; [is_link='yes'] { ::casing { line-width: 14; } line-width: 10; } } // [zoom>=19] { // ::casing { // line-width: 49; // } // line-width: 35; // [is_link='yes'] { // ::casing { // line-width: 20; // } // line-width: 16; // } // } } #roads[kind='major_road'], #roads_med[kind='major_road'] { [zoom<=12] { line-color: @color_transport; } [zoom>=9] { line-width: 0.15; } [zoom>=10] { line-width: 0.5; } [zoom>=11] { ::outline { line-width: 1.25; line-color: @color_transport_casing; } line-width: 0.7; } [zoom>=12] { ::outline { line-width: 4; } line-width: 2; [is_link='yes'] { ::outline { line-width: 0; } line-width: 1; } } [zoom>=13] { ::outline { line-width: 5; } line-width: 3; } [zoom>=14] { ::outline { line-width: 6; } line-width: 4; [is_link='yes'] { ::outline { line-width: 5; } line-width: 2; } } [zoom>=15] { ::casing { line-width: 8; } line-width: 5; [is_link='yes'] { ::casing { line-width: 5.5; } line-width: 2.5; } } [zoom>=16] { ::casing { line-width: 0;//10; } line-width: 7; [is_link='yes'] { ::casing { line-width: 0; //6; } line-width: 4; } } [zoom>=17] { ::outline { // line-width: 20; } line-width: 14; [is_link='yes'] { ::casing{ // line-width: 14; } line-width: 7; } } [zoom>=18] { ::outline { // line-width: 25; } line-width: 17; [is_link='yes'] { ::casing { // line-width: 19; } line-width: 10; } } // [zoom>=19] { // ::casing { // line-width: 30; // } // line-width: 26; // [is_link='yes'] { // ::casing { // line-width: 17; // } // line-width: 13; // } // } } #roads[kind='minor_road'], #roads_med[kind='minor_road'] { line-color: @color_transport_minor; [zoom>=10] { line-width: 1; } [zoom>=11][highway='trunk'], [zoom>=11][highway='primary'], [zoom>=11][highway='secondary'] { ::casing{ line-width: 1.9; line-color: @color_transport_casing; } line-width: 1.5; } [zoom>=12][highway='trunk'], [zoom>=12][highway='primary'], [zoom>=12][highway='secondary'], [zoom>=12][highway='tertiary'] { ::casing{ line-width: 1.9; line-color: @color_transport_casing; } line-width: 1.5; } [zoom>=13] { line-width: 1.5; line-color: @color_transport; } [zoom>=14] { ::casing { line-width: 3.5; line-color: @color_transport_casing; } line-width: 2.5; } [zoom>=15] { ::casing { line-width: 6.5; } line-width: 4; } [zoom>=16] { ::casing { line-width: 0; //7.5; } line-width: 4; } [zoom>=17] { ::casing { // line-width: 11.5; } line-width: 8; } [zoom>=18] { ::casing { // line-width: 14.5; } line-width: 11; } // [zoom>=19] { // ::casing { // line-width: 20; // } // line-width: 16; // } } #tunnels[kind='rail'], #roads[kind='rail'], #bridges[kind='rail'] { ::casing, ::outline, { line-color: @color_transport_rail; } line-color: @color_transport_rail; [zoom>=14] { ::casing { line-width: 3; line-dasharray: 1,3; } line-width: 1; } [zoom>=16] { ::casing { line-width: 5; line-dasharray: 1,4; } } [zoom>=18] { ::casing { line-width: 6; line-dasharray: 2,6; } line-width: 2; } [zoom>=19] { line-width: 4; } } #tunnels[highway='service'], #roads[highway='service'], #bridges[highway='service'], { [zoom>=14] { ::casing { line-width: 2.8; } line-width: 1.8; } [zoom>=16] { ::casing { line-width: 0; } line-width: 2; } [zoom>=17] { line-width: 4; } } #tunnels[kind='path'], #roads[kind='path'], #bridges[kind='path'], { line-color: @color_transport_path; [zoom>=15] { line-width: 0.5; line-cap: butt; line-dasharray: 2, 3; } [zoom>=16] { line-width: 0.7; } [zoom>=17] { line-width: 1.2; line-dasharray: 4, 6; } } #lc500mMODIS_high { raster-scaling:gaussian; raster-opacity:1; /* Note: we can't start reducing opacity until the land layer comes in, which starts at z8 */ [zoom>=9] { raster-opacity:0.8; } [zoom>=10] { raster-opacity:0.5; } [zoom>=11] { raster-opacity:0.3; } [zoom>=12] { raster-opacity:0.2; } [zoom>=13] { raster-opacity:0.15; } [zoom>=14] { raster-opacity:0.1; } [zoom>=15] { raster-opacity:0.05; } } #lc500mMODIS_high, .landcover { // Applies to the OSM-derived landcover, too image-filters-inflate: true; image-filters: agg-stack-blur(5,5); // cannot be modified per zoom } // A special landover raster with urban areas only, so we can keep them full opacity #lc500mMODIS_urban { raster-scaling:gaussian; //image-filters: agg-stack-blur(10,10); // causes discontinuities at metatile boundaries raster-opacity:1; } .urban-landuse[zoom<12] { polygon-fill: @color_urban; //image-filters: agg-stack-blur(2,2); //[zoom>=12] { image-filters: agg-stack-blur(5,5); } //[zoom>=15] { image-filters: agg-stack-blur(10,10); } } .urban-landuse[zoom>=12] { polygon-fill: @color_urban; image-filters: agg-stack-blur(5,5); image-filters-inflate: true; } #land { polygon-fill: @color_physical; polygon-gamma: 0; } ================================================ FILE: package.json ================================================ { "name": "terrain-classic", "version": "1.0.0", "main": "index.js", "private": true, "scripts": { "start": "make xml && tessera -S 50 -c tessera.json" }, "dependencies": { "carto": "^0.16.0", "cors": "^2.5.2", "express": "^4.10.4", "interp": "^0.1.0", "js-yaml": "^3.2.3", "mapnik": "^3.5.13", "millstone": "^0.6.14", "on-headers": "^1.0.0", "pgexplode": "^1.0.0", "tessera": "^0.9.0", "tilejson": "^1.0.1", "tilelive": "^5.4.0", "tilelive-blend": "^0.4.0", "tilelive-cache": "^0.6.5", "tilelive-http": "^0.11.0", "tilelive-mapnik": "^0.6.14", "tilelive-solid": "^0.1.0" } } ================================================ FILE: shields/default-shields.ai ================================================ %PDF-1.5 % 1 0 obj <>/OCGs[5 0 R 28 0 R 29 0 R 30 0 R 58 0 R 59 0 R 60 0 R 88 0 R 89 0 R 90 0 R 91 0 R]>>/Pages 3 0 R/Type/Catalog>> endobj 2 0 obj <>stream application/pdf Web Adobe Illustrator CC 2015 (Macintosh) 2015-10-23T15:24:52-04:00 2015-10-23T16:02:40-04:00 2015-10-23T16:02:40-04:00 152 256 JPEG /9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgBAACYAwER AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE 1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp 0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo +DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8AEflB+UGied9EvdQ1C9ub aS2ufQRIPT4lfTV6nmrb/FirPP8AoV/yj/1ddQ++H/qnirv+hX/KP/V11D74f+qeKu/6Ff8AKP8A 1ddQ++H/AKp4q7/oV/yj/wBXXUPvh/6p4q7/AKFf8o/9XXUPvh/6p4q7/oV/yj/1ddQ++H/qnirv +hX/ACj/ANXXUPvh/wCqeKu/6Ff8o/8AV11D74f+qeKu/wChX/KP/V11D74f+qeKu/6Ff8o/9XXU Pvh/6p4q7/oV/wAo/wDV11D74f8Aqnirv+hX/KP/AFddQ++H/qnirv8AoV/yj/1ddQ++H/qnirv+ hX/KP/V11D74f+qeKu/6Ff8AKP8A1ddQ++H/AKp4q7/oV/yj/wBXXUPvh/6p4q7/AKFf8o/9XXUP vh/6p4qkXkHylZeU/wA+ZNEsppJ7eCydllm48yZIVc14hR1Phiqe/wDOL/8AyiOq/wDbQP8AyZjx V7LirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirxq2/wDWmrv/AJgB/wBQyYq7/nF//lEd V/7aB/5Mx4qhf+cu/MOv6D+W2m3mh6nd6VdyazBC9xZTyW8jRm1uWKF4mVipZQaewxVT/wCcV/zb uvN/lq48va7dSXHmXQ92nuHLzXFo7UWR2Y8meNjwcn/JrucVTT/nJj805fJHkc2WlztF5k14ta6e 0TFZYYxT1rhabgqCFUjfkwI6YqkH/OH3mbzHr/lPXp9d1W81aeG/RIZb64luWRTCp4q0rOQK9hir wz8q4fz4/Mu/vrLQvPeoW0unxJNM19q2oxqVduIC+l6xrXxAxV71+Uf5T/nr5b86Qap5w84/pnRI 4Zklsf0lqF1yd0ojelcRpGeJ3rXFXm3n/wA0/mH+T3522txea7q2q+T7mX63a2V3eXFxE9lMSk0H GZ3X1ICxCV32Vj1xVmv/ADk5+c93Z6Vo3lfyRfyjWPMAgvfrunyOky2khBt1ieMq6tcNSlN+Ip+1 ir178rPK2ueWvJdjYeYNUu9X1119fU7u8uZboiaQAtFG8rNSOP7Ip1pXvirINb1vSdC0m61fV7pL PTbKMy3NzJXiij5VJJOwA3J2G+KvjH85P+ckvO/medJPKk975e8pxTNDa3UEjW9zdzRqC7PLGwYB Vdf3amgqOVSRRV9t4q8D/NTyl/zkp5o87Xmn+Wtbi0TynFHG9jdwzvZcuQqyyPAJrlpA6kHotKdK nFWD/ld+YH5u+SPzltvy6876lLq8F7KtvJ9Zma7KmZC8E8FxJ+8KkkVVu21ARsq9d/PL8vvzW82z aM3kPzL/AIfSzW4GoL9dvLL1jIY/SP8AoqSc+PBvtdK7Yq+bLaz/ADzvfzHTyDpn5gahq2qpIU1C 6sNT1KS0tVQgStLLJ6P91X4uIO9FBLbYq+47C3ktrG3tpZmuJIYkje4evKRkUAu1Sd2pXriryG2/ 9aau/wDmAH/UMmKu/wCcX/8AlEdV/wC2gf8AkzHiqS/85q/+Ss0r/tuW/wD1B3eKvGby31z8sdZ/ L/8ANTTlZ9M1vT7NtQRR8LSrbpHeQP2rPGPVUn9qpH2cVTrULi+/NXzh59/MUlm8r+UdJvo9D5Bl VpFtpVtSoYbHlyuW7g8QeuKs7/5wi/5Q3zF/20U/5MLirwb8kP8AldH6T1P/AJVb/vd6CfpL/eH+ 65nh/vd8P2v5d8VfUX5J/wDQx/8AiS9/5Wh/xxPqbfU/+OX/AL1erHx/3h/ef3fP7Xw/TTFUD/zm Fb+Vn/K9JtVbjq8V3H+gSgBczN/fKf8AiswglvcL7Yq8N/5xmOkz/nLpqebjKdQt7MJ5fjuBRFnj iX6uCG6Ut6mPb7VD1xV9z4qhtS02w1PT7nTtQgS5sbyN4Lm3kFUeOQcWVh4EHFXyZ/zmXouk6Jb+ RtL0i0isdPtYdQSC2gUIijlb9h3PUk7k7nFX15iqF1TVNP0rTrnUtRuEtbCzjaa5uJDREjQVZjir 5i/JyyvvzU/PbV/zSuYGh8v6TIY9MD7cpBF6NunzSL969OjEeOKvob8wdN81ap5N1XTvKl7Fp+v3 cQisr2dmRIuTqJG5Ikjq3p8uLBahqYq+Tf0X+c3/ADjjNFq8iaXqGj6rMsN5LComWSQAuInneKC6 QlVYrQ8OpoTir6/8reYbLzH5b0zX7IFbXVLaK6iRvtKJUDcGp3UmhxV5dbf+tNXf/MAP+oZMVd/z i/8A8ojqv/bQP/JmPFUl/wCc1f8AyVmlf9ty3/6g7vFWSeWPImleev8AnHPy/wCW9SPpx3ekWpt7 kLyaCdIwYplFVrxbqKioqK74q3qn5e6X5A/5x28yeW9Pf1/Q0a/ku7woI2uLiS3YySsoLUrQBRU0 UAVNMVYT/wA4Rf8AKG+Yv+2in/JhcVeDfkh+c3/KrtT1O+/Q/wCmP0jAkHp/Wfq3Dg5blX0p+Va+ AxV9Fflf/wA5XxeePOln5bl8tLpMV1HcSyag+oCZYlt4HnJKG3hFKR0ryFOuKvONQmu/+cg/z3js 4Wf/AAToPIcxUL9TjcepID2ku3AC9wtP5Tiqdf8AOWv5ZzaPfab+ZXlxDaG2aC21E244GGWCgs7l ePSnFY69qJ44q90/Jr8ybT8wfItlrSsq6jGBb6vbqR+7uowOfw9lf7a+xxVlmt6j+jNGv9S9P1vq NtLc+lXjz9JC/HlRqV40rTFXwT+eX54f8rTm0aT9C/of9ErcLT619a9T6wYz/vmDjx9L3rXFX1H+ SH/OQP8AytHU9Tsf0D+h/wBHQJP6n1v6zz5uV409GDjSnicVeKf85O/nVca75nn8iW/r2nlrSLn0 9X9LiJryeJtxueIjRh8APf4iDRQFU7/Kz/nKPQ9Pk8veRtE8jjTtOnubewjl/SXqMrXEqxtO4+qJ 6jkvybcVPhir1r89Pzk1j8tU0i4sdCbWLW7aVtQc+rHHFHGUC/v1V0RnLmnJTir598+fmh+YP5+n TvK/l3yu9rYQ3KzzLHI9yvrBWRZJ7kxwxxRosjdR3+WKvrvyN5ZTyv5O0by8snq/ou0itnlHR3RQ HcA9mepxV5tbf+tNXf8AzAD/AKhkxV3/ADi//wAojqv/AG0D/wAmY8Vey4q7FXYq7FXYq7FXYq7F XYq7FXYq7FXYq7FXYq7FXYq8atv/AFpq7/5gB/1DJiqTeV/yz/PfytaS2eg6rp9nbzyetKlY5avx C1rLbueijFU5/Qn/ADk1/wBTBp//ACLtv+yXFXfoT/nJr/qYNP8A+Rdt/wBkuKu/Qn/OTX/Uwaf/ AMi7b/slxV36E/5ya/6mDT/+Rdt/2S4q79Cf85Nf9TBp/wDyLtv+yXFXfoT/AJya/wCpg0//AJF2 3/ZLirv0J/zk1/1MGn/8i7b/ALJcVd+hP+cmv+pg0/8A5F23/ZLirv0J/wA5Nf8AUwaf/wAi7b/s lxV36E/5ya/6mDT/APkXbf8AZLirv0J/zk1/1MGn/wDIu2/7JcVd+hP+cmv+pg0//kXbf9kuKu/Q n/OTX/Uwaf8A8i7b/slxV36E/wCcmv8AqYNP/wCRdt/2S4q79Cf85Nf9TBp//Iu2/wCyXFXfoT/n Jr/qYNP/AORdt/2S4q79Cf8AOTX/AFMGn/8AIu2/7JcVVvIv5d/mPa/mJ/izzZd2l3I9u8MssLAO TwCJ8CRRJsFxV6/irsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVebfnZ558x+U9 O0qXQ2iWe9uWhf1UDggLUUr03xVI/rP/ADk1/wAslh99t/zXirvrP/OTX/LJYffbf814q76z/wA5 Nf8ALJYffbf814q76z/zk1/yyWH323/NeKu+s/8AOTX/ACyWH323/NeKu+s/85Nf8slh99t/zXir vrP/ADk1/wAslh99t/zXirvrP/OTX/LJYffbf814q76z/wA5Nf8ALJYffbf814q76z/zk1/yyWH3 23/NeKu+s/8AOTX/ACyWH323/NeKu+s/85Nf8slh99t/zXirvrP/ADk1/wAslh99t/zXirvrP/OT X/LJYffbf814qlOseffzw8t6jpMXmJLOCDUrlYY/TSKQsAyh/sM1NnxV73irsVdirxr/AJyT/wB4 PLf/ADHn/iIxV7LirsVdirsVdirsVdirsVdirsVdirsVdirsVeNf85Df73+S/wDmPf8A4lDir2XF XYq7FXjX/OSf+8Hlv/mPP/ERir2XFXxP+QH/ADkTr2h+bRp3nTWbvUtB1YrC13f3Elw1pNWkcoaV nKxmvGQV/wArtuq93/5yo17WtG/Klr/RNRudNuzfWyLd2U0kEnBg9QJImVqH54qw2+tfzA8xf84v 6H5j0XzBq0fmbS4Zr24ngvblJru3SaRZklZXDSMiKGTlU/DQdcVZF/zi1+bE3mzyTc6brt80+ueX 2P1i7uZC0ktpJVo5pJHNSUoyMSegBPXFWB+RfNXnX82/z8vrrT9d1Ox8jaTJ9YaztLqe2ge2gPC3 jaON1HK5deT9+PLwGKvq3FXgv55f85FHQbi58oeRl+v+bFWT67eKoeGxWNC8p3+F5Y0Us1fhT9ro VxVGf84jeY/MHmD8uNTvtd1K61W8XWp4kuLyaSd1jFrbMEVpCxVQzsQo23xVmP5zx/mnJ5TSL8uH iTV5rhIrlmCCVbeSqs8Lyn00KsRyJUnjUrQjFXzb560v/nJr8rba1816r5vmvrWWdY5Fivri8hjl erqkttcokfFuJHwKQOm1Rir6o/L3zTP5v/L/AEfzC0YtrrVLNZJY1J4rNQo/HqePNTT2xV8tefPI P5/+RdAk1zzF+Z7Q2asI444tY1Z5ppG6RwoYl5MQO5AHUkDFXqX/ADippX5lzaLd+avN+tahfWOq oiaPY6hcz3DempLG5AmdgiyVolB8Q36Uqqmv/OQ3+9/kv/mPf/iUOKvZcVdirsVeNf8AOSf+8Hlv /mPP/ERir2XFX56flh+Wl5598o+boNLiEuuaMLO/05P25F/fpPbqfGReLD/KRR3xVOrv817zzH+Q d55K1hy2q+Xbm0lspnrzlsVcw8Gr+1A0iL/qkeBxV9T/APOOIDfkj5WVhUG3mBB6EfWZcVfK/wCb fl7U/wAofzH12z0bnDo3mPT7iKy4sVAs774ZIagf7pkXiB/KFPfFX1L/AM48/lofIf5d2ttdxhNb 1Mi+1Y/tLJIo9OE/8Yo6KR/NyPfFXpuKvOfzX8p+WrPyL5+8wWum28Wt6jot2l7qCoPWkWO2ZVBb qBRRWnWgr0xVg3/OFX/krNV/7blx/wBQdpir3/FXzJ/zlB5pufOHmHRPyi8rUvNUnukn1MoarHJx IiicitAiM0sn8op74q+hfKfl208teWNL0CzPK30u2itUc9W9NQC592NWOKvC/wA+fyO/Nrz55x/T OmalpkmiabHGNH0q7kk5KwVWm5RNBJAzSSg/bbdaA7CmKoz/AJx3/OzzT5h1/UfIPnS2ih17SI39 GaKNICfqriGaGWOP92HQmo4ALSu22Kpz/wA5Df73+S/+Y9/+JQ4q9lxV2KuxV41/zkn/ALweW/8A mPP/ABEYq9lxV8lf84O/8dbzb/zD2f8AxObFUL/zlj+SzaVfyeftAt6aZfOBrsEY2huXba4oP2Jj 9rwf/WxV7t/zjh/5JLyt/wAw8v8A1Ey4q8K/5zf/AOUn8sf8wU//ACdGKvr7FXYq+cP+cjf+cgf0 BceYPy5/QP1n6/ppg/Sn1v0+H12Ejl6HovXhy/35v7Yq8w/5x9/5yB/wHpieUf0D+kv0rqwn+vfW /Q9P6ykNvx9L0ZeXH0uX2hWtMVfRH/ORH5v3P5ceUon02H1Nc1hpLfTZmAMUBRQZJmB+0VDjgvQn rsKFV8v/AJT/AJ46H+X13e6xN5bl8xeaNTLNea1dXwhdQ7cnSNPQuD8Tbu5ereAxV9j/AJXfmCPP XkKy82mwOnC79etkshuWX6vM8WzBIyxb060Ce2KvBLr/AJzQ8x2L3GnXnkoJqoYrb+pcSwEcv7vn bNC7k96CQVxVHf8AOMP5dedLjzrrH5nebLSSxk1JZzaxToYZJpryUSyzCJviWMCoWvWu2wxVm/8A zkN/vf5L/wCY9/8AiUOKvZcVdirsVeNf85J/7weW/wDmPP8AxEYq9lxV2KuxV2KuxV2KuxV2KuxV 2KuxV2KuxV2KvGv+chv97/Jf/Me//EocVey4q7FXYq8a/wCclVm/RXl+SOJ5fSvXdlQEmgQHtirv +hk7D/qW7/71/pirv+hk7D/qW7/71/pirv8AoZOw/wCpbv8A71/pirv+hk7D/qW7/wC9f6Yq7/oZ Ow/6lu/+9f6Yq7/oZOw/6lu/+9f6Yq7/AKGTsP8AqW7/AO9f6Yq7/oZOw/6lu/8AvX+mKu/6GTsP +pbv/vX+mKu/6GTsP+pbv/vX+mKu/wChk7D/AKlu/wDvX+mKu/6GTsP+pbv/AL1/pirv+hk7D/qW 7/71/pirv+hk7D/qW7/71/pirDPP35kL551Xy1Ha6RdWX1C9Du0w5BhI8Y24jtwxV9MYq7FXYq7F XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX Yq7FXYq7FXYq7FXYq7FXkv8AzkxNNF5EsGido2OqRAlSVNPq9x4Yql9t/wA442M1tFKfMl+DIiuR RduQr44qq/8AQtlh/wBTJf8A3L/XFXf9C2WH/UyX/wBy/wBcVd/0LZYf9TJf/cv9cVd/0LZYf9TJ f/cv9cVd/wBC2WH/AFMl/wDcv9cVd/0LZYf9TJf/AHL/AFxV3/Qtlh/1Ml/9y/1xV3/Qtlh/1Ml/ 9y/1xV3/AELZYf8AUyX/ANy/1xV3/Qtlh/1Ml/8Acv8AXFXf9C2WH/UyX/3L/XFVH/nHaCW01rzt p7TyXCWNzb28byEkkRyXSV9q8cVe14q7FXYq7FXYq8i/5yd/5QKw/wC2rD/1D3GKvVtP/wB4Lb/j En/ERiqvirsVQGteYNA0K1W71vUrXS7VmEa3F7PHbxlyKhQ8rKtdumKo/FUq1vzb5V0EoNc1mx0o yf3YvbmG35VrTj6rLX7JxVFaXq+k6tZre6VewahZv9i5tZUmiO1dnjLKevjiqE13zd5U8vmFde1q w0k3PI24vrmG2MgSnLh6rJy48hWnjiqV/wDK2Pys/wCpy0P/ALiVn/1UxVlEUsU0SSxOskUih45E IZWVhUEEbEEYquxV2KvGvyG/5S78w/8AtoR/8nrvFXsuKuxV2KuxV2KvIv8AnJ3/AJQKw/7asP8A 1D3GKvVtP/3gtv8AjEn/ABEYqr4qlPm3XZtA8s6nrUFhNqkun273C2FuQJZeArxUn7zQE06AnYqv hH86tQ/MzXjpXm3zwr2KayZxoOjlWRYbWH0yzrGxqgcyrQt8T0qduNVX6CYq8C1f/nEPyzr3mjWt c13zDqc41G4ee0iiZPUiV6HhJLcLcNIENVXp8IGKvPv+ccrPVvJ//OQOu+SbS+a80mBbyC8I2R/q rD0pmSpCuD8PtUjFXvH5v/k15L/MKKyvvM+oXmn2+hx3Dia1lghjEcgRpXlaaKYUUQg12pvXFXy7 5A/JXy9+YX5jT2vlVdQT8vtKk/0/Wr50aa4Cn7EPpxQqjS/sgglV+Jt6Lir7ktbaC1toraBeEECL HElSaIg4qKmp2AxVUxV2KvGvyG/5S78w/wDtoR/8nrvFXsuKuxV2KuxV2KvIv+cnf+UCsP8Atqw/ 9Q9xir1bT/8AeC2/4xJ/xEYqr4q7FXyh/wA5y/71+Tf+Meof8StsVfV+KsA/On819M/LjyjLqUpW XWLoNDo1iTvJPT7bDr6cVQzn5DqRirCf+cXPyw1TQtJvvO3mQP8A4k80fveMopLHbO/q1fpR53PN h4Be9cVes+d/KGnecfK1/wCWtRmuLex1FUSeW0ZUmCpIslFZ1kXcpQ1U7Yq+Ufzq/JSL8m7HTPOP knzDqEErXa2bpPIgnDujzKySQpCrJ+5IZGU1xV9T/lx5luPM/kPQdfuUCXWo2UM9yqii+qVAkKj+ UuCR7YqyPFXYq8a/Ib/lLvzD/wC2hH/yeu8Vey4q7FXYq7FXYq8i/wCcnf8AlArD/tqw/wDUPcYq 9W0//eC2/wCMSf8AERiqviqD1v8ASX6Gv/0X/wAdL6tL9R+z/f8AA+l9v4Pt0+1t44q+NfPP5V/8 5X+e3s381aX+kW08SC0Pr6PBwE3Hn/cSRVr6a9a4q93/ACQ/6GE/Sep/8rS/3h9BP0b/AMc3+95n n/vD8X2f5tsVeLec/wAsf+cmvMvn2bzbeeXYbi6hcjS4pbnTpbe2iRiYhHBNcMh4/ao6mrEkiuKv Rvyy/wChtf8AHOl/45/5RXlL+kv+ON9n0X9P/eX99/e8Ps/qxVlv56aZ+dl2mkXH5Y3CwSWbSyX0 YmijkmZigiXhcD0HVaMTyP8Aaq8dn/JL/nI78zNVsl/MrUVsdKs3qWkktGIU05GG3sKxGQjbk9Pn 2xV9VaJo9houj2Oj6enp2OnQR2tsh3IjhQItT3NBucVRuKuxV41+Q3/KXfmH/wBtCP8A5PXeKvZc VdirsVdirsVeRf8AOTv/ACgVh/21Yf8AqHuMVeraf/vBbf8AGJP+IjFVfFXYq7FXYq7FXYq7FXYq 7FXYq7FXjX5Df8pd+Yf/AG0I/wDk9d4q9lxV2KuxV2KuxV5/+dnkvXPN3lW103Rlje6hvo7lxK4j X01hlQ7nvWQYqxiKy/5yXijSNLqwCIAqilt0AoP2MVXfVv8AnJr/AJa7D7rb/mjFXfVv+cmv+Wuw +62/5oxV31b/AJya/wCWuw+62/5oxV31b/nJr/lrsPutv+aMVd9W/wCcmv8AlrsPutv+aMVd9W/5 ya/5a7D7rb/mjFXfVv8AnJr/AJa7D7rb/mjFXfVv+cmv+Wuw+62/5oxV31b/AJya/wCWuw+62/5o xV31b/nJr/lrsPutv+aMVd9W/wCcmv8AlrsPutv+aMVTb8mPI3mzy1e+Y73zGsIuNYkgmVoXVwzq 0zSkhQAu8oxV6firsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdir sVYt+Z/mXUfLPkbUtb04Rm8tPQ9ITKWT95cRxNUAr+y574q850vzd/zkZqmnW2o2Gh6fNZ3cazW8 vKBeSOKqeL3KsPpGKor9N/8AOTX/AFL+n/8AIy2/7KsVd+m/+cmv+pf0/wD5GW3/AGVYq79N/wDO TX/Uv6f/AMjLb/sqxV36b/5ya/6l/T/+Rlt/2VYq79N/85Nf9S/p/wDyMtv+yrFXfpv/AJya/wCp f0//AJGW3/ZVirv03/zk1/1L+n/8jLb/ALKsVTz8mvP3mXzYutpr0cEdxpk0UKrboVALcw4b4nBo U7Yq9JxV2KuxV2KuxV2KuxV2KuxVgP58f+Sp1z/o1/6jIcVTf8sP/JeeXf8Atnwf8QGKsnxV2Kux V2KuxV2KuxV41/zjz/vf50/5j0/4lNir2XFXYq7FXYq7FXYq7FXYq7FWA/nx/wCSp1z/AKNf+oyH FU3/ACw/8l55d/7Z8H/EBirJ8VeC/nt/zkraeVPrHlzycU1HzQgYXl0B6sFiFHxcuqvKv8v2V/a/ lxVnf5Ceadd81flPoWva9dfXNWvPrX1m54RxcvSvJok+CJUQURFGy4qln54+bvzZ0KHSbP8AL3Q1 1K51WR4pb7gZjbsgDqpj+GNA61/eO3HYinQ4q8Qvvzt/5yS/LXXbA/mLbrd6feHkLWaKyVZI0IEg huLEBRIvIbMTTaoocVfXVhewX9hbX1uSbe6iSeEkUJSRQy1HyOKq+KvGv+cef97/ADp/zHp/xKbF XsuKuxV2KuxV2KuxV2KuxV2KsB/Pj/yVOuf9Gv8A1GQ4qm/5Yf8AkvPLv/bPg/4gMVZPir52/Pf8 qPIvk38o/OWraDpy2+o6tcW0lzcklmVJL+FzDFXaOLlvxX6egoqzT/nFz/yRPln/AKPv+6hcYq9V xV8rf85JX8n5jfmf5a/LDy9Se4spWbU7hByWGScKX5EdoIULv86dRTFX1FYWUFjY29lbjjBaxJDC D1CRqFX8Biqvirxr/nHn/e/zp/zHp/xKbFXsuKuxV2KuxV2KuxV2KuxV2KsB/Pj/AMlTrn/Rr/1G Q4qm/wCWH/kvPLv/AGz4P+IDFWT4q+Xf+cl/z38oaj5d8yflzBZ6gutw3MMLXLxwi05W9xHK5DiY yUKoafu+uKq3/ONP57+ULPy55X/LaWz1A660txCLlY4Tacp7ma4U8zMJKBHAP7vrirOv+civzwT8 u9ETTNK+PzVqsbGyLLVLaGpVrhqijNUEIvjudhQqvDvyS/OH8o/y6ivNR1S31jWfN2pkm/1WKCBo 1VjzMcLTXEch5P8AE7soLHtsMVfYPlrXrPzD5e03XbJJI7TVLaK8t45gqyLHMgdQ4VnUNRt6McVT LFXjX/OPP+9/nT/mPT/iU2KvZcVdirsVdirsVdirsVdirsVYD+fH/kqdc/6Nf+oyHFU3/LD/AMl5 5d/7Z8H/ABAYqyfFWOX/AOW35daheTXt/wCVtIvL24YvPdT2FtLLIx6s7vGWY+5OKt6f+XH5eabe xX2neV9Isr23bnBdW9hbRSxt0qjpGGU/I4qidb8l+TteuI7jXdB07VbiJPTimvrSC5dUqTxVpUcg VNaYql3/ACqf8rP+pN0P/uG2f/VPFWSWdlZ2NpDZ2UEdraW6LFb20KLHHHGgoqIigKqqNgBiqtir xr/nHn/e/wA6f8x6f8SmxV7LirsVdirsVdirsVdirsVdirAfz4/8lTrn/Rr/ANRkOKsB8of85D+W NE8r6XpFxpt7JPYW0cEkkfpcGZFAJWrg0xVN/wDoaDyj/wBWrUPuh/6qYq7/AKGg8o/9WrUPuh/6 qYq7/oaDyj/1atQ+6H/qpirv+hoPKP8A1atQ+6H/AKqYq7/oaDyj/wBWrUPuh/6qYq7/AKGg8o/9 WrUPuh/6qYq7/oaDyj/1atQ+6H/qpiqj/wA42XSXb+bLpAVS4u4ZVVuoD+qwBp88Ve14q7FXYq7F XYq//9k= proof:pdf uuid:65E6390686CF11DBA6E2D887CEACB407 xmp.did:ab36010d-d582-4d0c-aafe-30758a64582d uuid:eedec665-f0c7-de49-aed4-60ea75f536ed uuid:1abccb90-0c26-4942-b156-fd2eb962e3e1 xmp.did:58fdc1b8-1448-3a44-9e20-282d8ec1cf95 uuid:65E6390686CF11DBA6E2D887CEACB407 proof:pdf saved xmp.iid:ab36010d-d582-4d0c-aafe-30758a64582d 2015-10-23T15:24:53-04:00 Adobe Illustrator CC 2015 (Macintosh) / Web Document 1 False False 105.333333 96.500000 Pixels PTSans-Bold PT Sans Bold TrueType 10.0d1e1 False PTSans.ttc Cyan Magenta Yellow Black Default Swatch Group 0 White RGB PROCESS 255 255 255 Black RGB PROCESS 0 0 0 RGB Red RGB PROCESS 255 0 0 RGB Yellow RGB PROCESS 255 255 0 RGB Green RGB PROCESS 0 255 0 RGB Cyan RGB PROCESS 0 255 255 RGB Blue RGB PROCESS 0 0 255 RGB Magenta RGB PROCESS 255 0 255 R=193 G=39 B=45 RGB PROCESS 193 39 45 R=237 G=28 B=36 RGB PROCESS 237 28 36 R=241 G=90 B=36 RGB PROCESS 241 90 36 R=247 G=147 B=30 RGB PROCESS 247 147 30 R=251 G=176 B=59 RGB PROCESS 251 176 59 R=252 G=238 B=33 RGB PROCESS 252 238 33 R=217 G=224 B=33 RGB PROCESS 217 224 33 R=140 G=198 B=63 RGB PROCESS 140 198 63 R=57 G=181 B=74 RGB PROCESS 57 181 74 R=0 G=146 B=69 RGB PROCESS 0 146 69 R=0 G=104 B=55 RGB PROCESS 0 104 55 R=34 G=181 B=115 RGB PROCESS 34 181 115 R=0 G=169 B=157 RGB PROCESS 0 169 157 R=41 G=171 B=226 RGB PROCESS 41 171 226 R=0 G=113 B=188 RGB PROCESS 0 113 188 R=46 G=49 B=146 RGB PROCESS 46 49 146 R=27 G=20 B=100 RGB PROCESS 27 20 100 R=102 G=45 B=145 RGB PROCESS 102 45 145 R=147 G=39 B=143 RGB PROCESS 147 39 143 R=158 G=0 B=93 RGB PROCESS 158 0 93 R=212 G=20 B=90 RGB PROCESS 212 20 90 R=237 G=30 B=121 RGB PROCESS 237 30 121 R=199 G=178 B=153 RGB PROCESS 199 178 153 R=153 G=134 B=117 RGB PROCESS 153 134 117 R=115 G=99 B=87 RGB PROCESS 115 99 87 R=83 G=71 B=65 RGB PROCESS 83 71 65 R=198 G=156 B=109 RGB PROCESS 198 156 109 R=166 G=124 B=82 RGB PROCESS 166 124 82 R=140 G=98 B=57 RGB PROCESS 140 98 57 R=117 G=76 B=36 RGB PROCESS 117 76 36 R=96 G=56 B=19 RGB PROCESS 96 56 19 R=66 G=33 B=11 RGB PROCESS 66 33 11 Grays 1 R=0 G=0 B=0 RGB PROCESS 0 0 0 R=26 G=26 B=26 RGB PROCESS 26 26 26 R=51 G=51 B=51 RGB PROCESS 51 51 51 R=77 G=77 B=77 RGB PROCESS 77 77 77 R=102 G=102 B=102 RGB PROCESS 102 102 102 R=128 G=128 B=128 RGB PROCESS 128 128 128 R=153 G=153 B=153 RGB PROCESS 153 153 153 R=179 G=179 B=179 RGB PROCESS 179 179 179 R=204 G=204 B=204 RGB PROCESS 204 204 204 R=230 G=230 B=230 RGB PROCESS 230 230 230 R=242 G=242 B=242 RGB PROCESS 242 242 242 Web Color Group 1 R=63 G=169 B=245 RGB PROCESS 63 169 245 R=122 G=201 B=67 RGB PROCESS 122 201 67 R=255 G=147 B=30 RGB PROCESS 255 147 30 R=255 G=29 B=37 RGB PROCESS 255 29 37 R=255 G=123 B=172 RGB PROCESS 255 123 172 R=189 G=204 B=212 RGB PROCESS 189 204 212 Adobe PDF library 10.01 endstream endobj 3 0 obj <> endobj 7 0 obj <>/Resources<>/ExtGState<>/Font<>/ProcSet[/PDF/Text]/Properties<>>>/Thumb 97 0 R/TrimBox[0.0 0.0 105.333 96.5]/Type/Page>> endobj 93 0 obj <>stream HAK0{~;3$ME"{ZT`?KuW&}KLi| {]L6N,`9zXƕx|<ь0Q9sF\ΓhG4bjlyT J-+BU9BC ;z琒piJ5_{g79>stream 8;Xp,*>N7'LM6iFP_2@*A\\;GNWFsR&=S-\@%8nn)^0j\O!XtY%@7'p#t*^f!'l&8 !2qtnrV~> endstream endobj 98 0 obj [/Indexed/DeviceRGB 255 99 0 R] endobj 99 0 obj <>stream 8;X]O>EqN@%''O_@%e@?J;%+8(9e>X=MR6S?i^YgA3=].HDXF.R$lIL@"pJ+EP(%0 b]6ajmNZn*!='OQZeQ^Y*,=]?C.B+\Ulg9dhD*"iC[;*=3`oP1[!S^)?1)IZ4dup` E1r!/,*0[*9.aFIR2&b-C#soRZ7Dl%MLY\.?d>Mn 6%Q2oYfNRF$$+ON<+]RUJmC0InDZ4OTs0S!saG>GGKUlQ*Q?45:CI&4J'_2j$XKrcYp0n+Xl_nU*O( l[$6Nn+Z_Nq0]s7hs]`XX1nZ8&94a\~> endstream endobj 88 0 obj <> endobj 89 0 obj <> endobj 90 0 obj <> endobj 91 0 obj <> endobj 106 0 obj [/View/Design] endobj 107 0 obj <>>> endobj 104 0 obj [/View/Design] endobj 105 0 obj <>>> endobj 102 0 obj [/View/Design] endobj 103 0 obj <>>> endobj 100 0 obj [/View/Design] endobj 101 0 obj <>>> endobj 87 0 obj <> endobj 108 0 obj <> endobj 109 0 obj <>stream Hy|T˞ 1 {! aB!!04 T@T @-;ȾZRHC)C%E[@00=΃m}>{6w9)/Z̆9 7 Ӈziv,oZ׋-,-*12Sd^Z7 `M(.Ϳ{rV4d J,&K͊K+@PW\4]hd%q}RnIY4Y:yJ[ZV`ϻ P%P,M/#`"0Rt42\GwたOSh_G=DI4Cڙbm"!:뤦u2S h>F!Nf/DcO!ssG1E1Cqbbbi^^I)U(T@m劫ŭ+T-JY۹BX'1ljwKn.j){ZrxSbv;HdUbtE7=O?` 'c^\ëxMv{BEom,,E%a9VW5VbVc bxopw883{\%\/Q jP ;9n{qN܁ ?G>ɇFOL!JIQԐQ4PԜZQwA=iE%Q_GԟBi !JiN42iepA#i=K9Cc)Qxʣ|*B*uZLh9wh%6&Bh=}D0}Bt9:O"]]ZB_:ݤ[t?.#7y>Va9WL:BoGҺh:'ZEU1;xWsњ<OSǞ*Aχ=<<{====Mw/_tu.Dwgw'wswZwvگkTYK5A55~55>5∯sV]m_ݷ:wuաW^u]YWHvhkuuuubcA?~':g0S0#1 b48Gfi<[*'l؄-؆؎؅=؍$Zc:>.ۻ`®^6L ļIT MIS5T(m?"V6PŸZjFB4EFF^{=ϳp̎Ry QV6T86"ֱӼQbhU=/sL:NrT~Uȴ4~y6ij|"s|&3Ȟe{7o?|A䋘ɇX_cabT0 3־b94o<4 ʓg 3ޞJl  LO)e骢]JSԖ/ TR6Ua[b1]YTJނKyU) a[M6)HU־bewLS=S}ʩdT~KS:+eu(Yarӕr ;j]4wITZz>9N'`4,ucm_h&M{]r3 .G4?=MEmAF.C 8E765Eߌj4)M bA!.Y472FH8 '|!Shm\{7UASSLA] O5~u]TMBM#ܯ¯jw}fU z@S4EU$Xb13Ck*BU|>M4O\t+;[v3WTno]q "M>)`M3+:XML4aM\ C=1J:C ]t>-v\t)'5zA76T)>؁_HR)B *"AMMFUBih0XgYVk? ۋ'Ki~cMJIj>4ҴDPXaULk@4+ ^]CϡeA gL X"81.-VpYh"04D54S5&䣎3YJ߬ CѠlP5*Σ9@*4LO:BAtRXy"dl9TD`"#h5Ur4K0Eu|`7/qV:5;\lۓ.`Ἑl>$ёyzI[oG gi%S[pB2.<ǵPCmg{L M[E?b uYޏ3(|_trDwcLp(BaIA;iƎHH'm 􍆶32z)xݫ3xC-9SK\/A59"|G![8MFsh-1R͏  Qwjո S48j7fF{W>>YWh_`O9=fte5X;BCB)d` 4{MQ7PO#H'L M߸,5*Q~'y)?"kt8-l WyNޟuaG?{q!d9[Q((BfE3M#MY- =Ȃ. I%Hw 85|vnv H.n\>e' 49}o7|R,l 5YQc|]"壶XkmGЮ^w"6 ~hg\=,NVOݲN,xLfw۱DP`IE%PMc}& Qb(J{ !<ӖE0? 9Gf/0ŇU?~;Sd"ɪ~5OfUa'0\ b|ߛ<)Ľ pgixhT('w7* .'W?H&tmgoI"ϙn\ W$(&IzLo7m+gVW-3C۷]Tm` rb?M!&l0´KB vOMnuRw=TYLFθy&Q 6*J^!{7)&J?8slБx^ooιX~ϰe7x<ǃ E{t nǸ9f(P[߀@tXC潐PCypnme4t< MWt Ҍ^/B 4B.1=i6 -21w_߁KJk_sM\Ӽ y)]Gĉm\GgzWz-*>#bָcZ6aP_U2 `[G1g6;Θ.)$rj^O,.s1aX#!7sg=4Z1~'djȜvѴX2&{mC.3U]wD9zVg_j.nԣk>Ԥ[E/qKgW:WM|V|׉%z*ճ7bzI,qV5:UE_3:mtfg^|ឧZTR,G@^)F(p8E8>#t-ܟe%*p?2-;/) ו23v ;g,_ZnZY9fB1##$9M;tB+9YdijVp̓ޘ^L.,]l|[:nhi;veK島 +{_;vXrc݅-Y yyXMv;H~?mΰ[t\8l㈁VPJ+7eBҶb<|W 䳖;)pV0RF01aY7.mw ev+ol[a1p,mG!ђ} '$⯁Z)s0ӈK~hHfA51K f`4BRy^,AjJmU;t\μZNns`[aQK [j\\9yld^&kj.Ȏ  ܄`wEp@B cXp\KͷsA[|t>8Fփ|.06rU+cR^ }'fQa7cτ3^I`>j Y/7WmHhqN ^V;=öRs/ҫ̍ {MNr/ގfcI{wr3=P@$P!== =yfVZ]ҷݙ7Hq8+ںmJJ.rv>u"Ūb3/Oq<&HPjpx9*&ؔHyوA|>S566F3l.CQy˱z7 H)]盒`V3M:&rhl@֫d=_|^ r#Mh{~H %}$q\5OIsv_9។V1}|P#SQowFN֢$#23mDhvSM6dWk K;hR+@<{uD~-ФoleӞHr*oӬ[BqD3}zzO>}:&2}|*#4ڲqz{Yst:*?!+Zk9Z[MxE np6j-CB{ɂz#H 䊑 mࣸDK[kth)EzR퉽Iѯ)䛜+,57㱄?4Xt=TNs#{]Cazkٽѹ=Br(ߢwt(D0c000$LLE*E 0^031 1s1Qt]XXXXXE2j셽~X5k@۱ Uz ѕ8Pq=A/S4=CӓH8t!jG.jQzx8 [D >`!Јhcp,8'{8 '43p&~p6~sp.~c?q!~p1~Kp).•5~ p5܈&܌[p+p;;'_7?/܉p7cxx1<'$4x2^x 6/#|O?||/%nNU(ک:ΪꪺzުjjjFƨj&jBUijfYjyjR BH-VKRL-W+JnfkI 'U*2ZO'I &dU&͐ ^FxCTԠـ=}}1U{sQ/%uzAݥP/Զz9a?z܀x0މwVnō8n ܌.N5qJݍuzH=^iG=WԽ> g0FV|lbg!܆>v| q>; |§q>s<E\e܃^܇~<#G |·-tٕήtv+k+W8\qqqqqqňÈÈYfx2Ód/|K_ٗξt/#G @8q#G(P8}̻8Z*G*ٻmW*#UG*O*_@*q8̎掤ww>NU϶ "2&2%32'uj% ! }rg^H2C !32C[cDIDDDDDDDDDDDDDLLLLLLLLLLLLLLLLBB_B_B_B_B_B_B_B_B_B_B_B_B_J_My)))))ή &H e R&H c 2&Ș c 2z2&ȸW ?????????&?????/&R. !=9&2#sˎ!; m0I4b2vH ɈɄLIJmKRPPgyIzz6/IBBBBBbOq0Þa0|s>%Va|W)pV/MpV5b{T0[mܮ9ks4dH ȐȘLȔߡ_ӯk5~M_ӯk5~Mߥߥߥߥߥߥߥߥߥ krJkku}ZW4f0a6l f3f6kc6kcx\+Og]+kṝʨOĞvɐȘdGQI4Kʟ{xT-Ale0\9۝\R{/)Wm]*,KUEINRWV Wi\qgv-oVoP+\2e,u7[EksKA^7tK]&oZ=3ϓ=ڊo'OGmU3Ng,W=3F / endstream endobj 96 0 obj <> endobj 95 0 obj [/ICCBased 110 0 R] endobj 110 0 obj <>stream HyTSwoɞc [5laQIBHADED2mtFOE.c}08׎8GNg9w߽'0 ֠Jb  2y.-;!KZ ^i"L0- @8(r;q7Ly&Qq4j|9 V)gB0iW8#8wթ8_٥ʨQQj@&A)/g>'Kt;\ ӥ$պFZUn(4T%)뫔0C&Zi8bxEB;Pӓ̹A om?W= x-[0}y)7ta>jT7@tܛ`q2ʀ&6ZLĄ?_yxg)˔zçLU*uSkSeO4?׸c. R ߁-25 S>ӣVd`rn~Y&+`;A4 A9=-tl`;~p Gp| [`L`< "A YA+Cb(R,*T2B- ꇆnQt}MA0alSx k&^>0|>_',G!"F$H:R!zFQd?r 9\A&G rQ hE]a4zBgE#H *B=0HIpp0MxJ$D1D, VĭKĻYdE"EI2EBGt4MzNr!YK ?%_&#(0J:EAiQ(()ӔWT6U@P+!~mD eԴ!hӦh/']B/ҏӿ?a0nhF!X8܌kc&5S6lIa2cKMA!E#ƒdV(kel }}Cq9 N')].uJr  wG xR^[oƜchg`>b$*~ :Eb~,m,-ݖ,Y¬*6X[ݱF=3뭷Y~dó ti zf6~`{v.Ng#{}}jc1X6fm;'_9 r:8q:˜O:ϸ8uJqnv=MmR 4 n3ܣkGݯz=[==<=GTB(/S,]6*-W:#7*e^YDY}UjAyT`#D="b{ų+ʯ:!kJ4Gmt}uC%K7YVfFY .=b?SƕƩȺy چ k5%4m7lqlioZlG+Zz͹mzy]?uuw|"űNwW&e֥ﺱ*|j5kyݭǯg^ykEklD_p߶7Dmo꿻1ml{Mś nLl<9O[$h՛BdҞ@iءG&vVǥ8nRĩ7u\ЭD-u`ֲK³8%yhYѹJº;.! zpg_XQKFAǿ=ȼ:ɹ8ʷ6˶5̵5͵6ζ7ϸ9к<Ѿ?DINU\dlvۀ܊ݖޢ)߯6DScs 2F[p(@Xr4Pm8Ww)Km endstream endobj 94 0 obj <> endobj 111 0 obj <> endobj 112 0 obj <>stream %!PS-Adobe-3.0 %%Creator: Adobe Illustrator(R) 17.0 %%AI8_CreatorVersion: 19.1.0 %%For: (Chris L Henrick) () %%Title: (default-shields.ai) %%CreationDate: 10/23/15 4:02 PM %%Canvassize: 16383 %%BoundingBox: 279 -436 325 -358 %%HiResBoundingBox: 279.878031412762 -435.500000414222 324.878031412762 -358.508521494239 %%DocumentProcessColors: Cyan Magenta Yellow Black %AI5_FileFormat 13.0 %AI12_BuildNumber: 29 %AI3_ColorUsage: Color %AI7_ImageSettings: 0 %%RGBProcessColor: 0 0 0 ([Registration]) %AI3_Cropmarks: 251 -445 356.333333333332 -348.5 %AI3_TemplateBox: 306.5 -396.5 306.5 -396.5 %AI3_TileBox: -74.3333333333339 -684.75 659.666666666666 -108.75 %AI3_DocumentPreview: None %AI5_ArtSize: 14400 14400 %AI5_RulerUnits: 6 %AI9_ColorModel: 1 %AI5_ArtFlags: 0 0 0 1 0 0 1 0 0 %AI5_TargetResolution: 800 %AI5_NumLayers: 4 %AI17_Begin_Content_if_version_gt:17 1 %AI9_OpenToView: 220.137931034483 -343.068965517242 5.8 1241 648 18 1 0 82 133 0 0 0 1 1 0 1 1 0 1 %AI17_Alternate_Content %AI9_OpenToView: 220.137931034483 -343.068965517242 5.8 1241 648 18 1 0 82 133 0 0 0 1 1 0 1 1 0 1 %AI17_End_Versioned_Content %AI5_OpenViewLayers: 7777 %%PageOrigin:-94 -696 %AI7_GridSettings: 72 8 72 8 1 0 0.800000011920929 0.800000011920929 0.800000011920929 0.899999976158142 0.899999976158142 0.899999976158142 %AI9_Flatten: 1 %AI12_CMSettings: 00.MS %%EndComments endstream endobj 113 0 obj <>stream %%BoundingBox: 279 -436 325 -358 %%HiResBoundingBox: 279.878031412762 -435.500000414222 324.878031412762 -358.508521494239 %AI7_Thumbnail: 76 128 8 %%BeginData: 8268 Hex Bytes %0000330000660000990000CC0033000033330033660033990033CC0033FF %0066000066330066660066990066CC0066FF009900009933009966009999 %0099CC0099FF00CC0000CC3300CC6600CC9900CCCC00CCFF00FF3300FF66 %00FF9900FFCC3300003300333300663300993300CC3300FF333300333333 %3333663333993333CC3333FF3366003366333366663366993366CC3366FF %3399003399333399663399993399CC3399FF33CC0033CC3333CC6633CC99 %33CCCC33CCFF33FF0033FF3333FF6633FF9933FFCC33FFFF660000660033 %6600666600996600CC6600FF6633006633336633666633996633CC6633FF %6666006666336666666666996666CC6666FF669900669933669966669999 %6699CC6699FF66CC0066CC3366CC6666CC9966CCCC66CCFF66FF0066FF33 %66FF6666FF9966FFCC66FFFF9900009900339900669900999900CC9900FF %9933009933339933669933999933CC9933FF996600996633996666996699 %9966CC9966FF9999009999339999669999999999CC9999FF99CC0099CC33 %99CC6699CC9999CCCC99CCFF99FF0099FF3399FF6699FF9999FFCC99FFFF %CC0000CC0033CC0066CC0099CC00CCCC00FFCC3300CC3333CC3366CC3399 %CC33CCCC33FFCC6600CC6633CC6666CC6699CC66CCCC66FFCC9900CC9933 %CC9966CC9999CC99CCCC99FFCCCC00CCCC33CCCC66CCCC99CCCCCCCCCCFF %CCFF00CCFF33CCFF66CCFF99CCFFCCCCFFFFFF0033FF0066FF0099FF00CC %FF3300FF3333FF3366FF3399FF33CCFF33FFFF6600FF6633FF6666FF6699 %FF66CCFF66FFFF9900FF9933FF9966FF9999FF99CCFF99FFFFCC00FFCC33 %FFCC66FFCC99FFCCCCFFCCFFFFFF33FFFF66FFFF99FFFFCC110000001100 %000011111111220000002200000022222222440000004400000044444444 %550000005500000055555555770000007700000077777777880000008800 %000088888888AA000000AA000000AAAAAAAABB000000BB000000BBBBBBBB %DD000000DD000000DDDDDDDDEE000000EE000000EEEEEEEE0000000000FF %00FF0000FFFFFF0000FF00FFFFFF00FFFFFF %524C4552FD49277DFF27527D7D527D527D527D527D527D527D527D527D52 %7D527D527D527D527D527D527D527D527D527D527D527D527D527D527D52 %7D527D527D527D527D527D527D527D527D527D527D525252FF277DFD47FF %277DFF277DFD47FF5252FF277DFD47FF527DFF277DFD47FF5252FF277DFD %47FF5252FF277DFD46FFA85252FF277DFD04FFA852A8FD06FFA87D7DFFFF %7D527D527D527DFF7D527DFD04FF7D7DA8FD08FFA852FD06FFA8527D7DFD %04FF7D527D527D52FD05FF527DFF277DFD04FF52F8F8A8FD05FF27F827FF %FFFD07F8FF52F8F8A8FFFF7DF8F8A8FD07FF7DF8F8A8FFFFFFA827FD04F8 %52FFFFFFFD06F87DFD04FF5252FF277DFD04FF7DF8F827FD04FF7DF8F827 %FFFF27F8527D7D527DFFFF27F827FFFF27F87DFD07FF7DF8F8F8FD05FFF8 %527D52F8F8A8FFA87D527D27F852FD05FF277DFF277DFD04FF52F8F8F87D %FFFFFFF8F8F852FFFFF8F8A8FD06FF7DF8F87D7DF827FD07FF52F827F8F8 %A8FD08FF27F87DFD04FF7DF827FD06FF5252FF277DFD04FF7DF852F827FF %FF52F827F827FFFF27F8A8FD07FF52F827F8F8A8FD07FF5252A827F8FD09 %FF27F8A8FFFFFFA8F8F8FD07FF527DFF277DFD04FF52F85227F87DFFF827 %7DF852FFFFFD06F852FFFFFFA8F8F8F852FD0BFFF8F8A8FD07FFA8F8F8FD %04FF27F8F8F87DFD05FF5252FF277DFD04FF7DF87D7DF8277DF8A852F852 %FFFF27F8F8F827F87DFD04FFF8F8F87DFD0AFFA8F8F8FD08FF52F87DFD04 %FF527D52F8F8A8FD04FF5252FF277DFD04FF52F827FF27F8F827FF52F852 %FFFFF8F87DFFA8FD05FF52FD04F8A8FD0AFFF8F8A8FD06FF7DF852FD08FF %52F827FFFFFFA85252FF277DFD04FF7DF852FFA8F8F8A8FF52F852FFFF27 %F8A8FD06FFA8F8F8FF27F827FD0AFFF8F8FD06FFA8F827FD09FF7DF852FD %04FF527DFF277DFD04FF52F827FFFF5227FFFF52F852FFFFF8F87DFFA8FF %A8FFFF27F852FF7DF8F87DFD08FFA8F8F8A8FD04FFA8F8F8A8FFA8FFFFFF %7DA8FFA8F8F852FD04FF5252FF277DFD04FF7DF852FD06FF52F827FFFFFD %06F827FF7DF827FFFFFF52F827FD06FF7DFD06F8A8FFFFF8F82727F8F852 %FFA827FD05F8FD05FF277DFF277DFD04FF52F852FD06FF7DF852FFFFFD07 %F8A8F8F87DFFFFFF7DF8F87DFD05FFA8FD06F87DFF7DFD06F852FFFF27F8 %F8F827FD06FF5252FF277DFD23FFA8FD23FF527DFF277DFD47FF5252FF27 %7DFD47FF5252FF277DFD47FF5252FF277DFD47FF527DFFFD4A2752FF7D52 %7D7D7D527D7D7D527D7D7D527D7D7D527D7D7D527D7D7D527D7D7D527D7D %7D527D7D7D527D7D7D527D7D7D527D7D7D527D7D7D527D7D7D527D7D7D52 %7D7D7D527D7D7D527D7D7D52A8FDFCFFFDD3FF7DFD3C527DFD0EFF7D2752 %275252522752525227525252275252522752525227525252275252522752 %5252275252522752525227525252275252522752525227525252272752FD %0EFF5252FFFFA8FFFFFFA8FFFFFFA8FFFFFFA8FFFFFFA8FFFFFFA8FFFFFF %A8FFFFFFA8FFFFFFA8FFFFFFA8FFFFFFA8FFFFFFA8FFFFFFA8FFFFFFA8FF %FFFF2752FD0EFF7D52FD3AFF5252FD0EFF5252FD3AFF2752FD0EFF5227FD %3AFF5252FD0EFF5252A8FD39FF2752FD0EFF7D52FD04FF7D7DFD05FF527D %FF7D52A8FD04FF7D527DFD08FF7DA8FD05FFA87D527DA8FD04FF7D527D52 %7D52FD04FF5252FD0EFF5252FD04FFF8F87DFFFFFF7DF8F8FF52F8F8FFFF %FFA8F8F87DFD06FFA827F852FD04FF52FD05F8A8FFFFA8FD06F87DFFFFFF %2752FD0EFF7D52FD04FF27F827A8FFFFA8F827FFFFF8F852FFFF52F852FD %06FFA827F8F852FD04FF7DF87D5227F852FFFFFF7D527D27F852FD04FF52 %52FD0EFF5252FD04FFF8F8F827FFFF7DF8F8FFFF7DF8F8A8FFF8F87DFD05 %FFA8F8F852F87DFD04FFA8FFFFFF7DF827FD05FF7DF827FD05FF2752FD0E %FF7D52FD04FF27F827F87DFFA8F827FFFFFF27F87D7DF827FD07FF27FF52 %F852FD08FFA8F852FD04FFA8F8F8FD06FF5252FD0EFF5252FD04FFF82752 %F8F8A87DF827FFFFFF7DF8F827F8A8FD09FF52F87DFD08FF27F87DFD04FF %FD04F87DFD04FF2752FD0EFF5227FD04FF27F8A827F8277DF827FD04FF27 %F8F852FD0AFF52F852FD07FFA8F827FD05FF7D7D27F8F8A8FFFFFF5252FD %0EFF5252A8FFFFFFF8F8A8FFF8F827F8F8FD04FF7DF8F8A8FD0AFF52F87D %FD06FFA827F8A8FD08FF52F827FFFFFF2752FD0EFF7D52FD04FF27F8A8FF %A8F8F8F827FD04FFA8F8F8FD0BFF52F87DFD06FF52F87DFD09FF7DF852FF %FFFF5252FD0EFF5252FD04FFF8F8A8FFFF52F8F8F8FD04FFA8F8F8A8FD0A %FF52F87DFD05FF52F852FFFFA8FFFFFF7DA8FFA8F8F852FFFFFF2752FD0E %FF7D52FD04FFF8F8FD04FF27F827FD04FF7DF8F8FD09FF27FD05F827FFFF %7DF8F8F827F827A8FFFFF8F827F8F8F8FD04FF5252FD0EFF5252FD04FFF8 %F8A8FFFFFFA8F827FD04FFA8F827A8FD08FF27FD05F852FFFFFD07F8A8FF %FF27F8F82727A8FD04FF2752FD0EFF7D52FD3AFF5252FD0EFF5252FD3AFF %2752FD0EFF5227FD3AFF5252FD0EFF5252A8FD39FF2752FD0EFF7D52FD3A %FF5252FD0EFF5252FD3AFF2752FD0EFF7D2752527D5252527D5252527D52 %52527D5252527D5252527D5252527D5252527D5252527D5252527D525252 %7D5252527D5252527D5252527D5252522752FD0EFF525227522752275227 %522752275227522752275227522752275227522752275227522752275227 %522752275227522752275227522752275227522752277DFDFCFFFDFCFFFD %32FFA8FFFFFFA8FFFFFFA8FFFFFFA8FFFFFFA8FFFFFFA8FFFFFFA8FFFFFF %A8FFFFFFA8FFFFFFA8FFFFFFA8FFFFFFA8FD1BFFA8FD3352FD18FF7D27FD %30522727A8FD17FF7D27FD30FF7D27FD18FF7D27A8FD2FFF5227A8FD17FF %7D27FD30FF7D27FD18FF7D27A8FD2FFF5227FD18FF7D27FD30FF7D27FD18 %FF7D27A8FD0DFF7D7DFD05FFA8525252FD05FF527D527D527DA8FD0BFF52 %27A8FD17FFA827FD0DFF7DF8F8FD04FF7DFD05F8A8FFFFA8FD06F8A8FD0B %FF7D27FD18FF7D27A8FD0BFF52F8F827A8FFFFFF52F8527DF8F827FFFFFF %527D5227F852FD0CFF5227A8FD17FF7D27FD0BFF52F82727F8FD08FFA8F8 %27FD05FFA8F827FD0DFF7D27FD18FF7D27A8FD0AFF7D27FFF8F8A8FD07FF %7DF827FD04FFA8F827A8FD0DFF5227A8FD17FF7D27FD0EFFF8F8FD08FF52 %F8A8FD04FFF8F8F8277DFD0CFF7D27FD18FF7D27A8FD0DFFF8F8A8FD06FF %A8F827FD05FF7D5252F8F87DFD0BFF5227FD18FF7D27FD0DFFA8F8F8FD07 %FFF8F8A8FD08FF7DF852FD0BFF7D27FD18FF7D27A8FD0DFFF8F8FD06FF27 %F87DFD09FF52F827FD0BFF5227A8FD17FFA827FD0DFFA8F8F8FD05FF52F8 %52FD06FFA8A8FFA827F87DFD0BFF7D27FD18FF7D27A8FD0AFFA8FD06F87D %FF52F8F827F8F8F8FFFFFFFD05F827A8FD0BFF5227A8FD17FF7D27FD0BFF %7DF8F827F8F8F8A8FF27F8F8F827F827A8FFA852F8F8F852A8FD0CFF7D27 %FD18FF7D27A8FD0BFFA8FFA8FFA8FFFFFFA8FFA8FFA8FFA8FD05FFA8FD0F %FF5227A8FD17FF7D27FD30FF7D27FD18FF7D27A8FD2FFF5227FD18FF7D27 %FD30FF7D27FD18FF7D27A8FD2FFF5227A8FD17FFA827FD30FF7D27FD18FF %7D2727522752275227522752275227522752275227522752275227522752 %27522752275227522752275227522752275227522727A8FD17FFA8527D52 %52527D5252527D5252527D5252527D5252527D5252527D5252527D525252 %7D5252527D5252527D5252527D5252527D52FDFCFFFDECFFA87D527D527D %527D527D527D527D527D527D527D527D527D527D527D527D527D527D527D %FD29FFFD0527522727275227272752272727522727275227272752272727 %52FD042752FD28FFA82752FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF %A8FFA8FFA8FFA8FFA8FFFFFF5252FD29FF277DFD1FFF7D52FD29FF2752FD %1FFF5252FD29FF277DFD1FFF5227FD28FFA82752FD1FFF5252A8FD28FF27 %7DFD1FFF7D52FD28FFA82752FD09FFA852F8FD05FF7D27F8F827A8FD08FF %5252FD29FF277DFD08FFA827F827FD04FFA8F8F827F8F8F8FD08FF7D52FD %28FFA82752FD07FF7DFD04F8FD05FF527DFFA8F8F87DFD07FF5252FD29FF %277DFD07FF52F87DF827FD09FF52F8A8FD07FF7D52FD29FF2752FD07FFA8 %FFFFF8F8FD09FFF8F8A8FD07FF5252FD29FF277DFD0AFFF8F8FD08FF7DF8 %52FD08FF5227FD28FFA82752FD09FFA8F8F8FD07FFA8F8F8FD09FF5252A8 %FD28FF277DFD0AFFF827FD07FF27F8A8FD09FF7D52FD28FFA82752FD0AFF %F8F8FD06FF52F87DFD0AFF5252FD29FF277DFD08FF5252F8F8527DA8FFFF %52F8277D7D52A8FD07FF7D52FD28FFA82752FD07FF7DFD06F87DFF7DFD06 %F827FD07FF5252FD29FF277DFD08FF527D527D527DA8FFA87D527D527D52 %A8FD07FF7D52FD29FF2752FD1FFF5252FD29FF277DFD1FFF5227FD28FFA8 %2752FD1FFF5252A8FD28FF277DFD1FFF7D52FD28FFA82752FD1FFF5252FD %29FF2752FD1F7D5252FD28FFA852FD212752FD15FFFF %%EndData endstream endobj 114 0 obj <>stream %AI12_CompressedDataxr%&p=1L3}&N7/nؖB=QAWQ,UeMRR $ea]?N_#wݯ~up};yw|~3iߣË\_vgƽK볯n~뻇׿A7n˫>zߔQ;2u'&o{,puoo ^}ulwywΆG. (O7]K4xcS|%Co*C!XGo݈_}}Ӈoߞ?웫B]cwz+wP/>{"ׯ_m98z3#~/on_^cȧOoqzk<; Z}+PүW70/\Wû6;?0~*gG.ϓr%af)bq2yV~sxwCws]<_s>{{xQoQ~zJLzw-W\sx‱C;w7_n_I7w_|޸4:;QC0z ag7 ,:m瞜޾~ xM_ܽzeAge~V?cۏFU1F]׿{y5/dwO&h?m?OFIф9OtPS=b?|Oǟݿj}KRmx{MK^KƓ-꺽ލ䫇_c臓W7y{r쓳ׯnnoN.^w}w 'bɟ7ȕvr8WRRٝ\׋WWo-s(s3껓{-{ee鱗ڕZ}?NOe_]}+t%-V-KnՓ~w#_o1JBQ۫o kӋO^y\)Wx5ﯯ޾|?J+<ϭW;WWWxazKP_္~}w_:8n߾zy}rq[ktrZ!JZ5?ׇn~2 4kˇ+ыS)S/;Z>yv_q\Wo(oDX~+b܅rx*D }|'ZOZOjY8SNoDzQ] [Zwtw޿zo'/^ŅP/xv>_hw/jvb,N AKu/_͛/& Klw,6A N /<N/A nP;5T?'jי1`sM'Wo^-x?ybW;{~7zD]}yȼS Oo:a?}=ܿݗݯS'wۯw_߂^YZ 3;oM[;[ 6ή@#`yF2[4 zE,>/eΚȏE6;~@Q}2X`Eߐe{ڝgoH[W^~}߃sߗg Y|7ҧ^[oq?U{>{F7޼}=/œOy<K|ǂTӋ_޿YlF-zp0??V#G+߼i7T>͵|u)TaQmq"}#G"w<.fv᜿}ƭ׭v]wzqxG?Jv\N> _)MiU:]YNt_veI-"E4uO;,ҸJ0)9R\.rs-_`#SشHHM5fӭ/fu[n^dH:w\0.}Y,_,gן~smhy応Yq4,jOsZ-\H:f4d9cI*S6uy8Wg9K钩,~r.̒?Ȁd\X(7ʧKMa%.t.۱9Knp; KO5G_K .C c8 p.eRCqcˋ.EHx..λKK eė^Hho^V?9}HtHE:])-R\H~"av65 o|4uaNi\a"E E_%Hv"s*C__-Ad9@ |{oA$=#yu 5EP3fA |w 7&ps a<@H  t ~p %V9NA@ 78/v1>}oba_`p0pLp`8%9Ce|1qX:=VSHC)32U.B1}#Ꮮ@F%O D,QLn:"VٰqܹawcpMkB0a(O/J!ܹݢ{)*: •\ Kh&G9A4MC)>3"eXnlo;dQt}f=dUXE3r>I9(J!Ewz沽Zd^n.jٽ {}\DvIs ` ޙmRKj; y-ZK%as;VvCfeJ?m YovS>FaSۿ:'?+bQO+(?? )C_1f/f~NH+.$3@"u(D! He3Q4Lrr%3HAQ%ND!#RsHB* Q* [di bP9m8\86uŸ+-bU[#w)Zf{* 0@jXp;1Ő{5:̹=?rztr|~*3ЋlOM> ?Os/ 4 ?. bEr$#hD LC0$;bV"nK-ĶB^g)j7ҙ9͙V4rKxMtpIfuK$k b-ؚtUjiт[QX1$x8+-~]vA,~s޶5 ~7=xڛFߧa5b [?0 I1I* 4irvৎW$'P3փD AȪ! JFw6R%y'v Eܾ?'텎C˃j|ocn@AA0n N{ x8v ^batFc@q1 ?a'~5o~`T$ZBą_A/atGźj9O_tۅ_߼MW~Avrh"Glh8mJa~O%JA3;+[׺kHк]Sk&p>+yFЄm|߾E? r9-)%9_,d6g/:C0C sI0OTf2 y* t$ǨkXu-D\\]?Nyn^=BV~Y}nfU)ߨN%Ev9 cWLUbMv:Y̎'g'/O\PA3Svt 嚀q0s֋yR kؙ}vV.?YO3+"9e϶&M(tg$D]5zeoW<߆ɐ:N_/.Ɠ*ՓMh4\D6Ďp*ATR$"ª sTbUuZEn͞K, q' k`WBl%f)S_E-lW \cvA>ybrD"w,{&E.n!ʦ,D=1V]g /$XJډvl`[6dVI=+2ҡ쬙=bcn~_?.;lž忓{2CM99L7fտ> 5*vޤW7+yvϑ2F+f/F6c[x[njN\m&+F\?c֥t.K㔙 ZKVkJoj~PbM"O[2-Ms5VBayImw+ÆOs̳+sqaJ m8^$j #_1t2'!V٠ 0[ϥszW𛎿r8|.OY:^='Nl[?-?(Uފ4 5m&يMq?}N G _rȖ;[/i^f~֬Q:Y]^QyL\ʂuō*",W(QB,~24uڶ!,Ԅlݬ#AéEqꐜ), %i#s%Ohf;<r?=I+~;ߛ'*,8xp@:"E X0=QnEk#ZqܣYBmCtP+?ȠI7zVUi>g}^܃A[Hށ\c߳.28qMJNZሯQ911qp Y㶪Q#3>oQ7TQ'X;3==6Β-T^j&}REV_~Jhg..yes\j/a R(:Sn(BL$4#sq _ sX"xoV}^čn!o`?.Cf.| _ #2>&;qHL➨~ '@ *Kms\DV9\k]P+Kni)!aby&Ϗ7xwS0R4LtJ9ulfoItfmV-]*?Cƍtڥ&I珤ɬm &Y`Qi?̻Ԭٔ9ڟ[B*fLB]7vЇ?8}?ӇN?R4/ xq;Q6:J< ,nVq*.yėوD Y4\ԩ"['ڭ>kEc4γ '^۟6XxFJ<) +#>Hv cS] +ЉLʻjhtwwhg~m=6$,нq| ,(]v7]`k'sثt[ǵ1rVF*/s8tY\ԑG<{CxwyͪK Hʶ~ a~@_:\:H8@F OI,;&,qj)Cwǁ=Ɲ:.ҳlڟz,uߢڦyŞ~pē/NTD9=+|GZ!Zr⎼hK\.JB4㋏zptbrW jհK']4HfԎG*7YڃҢ.Fp&/sYU1͎"ַ mlRQe.L m˛dfW:Jg-[^ :YͭȞqh,߼55Vef8aT`k%uqH΁1٤<8X!ZߛLEoܘRo)y 7dg#`ebvhC^b#ewCG_D[dopL [lE0?YGAbEݸ o5ή]q}65[•rpڷbx=]q}%gSUaD7NK '+.8V%"x;4ݛT}`o`Wk@Yo9QYww yiԆZra=._z ^{as+ a`,. (.Ǚ7IP\gg Z_<{jy? ,{8پ?>ܐNc0 eTpƵe62W7V^=/WE`W=_9P._WkK4ݹْ}ljm]j'#h t!ߍr;!#v/ڍzv$`P 1rtr)+kπ`|\6ŠWouϸp|[I}W/PӍ'SlEҳقIV.Q"C{YilJ7C+W {@On*m#'34VpqIϫW  ew4kPi#zp&x> Ht;쳞L=v?Sq9Jp?ɷ\VUt={ܛ}7$ʾg ف`q}J -g'ϣ?I[_Y(xeCR.("Pd<\_y !3vYs>i}̙Z{+ޖ7-cVWc\Ɛ\\}]t+TmBc'~Wx0A9L7P΍||΄;QVu~XnR)[DS&8G; cg8&#)l& ~3M݇=UKcƙ, @߸x^Y+` e̳be> B\n<7`H^Bۛ 枬={dU3,yv;/?^[vdu|Jeh~~u}Ynw{פ8S5Y?{;[A;]9EY&l/ꦋZٸpŮR`ᖦ3]\fle9˖7^"xY`wҰo;vdM݇=UJ%ji*(/aB]o+ `Q@밄)-#^Uݱy{Eۥ¥b' -#ۗٴr,oۼ&6xkL]lY(o8]4_/N2cHXb.s bNKt }Ux=[rgVw+hy3r S9{_ǭ}M,yF,S$=⦓YkYL3_7_wHzao \K^.֯ւ0>ZMh U}䎟Uv ƭ-h*ht\PEw4=NV8~<ydw=`z֍0MG+Nʄ>;bGFX,z*C}";z}7p{o؂?Zޮ5ZT?.]P!xa"ffs%09组(-nvÃr q"4|?e-Tpd/2a⇰0JR.uϸϣǴϋ k/Ш5|P Vt׍pBXz7eᱥ kɣ[^(λ[,B\?>8xnYQҥzAݺ !m"sc=a݇=f+A5qX\]l@\0~uJ(\'uZJg.+rt)=L4GLv-dRLv4)٫NY*e)~Y ,c;4^8CC>}{wsG-eF7qջwwOoy |e71:OK{xُJgΐӇw7/]=|hON@xu0/~wwzd^;' Y(k vuur/"嘐bĭ/W+~BkSJ_M3f߃]b A`IpY5#$f .qzG~d0xrf?pe.D̪AP-(FFC.Ӊ ]  AD߰.:2czpb: 1Qo9Fux }..yjXXepa6E1<=`'* nmQ\bsUcUG$b_4C5Bǒo@Nۤ.ȨkCv!$GIkRh,ցౖ{qIB^^oeb5YK+C;٩'+ې X4v#eh(=+~=r0lHoYȳ)!-yapUN`k=t~/(-1 |JcDE3O±}^mMqBbp$`.`0pVϳ  xc F> 9!OޑYnSQN n=*`QLdsR?ѶS ӊvlmWTGQ 8B>7)< ;.!C勄'+ojՂDns,`y:=wIkq dA '+ y#3}< ΤR)`)$>z> =`:du`qg~1[m>;}iOBR:/`@&@NEg@^H!XSg)ɤ^.oav! EF0s;uFVWg=էZ]M[ LlܼafrdT`dyb`p? 33԰A! d P*PEZs'%l#p $E+GD <%@}oLTf@H=xk!AUH S- X©U.َ* qEE(Vi4h(,|%a3%bt!4@v;XEEF 48ץ Ga8) Eu 43BR6%%180m5p(zFX!nq,SE 8NF7Yh]9$,k:ɱ;KV{QHB/4,@U5=BI1`_fK 'Au0RɝcDȰ' C˽<ܠH5'B## Av|&us[nc-Wk"-¹0юCG&~& So7b,8.X ,W1Q1 DLȦ5NtSrӖyRE`G90b褃mI$ezEؤ#JX XD܃&m)yrrF G [RvhiS3Rf,PaLi6[Cǵ&sm6dධV4U)pYD?b%ZXi(Ei $MMt6Hy:c (UAF ƈRzԈCl)MMzh4,M r3OgA":M&WY?uJJqd1%^.LVNE;MFL ֙nOh׶c9~vw9CQ(',GlI#PGvbQ`U%.7p_`,u>^+5`B pJX pOPF-Ș&S' %gĈ*BJyiVCdðcxb,p̠\4UƮtby#9y˛G8&Dt$"})'A<"3Z#[ly#1ȢfX` 6L&8cAgƕ协F$0V0G8sH.G.$̅ѥ"a~̥ D8@HVIky15Rz{cU U82M٘&ʆ6"ULgh=d1{y^`1Mdh<>i*#h?wiûJm=M>rqR8eg@f'*1#h:b{1V1ru8/TØ\B5[ dGiJ Za4x論,+ā8 %Xt~.. d^ #yzԌK>ᚌ ̖b못53TNiذ-One؃+Y-W<& vbX/]V`$H VJXljFw )SꏌY_N'l䅪ظRVQ׀'eT K.Ξ2`<GBǞ4mn#@8.[rotPtB{RS9 R;{:#ORO 5%3 IA6ʃGvLKS`:g60ŽLa\h[:~E̚2! 9O}Ozp#0LM)jBēl"Q AW5l¤-O9zl{;%o*~U^ھPʾsq7TЖiig˓^OJg&j | m;na7 )h htt4(%nqhP R(NkH~-Q4 P(&9&uF$K&ċ,H_H>zk0Gnm[?E:4(4dBo1vl"yNCZ.KÇ+7֗f :OvQfsXjFpĞ:Bǽڡi#m>H.*n9htҩ[4svia#%@pƉy*!py*ojJlnTӌnӕf騛)H<̛#4yb;:`GLY26ONnorcӵǷ.̊ vшkH>1c 1(0o0pxA%plIgSiFT@,[gRFYYBD9`t̡3@ 6~{ʕn\/iǮgP0,L6#3K5myC *r2h]mKL7~S%HI$jĦ{[On6?`1ғo>?R2dmf-1wԘnj0QC}JK.X{'47"CqQo26k mS6}EzqA['{: 豚O367^oFS'Ò^6Mb.h{T쒑hL~eY݈2:oCت()5KL\ {}4b Omn hi0FmNP^ʳ*@(Z_\o!n<@tԿ[43YՐGQѽnRJ^y JZmG6'7><Ϻ+M-MFJ#tV_ehG+Ov(C>xj$jT*9|#$\>OSCdT9[DŢhK' ܈[a \%<3ڎT#rUfT+_zlCi #i D3|M]x^צ+O1Ȉd( BtT9n鳝Ɇ=b0ARG8;uB(iWD"gNn WGqxTD\,SDW (*e QDPP|eп6SK\>I\#yiFLaҲBJAL"o@ GI`=+!Gz֘^oʦ:ZubH4j( s^ zqKu9{,R^H(V_7iKM):SQԍ=mRm_X'DF44y٩W4I3ХUbD`y D%/K\v-N"l!{]1Iw8H5^DBԵQ|$( 2z( iT/x[e;rIѪAQ:^1VVH?%6drUY)mjҨB Yk:V4 +%TuRT9=rF=GH)46%@BN ib֥SeO s 50@ 2הPI| 2VSÁ4j\(Q̘TXW4M)\Ί345^tcv* \Ω{A3T`%MrSQ* [cv(fhj1 (s쫨ny!1-Dc p9.V 1-Y`P<]h"n,|ahq"Vxgs/6gԉ#!NfhL p[y^ m~h)Q[hJe# zʦ D@UPІoiSS1%kP31xZ&l. ƑhCϽ5A7!`] ܳj,K8goaښRQOї75iR4f ]q qNA 8DuWöǭ8.Pd\SK 6v-Q}nNt43ES'!xzFo}кpͰԵ4#[wzR9mBE"Ak "M h@~$k@"$hJ(z ^&8D׀C4| 8D[8D5ЌlנDL0}5^_  $Ak@" _ 1AmABL~5Dk &Dk `P7a &`PP P6Aph ~` U5&ClFoapx(&F 8kjHM P"lҖ<(U'4}iOڄphFfft<9KKVr﷉QT(A\B74[F;M Rk4aȩp3,u3O1EHBЖݏ<XŎ{ 9=- D@ {c[Brգd[-]pf/M&HmAmU_03l}SUB[jƦߺ/OD;tTu( p/\аmţ-eke{'˜iJ.?&Ԗ(ci[a8iw/;W2{zT^,aw= h8HDRf$.<5#  O"fI LOۥ@-6r%Vvd4o5WE!u աzS^Z+j]`EC%/Rΰ.5 ki_%􋪁iǶSs4~Ȳ%)qm&u& *ŕR$* aa(`*Fz!+l#hhzS3ntQOzMk ߔH#@uOk1_z+\5tG ITʨZccC[mE|D ~Oo>N7D0<͖-8Q@yӏD9Bޔ+xn9W}{yZm!Ǐ US֫C|AMHh u!=D=ਫ d;$ĩҞE\0G_S@U/dAD%* S&>MJv̆\W%^fL5 M=H6=xb>~>tV ygО-O01A95#qRS9Y'{sbKX4{^kXĹ!J5$¦[Zܼ|Pl st-#UkʶK1_ofbzVd>v ='GErݽ2qaM[#4SieU7 ӦqZ(%ުsl~>V1v9yu)*`X%Jհv|Ǩ*J)(EnJ#w,as4 ɶ}iJTTTR:O7ҠyU_,%7+CMU"Ucӌoӗ5eCv+{U&=7h\³ [uS*^xN([}v.7ګ Reh1a~5D]{u mf<5?Yoo58bdɴ4 C "'w'2r16nd2!"u>$"?/lu)Q}AQWŚ$8uCM_~ C]~J 4#Ѽ^i|hXS{< T!1(6/A> ; /@&\Xb4ŏroui+`ۦ^͗Zʹzahu{(A;!T/ %f<5?@0jhX1eV>- $ނ,ZE*B LjK450hrU=yrm4.n)Q}JʮKa}`6 s JMuyc֓‘({C.2OO=| h[a{qpq( n D$ͨz+T$xׂ%) A*&h 2׈c7d hю-=dDUÊ!2#hbkAļ;,&b֏9`&(E8 K[|4)Ƶ` >t!Cס ]*rd&ѵq6@clq(KvtQ:B5gV0[XIeś6LWWsf5Samͽۀꚿ~kch!QP՚5VT7Aj jh8_5j>-`&ndRf> UX[~תo%`RwϨqxsۨTw+3H0|nd yJ.שy0ŀ*MpRCD{QMt|8EEoCḠ~ E[,!ee'g"Iw%}܌kC 4gV`JrZ&ro8q'.yPvƴFsf4SA*MdʜǠjȕQY16H6@@*AvOfBRsm(MܤYcvxܹMpAu<U+Gǭ kJM5) 5No/Z-#`1~<}͔-l9*d,K ܢ4 u]dž6J4gV??Y7AA6P 7ޢvJLP20Tu-/UF?X^(fD-Uc17b~mdLmp؂2k`"Bquvꖟ]eAw']_*d/o^ݻN>{Q\Z;;}^47oS_{|{T/e}iGwÿgW_7ñ7x?FE7dכW~fgo7ݫ}.?|th._u8SwA =xj *4V$צҲho4o<awDLfRW~n籼ot^+Ϯ_7/>߉|@c5eD!'1ծ뀞V}SUA6[b6AxH,>0Z{&zIn*8o:9dL+ jf=8!|E} ; %H Nb}Koiٗ{]iPπ[Ԉ4Q\k g+05R`֖F:QQqٗ(T&AiHg$" b>1,b 1h)Z ~+4#d":ØŘ`=SDQqlOe|# Edal{޿YeD#|eX@]'6AzmDW=)g@RF zopa7"$ϔf%22I%dB"_F#&mtܾRbBj@XԐKDŵ0yh1Pn<:q(pI ȱD/^4Jh8 2C.}i~(\ mJE's_Ղ: H_&>ir'H $Ih6{\ `G qa"GeBv$E#]IRWF0ͪw*Hx+';WF8SGFꂖK^Qq{=ޡxyJ>I3mbD9 ؒA89@'zcG SLEƷNA|(3y_xSXD<- j%vqő׋zq8Hu )LEhቕ Bn P bCZd8M"/b}%+PGFBqGA:rNb@iHY,%Z!ÂRkJ>#TW̾+6T`L1zIp ^lF2b07f\]Ke\۠׮ṡ2 Cv|.Aɸ,AI/(~1e!q$*HUdrԗ3nqLGh brڙ̤pd`  ->H.}<_TS =jhbg1㞆++֗A3Pb3p4H9Oݝ[Ѽ{ u%nnK@P]Xe,\ Vӷ7I l3ց(j6QׁHQd (s +8 E2 H AŭT2*aލ3c dJ%g ] DV' .1ے59X ;|7jsH21qL1@{O~Br7C 0G jHg,)S^劑Fb[_ʒ[GEiVd)&?!,rAg>vuX h2NZ7ߦ*2I4R< #!,iKq„B3gL'J[C.{hS%`R/}W! 9G<PnlDBc2L(€ܕLō!VnWZf2L* 2M+.4XCኸ!:ld^LAR#h]I<njVay;Bϐ9Сhnwb.->$8gG{R~~+Xݖ` y+ 4+GI7ʜH#"JhX =ыT$ؓ8pTؐ/ Gzk'g܍_^xF}3+3S(0!yH;N+JCA42*-a{OIXNB 2s ACe9IcJF.2OR>$:v8BzS-2rZY';_('wF_SԵ^-[5(ڋM<+TcmV !ml(OD_ʑD*娘FjG(:/2ydڤvCM[AVDD2۔IT"2RJfaK5edrq-pJ$f=hdd$PA=yāX+^r"VP+-*2zHP.+/u"Q/eeD^>"礲 4R+o"pȕHdjŭQaUZ](2[/#b G739]͐#:Q:R&1tvNW :/zW0[τK"k F_|R>(Ax_5R:QFuWn[~%9d(IƍwiFOIپMcOkBלdʢ dEOU&{"8AhD*FS]A4"S.0P|w ,a(&v&8049Xi W S*$sI1m5'enj1<R. a]#JZO4kr̙jg c"T`zSi nGODĠ D:y額|>b(^D `!e)Y@|ysZ/b HJ((,7=Jϰ+QY$+ZFJ2OgD$ajIRR\h)kI̒`I`/ N.'1';qeIIgjXx FB A'A:4ٙ1Mf9l !yj6A{Z;"+N !筈ʪʟ\H9 |g:Q޼4vpVzdzpځ6Dtv]G;- Ŧ቞f'=\LdL_=յ X~~eZg8Fo<$[[Jk9P*Q v >,scYqo' C,;OJj$ƪĬ絙-<7g&0sm@wjV[ß\瘀&RΝE~lHB1IYs.gꠈPv*$¢6Em-7me>W**MH3nwq\m&fݶ@LvU?--Ƴq_s767{<É j̆c0v,q2IFD]1YF[N >z@-L_>rvgKŘ*q /c/k͡!FlCZ)WX_w}[S>:wJHS$,أpi%JXϛd/3 )8CzC;#GPM;B֯c sdžfȶ0cC #g2BۃS<{>v璳UQ`:ozZ7dFj}μ31U-GQ\3\]S=nsJ z|cln؆Gb.H1tW6)=c)xhP%aCץP>+#n` J#zp#Sx8ɵsƋĕ4+@Y)̣,T".߅&[A>.0y'8Ÿܷ%SR=4Ὲaۺt,@m󮢭m~z[W̮ybjl@e8AѼ|aب/E׆ܨFL-eJv(1$z5욓.# CZ^/uJq' O|ò- 0 X J(׾ahpVKZwi8r]MT~9LYXPy.b7Ɯs?ZK=!s3vrQ4B NF&jO kDm+4.Oz [-%u4眍I9*GGu': a@`e{v<̜&p A%sM: +V8YH7ֵT E5_:X[Sk9TG#l.<5FĹD#a)×9/welOu07cӉ~ߨAPXϯv.+ {i{E60*rET]ڢM)22ts|v Ԋ&^\͕9g#sEjwBʪ>L NJ-_79֠1dp}( JCƽzxCl%G;.X$p/Eҟx^y q]fƹp/]#D25!h_CnO8)>!l  {&FF  `LbkVF))RYGI&"To!%=PbsV?F!r̯r+ZmC<=?ฎmHHܘF|$j/)k&,tX6jK@$$ܝfc^cL!DFͅe+$*y>ϔƖe^Mdv2MrN־c͒ 9?pPpZRƐ)eYdc13\+*AְA` Xl_g!G_A3&;O.nԹ$RBT7`tή{Ar 2b%OZ_bm9p ]2Qdx>טw !bt!|DzuG:+ XA Eӈb8F~G81괙SC7鱩 YX=X%qyi;skdJuxr@4-FeHd5j (qhsYz"SdSgC}ޤQ# GV1?-eV1^l#PC >Us@D^R j{M (=(4ID\ q-WgBٻg"l(#xocݣ0 frv'^+-]1z'nR{7uesFP)_/:Zti4 s٣@!iLOyzpc%8' ΤJ8 K XSȇsH Q% >W4@Qu7Hൡ ;)XͣԴL 5K3ދP~_/qgĨ)J9ڱo;B=s?& o?x##Z #ϧeI#`y`4pwMe-vCɷo8Meju --<ÕZe|Z|KS%P+ZuR ]`GzPIpo鸝\ٓ3# cӧwRvFGH=戼Mp=bh8(r`+Nv0s'cuǻy r=(2;e󊐫L0C?XPbΤ`~.3&"018t}TN=XMn PeΛ׈ @x6q^}>ۮUk =J}V /!MEe YDhcoA#A!ή8q)R0뫄&<SkGy]JkOY#cP RRJR"R͘oWû|>ʒύ`"sZ];* bc7i=gfwekr+oxQ*%% ˪5"{c(!Uϻ/ !3? Džk6H<)J$(iU.4^ =~|=zZS{;?_Xe F@EcnNz o &>}G'mx}p\Sz=Ycq7rŢm6FeYbfmssVU-hXf{xKv47z~F+f#usPFԨE)J z֭ vzr%R4\]~. +8_|n f 1q[ h _qCԹT ="ri̲J+H ";(F[0業Qw lmBՔ(c A68R7\h^-p]8L@RTN_A5~EןWٳ)Dx#[9gn\ y0dl56TمA5^#1̼#({?q);>Q_e3m{Zsc?:VR3b5կRGӎ޵T%MZq_;4Q*=֓agv\9&ײc.ЁmKD:]p a$9, 搝X۫Nkyȓ%[v 6E= ([f.wr=m}i:'F+F(d?]xekih3WΛ`FHRPL|kfB2k-bG1mzB¶g湔CKF"fél:10̻qn؜оVg /xR.Ҏ5gL|,x7(:wRŢRXqt]OTXY?@id3tJ^6xAHQL.AouFbU*5C#;0,i$^/M*:êA˽I޵9j@-`QFŗ5Gi`nS('F_cf)<:2m[ Ć1i>8py qHr4 -([x]*k' =hUB +988p|(CqqTz9YfQ(!Z9<ntiahž!jh Be^54H4ӎwq)%502~8jLps{=gمfN2P<1an]͉>e3!  m` ~W^bQ݀iF~6"/qQP !)lm'(o$GA힍&^p_,utr (|iXe|n:a3J4^G׸n-e9M-Nk0aJItL@S|3nJ(`.(Gk>nXy`*+YVo(<1ae=jU~av,]ZTDf{\bm\UV sE B%|ê_5 sm],Jʔ/GEgl9 s~ߨ9*±Z-1+:b@BNDmdn}Xǩ;5M|YS|&P0{em Aq^2`vʀWѸMIQK@IY[Ƃnpٷ6TUt D-"E&21 qy_rzW'|!J)hfBaw]K# c9TcpN9Zf=7 ye+˷HY%%(PQ\z\84Tieu)$c5bѭE*D.Jf2*mw/|d|$RZ49 ir'B1 ӻ}¯YpQ>}29N0penx #' ‚d7Qޖ-8`e"#T`;?(3ޑHU@Ec!SbE>op!P}P1AG>8Ht.[ZQ2seiC`(l 㴉ʃ0nӅ; O?eUP{,!ޛD :_|= ]I2N`cizYchT<(`InMKF)MJ0EcA5#QXl<' jM-*G[ mL\q,JAo0rhF Q$>ZY9뛚ֈ"ƒ?y!@<¯7UfE< =3Y=aY SINqcA;)s\Vҙz,^ƃD_w )s~HpL|f$`ʍ\X\*n+Uh*m6R\IƊc("|x-n=pKB#׽ׇ]x̼r %m+obNUlBBi? /᤯U4h1kQzlq Hi|훏@ʉ#FJ" ݪb uKTfl%9SQ)}mӍR]++ Aᅚ#Xxsrp݌yDr\=FszhC>ۨə"ꬃ37|]Ic(R0I[QtY;GH_ v5Nvm>=ns€0dͼrE<+s*e >SF^ƳX_M;l36F&{ SX~}8G(>>ĺwe5"Ll8]{Pec{P1tΡW*:[WsPD4o\) D꜁p{nȁ vB'ٸeɤZ52ho"kفφVT 7o{h PA_LH?JMIRlvIK^~>ˆrD:=bT@\GgK MP/"H6`O~s4c 48ic1WwԡHbR-X9Q9bZ8]i#o[O}sX*$N<=VdDz/``̹2B,ҍ桘Ҿ9w]V[}դ3Sn&F9l;Lt䬍Lu9(MR9R\洰Y#ZIyk^[C{yO=. iM!m( ?.6ڡXwfeJY.GƧbsE#'N0Heb䋼yZEcipĮZ=_&'LjJn_uX1Ix>qkv%p6.sk-Pw DG*u +j#UޓdZVX 3][kTίCw,2 D(sdሊ9z58c[]78څwisU0dѬ`ҡB8*G4*A`Drs_23”G@ez1!f\ӟ8>b>ԽVw)b ~6l wqAIlcVX_ivW\lLGOu$+SzP?17靉 U'Ģ:#[F:tiqyL謇=b.聼Gq@kƊ4hmHv^FaA h@9>(l+pO0B5Z@BEfJpcqNU WhW9bf?ޕmݕ}Gx]@yؙ2I_=·wc-<Otyi%/ۜTu8.% Xb"TG [Xlie b$\+~սdbhUԄZs M;$i|0 d˄sN[=4fH!F~EӴR$Q^of*u=B Zwz9zٿyU@)KKaĥBFݮ:FrOW疏Us}Ɔ}_LD'Se |k&qSH^&4Aw{sx Z 1$dlet=0}X댏5w&NK=1cQW0ڡmZd1z =*|DJDFF6~+.kws???-;??Ͻ~/s; l-Op1G;`>U(.Ál|ݬ5ȁ7 w{MfY kz*F6D D{q`fm\NُevF'+X:$=˲lǝK+'t?{(Jd$)\c4ѪKTqڷ@T{$XijO{4!ͺ/P_Gq_T| /J{er*X7oz*e{ߌo4=){D˿UB3w*߸9M2oC?͔s,< W+ட(S?pH1ݺ0hԅGjBi2~@Zwlӹ|(D7(}\ʓ~Ycn>z n$?Dr~]8g id AӠB7B9a$s{=` 9nP+^ܻ&\&R:A߀tx-;Ƨ'A_M?X¶w91l9h8k-öDՋ"Ni3o5(ӛ_~V[[6(L&W~#y$War7yЯqMQdHl8|@3İ^{q7!pVn .j>AޔNɓ fN+Pt,IoQ߀56;"".\7ڛp>q[~.S&\͂pmH!ݩuluNE5Kߑ8$n\ki7 ϓI1nܶn6$ fZj6%b@[j NR۸llh5^tllX) Pl1s>YjMԳ>'kjj[7Q'Ժ17ruщs_Xn`uՑ"q7ѹA1n<5[J⭕FHƆQUx2*FwCA&Nbəœf`Qa鉕fɷ4i*o4tf'Dal)d#^тNsycEEn hu538?0(qX$h7b9h>3u6Q}zSEXb3S@6ə0?Y%N欌$ݴl;EK:f3SIJW܉4yKubo2zOAoߨWhMؖw2 UftKz721S^aIIfbnS) cMΓ ˘yf".BF@FTrJXcJEaĵܐcO}ۧzP'xWV| jQýH~m3r7zxfOgA97a4J'Yo0jXͤ7R!70O;?6=Љ/h[ ]XYU~3*KBϛ1F3Nfeta< \٠Z&KI f-yDx)reaKd2wۈ^bM6r o۹'zsx{{9>~~*^z<ތ]a7ZsuC 'Hw(KGͼ>m_ŽW6$cfҞ{#qyIyCn.T߰H̄.-Wȷ|n[?۷(7ҖMĂVF[Z߼S{贕AOGKֽ%ο\G(-PV =^i(JhZ~;E{%i b.+A{ƀ2m;Ng&`հbϞz>U?fϢ1ԒQY ۏObgA7{hg,' ljN`BL͞ -3G-,x+9+>r.I% ̋ŠgHu2Z_hq%J6ȳ9.x_(Z/"qQE";FHr&?Q& (ZoK[rag-lS%`Py9m!D1=Vl?hP;Ӝ$ZihB&iO ?i\|hJZ8|h&r1gX D\En~hZYzZ7=,6?k*NVYzh3Vn=H uVF5ތbUO$Zu ӝjn?H$/G?}h \̟ؤ΂K)}fg9p4g7ެߔY>ZrO,1aSֈ,:3T2LYN"q3L?2ed/f1>$(37hQ7.v .ߔX6`; K/ld\X<.}_FCG AOCWx+~7"'Kn+bߥ=ņr#b2\:T>gNj8V7ÕQZ~~f: 7!O=!C(ioq\Nf=i'դ$]o `C))74w~\#1S752ˑƻ2KEV\yjYWsl⼞Ɖq숄Ƅ*rUr^*z?|}r^i2R96Xbߩ1"k)oW ݕ"yh:7-Us=r`UiTM~=eW(Mear-5_$F#HLp_q_iHeG$A Plk8p`cȯ7 xl,X{YHj/~fRN-d3P0`y>ѯY*}2A~ՖCAg&c~{ x]zeހȯLw<<OkʊrY~ zg;1<Fv]t_(W͸нЯ4Dk;ЯFKBFF8,E/~l_ A: zUz;ƱM|Utn#7ߕix~ JA?Ҧ6f$Ry+Q\VV_?A{5L㞻 RxXګV%GIEN]>z٧hB%dݤӡOzlsMDvF)&MX"%%KlHϦ!m.dCc84POG1nh#ZSϛ5RQ_&i ( @ ( $# ts,+7jݰP4IZ#7E yA[K6 :IoOHlf|:p'.6.>ċٖe; CNdL:5v Jdp?}ltοX3?- cIQBٚT碲HMȣxz<@Y|3 [!ey #lLF)=M$8"Ʈlr05@UW4A¤16IJ&p׏v&h0y0oGq`NuvO7 wDa )Rˉd:I`g_w̓zIP ۺoإ40oKW:16 EQ 9zIC80@r-pR,pR4T*3*t0(k]2Bu6RT6_>C_J5Y ,$~/m3"^)&&փi9.x& x ɩ  -̯`E9Ax4ĺ yM´{21- Ǒn$)eFb.+VAؼVhh*L`X@캙x XIz21Vg01ΛI9'tt86Il%K:PA A 4VG<4Rb%1>p>,य़S E˱SsiҦ*B9j,57ҨDޒ4JM@YZ r]~v+# Tk9)u D NDk({6DKom9{^-$`AOd'M:g&{ l+IbOjjc$[dM69HD38=!ƣىtDG[F C"%":soXD~JT)gb/ !)d^k3هsr3)bDR~-8lHAX  E1z7ljQ'ZUH<'#L(աHxBZgߙYT=[m(^xZ'+sd;@6=Dx 9K63k]|= B/-4o!#8 @H}. oŠ$YyczYF3t֨*XU'a:m:-+_]E#VP24) X %O se ؂4Y!i jEphj [7luJO_~:'|<4P < cu nK_@ g$<8pG# (V;V E?,__H@{`R\O&uI:P@/;T)PןP@H(_+ş5sP@a4% HCJ|uZـn UЀӋHS[io_߫9Z `n- ) ;#⶛hRnWT\Hgo B͆$ wir71!oX4Uh?,؇Rt y(ש7b Oϕ0Z5g/`(\E&n*w|7 P PV@`1ڬ ʋ4d @D$a;xJ7Pފ.zty] ϛ7 ZVd~HU69C~nB7P<J.V'z?R+p?4(Z[?%L#U+km=:r( J7CipXPyS0&?v3M}PNB\{NenIv,dSeq^Ke1iy l?",>x_I}y~EJ7')Lظ?Im|E(7팓9)1=RΟ Ow%"$ V-S%#Ob'a D@`Spff}=Oj$h-ϑ6m|~>֙{0lJ\*9$qSXǻ A@]ADv"[[7^V@J7@w7{5~P.yWdh~FQ扖y3Wۨ>X(|-o7 |Fj%{P%={D-]҆Ywz6 I溁#铠G#cN5 7&1n8RL<{n&_ 1zDhPx\U/Bt(*M`#ۡ&v4Ų8X9:} \Q(u9QM  fxfe\&?sB-hB} 3;Q =rEHir&D~CF|MpWX7@9..Bic>0pqUg􄾡T5+o!OQ?odŐYl[J8 *n)l+7~PÒل6k fCMoyc]1l|S+WE.ۓF [S%4-lh&˼D팵Ajm=i29¦^G u:(i 冣΢0kAjޓ$~@ˤmYp&x-_/Ι֒-x*[|Û+Djƺ8~ˬOÞo|<8Z +cQŘS&7$ٶs$X2LwqhXX 7U}YCB0)Jړ fv78,ܯ47JXj-`}v3{.P`Q_0|k x_rk`oA syӨotqQnSFVěED@uiv]Eq+n:ה\ |rq0.Ueo? V2$bBDr@[DCD %0>Z“iY_-JJ~gB&swB9kX0a͉ cWizwуu0p,VxP o9V&XR1tӉね !`7*ͫ:txͩ"`.@:fd Q!lQ͛> tP%5ѡh\od)F!=M39RQ5=F!!YQfy j ͝gb JhI$MQu=W5L7&+|As@pFw#P#.cL/w4I- jdP2Ru!y#mM,#,@Ec=?ZQ/Kߖ?xDP!'`Qǃ>D)5k'tH~ݰ!qRܰ!+b\䊛,=HPȳ{9BCOB?ӂq Dų!?!0j=ϗO}?ck@g7gO%3θ_,^O(6g#Kmz{Xg^~azӗHI](3’N3Ѿ;XЀO^ N[v_n'llp:0˯/C) 2\ BX~ ~!|n:ϓSƆ|`pʈ!GM=cސF(CAA۸W\1QٷL5% [S, '8e! 5%MS{ I qh>Wz+"K  lPC^Z=ԫ!}9: @2W3wz4.z)Btae5h[z)v<5{M]5Vm1|TB 1Mu#\YYk{FPNMFYNx1v)CkE=`01>= =U~IHxFNGG/q[isj/2ʄcȇ*0ݣH.Dp_` ,DsG V{}q>P<(Icx͛ue>1I_Sa7K~m89vLB:1%˜2ttV9)LtM hmTjizJ8 v>:$1YAgȝsNRt5,Be UD$!n#|SՎ5V) NdIrqh*'V3F݊3=6$ԙBVt3K9$B89RguB6F[ [hZG(RnK/UQZx0Bϒj܇UT68l%q x? c! `׭>7z^ؑңn3IJvѫ(e 1xސu ) \.jx?Oj@#~Q 2לEx@ѼsL@4q Լl'W2~S4ѹ "YVa:{ ^E%89zT_ք fqpϑ.y 6ԋg/z#Ȣiz< IMV^Zl͕e֠8l;1hzΌpFb\߳) ˦mOFѤ+ $vT(=^gcAG&Q!3LXtX+H !n@Č۝9n#mP=Rk4;ey]DU`q p#ИJpL:\yw}M^kz3rP=q CIO*V>tPy)k}^Xbl.yܺFcf, Gz`]e4D(pLj}eϨew胤3ief(9Rr:<Ԫң.JW-^tւ>K\rGR  Wz~dh-_ݫoy*}\ :ǍxLÇXaπz]g\z9֕} mak6Q0r"f`sv teZUeߕKb:bɢugXyK^,^Tm"FĦc3IZ 9`(cpѫ37^sv=W/VBk%"?9ai졮~/.,N/aR$X6vkaZ kYbIGӋml\d)K g'0VvRSrnom2B%4M9_L5u Gxb_DMEn)mBN MX8 XjQN#0 ҭ\F=js ep>d%af:zh`3 6׹R|~.ܿey笞˶gn Nswkny{  !ڌZ%QsiQANqa97:F(qv$!>c~_f{$9H3Q5+?-Z]!%wECxcż4>a6m`04": 嶌x' (n_DDZ3gxWS]U)&ͼpqUP!p3߻bJd+d%uۆ^öb~b:Df&qf*qPz5T8tWGtz߱XULIJqmL=$DB\ tTLN皲 f>,.tL-䕗g&Ԩ<_p* i " |16 Iu^$9jDŌqu_LK N-Ϙ32Ksi2o3gt`м2r!Ɔ\;5;(&;{9rbvl rB-;X҅;*iU ||yZ,ڹ\B}Ē)Q ]RJ~Hi1qb00os e|k+c+^ՈيC{;Ք]]ywP##4~ag2O4짋nVxkⓢgލW~2 3)^Dh·7-?pA@HNsNZ+6;hx mAn3ss @9m>CB Ȯ e5<[u2'5ѥFƀa;yWb_HIo A=89.yY\7c zz}tlOεt]5by #44uG@;҃k6sOV^fxX;Ӛ%IGZQڭFvL! KjZX`*T>|sE(!!=౯sep3WJDD.߅40vaG{+ Zʯ<0km{e?cJ4;Eońa \ 둁-?SX_eQDmEɴ)Al( G`-cuνX [#$Ӡ6 4y12"0.vLl^Qsb+=ϫ:rV8!6+cΖ_ i Ԣq֦sJ8 .w%d.Xw@]5ڥT>T% =RQbQ-m9.3 ȾiFGlqnA26GS|yc=0y)U-{Mq0y99ZQFLg Ӕe2oy )O+}7^9q4"sV]W/=]& I`oqCw5VuW^ma}ܥvċĄeIl[t>o\L_Pjx; #䂊g-FdQ5uW6k_aBL>xQڛnؓ PE?R+vH?4es; oI^oAiQ;4*͈4P 2ltH,^sEedJ2$dly#0 m"ҤP/y:콰X ؝bWwE|,);j(lO2 7\c*>Ckl5`6hYaac>07{n9&y}n<)s(bJ MƏ4{T~̇;!ةp ZR28kIͽhFD- ;̝5 lJp2,?КcbT78)N#㠜iH5/_r OM\f*!|bR;.ʘd#Ix0y`]?F=f' $mP8e{B--!KeXRD9tyF?!` E.x!1yWlI2#T#ō>JsE [zc$+>0$^hP@:YcŚJ>rDc sh>< rʹnÞZo:YC. xl~l\E_#H s32"՗uaCʸ$8B]A%G#6 ӡ/T,b=11R٨_ƄJKJ',bjYޜ1ʹE3^ j}Iqʼ3k"⧞qz8%ťoI]cַ`nLzyK?;^dKS\KB4eɱ %Jatq65!MnP@:-*~VY=yKǦ{&%20ѐff9!fa)a4;AkAn~y0#F 0%b;ЈY!tRB G"yfi%*s!r!ha-H_#pͅZj.b 1dxʽ}A]C⸁,#Ruq_}[V*Ʀ҅@e}*=0S4 3eZ\ _MzTG@!~RS_JIY>khdXIc9!r $XiAutá)#Lh־:/WU#-F|ZTmlT?‘Ht4{Oo(swW{Rǀ \FaLz)lr\\60;8EgSEZe]D譆hi)"k\ˏ/IX^*]\t:Ғ5_QCa}\",cun)dT2Mr༂`?ǨàVcM%=D@k WqIy5 C^ Cd.&㩕dc`34]8|8^JL/XՁt2VM 7Dds~ il-=.y)'3ɪ{^ׅA{$W:/KHS4\bBP WD\`.(P%4bwJ;XN/rI}{%1U2*D_ Ҝũ7W{Ěeמ~RH7zN+AG&j#`W+~J=)~ 6 v4biF%ҩQ(h$ ZJh V6},^ Sʺ֔v38δ#7iJedafgCY++X3CV8{3!޾{UƸ12}=8s.sp+*TemIR=ry>Y鄣yx8RҘ7B(J"^D2m,+-B/pgeq9ސ$+IUf^˃]Hd{Y>20T'52bE FӚ}iVH>8ݘ4\ӋdAI KN (S!Fo8͹O??`Ngۥ.#0a%ZѬ*kJ&V6R9ʈX ǚ Dl-Q+ht6i6K@l=B$e 6s!t!'v[` RkN-T#{rD!qmT>|6=%3kD.,r/B) K;sA6ÜV6u36fs!nvV KcǩM=d >Mh$,#o&(GsL֪ԐA.To6Bz] E)ΎpNkVuyد\4RWr̆ V<Wb;;ű F*e#aO.dDgyeˁwtQz0?nEqɊ?Be-uxjtL=# LLA/Ҩ0Dh|S g-{tIJ^%̽K%Re)Š"H(IC&ݼU0ԬIB1[e'.)VCx*J*  }p<sQ̜',jNo:E҅u>I}@z]&F.2QԊSj5JmPW|Lg[36@8=(GkV謫Gw(":81ֿcia;{tyUv:U]HOKnPb-s*2u}=E>=h wR  P 1k5G8e"C[諈^:gBЫ !O7Kh6fתBV *l.cN!֟H3~R+XAX0oUvq5됚#bV[3G% E U# 01l&vwxb̥/qCX"FP:RNǪ%ѡ1/g=X>"E/5GU |p$ Bb?G/ѐμb}YƯ^5DiVZ:̠OO5{xepoeCk sU jDieZda«fG/z(|,5;QWIw $9u,=[hYQrq2,]t7ϥ[DF+S(ٯwk*~YLxXj8d'm^tk V$25(pҫtebatK|lc${[XD.aܩ5f@۟Rt~g>z]dw5`/VJ /Bwp7c, tTѺ{ia, 2*@X9C !B 1Hw*(f㈻uj޻CǩTc$S7 5Z ?XhSt,PZ/{aQ&eȼ䀡dD#X!T5g2\R @֍UgQ7uDĽvi!0 Z‰@ln lW)=Q@/V YEvY &|ٍKu)t;Io-c(PeX/2׵w f.#pVAoc0F;EA܄s='B86` y;̇K2/n5ڜDxP :ӴErס4k9,f)ңȵdF\Ȋ|%lJx vX>)T=q=z7h1x6|&gs]!NS1sΨ.998,+^ETzZ2jtWHc5װ_|Y*%b3p1LL#.~HXK&,P:#1=i%A1? Z:RN,`pćQV|uc!C@fibU!:`˩U_$PԽU!2E dZ C/IJT8%!xj`+//~!bF5W,vbd&Ğā%eqZC![!qO;A @1Ed7j?oolI!J(ubVS F$խ-Տ}'*"k)AR-,e,~l&vA!Lʙ؎ J#rvp%I %i+|8$MqL,Ї4LH5Ij`ًE/Y6$[Ayt1g:էF&|]# ׸^YYa4eKYG<$K>/xsYm^9|DBDGBqkIpp;FRF:3Bΰa>OǪ:Cu=U=vߒ"!E,KXhiZQgz=ډhj6z\O1{QETeLU[_#>Rr谩VYsE,\|sOfZXtd/Uڱ53a'~Ma{fauiK wA;|<{ݩy'NTf%DW J߆1A:f$mDd*݃L"= l6#) Bhxl9L"* M׻J; LUUCzХ_7 <5>@ fzqdp7` P\94=2D nS 3 aFKIG4Za Qk6* cl, ڽBSDNB$( a|! (V AF"Q/Z^($=e*L r`jpԃ5 44fƅ,~yt>\ 6Uz I])אNsYBuG|4Rb dK Xi01 kUJwB;I2:A+L%#azDOmDI\o="$Kw+PEF4xO׉vQ'ݡܘy%n/5 Gt0{Ab <Fw|Af97`M;%"<q=%0GCA jT~v \zxcąy:W(|0F" @ĩ._5Ezycob@b1Dt2I/}h`oz4ɩ_=-RL>js2TQ/4r rg mI>z!9u u.DScLقK'ß( 3 $fI>ܷ#$^ȇ|LR [ dz%'q 鋚t\x#̴zZ)4g&侀tR)C"Ez1xEdMI !şap0ja^d !.D$Q˾3Uu60d+o}0>Ս:Bp<>{X?o!s]d㖡# x $r 6Y=2Y/Mǒ.R0[;S -j ><. =M8sĽhFJYdCꮽ}9u,N$yªɲ3rH/|QJ05g1e؟I5'9iyע;`P`PC`: wV`M# F$F@0 e(Pg@@!pz%q("j؅3@r^ŝKO.frQjtzިk_{ Ku?ؒ iZ[fII r~+HNgՈ'T]^V u<"FR3wtI z-9g\p@(24+׈wQXvKSV<M44c@[E4s LY% ֐%T!:_ZL8vHK1n$κ Sp oh%zHy#|XG?E. >`%u,L\XtaM.e?kh?T~'dxS?'`h$ΜCJբ%hjGk<8SVx+0J{M=2RRO ӳ̘}I|PmӠJs2sUd5CЋ D=}lS+A5JhWK@~`i*ޅ-?ݽ6S̬Rh`ӢK%šNxZ}nRA//KOpEFi~nSRS ZDziumwSq-Uĝ XΟ{x< IRpt2eImͯIWB3!0T6_1yHJϳU=\a5 mDXC>uՙG5"w|U@cyoiFd*j\yPzXW<`SpOĠɉ=Yh@sMNgN,!ꠇص oP}$zJ>K "<?a"eOYW'G*w63OuZpʁhQCW >ZcgC/H&uxR &/PʨDE bbE&^$,%Q=#X4:d3">.2SN}=(EAڏˡmrD)qt{%0zƉYȁfڈYb 6Ѻ'0s˞~xڭ,t_jzs)CQSboWbIg* gIᠺK`R~G3[S&`X[%*^Ɇ2?Fszڅql k#iJmΆ^& uy%x(A&01(G0-4i"!A,#KK>|:Du?5nl`+^r)-<Ǫib}^9xhԐ,_PC~$*&6 +%i*Y4,8ӼNt "e8~"1T]B̞2w)^HDJnfXGeZq:z( LDžFN2yR903slS}Qq^hۡ~573>-X,h2OF,ŅInFsTbJvэv?v,> |fU,,q㽒EeXˆj5 ۿ9dcqDu:8ǂ&пQ'}S]dO p#[t( 0HB#} #6UEOD#:4cBdJ2)Ϯe !$2֯$gX4P/28 +\cS/5ayup$ QB$SxO19MQd䄡hp%0l%*@1ɉ^MxFeʓ]ĩLiɢkZ)9>í`G=_nQ =1F?*/+2֠ghJկd(q~(B.ȬQLzLEEE@L4<$FbkxՀQV9N=kZvdf.+" ]@Leg}h($:-&3&k 5M5ZVy +`5ðR5Wfsc.-VI]p d)@˩8k1Ua =:~I < bV WeW|ɊK9 xwC,vrP›bCt 䑦4TXa&"N6_g:tEq0 ؠpes]?)pT!$4 |X(ɆEFӐOr{@[}lڽ{HQFf=ů*^j<Go=zUF]W F685{@>RKʴe{ o0ƾEZ,lʕl`TH~H̊l":#"(Rw%ɳDp 0r|1C4ÃcL^<L_:7w R_i_Aݣ=J1գJj݊#PlkBY#2)'jHmS@fBo79l`o>M,jCw2NpRݤ6sr쀢Ŵ3orU$0tcaPc=5JھewĆFƝHf#L+4Q LdP(PM;)5L;?.>u < g4b/آL^˦ɓiȚd\2n#lb#8X5,9N,($ jKXL5m`E9y6[C<%l#1a3 Z(8gŶD1u## po5-͹&E%Yoq~Om9$[$]R d4QqR4zc9);{ړ]S])%{}Z {}sj@j 잤"VmRy­A>kS/Ph+9€fM;s3\f-==Fّv#5 .LOP==Wg`ճ}}j9#73bR#6`$O3~^-V9nrc08`6_#C &̞g4Lu'zV4Xa貀6?Kdg0Ӫzejh闽5TUnZZƄ5C%ވ(' "$yP}^{?i^֪Bug|Jv&7e.tlLTȫ˛qe/[聍k2,3xK{irKҰ5XGn6[u9:u=}aY8'~d"*ΚpP:=GFY2,wEoX\kǭVg}G,ϐdTMgq" }#} 08RTr?0~ yoJ!i, ֏T;} :RhBpU]gAFwV|@Yfd;Ӌe?xi 6X$j ϋǞRDB`g'! -vdQtfwl#p^X2(i't(I?c啑`nzD|73*S)5 Tp  "t kRU) !ʔO=l$[̳{VV|kIyUu(;Y*K 8pG@lO@g%3"Z~7]fKABY$`":TٚpsDa'$K!V)dܟ%hXb:ۖS ^%Vd@\8t`%i2βD_U]b"= c\rW6A0 zx"]IJQ(!oΌzeJI$^"մz Է^d?s0dG|RG3B\# MQb$&.zXZ5|VM;ΐΆXAZbղ2_d1"R~{f/@zWLfN(ݸβ@*$+Ӛ7דP^ԗ VfX4yibvt`eg'MnSۺ9q+P9 #ωG}*BUlߢ;\VrsЩJ;S6zwF ysA챴)ɏG(瘂'XݭX]WFmOa9c"#MP/3 Xڌg K@O'u2\HhZ8TCﭼl˟0!}?ʼn~<WwO_}wỿoo?_W>oo?/&1q@1 I;Ǝ3QI(/ ʀR1~B +"(L+R soꂨ)SB鿒4) q޻#tY endstream endobj 115 0 obj <>stream Cۉx }='dHs-+* $ް,ĐC 5&῵ ABb-Nv@,H$ْ'XpiaA!V9 Nw܊HPH" y-]ѧڛC tF 4b54R΃x T[ޅ}_,_ E`݄4k!Xiޔȯ|żV}ꃥr V3;{*ܦ6A$U"M$́=m\3sO?,=qcl`śzںoq#F'I~r'=HʛHdjNx*dL U.#eU#EO`E^j%DDP|%m2U)<8a *d!Cr*9i00LHҥoKJ!) xh#ȏl}" a#Ff$PnY֠C|ha(.KP4'R=L(=O}BN!QWr!Cv|y0ž*I@_p퇡~Y?ZR=ߟh ԉ쯉j6͒S!X<">/ޘJ([ cpW~fm+"f^YTR[ U'Go?@mr!={~ZG Kɇf2a#xSͧ"c@t8`c0YYnN'{FѠmbk?Il,@<}sq# az9Psg2݋Mq5]DhFux(c/ٻ,ыΑU4Lǣ()!zBj`s٪rTq?Ql59Bȫ*hDͻ-q$%=4 =_Y'V%s_DnT(b6xy#'4(A92^ !'K`B9扬KUKGW] W7oTBu>-q@ʖ*BxcZ_afG]X=+Ѡ+ 8a>+wi-{T{{tVyNKQa@ܞ Cz̀/*[E.RK>q}#2X-2&*u10a@7(J͐V<8UJE(Hf~\.!d!>(#eXՃ@ %EqN^ȅ 'd&ǣp~5|`H0^&$b5[z1h3Ov~?`Co9K7-,K"j좻SGtv߉T<ګ=PGcD^$Xt`D/4v` d] n*T_:Je)CI[uمeZ5KZ @R%U-T='tAA:tW?(rgIo$-'jNߚ*,=s=*z7)4%k/&R~%<\΁CSu=ne u!"#Ĝ&5#!#j+'XҼ?TFsL:b<= R`Qܬ8[J׋*BR~}#zV"0P»KUOWeBMn?-GQX'xCuaxQj0%e Y%l&f;G6lI{~hb &;mՖ"`{q c:6|*PK!tʧ !2ŧz:*C߻0m!BaT@C檗a`c;W,Uu=xEBFηG 5(9i(%\[ɭ!<=hxvJ9K) JX\ ώpm껡K u{x7yhgQِIJcDFOD ng2}>)4Zp![.7T $$ w8V#<>]z1МBylo4fP.UU_Ł. * :wye?:!hX>{Gr8R_ΙԲb-Kds5lZQ$Gӄ=Nظ6Ul`~<;R} P |Orؼs:SBJ/<~dI|wJ)ӯ)RWĥ,zt{,P#3>>kQ,,%k8O l>eIMD,$(3SIRF_e8NUc|i=7TIISC3;r bus(R~|>8e|,>gqwv2P:z,)v\NLݰK _M$ ڍqv&l֧l +fJJ{pJ;tCk> ˜&:킀 YΦ9_hh7!Hmz($*PP|) MޏHua ]o/NS@BmbWuKoTR2u^QtL zI$>LG& {!Yp^cm3Ὺ> |ϞSW:g3sʲf4{`8޻ FtρOW Odu5EJiu{7[uv 5}d}:iLyJ_]v{}#E nBbMDs7ɭ2ЇkAɟ!g'wG[F-VX|譖>M-Үb7헂_Akr3lC9; 'cxc5T#I$}6 _Ux DK S֎[Z4s0{pܥmYxptڝ7W+RXR8)j#D. ^͓ ThH9=Sj#(RRA7S /ml㴗YfVjNO;*W!c녆}[A!0R zH!@=W ]A!wG*Dx,y.Ptٞ-ԶQw$6\Ѫ@5_"79,?JJ!vi&mam>=X%z,"DLc4>u%Huv_N H'v,Z~ZF"E K嶄5;vaCTnD+Le, qƁL6Yh)vUÜDxP.I86{ldEA{0-%C6GwĞՕ؏Gr ĨP(x~`x6<QRaD6AηIR1aں}At(d0WjT*$y 1PsX96:.MO24B `:4)dWP% 4: ˋ!VBYY=bv!2K(RL[01| kla./+IӰBWbrvf\#z-3ZeyތD4 \$?.̎x@Yad ԐW x34T1H ;ҕmH/1Zb"X #i @?#U-y>HFi!Vbӈ; If5xP1zϫ P<)}HT&#̙OU]hUIגAr>HՊBL)2ץ*CP>q(j]А7G2Zz`+ٝڥZ8 54H(=HUPe>gmF;AM*bb%@ ؇]^"°JNW E>^TΥSO۔`AߴBqN;j{ 8" XReИ2t~Fp'8<4)f LH,_ʭD+$@cQ<i#TN(/1sX􋐈RXw*s#+SE2D7\%t/ev?O2MQf5^J~H֣k'iBPx5eagiaY 0uOlZ%(3 ECl,PnsX C:Tp~iYG/fḰ<.YGe^ y`.NYv X3jߙʋ?` %J1 S@FO PB!^{{ -.):QQM3e/Zfj [yIC'~"cjcv~TG͢H,_$E:G9 Ds]_zV훈:u'{"zHuq;Q-7(o82k-Kʠy")LP1Ҟ~䁓5~=.v/@5+>ԕ,8T$Jn&,AtHz5B滆ߨ޹KnQCBeÒv^2rP wa.uKyxqI1r$٩=儌 )Q1DIրlW,f1AVӦu?*QEE<)"d8z+!aߎI!"b k*ǰdǰciJW`!g" .GId.P!OB>WԱo`X=zx9v @/ GM¨LЦo@ٺę{&nk @z*F aZRb3HQ;tG yX*!= EGr1Edtϲ=t<݀)ȑpjNt1<#!#xR A^Ow* kyD^ =j))E_PO_- \^zOaqvG7I:Eٞ ƞ(@D&\n̰ٵ~.B1!-I~ĔD#v`0MSƝPQϯVR!UH2ltG0%)(~{n 5-#jnFC,0 8A`l0G`K/R1)w\Sy>K bwd~k*AABᄃ)pUsD5zr  +;Rulk)>(1U-Ж̰yqe;ej{e[S9r|vH!os)G=jܭ#Z4ha_*-D_LVer2Kt 교z=C]r;ʔh=,J*ax_SHߊ{_XoXOy"=)YLA M>*@vTȩͬz N޳H>'`i@ ՊA{nRTM:'~n{CQZT$ot "{=MSQ}Id+cl\# .ȮvB@-v Zc@rCgd6 $0C; JɗuvEk YǦ9餱])xV`f+H}.qM%*=A8W:ݜ>`3#LfB>]>.#ͱn8h= v0f3K2Kk`7+`8?Ę9}TAb,DЯrl<@qڙANVb+$M:O`Oi [^H곀v~4zRe$<T&RE+B s VIPלk _P ӆZ;blA=2Jg9U|)J& d@}C_&BK`c_лN|e 3g캦\ƌYznLa8<^}$#>+,7=%^ƛZv"{<7P h衱_Px=W]A Gaa65 X51A,Hq0c8cWf8oAPƊxX p8 X[آt30{v mY"tYUa@݇dg`|ٟcʝCylKYB@M4zXHI[A6=_üy Yx'YzɆ1Z,: K:znx7_:g1͂H: O ^~=  H4=3(S$ PU3Jt$y'b/OWDvA2ܑlх9!A'*UGq,F&k}b=d׊=*s|۾PA6;5YPŌyDG-uHvQJP}0ؔ.yq1\mKgڲ56r!953@vb"g諰]ʴ,gJ*MGjԞp6yɡmR-9ؼt.7ّ-,#ūxV:L;}4 dA}7 2(t,0GD(3!oR /ygۄF(2^oļKN0^C5 "pIv3Ę) uۓ8[ _H(sH~mFKꏑ:v-͚d*PT6I`#Q9J { +hwqmvq;NlaQ{t ӷl`/r@0a! !{1> {] q`N6G=1uW(4E,$Z%"4-Q$6#Leԩ x;'%=k>>pP4g=b3`v6RHr9] (l%'8c(y$!t_I F' U+ʉM%dGW#fY :'Ϩ{&Rd3 ` f$kXlIygVQ9#*┃]xqWR[P @ہ 8j?0Fx`z7Ez 0]>:\ٳ%/N2\]@%]W)+9bPaKz '5Nr;WM$ι>+ f/J@ gVQ":Z0wu/_ һ4oUEbl[Ԭ'04%_l ɣ='9Wܷ&n= ZhT"ہLOszqe_Y/  *ɰ-GPwݾ;T$b՛f]Gm8DjՔ훹2̓nza$U96,sED$^pTBn/:UN!@3R*ImBQǁ4MpJ0^h}F(P2#A5uKxA,3590-&S6xJ. W EX$(e$K9M28e"tLQ8|TZ}n75#醩'< 8(_daEܖRLg͈7 ;zS="$u*@ %էiu䡁%vE ߩՈ&Ni42_d#* 42~˜ޱj|0$/BRi}~ϑO52;zNi igQz yyAxXs bH"!$M"BklroauSkZ{uEt2zNe1F煭ݡLV o(#M`jG=[4u,?,r5P|DiɬK xD@0jXlY' pE ;L{sv$E0K:wd)@9NNR|1mMdj&hs)2M \8.""fgI%n6u9q~9.@^b -Zn^.XSr I*}r*ahw[$%m{K+(~5t^r Ļ= уja͏!R"$J2 .VCKLTW}#Z4?N=w+=xlԣ~Q\b;'RZ@i{IsωJˤjil9RMA~#e":-ѱ΂Pv?et]0dF籱.kRGӁt>Ri$ ?_@#_f Yؑ-8fƠ @/0ѣKF@䢢MpbylӎuCKq}JEJV{Mq2D vP2p5_)<Yg=,XK{Sa,Vn%y FipHҡeB>vWŔ)kӏ ^u!\QIK~kY}=K$g1+<% ٮo`3Akt:j2 1˔-L%[&sgkl $E)߈xE (NloaH-5>0:3U4s^6z )\#P99lQH9Ə7 ]HZa%'*6:-bd"R1vE I@de]y%+ޓuWd O/Gv_{N׌HSC4|<Ŋx1 NK榰=X'=X'ECC`jSe$JGMw?l'=F~_ˮxEΜ_uĹ#b/9O]W$c#ˬRiVvo=vë1C'ªMIrY{|f:㺿N+G4kĆM_8 2Mӟڅ5j( W[Z\_t1x򌪱feJ,.^?K͔Ks]o;Pj\w:uT;X(^r 6:aQuF׭ðc)mOqēY&d2z8ok/E-]ۇOg#0e5*D<`ڒÃOV!@/Sk6;6xO2kFʼ/?kͲ!t7v3t ֥Vy^J&{gժ%T5[9P W9pbl>~|XW]y8a ZЊw"DED؃ mF~9'IQZK1VlxX`欬;V1Xhz$=e:;d3u-N0w m.D`IIkY|=F#2|:t}҉%UuL%(]Z^IC-66#g!&3e2}/ova4*"diM=c|A8CӴXLeq;XUx T7}oUHDrX{,\Ҝ8-9}%lCfڙE>ZM2>'#.vgHtޓedB쇘9j:U,(Fcx0=xՆ/x`*3q:A\/ ߬&v?:n x))9>Fd8gh >`B9Y71$iHC*v\:}̘Rza6]y( kS&>04L(h6k,TcѴTO "?<QKpx#j9kC*&4f߭ 8#w, e aT#y2$} kVP%RP% cQ%,"@ ZZF*FI$cma E-AٚCt ޣn"~+gfxxzT LvhwhuQn >O ?(>8֝!>}q9IbKtH{s堾 r Kx( I3089/r*̒\/@+ ꥃځ$,[rU<dµ〳Ӟ |6 O#~ 8CGf&QlA[.i$v̎fq2k?ºÎ \Q/ZuBRohwqomR_?v"eN`HOt ץ;ќ؊eC5X&!e߾hg 8nĝsKH""e D^) -E` QCzanVqpV*A].z97[ָUW5/~H;) Rv$~_7A-}o'5Wc;C/1}R\KyK$(},+8?[ O)~#4}v1"puEo‹E 0*ja'OlHw2bD" 8JI+2˦ B9"h8v`|AF;a .t:ܫ)s Jt1&}ZuIfDSU6+ 7dSPh6_}ļM"_ԕUrO;1G5/Qձ]96k 287gw\Kck S&gṨaF 7* 1:MPma~{Mܫ,/0+ܕm974;Wͺu׼c ,"tPYM]Yʬn@y_:P]1J`cC!ֽ+J5%M!<{'2mvie0_mgRl >DLC14^^e/X!$;mp%~z+@s ; o>н&&dZq?yT OȞ} qV%,憩r#wX<I'hÔԕ:۟؉"z,8EMR(vGw8f/:xKZq,Uyd8&K 4H|yF9j(7Wߢ{"#k{ uuL 0+zRf* $W JډO~bcng#ܔ|iT~]j|A({ZUvņL|'1Ubb;"pbj1U3jO[t0bSd +O<|i `]- \f/Da,jYP Y*Q4IґjwAFo5(pHeZ[O8=@uiɆ}`NХ&g*FXkkXPB݁6풤(Nr–(R(^Z\#>rB0_{u-d %^aORnȟq1"ʸ2r.-<+ ;L/Ĕlcw-'j3D[ظTt "Io !X%|#>SQT펎N`/GUڐM@}r_Hr!È!1cH`u `k1΁Ox䤗DKp_8IuPR|jI"dtgF+ǁ+G}̭r BnSRuZ$.*J(IKᨥ[ OOQe)&Jk?ēl]ԫtyUW"$yPG'"Н&xZ հGLmCo9=>h<;8^W0]ቼ9h(Qm()9 BEut&OCrDp_kF&L/I6S~&Legwr/5>GQaVt0|tB>ⴝi8-A fќx|#ݓe8VBjшNܙ @'!s:C,[4$cF$(P?8m蛰qc R:#" :{>[xT#b)w t#ݺX-"ׯτ*,^i'IIkxG1yuh쯓ter "nsTi~>_i$|1|i~Z7uNDŸy8,ZQ~8fAS>,h4zzPҸ9ks Nfjzig-m44 h,@=5C4GmVvcߗ{gg<^[<^ySfas|p 549smq ]/qaӷܐh5|oc@;;Exh)fCqa4+=yk#\ˉ0R-`{} ǁ\FE[#*M&7"Np皟4EI^7Hdط>̑N@yь']e\>uy46߽8EFE{|@FVϖX?pM(;7wYM7~N -8J:A/%) ȧA?9?+ޤ7{eʧy#n$nJ.3Ͳ͊g-"pm%,߃'H}xHD#hl~nn'c`Dc>'Ј~'y˦G<^>h,)XJx7Q . fO=ayƸc@D;2 ``3bu4I_IlFtȖ{6tϜ4'߷yE^!wrNJ՝ s7K ɥ.}~ m4|&';bcC 󁐁-3| $t!.H_jl=SDXEVn| 'z\ |ՁEW6?wN-5 %$I3Ԁz)ۻ$wk@/YxI|`Vo(Rz8 z"yk8@c:y_y]ON iƀ^XQFZh~͢g3 p'o6R1'8_^%4w,goEN~623vsgMy 9}SZ7@*`9 =8 tњ*wkTXg}1o>s_ا9A3hk';2'5l8yŬ4i n8F'Ȉ{wQ>^)-ɕz39c'R}KH('(q0 7ez_FtąEŝ3+M̳3{r3g_@q8jNNgB :yr +'=M^cs_RU+bdoX=Xtj݁|I7_$lkԼGB qu0hS8x;-+IwgGxOcu?{|D}mއ{|Kj "n8qZ2bZٳ>)'yq>Erij@X>&vsIBקp~>Wc*iIwbVΜvs<Ō-P OYbH}>\-<딈FF~AIγF.ឫJR74ygYB|]&8`/9{0FQ'I+Pz}wF]L ڶ/ >ćrr(NT!? S.RuLs?6?ðx5)-qN*OUes5ڋ9w+SD3@9ΙўLQާX$K^4Iv:OELiuc$N=;K\W}jc30&Y&TQ^v޿GޡZ;)QQ+QNpp5m^W~r@w"Ӹ7¹YPd42^h檊ٓ's@d5&߫nf紧l\oqpAlbcRMg.U_382qƭ&!eHg~tO_:<&ut7snz["RG-{.yvNP>A ;I) _O3h!ծ HFQ`]Vq[hyԾp<[8~oX^XdgFg/!rQ'C8zz?ð;qb2팙\[_u=oGocE=4ϳ*Qth~vhimƋ4Ke o4>gbm؋]ߟc8(wf)\.MFsMgkDam;o{1e-v/EixEh,f;ޔ N7 Ï{կQ9Q ^ԫ:^yݗJXhW!x ;_|1Yx}=a9X^EzWAŖu !F\KY|4z\yo.gGsƇc)Ҽˉ4:g~>{:W2WN8OF"|%%g(NE^S cy'|fJYu XOЙoYLsuE|Nfz= u`)O<ܫHc̳'hyCVf@ ZY>9@`iu[n+IK$\{9ֻe wCQϏc_*ek'= Y-qժE@zwT ҸDSL (E䜓#cJNlYIE$P9眑D 6&Dǻ ]=ӳG53]]Uj7v |h]$7Hk%5<%t`kthH'I$䨧m=tnP9Es9`yEMxFzjוpx/4J"JZR/%eӒ3ȱh {^}_Γ9O 'J\QBKJR |R{u*tb5ۥZhHǦLO(oҀ.ߟhZIE @֓X+ ziobΠ'l:Ue$ *NO}ZBk K%ˆLv_)]I8w򝐐7VeoG: V;aPk-al8_ZRx-9EZ{%R zUHahDlo5@9<5jn%V!u` n"# d,H24}QZup94ʾ5LRJ*|F`4)_M8j"5jԄ& ԩ-K\6kcqQ7sKN hc+oPwCQ8'5z54S܈vF'c%[(S}:%TԅqvdE+{5iQIZlI[ ytmDweN:Ԛ8e hɁ%r%lC*EQu#RJg'yQ LTINS:`Bd'hP+8;G^ v‰rRF9ZE£\rw^-#+tp(7˾֠2 d ^ ϠlL~Z8β;F*#5Z(b&u%-Sx,EP J/=Ay=˧HG~'-V 'ÅQ)eZ*@h~TR8K40rې21xȮNlD$ !|:ׅ(YeZN֐z>zN2d+!!PO,}% גkՄ56d=A{/w"3(t \QM›~>HC rDf:\KE웃DbI =.xN(=Ь%#Q-Iǣ!;0m&bS({$bduƂ5ޜDn?kITr#FWKjIP+UrW](kQ<->tʡג<굝'Koh]:jzyQ̘?Q+[F쒖DTٝk>Qk*v 4d##:K NLTÆfV[оe M'og#8BThzWJ4Om֛ԁR ZZ{BGJ$ a-m [94JAY,5vdg&Y 6ZCCZ{5/F|SPs2vD)i)J(FU)uS[~u@Q0)! hV-K/emKoa'14{|<*Бs@p`BreXJ-+{@c9=dv\RXM.Z{ö) #$rSypЬW4I hFl,c 6*”Z-AMjYP ;9ة%a%v%V :dp%rŕf/FA)cdB|Vh;@;4(t,E8Lh9`)eF)%UBFE2qUFK56JMvA=z}g%!E6;\VJ|^)U~4 ?UU~l TtgY4+DoFs+*FEktY-IQV[5߶2{0h;g3fhYA/GVC'(#ҁ.%6R^)X0 ,t@v_h坾pl-5"r"HVjԨiC%4)[{ړF֑NY8G-}KfMhT$O)_@Ok'';EhjWJm8׋`;STU:xiq=QNVˁRK8-fpF=U kAԨdX:P:A:KHtV 00 $%\NjcW pXdZYzeT:PB_E\Ķ|bHҎ/I EHk5jKq72.:9Ncu"`%5)Xl5jrAI4#hLؑЁH 䆖zٸVz4+G8bUasrNcjR:AZ)ZR IQ沵k~$9Cj+G+'+7T:lEO\^:OmFX'p(O%A'bI{-J.Ph׶ڲβUJjXJ,FgI/Ӑ3`A/3֒2:-\X pI2SQI2h+EnHZ Y"7YRM|RY¸ʜAY}v]J[vBM:PnOblTD1_N(GY'*Il}Sx@a;KZMSې|,znɹv5vZGѐQu"ZbqWe)j:ar-F2C,g%o`=y5C鷉ڻ[bvHjGPϐURlOoUjlZ=s5nFSP38>@~W[L"jVX/E%PGz&z{8nYaom]u+~5gP[3 Ϙ9g)ؚY֟xi7x r3}F"AaoAUX/8?\PO5j$c}ZHYZV-uYőRnɽ2'.K|S͟ZW9}x&z{z8([͛堚WY2jee`eƕV1T_wT-t`UNA]M)}~} ~MŘQ3,&4S7&ԿCe`BP{P6tI\=+؏׌+$jaB1+z~0oʮf{Y9V'EAٽbGAE y7V&$KxEjWF#ct5<И/qdU.Q9,bMEf1f1.[988fV\?+fu`'஋r TK8GVdC3Lod]p0 BJûBR|vD!mU1_9O)$536V`]!P9+Bs\ y`|3 yN^.~T; OĮDӇɍٰA_D/>"(v{wg֎aR:rV\t|3֛͙ jV fBgj2Nl1r2w1WuebzSh{tq4U<|ʸ<"#;ُ^q4D{wq<;p~wJo1+?+z+r^%6]A˻ʨ^_z_E@z5W,. +zх#XԊ\6xC>g$374?}ؾ0|H@12; I+y~=C(<SkQh\-sdudTl$ƕ݀u ҟsA\qaѽ/AfĈ4$K։Bޖ)Bj!~ H2cyCzY *f C¡xc qٛ>@;QL<֚т5њOk}>\BǚS6*؏K+>^3O@??ֿ'TbJA~B&CbX>y8>l$_:KEzJ\<ydskaB\-ZYEv32HTKUF}$#Qv7;'f_W3-bʉYaE{}{3F3H(l@Z?X[\D0>f9 ޏ/%=#{p9!FApI}LnL㼧^Ӡ AG+ {؋I# YkwNŭDٛ1|b!vCX^_d/!dP;Ɯim̛[=ZM  |0N@:B0Q1&!{dEbD 0^AA:lɆ$bsQÅȊ6>Akb: ]> kIH01Wk*[~܎چO[(x~ALсi\J8&8.,-ŇfmŸqu{D{G2EC9aWg dWg 6=r$z>\oSeR܃t5`]} ADta]i./ ~ }($kh7vy4Zѽ8ߨ^ҋ& ,oփOhOf%?`cFُGxDfQ&LUY ٜ{&i,ҥ^`MC7fY@}3VAO2n)ѳ+'xB/HľBDPG` :2 jbyF2=X JuTth>xov0bl(!ḨBTP1,};l0(lC ]u,`Ka!b&ka߰^a]ryCnt2ֽ'yƖr(&oem'׎gـqD6b2s2w*S &od6~4W0q :7Od׍V ]&4gl Y['H@5t?OHZ6b$}..j$` {\PJ.<{0$C@o&^}/RCtS<LOE^' |@1l^i<[tc>a,;<5 Ė :grN}E`lG7eоI]"[3sNWgdq݉ rF(+˜Cc{ #T^s.{dvu@: y06c{P.kDGlZ{L|(&j$S6*$6*i4߸"#އ(g7Dp6Z& q23^1= %C [Q@|˰Aľ\L0SåOYF6ͯ'OM@>Hoe_V ٭ Gx7`~ bBXW(Yd_8d_@ćd/C!!s7郱܎0 =. 2 zEAg.=> .~̖ 57 ƦR;?xE7 Yv=";3' qfWd(4G4 \-X0~|TЧ,/&+:A!{"]]0BƙhD\r$l+v+g?d F?3g&#,ܛ3f6iH+Ww`u@oTghwG]`Múo^֗r |_Ձ^a| 5+&t7> MCs8-sD۟z,xiϘ[>ϥhE׼e0b3+taлЕkؒlXӊ|8 |(K nQ50AP\?!0O!&{(.Zd}=Ck qkX|z6Ge5L-wpp06A_3CND cdpNʘ^-ht=J g|bzb l?F[pf0&̈́f W%u,Z }U0FO8{˭2my+psQ#ZI{}{vBUyt1ӣv}]H޺_w!]MfB-V{#q+cr~dodNZ3(oB0b܏d !rC]c9DHjx1:5Ԇcg(AkB/rKSgوY3s7}HWR͡Z6n|<ў-9ntnef?oLOo\O>z$UG=[ŧnk;_Rֿ&4a%sp*S}6k>k4 t+c2GRb;\kч[td:SuFhQ _Grk x9x?S7x?`m"?ؠ-4Āހ{MˑE.jV5T02 udRpxX A^ k@7 *.wƕrwNsO 6P?M(597m{2_qAVb{ cV>}!lIS62oh|}aKAxunuJaȦ~!$Ps;\9H7igKM3MTal/9Dd bC ¦5 }->8Imb,v?L{&]\L!S3:6s{Lxټ0s2[:/ϢF5]<O,ŕΔKY.`{-pGxkW&v_;p;X*l8^hnk X I|=06Bx˸<X$H߂̈8<;7Ą 2_ +Dl}yClrCMEU=XmZ-`Z1z%d{x[]<xtLH 9Cw ΋`_WJx_:FзzXl[@c2n̛o>|kONt"UwFϔ|7)26B O>a{6MjNLk.=A_wʖ-`1D6]]Ҟ.FlȦwGtPe6xsw ` #F5kL9]똪:{a|S7挪>50Ӹlnj:h!}˕Ӛ~K]kZߧ+1_Lo6ĕELo~ ,|ْ= p:U@_z`_Cr⚼aT3uwב}Ι` m͓c?7s͗m7&f:$ ŽჺRBHW#kAL|0G |D؟+<46EHc^:y<#C><t(Ltq ]rx:O¥'֎R?߁u!xv]s~ldj\_.D0f&SŠ m6Li=ti&S㧠{"VChd [{cz ƆN3wasv϶IL6k*0GMV_0`AbSܣClDwRgC(Hw H^<[vXFaC{?fu7=ef7YiGmlFs&_b`DžV cľ1X`=UN#Yz2p( ГƲ>`M?Gc G ~94F O)źt' 9׌c*۲EľN كh y[d.bvk  #8*GGAe 9=ހSx`3~f^]2F1VCa6|3uĪ-SstO3wZ!мSMWT%]t#&ipp73%ft&fA»"{cn\Ժm!t r%O ;F.^]ͣiEd|c{: 8]y v'A(sk3ǀ{1_"L_?<|f4fZ:f\4op.^`qʈ օ.5Xn2Q崄 CzW8@dOxOa? U |fQ>XyZ&>,o/@kLHGtv _$b`?Z#C TI` ,bZ rC@?C\A 9k ڑKYf\heߋaa1n)ks/ LL GrcB;׎]XG7}XsJMO͢˾ScX@j㹰Nٰ+`=T>Vfex/N@[S}M#\rptP-[B GZ}Vdj_/eTkuE<,vmdPaA?a1E6.7 ^xT?l&`rydѸ0emL-wwX֔~B͸v ͪ(4ΈAv"Zd1b}z#FI^08ᱪ;ƊG@.0/_k>z0':Ffˏ2u3X"@Wm}ţp5m5QA[LGކ9 7v6>p[7bOund?߷Ys ϐoxjh$cJ~(1gd1c{N5dNF|`$Zs|hAio4^a=h7߮g.Ą.|֜1wbA޶ɠG0猩)di~0t,K[ЭSn9o( ? } n ]6x9eK F8?>sZ6aXS@f_:lZ2YZ0A5kN*Cwkͤ>, O/Q'4|aSV@ ޣ r$Ռ^iZ{svÃtLAfLr+nEPw! S %Ư'Ε}m+fߚ ZO )׎! pwdO9DܿQ2\| ȹHot+Ch5 \ 9FaCL! ͉q8pZ/@qh}/ E(\po9cDgV | Ƌsv8bvHX/f ̏-SZ1Y>@Α9=1kD` 0q~_q@~pWg?8;1߱ka"฾R:lі)Ko07e%*GgAs֝+\_mtt }]yFǥb=r4`x,SĩF@\T)¶۔iY&3K ŃaL7S>M%6c V1?؃ @J5p!\!5]{e[ރ_4(!r@>0G"6}zaGo/9lOG1p-e_&[_1h>1I>%#݂ #M] skjmk>xS̞FS-]dTm| |;-3{"NoG?pmL{ >c) >:&0?oL՝k̤qFħ>a?R6[Si}LY}e2vM | Mk@\]h|o`ŌsMs3++s 7p +CM䶴;͇/ ,~0E> N wȖQ3{އ.x(W9\1 1- rcm.Q0tLpϰ3-oCX|O& a|Q' Lv% rհ|#p>f𩘻m*ůms`jb*!+)_" {}/5{LJo`=4Σ~ȇPt@s 1k3h /_mB3EC8h$z5A6CO8W:$㰾.=I볙LgY'qEC|εYȁM /q]/ۦ>55_ ~NIwNfkآ}) ?^Gܝkj;|Llkȳ_ᢁ+<~i6 _6ƹ'CشʧTÏ ۰EPsq, > ǡNj趧 \h`JObװ޹]1|h!b@exGALc,pa!wl1X3}eZ_/porE?Oʩ%36Jca\~lr8-]sQk z+cCn./+&ԍZ`S3CRt%=U[A!O5mOjO>GS?s7OLc+N0f]>pܾ00X/$7 –N=|ޏ7fQ>+ w'1!;8y\´=[̬1Y{6MC7\ 3Gڿ0^~i?Mna:Db.zsșc*|S@O6sD p6}6+݁t{ cinj 5;Bo~1{\?¸'?3GgfO= vx31A׊ڍv{&~7vc*=J1޶wne&}1+ROa^#3M6v8mIMGWtKm v[95mDbǴ͐}q:̶N,.}?rӛ;vߋZ_ͧo}jly%3>à94y`2fk'j+'vą=tv+܎]lx0|3ӆ'K9{K1z\˽El.3oN_昖u_c#>bg6=姹 OvZBxځ=遧,kr~'z)-pc9{@y >f}-5m/4{⵷. .\sp#?w_13;2³'4` ]A:Z?u/H,z֍m?yy@W'n uTKAfa^lGoE|e즧ؼ?bbG9{>+gu^zVox_p!_g׼48ost7?Ubc +hߖs' goŘwͻ(Cg̦_}m}b>p݇D]3|\eH97^3&<dz]ga솟xvq?j4ss'1GC/X?{ҧ^z331NÓwW_9'A 9sq7όtO Mknjy.f#=@{oL۽ŦMṗ.{|\\;8[-vݧ}wܹݩ-2~qDb:􄢎0'~d|^|9$0(x€m}S{M^C 0q{sOonz|ܓB ؚQ u9¥`_\vm$.Ex}},B\sc>S|c,0}/+ڥﳌu.¯i}U?3ѮΤ,?w*Xvo{ α^.DP'mg7_ ?/~~I.<̫« ~*;Wg^*/UhG5꿒չ==W)<[(>hϧo<@|{'OcM_})vb~wϼ}?Q̑'pNݳE…8+ nWuoo 'y?^.r``\Z|Ⓙosu[]7' oL%WK'wr9;.xW_8۹WK~n//? ?53۞;N%͠n設Cm/._wv5;s~h6}²z?\%ôd˗גWrܟ{1F=__]^/\{ƞv\Kv{zbc5+hX_v>F}uȝu+U:Q,xo?ҡ|ҦTÙW؍/neLfcks'K<tq2њ᮶lߛY.Lp^c"WM{Yx]uMaw6l{\k|ljߏsn7O䙿(˃aIVd\FuAϧ{\LTdzq7+LOs>jùꠎɭUwԊ/ /; V<>^~|'2'P#_Ӧk*>7ݹt73{W}SW˹SǷr?J||9(xgWh1p?bKveڞ.6w]ۆֻ&M7؆_P5?ͯ^*^~nllcSӜ+0$޸ho֘](^tBEƌM7 ^M˼QN{6y?叕)KoԔNt5zBˉ}/U˫*Syfg7ţ㷃S"}=4É}'7o: ظ6csS@ǎky_V:x+pco;u{˟^X5sYs*`}vGf%fK!n󽿫~ŃU~5{.Z~U⊢+.%W_qFT;gƔ[vzTɕkQ%/].;>MR.^_|'+M7;gj0~wa>Cs_;2Ϳ6?܅G"LtRKg//ϗ=R}>4?\7_^-q{y2zڂ[9B;Z7xMLoj}~&nEmɵ=W+܈.;y;;Q7KO܈.=z5b?Zw뮤ToRRju敂Z?;\x9,n+^8rp#4g O 6cjy1Ghk7 { 'M>xFFuI*׹;SɝҴ47:9句YoG3Hq{qBVɊcګn$Hk ۺV|y}t35i o$Wn_W+Ftb\屳IuG&V>XYw!*A{,QQ¥kq6*f!ίλWv.ji]ڂKgN߿qq駢kdl8^ WSS&?lԫ~7KCwv+ZZі{;Zao_.] MQ >ǯVlPRrŞqgnGPtw-):?D9ÅuWrjלOt&*JUMU!k:*N{<=Z)>S">S(vmsӣBUH{k?jų59gf?MZhgNjCNެtɛ~x-޺[]orek,iCBӰekNS'|NZ]j';*&t7K|#.~[ 7N q0W3LaIU,Nsp#\{U5W]nt1.N:֝dX-MIW+c5l?V}tREԭz3TdדMoK^'YG ;Hw^*zz6~[}xG]]Ժ̛ yԓ_G:x̛edXRZ7jq ϾU߮e_ί]6ٽgR+3/TTx=V|z|'GvIVԸTrsOT:RytRk<#L9׼uG~Ll|YYDQ} ]~3I qvMo'֞i,=|;rت̵ ?=tT˿/͗. :-sAe?{J*aV7Ke\5MF砚iJ2/y3e7_$%^(pPÅز#?&T4]JY}1JIC{E{ETQ(n{&"QD"AQ`cu9c'g>멻gNxϳu=7W UUwUWҼiA}Bߞ^ʼ{ޓMls]#A >[4ji9*84?$Bg#m܆!}tc~fL4t@Kk4RO;}x"xJ> q_6)޾.,T)MOr^ %A+-܆R'8S5?5p 5#ig#HhƼpVrLBQwO+jy v^-h6욢oW cK9uַ\+n~Yrolrڧu nF]⇬G6 %篍~6m2#?CV_wF8mi r|a胰{mI׷žzטz%~cٳ8cҺFg\%؅Gr^̪S~w^+bd? GQ$2=6~E_ِ߯hxᑊZ𢿿Fg64?WtB^ǯtB~ӥ3Mg7lZV?Pݼֺ8ﺕ]?Q0߽dsZ3棑!gǜ:d܆?̽yF~׆/=lU Hd5Y!Eh~HC7_V]ɯ1ȇu5B\y%^}nὴX7~~Kػ8P:Vy5m5hl62 adZA{[u3>M]W#iϾNTy=/|b^܇m~r`˓빛n:{9 7_)i(f/S&dnwv{6ާk(i0}=7Y8v%+ȈG{u*kw7߼P-#:/gߪkG@UM _/N<ݎAkAYO}toH4B S3dm%cD4Ls2԰AF:H3/4uYr\qN0{{!-OhȻUݤ"骘'[뱍i8me'v#`k &߆mkYO9gӺFH Kߠb+J&Hùh#0YG8 3y`22@ldMvj WBT}wUClvTqf_*yzxW^-ovvȻ\n iAh)_ZH?{ܕ7r? d5~V9!&UP _0 =zy0gk̴-Dd?y 23o!0^M#Smmh%?3M)C5n|mtXu&}',_ bГZ^o~nVË6s_~q'-sp.QVz_X2qzlfn5p sckc!aa2П6YI5'YO@\DQ9µ)tvB}񦿌X/f^KMeSѥ *n9ǰ뿖?Y-/6%ms,,6_?{T\{n(<McN}42ױLl7푥R4vuzK ] N8U}}8n곕 No|v|nYu/W?ӌ-7fw( M"g1?Ö :\3}hAc̭\E83GbM! >|32gxT94mzd+X,8|ܻJymۅFl;XѦw7s/탬-?^uJsIKv c}%B<0y[8ֿ5Y¼ S ]ᖑa}9{!QRˍ!bc^k=rͽn626u~0>!26bF@";UȖNG#k#vel3Й5gf֚WrSw^Syee_:?Ǣc}a=SS3>a} {!(죐rbhN;ޮi3@OC O$OQ0H'd6JdUhUSh͍ޥPupq`4U ؐktcV>WKe?& g/}[$#B>sgq/懿)Fw_W0?I *_WrG, &810[4a:W0/X/B{!JtS B#)pS耕덽lo̻od iB_o%eϣ{bɚo̦OMOg PTݼB^y†<9SzsR/mt]1 j E2E!ׇB>{gEw)"UW>)?.T?|PRk;|}BXߥm)i:SP;{0wsZGr[(7tOZx^88J﹔rc|xߤ}fi@|@_ LuE}ℽCܾy+08\kt>K \e(@8*X=4:C?,stc WqN'EF! h1 m4?:bl80]wpO؎;*ߑ8j0W.L۽t߹fޭ|r<`?ԉlГke.s?? UHEH,@yx w"O 5Go7_0IMFn˼DHFWTq[ -8 -:\Q2L#<982)$tUtǥEϗ?0:SRyiUg}%}?yH_̕~@i`6Üa2FȺ-bv>xH;IkMw/9"xH n_|] EPz~} ~~W_7O ~OXj4B5|=©c&ꃆ&pD/" M{fuYRe[=Irs6@Mk!_l S͚m`-Nߊ q>R^,c1]|hp[2 f{BdxfM⤭ >~ʆ#븑{N]ϔVlyJTHJՐ&7 wU%KftّIԚrCTPW*[Va>b+R4tCGf:~]L"jcgjSWMa:FL*#zmdwz$?^B}Ȝ|ϼ :^&}B/.Tl?& ^[U' u9?z6sJryHV[rv@*M*"U[F-s|Gc \=iH: >>EW\jLQQ:\X&Z |#r#%su4Vi,yl{ Ljɜy:~52ʉ;_Ob4`xSyh [eMלTퟂ)ONk32GI*NȒZ\q`-4\ ,1%:쐍)``⫠-΄Y,;e'{u@žo@֏Ku?.ӊt;>8S>n&UUDyY7?/{Bɳx0a&Z4krssC~"}}8#byH$,^CVk ڃ`_FA돥))=T:5u=q:f7ǔz"RPevp-@}_8@~d~+v|N 5at݅p j |lU{fċp޿zJ++K:ts+ Ғ}jTM*atehIh<MF$h+Uu\P4\ 5СB<DxP/1Lv9Sn%xї΃ʎ]jų)Ƥ&/eo.&凧P fѵ'f0%}}d^-|+bP[?Rڀ^40QC̬PkRezm}N(M=Yp#"(Œ-;lK5ݟ 4q\1IF*3csu̡o~ Wi'rc!Vb:r;?Hxz ?`}y,_ND_c}&Ya.K./-񓓬 ;xlv~r-0D-X+ՉNKK\i}:{T@pb_xB K)h$S#pnO'dJ'jhhiu\)fiC(pu4lk"zm :ٜ.9~|u\.[;+vߓ1He;:KB{(.>SzZ,ȉ]ÆͭIU*ћ.{ Rj:cRyϻetU{v Yfggra oFO'7C, 6D7d$c¯NXk@SJ_xr~=0%AG3hQAL +W2y[,gq~b[d֛qM3*GM̚j#>@^Ul@c \\2NM1V3 t<-c 9-W/|< 4aڏ?X

(hhPq:" l:hWhˣs}cv,!/GTX_y 舃 ,'dJ dZg!tC5AK%m |_;/WFR6L5M"[_y*wߧ¾yTR\#oG;Q^|zqc]ȋP+Z%}wYr7_wuD^qrtePWg Z92l@Þ1eWjezlWB4A۟Z45Ueq9f豱֥l0Ao2e|y?rN2a+X{@KAihp)e&*hqe'^a΃YƃpfTr)ևR ,T̅;/Ҡc}|6TU`md"!C :l$(0e:, x:(1H#:tpbX 9pXLX'8FPgh3k*Cd\4)@+?֜+6@7zߋM46~aN`)wݓ<&WiA{6dٹ0G-'WC`[RIqh&rUf#Ԝ eH%S%hxKciC*["QMnПRÒdru:tVeʔ 6tkT{]ODm,/y}.`A;4eV$iIPW 8 mOo)H8e8`3O6' WhBe;f :ul|io87W&nkۮf(f6Yb#E;+t0M@k TLekM=y-`epɵ c 楄 UViPQ5Pl@)&,!–}"LWh?[@+X]2#Ŭ^?I5! +e^['uGf$-w=s`\3[n8C>\Du?^eTk Ly<@sBt!wf b=jeN"NLӦbZhy9"IBt9C$!1tJ1~&tAKpSʌY3X@DlO+GB\Wb&)1K_qӑz^ApPn熺/νhcy*;3줧yyHTwpzPu&\BFhc{ȵ]\j?or&k&2I ئ+ َk@ˮ2#VtaPX*t:[/.T+w|ɬ.5hy񊍽Ӏ;x%3b*5*est)qsIEdp3 1Do;1s--+4Ŋط r5A']w`2`'.=0:0:0 r0:x?sj~@UZDr]DEӹE\˵eQ€Wre6)k?;R'A;0Z0mp`=}]udzqK؍GɅ&9zW4S7]=JV{g ]>[gBHGjqw{ PlOu]YD!| s@s jPZ,0Aλjh~4]3NѹRg j؝|a}KvV g28]p xaF;Ίe}`A$%gDe.ve" Ō T[*BܯB=2Oχc8lyjl<F=:}B6?u?tw=W.;x ^Y"*TMLɁVˆ\>s?`keLT@xhaŞRlmRT`ί?8~\"X_29ʑag8';kO]K:'UDP UT"b>2}(h`q>uN(e^O6>]=]k5qѧ_V%?ظNQw*ae7V Z\r1?f\gIa Pу}#U=[7ۊY~IXNg;kX3Qa 2`g/rgg q %0j s4+!*hCxfk-6Y`8|>R6Ao<^Yew{b`RJy?;+5(:\ T34KuOPk#|5Cl.e^ʷ<^C*x/r5'ĮJiy+9yDBPu~m)# >0;M'ɂb**!Gr6qrN[`m:lsq.çU췢>q=#,HIӑ;;kN ag홡>aL*.o2jG*vM*T@$hI[8^C!Z+ lM8~m2δ_]J xsH.~5aߣt*_ J)6ab4Wf|m4|m1`e,-巾U> =ȐFB>=D(+T\894Pa qjq{`A@(5a a|A0z,B かL26-I|$OܯSv q.]e,tӇ>atS{r6|m>T}Nb75\\NhвfȚ)X*㳴 Y,yl˹#z++kb|5nwi8ka;>k:pmKRQ`Wku;%fYU8{Rn8:ClDjU{r]"ĉj0pEr W!NKCɅjÚrU!pPi ܖA]$% bCfTFn <X 1fꪲ[F r>> |PcB֙ zmX~˯Շ80`XRT3=.߀ O%>`٦&(o,q (MYM\j.# @U f75o }±ӚמFMwtXPxTdnpAqr)a֎"/A[ObN%y[~hlwB.LזMm5Vw'<*l#T)XWnܮ10H.ꊝvl<ruIB֬*zg6\ X6N9V\2;4/{ o2-w,蕕G'} !g8gEv+ܗ گ{ݸ9C%{'匣"LR15aXXwƸR˃pl(C2i b"Ӈ@| b.̓u OQ*5b] `aUA7^`ʑ:Z*C MRԌ}="վ Ŷbe`aNŶ__µ]_\s2a|$f7 P5Ym81ĕj<fRSG|R`!R8%aݚn93j86p!)bՁ_A*دW{X&nǏGyVeq|OH9lp, {OHú[sa.b7ذ[^O垇 [sΞMf^ kW_qJMDh@ >>ׂ="6xL4Dh Lhc"WjxVx\=ԍ&(J,=8K{"l]Ep,j~R,,=XkOk pM#!&q xy !j`o9 ss~EA-@;,7Y6OQc *xzyGWOX_ed 5=\ ko >wyt9N*0vZ{3,c1jLb't*,MKZp & zsǟ<*9Q_oIv\[՟uLX[Fh5z>ܯ!WcMocKu\uZ.ΧC-*|L66MGnD‡=$;+S5P,mr[ ; $ιM)ե ۨdL$k|i(q4&u8 rxrq:dlc_3EAe* =[ػ +R w q$᦯`L >u)c. ΄' [ [ pnavm a5ly56G>6p x)R+ '9\lG ֓*'P:{8&>bcRq {iKu[7 XtW26B::}xha D`~A_$F*} K[e<emǧGuϑ0ckyp¥_/Rv{0Ԑ7Gf ||>>||>>||>>||>>||>>?'Dž$^ҐI"A3ܢ’BӬKf̱)KkGĨQqEYXHLnߏvv IH d4zYAm? (8p .kV$O|%xٖ &Z㗭M1el am=|ia%~)z,kkju8ay Y{ >y???'=jzDD8HZuχ4Z"?Â93rpVYρ֭][`m`rLHƆ Xo]/o#o$ruxb*DM/T呇*TBM u,myd4rv`\*k6 G"ҵePLQ0u7&|(B2 RCTHs5DI^\t_&L&CXOUfV+rBms2J [Z 'nw3뙸ވh"e[) [G1kJ ٤*z Vm,X.!Ghpd5Y}D؈\EmQA4zru]gq@D+Q"pAC!^r2E?mMw7?DRQT-8WjH]]eJǟG.b!i|\0.i[/gՁ~@4dAɚ*ALVS+֔ ʮ17VQm帽LY-Uy֠J0GVf ㇋IѡRk[Gk3 Uٕ7;\\(vRw?q:|PzELUb*u)h A=CЕ48-3&fC}f`Vh Y:Ds(j|L.b6|K9Ԗ:3R7ScS9h5\X/H.{P{YU/S2' A2uIJz*},t82e(M:Zo/2FbIu'l#=M)4|4$M ?JuD '0NhD9&+=y}ϑPjr5ˌ5\r <_GJԀt.Y:VB`6W?NXY'W&hȔ؎k*V)S7P%+c3i:P^iƅAD6rIhp@=]@~RMIePHF~ʬW P 4|]A^?QUm<:G~%ц:I 5b9Xm2P{ԹbӇB;UJ’zfU):jH#2ް]V%(J`ೈyFa=Zm%sn13ԽR@EDAE% 949+ 9DrA$sksϻ}@7[z5昳gQq+KEW\\^Yf #Z$ظNd>?훱HgᜉK!b=. .NgXyߠ Zb^I1KG80.cVL@\iZhBhIB[KLX#L"Mόec ~y&'dɣV#,.Чd) q !H㋣0-8sID9h w{| / :s7 zXW^+0Bhi?4g6v)}iq^J]  XKh<9*׸ysccمp|fP쓵 F&t) K?EB̥ ;k~W.Mm-z>p 8*t%88"X  :I28 )Dl"?XK붡`%QpM0 |7f84m#3 %t(pEq ./goRS|8<%83ZL=z||L9N"s:ipc*ZЁX;u@;zꆴxx6(/pzѹѠ{$EB  u [S:b־d6}!`#.?zquDвb,]uLύb⳦hNMG_X98ojQUp6E|k ±ɋ \'s0r nq 8Akc8Dh` k8#g!5l zJ(6p=brtݥ"ԅBE8E t+ s`}_}bлFqy,{>3V3hZсwW6hF hFpnDZE.iѽ@54e3^džŠ+["3(fO9Ic)S} g=CxiIG",ώ{tOO|t,/>SCxn7`p6:*t'l=*~ <7qH?ZE'4e"maB&N[ #wֲy9wޗy~Хډgi-W[|:{^YXCM%̗.nqBЉ?tYN4V4#Yg9\'h~`ąSn<+V:00_ 33zN(N:FABs>ӡGv l3(Fv+Bt1hxd hq{2>)8?{_]z5# g6x,`B4~\8 %5*YXLL]= (ypMY3 +!Wh\O0@\WZgd P`ε=XZߝslďa3Kח!V67|׆I&ͅ2@' QbO\ 2ID5᷹#8>x \'36DJ2-ᜈƗT 'k@7cw"`jЎnj_kPޚ <?[x8&γ((c΁b{8Gሷ<8<K񘋠|봀C  )g'm!ֿB{yZN:rk9o4hb 96 k3 :<3T3F814aԲ|#\3h~MǾ(2@9DhcdO/ p^jx{n?)cCu  '~0 r2wW ̙)Xa?Cr$z$f$g-F."|X'v$&S^HcۑzP NRf2PA=gd- X錅XC+j\/4F|s?i_c.a5{~ ^o*ɝ;A[C G=3RO8Jf  7;3 z8ssqaH衠Z:Vt 'v(<}q{bx`'kڂ:~B6~c0N`9"0/pN{WWw=3:>&X4PWU5 w(vxQceK  ?XЅ] ;Kc@:]Goˀ (`Na_TcM@͉'Rs=yXMfQ:з?a4tFm֬uTe;xIЅgmB!m*XcOHࡢ>WN€[ PZ!wk*p=rs NXykHկD9ÊZ@_4š0N`~SӇ?1sAc2Bz)ozt7.E9t~'q :7}i ЌaEz젉L;dPrW >SAW] ȸ~갇ÏuH \ `5^A{^"8~ָ̅ lPy HR)u{Ivr g5|6q{gNc-8.:>stream _zKE p-i)z|TcD KSֱy R9xT&vEFx>VqyG, oGC5<1q&$Y;M~ ",c|!nlǀ7& }z~yL0c)ALώ=6)tn>)!C:̀i Ak{BG7Y`:?o.p> j,xoX=a>뗳+qoXj1@XtclpD2x;z= bk*靱 s#ϔEdl6.C&CN޵=rnq-r:袁JA')&T$7#?Zx^FGf1u1_]xr瞿u[{} t0~|C@+ p j#+3,RNP].Fkנ>ǿ+b=GXN>}lO9p(\atNcBD Sc Z〧O91&ciN-"0#E5<aUmF%#]SflaЯk _53(37W{ILL">:){%O5?}?8J| =O&-ǀ0DsBs {G'$@M=h q@q*:j :gXUX0e/4]!=&xV7$1kW:"B_KyܛsM\Wc% Q@{г,VVn5] __ 5[|~,h?Qg[Caoܷ?3}/OY!؃xLdԪSqyLdq@1d{1DŽװq#ō@GόP;b4%8NLU~Z֥LEވS+݇`2` Pvb T?~ M#BGpZ|wPg'q!x` a zLX1a;2%'d0߅5aLlNN3pל1B[C̕^ 2}PkYyTv*^a聽7xO"#gA]#աOPC_+:7<`jҭЅ'υO4ZȨu5}B9CwRAСeHh\O>{ F㶣TKõ 訂Bp>d&^nOdvc53zL87V=&n~9i[3D󉄽'k`/c@̀/"#'G /*WCr']잦 wL,d^ܓ V]J&/xUaM(/ʩ4`S1җ t%+򘠱D>r ]P_iVb.e/5q^Q]8%?ЛD 8\ƆXF>" `(w=a=lrA& V g*`/2~Rn2p})ol ƨ{+Ò 8|0q{j%y( ^ua Vb 0ӡ)[k"R!OWSImtɰahj=R6j4_h~C/ ֋t5H~ ^( Nse)3g~ $Wd7 f?zWa|q[cBh{=Gb︅KKEyaO0I{:7 ؝s= =3M>8VD 5*5;*oRcJ4z Ʉ殤i/jO-RSMOa-r{V{Bxh5^*?싁j69Xǡp&C<&לX0>9<6竰DŽ} \Gg+qHm i թXΤV+3u*>IkQ5<2SO^F 1>+jTDF;xMz`-jtA>D5fiiѣ30hy҇Z%|6d*bNx@|P+51$.: 22" ́V//5! (a}%~~|B)e6זŸl q d~ } CDxYyP@/ ] 7q"t Ú?=!al-ˎwxN# 7z z; roR*I6g d/%=:$/$_wCzP|H+&Q}n/iUj_ؿ<& O~[k[!g|rkڀetR~ar YOy1Xz!Vb/)a!xa%a2Ny!ֱΩ .6/1AזcOHI:G͂^ 셡bfkf,͚,{d`?,>W23K=1i;W K4Zܧ@xKS:хykXG9raS A*Rr58 @|M Ȼ5e)K)Y'b^n^DŏmLdܫ|ˍoT'CV_⢀>{aZJfbY^旳 ŭ_܀uT)v p]qM랰GsyƘ:yq,꒪kPKY*G\^P'g)يlXsͧ='xIYN9N|~ /V\덐 V(B}<(>6 š5c/ c% a/"k iGs ֚!FnOu. :AP <^Ѳ!xm#+w pQQ}zK f"=P֤G&UaU85 ;>@*ёe[>>V:fbL1y6{m1q@pEquA k_yE^Y닄 `ؓ xij sx^Wdn,VgFN#SfS kS7u }U!_3"? 0OOȬAVi1S.!}W{RRKཫ螁$g INHF%$@_ۆ${ u%\3a_Rp͉=^IgЩ`q.u?-q/̈́=^Ifu)J ;g€p/p 2חROSm-Â]6I |#{=B;?z 5ީ{G4蛭=M}7KlJ?5?uY M@+Sgn n/k6fwdDF2~\݌YA)pQnnWZ `--)L:og۽<:zװoi2:Ovi? n*uѽj3;G_U +|{%5kZ@>Σd"A0:D]Wnhoj7?j?ҏ̳> ⣈yA-tw:HAXMH6ڼ:')&1^ߍ/lyOߝݩW[ޘ- p^A|QUak%LJA#V#B +w{ؼ>f@N6RlF W`,rJR Fo"Cܓ'lw5wWHwL5T(|=4:_5io<:*Q^Eܾm(~Pw'kwBzlv!=ZɭF7jPoR* .5v0XeZG_x1[aG Ӕ)8A:J zm>kg oFW_X ]c-(u+M;xTΐ:?c/C0{]S(|bkbvM~VA6]Wķi%{nS׺~ ÄU6sOu~1(ך:Kޟΐ/rO@{?ZYŌnle[|JCMVڠ3'>7}GOT$ʡ.5M列B~~AdZk?uDE JW1]&gd2M׷0.Aꐺ8or愸ިHiq~EIѭ Ss+}jPQ(1n:]K{)M4D8T~z~j dу9ӭRʐKqǻnJ݅-aߏ7-?:[ ~Zo̙WCGy3D/ +\ŏN?θ$TXľiWۋj\k . J[mEo뭅gW]ԛ#—(De6jyF{v_j_?T rdq1AG"\_.ig[T{Gòi/՜Włzщj }0y'JU?Cto7Pד1k59&sW/+yUGEwkLԘЏ:̓byf.(h:-|pJBӔ6/\XU$uTGx'٪Z G_ kmU:;u1Snôֺ6{kq3ɺ5#19|}Lsje{h0?ͫ?#<1CL{:\ls@/6pqpӎ|I}aѮgf]cٚG^wEf52X(k05z-긕bۜi0٨$s\mqC~uYZVpl<ّb..GX 1xnPASQ采 ɜ2en1^RִXۣ=y17Da`WRiE|W%즽,|9lI?Cu5xϿ@ ;$DmMF#bD5tI?xzI]IݖW8cbD*-wMMrf:~4 Z8aՖ^T\U|5-ټ~KUs{(#X=جaRQ? }0A56j&x3pW:W{m":FY `/d=?ht=_T_uc=]!uFC盓}CRCSk<}CEm%~TC9w4Fب&ج7INKԍ*ht1~*Ƹ#F3>xSe&gM'EEEϚ,sU_9pgvY&ijz5Ūf6*liP7'trz/9U݌zW>k?CԬnDt:m^nѣsk ׉wgZtN0|s~mKFc$޷6(ƹ1,:7:]r9:.BXqCdacdY]xu]x9>)AKtVGLhy@uSFp`]i O'yo>QG=:j7EF]E}-lw/[4P!TA ~d?w"%t[ u'-~pぷϺFsW̺KE}G{﹓pf}[t\xn>.u]D`_o):ͻjif4S['T[αze+ rAѽSaQ/Βhf^AœQQQQya!ɯ}j%&6ݒw _T'}Ӷ95db%¯fyRirR{|\Wu[vh4j躓P.Q;я8p,qV*S*/9љ#vkk.V²z;Ai 憤 i`e`WeD{MD|Jw\peP2] gh̝8)" 176[+%%?zo[N[ knUܐ\ͻbJW}D<^U;Fߨuάt[]d{NkBV߹ ܌DW%yd{8U4ƜiL=њ#( 3}&}ho~5#o]}QӖ3-[swEهgN^Oc]$~1}㱮{W/4um z@>eKLԖȾn^ R߸sݜN949Vc8S-Ƈ^UjŴ,׻ϩo KZkkNMvIKΪwhOVLCCvr[MtCu|ҍB/飷nv Nj*L{ c{η5E%ȎDuu;+{Yu$okmJb?=ȮoN1yohVDlͰ\N٠)ա~UAq%$7=%V-ͻGL(c\-:$z׆&-r*u+~_ӷnwޱGQ/X92aVY}P˅ЏQλ!(G76@;g{Jk\qň'M&ǘT`ȇ&CEÁk>tæ=d|Nfq@زkmb6ebÖmJĆm~'TRS%tGFgxU(fzK" c/!p9;`SuNaƣo$gV rǙPӶmҋuvҸׯE1 c_'q{-}U q{LSklWscI̵8F;iW/TwkyG࿣~31KEtu}5STz G۲WocK{=)vK-eGl+1$Uqa~Ҭ*TwUHnE{K rm*f*;Ȭ_-38.Ϙ_)|0c#X9$b61mb!bnKbIj#b($#:$Pz-+at)2+ @_bb-:r%|n{t%uv\."#޴?OPbĘsfsp?_ΌGwhM̒OL!i¤y(/ fZJL,6n 1[0j;Qz b+#b˃_l,AaeJ#5ɯ l-,q\jNhwje5Dl! V *5ɏ]J̞;s1gB~vBnVb 1 䔉%̈F9r]y+IB+r;wW>Tx\vsMkvN*/wM@%m| xɏR$G?MAOyKF fYC9q1[p~n&&uV6]fwp4/)5U`̽g{WWy$Uƿ+t/*r=wRx^Z#9)Zp0bbRbb=bbCb=B~ 1k:&jF]&) ߿pzyKBw fҸo ♱P{.@qR"btoܑa27Bu}]c12cblbĜiyK׊;N%1o$f/Us{\'tw/YW$= ){+3 7.eqUquueII5~p[Wc hS~soIi9ļ K9W!l^IM[Nb==)0& E뭈;z)q+pt>rǎ5\ w|mG\#r瘎rDs.5iNo]Q-yۻt:6lb,мLd4ScƘĬkеm"lCbRɘ͚XxXDdd ̞f/6R}%/{EED"Ua1q%.ҎrJ*"s*osxj&$Q&*P",8b?!73/ a:=8+2n_ Im0;Yd44NrSP>^ќXjG,nJ,]i@,Zr9o30w┺5pX|XB-ǟn蚸7Wy=w@g3,>ZoFZ5dǚuߏjΉO?T$%1U%19rxmL¹y*!cW 3GGDGyb(x(3'%,$GȽ^ƭ>1|O3m{ĝX9MP=;;~)5v9Q5CZ.}%)9f-5[ '6##$֪+H{by$ȵoGo ,\rVߊ[Z'n hmvcvyWM:[{۳X)U`.\SlxZ@c j㢁u VK]oaɼ/<][sF,^K΄廫yHw }}1[ڳF:E-(*΄4xiwfz=5y%|  J9 ۫&I͊&v#wF[3 >=uVgybwB;3ΉrfopHU85Zag=k rT׀ec]5gZvN&h3Qt䋍F~'U6y’q}LFvbZCsVG으+Gg3 p+*qhIn[t|Ľ64Z0z((T_qr[Wp-AgI6O!cd)yB9JhV^o8^Vƺ=XL>4"?Q^7:fkYI7iGl"8֔Ē,(EfOh C|9lBXPu*8V)ș9GnnI:yߙ޻ŰꏣTwÏAg6>Rh]7Z9 هinsֻtusn޵_γ;8j_X1/;L֓ 9x׾W>O!|):3a}׏(gY#v2#]^N9T)i~3Zkʻo!/- WPR#HXﰠM[v]K|Y)qCc5> x3_Iڤtޣg4^> q3 j,I}Tbn7 º iCy&%L:3qb-8G~q9*S02!s6eQ<3𹗜]'6F /iiKu3$op w@&AIL,Cy"ebˑauwjo}jq~e^7gqEN?Bzѷfoѽaa˕|}l|u*hʞ}WzPd"P 7l2L*B=Kzw;Y?q!::&zZ{¨ôMQY(ڐ ;E=7A+{9L}e&)3Ƣzա+6nSUZC8ѓ G_\fG$^Uw|#S>ASP[IPݺٯB%>+-py! X&r O{NbgwSRW)9tae#e/|Bޥۋ ç>+=a;GaZN"6j:/ B΀?xSni*9.MQ=3Q>#wTs:r5%mtM*;w؟ӘX`o00e)>h#4[ Xs\|aG.Pm OǾ=<Ml(LrڙmU:ԟu7As7ן݆0.OыD1˘\(9r_ 2iTDpCQ}{}']:O!7kln-U-!6Ơtk>m[+u;X>§V5u+Z@3kSj͵r߽|ݝƾŁa@3q7_qE?1Y,ퟅY/KB'snO|2u_|ڷ o/&l}xo} \Ad}nDK>^14ÔnRTKoP cq'FG9#&iL-{t7ox1ȂӢX9V gW--QNaiKos cv3w_weXrVP/?u[)3ƋgA;kp{3n8G_z~!}1 1E|f|\J#+4sY^,tF%J(η}Yl3"=Oy_aKh| ?ۍyqk0Og`t.+z];KYX;?Y}I_44տqza un|ǔZ`nT= q/-*fs'/^{aĽ>X|E7s%fbJFіݾ~:?GSŇ"5c0S(a_܊pO^b\L(.tP%w2}d\[gs{O/WxG4=O[n/ןu'P̷֯&[>\>l1>wPseqOnwA7zmǫ}?n?; iN WOsReݞ={t޾=Ylcgt{C⭌N6'!.̒q' >=sf7Ph/Ԝ'}]vŪRAThb2*ip'?n/{SwL&\Cq _38:oB "ce?P~nhhi ?n%48rl7vխ@e.o7 :0" V]u}O9vpנCBѤ t,hY 0GL!$s37\j$/ŋiN4:?&]kcWͷVgfU]W?7\啹ЛLk.>{h2mG`H1{Xumw /hbT;Orc 츘ЎK/5v:_)xӵ"#/l"ׄw џ!k!yavN ]S-0cD z~j%鴴]ʕaknM=[3| ΠXXmP4OȶG$YAI/i6|F2h@ՔFd HZD(SQh=A;9:5{]yS<sRE)KOS?m/8Ӄ?N=)V Z&sW/كfQ5^/Vw<\cHkǥ8qn7?:c|~C9|u+mց ֗d` $͏!bF@3Mra[w69tm/Z)6\ew/{ C? [ Y೛&'!N'NY.^28K?9$3[&٣{۩~}0y<sШ2̶Ŝ47W %P _CK]Ӱ^ gpWwn]{m*/.;t ovCc CI5w{wixQ|&\2 &y})t7'wczf8>e>6\0?=hGTZqY 0}?Z.d}:o/Y'%W*@R*Ů2;boh)Ho>I㺰oGIK Ck }OY8j|- R©n~(?2Wb>3\!dv ~,.? yuu]w茱5v?x@_+j6Ϙz ]`oC1,wX;XYG)xxuG #`/ Mt/ݠmƝ| -:0 VW&V8 ӄbgY}!2_!u2Lr9s>J=2NHmpRqţ2`pq !g)f4M|+NxH3UT֏]\^1$p[oU&ʀ蝐P͹EbE fi <3| 4$g FK3p?.w72Fk |7FGEgfS?Dw;@q!6rILCH+ BB! FAD|G\ad5SWCOیo-Gۺt΃tX:^e.IdfdcDFIdb1{ GZB,m1ҊYUˈ*s WbY#kp-"ͨԺ 1և  <Ֆ;kwIW}F"3,V;mNLSb-D0 1ɲ['sm:pg1W>"C_$NĜFbIJf_Є3:@l,tR~4]tY-H!k+պˡfo :Mr74 GIc_dw7r3h74`*+DX`pZ T!y[no M+CJm&&l _:`EeKE8Tb wXGL?µ1!Ƒ K/V{: | Iwwn~?xWt';E'0M;TA>` -o҈-%SlHSCZ;W®d胉'>$v}_R^3Z'?|iZ=2hmlRO}pU8X缼crRp=?{QFZLg牑vbt֟JKu7폷Mw]zi&s')7bnT1go:{qzzk=/dMJzgA:z8}cח> w}GS/^xDW(m3ƩJӵ5b'λmRNr|p6uIO/LL6qW/>[O =hw$+GF?3Wiϧ6;q L[?1m-;t",rd't|_/X0*Ԧ]RDlZq-{7ǧBG^J.u~gI˻ L;w?ϼv Df )c.V^^v"t8cM].3P-}tF)zۂ7Dҟ<=_9Bs~eT3ZwKpCZܦh+bڰt3QfWKh%`O1>9zRɀ 4O3&-fM5gقbX?nb6OFuvoF fbԇ+ :7.`sF֌cW۠_\犳sg۵=)nr='j:?pKA麿otRӕкJ%Uk ~]*4璾ݙ~k_= IcѨuX t:R2# f ;a@z`@PT6@J$TUrZw=MS&2+9q&N7GV=%; yb0JJh$|^-k4 3XK oO,qrj}<ֻ;Xh>6Ud06G/-ì-6^,]_y^OZ}wiC_(}ޏ7jʞ;X GC[؋Y6V7z+ ц4=(gf+ggB ,<ȕ%-g ._rZu}_f[`^t94.Pd׫㉗ZustԱ8ɑbp\248Zu= ]ީݼrvvA?o|R$ Ģ끏;;ľ{=s^byhKޜP( .7+vX) 2g֝\8Fcq&v_ܕ4<쬃%vTkeRQ_EڃqBl%Ҵ-Mʇ"|,8̘c -,Z;1(.Lp߼ZJ wG}Nt3sNN/,$63w Rw{Eb6qrZeB ;x/Qbכ\*#Vm 6<τ3l%;Kmzl1[z1l yx{4ه\軛wwV]9CgbV^\ O:`ǂGg=ufz5X=/Na>E/[vD?נĖ[\Rpx :o_N0EXi5ΦҎࠣ.')NŅE |hLjVOR̓勳R%YFA `g1"v{=R3^M-aYF`+(q,~|\? D0ԨwYR'wU[M.`T=E}T&>9B=7b$Tc>#}_|.SZt}PF˔VW/҆0>T<;gpm;Kll3ZβZT-&6SO;:BDV[,oG v|A {,0-ϖi`+Y!GEYq|T^[J_`jĬs<4OeR-'>Yd0Scd \PΗ  )#+oEYM;? rVP4SזW6>èC-F14E>,_+YܖO*eH?ɃϼQY鿱RFu~xk\1` {o{ZvdҞyķz`gY׋nD~+Z~ 5p:}rYlb͗ W[nNsI.gg~UI]w{-+̓SXR4s_ȋt';j䶏?،jb#8jtV=Alw`ĒjtF.z(Ffۂ}chנ89vZ^tP]3ܐˆ`ƄLŧ犰W/ĂÈlIx+rC)G_^(x3z"JY0EuE=J~t0iΥ ʬ%Q3 Xf5} /*qٵpї`Y˓R7|+_"&QO׃99Z(1"-\ObkKG#FqZ58CW/.$> I> 51K&7{V8Za HGsKZG ז^WqL徇 Q$%i".~(_=N_[%v~MjtZyj!1e9嬵|!|RxbX[kc4SjO1yRJF8SrMJ:]hOwz+q}YG=oPb- +;qe!qYH1{"nY|B/1P!"g7ΞCȣoV;kb]8멞Z]G:9+~/v/q' ΏSio:8 u/b,~o3腃S$1LTgޘerZE'bv=#r`xi9V^60(9|9x:? vCjUfȁໞn;lSjX.b'npbWO*':{^#U_$|c?˽;?tY5fM}@#pv8s6)w+q!6Fj ps 'f78stO筪NWNW]l}z!$OXV:µ}O5 :aIe.|E\Ǜ6p'[YT1&gbl(r`>p9"{5$ Y>*0za)l\ޔi/pTj}GuN>`5_K 0p:ѨMP#O~lVE 4fJqLrT7#_O lesqv J g#RDgO?2ű {e>Elqәx8Fn8fU'VW=bK 7SsV,l)i3;c " -o}DN(Ag}N≁ 0<蓧WRϦ <m-g` tP']Mեtt{i\ͥ|bzspXO؊H'\׾N# ?/"l1ݻ8#؃i]__WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW  w>>PrXnI{"C#ん2\6oZfJ}Xp"OrKc4DŽ-vYg>ޜ.3’W^e"77<¾n\~Śիֻnp]nK,fU1z|{#o_%8M.*0D]avavV K #y*8\ _bFe55_Ńߞ~~c:7b3W9̟Or˺6:v=>:Ac",#-|B,|-{ɺ}{:O/E70bkk ϱՇ{t;yt|)mSq 篃vRv& 8-3Fexu>~t}2$[JFҭ=4; ;<؟z]aQ "- [Hh!Yd*hQzLoL=FiP8b<G1¨ ! ƣ!ymiX c!csHDeR Q4 rR$Mr![S\^? $BB=I#e0R̛,8%rDBm0Ra),RzNq1VRґq#Sl$3 㒐P5,  gک9Ԫ3YEP#-H+ga = L:<$:g(CBJ\Ͼ8^h D *%&ɌS8I֔kсS1ʄt\R uh+^ <a m0[-U$ MbH[gߨA2ÇkR{x0^ YW!̎3HtKuFS/=} :O$ZyȺ]~:gquc#F1S9ݐ T$ ւ`-۪QZlh%|l`^#lnFy{T&ӴHhi HrVU`?RL(>2Vjʮ4y'GlRog$f;R\(4Iq'ɛ% f3st{-z$ HP#$#C6 i%ِ,dt7㔦1+';*ṣH"4\u\;![r(}>"Z K䃒l#|F浪K++crlk;0 Bcz-4S2"٫co[ngG4v/=q2gߖ́rh$I+%TF( ^}q){[l/Y|>^`MK VF9dk}(K_Y%68+ Kck>Ÿ3 V14ooѐB- Qf#Rjx)hAKk@#Jt=d!DaT2+KeJs،V24~ђ9Ԕqdo/k5qJR~bg(y ̃ĕyox.RۧCjT44^ 傶5q9 F02EjHɳ#l I 8II) YWUH&v/aa> y 1"n]yyzup2:o(3ć$pKHo6GYa}3PK!,VY[6ac|P F}0"EcM=׌KG+!7YH^(uNKc3v\P59H^`>BδDT2RbT($s1 ے}IcO'ARDHKk?SfM>>ŜtR`$jeMjEEZZbyhFSլʡqrFDȀ  sblFbfKX![?$F2k2!τT2mXØ p+3ølr`S󵜮g5 k #NrB#iһ)g"ıkeQ=B N` `8 1Ņ<; ҁL[*Ag~S#-`ta,EoBh=:YLg\XW1S +H-$FbFCٚ D^ Fo g!&YbP egA\7ǤSӘ(}fg#Y,c9adϐa{?H?v$EGeB#,~#=$ \e4:$SJX5j<1ۀlcXCǦ62*jq wiWKLbl+ 9$S3;.1E#UA6TbEņ'|&TbwLi|# Z0 X1āB-" $1Mu"D|/؁)0Z51C2,x<B6/at) _E2Pwk%-V7zc_FycpMbÛ+IZ_t&K__"=&5~NsOG[)MJr㵕 kW:0#C'cY~k _l='WA DRd^0T!~xH6Br\=OI > +j,GrXGRo1y?Ca3Fӗcx/4rH/UN M@G.,62U3WWZ]3H QH@E]I#ԑ>_bϥ@^eRfIחaXLb/"o$dm0 ASs*GT5h׶yj-ȂQ%l++d>zT'U)R/j~$1K K㭕[I8eNc1x|sON 1y1_|n kaA]LpCoDNJ_', ߢ 9,,Sl%M4C, )V7DgQ.bIVRIl&hd``M?e=I9P@֜dXxH@&GdFqr١)6Xg$^PV3XfYUh=ж)eDhO\?%҉0,J`1If ,ÖgX-اtv,]7Z@/ y!ޛ=R/E:$vP3Y,T]Y X)z ɓ2ߏPU"3l!y C=Ͳ~)Mq%|P?u%OD=z ` Geu3z L!qK=BV~f>\㭴Ll4{ n&3[&Ò$7뤆H)uN\h z8FoR=ׄ OL) 9t;jVx3@@kjVkrXn )gHKBrײD {r|+eb.CGMw։?μ,(I$A~M2hklv h B yJ+Y#(AN3Hj8J!cy5$ǚ\6F+ZmekAE?Y\}7eؠ~Vּ~RmQ %SȐqDqgF@O8;cuui 9Ăd%ăvòm!zRdi>HᙶXƠCִƘE{(Η:>rd,VDF R-w֓$>P3 >_ ܅?_18?0@M821b b^)[a=.@O,ޢd*h\R^&|r+!1!b9PH@r'HJ"gǢgf;kMfY)/W廾F裴qgCyljhp|wFHk"sFK|U8:)dBdHȎ '?NX LYf ]vmΐ5& @2Y DdžV[c~ /ʇR[DHq6e~CBGo}\}lrK$?Rf9H!kt#N[Z LB})!IXAVg6$XI\MzQdu?oI\;{# ¶rv^Lusf c@_Ss~ jz2D#W᝕b-rtX$X7:"k,лVX]tf\pqjI!cܙpՕ,fC:ͨ&Zvh7P!1G 9kfNA<IQ~: (٥vz9]S넖fk>6ˎd4oRJ\ԢY iE䠐c~ D-w֊uo,XgXBGY^?2J C\cC}Q NLz=B{K}yT/{ɹrE$o>!!N͗{UN}/_|ʉC?x;?DHHvCY.%Wҧg> kבS~D $U~Jj TCuQO΃e~Du>%j,/Zz5MH#Sj ; ,UE6Vc]+I>|e0BȉpJ-0wh %M6$QxCWb[H2-BR_QBH/.$˥S.||rjQ #bBTHHr6[0c:iHfy8]*$쏐A0^%$DeHj !/T !Zyr G՞GLOth=QuT~nTsuׇr:gHajhV!'?I~RYX]nb IC}N?O{3 *^I|{UHkak` mh!ڛG:_ՑMa?'٣b lHfY˷i*,w2#e5z%sR{f PdBg[Ħ+,BX;(u hy7ױg|&z$E rp"<{sYmK,l'| 8+>j~1wVm {<-#G svnD? gG<j"m!8пd9voRss5? A*~]j?ClP(ԷO2ী3a}gž:q 8BȈCy[C>9%hJ"A2n"{ !pԂEB,ҁٍ)@Y#Ű$[/vBH<*GR?zwYM1{NB?a䇚'V1:u$ +ȃ}_$ tHZ|u@èGEC =t^!(o=,$-L #zˁLy!WBw/z x ?$ )輽xt0g 毩?y0}$7kП 6VJ ?(h~cV9 3!{ cYndG-iw>*36__- } ~m졘2/왧ۯ =6 o$$['Rչ\{Z?DHV?㼅oW @]>BB"!^"!RlH+^|{, wH'>$zP͙ulZvqiGOOnK+gʹӄF5/Q/|"TfRX:4u9GQ=45<}_9*}B^Vht78-;0W#-v<t~R"YȗeJz Sl%VK㳫=w׫,Q=n,Gd[\ۤo= pml "yFH + &WCo',rONp ycDXi Ig.JW^Aۛ\M=.ẃUg~S/_׶ݡB/w#{|x'$ѻ 3>uoٽDBj߉޳([]Xu|o`XqmP2Q5-rR>9؇@\B<ݭRyΨ_ryc6!Q~_i?x)#oX-IV<\=qroyXŪ"ny=`{7߱v}?Ź_`skCJwոZ{KCOM,CyVG4\ G s ck5jJWG~弎iIЋyIAcg { ?cYX<7bӨClz  ^[,^`6;7(//VʆR{Y͓УKh_<_i_s'm+ǖq1FeMhV)DB N<^‰SRM[5@tyuX;%Ӏk X;ä5E;O,!DI*;7grN"{s= vLx.՜]Hss3Ms'ׂ0Bֱ,#Rx,WD#,qy!Y hc3h{L1U8ПGn,>@y3S:,c@ 7`@ !(pVA-vs7`*G׏bGQאL9|jF|M Z pD [ qtF!d4 mFQc}U[HgQ]j])89*W?SQl v3WB汉8a'\8 AbWSÎ#f2sKL΁"N|{_|䲫 | Y*Og5j`\H.>l-GBk)Qwg/:@wLþ'Ĉ,BLH:ۚ={}d; @wNbbtᰋ|u;ܾh?^<,.^eD {uPZya!uז?V,΢JهZ}Rsm9-WO1~!_24B3eX!W#? Da 7V.ts%<uuJըĶYQNwY W1-q}V|Vv_?z@_>S{oa|{a.c[ ÀᆟF/T,%z=\;/ަ<"M m{t^ EOqcNa|INLJDYIw.W^ZtN#4KVdO@M47B{MZuz1~?ڧӿGKQeEg# p}4c`L}H5zKx+􌹸<;."q`Jžb{kb-?zKȋq6t/9 ΥH o6_cSS= R/\zV5Ήtϥ?&V__=Es?`pXjR(gE<ե/%®@qQ=VH Ƅkh׻>'}GzfQvo_#WV&6HUBҷ~}-V/mOSc10SN pA՗S~qbh6~Cc׳ؓ>XkIz+ | 6_la1k0QY}=o<굥RӍfc9z@**Ά.}?{)6}gXŦ &ٝsov)O}G~#P`0Ń.ѬJ9j~,!#8 \oTr~X{m1w.rVg.i5Y(:3;zw-wc[ _^ ꭧ;wĉ?K'?X{ u߻ww{.t6( 1 IpmqI@\V|gsw>s5tCfU[Z6Al8K0>CpnI[pZyZ-fZH˔y! . LOlJ&uownI=ZQh꙰V| t5#ׄd!(0m򳢼z1iHfs"X?C"*uLN)ԣ13< IPk&ť◵!~XxW E٭?SO9dDe QOFVMb?##Q/pU t!ungU^!NףRtЧy\5nbM᝟^WDECɩ{`P_5tFruxŜ_4tJXzM K$m25+1S`aKV NPG0\x5c~fClFكz+{bToi[DnGXa*x|J͆3x>& "_'eUs,hE'Γ#O'߭w_Mxo>fd͠OP_D3#yDք.sQa?A= ;̨mխe3Y'uǑ}לvăAcN!?>j71}>R{0=ףbU>dK_$+ϑu} q!Y8H؄xؓQa'($[.:|M*#mNږD[mk+<.ccbTk/y)h޸sOu~AHTZko(Y y{6>'{6Np~UŎ&~U$O30SҲ&e敥^EUWMgD:^c&W=49*}LNW ac_-OnA‰ >A?6 r|[8^r;Kr3-ڷ6(.zoю}CpW#hiKLX2ai*%5]o&pPX`U,tTt__U56_Tv^io_[̅[=و KCgb|kPhGڴOMs/=.iքGB77CDw#fܪ?L_yuO}m~ aփc; ě!1ywI݁G5|G ^YYLď,L'=BY{1HQom焯[ u<b9$ԛnka]]Ql,T_^MF ]u&)U}lt7zi9:tδ˭qvqړMƋBɉao^/g87D?‹a UxJ2=GC .UɒC-z$f%V/b,:yěѪ\k9 LAX \XXyt==dD ?ר XP]iKmEN[K y'+\lBOU@ A(pP cYUQUnQ^Ѷ)1"hVQ'{NJCcoɶBK{1gȺ˼'w4&ϢNjn5ag2z]٨t~ʦ+CZPt3)$RgJXp`Ǟ@@ˡQSOuD>6~?]%,q~\g*l]ɬ!}&>Nf%Q uxmnjOQu+ٰ/W5^d,tGR{>NH8>2^_$k5kOLiJnJLn6*n-=%ma)7ZoDyd4I\"չFFݨ }56|q$5ZxIcxUCh}Ch5jxUSDaKdFGTpԶ--dm`)bk<K~咏G'l2勦0{ ~%v`@/5-k~ #Ƈ=zcU#k7.7wT5x6$LԙyrehjecvEƆ6zG78Kʚ9mw+E-WÊhp,.#:#:3ڷ>0V8UMU[ٴ*@X8f.z8h!,`ZUeVd[)x~5UfuOzDv|555JRͺ$xٟg#~G3LGʠ/,1~i *.mJLUR-':[q{ ȫw| MuEkt^DZu7'J++nl/V5;*NhnH*C 7I*ckaww4N:Sp_7&;ڹ% WRRXͤS 7!mv6 A9A9oYPm528McFZ&Ȳ66Cy/Ca?m8h{G7ӱg!. U^QeQNQ1[.Ĝ̒KC,^HD Qg?/?/討Бz3+x_^ȫ(17_#C D[>ҧ;'}J=Z#MZF_<[et5i>%iQr.ȀliX43zWmb0L h(I };}C}k>v5종Q؏hmwKaE5S].Q)Q73j<ڥ@~k;(h\hx^p+{H8_JcC%1փvI-Mgz2c.v;k# cmz:VOoK@c?> i-h# ¤CrVЪogߨ M'W)i7Zo?Z8~jw=ٛ_.ySYP{7Izwe(HJ+óϪ:aey~Esї܏[q%Y1*7Y&H>CR wW;srdrࠚثt ?vW;Y@stz6O3[Zh-skuxdyGEGKJ%aŁ1ap=S38ѓ'yQ|X_B{_izgtbj}(yCQxz{^;v;:DPn|rUk'-"(X 4u)رtPS]SN6[%𷖀Yr\٥``ԍ`vv^e2Ƕj7꼢6|%'[rI{ؒ.+\"ßD&zTJo&zև&$}$zlD+與S{xlSǕ.8zm4K':.w]55~Pj;u ܧVҋm٨9 ֯.^V/Z۰3L0 L"XV-V1p9+/gO꠵ٟ鳜_&cB# /Aǐp7d Aq}Ҋ%wJ$/FeD?pt]e][DIKDjgtTo\g]=hj/DF({S8**KIlڸlݶh^畱@5 V`6 y0yv I𓙰oM?1̈́ϕ0 K-H_DI$1~Q1ף%7K|n{GyF*vG>}fnQ[jԗ~?V?엏]1o;a plv8?:)dVt2?eZ~,0Ef| &Ά?-mY ߆Eq7&hW裬HJ"2{Ee{FA%ܻ.Xj6,̧&$Rȼr7'tOf@v!nhw5g.mʜdx,ئwњaZ햁O4vῷş* 5?'a_qo}Eȓ]9WRطoa. mF4ǂoJܘqCi{T[kLsCE i=J~VZJF`FٿzW>[4eXl׺y4u5BGy^3Y[ܣr1o(txG.X>ի޴܎P9gSdr+EpOZc* ̙̖[M /?)UH+[$0^#Ph2:L- 1QϡLa߆Yq%9:# VZi}bD?/<j `=`%D P\x,,,̟Gf[ L4rͬ~u a(7c_wWzgϭrԑr5G\S:]QݥVK#?QPKQ~57I4"0~.dX8i3P(L /k6O 즒eSe3L[޹JG=|q=CZS.-HrIKKݥQП)wFGWH{h՟vD>b:٧~*G~.GE`)e {E{ `:6X ge`]| 釁.]T;}\#^G1yKͨ%EVxK`jb\%-5 Qb6?t:Dv%[B~r*&1sp: e%7%ve D``^kx~ekqx#b`Rpĵyfm4J[Y_M JxU;WBEgwe.*:ر&GxsbSkIӢuGc+{,M nӒc9(Ҧ=K4Mَ(ԚkuW+tFi|mbb\L?yE9 Wd9`<:V%k:e5h£wU/(T~Jo:%J6ˑ}Xq2|vg}M<،_VIO_9m;<>ߚ:gkϥ|~)JuԞԚ#u*sMʹ~+34;A_oD9 jW̝cYy,K26oR3*|x XJ(nfMjvlŮ0Md+_Ӈ;2oLW%sQTc,xJ/)KV0-یW ]z/T?Q? FD⧍']NFe0Pnzi󧮁nr5;plԺ q|V`ѓ8شUlެXKOV6]-ϵZ ^ ml8BaZ |*Ձ黣~MdU/yp]za5fU6㵍ڛFˑ1ozqN%-?E t{{5&U_ QOXv.eQs8`;f˖6 I")?i}9lzsw:G~*SZh'|-ɏކNPr}i Jh=n miA۝Ǵ1?~n\ӽFlC@Z'_!;>ˉ3o9ic6m\lB+B; ~- VzhZZC5 O\mԸEJ<%7h EڞczN 8yN¯i#Ӳ{=-MQv".³n눬&x'mcuД`٬Zئ̳`5g3X$ Q@O3_h/GJ f31JڐJ[iG ^:lI6w V^nV;OWмCtGu|^)ؤN7ph";jOݍO^ёkF%4:wb,7х h=`̾R#Fwq ]g#p=evH^\dM8;wcC| Q3^keb.]ʃr0-6@补1_i1{G[Ht&G_ ɲv/QuU8.Į%-WJ%_+>h^ln,kLb\S>+i)iB\ZuմG,W`j7ZKQ3f1k@ch'uU?E!0MZ)AnM CE^s1PiǙ)1UGی 8@i2p[-m9E<笠1ŻKssF {OL#,&#,?_2EM uPdeAY,7 ,6n=dŠhc ЖZuͪ<5ȉ,y9SKxQ'P^>s_5G <{\[IuE@ 7QQe Ms\1C+sKYm=Vu,V2WIO|W7;4K]}i3';e>3SPEh;5<bqYL"Y\7~_Ia MMN=SD9,D{0~5"|;/ヺ(7;jLYƍރ= M:*LKomUίgguiL>{%g h OƷm%ۇkg_)ޥyʺ1 g"ppO{*0ZYڹη`~m1x1TzjrOڜci+u~w'g/]$E41r!70qw$ㄿJ.QCwopޫUL+iFzB P60(4zM<_mxm99=]mpU@2dLD:"H_c~is2 -wk K(r P$y$bRc]G ۫ %{׵g̫^kqGϺ,E>Hqy#;t"|%.G.9g>h9?i5]۾`֥}t/0r\o4U a4!ev0:N#sxz t6W Оtsγ^4vɽ !+u5b`nu(9ـ_92. ?TN;K渠]$*h12#dڄ&SP|7-NZ'^ē_ K aNKfp u{ CZXx++6[DW8vQs5u#*@e^}T P=t5BlSf[ grǑ10˫?!r?\b޷W?$0:/y#Z"όݼLX{,ce}W7E8z'~/ `.[F!2.i,KXn [_c{)Vw-a!>lo%8a38s?0?:eC,=bcv9Mf>IsQ],6=~u5b!咲p6~ v#};cXqs:727xʺp|S]M\ZIl=@:x@ x_,QVCBE5@8/kt%iq zHx^c(32UURoPn?9e"[LN.OSUxi []:!~ ׳V1IUhOݼy,J_9mˎ?ߞd^Q)5"_n%nڂW%Gx>icyCxP&9l&]qNZ] /rP_ XRg=s1lX;E,uӎ+a t1g*N18oXa[l]?<2 Du.1n;1i&y9c ڛm}W0=曻+垸6Yaz, x\ߩوg:p1-;nW2;~q=i9y%T<&Yq>k\xΘ {;(&^7#TQqpy] >&U aHɰMˡ[x']S&=ĕ.Z'+zmqUq=y*hsdk-O¬L/ORQǠ<_c.&lfp̬eQ.>ь:yueqn~b%6!7`-s[ۃڈkH\ wU$[Eʭ-ʞ{lxaq{LA<%$MG[멫7;-0O‰a5㑱zt&GU%`ȱA,9g|ݸ ]W&k;О<(iQߜ-|s8<> ŧ'1,Bqg3bx/0̥}ҥrqHG?.Ϸc -fn&nZT#wyhlfdqt1Q Z=5" TB\9})F֮SXI;#A[XIx#x;ڷBd~y3Ӱ 3 Tsa>*# ~ƒj)j~}^ dxC\Oqj'gLB,x9&ޚ8ʉ|0:g4" /s\=X`F|''mH}2^:_ ٴl[X޹hhh]#c̏)gD-c99C|DFE#q Y}f%żOvhiٍٺ ֓w:DvIut)bb6-"~A?2?hbYў0<CG<:nB^1y%oڜ7yA[٩#SGwW-zA {HI̞<R&,p `QvϷ9kp빷ayFDY28 r,,$ ckbqM#?'<.HXL~d_ ą9yٸtTĎ$%b =K:Vg"*įߵy{Hy!OhׂE뒤Ƚ1百U=hjܬj;~Ai EZ|wM[jl0I>888 -dyV:N0 iP2K{y!rl+b >bTW (KYqibd\azBl %VZ#RTȬ.=ϕ vU&.fr}RßW'Ȼ,nV y#s wBٻtHM0X1^2U矿wM\½h-J8}/:j'r+=\,`)%dD6"WK>ʷK:{Ǯ# Cm%A1LKP># 1|$a\{^E.aXW#f0'Wyq)5G* h4Q[/^31K# @A&-CA{LR25y)G6";=ꈱCx5ݯMevy]̿ը'nR5ĭzM"kX0`D=574:*{Ta\%z1{#h/.~>%{6Pp.pM1呮CN\X~0q\Dq3FT m9fq֕&ܓ0p,, a> G؅'.tqn*<+K:/@[1U,Gq<(䕌VQ0sCH 1H;9B5?n [EԽf.30 ɫ ݍ3Hu3LhsS9fҟ6_s5 ɐ闱(bh`g]qD'";diשGJ8U@600Nq8>i`!>!a{}N^[I+{1]q Kd z3J݄Ehm,~Y~ަ(XS:aIYOQ+X%$ڗxy%T 93U] |š1y{#e_ϲ~{RN$HaXQH1I))(n֊UŸD\:T¤oy"3}ᓷ1@SFIڅ) dPG[,g'!?v,.u>si}|>M^.741GIf4֠=!+!C?4N#s2v!T݄xu0`d^XwHaF-@CॵC,S|]T~3<ӓr c%/ i%5&o$dHSP !]Kp;9lFCki<36=%p6q}{|ѝNp+._?6BZG tgѾz98Y[_dt`@::isVg&!.&W 1X\> OO_6f=k2GEm Ф<ë .! z qfydĩ#? ]g /ܘXDի 1Cle)m5yo=a4qK/tC}9HgC|*_((!ҠX̌oHC,Mn}Tn;&lb[|ZѴb]E _U"[4l2gkbf#cJsrs@yZ( ᝳg}m2؃1c.êdt!hCQwLZư[yJEYh]Y\l^جXodj_{ iO8ME~HkHQ7EP&_#;[u> HY\G9 C vuIf#!H*!V*<bQw1WnĭXj17w~|={÷f jMТu as13Qk k@΢N "uY>ÑD18qY.;F*_( ,)0O`?W$]B&6) St{ WĻ1iQiga10/{>ndj+By.eq"+ኈ*vYx(20".>ww?aBI|@Zhy-vZ*/؎4L.!+lx^",n24{ u-x[wRbq#;ZKQk,dfXܨLP5nDlV0eax"(#^ q3#n?ka/_"Y#pѸ~g#BB}lKE| v]_V(+cL@qi^!_ '#]Ca"쯄v}߳툣!8Oʒf兗0 DIM&)uF8HK,b/ x]DXSm&`TDϪ-^=>;N %2>iΡtG iwiHDWShkBʡ`j*ޜs6a}NEF7|< Nм^rq1V΂+A[A >2Ouk:nҖQgxiY-:>i0LYsôu0of#>7ҀtΌ8i0ƶB&v MϺF*ifq 26bM+޺P d3zlC)v1bX71z紳Mnr>MhF; lFgIigDv_x9Q}o`LC;ˇ `m.B6<åM_Ʒj;5;sCm!y7Bp-x!ʧ)9Q]QVNS(IҭtrIKFiemD> LE>+HjD\]*[1ve<q-QAE7aF Y7D:p̺bPV">α< 0/Gq]BcB9'Wtp&Z+dr=}d =hK6n/@sAF!o;[YB+rq/, ̃ 5x,eIQ6LmB8ǃqY;;yjgBLo{zF:[0NH)lff~dA 7!+aF# Zs3*; ` .#%Ļ{{'!FݭB]C1esޓ[O5̙#w[ج&I;UqhqSPqR3 3tqfB(-@*`G4쬜1l#9_T23SL|{Ӆy7D7Y#΢zYU!YvM?:Α})++P J-})BҮSt?ڿ/?y!UcYͺ?XJ>ɪЦńM-+?WBw^uk/ i`h!c~=Q;Ӈǃeؤe֒{<};Ĺ|PW`){Z2Zú5f e HY^|iLujpP_$q2e׬,KNԒ3E>D%3YcA6d[r #9{a|ܯĈ1{@{ʻ +O<qHb}bS3}(-x,e-ޠV -n'}C&f\Y Ĥ N}Eװ~X7BX1ߢBٿacā [D|&Y-+{QK΂3?A+; dfΊҰT$߷vI؅5mb \)3 TRd"6p$|oЋ|3~؊qܦ>KKKwO 3e&x{e Ycƣ'5!q$ wݫX9/c/3-砅lKQ&6Gluy.bI=^Ffm41*G)(E_S-8)~'~( 6~DhcMrVŞW ;k%9+m 'c"}6#%O +W~Nz`4v=Y;w]a `w'm"jvYIO\ɭwrUU`Tw <b*hsS>ab8i| e$ē#t4G\Fo5TGK.sGY>nT(Wn.3%Sv(BYlѝZvƢͅnʦN, d4,,,^%Hvļ`LJ7I|l~w: T(O=:> qFvHޏɜ{-R]za$hC֗+ܼ{+mlu6ndJۇkL2K&m>0m?wQwZaG⟐Q\iUmV.3 !f|=%&O˗ƕo' \Ϣ?Rtwtn,hGEY{g YYmpmcT )aS9j[[|<(o$c/ jكW@#L{?hZÔIYtq940uq9gAKŤ#3%w3 |c=TA}I6+b0PvVO|3#ag9 #?, J^~ ޟY/9@J Ŵ}3̯,62Lr.R폵b㨛Hly>Wbwq#%&e-MN=+:-5:`DⶬaIY2>j- ,rUR|lD1Bwk9mqUa$?/ia_ټFY𣲔'1,)p˧qmlX(HEs#3?W"N2)U>=8A]Jø;(K&0KCf$_H20P7u Qip_)h4]1`nDŽ֙vg_Qt{GF0/ c>2޷Dv~4G &\[=oo8p_RU0j%B H T?e8e0AgMr4c(Ҁ%F$]845 CQ:ؤbWrV[z-x(&<+ q[tZO ;=?mEsZ ;++M$yc쬘o60 QƺcV}@sApS'sYfE>=OcZJ9H'X6peH._ղLעT{j(oX5vsSϢ&Yp씇&sf{J9ecH[k >z"ֺqa}h\taorfHLM֑ bIANr -e* 1)u OTHZI>KH/Q&QY Ss ,jQ.X[BlGN}gp1.L(tLଡd|C0/OcvOZ0N}A[qT7IJ9<5MqE5_jH,+Bw n|c]籉 xh5}O=!P9l? )[ј5uT/ " ;=_cBbutG}Ri4N J.3sBľ+.,T䝜:yKM T!~ڼ2aLAn?RA=w KsG#đGO?45[h_KaBJw%sv!GpA#gyPҾ`u`&ʭ=f֐D֏㝉u'PKģ\j O?`_<[CjbF:əhAއ{R!C.;$̷rr[о 4gBT7Xo +Ÿ\x<-X%nW8 ~ȝaGRnw,xaď ~WbS\}0)OC)[D-jIC)s)5bs5Sb( X|ɽ"'I4=;툘)>O'\'剁 0<s$&My`}t6ܷ]2%Cv6G{&`+`b Ƚ˾~)L'%V4v2te_0sڰR'r'b瓟䇟p;su]FGߞDpzJ#؃yq}lvr|9_/Ǘr|9_/Ǘr|9_/Ǘr|9_/Ǘr|9_/ĉkحfǮכbB+m^z&zfڶv/9-0maoj0EJ"S/'G-IK[W3nxbjS6{YͱZb5{)+6̝cEF~y7sw͚?g"ŋ,pނnEg-x+^H?omc-12Հe܏p?Vzyolf\͓+ɵ(lq3 M՛c׀]7{*cȀ5șΤ-D缅k>F2K>y<\WmO_3X@>}w.-0MHt-c7]Ye,`Ȍ-Gmfe?mXL.Z&*OmZCVzlZ3̤[umk(5q m.mс -֟ ܩO`zO)"+l"sV.:JZf6!0mjefaed& &eM+4(ȌjX/ac#'ף% 57ʰqSl_S|_&?]BF&W9@R涞:Ƽl:S16䷤ e fbYwm'Ut6mXak-0< diӃ؄4!MXނsL?c);jCp'eRnD>d Hl#'6rt@ @ڧ/~vC~)mICɧMdM? aSSE*RQ3I fِLl2~E7ܒb]zcC==rjlMKtw`߈]|R ^zs[T mF7 ;&J1;'b5 ޥٸX7n|+*v<,6xËGcW=NfElx f &w K8TDd 6!Y#ȁ]U"mHfBxut&>^_5nAJΒ^)3ިy~b^rA *8Bm8(z`S\fi3=>gC8}LiM[E7lGsNc >C! y҆@pu2-`CcD_gPW{K@_?^a!:fK1b<6d>o. 6 sA0o&ݼD7vGib $>$1aD1 &1a"7aDX]!^t+&&C A0X u)S"} ~a*jGȹ?C ׄ Bʡt3q΅hqx߆0:6Ӳ_#j&@tZ(Kؼ{0>Q᭱OWXa{M% ~1l=oy6~@ݒUi:¹նܦ؟E褍2!)BHOB#Yߤԭ OZ\Bܡ)Tv.Gl)JƤ:KzccX{m*@$k5ZA8Pt G7ѧ1 l$& /M3Doj}BK6*`H7b;! !q>$$ NoFQE 6oM86 tn)2@n%1>c(g"vb:ĸِ‘ cJCR> '`I0 FzFbrFLJJv"B¶̡_(|Kn "+hЇDҾ{K Pf{Ojb* `CWC !~k 'DmqiDǣ~asL+!t:["1t%yK`_}z @_I!{0^0`o=ql@]2709;_Ks8"3ۑU9#KPZ< ʓzts= ` >s"9I =mM(36IB- q!΍Bm9&Ё8%%y:bvF6Bk"` h{c(5eO@䓂rzst.<;mK5n` a7i> ɥ FC QKb__ğb`P3@c $&1RO5@P[%%D3! Nm-Yl`.lL G5s+wtQS*Z75_#턿tJ^[g^4AL= "$Ɓ xmBb2["boRKƂ|__ذHv["0W3~|t8Xs\nsĦ1C3Cd, 9$1ZT0<n&}>'D1C^!x@tJr=#6uKN=Q@oQ[ K3G쁷}lT]`18SK4A;& v[@"l nE4TK$'UxXĢA&z/ѓAlb˩ h }i7"{ JƈQcǢf(KȐQ4^N,oB|I-⊾j'3 R<]IE72/̃X#Sp/27sYWp#2NA!YlZ5ROcp孫bш1Q<y)%'. h|LB\YlލE&rjFrMN;F! $D endstream endobj 117 0 obj <>stream $u8<[ ^&b?m{"Xĕ8[`& AzIiudm9>W .7&+J[ci"ԨzgpH1iFy|!֣,ۢR☲o%7+|0To"} g&h. qqWT C+B=QCJ=֓h'+.i>oRHAu,6.y10FHįN*&$x!_w'@2zx*FŖAgf3q$M*;ܓ|h*@4vY _!D{Op)Ǧ3Oy߱Q5/A%sLmIt&>ϛ9Bq ey돜b*$#VOg0D@vf<yeT,%/]:|~Mp:H ւ A XL(iuAHl.D3x|}~OTEq`roD}7EG=dpM{baCXoƆ [{ f ߒ 39D8a?*,E+ ~ TK!¹Qqʈ1|BD;Oys(i?PZc@[wrz> Deэll*bAJ?zQAʘop>) -0M:4HڵޑwO\tdlEOW eVv qMC|WEle*bHh3NٔҢu<*rOSh n}@(|9BtY1!B^Rl>XM6+A#O$__ȹg }|<< &c"/a OH;XEl'  mKquh綅 wNM3QEDiPߌߡ`ko]_BaNۑX܁9Rшܟ0MS!OB=$3=Si1[#QCD><6a fCmuJ D!x4 ʲƥ)+:D 1)ٺS)B w.|7 +*d'EMpP.~;^ bb5v!;V ~:NA5{,&9vZsx&)Z~PԽY 1"b"ܳ=TQeGM6T|1bq[|{*@g]PҊź7L&흌9.qd*"vn&QotoQ6YmvOB]q \M.4,}:ߝvb.=78.vE**G9n!?ҧ(.]$ H"M} *`Eh ?¯kN tx5\ܞ \ʑiE>"!چC1JNǘ1U$;t.d `si=-y Lr%c`]QEF?dff)@<>.FvkS}]8v] ,؅ @DyF׍]YcJ|f  ^ ag.4Eab4BcPs I93()ob3Q"{<97M ʪ+XRa\A6@9?램Gr{?]SK-5 jڀ}+zxud2dJz, D1{B9@TlqBʩY@Sr{EM E%?"NCҌ&6P؅?a 21d?YZ`} 5,=7@yusnZ_3 qe(c)K7[S {iVpS_3Qy ʖUB LPϰ j3C G|@ +"Z >*HQ17kՓ"*"w@2Po ߹' VQb9Sl}q.{ TxƯHP !u5<ȩ {˩;Z )7kL6Hޯ<ȇ)=S.~#[H2aQktP@b0"%>B(\@6A|&br }5]l cj!`߀]nй '\?ĵ)m4RʸU{M듛z鼆]CJp%^~JGjhlsrPtjs XylE3!6m`Of%G“9r ʟ BuzRĔyVQ]q%홤(LaLѝ%vAg02>:~ǖ| ]Dj`_aa=k'M] ?5|X‘ L9g`1vdjnKCeջK Q!_3u$Gs^z#_0PAt]D@p!WG 8)?Dޒ{@0 \&B.th[\?+eB׭1XNa̔s;{ av԰,+yDyX>lɑ\.V6cs,oatk9!H[mhd]d>v vDaf nKښ%OJ=!RPzfd&op*515`_k%|ŪJ'bq ,/<5i0BEmmq2тhZ_?04jt=ZwMEsva,]ya(=2Uֿ]Ѿ9^=}>.DNIS%Ee2>s >1yt# !mŔ/kZU6b*.G\}Wf_ĤAmTᩀiɻ'!9!];+l+m^ Gހz=t| Ǻ='s Fҡ{6NI;= (xg Qx GsZ˜S ,xƓZL 2cH\(%13[cBU|t=P4 h(@hEᕅlɹ]b 'JGgcM&Ck$ 5s< CPGmE*nY#QIq'fOt:ejSr黦[s-vS .S(ܘeZi5w3T_)WXpHAr,}̋* InJpqOR .Xgcj'QnYi@r$Ob\E u O*;V`@"97O`_5XcbhD:5!^Ը\j_d]C \*rtI$kUڜ.hjq~_>5/yi-/xk! WoT w-!T#x}Rb!:g4z֖avuO`߃a&cHvOP+p% 3kF#hO;3[ӹK=)c[7L3a[{bΌ'q݈'"jO QaQ%sڌz&Bb'5kh Pӌ3i ^͚)IAb-cљ)Ao<&_]Sa~sCQ`]a@וL98@ВH>q֋!y ` AΈGH׀ڡV+ELjɻa}/ 8%bf-k,kDCQuǒ@\v_{&5g ֮c̬c4[6,EuO;ĽX-) E (>|pBEn8{ԑ)@3 Υ=>E_kG&5!.KHrPl0+X\ ̣"DT0?7u +cG3~ЊјEs>(9$S$33n-@T=JK:4O$ ѴK?y+j &|#t e:pXkE,@HӏRDbs:&/Q/_kѺLsa}$S; G3ϡ 1S5`N-E'jX8%>us&q̏i>YzHn ڶSEe2U5s>s (; TlXSӵZQ׵ P6fX.zY֣(O0֥z=4M;s<_zs l6{`3t,0ϋ0yW0/7Z+mZI1w'"}M3#Q+"c`" ɦFܿ_0 &ML9~w9]kQPG[9kۺ@m]5cŖо ǀETa.c .XXږ".\ |Yp>UXeyS9c RYq14'D+Ӽ?&$'Mǜc`_b\E4fE3>:#i0.De_~OO l4&<:}" bNVgʻ?1y+a_8446|bEWQ0a9bb#>0=SiL @HR_l}_-^I1W"Q,kLڗem?~q0EʲZ;yT/@[9>GL:<>>@f,m\$֎ ԪR8Mʪ; qa;>vgj:~FB9OèD0< 9/ݫg},֐Q#X ~gИ#jwzt"|.bր"}w`eHH&rXab7&]#?O߬?lb嘝uW+k߭Ow8Jxڷ'lu\'܂.A׮{%3sU6¦FMUPtc/{g S{RYvgs.CY~@hIb{F[f [x%Mڹe `U?) h]89SYd l [޹KĤ}h-=8v _=ӳۋ5OW*;V2Sm#?Q+J_+,f+Cv_ 졧 ?K-U=Jt+w홛xӑ=ytՊ;!t=RGۭ#Ye֝ʬsmY9δH"v*WuV W k KҦGkpٚd/Vr96K1f|#CO7MT;[M<[ӺVYձ&c,O)j_~5f cŁw>+|0eOUqg^;S q_m=$'x?P%C-Pc<&S?3kVy oXE:جbwvu6ܸ _!?Rޮ-ش5Wx&7s[kb.5FK+k ?RJ;2|uP҄}i%Xxh2Rs./D"$qukPtSre/+%oXlG.3֭v7?4DE/_77EJoeؽ:v~P| ]x4Ea͏ϗJc}Kn/to= T]hvI6mp-O=5GK-UZ7s^+E1_eB쐙j=f{T7'k8g]k}g|?6*N"gNU{_8g^o8[cgG{[GKOkNʫW^J~^y {!Qzr;Ih̞}j|%goPTTxTb.j|}mzm~wY#oKwv{Xv;(~a> d/W&>4`$2iR[NRԫ,ʹUgty_Z6 }SH~gVqcY׋,~[*TߠRjqV]`p#rk֗Z]PĜ*;^C?mĄcŭ0S͖ysvNi2Nj$c[2ݛ]Cz{gu~\cZq+=B|ӑHjUW#̗O{{{y+K= Sr/rdW_v[bCg0Mht9@jr%^-]!\!^n.ɼ8[wr#<'ms:Cu^:f:bkuņ=XN=U)μ ]•6w-GN'+`.N~{jxGmޜ̱fxIǧs7#ve_Q{Kowª\xlȕ6,H:#7()?F^[fZoV~7Do~zճ4ik\i1*Z"UI]ټl˪LxXUPo K7/19?vr^jSb‚Mr^0w޺gHg\ mҵ{6'P'4>'[~}ֹīsGGr}ҳ{̭],$o_Φ׻͌w5~lLJG>^ʷ{y>zzēNbMFHev)b')Ԯ.0#79.1B}~HY 7Z6eil@~nlȾs'8XChnmCd^zCRG[uۋ»ԊiyBy?,Y_ ‰g_׈;3ᙏ#=#%~lb޽~z{'uzby3O•VWUmK֌ԇU:v=?/dl_+-̼%D}~@6Y.:{w#+S Ud6tfwZ^~'nuzY߹mv#ɭ\z*E͛Ub}\<^#^%>/RԦ{*G7G.=7,{X^Qh_^.~s+Waˣe# GytUHoogrD:=;XݑV0~zoKHCrOvp7X}Vxљ[ab>tO:TZ+;mb` xүS "Zo61_E_궴hvLSݤqo<#<)ܙpƦ坿{olIەv/}ǣ}5Ϗpm|mjNx\h{/4w{cDmUm/*xiYcS-E͉%wjo7x>zXYYVaZz՞)=mO:%'S{ێ<*Rǧ 7>gLI/ZϷ}sBmż#^EswZ=ozȤ&)ƚ1 -fR1׼P;ڣE;ا6[6V_uFo%7ݼn}^~k~oUKqW1cّuouZkIr:Tz/21nTQ`{Q9=x$W!~7M95ۿ^n1pf۴e߭4-XlђyV,Q6srٜEeP5ktU$\ط3gx-xDžAq=eceѲÀ|?W_M\)6TQ:K`d}-E^5J/ldޓdCgƍ^ :ulleb线7n[yێ1W\s!(ƨԲqiFoN(Z?̇]d (&ʰt?f30fq!}~^jX`r 'ٲq# 'k.ӓ%a2 C d~Ywcvt3{Voe _q'NOƷ\˫}-ZMb^ԗnGp9WoTݍk+I~?lMu}Vcn׺4G1@kUɓ d3fNS0v@c ddded..OKW$?M͙'ȾWh>=s#Z}>U]t6%O}%I]p%)f|^ՄWcv\;t9*ܕ+'/F$cysSK_%??LR1ҷb'| : ֿ6Y6eǹ"gMmӏM߯A{cO3x7׏XU=H` GMEȦZ{ڼqٷ岩}e2k`߶/\R/E]YzJTeíW#]ȫm#)=wuAsLÆn_sKj}]_~`:cdI; %6kʆN 1A6@glpeӖEȖnJl0?Oȋh*?4Z;Q&6&4č &Al[!ܽ$7~mIJ:F?l%~/0NU5=Q6r|WÖF N6bbazsdz͖ 7K6+O^B6alU]SLu;9OskّQU]*U)( VF^OHGzEҕ"]EKnĘ=%wEr>1?w k~ 7;|}}/*z~bWK^-}Pn7 {rZ6N<\iãOuKK vdjЊ.U ߜ.l9N6T܆s-pjqs ~UՕv|mœb7.qƱu|^'ϠIsPd#BY-@W 4kyr YNcę48E&{IH ͳ=Nx%27YLMVs AVr4mA<["k8m~crTevM,UtjA]xpsӹ+ۍ E-n~s//s?u?FYkoߥ˲_l4KFsaWo(EZR f4nG!>}F6]T|.b;kD?&:bkV+YM!Y,8yT?Z[c5=u>rInTިDԏs_8ҲLC CW.m=yta/UAGp}q0뗥AU7T]6^117hl!!xI]eA8,q<( B3ь4m*d=~@[&-9MǢ ehk X泝a^/\5j7*([U, oHk]6vԙld[ڋܺNvSvw*fzn| Hl̉#9 9KS-kXhaL T?dɧ5W5jjʚ/TvO9,ޚ,o|cT|K)U5\f}r *EUӕwoNykR/޼z~;Ev?=w/n>b:rOȌX"+h\?dl4+?i_}Y{qu%.<[Kk/~eY81p;w{Zf֥ṙn,*/*JL%H?23wB Ew;D!P}&0GD&2lg_R 8̦x s;1喌ӕh]ȚВ=  WלsW ߊGFb5j])~֪⛆_vlj1O 1Jw*3;q;bw/Y=7W~Ɏʟ1T8VRU?ZfُWE[ =y}oU9TE7T*z!0~I/9EuY*u/5ܹX~a{ǩl vU=ZףrhW9$b *v'7?~@~gYPU%Q%UYMyUwE+VmK*_-UDߗLWǾ`gد5^$N3GoNCFz rn,wϪVyW6/>bN=nNjO˨wos/DvsQ:Mц4mQQcWT›C}$2)o=PI TXhp[ܳx̫p8A>Avgv!&Si ZM>q̘BN|kqk\~P)~TWc-K)2|rFxeNP`RVБ޲W_ d=x{l Ç~>WΩ^/)7o拯9wA& 8 lܞ_f(/=Ȑ\A%n 2Oi_Z8AK-4^ǵK,G -W֩lni<ǪվS)߾c~UqM3p}.K$}rçeϋctNqvBC]}A|?WH2k 기ޓ=NJu_JvM+&kg7W?b_yByapkv-ycv4v}fi@4?M%IǬL5{uFAQ Yݥ(Hx:D=,6W?*}9N[= y9"ܣ׼tELj8|;':@ -Y﵇Ɠk>x.I]yBZϾ̥oUwTk60vXnu\cw<>Σ䤉ُJa/Nm۟ֈ;,\tD4ꠌ.+]Ih%PXBnTNI't';*t<#3ZciLS٣y𠃿{Hkdr&Rt-*&Ez# 9y;9£ NBI݉{-->f&/R_D3ql4w š\7?0<:Zu?`?Lϲ&^%;̂G X[L >t|,m83Ȥwٽق=l^+6y\$8^IHUli"imϗP/wu玼/ȾMS>kf䃗7>_|Z4鞏WA絚7 OtbuxƼ4``Lzסv Eȵxg߫8J+WqA{U.ӠuZWPͧ0h )<:5HbIю+e2QI7}lYys)p̎94xxlo=3y`ug1+S?+vʿ_|v6h߿RKSgתC>\n}R#M-*dz*jO.0%_d /HիRis'r46ŘN|I%?Ty)JFIt2LݥsDT*IͼK>'9@TRUzB%銥J=F@|Ev< wMNpl@l 9n &u!٘m8:OOTVS0~{_*G)0UrWt9TsG;pT__BP- xx֚5"%V@E$} rtG~ \9 UkGY4BW r]|<T 2\#4%0t`zhl R6[A#??uȥ#?S[͘\k茭&:}j. SCoY뒳M{ѥ&1%VT![q#܃&BG~v e_oucmAoP;}u%=KX#ɍ==_y,\x'ZcȦUۭ$=+U|{|( Gw  _6Y=0w|Q@y$H{/ޅ:^L{d|`ξ /|M{/͓9^&77:B/U$k@GũGo_.Q^YyO@Q^h4|:k0BhKh'kґReZe΄FIEz(uBb<ʘ0buDM!>C'b'rзAteUo,zxlfh=rW~TI̽ZBNLew44#[d6W5`4]6ْ\$[-m7$;c+M4r r;ruF5賔U8̴Gh 7 W}Se@Obq{ݳDM % NIZ1^Vbɷ__^MYsi{i]}3/VGM|zۣtd7c7nJo2%c˞{]|ɜxLƕ鈘Xu/Oytc2)ID1w$3Z-Lf|[aG>qՇfq:tJ>[d)/E'P(i`jwJ]u` NUsxc;gi)|-KE25FC\8̦ԍc "]:.o,hGrmmOHrT '/XqnpByNp:AT%gCo"UZk.MmOYIqw|ۦtOnFEhHNtZ:o.?td 'diC+9+]JPARy:kˤ}&)WW Jd'灦*3ZYcud|":KGY28뺹@)0gwMfp^B+_g鮷}?1'ޱKOdIw=q6rEs}Hԡq`4ňh5ޯޭaگ:P5g0=Ҫ#ӨW@8yG֗T#UF͏D.Zٳ_{у7W \=Úi=k<9i7tkNK6ɔ80XLn)$WaA4urp=sS %:IaNvkz79ЇUu' z{|ͱB2 :B-PR=t߹<f;CAc Q kz?2;NT;߻? s7C_[L Xń>s*!N?z)A45jve ]6Ku'Z384 ))Z񙭦pqci `v0w@9|A[>u%Z8VH.->]3"r a}_C)?tˋ~׃7s@½j/C}3Y'2lx:{C/.7?iV;AT|>7өƐz5 э5#u ! 4偫<A4ߩTlXdd<]gÑj/$ :<]K(6tAM(IUҨt-/?p1jZXh2)%읶DKn)T%Z)5gg^.D?zz$?ćQ ;r=o>t@S<=AI*3[q4:S|Ko2 GAU8 u4,A  @#Nk/M(>TǾ.XΉTtV@@'0ְ= iqhqe>tSmp^A-nz,Ы1uT#k4кnьJ7CaOȻ/80)%TH7me+mws[MEx F6R1+`ҫlj CZO0ςB֫kĄ%k)fBQ0 Ӂu2s5*"WM7bsHXSăV~A9_c:׀n"7ۅo9hmy@}y>-Y(6d%0G˅/ W^$Bʆb_^hϊMkULnTJ4k9X$ZRE]ݽ89,Thr4藂?%eՙ ZBV)[@mbگ-U{((YnDz]X; }Dj{HE)yׄcz.98M$Jl_ % RR\*h6'8’^U*.&QtNBo87,ԗlnk0=לf(fmL'2{eqL0M@k TLe[LJ=*"M X|z alaj,m*a7TJBp~h#<#7Si'tu hKc Ʊ-&aPk-oG`a|'vj1إp9qa9wA@z> _S`P=O]?z愴qdPm g'Obc+:Au:*Kk#qg.ENː+rC4fcvӾlză*gTgbh A|}396=clR!~ b 3j=;ExWd 2L;E8NdVq-GR!LFtb>CiMyK+=܄]QZm^[_|Aɵ:.-gR^78C@$u_ n24 r4摹#oHzJ*Lb*uB]? ЕO3OV 7A+8j0fDo.gWoI/^پ۫(˪7!~7fIQsl~mZab(dD'<_V5YQ4I|t1Mmӑd8a+wLűn6K6&&d7ޏyN zlS޸gϰ'S c:΀^-B\WE+WApO(V;h}O]@Ǘ\#\׊%b"㵀Q!o>HhiuƄM9\ nBіI#ϧβm8*6%f'D쑷dϏln)h2dqliuA'xh`'.=\n,Qm ?(>D !nhq0E'7̐m=V9JA4=bi%d'3;h-|l.^f\j!+X9=em@ 茱廧r9m`1t]- @'ZGT]gybdbx*ؼ'hqݸ۫}  \?`Ͱ}PCWN( ׹j-|;Z|w}Pԛ`Ú"v|8x>+t]wf+|򽶄{Ulз~7bv_DOt$NE{K1U@PQwtbL>HT3^i(Пy;HA=pe↚\C/AG 0[qxA/tx&_/ Ђ%Se{e՞Y+f#6lK'_穏<)>R- Uc!n X 8.GI#n6K|k(kS?y B:%O-G48Z}'4wAxGg!ˋ#3ن:dMx8y3*tũ${?3M糛/-rzܧJza]nZx"/W%NbA[Xn) є 扦m>T4<]}n`@dT7pf}BI[Xszpz݄BC`6 NS[Vs&=Kyjtȵs,،Z14uL.?l%~*X|MY8fP^$`gQΒ;;ԇp+П&(;& Oti&3ޟ,yBĎp-`sji |&>P|yE׃BKO08u)F- 5| A=o= K/xd{1}8<<"G"~lnSfcXtRX DiֱrG"so9'(uYJ$$c p 3u`gMv+7V7YtAY{3ÿDpr&bn)p,m֠þ,Lwәe|Ǎ>x֠Y %b[ͬ2Rl{7t۽@R7 OyO=$]w+Oދ2iДoM3aMZ3Ok0ܬ@:LMĄQQ+c+4Zy? m)&MaP>3*E֊Q^M簃O8 pE~&,)/WdgM5"@% I=VґEǂ7SNwXu ֳ!i5ƐqyIGsk '콁RY7{BN k"]y\!lBؿlڦqtx&a9Ib쬾{n}oXKVh,֙ YKY,%C4!(&0wA_r ҎɄgfo>p"!<{ aogl6??xyE4&>5;)zϻW#˫7g=3|B^X$q[\\YM\ ; 4t$}eMUT|vmýREnDyÞyӃSK ߚ{g+q4DxM:QiĹ+;lLe'ka?2}6p^|AK=ʫ.|ǃ@틥&\xr}.׬k+!q-;ʗeg`lyA01L-:t,X_+m!o//i$ˆo;W򥃢<`Wʒ aqX7Qp9t ܘn[2q]tp|  -އ.FK ޶&Sp+!{eIP=` /X]=Y>9vV(;Kh|)y~9ފcӚav) wUTb`*aW ϐ\o=pmKj{o w=mp>$9>_aFk š|}"1̅pEj#󄮫-!OIBLC3aG\bTyl"ƔBicB֙JGl9WXL,!# lKs~a'p$߇LVyh3*7}B=JbV+`V>KK /(0PY B3۸F|pl /'pyb;no><4(n|p&%ܿ"I7z?3KHVi%4_8s w**[9>e4Y,N\yɤ;Cp= |%>|7΀n|tXYf<,n1*׫8& !nq~).Fqn(ERQc ?b~%p=9FJ+l-`a՝l##}(.:N X[p=e /? kZ e.<0QȽ^`RuOmC/tY!a]T#/38Ԋ>÷-<잌57k2] |ϧ1:\X,y Tx,x,: XC w"Ls`✏ufB⭖O-av8!a ǜdg|Yٰ !g&ѐ#gST̒^3JlɫZ&.@WK'A>1_//lܭ&  xyM!!j`Wl5 sssERAr `@0V3'Źp n>d ;7UTLN&`;x,}@Xy9rdG@\&P5<Ң4nrqi3p)~]3%m^Y۱E\|9GOφkj:ʷ]|lE=0!q{ՙzzQ<crY:g>!)5MXch|\3z?E~$P@ $cumc_3Yid#$!X =[![ػ >/en57䑄VcL >s)c$> ΄'  [pna6ڄ|š CaGO#+`:;c |J"A\-a[\9!2>O~(a3ȽRMQѱ8߆m=XtWrkLNvmr?l>2;7_(LR!{oFz-\l.9rn3'؊NNdg#/} m 80G`&VMOǧt|:>Oǧt|:>Oǧt|:>Oǧt|:>Oǧt|:>3<"ֆp3\}KB7F^6&<5&1!4%h6 $q6viF( m3>kmmC"S/mg`4?]˗:_x|eNl/_<ŋlǎeۏ|  AN6vm8`kAt-"`Hφ 4ِ+gO>͢em-W~S 3fOlh2GGۇE'E51!L]DԼV|dHBSFjC#MEiK"ҵduWZx(U T&RꞾZ=Ċu ZAIt|.BW' F0OTM*l$$S/(oy_%(V؝B&QcAD]7ԊE]\Bo\t; FY :1eS:!dMtFI\.’ʆ #DŽ|]>gȒ@* =t+DmV&*R GT"M(hY:(݄1GhJl6N&&MN!1@$J5A'~,>l]y^zlEBǨiZ@νj tخïp=S6kYΩ|A$6ҐKm?o2᳚L袱A Pl ZFV Tk]E['A';A!ꠌ(VD6(0ĒP5?ڒ8/C@2tJe>&_SoPX돠]٘ ]:J n(B\R܆d yPtfi F\|>%!HTyC@>I5YE&-__/ԗU.h"m2>_em~P1Pdԙ2#Qʪ62t myN$|}-eHQJvItAQPoc2uQ5)`<EJ" ÆCP`C7h (01lxQ-R R :|RCYTQ*jn+yfˮ۠ \ >E&kڃ,Fzt+͕h7 |]s%"!zYf!LlS^?(^_\.t\ |J\/U@S=Cm4PQ $<]e]n(§Ug%]$ǍtEiy}||XTt>IX<!IbXj!֫ (Џ(4ZLdjbZ@i>(rc󆍯=x1Fe|Э̧%:RE(R@,X!.ѮjP5V\'iH؏'j֗3'(Rjyz,BUfכ吭 |f%j%GP18eZSyj1t d& '@#taC, _WP:E{/Vl3[NTTA7|>vb}&tɀ]T2暼btP%aSV,iK  .+2#Εd!BN qCTKMo2 WA >+c :g}2]nv)BMmћAJD '1)Z"JQ ]DkB׳BA\:ꀢ-7(˃1!Z s HGSb)̵88r}Yz ( ]RAgq2蘉.֥C5A(K /!uYJ82ʭӁnDyU-t,b}$O|tXH;g.i +z<\K<4^e#B`3KNȇBq"1bf1YJ@#7ؤ[ۨLe ]tT2dScK]0>(@W*F@T^˖O6 xۼm9~`H*b?! .JMcHZ%gcs@tnxr(}Po>jPy 5D2@1 r~@EHE09-:I~y C8 *qn%?'*/$!-s`,TO%JUwUn P4ĝ c0}`:(pH4-gDE'(SfӀ te,Lj=}'\?YFcB(15Il,Y @7ԍj\gZSVaB`- Bll0q>!A?d3g &\XGV}x/͠ʧԌ#ʤC~ȆjQITD&1Yڠv \*iPDŽi^%huǠF'iz#Qu:7 `q[3@5̥UAAP~cc#G)?? 9)0i0( Ɩd2(U Db-YNB{2r!+Dk Qx|-{c'bN_j&DDAgQ@=^{wA| -C!VB]>!&86.pJAT10Wz{ sm85X$ _q^5D0"KAQ&-l!ns8@fC  aPc9 06ǜLh$~b=A5:Sʠ}`؇"˟=c,-!vb7?F[#'h$V EuD=3b ̕cf^5`3ʉ)8|){EnAp+G5p| 'kLA%! ~Pr9귄Z"{e!.3 3BPj4Yf֯:is褲8gYߌLutz6}vf|5\ 6~!Hx~ _9L|w LLF:aQSw-Sb?Fpo1(%j eZTүV[*Rj3]c,-g LDj. E|+Sā~P?ٛxC ܱŘ"9Rp Ԝ@};NXXˀw& &A]|qsPrT%5}!]ԓH'jB]TP;70_"N ^1_iW' :}n| ;z^CɈQlPjtP/fC&r0ﱠNmn/'cŸ@i:rpۧL,y]$d*6(vF_Iis>=4>s)s`Hʵ-tRV.`=QZ9{%d8rpE!m.r"EZQJf&vy8 ,uȓ7A /e{l&}~c$|XRc1H\<^.Y,>ڜG HOGO[.p9 @boF&d0 ΧG@ q,|2!p 7M1t#dIzvg2?%sEЛuHԫ@QG,P_%*P+@5T-üD7Ϛ"›OM 5|k-N/Y 1-\φX59g7(6z|==#i6JeX c!AZrsoYbl5ӄK ftc^s6Ǖ q%8988wżTg*0g.K .mk |J{p8Jg=y&s@U0((z 8E<_>X LxJR.@Lb6qGǐ?:rg9A p:U@|P'5%5C#(!7pC\/dNalJ!n>$pvQ71wӈkOiKknj-qR6!6c~qE8̱+Q=JBe^p&kuu#QMvs4M6DPz=TƽL(a`q G Ԉgrif9\Fb-Y@pcQY |sRz4(_ =M r5CAM~ɤxyoP8q8]R!.5!ԍ@)pZq>In~دC<a. DN0؏X=A'>pd?k*su.wqT3:NU3`(Z{R#`^.؆׀'=]A]F' Ϗ{`ߑA7lVg B̤)oaSiO7ca8_Z]8;bN5Oĉ% {11 śٰV ǜ߽TLzpWN*c܍: Fɼ1jDlI ?wZ,D9!P섘npVD٣F|hAB: < 0!]ypmzYLj 8~1WEp9q׌/L]lҢK7 Nڥ&z B]ʐO[ 6Imz6 %}@ KJP]ZW~%;wq>Q>2_aPw JץhR?t)p2lxjp6En)ڒ*}!F/72Y3Pt `sqsFn9^I}-y&pG8 6!K*ҩɤk1a/Vz)1OSnWJP q=xz(N .lrtZ&Q?5SB>%S3Sdbd0<GC\Нz ڱmߺ{*Z+f28B zX&_q΄z!8 /Npc909 ༠T ׅ(z^l]{ja>([ /ia #CqukRwv(7kXDJrp=8{!-ľB"`Nu;Wլ:LPH9(W BjG%ʌṫ:P =-SJw2Kmv]*bq:#nLlF304@&JP"eAAH _n3i%w'<[.aIj~WB!>JE}cҶe@iA]Zqe)a:ٮ Nk5%8%Xr..lrW &9;Tvp'(2oqΗT>#@>2֧@_IOii!}=sd PLr(͂r9԰48LDнp (`si4D _'Ź'p45*r+ަO Bršaɡ2q}9KO5!O4=XS3]g7=;jmJ]JτL"*p\U^Igyn)j0P)R٠f,yd*h R$ƕhȲ:6ԗvI΃_"gK j/vH2[L^=R&w.s.x}CDlS<7lb^qJ Aח8%xfbJp y{d ЯC`y8ׄXt$z'j(]e%$f-aTS!>6М`)p_fC\ (~8`\(\}i3? !I,!gzURa~ulăU!&5#W,ٹyp$ w>?؝ӀCzjYC Ejc%P/9˖ZCvD|ʀJ@-;PTA#Y c;X`f:T KԥV-pr+mf"}sXpIg},&nv X5/gL!QW)jy T&_+jORg=hGvtKЁs?&_53H)s A=LSڠDŽkUzѡs$jዣ`/0ϖI*z\8bΤ6kz7x`qHp~y^zi<5D9W, W%J;epE1(.]=!ā z_s g >{UWQ24w98$K JFg.\EM3NDgl-q r U|ogn-cV G0aRp^]L9p8{ytzqFrϚ9*pp!J1{q7 xC <ș0oKt{BϏkO>1sPr9Yz}z?7 \'(uciL5qpZb4Uz"x!eÎ8|Hy OR%x+R__@F`Z_V8>A$9`ng zuL_BB3c6 A^ˇgpgύ#qܑ k4Jtsy!dC]<7٬wTZ7Og:qVp|CN;:ƃ]/Pۦq/4<U%Vo G['g%k7JW)P+{`9FHlD" W%&rF}p8u4Ł3GBmIhqTj^ %[ 64o5]8a^$1p1%s/s Np. yDMJ3A x,[ ΉZx&!?8~`N,zKs Kꗻ(P'p] ysrwua/I\pK l p%^.gPp7pc"&=HMzBwwLp>SJ11OבQr}~IPOcÞ7UF[N"rVB\p& 8g_]D0-8LSE$g]l`ê߅(i U_ʍf&k'X{N'm9K0Q1?^ 5o H}, 5PpRoF'mb.d&.P:pdwޒֱNdÊugXٰkQY)ϕ9LjvFcpF'F 8<C}ɽ*nWgK]g2p&bpPWqU6 YD)j;:6vJ¸gϤ"KPW>d|0_|>br{9'C*:O)>j+{Q{\{]^bl84O~a%U|+mZ*L+J-Hb 53rrW҉U[># ~eIU[pNwFl{C6GMn}xSsiM 6nbJH] ~'ѦMjGpȁu&Ry[ W<& FVn;ָh)j4g#\#oS `S4s{I.w0{(e]}e!)|3q^n +we-"FPKnKC߬b7>k0qAYn5`Yv5dehW$8k* 7Jwﶈ]"6bSh|6y(JQ& ;-nUa.~eB^\ߓ}-V.ȅC%8DQAp՚IҺŞ3)[ L;wY\*;zFoe5Q<ə)+9N^V!-v?aIǽRӺCG5-nWY/V d:ڝlJ{6ü!I-KM斗jiIRr eNS-o1Ogĩ )BnvK;DNo5w4X ~5ռ ]4[nϾCggpu z$c\ Ue+ds'6N˟ݪ߭UiorɩǝF_Ta~Ƀ6kwc^{b#-/wT+.XuFxw+p˕}w˶!֭yV5{Gn-lt~2k vll`FIrm4ںp덤S %ZB^n4ђ |^=mY'Q3wLvYqkk8Ԛ\L[o_4=],>> ~/ұ6ɬbŮQo=ǚRex̉z=F[,m \ ry#:뻞(s3p>sNG'eS젂.DT.=[*lڟk{o].nv]&JQ|>Lfߴb[Nc;k`NvwDnHL L LLt L5gj[OZtM9_w!:#:529ZKo2?E[ u1ѻߋ޿b{Odɞ:#}\pW%x;kM'.%ktzʏ)|PP7~L_fx]Ӵuf>ni9}bw3ޑ-8ybHrZ.~Sv²֛qFhx1-ݡ!2֧?ʩ.8"'"-fSD^mhIÙJrjې*ېsY]XqcxnsDF{TPo!j·TDžy}B7!{["߾K|UGza|c%eݍAf㝗&T,{!'-쮈d;O~RQCƷe!#=.lʼB]軧I̾[q{;G5GĄTy)nW:E؅ۆh }څ؅>t.]^H.PT?bE˼NDۻKvZeqe}aU[QuqQV6uG[(o#{pZZs/ֲrTתTHq^Aoĺ_tهqcǩC-ד, q,̋)~ ݕoT$&Ըx&kL kߊl L󏍫qV[N<=/u|VEq%2+@[vcsG^UyNzXZ\c+y[o+-rYtk__gYh[ehlRWL@"%/4T[^p+))BƯycӗq7L  >rMGN4W_f/.+=Yת#"nW;Fۆ;GCnoÂ'WއΕb=2 +%GK>Д)*غq}C]CO|Ǻ$DcfѦn~hǶ _.ɷʠ7=#M2߉ulQwohmÙ&vIM&$72/]Bww8W塰i+Ҹ0zK {ya/6YWқ^M}bK?vK-*}4NtJ*;Qk*5qm wYw}I <_F$V[nUmәs))տ/խ: OM~tgG6)M |h;08[Ut|?""|LZG${ ="}J"7^iyqu4 8yLj~ ̿v\W\w)l<!2!*'Y4P"ՇW_O>5M;Vmnnچ7nGյʵ[2uMRiPt"Z^RK?El"+24? G2c}-:ފŸ(>7!Ol[E6 eޱ ?h1/,MǷ a7[lCoنs?/gZgj9VP'h2RE4P/: 6m.ARG%=- ?NMGSoME'JДjHu|6a9-Z֙C/Ol\ɋE_ů?l+s"Go#P<à7ݙW]kr{a5/+s v`?͞2M0 B#H4 Ǐ1'4)OBs'60eͳOFj}~,zH; <%]>Үǜ yg$QފE./:_*8+ȗoSK=Q>qMMc_Z~9P{Jou^/'l XI-.[t+{_l1Qgjh,!hH>q)HϟgFQǿ5L?\-Ai7%BgO"}#}ߜ-8H/u;#i[dn[ă޼Yy5ucxks/'31/pn97jq-{ߕw:?h7 BC_GJOДqKuɂ>7>.8F4lU3*G1 üʃb? . yKĭ7EQ[3Ŀ4p54U;axꚭFHm$<4;~@F?aoދKB~-tM}\{y[Euيձ5/0k0yc /W2oKED:EH?ƨzC=[^w gQ+5߸(y[HV^k X#>82yT4M4}Z:y- Mf1CSԹfHe4K.`2Pٹyk~SAQ-c3ELW$ƙ=nc۷Q5\^D1F}wm<4g&[89Dؿ42MR_[Oن-km XϦє2MRAӦ$D-.5tz&=玕&<*~W3(#ؗΑ]bʝbzbj]es֙ sFWǡɃ#桩##ql^&[F4u2a 8aBK:Gf8o+o /^ī| 3ت|:4W xMTF9AF.c[&OUS I4m%~ E\>?y7u;$X 0"^q.c2p63D9Qi2,4e4a,cb4y"s 2+ZuDYh >5#gk=>Z"0S:<F.Bj?iYjxhLm+4)8~LYc&gxN݂Oۆfh"٦h^-qGE)hž\CW6 iKڏi zsE=ς" \PK2}.ü?[o<_8Aeq\mA%zih:V٠źhzk4o͞re9o RcJS4k)fZ'r@Ek=V^>r}~V/n1r{6];\nᆬc^^=x9}Q[MDji}HO]h|W^et`2Q$7E*$~  A30QQ54q24u!Lz_xR`Kߦn잰!sFґ>կlV.hG e?a?*Rcs?DC|$95w-pSzv3.oa&.:)ym}QߴK}}tKOy'B\S̚oK%`m{}9a\4}:;S^h#6J18Wb#7r|Y{F[ySϼ;/3f?uzw;U G ӳ lTK&l0s2Ex7g{^~3dCZ&fƈ}pt4fuK>=8b̈́w_&8K萩bh8dj34}R qXchEҖ v|&ew/1Oz jxʤfuw0S~Yd23[3LS w~mA?|s 5˟w2?p˜UTӥT3uv$TVZhU ~a%}g_`sY@]o51ʪhhYGCvhן/Ү7d9uSSU1z벍e]f5{"wQ!o lI_ A&l]6}ѱѢ] ܳVkmm+tvmGw/ ;~1k6³c<KWFo1;*xMÏ3¨Zj.탧 mCW!c')ixz93ն16ywwnZ΋ 2>.7}9>i71Im_mh;m,u\t7}L eCs䇔Nﻥ`7W_6T|,:z~mxQ#@%9Z.8MY iZOu6_y;GVO:?gz3o{IG5 &W.OJ'M62D6"V"8./YkzfoVE1y^]vPSN7NI6-bY_Yz˟I-*c[Nmɨo8p䱋ORch˱Cv/AΠ:yY5oi|o87D;\`8RiA)[{Lhihh <MC#*6oEQ;'_ECΟg31ֶAKVܮ#NeÞfR;9󔤰*2t=L]i~n9qxƽe ܲ/k!gq8agė>8Z@uu4kt4K.c~63qlD+Ԧӧ#N=6Γv;ün/-/wE گ:ENЌSrF{kϧӧ O?1ijE^i+P])x04탺IbJۥJ+5h>ӖhZVhZ*ez/mzyqu=O;5d˳RgEܘkVM g() ] *sNm}e|%0CRHnxM&䯥c%\Getkw[9I?uOA_ӓ=:`QRn]2UWuJxWA9FL4=}~g$ ϦnQ^BF C1^H?\h m ZRjx.vw+wB' |,6YOչMt.m=n jEW bZ׈>H]OR8c"& S73W>]AR:AEi]fm~IFWnt_oM ~zxc: oh74/9gQ#5㣮M):l6._ LM`H:9:ז8͗9G=FѓD)5歌%55n*㦘*±PЮ>Bݹ҇ͻeepRsW(Li\͜ / xЬP8.ouz8NXp39ctOfԿ˯|Y>Aom9y4cA50J8ތNown&#']@(ToqHJLU F sTy )LPbDZop ǥ{% 2YN..׀o*Jj¦}Ё375'7~nB._"fd^e\1Uˤf_c\7c)3!Ye騱:u62)CzHsZuG ڲ )$rke-=RZy]^}&C^m*R(u@p囶0̽ Wr\rHxvI)єEUAbz{{ \G31cYj쒫d?2`+Mk 7WX; YhFPڤ }o(C g143@ultDi5tj(r{y'h@oTʄ],5%z > >NG/oHU!1a,e.<]D]b-[D>Q[ hЉkS$3ߛ3M,0͘/?K`(uP6O+ :/9t =dyӊ?!;-Д,P=x"?3td'G;{*#Ynf {\4|J٫I{ߘ ^]fCJ^][2'Tx #mm2=={榹c~/ۄ7f :Obcf>͝O 9+lq $g4U:nߤ ٠gDn5Ңpo_ԠEe6i4)[*{6d}6hm9Q|V0j^M^3Ey)w[rym{^]QDpaƜ3pY_EkwgY,iz½h\dLUH~`s=g jnApܦQ'G3\Gl W.=}n:P|0J_7ެ2:)8U6p0vsSt N!*LzG+[>-9\Ճ{8LET5:J&" .(V;DgL3 x6Gx2v k7-HkNd,=v24gD4wt*ڊ+ Y+<م{˸؊>ًĖG Db$Zq{#|:uo z(|3`qk>s{Wu- 6#C/`9M䂱lɚ^$1F`I#Tl˸wwI zɥ%7ݷ:u4uFҌ8}Z{UvYoG(֜y[^qhG#Cw; Oz wГ_N>6_~AЉ#K_[:40AJ>@Ӧ^q N) &Av44o=xR.<< \[0ߴϟ{󂳷+2rqdpE:!ץߌxOǤsxog7VX~;އqs@3}ykwf=}s|rfD׭ޙ;7)q; \鐮1:F_21vm`19cRqRw9ʪS'ڶQmBr=Dbxg>1*g*|7Z}hhx΋0&V}>|ɑW>+_pwn(4y#+fހ+2d3;H/1R(rׁ9"16|lc+56ok*KʇpxD<|5#=pYpKw_?ϱͿ, ݳ xΡ3yw^DͶc(;Wp+_o?3ߔWճC1^FyeIi}1oCsS{g?->54šPD˜`W\lZwfg毛{*Ǝ -{rOp!ԹY`/}Ђ.X,3(Z:plԹ`y,1FwڜxN׼pmd/]ƥOr ? /s1{ao>Ʒëcc1 <İ/'zˊ/{aTp/Ǹs7|'sᄋY⼚s@ff!cGzc0֦ԟgӹ87;́SzǸAc%"p˚«^)K^q\? S~/UޟSk+?2<ͯ/|E0vߕY#p"կ==oEC_[U;A[tllr`|Ք11΢\l?cc^%̇򅷦FqaS|Y=wxn6?0gAʻW\г_@Vn?/<{/hƳ36l|va遻@c^\By@c Cm[VF~u/{*~η$/0//fC.'RyXُ+O|EcF ZʽNg07Hѿ8/Ffa?Ӵ/E7C˟yw'/> ~JQo?hRyʄẃ N ,>z«fRYc-%#]q1Pa`́ + 3vL %-.C5o:cɄ(~C) ~:rudauO_OR<}_1S῎=&k_|%ჟxqcW*o6Y9U{| t={ۛ}^*st>t"yK0qEٔ'Vܬvb쩚joFSKc([1Cmq T9aL%73/>/o#\Pa\6_C36;9臶^hCQϢ_p27* gy\28Tns"or |Sg8t/8ɔc Xܣc Rrg.93rs1.#yP1wd`:aY\0oŌ~1X߂(,S:vW/MOݙ<gc,=cHi`_v)CBw^̲z!':`γw՟l,)Q&E)wEড়YB̉y`#l]vpS(o=?o&?"C16>W9;1w_|S^uk_U=n%ņcԷ<ȫOC,̭^lZ&Ugyw}c#]>s=P7t%r"`t\ahϥOxR8Ϲ#{dž"_F>>9G?=$Oo t:svs»sO`Ց+" 6~XO!Gp mmCZ04 >OCZpx EǘQsJxI[ U8K\}Nlfw63/u`'φ@~y[(bLi=A^.|?9ǂkπ^'ȃ_B99nqwE}0s;Ey0'se?;9)17ňN==8k?:bʃ< ?M(lōږ,ОoŸ_#[7?܄y*m8lb37`7=m\y)u'S]xz;:#M ]QicW+N M_p_9ƕ0'7E#a8̣}si(()țм컘 }q[dW*}VR?݂m뇄cb=π񍃋^J6ǚ ȁ8~\} ?Ʋ+de 7_<vQd;d`WDO~ugWd1zixZ?n~n83<4^wU0~aźݕ:ܺh㚳sw^};>6g +ƻn^|8 ;.{ꫲ؋PL{/rg5|hc?k^t V`RE3o06}ŲWx{:Pto`蒣WD=v\5h+`"#6>{ynyc?rc___8or /zs^a-ϓixƸzļ@>[ 1$?{@eW=$q1ߑ ȳ)/¼=c/ol\^5^*^~fTδQ+C&9p.xϥ80r4=?Ǹ1 W`O7WѸ`mjEʛu1W οSA8b-Ό=1V1.7q#c С;sgM[zzɘ[;qWQ\4sPL)3))򽇮`|n1sYTp"Xƍ+ΠKjƺٰ ̩UZ,Gr\KoM7eye%O`^ Žk(6ʁ?9iY#{M@gS;/Yʝ3g15O;k9 6- 07冧/{Z؃|41P}21pφ=]rlSxAS0|ŮFG}9bPM?߂9We A\W`\/aOoGq[_ǝ?^] c~TZ4oy=zy`Ɩsh^q7CD8v9b~+9)_1ŜX z{1/|5-76 G?HmYk1ww bw\1c+Ssg.;xh#wUM9)\]?c-*7B~]w=Fs"-+':3aLo{}ōy@O㿪ʳ0_]=2<7rcq9r 濊=~)ȸ 6SòzwřŜ۽BY(o=yٔr1wT,5w;k륡ML̝U(+|&3O<]PgκsgQR-wVb^_1gŧQޮ9.s <_+,~&&+˃>+ό;qƝ| ^|E94c$復✄{N n8u<͚ү4pg?Q[Ȗ?hF 3_yy|r2am^v&b.Y׆cg t4%E/=[N9JNX?_PϝuN,T4KmO٧VL3"6(h=%R;TјS/vQl fB}O.Kӷ9 mYn|0(g]yo,R ԉ»6)F O-F(7ֲW| ]p`gS'S.'Й#Y{+xvKrgn:92gW0_2fF%JJ;K ?ccǚן6܊%\F~aM uGz){ WxxǖcnS>5SU+.:wy=S.UO]|CߖbY{7aͿaЖVL.;&%ʩ'UY{^岇sM)?ύ {wʑE]8b^{띢/pm. ~C+W_0v?K;?vo)wVh翏Ywb&X>r)Y?sg-QrgUsgY3N V%Oݎ6/_ХoM*fb̭@Lwu?PR@y篧S%Wŀ)?Y~˅OGbCSO ':'杂L*;SGY?Q׀3oDž]*07>DŽ>ۡL[.9<s] z;d\e"m)?٨#P,^6ȫΚjTIpE7ZVa16VzAlc7T-wUUoM.x~?¼4PnmDѫPvuSdcߺ% s\!_f o%qcloG>KjsCu'W54. ?MhUK*;["uBq2 qO5\r; 0WZoXlś.&x3[_+V?s殌6?yE{^d7fŃN|uGq]qleqOI0}x+Rhχc.EAn ֲyp[L+vFVA]؏4 M3JUGI/~Ȅ!)B _ys6]9OP&7>}})2ULw*p3P+R'y+=?{ЖB=V1e#AQ] |গ0>WpKnCP1 (?؂]ީZClo9pp~S)%PSc7(' [ښs# uh?mE\Wx#&料Kȃ 3|?n؁&9yJ'bz#+5}`ji.*xmsgU${0wVh♏WcYik)w +N/ZΊ !2o_`dkǜ-hwG6+]Y 5аض7dkk.-+ή\[}dxx;"<&A]a[bkD6 =bK0w|{.Ŝ^gLhiɑ!WL?-r0KuO]aqAfhEW!=Fw6 |t/o|ӈ=qw+C\j8WqY"y_z:'rg#mK"_d~σv@Y\iѕj.N`_rg-s6 z5ʱ[P!?/y&%1Oxۯf9uG:(7 {x$0zwk'ck/hd3#Oj_xV>??4 ی(6З~Ձa-GDgo=[yW ԔzA'  B>_؆^} LjWpǿ 8/)^E? :0[%IeW?ss9eq.*4nBzF7ǹ|ѡAO<ʸ]5z1'Ճc5ƳdͿq͊r&-{l桮X׉o_WlKGX\!=57a>%.ùȁ 7-*$ Mig'W*8}wGRCϻCps?[ui9o#uSBE;.X^|V;wq:-L:iסG[*ڶlSwQNZ>gyo?毠*WH؍{XA7؏#`܇?1<9-aO`=ۍ{B~~; C) КCC{?)½'>'Y=wyhb$c/q%{}p ݿ2֦㉓E'1OQ*%'/*k:y:"_kPq mhӒ3('hm+\3оg m?-چy,~_ds٧ WyD0憛iy>/ |y.D{Vcs9rųː*-@"[7e^t-W ug ?;Z={sh+x .f?ȁ3 t1%i#p.Tl]>ߑYy*u_EIK`*90'\h&3ϏV-~1m y7$\VXe;~'a^3aqt6=1ܿo,jn ̏o]0{H2rŃcm KA>y=$\7m=8ԼuF (4ҥ~蛠tG; [ك14,de'0m/ h`>-qVlw׋v3o#)ozsh悟q!1+ȔmaNg'1}0-޳\D2 y9Cq7#} 2\aXg1 [| Eȃqm2؏hw*F6@'yp|ʳil"}x.8 mKvѫ1+u9kplP>lxW~W̛9q /(*Һg )'8wħu/^ms{y#pj<㮂bHWP(ɼbwJ̺Xe$' \`n,*بQɴ`ACsPoEM-jNIdCKaja.J ?Lj_W76YQ 4E2MJ$k;(8~*f5%$_MvOTOK4%wy7H5q]ߐmx]dM˴c?g)72FɩZ,=8YǨ22m9,x㨤ܕn)J6@ۊR]Ds_ ] @g{˒ VqI5&-&z+o:1)8-Ym^<ũTs%s"A&8:Qi*y pk`MJ%hy#?}@mmm}| پfIE:xMjXiJ]k8kF?aJ4W斚щ86( \,qdKErX5!S͉;!.jzCe#?(%˿q_%.NեF̜֥cmugէ{,o8inmW'ԭVJ+57&K[u'TBڠel7՘jH4X̂=eH[@(O pY%lT4 .9>/ dJd -%L0ʄW%Q|\_}6C\Tɲ]rJ˖tr_ࣹkM.Ѧ@} m Ŝg^@.ROve矮7%['Zsα~]31# ?:|ω dDي>%'ƣc2ƣhwTJ5%-/GPuy{qY>IZ'xϻn}Iŭj}νƺ=¦'jjKMsm^[OwUK7[L+3yX^Yf\Y̏!wn˦Y~+َ`bkdWLUlh|(E/b)&oe~B׌,O74$꼉Du68{r{E2`ƺxu>21ޘ:>UY^ _ɩʤ}5}nk<ٕ7J,Ĭ<ċD #y3T,cCq{) +6MSɺlхy`ŤTe{ e40_?ovza2'ƫ[[^7g*ꖹz&ǥ)A宪I$gdQzUMz뒐ݕuO2 f, ZMYىp!|\:^W=1eȇ@/y&d}Qwr_6SX(6%boLֶ_z45{LG3(qmQ,l|8c͏3Y 8S6X',3I{L>餟槲qmQ+1{L.>q:F9?T3'hL>,,F\<VžA3'/N\;z }&dU) MUv3eLb'>$XRߍ-ԧ_w'<-,7,,#o7[-ۘ&[o S[͖n$l͖nt[_neOoDY "<,#o"{y區 Y4ʒueuN[ ;E1i!Ƣ HXI;"M/F髱O1U~T쓞YNf$v2u;H#g_;lI&LmfDet2T"_)5%trJ r@O_g1re#WB7:r|1 1BQ+nY֦[i{Cu>u9myzzˊ{Yd˴Du !4uc=Mܘ8˄jV{a'CXf=YО̱'s{2Ǟ̱'sɜe2G١9{2Ǟ̱'su27 oLyU?)><]7rtj~f=sXG$sd.%u Ql)'b?}ӷrXۓQ9t*[#r:hў͉섦DMV(_BijV/ cɗ||n8 9}zZvaVtf&Md=?YhZ"=Y=S!#Xɺb6XzÜ2?Gz7}pC?rL|ֻʞq)`O${#?ЉkgvڅmW&%(-RF{SOgsY$3%ޜ۔5PmݺnWg,kh/>qsǬ!mITw1jZi_. 8Ֆ')QG ͭ^,f";ZQ{ъjRօ= XNԒnz;)#eGSꡙ$_kӔ:0vŁRd*ic]hY`/Ьc{Ь; ^E<{ #70Z,m+7 K>` ! ̪h{=i^`{ endstream endobj 118 0 obj <>stream h k/ndo!?@nnvn`r>fQL_q$]`*U3)n]{~`^}1&EV's|EϜU֎ajG3FSQ4:Uj1.^=}SɖYL7YW=ӈk_tY!/}"#ߐ1qtr} }sviP)"/ÖB~C5smq[ۗq9-Óuj"B j²}G>֦xu[K+e59_Vɠs\g1;L+S}sEYN%&YNS\βNַfĪ?HJ:qqz$3$E-`"KT՟maԍ\bP31Ր,֬}̂d[O'zfD}ٳ'ԖվES_=2"%lε漤3]1 +VKY<ٕ&ޔlV"F>.4 =yB3XP 햩iQ[j8_l裡AgN*ÖQ_jyO2WآF@pT~j&c;ǡ*ˡA3N_GtUu=h]5?HA&Z(8鿞U)[#в_1EJ>T/Ok8_ p~-Yx QdL^ \)m 7GU646QrAJ?ħXC>yNk>{ Iʹ2$4^A hQ#ў`沙d1`dHD?@lIsU N Wj\&Z]#j'D! 0ha,J~7'uo(V[T"4)Y3!Ѧf6p6Rgp&{\kFqUVUѸ@w%P^b>u@q&sjHA݋O/@a2*ͩk~ڔBhxPr4D{'}'Aw֦7hS}cj9[n@c`=~@ AX*y8|SVTZfQS"*#1eU`%^ B7TLP{N_\ PRP4G]ԦxM2l]KZfLgg4L $DaVT(OUA݃EzZ(d1sNIvFM ՛^0,3Ÿ$ٿ9^STݣgh($ɼQC-**_#0kz3O_ ;ff4VجP4.(6FI6 L#~ƍ#dugZ}#yPb 0-Ig/,0</"`b9{ku l% 7V(vE;`~s&*w PΜ^ܔI8M5{L臲8ת~Sd롉V1 @7j0ϑ˩ -ELB(GqI*UTDF!ެ6Hbjf\9 ӧ ~2|- TPۖqGmUS]މ yU+վD$Rc?˩^RJlo-aoIM&j:5qX K,& <.{<ȺݒK D:܌%YFD&r L!QCe ">ȬYXJϫC,`"ߎ|A ȜA g"g6 eä7;㋛5P*ȍ4Pq =A8c tƐ,T9HP;ocL<1̉dp+::3! 9Uq0`T8ڏ +?8h iC5m():p(FQ18#gVݬmΎ8 ܺ)88Eq0`PP?rDq/t8:ҺhzwmnQn][YYUnEoz`m?rCg0] FG_V2Ii): 7 K­ua.E$[oSNpEuiId۪p`I/NE(sDSֵHf%M]4h.pڄ 7UMAD}Hm S>z]SW[.̞ X.`_VEBwё ŵH+!8o st':аYLF0Y ]Ot[CvIVUNeJi ]+R5)! .mp 朾 2,p,]ҸD}k3ob6BFYȅiң^&=ՖFj o,zNVm˵"n',Y^5:eC .Q]9g-~6#-zy9W+C?X6jH8Ptq0?J{qۀŁ6[Kù|єjIRC@ p O,Njq P\5\u0uj% FD4`F3ҫ^QۤģW!A4Zۓ iui7NJ'SM5 N90DpţƏS6TE'VVIMIT既Fx[Uƫ'5΄n/OAUŶjPpA- g vn  TQ\" 2 k0,H]T _TPI4Z˱ jw{X~XcGhHhjX:+8m%}j2f^m5Uwׂ$' Zl; rN"QFTV8&}G:tIWzx_([Nz㋜Gylyr]'ւM` C"Ks`4kvC|v˔uDBʛ1@2m6ɔM+Iɟ49.]-25$7䜠2Hq˧p{D7sV_'$e\ރ_<|ǯ#!v%8(eT<+3D=s9V$^v,F_XyuӦpyF>pX_QФ JNm.h?su)%B#G.L#!M>: q+Xhi\geM)F`94 *L0~i0DѨ\~zK h _fJ *!@{tҙA5fJzgx1M-q˟rL\"MR PftA^ndz Xh O^J d2 L6J]*Q6Lrę)6!+UzbHjk6 2T5߫ˠ i[F k"Dnex2`içQ ̙ 6* N13QpmZ Xte_Wx͆6Snhw᎟۸eqpE3*_^iU~_㣡߿}73]?Ƶ^5_:{.]=g6ltVmĻo7v\]ϙtʍc?w\]ϙ {_+?=@wugϥuܱߪ\[7޺fJK9ӥ7濛":,uLׂӍ:TFOK9gzяǔ_ѣ/['C>?XZ X`}nU>\st^L(?uk#Z|t)#??mwVӞK9u?m_]3K^kE}w]?"#.HʳNxYڔl ΌWCRPȎ"ZͦslMv#>R}v,baɌ(m ݉OVinPn֣AܨdF,vP؝nѮsw4XoPhoF7*>[:z7B*#A#ăk"" &AJfąkˈ GDzSq@qPfFChbaqǁ̌ fCuNb˥-GÌ0e7"as@Q8s>\ꜰDKZAAGCX7aHt@ht>]:U.h9RˌUGQҁV#6c0uPX:-# E<;Mlĥ1Ĵ3F|tv1l1L:1"M#lw"ߙ4v'a;:[7݉gs(}|<ÜM#k7b 4v'N^`ܦ nD3idN=FD3Y颠:W֬3Yfv+֞^5[ LceҩkLG3,T31gجfJf/>]۫fJfOǗ>na u>H51}@51~qj&d L#VGˤO4N?"+\#oO':IDHbxP)@#^%7+EVT#2zR`Jb܂,a, n*TR`z鍦SV3C~R2? ^h<\(;^Mh e£P뿘 =d"G'gH> QFߜf[$Y ( Iv2ss3)y%[[{gVg)Ah<:vI#/(T9'̦2O=ƇΨ&Mk_J}*kj0nMg@?*ft)ñDmԹT:sP3Txxeo(Ons("PJ0Aqp~'Eh)@ M`yƨ=U,Roz~DvԊ`Y W}$moÆ78Ðdps%ugx4X;iMěYZo1d (0>XC;<'GCpC<3V,>ݸ=,uA-q8V8\"e.:Q י&s11oƉ:j l<9sォJ,]d}sm-<8Bf9 4CfдD(ұ#(ӎ:u=#nmT]{Bgt/`:'о v2fu}G+6u5P B.Ve۞Ed0xP$hrD%ȹ=Tͫ*;Ւ3!7mhBl\ pnH ν 09y lP>hs蠭YKTqnr=.DPR,U; +F7< n/Lh[h^;R$,a/CY9R wA񧀥Ybu=)De/ gP%rcifSNԃM jtM0Dr6cgHs fxqB94P" R1 0V5Jq$p ^>T`2 ]ݣ㖁)tQ.#0-\3 pI=O NY.x_(jӖL(DoZ)/t1G = l}Ƥ 8 C DE@c~<O܇=sb&#hyx<$(#8-EcNJ|$RvBuMXh;r1RXIنlv`=Q/TL<fiBEFb+#758+bJ 8 RbЊ\ cRf<.+ըQP[U+"5(2RjB4ペ=U$ :ZǨjWi]z H;q5r VfPo9ziuvoÞzas'Pt |bnLp̈ 8XP6;+"djL^J7QuQjK14 .\3Vi57!3L/.%<f_Vk},I^eBz VPYoF5PVG'ȴ $u2^8'6I$E4]R~PW4'#(`:C z xZV58=%pnZ;ZڭF^mVXmZ\ zVXWkՆx̼@U,dYN i"X8ը/>(TN; YcEgik;a/Ҷ\LY;LN &gl9Df̏jqk|- $!^^>3g/@]ՕS(>BǭX_Q/VRTt'|% U~S/ kM4$%͡l7dw(gJ*_:&"O1$za ߔiYd[g1j!NwU uI,ɐ2 4n(ʘFGgq"#Q*@D<pc/^\W,N'1j?]! MGޓ]1qvjpٱuLn U5gJl)KklrA1",hT^bYUG*&yBrq_8FfEJ{E!? <,ك(RDà_D6E!]6Pob"7`D aїaл0^è蛰3/?#Y<1l`Bd(h;ԔJ-k]/Mut|uW,aGa[g?qZ?k:`.en $ sLjQVKUR~Q>/1}q[HQ~?QH/UKHE$\6E|5@4CU~4B!gLk'sDk[|HՉ|-X/.-lEY{䇙x<-7 J&,-bmUv=[O{ݶ>[ī@{{9:ٺ;yX@J)l@53h/եiw8VP+8 _eg-4 y.р#4V #aW}1Iqmt6,}3P=Pn`vrJ}[vbjA&J̆b'HX,313 Zh-&j*v=(*?XGTo4lޅ0 &ZJߤi;ͿAHaeZ$DXayC>,p5 JuTSƟT7! >Vdtz4,̅m[.$]9| (IE\6)i_urp{FDV^^R0Սgm~tnW?"7T@im^ɟ7r>n!.?[ot}hQEq^ctFVWUwkKnJ_:dpז-b_!খ0F?&QfNE^ZH֏bߘWpƿ 7";yD9Eab E7r$J_2H8:ꗿYTփwSX¼|uDO`zn^,O /__2&D@JEkv)ObQR7ѥC}u#ƑqQڴLChL% R̦Yj>%$ޜG~bDD>#;IZ]rB`bER7knFӉEE~` ]p,μ"x^ǛcyG̘X_]s_%헹rCR:Qd1Gq$7 ii:ҐHg'EVCta],(vfD8& +%-E :`j4mn=˒ (E!N 0+P":`SiKѻioQ.!H!ab >|B\$4@P$^O*661ar,1!*Nl'[ avI42K\`H< ;Ь˳tH.jiiA,X TA: I 8DM"aH& *d?̴zZQRhL4=2A/xO ͰW H˯ӠBaFPMAYOH1I H LB4p2>Av@EyN9=C;Nd"Ng@,z,rIA""ɲ!$P`{G/+2&b @$XL sUr $?(!,jPƏH#"}c@ED9  Y]a &>5L2Tpl) –#geCP8c$`0SÀL$]/˃OzRTUK,q)JhAz/""zN`PPSRv k#i6APK Dx 0*X[a0kgB%'V "˄ s0-c׎&`  PI ֱƊ PsHۡ U H 8 "Y%0IY@Mdl0&J*4T"r@2ֆ<`(F&Ibdl ,AUl*t͔1`8U/I`*Q'? ل5x?DfXacVYDкy*TBm~$p?V6z3-6n7Hs+ 2q`ށ*8@}Ďh $(<#{! -l@k "k\W 4"HB >BlwJ"z7fQD(SJT σ!P^LBZidcl: c@p#L="0Q؈TAPİ̒c4Fl{wLz t=!}pfCf4]hۢh5X!]"NJS٪?U_L l76%0$ \ȍCDFG`(X<3$*Ec$tr/qB q+8t+& Fn6AY2#a)@AN2mAm)2aXXՊQV0+ 뤀ldIlr jsCH6$[w/x,P4ߨo0 KX,Ҟ*&Д.qFW9 G ?)" *0vr64lplhȭ{Fĸÿ(sVƱE P z JlkU%pM0`0@(W 6tKmIEp. H_`8,`g}Q&-]xUe񅂷xHl转<d`kpA  / 9 􀧑E*b"~Ak2)F>)wVt_ pj%k :l<[ zB*TD"7kdLo"7ƙK n;AQPdLrw\0 dgD,6S @3R{Nd\^ ț1?$u l `(Cz` #yF:(Ԕ ݫ#tkUQV\:N A.@"{WDJ x_Y@+A20)7gWތW.Wc}nŽb? wb?^?о! ֫l: pۋЪbx>^hհz{*_3R֔v핔J0?&^7ВR Ul˳1#i=[lx>|5ZJ,,m"MW06zݱo>FT&FRkug)jyN7*]T/g=tx Cj1(&`ʽ~?a|M+6ƽ4ۨ94SgyK=]^,chFr[Ң*)3YC3M#3uGR̨-a:i&J6 ċ8>m럴GZ~ G;Qӿ@AfV::.(#)I`cEo3.]k㿘 a.M*+Vi _É{($SCHʅkk׷I;ZPg^֤*Wc]dYc$Ǭ`?,QA n>%QzѕҨX/7 @qSHv,C<=%q 9i_[UpBuiKЬ^;lqӞ۫KDj}ܞJLd8h+e>GA&9k+,ԎR@njaz% 4*8?xi6/a(1a<*]e u]ܤ#Y86ZQѐh&Rf4$ǒԓ)f+w|nHb{E)OeumѾij4*dB2a"Lh(֔_*m(ՐTWt OUK5@zEizF,Thڮ6ow7urL]isֈy r՞vu{4V-D}xf$̾]msv59Zšf5 䞦zR`Ith':o#8 oOWC[{BRjFV~z^ \m*}k Tz3PUiQsYoKݴb6Gg -Hsì4FrrIbՙ={9Fo֚VraMe 1v`7gd-CH$m!$ YZ+P/w}%FF7iر.znU L7n֛ÆfK Wnȼo㦩-^6&@!m#gMg]14mNmvWm4d[." ]#)R_̃~eaIfz-r& zV%L{[{Tnsꪯ24lpڼzA.FNmwa<θRKCO778xq )PqAݹ!{|S` xyA"mzˠ^aXmT.Fu{b,ggO峷Puɍx1E(jJjZJ8zl )#֎9`=Lñ" -Cmf1cl038xߦ6No1ldfd>UlT ِ/fg9 +lէGvJp΀\v}GC:F!{AOs1Mh o.fٖJP#7[hʌ[ѣwT"RcZB%>Q(фGȽӋ"؍Y#U?D!a(-~sp5R<ER3RsF8=| &,HuW p~?`2HSWEaJ 'rƥiw6#H>ޯ]1k!GUcԱ#(R@KBGXþwTY>lA3h]cXFn۲tt[{+uP|R$-@֓nʏ^~HS۲VBgk/=z`,m`!~?fkpF##pʡP6]V80DW Wq6n\`|nM4d>#Cavpi[OGRQw1v&ˍ:ZZo+wY;9z KpKXQiJss=G:uI/ӞP;2DuW$께 -eS0ⱦjdJ%J!s^s?nX.XݵP:(L̰^rbsFB9V<źsԅ"IG=H&c/a,8_&*rJƪڨJ3FjdD7{w@U{]Q~5PmslNFI tBʿdϷ|zE*3H:.YL{nq` >?^ɞ F9pO\7u+ofR.H_ɌHkĺ}r@L6E/^z:up>qqdjLX<Ň<YԢ["(-/omGoif"m_" OW]Ly 9|f8=F`A D[rWSDzB iFg=@P8ρDLtv3ܛ<uOt@" R2m,|;0WK h.o&_Fc+F5(s{>f#G*vs:b5jT{jR4~wBC|AL:2}mEQݰY0>aض/pnB#rd&ܕbbxv`@z&Q_*ECbڛώ4Qf@ q\g5WTZҰߚ >ÔOkQ{s_f]?:ę?+-ABc ZHILmg'T%}AV:|7d 1ݎͭtpYHla04яvgklׅOUab \0+-gp9䐴 =)Tܮ*&Ek"@PV?ᩫ/^{T㭜 ޼<@SR͋{Yjs݉,@6炳K*wk1}UAmY0=UqOz2@N%`)cx>z>iMo?(,lvū[`@"iLN3U-͎4J1?˱>?7/L^=n·~&y#<0m$ziBR}\Ow FAZn(-JNJ=vO>U7wv#+7ArN5ҎL!4(zYe6` O/ 7e0* 6H. G>kzW3h:?)-*/IgW|\6kmԞFe" &4LxҡCn* Y7^r̖ȟU)O_a"{U-,b,*:4kFMiCy^de}x!}L耢(ޗ :d(]qF0cb-k; F]S2,Nm 3?D1Wj`>~ BːW <]ͯ@ЊSufeenPMeOUp^,a6Y_򯫦?#@殨ЩƜXF/Ią|иfK%y=ZzS|졚Oѣ2 `% Lrh_J5VI.PxO蚫Nŵo|JT-#F&:Ā0J5붮SS:[^HRr{v2kTX֤bU4w{ȺP}4ϷJlDG gFitN\ZghKhi}'wo$$׽\hk)flc (Yɳx@"j5OfDxT+=t>: a{P/bPډULʩp'd:2@8bkDőTzkB>9 ̅q+4S]e@:,dĞ*fDYpGV|_|n~\DPv,xyn'a-K_߻RW|Sl}&ѺS'|#c%3xGJYap%=i_oy6"-/olD7@%6 i1ʺUhXjz/lEx5%! 5d *@yieuNv' Qf}c"a6F:'.q(ܴlܫHKP\ʝ0R j&(9𢡊c,@5V5ܛ0>a_\y _Bh#?(A s6FbI)2^> ٸ"Ao,RTzRKL\5kKwS秐~cb=k%컋g{n%?}Յ{ey Ye7*[i^8q 4JLfgL=`.)w˛TDl(v'M.B:UҔvh_%/\phm'Qm*9LFkWca CE|"޽{^]p.32ͻ9wW\fn7!l}̖4sKv6iA\X|ʯ#X0ZUNSp̡;`}iwzE}Dz[t6Nwxʽ|8*I'E~L5nXKaJJ!,կORt3g0;c` يTwyKO`i² Rm*B`sciGɳtxJM#ϪfbRӍ ?!(% i2urY .ƒ"J ˼ᄒJUɞhr&bP{f3󂔯޷W³,pl_,%VgxPe&T"F]5B棩k^ϧi5gص#upRrd@Z,|A\#R9Ṡ{}s7*ҟ)H彥IJ<]:E#3 \n$~`Aik`3pfR< }PP#wQ1(xӭwyF4"X-4ioAz=2WRAͯq*&{K#>@{EeۍSUx^FkMU5 <Ŧ>Dv2Ȇk3 &,901>lIbF9-J!s* :i{+QɘV8Hq!|h,dqrV`(Y]ƺE*v-MKP[ p.\P].zUv6 "\gV ht>o%GzpkJcvz97 ờ"M,?.]Ϗ.^ϥ4N'M&^$h87N|ԓRj-{yt ZύRFdW!`U3 V1c` ;!⸼^™mF/_: 5A4Fo\ƃ=rf[UV8Aa7~>hq_hߔig&HJ(,W(m R.9gV:{ql7 o Svjc{"8Wbu'=RSaF%A5'C 4Sw=4HReFKrJْދ> >zrXg }uia˟9)/6Iܤ#N B Xla[1ϮSX ,O(.@6}Q,(A56qCʠW4G@wT7 ܵR׳.3qsVsd4%>lNnK 7,#7c(q8P-`|(u]!z:Z^8̻H/Wl'+I泟*!Q؛@cy4۟=p4~:<IU|vQ '];^Znt˿olif->{Щf9WH>Q>7+/+_l"pnOrj!Wn'CYԹF3]O^BT3ÿ;jf))< MŒVd1NF@^{3X݅|+߹fC`k kU~ Y44ꝵg$NEN]$j$IʳS4,TjfuYg&7ߣa7-WLJɼh\Ei4n˲cJ[i:m[!4eozǒZ~kd}64~/{TU˕ j]R[:mRA¨!|\|b}=?EEd)TD)m2&\k av֔BUUsS-Mȍ&Z Ț`r=Kp;# 3$wưF1ݠnc9eKsfg3 W6J6)YѶ[~E.fXIi8dƣvP7تBgޛI{G.߾a|4(ЕB2KG4_e+%`j*mʁ+57-[C(R=@>xtkM W>xh쳔P'_}m p*])xz2e3≲uh B$~HOroO/І?""8v}r|4 G,N깟NGBTs~ p}uN8%[Y/e4:RNʖ *{%n?tOɝ$Pą-F+=?j.5Ns2,SyGC#v OJZWs~ uwN"N~| dx=O[zôրи#ΟK5tQy1]TIr%G+@bգrT|N\)F|OCH`#2"VZk\*>G Q%3%tz̺:n Tcm9_H3ǣOt6}q0nb!+~[hv+4OW>8Whp}s3 ɥ]@Bn;K)]<;^c=Q`\cfWba{ʑo^n졧܇= aNLWvrKvڹ:ggge;tyua]3E{eǺ]!{}r~~'ḍ՞s/Ng^t͟i){z_|+ٯ:Q`-eY8w`o?ߚl޹n{wS{>rE$zigӾ RE^;Ýv]Ȝ .1M^LN\#Zv#>9#td G8JϥT9j q=:Z㞀qRcaut&+Qa 8ώy](9ũ͜ajpE'I NM¤tǃ3{Y9 "ގl~C{|g^8AU>N\uf\S硫y̼^ S"V8eɩy,9-ҩE=.㧷h)rS?mGt\W[O\.eX{\e{Vҝp~U\ \I׽cuz>]!x}mgԻrݓ1wN>Ô.p7hnqUnC.i6^|6 I;sĮbOtexJFSJ{n޹e=gR-zV9?O"n❗7!|{Rۜ6ާv+ϫq༫t󤥮/ }|,þgv髇G=]9s{+a P|csOyr?>?Wǀk Vtt7 fǁۋEXB8r\'ՙRe,4{ a]:u:}sIgtrLPȕh(J]~ކ*,t>ѡۋ(|=p xܝq89p{ەV1<.OG>;d#u%RCBd#l;OWu'q%:W4KL.*y'.Ex7 Kmlx쐙9-o(0EQqOJrcyO}VڗmLiEt~OG]`5DV?L>`+F?]2KtF+ɸVcw yOsVHk^7^;>{7b8^ /;&Ab=[.jY8*4#<$b°$%RR.7s*78ߤSw,ﯢѼ2Ϟb,d X6Yƚjw[Vm:ٳdcxVtKgmwx3_i%>/t"X,l9qYp>26`|1oHIxړlx]do2/ϣ~rm?iҞGZZOҕ9H | 2K?IQDZ3N&{ze2[A*;h"0\ɞ cEbRjYG}^ %%@)<πoQ$J/FŻA.Q`(|R뱛)}Eٷ. (7FJTe%rSWy9\U'jÓW7>~s3֐H}prrr/ZjuyԠΟ__ &z]'~]{#uoUnD$wQ\w/5߼iw<BYzkUwoc%zh$ZfltþɛA} uznvO]-ݽ.S>??Rƒ=?Df0:{|G?VK'wO3O<۟s2yn]5ϳaڜf y5j^K^ o>~L>-uɛChKN^nꝅs.W7'ncI>vgR?zW]bћ<$LR=ƙu.~vۻuO4Ek h9ilPLnb1d|U+8^VG)0#=n)~g+a|&n$ /O=^3yȧi7BgA>lI)oY^>q} o v,tXZ$7W?_X\}QW娆&?&[̚nb}#_Z~8JPɁo:"+}(yp*틅Qyog}b įso8A`.كk{}k%dGy-AZorۧDU,0.R,fwbꡒ*r|KFVgK]ŷzf&/ E_!W{ig9C]xuXPKe{{{Dj/&x/ Zg Ң5A L }s|3=-/5ӓ'dDnMOGnaH->ÑPoZ/yŃac˻ų/{ADOeex`TɩmsZeӘsղpe t)ܒ Ȉýf@szd4pFUX+t<\@"j+u?)oٴKݢ%P7笀BaqogEetdf;Duǰ&2@I9{SG@ewnwyfVVX]1k"w[Z9[_]Z<( w[f@>6J\(f@O\KG%TIZyS!n}G{L&ޕ~=߄L {M0V%N7{KUj?Oϼ7ۤӴt1L3y^ fӋT#}O/\`T˻ P'H̟?Uy)سqC߻_?oTyh}GA>oT̯5 c}y(9Lnz7^"zE'^4˕8.ծ<;:Yڟ=SLB,~`#;[JUV]%Fڃ[t @n}ѧx-`6Ŷ#It/32w|`9rKK!ٴE~F&{I V#m({ȿ,b?Gg!*PΉeWˆQ1p|B,ԮALAsNcZnAy3iht{{M`@ʺ'`>Yҟȣ&.B/ȹ4@2n-+ts)uHYvDuD Z]d] ][uL͵rR)-O)2tF'c.x-H#zջCT +YӾ?ya'K/}_?EZ`1p3Cdb';KBY3})]}9R@AFѓ{̷{!bK=/ hs*,|M6T[iicg6XџGmtw8U,)WfѧJliz[ړs02'/9Bjƫ2'\&h?zAٰ7lsB[[]g[(O? ZQv lt`` ȁ=|סfFk;GY:+G+H: E)&v\fC! #Y ;9vO* L{Kdے07l n-%4f*| 1y Ť،{,F (Ek^[di=;B5չ1&~c*˵$[.a"*읊a"DeqǶ<' ,J13߰CLUT9TXRfRs_kK'pEX\ÌAtS9Ng}~+מG +tG7]ωj-lyy9 > _ X%O:ŏ# ~rAb,U_8Y^.-=vٜTЧQ(8dlhi^6/aQ- okѓLH7T^ou̕Q:˸}*~2GP F kļ.LElD.Ҡ7Qf47+ؔV4q,LiCr*ΤKxF" KX/aFJCW}CCEV4}&ߌ]Og|?:ޑq@QPn<ηO*(zOÃ)'*Q1 D}ac9 %*4'&e)0}%xmF1m9 [Jp~f ,%#M[3}2H49n9z!U+P-߰aAoOf r󈜫o8O~srLI<1{?~03k\}N53瞲$qq98@FU6BUYsΉFÆ0~h(uaІAmx{}o MΑA}ǾWt> /pNϰeߋ% [qlqgù{iyumŶAgo'k#J;Gܽy۝B9u,szߋƓk7̺0F_i/73"8#e'EVUSr0oޛRԀG'w`J{y8y=]e,YLm<ɕc(Q8TwrMISBvTq<(3FtGdOucDƊʷmDFݗ/稍'#"2'c`i,M+_/1+C*C;a _I,"crAJ-1ϷDᾑR7k+uu+lcyg$&@>{ðFW;kri'(t^νaj0sþ\Wg:k]u(!*6K[N~j9ǝ)~n/PnEp_3f6~JG3TVgzc_z/,fٗ=;XERHc *R5efω4dI(﷾d[fB~5x'hlQ'~8߬'hKY*gQR¶{j"8 a#Vezt]UYa:eXk 7zSZg!e7A+/Kرd'Ddv/$5`9*T3Vu7PĴ4@ ;>j2RaݰMja)jh[pƳT8gA;Jop+-p} * X 3/`wp4V< ]4`3^2Lx&%cz 3(6%tTk]y`<؜ NiJ )U]q,.ĥ/7Z7̶mʣUcNk8HD|jszkК2JOF݋opB#Rvn=}QC# n\ 3ZT N({4d Mv?q흻kL#G+l ٭eLM$+Kvw(re;0삭q0Su3dvYو62#rLz|;w:ӱQ&{vrc°떲UCq'/g̟tx׿l"Hz%JmS:%9RT xZf{}ȭ Tk657tG5~`B̕1n'UaR[ $dGx4Y!<%eqg"eʞӾ؈ 4itFH+ 2M_V!4t޸l: "ΕFMp^36ޫ)OM1ްغgݸbz]IA7BtR`\:cS6^xɦ7sWl:=.:Mǥ㌸cqιϦk]~%N讌&xatV9t&+%tzIFx]IYj ;`yScVkB[5MMʚecMȥ#Xb<}jtz\:ȯI NZ|C6 a ֞HtFwot 2Z"um»7% fKi͛F ՅC:±^nzuAVOʶ>d04:JY*ђ  gړ%V$G< ؤPV+"wV4#̥юHűrJA 4PLgĠeil;c2w6e YН-/Aǹ(aEc;2w8VP5f;.!?',JDW%&.^uj*,]G>qx F'bM*u&RV7Wn֦–VTg=AZڸ%}/P}P}B42 B0cC!T %c>!&^}.aTg T`Wku(ߕճSabus X"F 6wiRjYFݍb~^e3OX-I\]g,Lo)B`m[ 2nƐbGn&[{@1QiXaSG` u` +!2DVnHpG@y 5 wNV %{ ==tɞiEw]:up7Q*Ej5=_1S1¨=$쟕H3R/b &16مVZ|c i^O*[4[*4bӒEiC6 OYB1N"iPZX1J˴ŗFQV%4_^l%S㌵ŭDy==5]x됵g[B+ϕё0)JK凱NL0K5gv3a~#`5g!=JT#p)m AOn3IΈ珹-s1qfB{k*aɣ! HBZ&*3 1K_bbvSc>j̒D5 g MXY4s: Vj%aKQYd7,@R HT`P: Hα2qTH,@q4oZ=yf%ʇY9KΕ(KQ>8lGL;Q>^ 0y.ʧ(kJ"Q>dV.`v&;]?}#U2<;H׏l(~P~gCʋuezJ'~F%JU?)6c-]?S b={5Q_iGt뇱tܹ: t!T`^.ǾD]?SXJqLw7WS׭~6QuUp\K ~$ $~$+~07)4twj*c]?mUy~$^t,aL3K]?RV;]?Lꧻt304A =>S<1/tz~~V䁮tB#]~.3CtctHWtd:ޚޑt NtS;p]?}3ՉYF|CFt~ե2ǐYoSψ&*Ϛctt߸C]?RCDttfV j́N>^ۑ]]WysngNoFXt4'b{In~4^/\Ζ0zߋu_ni -4XJ@}`j_jQuuۢ;3}~^ֿ&<L "Uʅ{$D{7zvCegc.]ZlwjU_d H^E0R[]/_VY$aP|7< {_p><\q40hf*hmT`K0w³ &*A>R]2\󶶺9lDdjMs;=>|:vrgb|*.zS6L4n uCޞ(Ddͧ~ca|7_"S̨3MR*DDoY^ك`kđ}'"`L/@.e).Aw\%'6Oק÷ýn` }M4o#5FKB1+%0Wߠroi[o؍;BɟUKB>Y::?K7޸t#ȑt'tH; oШ%S$&o H%l,~IiHQ^ ɾ\\d!-ul- 3Jfb{0=xe+^^@_S⩀u6t@e0E&v-Kղ^h  ooy7QhXPhj28nSE=/3b|iOc-L[4;-'VI4pRˈO43! ܘ^9̊rss)**PW?LcO{MFD'Ґg#xGA%3ewcRm~O ո<a(ZMA,5rh4 j\T+lf34x6~ǽsq !(-4ߋ-wq u 44cXYx7#QN?|2>҆•`D u >?^u}J`@}ж>E'#Ob8,n$Mqㄷi:V4jT<nѩѻ4ƐuCXL3}ʴNѮ)!TKM21l~AєGSf*z$i}s$gQ :{nD'`'\[}0EuŭS`vN{1Fv܇CXo"G;J16>ؙ_fKX@5;*ObSJ3* B;T zG@J |agr%_tAM<2Ť٭e&_ o@EUNn JPB`dJ G xX}$Fk1٠s!W>|٭lcR2U[ PcTt?9|w5<od7y$,]% 07HCWџTX<ͥQlX3QrqVcyo@m@ak wCA^Ӏ"mEcjwlevys&9pz+?VހN"QٹSha-jҡ4d1$ļ{XW'bL#;IU^?Ѳ JʟdJ_3"'l1``pe~9qd d-6:L0rЩ!R>;lB J 9m*$R^X=pD`,EiܳYXGFݏArC%_T@)u1>{EMC> :#pxV(?Ɉh[ަM w ~Rjπ`mρܔ6qsA.&yh=(ρ3 ΁3 )s4rԬW!י[H# ̆4uRɛNRυp$φp<|φsSr8S ^^ʌR2WS]zvP)̂ Yci˹Sis%膗%ĪB> 6qk9}b}Ǎ4x@"),G4"TR IC`p͝aT-OSBPS6[]x:Xąw] ,|ta:i^?5IC:?0P9+S~&ݒ{&V;务x v9.0X0k[`lC_?n>K]".{r#DߵPmǁj5og`M V!pyb .iW Z5M/̰2}sAk;Pcxn7Oid@ѓQ |,䉩V1+S%!4Bep9S'&8o>e'UXV-r>{sWacD#i2`;HcXOݦӘ?M9a~rd7xIO[ϧᢰ_}|=_zDek=]m,_~ﭿTB1{YNg$4 k5uk=\ǍWjXQ/T#?W@LK: $M^y5zq(Тi l`stp؈./l\)CL%kX>le qC`ނA*pqך ;f}9ȝէA]8kw!wnN.0W23 Y D#81 2_i#, h%tb5OtߡAe!e<ye=-;>GGR]D 3YF/"fl@e@'[T6dKT6d!?De#L6 ?QH$/QB1*[)*Ee#D.+TqcT6dFKQ T6d¶Q٧hck bXyD]N+o!jWd=ܮ]uz qvuG8']@nC.j}}ܮ]nC.TG]s`W]#` <;Ԯ3]Ԯ Pzj5vP nC.Wv%!jסD%QڵocNP*qv!!jW1 nC.55MjAMqv^v1 B=CȞvY o3Z]QD]56Vhu-Ex2 !r GZ-EHE*wO(C{i>}P3&5#1G{J)}PPa;~]ڊ#JJ>Ax̱ROaEు U?vhItuv"iSH?v?vblj|ԉN:'N_Xh'DAT<'NyLH6hm5x o| ;>fkL6 ^ǿ_Կ7bW(S]o/ۏxv_=_Gb0:} >*B1c4qJgEryyry˱",X:˲ˀ/O,%8>WӔH .}LNC  BSC)Gs >|U?C&I3G[?~fXӡ:74xa8<ƋtopM3rx3wc~C!y)?n}o RF͈ cNmʤ t@e:ǁBP:&mPW!Zkf&M?1i 23a\`0 9EqEaЦ(iPW"~H';M36[N> endobj 28 0 obj <> endobj 29 0 obj <> endobj 30 0 obj <> endobj 58 0 obj <> endobj 59 0 obj <> endobj 60 0 obj <> endobj 73 0 obj [/View/Design] endobj 74 0 obj <>>> endobj 71 0 obj [/View/Design] endobj 72 0 obj <>>> endobj 69 0 obj [/View/Design] endobj 70 0 obj <>>> endobj 43 0 obj [/View/Design] endobj 44 0 obj <>>> endobj 41 0 obj [/View/Design] endobj 42 0 obj <>>> endobj 39 0 obj [/View/Design] endobj 40 0 obj <>>> endobj 15 0 obj [/View/Design] endobj 16 0 obj <>>> endobj 92 0 obj [91 0 R 90 0 R 89 0 R 88 0 R] endobj 119 0 obj <> endobj xref 0 120 0000000004 65535 f 0000000016 00000 n 0000000285 00000 n 0000046228 00000 n 0000000006 00000 f 0000379369 00000 n 0000000008 00000 f 0000046279 00000 n 0000000009 00000 f 0000000010 00000 f 0000000011 00000 f 0000000012 00000 f 0000000013 00000 f 0000000014 00000 f 0000000017 00000 f 0000380603 00000 n 0000380634 00000 n 0000000018 00000 f 0000000019 00000 f 0000000020 00000 f 0000000021 00000 f 0000000022 00000 f 0000000023 00000 f 0000000024 00000 f 0000000025 00000 f 0000000026 00000 f 0000000027 00000 f 0000000031 00000 f 0000379439 00000 n 0000379517 00000 n 0000379595 00000 n 0000000032 00000 f 0000000033 00000 f 0000000034 00000 f 0000000035 00000 f 0000000036 00000 f 0000000037 00000 f 0000000038 00000 f 0000000045 00000 f 0000380487 00000 n 0000380518 00000 n 0000380371 00000 n 0000380402 00000 n 0000380255 00000 n 0000380286 00000 n 0000000046 00000 f 0000000047 00000 f 0000000048 00000 f 0000000049 00000 f 0000000050 00000 f 0000000051 00000 f 0000000052 00000 f 0000000053 00000 f 0000000054 00000 f 0000000055 00000 f 0000000056 00000 f 0000000000 00000 f 0000000000 00000 f 0000379673 00000 n 0000379751 00000 n 0000379829 00000 n 0000000000 00000 f 0000000000 00000 f 0000000000 00000 f 0000000000 00000 f 0000000000 00000 f 0000000000 00000 f 0000000000 00000 f 0000000000 00000 f 0000380139 00000 n 0000380170 00000 n 0000380023 00000 n 0000380054 00000 n 0000379907 00000 n 0000379938 00000 n 0000000000 00000 f 0000000000 00000 f 0000000000 00000 f 0000000000 00000 f 0000000000 00000 f 0000000000 00000 f 0000000000 00000 f 0000000000 00000 f 0000000000 00000 f 0000000000 00000 f 0000000000 00000 f 0000000000 00000 f 0000048585 00000 n 0000047792 00000 n 0000047873 00000 n 0000047953 00000 n 0000048033 00000 n 0000380719 00000 n 0000046715 00000 n 0000063489 00000 n 0000060804 00000 n 0000060691 00000 n 0000047016 00000 n 0000047231 00000 n 0000047279 00000 n 0000048467 00000 n 0000048499 00000 n 0000048349 00000 n 0000048381 00000 n 0000048231 00000 n 0000048263 00000 n 0000048113 00000 n 0000048145 00000 n 0000048876 00000 n 0000049132 00000 n 0000060840 00000 n 0000063564 00000 n 0000063834 00000 n 0000065242 00000 n 0000073748 00000 n 0000139337 00000 n 0000204926 00000 n 0000270515 00000 n 0000336104 00000 n 0000380765 00000 n trailer <<0305C16D7F26479C8995B07CCAFDF3AB>]>> startxref 380952 %%EOF ================================================ FILE: shp/.dockerignore ================================================ natural_earth/*.cpg natural_earth/*.dbf natural_earth/*.index natural_earth/*.prj natural_earth/*.shp natural_earth/*.shx natural_earth/README osmdata/*.cpg osmdata/*.dbf osmdata/*.index osmdata/*.prj osmdata/*.shp osmdata/*.shx osmdata/README .*.zip ================================================ FILE: shp/.gitignore ================================================ natural_earth/ land-polygons-complete-3857/ simplified-land-polygons-complete-3857/ ne/ osmdata/ ================================================ FILE: shp/Dockerfile ================================================ FROM busybox COPY . /app/shp RUN chown -R 1000:1000 /app # Define mountable directories VOLUME ["/app/shp"] CMD ["true"] ================================================ FILE: shp/continents_900913.prj ================================================ PROJCS["Google_Maps_Global_Mercator",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137,298.257223563]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Mercator_2SP"],PARAMETER["standard_parallel_1",0],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",0],PARAMETER["false_easting",0],PARAMETER["false_northing",0],UNIT["Meter",1]] ================================================ FILE: shp/labels_admin/admin-0-labels-z4.prj ================================================ PROJCS["Mercator_2SP",GEOGCS["GCS_unnamed ellipse",DATUM["D_unknown",SPHEROID["Unknown",6378137,0]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Mercator_2SP"],PARAMETER["standard_parallel_1",0],PARAMETER["central_meridian",0],PARAMETER["false_easting",0],PARAMETER["false_northing",0],UNIT["Meter",1]] ================================================ FILE: shp/labels_admin/admin-0-labels-z5.prj ================================================ PROJCS["Mercator_2SP",GEOGCS["GCS_unnamed ellipse",DATUM["D_unknown",SPHEROID["Unknown",6378137,0]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Mercator_2SP"],PARAMETER["standard_parallel_1",0],PARAMETER["central_meridian",0],PARAMETER["false_easting",0],PARAMETER["false_northing",0],UNIT["Meter",1]] ================================================ FILE: shp/labels_admin/admin-0-labels-z6.prj ================================================ PROJCS["Mercator_2SP",GEOGCS["GCS_unnamed ellipse",DATUM["D_unknown",SPHEROID["Unknown",6378137,0]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Mercator_2SP"],PARAMETER["standard_parallel_1",0],PARAMETER["central_meridian",0],PARAMETER["false_easting",0],PARAMETER["false_northing",0],UNIT["Meter",1]] ================================================ FILE: shp/labels_admin/admin-1-labels-z4.prj ================================================ PROJCS["Mercator_2SP",GEOGCS["GCS_unnamed ellipse",DATUM["D_unknown",SPHEROID["Unknown",6378137,0]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Mercator_2SP"],PARAMETER["standard_parallel_1",0],PARAMETER["central_meridian",0],PARAMETER["false_easting",0],PARAMETER["false_northing",0],UNIT["Meter",1]] ================================================ FILE: shp/labels_admin/admin-1-labels-z5.prj ================================================ PROJCS["Mercator_2SP",GEOGCS["GCS_unnamed ellipse",DATUM["D_unknown",SPHEROID["Unknown",6378137,0]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Mercator_2SP"],PARAMETER["standard_parallel_1",0],PARAMETER["central_meridian",0],PARAMETER["false_easting",0],PARAMETER["false_northing",0],UNIT["Meter",1]] ================================================ FILE: shp/labels_admin/admin-1-labels-z6.prj ================================================ PROJCS["Mercator_2SP",GEOGCS["GCS_unnamed ellipse",DATUM["D_unknown",SPHEROID["Unknown",6378137,0]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Mercator_2SP"],PARAMETER["standard_parallel_1",0],PARAMETER["central_meridian",0],PARAMETER["false_easting",0],PARAMETER["false_northing",0],UNIT["Meter",1]] ================================================ FILE: shp/labels_admin/admin-1-labels-z7.prj ================================================ PROJCS["Mercator_2SP",GEOGCS["GCS_unnamed ellipse",DATUM["D_unknown",SPHEROID["Unknown",6378137,0]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Mercator_2SP"],PARAMETER["standard_parallel_1",0],PARAMETER["central_meridian",0],PARAMETER["false_easting",0],PARAMETER["false_northing",0],UNIT["Meter",1]] ================================================ FILE: shp/labels_admin/admin_0_countries_110m-points.prj ================================================ PROJCS["Google Maps Global Mercator",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137,298.257223563]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Mercator_2SP"],PARAMETER["standard_parallel_1",0],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",0],PARAMETER["false_easting",0],PARAMETER["false_northing",0],UNIT["Meter",1]] ================================================ FILE: shp-local/nullisland.geojson ================================================ { "type": "FeatureCollection", "features": [ { "type": "Feature", "properties": { "name": "Null Island" }, "geometry": { "type": "MultiPolygon", "coordinates": [ [ [ [ -0.000478, 0.000016 ], [ -0.000464, 0.000018 ], [ -0.000463, 0.000009 ], [ -0.000459, 0.000008 ], [ -0.000455, 0.000018 ], [ -0.000443, 0.000012 ], [ -0.000446, 0.000004 ], [ -0.000444, 0.000000 ], [ -0.000433, 0.000003 ], [ -0.000430, -0.000010 ], [ -0.000438, -0.000013 ], [ -0.000438, -0.000016 ], [ -0.000428, -0.000017 ], [ -0.000429, -0.000038 ], [ -0.000438, -0.000038 ], [ -0.000435, -0.000043 ], [ -0.000445, -0.000052 ], [ -0.000449, -0.000049 ], [ -0.000455, -0.000050 ], [ -0.000455, -0.000057 ], [ -0.000469, -0.000057 ], [ -0.000469, -0.000050 ], [ -0.000474, -0.000050 ], [ -0.000480, -0.000055 ], [ -0.000489, -0.000048 ], [ -0.000488, -0.000044 ], [ -0.000496, -0.000034 ], [ -0.000491, -0.000028 ], [ -0.000491, -0.000026 ], [ -0.000500, -0.000024 ], [ -0.000496, -0.000010 ], [ -0.000492, -0.000010 ], [ -0.000492, -0.000006 ], [ -0.000495, -0.000000 ], [ -0.000484, 0.000009 ], [ -0.000481, 0.000006 ], [ -0.000477, 0.000007 ], [ -0.000477, 0.000011 ], [ -0.000478, 0.000016 ] ] ], [ [ [ 0.000084, 0.000258 ], [ 0.000107, 0.000287 ], [ 0.000121, 0.000276 ], [ 0.000149, 0.000279 ], [ 0.000183, 0.000282 ], [ 0.000177, 0.000287 ], [ 0.000190, 0.000302 ], [ 0.000195, 0.000298 ], [ 0.000204, 0.000304 ], [ 0.000212, 0.000305 ], [ 0.000221, 0.000304 ], [ 0.000228, 0.000309 ], [ 0.000243, 0.000294 ], [ 0.000239, 0.000290 ], [ 0.000243, 0.000280 ], [ 0.000243, 0.000266 ], [ 0.000249, 0.000263 ], [ 0.000238, 0.000246 ], [ 0.000233, 0.000248 ], [ 0.000225, 0.000243 ], [ 0.000210, 0.000241 ], [ 0.000202, 0.000244 ], [ 0.000196, 0.000238 ], [ 0.000183, 0.000249 ], [ 0.000186, 0.000253 ], [ 0.000129, 0.000248 ], [ 0.000136, 0.000247 ], [ 0.000146, 0.000235 ], [ 0.000144, 0.000228 ], [ 0.000148, 0.000226 ], [ 0.000151, 0.000220 ], [ 0.000155, 0.000219 ], [ 0.000160, 0.000225 ], [ 0.000174, 0.000219 ], [ 0.000181, 0.000223 ], [ 0.000185, 0.000223 ], [ 0.000187, 0.000218 ], [ 0.000211, 0.000218 ], [ 0.000216, 0.000214 ], [ 0.000228, 0.000204 ], [ 0.000239, 0.000204 ], [ 0.000248, 0.000201 ], [ 0.000258, 0.000201 ], [ 0.000259, 0.000197 ], [ 0.000258, 0.000191 ], [ 0.000261, 0.000187 ], [ 0.000262, 0.000167 ], [ 0.000258, 0.000159 ], [ 0.000239, 0.000159 ], [ 0.000238, 0.000145 ], [ 0.000242, 0.000142 ], [ 0.000246, 0.000146 ], [ 0.000251, 0.000145 ], [ 0.000253, 0.000140 ], [ 0.000257, 0.000142 ], [ 0.000262, 0.000140 ], [ 0.000258, 0.000133 ], [ 0.000259, 0.000128 ], [ 0.000265, 0.000126 ], [ 0.000270, 0.000122 ], [ 0.000274, 0.000125 ], [ 0.000281, 0.000126 ], [ 0.000285, 0.000120 ], [ 0.000292, 0.000121 ], [ 0.000296, 0.000117 ], [ 0.000296, 0.000108 ], [ 0.000301, 0.000108 ], [ 0.000304, 0.000110 ], [ 0.000309, 0.000111 ], [ 0.000315, 0.000104 ], [ 0.000316, 0.000096 ], [ 0.000323, 0.000091 ], [ 0.000328, 0.000095 ], [ 0.000333, 0.000092 ], [ 0.000337, 0.000086 ], [ 0.000344, 0.000082 ], [ 0.000348, 0.000082 ], [ 0.000350, 0.000080 ], [ 0.000351, 0.000075 ], [ 0.000356, 0.000074 ], [ 0.000356, 0.000078 ], [ 0.000359, 0.000078 ], [ 0.000363, 0.000073 ], [ 0.000363, 0.000071 ], [ 0.000373, 0.000071 ], [ 0.000379, 0.000068 ], [ 0.000379, 0.000065 ], [ 0.000369, 0.000052 ], [ 0.000372, 0.000049 ], [ 0.000372, 0.000044 ], [ 0.000368, 0.000039 ], [ 0.000363, 0.000017 ], [ 0.000355, 0.000019 ], [ 0.000347, 0.000008 ], [ 0.000335, 0.000015 ], [ 0.000331, 0.000012 ], [ 0.000331, 0.000007 ], [ 0.000325, 0.000006 ], [ 0.000329, -0.000008 ], [ 0.000322, -0.000011 ], [ 0.000322, -0.000019 ], [ 0.000318, -0.000020 ], [ 0.000318, -0.000028 ], [ 0.000312, -0.000029 ], [ 0.000306, -0.000024 ], [ 0.000303, -0.000026 ], [ 0.000305, -0.000038 ], [ 0.000297, -0.000039 ], [ 0.000297, -0.000044 ], [ 0.000285, -0.000044 ], [ 0.000285, -0.000048 ], [ 0.000279, -0.000049 ], [ 0.000276, -0.000056 ], [ 0.000278, -0.000060 ], [ 0.000278, -0.000068 ], [ 0.000281, -0.000067 ], [ 0.000285, -0.000070 ], [ 0.000295, -0.000065 ], [ 0.000298, -0.000072 ], [ 0.000304, -0.000071 ], [ 0.000306, -0.000075 ], [ 0.000304, -0.000080 ], [ 0.000308, -0.000080 ], [ 0.000310, -0.000094 ], [ 0.000305, -0.000095 ], [ 0.000305, -0.000099 ], [ 0.000298, -0.000105 ], [ 0.000298, -0.000111 ], [ 0.000300, -0.000110 ], [ 0.000304, -0.000106 ], [ 0.000310, -0.000110 ], [ 0.000306, -0.000117 ], [ 0.000310, -0.000126 ], [ 0.000311, -0.000130 ], [ 0.000309, -0.000134 ], [ 0.000315, -0.000141 ], [ 0.000320, -0.000141 ], [ 0.000322, -0.000145 ], [ 0.000320, -0.000150 ], [ 0.000325, -0.000158 ], [ 0.000336, -0.000158 ], [ 0.000337, -0.000161 ], [ 0.000333, -0.000166 ], [ 0.000333, -0.000170 ], [ 0.000336, -0.000175 ], [ 0.000335, -0.000177 ], [ 0.000332, -0.000179 ], [ 0.000332, -0.000183 ], [ 0.000329, -0.000184 ], [ 0.000328, -0.000188 ], [ 0.000334, -0.000194 ], [ 0.000334, -0.000206 ], [ 0.000331, -0.000208 ], [ 0.000330, -0.000221 ], [ 0.000319, -0.000221 ], [ 0.000320, -0.000231 ], [ 0.000317, -0.000233 ], [ 0.000316, -0.000239 ], [ 0.000312, -0.000239 ], [ 0.000311, -0.000251 ], [ 0.000308, -0.000256 ], [ 0.000302, -0.000254 ], [ 0.000297, -0.000261 ], [ 0.000286, -0.000261 ], [ 0.000282, -0.000255 ], [ 0.000274, -0.000255 ], [ 0.000270, -0.000248 ], [ 0.000261, -0.000257 ], [ 0.000258, -0.000256 ], [ 0.000256, -0.000249 ], [ 0.000253, -0.000249 ], [ 0.000253, -0.000256 ], [ 0.000249, -0.000262 ], [ 0.000250, -0.000270 ], [ 0.000245, -0.000274 ], [ 0.000238, -0.000276 ], [ 0.000237, -0.000282 ], [ 0.000233, -0.000282 ], [ 0.000228, -0.000278 ], [ 0.000220, -0.000281 ], [ 0.000219, -0.000273 ], [ 0.000215, -0.000271 ], [ 0.000215, -0.000276 ], [ 0.000202, -0.000276 ], [ 0.000198, -0.000281 ], [ 0.000192, -0.000278 ], [ 0.000188, -0.000281 ], [ 0.000184, -0.000277 ], [ 0.000181, -0.000275 ], [ 0.000181, -0.000270 ], [ 0.000181, -0.000262 ], [ 0.000181, -0.000257 ], [ 0.000174, -0.000258 ], [ 0.000164, -0.000248 ], [ 0.000164, -0.000244 ], [ 0.000159, -0.000246 ], [ 0.000156, -0.000245 ], [ 0.000155, -0.000240 ], [ 0.000152, -0.000239 ], [ 0.000151, -0.000233 ], [ 0.000158, -0.000230 ], [ 0.000158, -0.000221 ], [ 0.000162, -0.000215 ], [ 0.000161, -0.000211 ], [ 0.000161, -0.000206 ], [ 0.000152, -0.000211 ], [ 0.000151, -0.000206 ], [ 0.000145, -0.000208 ], [ 0.000143, -0.000207 ], [ 0.000140, -0.000196 ], [ 0.000136, -0.000196 ], [ 0.000131, -0.000190 ], [ 0.000138, -0.000181 ], [ 0.000139, -0.000171 ], [ 0.000142, -0.000169 ], [ 0.000142, -0.000166 ], [ 0.000135, -0.000169 ], [ 0.000133, -0.000168 ], [ 0.000128, -0.000172 ], [ 0.000121, -0.000164 ], [ 0.000114, -0.000166 ], [ 0.000114, -0.000160 ], [ 0.000106, -0.000161 ], [ 0.000106, -0.000156 ], [ 0.000104, -0.000152 ], [ 0.000105, -0.000148 ], [ 0.000108, -0.000145 ], [ 0.000108, -0.000140 ], [ 0.000101, -0.000142 ], [ 0.000100, -0.000158 ], [ 0.000101, -0.000163 ], [ 0.000098, -0.000166 ], [ 0.000093, -0.000164 ], [ 0.000091, -0.000159 ], [ 0.000046, -0.000159 ], [ 0.000046, -0.000164 ], [ 0.000052, -0.000166 ], [ 0.000066, -0.000170 ], [ 0.000078, -0.000178 ], [ 0.000089, -0.000180 ], [ 0.000096, -0.000181 ], [ 0.000097, -0.000186 ], [ 0.000090, -0.000192 ], [ 0.000083, -0.000194 ], [ 0.000072, -0.000205 ], [ 0.000065, -0.000210 ], [ 0.000049, -0.000218 ], [ 0.000031, -0.000224 ], [ 0.000003, -0.000230 ], [ -0.000022, -0.000231 ], [ -0.000046, -0.000232 ], [ -0.000077, -0.000231 ], [ -0.000081, -0.000204 ], [ -0.000081, -0.000185 ], [ -0.000083, -0.000188 ], [ -0.000090, -0.000186 ], [ -0.000094, -0.000189 ], [ -0.000094, -0.000194 ], [ -0.000090, -0.000198 ], [ -0.000091, -0.000201 ], [ -0.000095, -0.000202 ], [ -0.000097, -0.000211 ], [ -0.000100, -0.000216 ], [ -0.000107, -0.000215 ], [ -0.000109, -0.000220 ], [ -0.000117, -0.000220 ], [ -0.000122, -0.000217 ], [ -0.000127, -0.000217 ], [ -0.000133, -0.000220 ], [ -0.000137, -0.000219 ], [ -0.000138, -0.000215 ], [ -0.000144, -0.000215 ], [ -0.000145, -0.000210 ], [ -0.000150, -0.000209 ], [ -0.000154, -0.000212 ], [ -0.000157, -0.000207 ], [ -0.000163, -0.000207 ], [ -0.000166, -0.000212 ], [ -0.000171, -0.000212 ], [ -0.000172, -0.000206 ], [ -0.000173, -0.000201 ], [ -0.000177, -0.000196 ], [ -0.000183, -0.000197 ], [ -0.000187, -0.000193 ], [ -0.000192, -0.000193 ], [ -0.000195, -0.000190 ], [ -0.000195, -0.000185 ], [ -0.000198, -0.000184 ], [ -0.000198, -0.000177 ], [ -0.000195, -0.000168 ], [ -0.000198, -0.000167 ], [ -0.000201, -0.000177 ], [ -0.000206, -0.000178 ], [ -0.000208, -0.000181 ], [ -0.000211, -0.000181 ], [ -0.000215, -0.000178 ], [ -0.000221, -0.000178 ], [ -0.000222, -0.000171 ], [ -0.000226, -0.000169 ], [ -0.000226, -0.000157 ], [ -0.000230, -0.000157 ], [ -0.000230, -0.000151 ], [ -0.000238, -0.000142 ], [ -0.000238, -0.000135 ], [ -0.000236, -0.000132 ], [ -0.000238, -0.000130 ], [ -0.000238, -0.000124 ], [ -0.000243, -0.000124 ], [ -0.000246, -0.000131 ], [ -0.000250, -0.000131 ], [ -0.000252, -0.000128 ], [ -0.000256, -0.000128 ], [ -0.000258, -0.000124 ], [ -0.000257, -0.000116 ], [ -0.000264, -0.000110 ], [ -0.000271, -0.000115 ], [ -0.000274, -0.000111 ], [ -0.000273, -0.000106 ], [ -0.000277, -0.000103 ], [ -0.000276, -0.000099 ], [ -0.000286, -0.000100 ], [ -0.000290, -0.000104 ], [ -0.000295, -0.000099 ], [ -0.000295, -0.000095 ], [ -0.000300, -0.000094 ], [ -0.000309, -0.000091 ], [ -0.000313, -0.000097 ], [ -0.000323, -0.000094 ], [ -0.000327, -0.000089 ], [ -0.000336, -0.000093 ], [ -0.000339, -0.000092 ], [ -0.000339, -0.000084 ], [ -0.000343, -0.000083 ], [ -0.000343, -0.000077 ], [ -0.000342, -0.000074 ], [ -0.000342, -0.000071 ], [ -0.000347, -0.000071 ], [ -0.000345, -0.000058 ], [ -0.000351, -0.000051 ], [ -0.000350, -0.000043 ], [ -0.000354, -0.000041 ], [ -0.000359, -0.000043 ], [ -0.000362, -0.000038 ], [ -0.000368, -0.000038 ], [ -0.000371, -0.000035 ], [ -0.000371, -0.000027 ], [ -0.000374, -0.000025 ], [ -0.000379, -0.000025 ], [ -0.000378, -0.000013 ], [ -0.000385, -0.000011 ], [ -0.000385, -0.000000 ], [ -0.000382, 0.000002 ], [ -0.000382, 0.000012 ], [ -0.000389, 0.000012 ], [ -0.000391, 0.000015 ], [ -0.000392, 0.000021 ], [ -0.000383, 0.000033 ], [ -0.000384, 0.000038 ], [ -0.000375, 0.000052 ], [ -0.000368, 0.000055 ], [ -0.000369, 0.000060 ], [ -0.000364, 0.000065 ], [ -0.000360, 0.000065 ], [ -0.000353, 0.000065 ], [ -0.000343, 0.000069 ], [ -0.000338, 0.000070 ], [ -0.000332, 0.000071 ], [ -0.000327, 0.000077 ], [ -0.000327, 0.000085 ], [ -0.000318, 0.000090 ], [ -0.000311, 0.000090 ], [ -0.000306, 0.000095 ], [ -0.000297, 0.000095 ], [ -0.000298, 0.000105 ], [ -0.000289, 0.000110 ], [ -0.000283, 0.000107 ], [ -0.000275, 0.000104 ], [ -0.000276, 0.000116 ], [ -0.000285, 0.000118 ], [ -0.000285, 0.000125 ], [ -0.000278, 0.000129 ], [ -0.000278, 0.000144 ], [ -0.000276, 0.000146 ], [ -0.000270, 0.000147 ], [ -0.000264, 0.000161 ], [ -0.000262, 0.000166 ], [ -0.000252, 0.000163 ], [ -0.000246, 0.000174 ], [ -0.000240, 0.000173 ], [ -0.000229, 0.000181 ], [ -0.000223, 0.000181 ], [ -0.000220, 0.000192 ], [ -0.000215, 0.000195 ], [ -0.000211, 0.000205 ], [ -0.000197, 0.000217 ], [ -0.000195, 0.000224 ], [ -0.000181, 0.000218 ], [ -0.000182, 0.000213 ], [ -0.000188, 0.000204 ], [ -0.000186, 0.000199 ], [ -0.000186, 0.000194 ], [ -0.000188, 0.000184 ], [ -0.000183, 0.000184 ], [ -0.000176, 0.000175 ], [ -0.000172, 0.000175 ], [ -0.000163, 0.000187 ], [ -0.000159, 0.000188 ], [ -0.000154, 0.000192 ], [ -0.000148, 0.000186 ], [ -0.000138, 0.000192 ], [ -0.000126, 0.000191 ], [ -0.000125, 0.000183 ], [ -0.000118, 0.000182 ], [ -0.000117, 0.000191 ], [ -0.000105, 0.000193 ], [ -0.000105, 0.000212 ], [ -0.000108, 0.000220 ], [ -0.000103, 0.000221 ], [ -0.000102, 0.000232 ], [ -0.000091, 0.000236 ], [ -0.000087, 0.000235 ], [ -0.000087, 0.000242 ], [ -0.000083, 0.000247 ], [ -0.000075, 0.000249 ], [ -0.000065, 0.000239 ], [ -0.000059, 0.000238 ], [ -0.000058, 0.000235 ], [ -0.000040, 0.000234 ], [ -0.000039, 0.000242 ], [ -0.000030, 0.000245 ], [ -0.000030, 0.000238 ], [ -0.000026, 0.000238 ], [ -0.000018, 0.000223 ], [ -0.000010, 0.000223 ], [ -0.000007, 0.000218 ], [ -0.000003, 0.000218 ], [ 0.000003, 0.000212 ], [ 0.000010, 0.000217 ], [ 0.000012, 0.000223 ], [ 0.000017, 0.000223 ], [ 0.000030, 0.000235 ], [ 0.000034, 0.000234 ], [ 0.000036, 0.000242 ], [ 0.000065, 0.000241 ], [ 0.000069, 0.000245 ], [ 0.000070, 0.000250 ], [ 0.000064, 0.000250 ], [ 0.000054, 0.000256 ], [ 0.000057, 0.000262 ], [ 0.000057, 0.000277 ], [ 0.000060, 0.000279 ], [ 0.000064, 0.000264 ], [ 0.000069, 0.000264 ], [ 0.000073, 0.000259 ], [ 0.000084, 0.000258 ] ], [ [ -0.000073, -0.000176 ], [ -0.000066, -0.000175 ], [ -0.000043, -0.000168 ], [ -0.000017, -0.000165 ], [ -0.000016, -0.000158 ], [ -0.000057, -0.000158 ], [ -0.000058, -0.000165 ], [ -0.000062, -0.000167 ], [ -0.000066, -0.000165 ], [ -0.000067, -0.000153 ], [ -0.000072, -0.000153 ], [ -0.000072, -0.000158 ], [ -0.000068, -0.000161 ], [ -0.000070, -0.000166 ], [ -0.000070, -0.000172 ], [ -0.000073, -0.000176 ] ], [ [ -0.000007, -0.000158 ], [ -0.000007, -0.000163 ], [ 0.000015, -0.000162 ], [ 0.000037, -0.000163 ], [ 0.000037, -0.000159 ], [ -0.000007, -0.000158 ] ] ] ] } } ] } ================================================ FILE: shp-local/nullisland.prj ================================================ PROJCS["WGS_84_Pseudo_Mercator",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137,298.257223563]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Mercator"],PARAMETER["central_meridian",0],PARAMETER["false_easting",0],PARAMETER["false_northing",0],UNIT["Meter",1],PARAMETER["standard_parallel_1",0.0]] ================================================ FILE: sql/functions/admin1_labels.sql ================================================ -- credit: Paul Ramsey's answer to http://gis.stackexchange.com/questions/162162/postgis-query-to-retrieve-the-largest-polygon-for-multi-polygons-by-grouping-on DROP TABLE IF EXISTS ne_10m_admin_1_states_provinces_labels; CREATE TABLE ne_10m_admin_1_states_provinces_labels AS ( WITH geoms AS ( SELECT name, admin, scalerank, (ST_Dump(geom)).geom AS geometry FROM ne_10m_admin_1_states_provinces_scale_rank ) SELECT DISTINCT ON (name) name, admin, scalerank, ST_PointOnSurface(geometry) AS geometry FROM geoms ORDER BY name ASC, ST_Area(geometry) DESC ); ================================================ FILE: sql/functions/aries_labels.sql ================================================ BEGIN; DROP TABLE IF EXISTS aries_xy; DROP TABLE IF EXISTS label_positions; CREATE TABLE label_positions(id int, x int, y int); INSERT INTO label_positions(id, x, y) VALUES (1 , -5 , -5), (2 , 0 , -5), (3 , 5 , -5), (4 , 5 , 0), (5 , 5 , 5), (6 , 0 , 5), (7 , -5 , -5), (8 , -5 , 0) ; CREATE TABLE aries_xy AS SELECT a.*, b.x, b.y FROM ( SELECT *, floor(random()*8+1)::integer AS r_id FROM aries ) a JOIN label_positions b ON b.id=a.r_id; DROP TABLE IF EXISTS aries; ALTER TABLE aries_xy RENAME TO aries; COMMIT; ================================================ FILE: sql/functions/highroad.sql ================================================ DROP VIEW IF EXISTS highroad_z15plus; DROP VIEW IF EXISTS highroad_z14; DROP VIEW IF EXISTS highroad_z13; DROP VIEW IF EXISTS highroad_z12; DROP VIEW IF EXISTS highroad_z11; DROP VIEW IF EXISTS highroad_z10; CREATE VIEW highroad_z10 AS (SELECT geometry, highway, railway, (CASE WHEN highway IN ('motorway') THEN 'highway' WHEN highway IN ('trunk', 'primary') THEN 'major_road' ELSE 'minor_road' END) AS kind, 'no'::text AS is_link, (CASE WHEN tunnel = 1 THEN 'yes' ELSE 'no' END) AS is_tunnel, (CASE WHEN bridge = 1 THEN 'yes' ELSE 'no' END) AS is_bridge, (CASE WHEN highway IN ('motorway') THEN 0 WHEN highway IN ('trunk', 'primary') THEN 1 WHEN highway IN ('secondary', 'tertiary') THEN 2 ELSE 99 END) AS priority, 0 as explicit_layer FROM osm_planet_osm_line_z10 ORDER BY z_order ASC, priority DESC); CREATE VIEW highroad_z11 AS (SELECT geometry, highway, railway, (CASE WHEN highway IN ('motorway') THEN 'highway' WHEN highway IN ('trunk', 'primary') THEN 'major_road' ELSE 'minor_road' END) AS kind, 'no'::text AS is_link, (CASE WHEN tunnel = 1 THEN 'yes' ELSE 'no' END) AS is_tunnel, (CASE WHEN bridge = 1 THEN 'yes' ELSE 'no' END) AS is_bridge, (CASE WHEN highway IN ('motorway') THEN 0 WHEN highway IN ('trunk', 'primary') THEN 1 WHEN highway IN ('secondary', 'tertiary') THEN 2 ELSE 99 END) AS priority, 0 as explicit_layer FROM osm_planet_osm_line_z11 ORDER BY z_order ASC, priority DESC); CREATE VIEW highroad_z12 AS (SELECT geometry, highway, railway, (CASE WHEN highway IN ('motorway', 'motorway_link') THEN 'highway' WHEN highway IN ('trunk', 'trunk_link', 'secondary', 'primary') THEN 'major_road' ELSE 'minor_road' END) AS kind, (CASE WHEN highway IN ('motorway_link') THEN 'yes' ELSE 'no' END) AS is_link, (CASE WHEN tunnel = 1 THEN 'yes' ELSE 'no' END) AS is_tunnel, (CASE WHEN bridge = 1 THEN 'yes' ELSE 'no' END) AS is_bridge, (CASE WHEN highway IN ('motorway') THEN 0 WHEN highway IN ('trunk', 'secondary', 'primary') THEN 1 WHEN highway IN ('tertiary', 'residential', 'unclassified', 'road') THEN 2 WHEN highway LIKE '%%_link' THEN 3 ELSE 99 END) AS priority, 0 as explicit_layer FROM osm_planet_osm_line_z12 ORDER BY z_order ASC, priority DESC); CREATE VIEW highroad_z13 AS (SELECT geometry, highway, railway, (CASE WHEN highway IN ('motorway', 'motorway_link') THEN 'highway' WHEN highway IN ('trunk', 'trunk_link', 'primary', 'primary_link', 'secondary', 'secondary_link', 'tertiary', 'tertiary_link', 'raceway') THEN 'major_road' ELSE 'minor_road' END) AS kind, (CASE WHEN highway IN ('motorway_link', 'secondary_link','tertiary_link') THEN 'yes' ELSE 'no' END) AS is_link, (CASE WHEN tunnel = 1 THEN 'yes' ELSE 'no' END) AS is_tunnel, (CASE WHEN bridge = 1 THEN 'yes' ELSE 'no' END) AS is_bridge, (CASE WHEN highway IN ('motorway') THEN 0 WHEN highway IN ('motorway_link') THEN 1 WHEN highway IN ('trunk', 'primary', 'secondary', 'tertiary') THEN 2 WHEN highway IN ('trunk_link', 'primary_link', 'secondary_link') THEN 3 WHEN highway IN ('residential', 'unclassified', 'road') THEN 4 ELSE 99 END) AS priority, 0 as explicit_layer FROM osm_planet_osm_line_z13 ORDER BY z_order ASC, priority DESC); CREATE VIEW highroad_z14 AS (SELECT geometry, highway, railway, (CASE WHEN highway IN ('motorway', 'motorway_link') THEN 'highway' WHEN highway IN ('trunk', 'trunk_link', 'primary', 'primary_link', 'secondary', 'secondary_link', 'tertiary', 'tertiary_link') THEN 'major_road' WHEN highway IN ('residential', 'unclassified', 'road', 'minor') THEN 'minor_road' WHEN railway IN ('rail') THEN 'rail' ELSE 'unknown' END) AS kind, (CASE WHEN highway IN ('motorway_link','trunk_link','primary_link','secondary_link','tertiary_link') THEN 'yes' ELSE 'no' END) AS is_link, (CASE WHEN tunnel = 1 THEN 'yes' ELSE 'no' END) AS is_tunnel, (CASE WHEN bridge = 1 THEN 'yes' ELSE 'no' END) AS is_bridge, -- explicit layer is the physical layering of under- and overpasses z_order AS explicit_layer, (CASE WHEN highway IN ('motorway') THEN 0 WHEN highway IN ('trunk') THEN 1 WHEN highway IN ('primary') THEN 2 WHEN highway IN ('secondary') THEN 3 WHEN highway IN ('tertiary', 'raceway') THEN 4 WHEN highway IN ('motorway_link','trunk_link','primary_link','secondary_link','tertiary_link') THEN 5 WHEN highway IN ('residential', 'service', 'unclassified', 'road', 'minor') THEN 6 WHEN railway IN ('rail') THEN 7 ELSE 99 END) AS priority FROM osm_planet_osm_line_z14 ORDER BY z_order ASC, priority DESC); CREATE VIEW highroad_z15plus AS (SELECT geometry, highway, railway, (CASE WHEN highway IN ('motorway', 'motorway_link') THEN 'highway' WHEN highway IN ('trunk', 'trunk_link', 'primary', 'primary_link', 'secondary', 'secondary_link', 'tertiary', 'tertiary_link') THEN 'major_road' WHEN highway IN ('footpath', 'track', 'footway', 'steps', 'pedestrian', 'path', 'cycleway') THEN 'path' WHEN railway IN ('rail', 'tram', 'light_rail', 'narrow_gauge', 'monorail') THEN 'rail' ELSE 'minor_road' END) AS kind, (CASE WHEN highway IN ('motorway_link','trunk_link','primary_link','secondary_link','tertiary_link') THEN 'yes' ELSE 'no' END) AS is_link, (CASE WHEN tunnel = 1 THEN 'yes' ELSE 'no' END) AS is_tunnel, (CASE WHEN bridge = 1 THEN 'yes' ELSE 'no' END) AS is_bridge, -- explicit layer is the physical layering of under- and overpasses z_order AS explicit_layer, -- implied layer is guessed based on bridges and tunnels (CASE WHEN tunnel = 1 THEN -1 WHEN bridge = 1 THEN 1 ELSE 0 END) AS implied_layer, (CASE WHEN highway IN ('motorway') THEN 0 WHEN railway IN ('rail', 'tram', 'light_rail', 'narrow_gauge', 'monorail') THEN .5 WHEN highway IN ('trunk') THEN 1 WHEN highway IN ('primary') THEN 2 WHEN highway IN ('secondary') THEN 3 WHEN highway IN ('tertiary', 'raceway') THEN 4 WHEN highway IN ('motorway_link','trunk_link','primary_link','secondary_link','tertiary_link') THEN 5 WHEN highway IN ('residential', 'unclassified', 'road') THEN 6 WHEN highway IN ('unclassified', 'service', 'minor') THEN 7 ELSE 99 END) AS priority FROM osm_roads WHERE highway IN ('motorway', 'motorway_link') OR highway IN ('trunk', 'trunk_link', 'primary', 'primary_link', 'secondary', 'secondary_link', 'tertiary', 'tertiary_link', 'raceway') OR highway IN ('residential', 'unclassified', 'road', 'unclassified', 'service', 'minor') OR highway IN ('footpath', 'track', 'footway', 'steps', 'pedestrian', 'path', 'cycleway') OR railway IN ('rail', 'tram', 'light_rail', 'narrow_gauge', 'monorail') ORDER BY explicit_layer ASC, implied_layer ASC, priority DESC); CREATE OR REPLACE FUNCTION zoom(scaleDenominator numeric) RETURNS int AS $$ BEGIN CASE WHEN scaleDenominator > 1000000000 THEN RETURN 0; WHEN scaleDenominator <= 1000000000 AND scaleDenominator > 500000000 THEN RETURN 1; WHEN scaleDenominator <= 500000000 AND scaleDenominator > 200000000 THEN RETURN 2; WHEN scaleDenominator <= 200000000 AND scaleDenominator > 100000000 THEN RETURN 3; WHEN scaleDenominator <= 100000000 AND scaleDenominator > 50000000 THEN RETURN 3; WHEN scaleDenominator <= 50000000 AND scaleDenominator > 25000000 THEN RETURN 4; WHEN scaleDenominator <= 25000000 AND scaleDenominator > 12500000 THEN RETURN 5; WHEN scaleDenominator <= 12500000 AND scaleDenominator > 6500000 THEN RETURN 6; WHEN scaleDenominator <= 6500000 AND scaleDenominator > 3000000 THEN RETURN 7; WHEN scaleDenominator <= 3000000 AND scaleDenominator > 1500000 THEN RETURN 8; WHEN scaleDenominator <= 1500000 AND scaleDenominator > 750000 THEN RETURN 9; WHEN scaleDenominator <= 750000 AND scaleDenominator > 400000 THEN RETURN 10; WHEN scaleDenominator <= 400000 AND scaleDenominator > 200000 THEN RETURN 11; WHEN scaleDenominator <= 200000 AND scaleDenominator > 100000 THEN RETURN 12; WHEN scaleDenominator <= 100000 AND scaleDenominator > 50000 THEN RETURN 13; WHEN scaleDenominator <= 50000 AND scaleDenominator > 25000 THEN RETURN 14; WHEN scaleDenominator <= 25000 AND scaleDenominator > 12500 THEN RETURN 15; WHEN scaleDenominator <= 12500 AND scaleDenominator > 5000 THEN RETURN 16; WHEN scaleDenominator <= 5000 AND scaleDenominator > 2500 THEN RETURN 17; WHEN scaleDenominator <= 2500 AND scaleDenominator > 1500 THEN RETURN 18; WHEN scaleDenominator <= 1500 AND scaleDenominator > 750 THEN RETURN 19; WHEN scaleDenominator <= 750 AND scaleDenominator > 500 THEN RETURN 20; WHEN scaleDenominator <= 500 AND scaleDenominator > 250 THEN RETURN 21; WHEN scaleDenominator <= 250 AND scaleDenominator > 100 THEN RETURN 22; WHEN scaleDenominator <= 100 THEN RETURN 23; END CASE; END $$ LANGUAGE plpgsql; CREATE OR REPLACE FUNCTION high_road(scaleDenominator numeric, bbox box3d) RETURNS TABLE(geometry geometry, highway character varying, railway character varying, kind text, is_link text, is_tunnel text, is_bridge text, explicit_layer integer) AS $$ DECLARE conditions TEXT; BEGIN -- TODO use zoom() CASE WHEN zoom(scaleDenominator) = 13 THEN conditions := 'is_bridge=''no'''; WHEN zoom(scaleDenominator) >= 14 THEN conditions := 'is_bridge=''no'' AND is_tunnel=''no'''; ELSE conditions := 'true'; END CASE; RETURN QUERY SELECT * FROM high_road(scaleDenominator, bbox, conditions); END $$ LANGUAGE 'plpgsql'; CREATE OR REPLACE FUNCTION high_road(scaleDenominator numeric, bbox box3d, conditions text) RETURNS TABLE(geometry geometry, highway character varying, railway character varying, kind text, is_link text, is_tunnel text, is_bridge text, explicit_layer integer) AS $$ DECLARE tablename TEXT; BEGIN CASE WHEN zoom(scaleDenominator) <= 10 THEN tablename := 'highroad_z10'; WHEN zoom(scaleDenominator) = 11 THEN tablename := 'highroad_z11'; WHEN zoom(scaleDenominator) = 12 THEN tablename := 'highroad_z12'; WHEN zoom(scaleDenominator) = 13 THEN tablename := 'highroad_z13'; WHEN zoom(scaleDenominator) = 14 THEN tablename := 'highroad_z14'; WHEN zoom(scaleDenominator) >= 15 THEN tablename := 'highroad_z15plus'; ELSE RAISE EXCEPTION 'Unsupported zoom level: %', scaleDenominator; END CASE; RETURN QUERY EXECUTE format( 'SELECT geometry, highway, railway, kind, is_link, is_tunnel, is_bridge, explicit_layer FROM %I WHERE geometry && $1 AND %s', tablename, conditions ) USING bbox; END $$ LANGUAGE 'plpgsql'; ================================================ FILE: sql/functions/highway_shields.sql ================================================ DROP MATERIALIZED VIEW IF EXISTS highway_shields; CREATE MATERIALIZED VIEW highway_shields AS SELECT ref, highway, (ST_DumpPoints(ST_Simplify(ST_Collect(geometry), 500))).geom geometry, CASE WHEN ref ~ 'I \d+' THEN 1 WHEN ref ~ 'US \d+' THEN 2 WHEN ref ~ 'CA \d+' THEN 3 WHEN ref !~ '(I|US|CA)( \d{1,3})' THEN 4 ELSE 100 END AS priority FROM ( SELECT unnest(string_to_array(ref, ';')) AS ref, highway, geometry FROM osm_roads WHERE highway IN ('motorway', 'trunk', 'primary', 'secondary', 'tertiary') ) AS _ WHERE ref ~ '([A-Z]+ )?\d+$' GROUP BY ref, highway -- shuffle to ensure that routes carrying more than 1 number can display all -- of them ORDER BY ST_GeoHash(ST_Transform(ST_SetSRID(ST_Extent(geometry), 3857), 4326)), random(); CREATE INDEX highway_shields_geom_gist ON highway_shields USING GIST(geometry); ================================================ FILE: sql/functions/osm_admin_area.sql ================================================ ALTER TABLE IF EXISTS osm_admin DROP COLUMN IF EXISTS area_km2; ALTER TABLE IF EXISTS osm_admin ADD COLUMN area_km2 numeric; UPDATE osm_admin SET area_km2 = ST_Area(geometry)/1000; ================================================ FILE: terrain-classic-background.mss ================================================ ================================================ FILE: terrain-classic-background.yml ================================================ # == Global project settings =========================================== name: 'Terrain Classic' description: '' attribution: 'Map Data © OpenStreetMap' center: [-122.3782, 37.7706, 11] format: png interactivity: false minzoom: 0 maxzoom: 18 srs: '+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over' metatile: 1 # == Layer & Datasource defaults ======================================= _layer_default: &layer 'srs-name': '3857' srs: '+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over' _pg_default: &postgis type: postgis dbname: '{{PGDATABASE}}' host: '{{PGHOST}}' user: '{{PGUSER}}' password: '{{PGPASSWORD}}' port: '{{PGPORT}}' geometry_field: way srid: 3857 extent: '-20037508.34,-20037508.34,20037508.34,20037508.34' srs: '+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over' max_async_connection: 4 max_size: 100 connect_timeout: 1 twkb_encoding: true # also sets simplify_geometries _shp_default: &shapefile type: shape estimate_extent: false extent: '-20037508.34,-20037508.34,20037508.34,20037508.34' srs: '+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over' # == Stylesheets ======================================================= Stylesheet: - map.mss - terrain-classic-background.mss # == Layers ============================================================ Layer: - <<: *layer name: land id: land properties: minzoom: 8 Datasource: <<: *postgis geometry_field: geom table: > ( SELECT ST_ClipByBox2D(geom, !bbox!) geom FROM land_polygons WHERE geom && !bbox! ) AS _ - <<: *layer name: lc500mMODIS_high id: lc500mMODIS_high properties: minzoom: 0 maxzoom: 15 geometry: raster srs: '+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over' Datasource: type: gdal file: landcover/LCType_z9.vrt # file: landcover/LCType_z9_s3.vrt - <<: *layer name: lc500mMODIS_urban id: lc500mMODIS_urban properties: minzoom: 9 geometry: raster srs: '+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over' Datasource: type: gdal file: landcover/LCType_z9-urban-only.vrt # file: landcover/LCType_z9_s3-urban-only.vrt - <<: *layer name: country-shapes-50m id: country-shapes-50m class: shore properties: minzoom: 2 maxzoom: 3 Datasource: <<: *postgis geometry_field: geom table: ne_50m_admin_0_countries_lakes - <<: *layer name: country-shapes-10m id: country-shapes-10m class: shore properties: minzoom: 4 maxzoom: 7 Datasource: <<: *postgis geometry_field: geom table: > ( SELECT ST_ClipByBox2D(geom, !bbox!) geom FROM ne_10m_admin_0_countries_lakes WHERE geom && !bbox! ) AS _ - <<: *layer name: admin0-map-units-10m id: admin0-map-units-10m properties: minzoom: 4 maxzoom: 9 Datasource: <<: *postgis geometry_field: geom table: ne_10m_admin_0_boundary_lines_map_units - <<: *layer name: admin1-lines-10m id: admin1-lines-10m properties: minzoom: 4 maxzoom: 9 Datasource: <<: *postgis geometry_field: geom table: ne_10m_admin_1_states_provinces_lines - <<: *layer name: ne_50m_admin_0_boundary_lines_land id: ne_50m_admin_0_boundary_lines_land class: country-boundary properties: minzoom: 3 maxzoom: 4 Datasource: <<: *postgis geometry_field: geom table: ne_50m_admin_0_boundary_lines_land - <<: *layer name: ne_10m_admin_0_boundary_lines_land id: ne_10m_admin_0_boundary_lines_land class: country-boundary-10m properties: minzoom: 5 maxzoom: 9 Datasource: <<: *postgis geometry_field: geom table: ne_10m_admin_0_boundary_lines_land - <<: *layer name: admin1-lines-osm id: admin1-lines-osm properties: minzoom: 10 Datasource: <<: *postgis geometry_field: geometry table: > ( SELECT ST_ClipByBox2D(geometry, !bbox!) geometry, name, area_km2 FROM osm_admin WHERE geometry && !bbox! AND type = 'administrative' AND admin_level = 4 ) AS _ - <<: *layer name: urban-landuse-high id: urban-landuse-high class: urban-landuse properties: minzoom: 13 Datasource: <<: *postgis geometry_field: geometry table: > ( SELECT geometry, type, area FROM osm_urban_areas WHERE geometry && !bbox! ) AS _ - <<: *layer name: urban-landuse-med id: urban-landuse-med class: urban-landuse properties: minzoom: 11 maxzoom: 13 Datasource: <<: *postgis geometry_field: geometry table: > ( SELECT geometry, type, area FROM osm_urban_areas_z13 WHERE geometry && !bbox! ) AS _ - <<: *layer name: urban-landuse-low id: urban-landuse-low class: urban-landuse properties: minzoom: 9 maxzoom: 11 Datasource: <<: *postgis geometry_field: geometry table: > ( SELECT geometry, type, area FROM osm_urban_areas_z10 WHERE geometry && !bbox! ) AS _ - <<: *layer name: green-areas-high id: green-areas-high properties: minzoom: 13 Datasource: <<: *postgis geometry_field: geometry table: > ( SELECT geometry, type, area FROM osm_green_areas WHERE geometry && !bbox! ) AS _ - <<: *layer name: green-areas-med id: green-areas-med properties: minzoom: 11 maxzoom: 13 Datasource: <<: *postgis geometry_field: geometry table: > ( SELECT name, type, geometry, area FROM osm_green_areas_z13 WHERE geometry && !bbox! ) AS _ - <<: *layer name: green-areas-low id: green-areas-low properties: minzoom: 10 maxzoom: 10 Datasource: <<: *postgis geometry_field: geometry table: > ( SELECT name, type, geometry, area FROM osm_green_areas_z10 WHERE geometry && !bbox! ) AS _ - <<: *layer name: landcover-high id: landcover-high class: landcover properties: minzoom: 13 Datasource: <<: *postgis geometry_field: geometry table: > ( SELECT geometry, type, area FROM osm_landcover WHERE geometry && !bbox! ) AS _ - <<: *layer name: landcover-med id: landcover-med class: landcover properties: minzoom: 11 maxzoom: 13 Datasource: <<: *postgis geometry_field: geometry table: > ( SELECT geometry, type, area FROM osm_landcover_z13 WHERE geometry && !bbox! ) AS _ - <<: *layer name: landcover-low id: landcover-low class: landcover properties: minzoom: 9 maxzoom: 11 Datasource: <<: *postgis geometry_field: geometry table: > ( SELECT geometry, type, area FROM osm_landcover_z10 WHERE geometry && !bbox! ) AS _ - <<: *layer name: brown-areas-high id: brown-areas-high properties: minzoom: 13 Datasource: <<: *postgis geometry_field: geometry table: > ( SELECT geometry, type, area FROM osm_brown_areas WHERE geometry && !bbox! ) AS _ - <<: *layer name: brown-areas-med id: brown-areas-med properties: minzoom: 11 maxzoom: 13 Datasource: <<: *postgis geometry_field: geometry table: > ( SELECT name, type, geometry, area FROM osm_brown_areas_z13 WHERE geometry && !bbox! ) AS _ - <<: *layer name: brown-areas-low id: brown-areas-low properties: minzoom: 10 maxzoom: 10 Datasource: <<: *postgis geometry_field: geometry table: > ( SELECT name, type, geometry, area FROM osm_brown_areas_z10 WHERE geometry && !bbox! ) AS _ ================================================ FILE: terrain-classic-features.mss ================================================ Map { background-color: transparent; } ================================================ FILE: terrain-classic-features.yml ================================================ # == Global project settings =========================================== name: 'Terrain Classic' description: '' attribution: 'Map Data © OpenStreetMap' center: [-122.3782, 37.7706, 11] format: png interactivity: false minzoom: 0 maxzoom: 18 srs: '+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over' metatile: 2 # == Layer & Datasource defaults ======================================= _layer_default: &layer 'srs-name': '3857' srs: '+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over' _pg_default: &postgis type: postgis dbname: '{{PGDATABASE}}' host: '{{PGHOST}}' user: '{{PGUSER}}' password: '{{PGPASSWORD}}' port: '{{PGPORT}}' geometry_field: way srid: 3857 extent: '-20037508.34,-20037508.34,20037508.34,20037508.34' srs: '+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over' _shp_default: &shapefile type: shape estimate_extent: false extent: '-20037508.34,-20037508.34,20037508.34,20037508.34' srs: '+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over' # == Stylesheets ======================================================= Stylesheet: - map.mss - terrain-classic-features.mss # == Layers ============================================================ Layer: - <<: *layer name: water id: water properties: minzoom: 8 Datasource: <<: *postgis geometry_field: geom table: water_polygons - <<: *layer name: ne_10m_rivers_lake_centerlines_scale_rank id: ne_10m_rivers_lake_centerlines_scale_rank properties: minzoom: 4 maxzoom: 8 Datasource: <<: *postgis geometry_field: geom table: ne_10m_rivers_lake_centerlines_scale_rank encoding: "ISO-8859-1" - <<: *layer name: ne_50m_lakes id: ne_50m_lakes properties: minzoom: 2 maxzoom: 5 Datasource: <<: *postgis geometry_field: geom table: ne_50m_lakes encoding: "ISO-8859-1" - <<: *layer name: ne_10m_lakes id: ne_10m_lakes properties: minzoom: 6 maxzoom: 8 Datasource: <<: *postgis geometry_field: geom table: ne_10m_lakes encoding: "ISO-8859-1" - <<: *layer name: ne_10m_ocean id: ne_10m_ocean properties: minzoom: 0 maxzoom: 7 Datasource: <<: *postgis geometry_field: geom table: ne_10m_ocean encoding: "ISO-8859-1" - <<: *layer name: ne_50m_ocean id: ne_50m_ocean properties: minzoom: 0 maxzoom: 7 Datasource: <<: *postgis geometry_field: geom table: ne_50m_ocean encoding: "ISO-8859-1" - <<: *layer name: nullisland id: nullisland class: land properties: minzoom: 12 Datasource: <<: *postgis geometry_field: geom table: nullisland - <<: *layer name: aerodromes id: aerodromes properties: minzoom: 12 Datasource: <<: *postgis geometry_field: geometry table: > ( SELECT name, type, geometry FROM osm_aeroways WHERE type='aerodrome' and geometry && !bbox! ) AS _ - <<: *layer name: water-bodies-high id: water-bodies-high properties: minzoom: 14 Datasource: <<: *postgis geometry_field: geometry table: > ( SELECT name, type, geometry, area FROM osm_water_areas WHERE geometry && !bbox! ) AS _ - <<: *layer name: water-bodies-med id: water-bodies-med properties: minzoom: 11 maxzoom: 13 Datasource: <<: *postgis geometry_field: geometry table: > ( SELECT name, type, geometry, area FROM osm_water_areas_z13 WHERE geometry && !bbox! ) AS _ - <<: *layer name: water-bodies-low id: water-bodies-low properties: minzoom: 9 maxzoom: 10 Datasource: <<: *postgis geometry_field: geometry table: > ( SELECT name, type, geometry, area FROM osm_water_areas_z10 WHERE geometry && !bbox! ) AS _ - <<: *layer name: ne_10m_rivers_lake_centerlines_scale_rank id: ne_10m_rivers_lake_centerlines_scale_rank properties: minzoom: 4 maxzoom: 8 Datasource: <<: *postgis geometry_field: geom table: ne_10m_rivers_lake_centerlines_scale_rank encoding: "ISO-8859-1" - <<: *layer name: admin0-map-units-10m id: admin0-map-units-10m properties: minzoom: 4 maxzoom: 9 Datasource: <<: *postgis geometry_field: geom table: ne_10m_admin_0_boundary_lines_map_units - <<: *layer name: admin1-lines-10m id: admin1-lines-10m properties: minzoom: 4 maxzoom: 9 Datasource: <<: *postgis geometry_field: geom table: ne_10m_admin_1_states_provinces_lines - <<: *layer name: ne_50m_admin_0_boundary_lines_land id: ne_50m_admin_0_boundary_lines_land class: country-boundary properties: minzoom: 3 maxzoom: 4 Datasource: <<: *postgis geometry_field: geom table: ne_50m_admin_0_boundary_lines_land - <<: *layer name: ne_10m_admin_0_boundary_lines_land id: ne_10m_admin_0_boundary_lines_land class: country-boundary-10m properties: minzoom: 5 maxzoom: 9 Datasource: <<: *postgis geometry_field: geom table: ne_10m_admin_0_boundary_lines_land - <<: *layer name: admin1-lines-osm id: admin1-lines-osm properties: minzoom: 10 Datasource: <<: *postgis geometry_field: geometry table: > ( SELECT geometry, name, area_km2 FROM osm_admin WHERE geometry && !bbox! AND type = 'administrative' AND admin_level = 4 ) AS _ - <<: *layer name: ne-roads id: ne-roads properties: minzoom: 7 maxzoom: 8 cache-features: on Datasource: <<: *postgis geometry_field: geom table: ne_10m_roads - <<: *layer name: aeroways id: aeroways properties: minzoom: 12 Datasource: <<: *postgis geometry_field: geometry table: > ( SELECT name, type, geometry FROM osm_aeroways WHERE geometry && !bbox! ) AS _ - <<: *layer name: tunnels id: tunnels class: tunnels properties: minzoom: 14 cache-features: on Datasource: <<: *postgis geometry_field: geometry table: > ( SELECT * FROM high_road(!scale_denominator!, !bbox!, 'is_tunnel=''yes''') ) AS _ - <<: *layer name: roads id: roads class: roads properties: minzoom: 14 cache-features: on Datasource: <<: *postgis geometry_field: geometry table: > ( SELECT * FROM high_road(!scale_denominator!, !bbox!) ) AS _ - <<: *layer name: roads_med id: roads_med properties: minzoom: 9 maxzoom: 13 cache-features: on Datasource: <<: *postgis geometry_field: geometry table: > ( SELECT * FROM high_road(!scale_denominator!, !bbox!, 'kind!=''highway''') ) AS _ - <<: *layer name: highways_med id: highways_med properties: minzoom: 9 maxzoom: 13 cache-features: on Datasource: <<: *postgis geometry_field: geometry table: > ( SELECT * FROM high_road(!scale_denominator!, !bbox!, 'kind=''highway''') ) AS _ - <<: *layer name: bridges id: bridges class: bridges properties: minzoom: 13 cache-features: on group-by: explicit_layer Datasource: <<: *postgis geometry_field: geometry table: > ( SELECT * FROM high_road(!scale_denominator!, !bbox!, 'is_bridge=''yes''') ) AS _ - <<: *layer name: buildings-high id: buildings-high properties: minzoom: 14 Datasource: <<: *postgis geometry_field: geometry table: > ( SELECT osm_id, name, type, geometry, area FROM osm_buildings WHERE geometry && !bbox! ) AS _ - <<: *layer name: buildings-med id: buildings-med properties: minzoom: 13 maxzoom: 13 Datasource: <<: *postgis geometry_field: geometry table: > ( SELECT name, type, geometry, area FROM osm_buildings_z13 WHERE geometry && !bbox! ) AS _ ================================================ FILE: terrain-classic-labels.mss ================================================ Map { background-color: transparent; buffer-size: 256; } ================================================ FILE: terrain-classic-labels.yml ================================================ # == Global project settings =========================================== name: 'Terrain Classic' description: '' attribution: 'Map Data © OpenStreetMap' center: [0, 0, 2] format: png interactivity: false minzoom: 0 maxzoom: 18 srs: '+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over' metatile: 2 # == Layer & Datasource defaults ======================================= _layer_default: &layer 'srs-name': '3857' srs: '+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over' _pg_default: &postgis type: postgis dbname: '{{PGDATABASE}}' host: '{{PGHOST}}' user: '{{PGUSER}}' password: '{{PGPASSWORD}}' port: '{{PGPORT}}' geometry_field: way srid: 3857 extent: '-20037508.34,-20037508.34,20037508.34,20037508.34' srs: '+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over' max_async_connection: 4 max_size: 100 connect_timeout: 1 twkb_encoding: true # also sets simplify_geometries _shp_default: &shapefile type: shape estimate_extent: false extent: '-20037508.34,-20037508.34,20037508.34,20037508.34' srs: '+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over' # == Stylesheets ======================================================= Stylesheet: - map.mss - labels.mss - terrain-classic-labels.mss # == Layers ============================================================ Layer: # Start Labels - <<: *layer name: admin0-labels-z3 id: admin0-labels-z3 properties: minzoom: 3 maxzoom: 3 Datasource: <<: *postgis geometry_field: geom table: admin_0_countries_110m_points - <<: *layer name: admin0-labels-z4 id: admin0-labels-z4 properties: minzoom: 4 maxzoom: 4 Datasource: <<: *postgis geometry_field: geom table: admin_0_labels_z4 - <<: *layer name: admin0-labels-z5 id: admin0-labels-z5 properties: minzoom: 5 maxzoom: 5 Datasource: <<: *postgis geometry_field: geom table: admin_0_labels_z5 - <<: *layer name: admin0-labels-z6 id: admin0-labels-z6 properties: minzoom: 6 maxzoom: 6 Datasource: <<: *postgis geometry_field: geom table: admin_0_labels_z6 # ---- Mountain Peaks ----------------- - <<: *layer name: mountain_peaks_ne id: mountain_peaks_ne properties: minzoom: 4 maxzoom: 9 Datasource: <<: *postgis geometry_field: geom table: > ( SELECT (CASE WHEN name = 'Haleakal?' THEN 'Haleakalā' WHEN name = 'Volca?n Villarrica' THEN 'Villarrica' WHEN name = 'Sn?ka' THEN 'Sněžka' WHEN name = 'Qurnat as Sawd?' THEN 'Qurnat as Sawdā’' WHEN name = 'Sabalon K?h' THEN 'Sabalan' WHEN name = 'Jabal Sawd?' THEN 'Jabal Sawda' WHEN name = 'Jabal an-Nab? Shuaib' THEN 'Jabal an-Nabi Shu’aib' WHEN name = 'K?h-e Haji Ebrahim' THEN 'Kuhe Haji Ebrahim' WHEN name = 'Mt. Dam?vand' THEN 'Mt. Damavand' WHEN name = 'K?h-e Jang Qal''eh' THEN 'Kuh-e Jang Qal’eh' WHEN name = 'Tirich M?r' THEN 'Tirich Mir' WHEN name = 'Alada? Tepe' THEN '' WHEN name = 'K?h-e Nay Band' THEN '' WHEN name = 'K?h-e Hez?r' THEN '' WHEN name = 'K?h-e Taftan' THEN '' WHEN name = 'K?h-e R?zeh' THEN '' ELSE name END) AS name, name_alt, elevation, comment, geom, featurecla FROM ne_10m_geography_regions_elevation_points WHERE geom && !bbox! ) AS _ # ---- admin 1 labels ---------------------------------------------------- - <<: *layer name: admin1-labels-50m-z4 id: admin1-labels-50m-z4 properties: minzoom: 4 maxzoom: 4 Datasource: <<: *postgis geometry_field: geom table: admin_1_labels_z4 - <<: *layer name: admin1-labels-50m-z5 id: admin1-labels-50m-z5 properties: minzoom: 5 maxzoom: 5 Datasource: <<: *postgis geometry_field: geom table: admin_1_labels_z5 - <<: *layer name: admin1-labels id: admin1-labels properties: minzoom: 5 maxzoom: 7 Datasource: <<: *postgis geometry_field: geometry table: > ( SELECT name, admin, geometry, scalerank FROM ne_10m_admin_1_states_provinces_labels WHERE geometry && !bbox! ) AS _ - <<: *layer name: water-bodies-labels-high id: water-bodies-labels-high properties: minzoom: 14 Datasource: <<: *postgis geometry_field: geometry table: > ( SELECT name, type, geometry, area FROM osm_water_areas WHERE geometry && !bbox! ) AS _ - <<: *layer name: water-bodies-labels-med id: water-bodies-labels-med properties: minzoom: 11 maxzoom: 13 Datasource: <<: *postgis geometry_field: geometry table: > ( SELECT name, type, geometry, area FROM osm_water_areas_z13 WHERE geometry && !bbox! ) AS _ - <<: *layer name: water-bodies-labels-low id: water-bodies-labels-low properties: minzoom: 8 maxzoom: 10 Datasource: <<: *postgis geometry_field: geometry table: > ( SELECT name, type, geometry, area FROM osm_water_areas_z10 WHERE geometry && !bbox! ) AS _ - <<: *layer name: green-areas-labels-high id: green-areas-labels-high properties: minzoom: 14 Datasource: <<: *postgis geometry_field: geometry table: > ( SELECT name, type, geometry, area FROM osm_green_areas WHERE geometry && !bbox! ORDER BY area DESC ) AS _ - <<: *layer name: green-areas-labels-med id: green-areas-labels-med properties: minzoom: 11 maxzoom: 13 Datasource: <<: *postgis geometry_field: geometry table: > ( SELECT name, type, geometry, area FROM osm_green_areas_z13 WHERE geometry && !bbox! ORDER BY area DESC ) AS _ - <<: *layer name: green-areas-labels-low id: green-areas-labels-low properties: minzoom: 8 maxzoom: 10 Datasource: <<: *postgis geometry_field: geometry table: > ( SELECT name, type, geometry, area FROM osm_green_areas_z10 WHERE geometry && !bbox! ORDER BY area DESC ) AS _ - <<: *layer name: major_road_labels id: major_road_labels properties: minzoom: 12 Datasource: <<: *postgis geometry_field: geometry table: > (SELECT geometry, (CASE WHEN highway = 'motorway' THEN '' ELSE replace(name, ' ', ' ') END) AS name, (CASE WHEN highway = 'motorway' AND CHAR_LENGTH(ref) BETWEEN 2 AND 15 THEN REGEXP_REPLACE(ref, E'\s*;\s*', E' / ', 'g') ELSE '' END) AS ref, (CASE WHEN highway = 'motorway' AND CHAR_LENGTH(ref) BETWEEN 2 AND 15 THEN CHAR_LENGTH(ref) ELSE 0 END) AS ref_length, highway, ST_Length(geometry) AS length, (CASE WHEN highway IN ('motorway', 'motorway_link') THEN 0 WHEN highway IN ('footpath', 'track', 'footway', 'steps', 'pedestrian', 'path', 'cycleway') THEN 1 WHEN railway IN ('rail', 'spur', 'subway', 'light_rail', 'tram', 'abandoned', 'disused', 'monorail') THEN 2 WHEN highway IN ('trunk', 'trunk_link', 'primary', 'primary_link') THEN 3 WHEN highway = 'secondary' THEN 4 WHEN highway = 'tertiary' THEN 5 ELSE 9 END) AS priority, (CASE WHEN highway IN ('secondary', 'trunk', 'trunk_link', 'primary', 'primary_link', 'motorway', 'motorway_link') THEN 'major_road' WHEN highway IN ('residential', 'unclassified', 'service', 'minor', 'road', 'tertiary') THEN 'minor_road' WHEN railway IN ('rail', 'spur', 'subway', 'light_rail', 'tram', 'abandoned', 'disused', 'monorail') THEN 'rail' WHEN highway IN ('footpath', 'track', 'footway', 'steps', 'pedestrian', 'path', 'cycleway') THEN 'path' ELSE '' END) AS kind, (CASE WHEN tunnel = 1 THEN 'yes' ELSE 'no' END) AS is_tunnel, (CASE WHEN bridge = 1 THEN 'yes' ELSE 'no' END) AS is_bridge FROM osm_roads WHERE geometry && !bbox! AND highway IN ('secondary', 'trunk', 'trunk_link', 'primary', 'primary_link', 'motorway', 'motorway_link') ORDER BY priority ASC, length DESC) AS _ - <<: *layer name: minor_road_labels id: minor_road_labels properties: minzoom: 14 Datasource: <<: *postgis geometry_field: geometry table: > (SELECT geometry, replace(name, ' ', ' ') AS name, highway, ST_Length(geometry) AS length, (CASE WHEN highway IN ('motorway', 'motorway_link') THEN 0 WHEN highway IN ('footpath', 'track', 'footway', 'steps', 'pedestrian', 'path', 'cycleway') THEN 1 WHEN railway IN ('rail', 'spur', 'subway', 'light_rail', 'tram', 'abandoned', 'disused', 'monorail') THEN 2 WHEN highway IN ('trunk', 'trunk_link', 'primary', 'primary_link') THEN 3 WHEN highway = 'secondary' THEN 4 WHEN highway = 'tertiary' THEN 5 ELSE 9 END) AS priority, (CASE WHEN highway IN ('secondary', 'trunk', 'trunk_link', 'primary', 'primary_link', 'motorway', 'motorway_link') THEN 'major_road' WHEN highway IN ('residential', 'unclassified', 'service', 'minor', 'road', 'tertiary') THEN 'minor_road' WHEN railway IN ('rail', 'spur', 'subway', 'light_rail', 'tram', 'abandoned', 'disused', 'monorail') THEN 'rail' WHEN highway IN ('footpath', 'track', 'footway', 'steps', 'pedestrian', 'path', 'cycleway') THEN 'path' ELSE '' END) AS kind, (CASE WHEN tunnel = 1 THEN 'yes' ELSE 'no' END) AS is_tunnel, (CASE WHEN bridge = 1 THEN 'yes' ELSE 'no' END) AS is_bridge FROM osm_roads WHERE geometry && !bbox! AND highway IN ('residential', 'unclassified', 'service', 'minor', 'road', 'tertiary') ORDER BY priority ASC, length DESC LIMIT 25) AS _ # ---- Highway Shields ---------------------------------------------------- - <<: *layer name: highway_shields id: highway_shields properties: minzoom: 11 Datasource: <<: *postgis geometry_field: geometry table: > ( SELECT ref, CHAR_LENGTH(ref) as ref_length, priority, highway, geometry FROM highway_shields WHERE geometry && !bbox! ) AS _ - <<: *layer name: continents id: continents properties: minzoom: 1 maxzoom: 2 Datasource: <<: *postgis geometry_field: geom table: continents # ---- Aries Places ---------------------------------------------------- - <<: *layer name: aries-places-labels id: aries-places-labels properties: minzoom: 4 maxzoom: 16 Datasource: <<: *postgis geometry_field: geometry table: > ( SELECT name, zoom scalerank, population, geometry FROM aries WHERE geometry && !bbox! ORDER BY population DESC, name ) AS _ - <<: *layer name: airports id: airports properties: minzoom: 12 Datasource: <<: *postgis geometry_field: geom table: ne_10m_airports ================================================ FILE: terrain-classic-lines.mss ================================================ Map { background-color: transparent; } ================================================ FILE: terrain-classic-lines.yml ================================================ # == Global project settings =========================================== name: 'Terrain Classic' description: '' attribution: 'Map Data © OpenStreetMap' center: [-122.3782, 37.7706, 11] format: png interactivity: false minzoom: 0 maxzoom: 18 srs: '+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over' metatile: 1 # == Layer & Datasource defaults ======================================= _layer_default: &layer 'srs-name': '3857' srs: '+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over' _pg_default: &postgis type: postgis dbname: '{{PGDATABASE}}' host: '{{PGHOST}}' user: '{{PGUSER}}' password: '{{PGPASSWORD}}' port: '{{PGPORT}}' geometry_field: way srid: 3857 extent: '-20037508.34,-20037508.34,20037508.34,20037508.34' srs: '+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over' max_async_connection: 4 max_size: 100 connect_timeout: 1 twkb_encoding: true # also sets simplify_geometries _shp_default: &shapefile type: shape estimate_extent: false extent: '-20037508.34,-20037508.34,20037508.34,20037508.34' srs: '+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over' # == Stylesheets ======================================================= Stylesheet: - map.mss - terrain-classic-lines.mss # == Layers ============================================================ Layer: - <<: *layer name: ne_10m_rivers_lake_centerlines_scale_rank id: ne_10m_rivers_lake_centerlines_scale_rank properties: minzoom: 4 maxzoom: 8 Datasource: <<: *postgis geometry_field: geom table: ne_10m_rivers_lake_centerlines_scale_rank encoding: "ISO-8859-1" - <<: *layer name: admin0-map-units-10m id: admin0-map-units-10m properties: minzoom: 4 maxzoom: 9 Datasource: <<: *postgis geometry_field: geom table: ne_10m_admin_0_boundary_lines_map_units - <<: *layer name: admin1-lines-10m id: admin1-lines-10m properties: minzoom: 4 maxzoom: 9 Datasource: <<: *postgis geometry_field: geom table: ne_10m_admin_1_states_provinces_lines - <<: *layer name: ne_50m_admin_0_boundary_lines_land id: ne_50m_admin_0_boundary_lines_land class: country-boundary properties: minzoom: 3 maxzoom: 4 Datasource: <<: *postgis geometry_field: geom table: ne_50m_admin_0_boundary_lines_land - <<: *layer name: ne_10m_admin_0_boundary_lines_land id: ne_10m_admin_0_boundary_lines_land class: country-boundary-10m properties: minzoom: 5 maxzoom: 9 Datasource: <<: *postgis geometry_field: geom table: ne_10m_admin_0_boundary_lines_land - <<: *layer name: admin1-lines-osm id: admin1-lines-osm properties: minzoom: 10 Datasource: <<: *postgis geometry_field: geometry table: > ( SELECT ST_ClipByBox2D(geometry, !bbox!) geometry, name, area_km2 FROM osm_admin WHERE geometry && !bbox! AND type = 'administrative' AND admin_level = 4 ) AS _ - <<: *layer name: ne-roads id: ne-roads properties: minzoom: 7 maxzoom: 8 cache-features: on Datasource: <<: *postgis geometry_field: geom table: ne_10m_roads - <<: *layer name: aeroways id: aeroways properties: minzoom: 12 Datasource: <<: *postgis geometry_field: geometry table: > ( SELECT name, type, geometry FROM osm_aeroways WHERE geometry && !bbox! ) AS _ - <<: *layer name: tunnels id: tunnels class: tunnels properties: minzoom: 14 cache-features: on Datasource: <<: *postgis geometry_field: geometry table: > ( SELECT * FROM high_road(!scale_denominator!, !bbox!, 'is_tunnel=''yes''') ) AS _ - <<: *layer name: roads id: roads class: roads properties: minzoom: 14 cache-features: on Datasource: <<: *postgis geometry_field: geometry table: > ( SELECT * FROM high_road(!scale_denominator!, !bbox!) ) AS _ - <<: *layer name: roads_med id: roads_med properties: minzoom: 9 maxzoom: 13 cache-features: on Datasource: <<: *postgis geometry_field: geometry table: > ( SELECT * FROM high_road(!scale_denominator!, !bbox!, 'kind!=''highway''') ) AS _ - <<: *layer name: highways_med id: highways_med properties: minzoom: 9 maxzoom: 13 cache-features: on Datasource: <<: *postgis geometry_field: geometry table: > ( SELECT * FROM high_road(!scale_denominator!, !bbox!, 'kind=''highway''') ) AS _ - <<: *layer name: bridges id: bridges class: bridges properties: minzoom: 13 cache-features: on group-by: explicit_layer Datasource: <<: *postgis geometry_field: geometry table: > ( SELECT * FROM high_road(!scale_denominator!, !bbox!, 'is_bridge=''yes''') ) AS _ - <<: *layer name: buildings-high id: buildings-high properties: minzoom: 14 Datasource: <<: *postgis geometry_field: geometry table: > ( SELECT osm_id, name, type, geometry, area FROM osm_buildings WHERE geometry && !bbox! ) AS _ - <<: *layer name: buildings-med id: buildings-med properties: minzoom: 13 maxzoom: 13 Datasource: <<: *postgis geometry_field: geometry table: > ( SELECT name, type, geometry, area FROM osm_buildings_z13 WHERE geometry && !bbox! ) AS _ ================================================ FILE: terrain-classic-water.mss ================================================ Map { background-color: transparent; } ================================================ FILE: terrain-classic-water.yml ================================================ # == Global project settings =========================================== name: 'Terrain Classic Water Features' description: '' attribution: 'Map Data © OpenStreetMap' center: [-122.41, 37.74, 7] format: png interactivity: false minzoom: 0 maxzoom: 18 srs: '+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over' metatile: 1 # == Layer & Datasource defaults ======================================= _layer_default: &layer 'srs-name': '3857' srs: '+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over' _pg_default: &postgis type: postgis dbname: '{{PGDATABASE}}' host: '{{PGHOST}}' user: '{{PGUSER}}' password: '{{PGPASSWORD}}' port: '{{PGPORT}}' geometry_field: way srid: 3857 extent: '-20037508.34,-20037508.34,20037508.34,20037508.34' srs: '+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over' max_async_connection: 4 max_size: 100 connect_timeout: 1 twkb_encoding: true # also sets simplify_geometries # == Stylesheets ======================================================= Stylesheet: - map.mss - terrain-classic-water.mss # == Layers ============================================================ Layer: - <<: *layer name: ne_10m_rivers_lake_centerlines_scale_rank id: ne_10m_rivers_lake_centerlines_scale_rank properties: minzoom: 4 maxzoom: 8 Datasource: <<: *postgis geometry_field: geom table: ne_10m_rivers_lake_centerlines_scale_rank encoding: "ISO-8859-1" - <<: *layer name: ne_50m_lakes id: ne_50m_lakes properties: minzoom: 2 maxzoom: 5 Datasource: <<: *postgis geometry_field: geom table: ne_50m_lakes encoding: "ISO-8859-1" - <<: *layer name: ne_10m_lakes id: ne_10m_lakes properties: minzoom: 6 maxzoom: 8 Datasource: <<: *postgis geometry_field: geom table: ne_10m_lakes encoding: "ISO-8859-1" - <<: *layer name: ne_10m_ocean id: ne_10m_ocean properties: minzoom: 0 maxzoom: 7 Datasource: <<: *postgis geometry_field: geom table: ne_10m_ocean encoding: "ISO-8859-1" - <<: *layer name: ne_50m_ocean id: ne_50m_ocean properties: minzoom: 0 maxzoom: 7 Datasource: <<: *postgis geometry_field: geom encoding: "ISO-8859-1" table: > ( SELECT ST_ClipByBox2D(geom, !bbox!) geom FROM ne_50m_ocean WHERE geom && !bbox! ) AS _ - <<: *layer name: ne_110m_geography_marine_polys id: ne_110m_geography_marine_polys properties: minzoom: 2 maxzoom: 3 Datasource: <<: *postgis geometry_field: geom table: ne_110m_geography_marine_polys encoding: "ISO-8859-1" - <<: *layer name: ne_50m_geography_marine_polys id: ne_50m_geography_marine_polys properties: minzoom: 4 maxzoom: 5 Datasource: <<: *postgis geometry_field: geom table: ne_50m_geography_marine_polys encoding: "ISO-8859-1" - <<: *layer name: ne_10m_geography_marine_polys id: ne_10m_geography_marine_polys properties: minzoom: 6 maxzoom: 8 Datasource: <<: *postgis geometry_field: geom table: ne_10m_geography_marine_polys encoding: "ISO-8859-1" - <<: *layer name: water id: water properties: minzoom: 8 Datasource: <<: *postgis geometry_field: geom table: water_polygons - <<: *layer name: water-bodies-high id: water-bodies-high properties: minzoom: 14 Datasource: <<: *postgis geometry_field: geometry table: > ( SELECT name, type, geometry, area FROM osm_water_areas WHERE geometry && !bbox! ) AS _ - <<: *layer name: water-bodies-med id: water-bodies-med properties: minzoom: 11 maxzoom: 13 Datasource: <<: *postgis geometry_field: geometry table: > ( SELECT name, type, geometry, area FROM osm_water_areas_z13 WHERE geometry && !bbox! ) AS _ - <<: *layer name: water-bodies-low id: water-bodies-low properties: minzoom: 8 maxzoom: 10 Datasource: <<: *postgis geometry_field: geometry table: > ( SELECT name, type, geometry, area FROM osm_water_areas_z10 WHERE geometry && !bbox! ) AS _ ================================================ FILE: terrain-classic.mss ================================================ // Overrides go here ================================================ FILE: terrain-classic.yml ================================================ # == Global project settings =========================================== name: 'Terrain Classic' description: '' attribution: 'Map Data © OpenStreetMap' center: [-122.41, 37.74, 7] format: png interactivity: false minzoom: 0 maxzoom: 18 srs: '+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over' metatile: 1 # == Layer & Datasource defaults ======================================= _layer_default: &layer 'srs-name': '3857' srs: '+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over' _pg_default: &postgis type: postgis dbname: '{{PGDATABASE}}' host: '{{PGHOST}}' user: '{{PGUSER}}' password: '{{PGPASSWORD}}' port: '{{PGPORT}}' geometry_field: way srid: 3857 extent: '-20037508.34,-20037508.34,20037508.34,20037508.34' srs: '+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over' max_async_connection: 4 max_size: 100 connect_timeout: 1 twkb_encoding: true # also sets simplify_geometries _shp_default: &shapefile type: shape estimate_extent: false extent: '-20037508.34,-20037508.34,20037508.34,20037508.34' srs: '+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over' # == Stylesheets ======================================================= Stylesheet: - map.mss - labels.mss - terrain-classic.mss # == Layers ============================================================ Layer: - <<: *layer name: land id: land properties: minzoom: 8 Datasource: <<: *postgis geometry_field: geom table: > ( SELECT ST_ClipByBox2D(geom, !bbox!) geom FROM land_polygons WHERE geom && !bbox! ) AS _ - <<: *layer name: lc500mMODIS_high id: lc500mMODIS_high properties: minzoom: 0 maxzoom: 15 geometry: raster srs: '+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over' Datasource: type: gdal file: landcover/LCType_z9.vrt # file: landcover/LCType_z9_s3.vrt - <<: *layer name: lc500mMODIS_urban id: lc500mMODIS_urban properties: minzoom: 9 geometry: raster srs: '+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over' Datasource: type: gdal file: landcover/LCType_z9-urban-only.vrt # file: landcover/LCType_z9_s3-urban-only.vrt - <<: *layer name: ne_10m_rivers_lake_centerlines_scale_rank id: ne_10m_rivers_lake_centerlines_scale_rank properties: minzoom: 4 maxzoom: 8 Datasource: <<: *postgis geometry_field: geom table: ne_10m_rivers_lake_centerlines_scale_rank encoding: "ISO-8859-1" - <<: *layer name: ne_50m_lakes id: ne_50m_lakes properties: minzoom: 2 maxzoom: 5 Datasource: <<: *postgis geometry_field: geom table: ne_50m_lakes encoding: "ISO-8859-1" - <<: *layer name: ne_10m_lakes id: ne_10m_lakes properties: minzoom: 6 maxzoom: 8 Datasource: <<: *postgis geometry_field: geom table: ne_10m_lakes encoding: "ISO-8859-1" - <<: *layer name: ne_10m_ocean id: ne_10m_ocean properties: minzoom: 0 maxzoom: 7 Datasource: <<: *postgis geometry_field: geom table: ne_10m_ocean encoding: "ISO-8859-1" - <<: *layer name: ne_50m_ocean id: ne_50m_ocean properties: minzoom: 0 maxzoom: 7 Datasource: <<: *postgis geometry_field: geom encoding: "ISO-8859-1" table: > ( SELECT ST_ClipByBox2D(geom, !bbox!) geom FROM ne_50m_ocean WHERE geom && !bbox! ) AS _ - <<: *layer name: ne_110m_geography_marine_polys id: ne_110m_geography_marine_polys properties: minzoom: 2 maxzoom: 3 Datasource: <<: *postgis geometry_field: geom table: ne_110m_geography_marine_polys encoding: "ISO-8859-1" - <<: *layer name: ne_50m_geography_marine_polys id: ne_50m_geography_marine_polys properties: minzoom: 4 maxzoom: 5 Datasource: <<: *postgis geometry_field: geom table: ne_50m_geography_marine_polys encoding: "ISO-8859-1" - <<: *layer name: ne_10m_geography_marine_polys id: ne_10m_geography_marine_polys properties: minzoom: 6 maxzoom: 8 Datasource: <<: *postgis geometry_field: geom table: ne_10m_geography_marine_polys encoding: "ISO-8859-1" - <<: *layer name: nullisland id: nullisland class: land properties: minzoom: 12 Datasource: <<: *postgis geometry_field: geom table: nullisland - <<: *layer name: country-shapes-50m id: country-shapes-50m class: shore properties: minzoom: 2 maxzoom: 3 Datasource: <<: *postgis geometry_field: geom table: ne_50m_admin_0_countries_lakes - <<: *layer name: country-shapes-10m id: country-shapes-10m class: shore properties: minzoom: 4 maxzoom: 7 Datasource: <<: *postgis geometry_field: geom table: > ( SELECT ST_ClipByBox2D(geom, !bbox!) geom FROM ne_10m_admin_0_countries_lakes WHERE geom && !bbox! ) AS _ - <<: *layer name: admin0-map-units-10m id: admin0-map-units-10m properties: minzoom: 4 maxzoom: 9 Datasource: <<: *postgis geometry_field: geom table: ne_10m_admin_0_boundary_lines_map_units - <<: *layer name: admin1-lines-10m id: admin1-lines-10m properties: minzoom: 4 maxzoom: 9 Datasource: <<: *postgis geometry_field: geom table: ne_10m_admin_1_states_provinces_lines - <<: *layer name: ne_50m_admin_0_boundary_lines_land id: ne_50m_admin_0_boundary_lines_land class: country-boundary properties: minzoom: 3 maxzoom: 4 Datasource: <<: *postgis geometry_field: geom table: ne_50m_admin_0_boundary_lines_land - <<: *layer name: ne_10m_admin_0_boundary_lines_land id: ne_10m_admin_0_boundary_lines_land class: country-boundary-10m properties: minzoom: 5 maxzoom: 9 Datasource: <<: *postgis geometry_field: geom table: ne_10m_admin_0_boundary_lines_land - <<: *layer name: admin1-lines-osm id: admin1-lines-osm properties: minzoom: 10 Datasource: <<: *postgis geometry_field: geometry table: > ( SELECT ST_ClipByBox2D(geometry, !bbox!) geometry, name, area_km2 FROM osm_admin WHERE geometry && !bbox! AND type = 'administrative' AND admin_level = 4 ) AS _ - <<: *layer name: urban-landuse-high id: urban-landuse-high class: urban-landuse properties: minzoom: 13 Datasource: <<: *postgis geometry_field: geometry table: > ( SELECT geometry, type, area FROM osm_urban_areas WHERE geometry && !bbox! ) AS _ - <<: *layer name: urban-landuse-med id: urban-landuse-med class: urban-landuse properties: minzoom: 11 maxzoom: 13 Datasource: <<: *postgis geometry_field: geometry table: > ( SELECT geometry, type, area FROM osm_urban_areas_z13 WHERE geometry && !bbox! ) AS _ - <<: *layer name: urban-landuse-low id: urban-landuse-low class: urban-landuse properties: minzoom: 9 maxzoom: 11 Datasource: <<: *postgis geometry_field: geometry table: > ( SELECT geometry, type, area FROM osm_urban_areas_z10 WHERE geometry && !bbox! ) AS _ - <<: *layer name: aerodromes id: aerodromes properties: minzoom: 12 Datasource: <<: *postgis geometry_field: geometry table: > ( SELECT name, type, geometry FROM osm_aeroways WHERE type='aerodrome' and geometry && !bbox! ) AS _ - <<: *layer name: green-areas-high id: green-areas-high properties: minzoom: 13 Datasource: <<: *postgis geometry_field: geometry table: > ( SELECT geometry, type, area FROM osm_green_areas WHERE geometry && !bbox! ) AS _ - <<: *layer name: green-areas-med id: green-areas-med properties: minzoom: 11 maxzoom: 13 Datasource: <<: *postgis geometry_field: geometry table: > ( SELECT name, type, geometry, area FROM osm_green_areas_z13 WHERE geometry && !bbox! ) AS _ - <<: *layer name: green-areas-low id: green-areas-low properties: minzoom: 10 maxzoom: 10 Datasource: <<: *postgis geometry_field: geometry table: > ( SELECT name, type, geometry, area FROM osm_green_areas_z10 WHERE geometry && !bbox! ) AS _ - <<: *layer name: landcover-high id: landcover-high class: landcover properties: minzoom: 13 Datasource: <<: *postgis geometry_field: geometry table: > ( SELECT geometry, type, area FROM osm_landcover WHERE geometry && !bbox! ) AS _ - <<: *layer name: landcover-med id: landcover-med class: landcover properties: minzoom: 11 maxzoom: 13 Datasource: <<: *postgis geometry_field: geometry table: > ( SELECT geometry, type, area FROM osm_landcover_z13 WHERE geometry && !bbox! ) AS _ - <<: *layer name: landcover-low id: landcover-low class: landcover properties: minzoom: 9 maxzoom: 11 Datasource: <<: *postgis geometry_field: geometry table: > ( SELECT geometry, type, area FROM osm_landcover_z10 WHERE geometry && !bbox! ) AS _ - <<: *layer name: water id: water properties: minzoom: 8 Datasource: <<: *postgis geometry_field: geom table: water_polygons - <<: *layer name: water-bodies-high id: water-bodies-high properties: minzoom: 14 Datasource: <<: *postgis geometry_field: geometry table: > ( SELECT name, type, geometry, area FROM osm_water_areas WHERE geometry && !bbox! ) AS _ - <<: *layer name: water-bodies-med id: water-bodies-med properties: minzoom: 11 maxzoom: 13 Datasource: <<: *postgis geometry_field: geometry table: > ( SELECT name, type, geometry, area FROM osm_water_areas_z13 WHERE geometry && !bbox! ) AS _ - <<: *layer name: water-bodies-low id: water-bodies-low properties: minzoom: 8 maxzoom: 10 Datasource: <<: *postgis geometry_field: geometry table: > ( SELECT name, type, geometry, area FROM osm_water_areas_z10 WHERE geometry && !bbox! ) AS _ - <<: *layer name: brown-areas-high id: brown-areas-high properties: minzoom: 13 Datasource: <<: *postgis geometry_field: geometry table: > ( SELECT geometry, type, area FROM osm_brown_areas WHERE geometry && !bbox! ) AS _ - <<: *layer name: brown-areas-med id: brown-areas-med properties: minzoom: 11 maxzoom: 13 Datasource: <<: *postgis geometry_field: geometry table: > ( SELECT name, type, geometry, area FROM osm_brown_areas_z13 WHERE geometry && !bbox! ) AS _ - <<: *layer name: brown-areas-low id: brown-areas-low properties: minzoom: 10 maxzoom: 10 Datasource: <<: *postgis geometry_field: geometry table: > ( SELECT name, type, geometry, area FROM osm_brown_areas_z10 WHERE geometry && !bbox! ) AS _ - <<: *layer name: ne-roads id: ne-roads properties: minzoom: 7 maxzoom: 8 cache-features: on Datasource: <<: *postgis geometry_field: geom table: ne_10m_roads - <<: *layer name: aeroways id: aeroways properties: minzoom: 12 Datasource: <<: *postgis geometry_field: geometry table: > ( SELECT name, type, geometry FROM osm_aeroways WHERE geometry && !bbox! ) AS _ - <<: *layer name: tunnels id: tunnels class: tunnels properties: minzoom: 14 cache-features: on Datasource: <<: *postgis geometry_field: geometry table: > ( SELECT * FROM high_road(!scale_denominator!, !bbox!, 'is_tunnel=''yes''') ) AS _ - <<: *layer name: roads id: roads class: roads properties: minzoom: 14 cache-features: on Datasource: <<: *postgis geometry_field: geometry table: > ( SELECT * FROM high_road(!scale_denominator!, !bbox!) ) AS _ - <<: *layer name: roads_med id: roads_med properties: minzoom: 9 maxzoom: 13 cache-features: on Datasource: <<: *postgis geometry_field: geometry table: > ( SELECT * FROM high_road(!scale_denominator!, !bbox!, 'kind!=''highway''') ) AS _ - <<: *layer name: highways_med id: highways_med properties: minzoom: 9 maxzoom: 13 cache-features: on Datasource: <<: *postgis geometry_field: geometry table: > ( SELECT * FROM high_road(!scale_denominator!, !bbox!, 'kind=''highway''') ) AS _ - <<: *layer name: bridges id: bridges class: bridges properties: minzoom: 13 cache-features: on group-by: explicit_layer Datasource: <<: *postgis geometry_field: geometry table: > ( SELECT * FROM high_road(!scale_denominator!, !bbox!, 'is_bridge=''yes''') ) AS _ - <<: *layer name: buildings-high id: buildings-high properties: minzoom: 14 Datasource: <<: *postgis geometry_field: geometry table: > ( SELECT osm_id, name, type, geometry, area FROM osm_buildings WHERE geometry && !bbox! ) AS _ # Start Labels - <<: *layer name: admin0-labels-z3 id: admin0-labels-z3 properties: minzoom: 3 maxzoom: 3 Datasource: <<: *postgis geometry_field: geom table: admin_0_countries_110m_points - <<: *layer name: admin0-labels-z4 id: admin0-labels-z4 properties: minzoom: 4 maxzoom: 4 Datasource: <<: *postgis geometry_field: geom table: admin_0_labels_z4 - <<: *layer name: admin0-labels-z5 id: admin0-labels-z5 properties: minzoom: 5 maxzoom: 5 Datasource: <<: *postgis geometry_field: geom table: admin_0_labels_z5 - <<: *layer name: admin0-labels-z6 id: admin0-labels-z6 properties: minzoom: 6 maxzoom: 6 Datasource: <<: *postgis geometry_field: geom table: admin_0_labels_z6 # ---- Mountain Peaks ----------------- - <<: *layer name: mountain_peaks_ne id: mountain_peaks_ne properties: minzoom: 6 Datasource: <<: *postgis geometry_field: geom table: > ( SELECT (CASE WHEN name = 'Haleakal?' THEN 'Haleakalā' WHEN name = 'Volca?n Villarrica' THEN 'Villarrica' WHEN name = 'Sn?ka' THEN 'Sněžka' WHEN name = 'Qurnat as Sawd?' THEN 'Qurnat as Sawdā’' WHEN name = 'Sabalon K?h' THEN 'Sabalan' WHEN name = 'Jabal Sawd?' THEN 'Jabal Sawda' WHEN name = 'Jabal an-Nab? Shuaib' THEN 'Jabal an-Nabi Shu’aib' WHEN name = 'K?h-e Haji Ebrahim' THEN 'Kuhe Haji Ebrahim' WHEN name = 'Mt. Dam?vand' THEN 'Mt. Damavand' WHEN name = 'K?h-e Jang Qal''eh' THEN 'Kuh-e Jang Qal’eh' WHEN name = 'Tirich M?r' THEN 'Tirich Mir' WHEN name = 'Alada? Tepe' THEN '' WHEN name = 'K?h-e Nay Band' THEN '' WHEN name = 'K?h-e Hez?r' THEN '' WHEN name = 'K?h-e Taftan' THEN '' WHEN name = 'K?h-e R?zeh' THEN '' ELSE name END) AS name, name_alt, elevation, comment, geom, featurecla FROM ne_10m_geography_regions_elevation_points WHERE geom && !bbox! ) AS _ # ---- admin 1 labels ---------------------------------------------------- - <<: *layer name: admin1-labels-50m-z4 id: admin1-labels-50m-z4 properties: minzoom: 4 maxzoom: 4 Datasource: <<: *postgis geometry_field: geom table: admin_1_labels_z4 - <<: *layer name: admin1-labels-50m-z5 id: admin1-labels-50m-z5 properties: minzoom: 5 maxzoom: 5 Datasource: <<: *postgis geometry_field: geom table: admin_1_labels_z5 - <<: *layer name: admin1-labels id: admin1-labels properties: minzoom: 5 maxzoom: 7 Datasource: <<: *postgis geometry_field: geometry table: > ( SELECT name, admin, geometry, scalerank FROM ne_10m_admin_1_states_provinces_labels WHERE geometry && !bbox! ) AS _ - <<: *layer name: water-bodies-labels-high id: water-bodies-labels-high properties: minzoom: 14 Datasource: <<: *postgis geometry_field: geometry table: > ( SELECT name, type, geometry, area FROM osm_water_areas WHERE geometry && !bbox! ) AS _ - <<: *layer name: water-bodies-labels-med id: water-bodies-labels-med properties: minzoom: 11 maxzoom: 13 Datasource: <<: *postgis geometry_field: geometry table: > ( SELECT name, type, geometry, area FROM osm_water_areas_z13 WHERE geometry && !bbox! ) AS _ - <<: *layer name: water-bodies-labels-low id: water-bodies-labels-low properties: minzoom: 8 maxzoom: 10 Datasource: <<: *postgis geometry_field: geometry table: > ( SELECT name, type, geometry, area FROM osm_water_areas_z10 WHERE geometry && !bbox! ) AS _ - <<: *layer name: green-areas-labels-high id: green-areas-labels-high properties: minzoom: 14 Datasource: <<: *postgis geometry_field: geometry table: > ( SELECT name, type, geometry, area FROM osm_green_areas WHERE geometry && !bbox! ORDER BY area DESC ) AS _ - <<: *layer name: green-areas-labels-med id: green-areas-labels-med properties: minzoom: 11 maxzoom: 13 Datasource: <<: *postgis geometry_field: geometry table: > ( SELECT name, type, geometry, area FROM osm_green_areas_z13 WHERE geometry && !bbox! ORDER BY area DESC ) AS _ - <<: *layer name: green-areas-labels-low id: green-areas-labels-low properties: minzoom: 8 maxzoom: 10 Datasource: <<: *postgis geometry_field: geometry table: > ( SELECT name, type, geometry, area FROM osm_green_areas_z10 WHERE geometry && !bbox! ORDER BY area DESC ) AS _ - <<: *layer name: major_road_labels id: major_road_labels properties: minzoom: 12 Datasource: <<: *postgis geometry_field: geometry table: > (SELECT geometry, (CASE WHEN highway = 'motorway' THEN '' ELSE replace(name, ' ', ' ') END) AS name, (CASE WHEN highway = 'motorway' AND CHAR_LENGTH(ref) BETWEEN 2 AND 15 THEN REGEXP_REPLACE(ref, E'\s*;\s*', E' / ', 'g') ELSE '' END) AS ref, (CASE WHEN highway = 'motorway' AND CHAR_LENGTH(ref) BETWEEN 2 AND 15 THEN CHAR_LENGTH(ref) ELSE 0 END) AS ref_length, highway, ST_Length(geometry) AS length, (CASE WHEN highway IN ('motorway', 'motorway_link') THEN 0 WHEN highway IN ('footpath', 'track', 'footway', 'steps', 'pedestrian', 'path', 'cycleway') THEN 1 WHEN railway IN ('rail', 'spur', 'subway', 'light_rail', 'tram', 'abandoned', 'disused', 'monorail') THEN 2 WHEN highway IN ('trunk', 'trunk_link', 'primary', 'primary_link') THEN 3 WHEN highway = 'secondary' THEN 4 WHEN highway = 'tertiary' THEN 5 ELSE 9 END) AS priority, (CASE WHEN highway IN ('secondary', 'trunk', 'trunk_link', 'primary', 'primary_link', 'motorway', 'motorway_link') THEN 'major_road' WHEN highway IN ('residential', 'unclassified', 'service', 'minor', 'road', 'tertiary') THEN 'minor_road' WHEN railway IN ('rail', 'spur', 'subway', 'light_rail', 'tram', 'abandoned', 'disused', 'monorail') THEN 'rail' WHEN highway IN ('footpath', 'track', 'footway', 'steps', 'pedestrian', 'path', 'cycleway') THEN 'path' ELSE '' END) AS kind, (CASE WHEN tunnel = 1 THEN 'yes' ELSE 'no' END) AS is_tunnel, (CASE WHEN bridge = 1 THEN 'yes' ELSE 'no' END) AS is_bridge FROM osm_roads WHERE geometry && !bbox! AND highway IN ('secondary', 'trunk', 'trunk_link', 'primary', 'primary_link', 'motorway', 'motorway_link') ORDER BY priority ASC, length DESC) AS _ - <<: *layer name: minor_road_labels id: minor_road_labels properties: minzoom: 14 Datasource: <<: *postgis geometry_field: geometry table: > (SELECT geometry, replace(name, ' ', ' ') AS name, highway, ST_Length(geometry) AS length, (CASE WHEN highway IN ('motorway', 'motorway_link') THEN 0 WHEN highway IN ('footpath', 'track', 'footway', 'steps', 'pedestrian', 'path', 'cycleway') THEN 1 WHEN railway IN ('rail', 'spur', 'subway', 'light_rail', 'tram', 'abandoned', 'disused', 'monorail') THEN 2 WHEN highway IN ('trunk', 'trunk_link', 'primary', 'primary_link') THEN 3 WHEN highway = 'secondary' THEN 4 WHEN highway = 'tertiary' THEN 5 ELSE 9 END) AS priority, (CASE WHEN highway IN ('secondary', 'trunk', 'trunk_link', 'primary', 'primary_link', 'motorway', 'motorway_link') THEN 'major_road' WHEN highway IN ('residential', 'unclassified', 'service', 'minor', 'road', 'tertiary') THEN 'minor_road' WHEN railway IN ('rail', 'spur', 'subway', 'light_rail', 'tram', 'abandoned', 'disused', 'monorail') THEN 'rail' WHEN highway IN ('footpath', 'track', 'footway', 'steps', 'pedestrian', 'path', 'cycleway') THEN 'path' ELSE '' END) AS kind, (CASE WHEN tunnel = 1 THEN 'yes' ELSE 'no' END) AS is_tunnel, (CASE WHEN bridge = 1 THEN 'yes' ELSE 'no' END) AS is_bridge FROM osm_roads WHERE geometry && !bbox! AND highway IN ('residential', 'unclassified', 'service', 'minor', 'road', 'tertiary') ORDER BY priority ASC, length DESC LIMIT 25) AS _ # ---- Highway Shields ---------------------------------------------------- - <<: *layer name: highway_shields id: highway_shields properties: minzoom: 11 Datasource: <<: *postgis geometry_field: geometry table: > ( SELECT ref, CHAR_LENGTH(ref) as ref_length, priority, highway, geometry FROM highway_shields WHERE geometry && !bbox! ) AS _ - <<: *layer name: continents id: continents properties: minzoom: 1 maxzoom: 2 Datasource: <<: *postgis geometry_field: geom table: continents # ---- Aries Places ---------------------------------------------------- - <<: *layer name: aries-places-labels id: aries-places-labels properties: minzoom: 4 maxzoom: 16 Datasource: <<: *postgis geometry_field: geometry table: > ( SELECT name, zoom scalerank, population, geometry FROM aries WHERE geometry && !bbox! ORDER BY population DESC, name ) AS _ - <<: *layer name: airports id: airports properties: minzoom: 12 Datasource: <<: *postgis geometry_field: geom table: ne_10m_airports ================================================ FILE: tessera.json ================================================ { "/flat": { "source": "mapnik://./terrain-classic.xml?metatile=1&bufferSize=192" }, "/labels": { "source": "mapnik://./terrain-classic-labels.xml?metatile=2&bufferSize=256" }, "/lines": { "source": "mapnik://./terrain-classic-lines.xml?metatile=1&bufferSize=0" }, "/features": { "source": "mapnik://./terrain-classic-features.xml?metatile=1&bufferSize=8" }, "/bg": { "source": "mapnik://./terrain-classic-background.xml?metatile=1&bufferSize=8" }, "/background": { "source": { "protocol": "blend:", "query": { "layers": [ { "source": "mapnik://./terrain-classic-background.xml?metatile=1&bufferSize=8" }, { "source": "http://hillshades.openterrain.org.s3-website-us-east-1.amazonaws.com/positron/{z}/{x}/{y}.png", "comp-op": "multiply", "opacity": "1" }, { "source": "mapnik://./terrain-classic-water.xml?metatile=1&bufferSize=0" } ], "format": "png8" } } }, "/": { "source": { "protocol": "blend:", "query": { "layers": [ { "source": "mapnik://./terrain-classic-background.xml?metatile=1&bufferSize=8" }, { "source": { "protocol": "http:", "host": "hillshades.openterrain.org.s3-website.us-east-1.amazonaws.com", "pathname": "/positron/{z}/{x}/{y}.png", "info": { "minzoom": 0, "maxzoom": 15 } }, "comp-op": "multiply", "opacity": "1" }, { "source": "mapnik://./terrain-classic-features.xml?metatile=1&bufferSize=0" }, { "source": "mapnik://./terrain-classic-labels.xml?metatile=1&bufferSize=192" } ], "format": "png8" } } } } ================================================ FILE: tmp/old_key.txt ================================================ Urban and Built-Up Land 255 0 0 Dryland Cropland and Pasture 160 82 40 Irrigated Cropland and Pasture 134 82 40 Mixed Dryland/Irrigated Cropland and Pasture 159 54 0 Cropland/Grassland Mosaic 184 134 11 Cropland/Woodland Mosaic 154 205 50 Grassland 234 221 130 Shrubland 255 140 0 Mixed Shrubland/Grassland 255 163 67 Savanna 255 215 0 Deciduous Broadleaf Forest 60 179 113 Deciduous Needleleaf Forest 105 138 65 Evergreen Broadleaf Forest 122 252 0 Evergreen Needleleaf Forest 34 121 34 Mixed Forest 125 217 152 Water Bodies 132 193 255 Herbaceous Wetland 136 155 209 Wooded Wetland 109 121 188 Barren or Sparsely Vegetated 150 150 150 Herbaceous Tundra 203 130 199 Wooded Tundra 188 143 143 Mixed Tundra 213 121 180 Bare Ground Tundra 253 186 242 Snow or Ice 255 255 255 Unlabelled land area 129 159 170 ================================================ FILE: tmp/old_lc_rgb_values.txt ================================================ ================================================ FILE: tmp/old_vrt_rgb_values.txt ================================================ Urban and Built-Up Land = r: 239 g: 239 b: 239 Dryland Cropland and Pasture = r: 222 g: 224 b: 190 Irrigated Cropland and Pasture = r: 213 g: 224 b: 164 Mixed Dryland/Irrigated Cropland and Pasture = r: 0 g: 0 b: 0 Cropland/Grassland Mosaic = r: 213 g: 224 b: 164 Cropland/Woodland Mosaic = r: 9 g: 174 b: 132 Grassland = r: 222 g: 224 b: 190 Shrubland = r: 221 g: 224 b: 206 Mixed Shrubland/Grassland = r: 221 g: 224 b: 206 Savanna = r: 222 g: 224 b: 190 Deciduous Broadleaf Forest = r: 43 g: 174 b: 103 Deciduous Needleleaf Forest = r: 43 g: 174 b: 103 Evergreen Broadleaf Forest = r: 43 g: 174 b: 103 Evergreen Needleleaf Forest = r: 43 g: 174 b: 103 Mixed Forest = r: 43 g: 174 b: 103 Water Bodies = r: 222 g: 224 b: 190 Herbaceous Wetland = r: 0 g: 0 b: 0 Wooded Wetland = r: 0 g: 0 b: 0 Barren or Sparsely Vegetated = r: 239 g: 243 b: 217 Herbaceous Tundra = r: 0 g: 0 b: 0 Wooded Tundra = r: 43 g: 174 b: 103 Mixed Tundra = r: 222 g: 224 b: 190 Bare Ground Tundra = r: 0 g: 0 b: 0 ================================================ FILE: tmp/parse-vrt-xml.js ================================================ var fs = require('fs'), xml2js = require('xml2js'), Q = require('q'), parser = new xml2js.Parser(), vrtJSON = null, keyString = '', keys = [], oldVRTkeysValues = ''; init() .then(function(results) { return Q.fcall(parseResults, results[0], results[1]); }) .then(function(txt) { fs.writeFile('old_vrt_rgb_values.txt', txt, function(err) { if (err) return console.error(err); }); }); function readOldVRT() { // read in the old VRT XML color values & convert to JSON return Q.nfcall(fs.readFile, 'old_lc_rgb_values.txt', 'utf-8') .then(function(text) { return Q.nfcall(parser.parseString, text) }) .then(function(json){ return json; }) .fail(function(err) { console.error(err); return err; }); } function readOldKey() { // read in the key for national map landcover color values return Q.nfcall(fs.readFile, 'old_key.txt', 'utf-8') .then(function(text) { return parseKey(text); }) .fail(function(err){ console.error(err); return err; }); } function parseKey(txt) { var txtArr = txt.split('\n'), tmpkeys = []; txtArr.forEach(function(d,i) { d = d.replace(/\d/g,''); d = d.replace(/\s+$/,''); tmpkeys.push(d); }); console.log(tmpkeys); return tmpkeys; } function parseResults(keys, json) { var tmp = []; json.ColorTable.Entry.forEach(function(d,i,arr){ var r = d['$'].c1, g = d['$'].c2, b = d['$'].c3; var rgbString = keys[i] + ' = r: ' + r + ' g: ' + g + ' b: ' + b; if (i !== arr.length -1 ) { rgbString += '\n'; } tmp.push(rgbString); }); tmp = tmp.join(''); return tmp; } function init() { return Q.all([ readOldKey(), readOldVRT() ]); } ================================================ FILE: tmp/terrain_og/index.html ================================================ Stamen Terrain OG

Zoom: