From b5140cb3426595646f39aee298ca8306d3bd0a6f Mon Sep 17 00:00:00 2001 From: Pablo Guardiola Date: Fri, 10 Nov 2017 12:56:06 +0100 Subject: [PATCH 01/92] [android] Cherry picks to agua (#10442) * [android] fix map snapshotter marker example The reference to the MapSnapshotter needs to be held for the duration of the snapshot, otherwise it might be GC'd * [android] MapRendererRunnable - avoid weak reference table overflow Apparently on some devices the weak reference table is limited (numbers around 52000). Even though we don't use that many weak references, when GC is not called for a while they can stack up and a crash will occur before the GC has had the time to clear the references. The C++ peer now holds on to a global ref (strong) which can be obtained to queue the java peer and then release automatically so that the GC can take over after the runnable has been executed. --- .../snapshot/MapSnapshotterMarkerActivity.java | 4 +++- platform/android/src/map_renderer.cpp | 10 +++++++--- platform/android/src/map_renderer_runnable.cpp | 10 ++++++---- platform/android/src/map_renderer_runnable.hpp | 7 +++---- 4 files changed, 19 insertions(+), 12 deletions(-) diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/snapshot/MapSnapshotterMarkerActivity.java b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/snapshot/MapSnapshotterMarkerActivity.java index 582d4a29c..781e7b633 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/snapshot/MapSnapshotterMarkerActivity.java +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/snapshot/MapSnapshotterMarkerActivity.java @@ -25,6 +25,8 @@ import timber.log.Timber; */ public class MapSnapshotterMarkerActivity extends AppCompatActivity implements MapSnapshotter.SnapshotReadyCallback { + private MapSnapshotter mapSnapshotter; + @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); @@ -40,7 +42,7 @@ public class MapSnapshotterMarkerActivity extends AppCompatActivity implements M Timber.i("Starting snapshot"); - MapSnapshotter mapSnapshotter = new MapSnapshotter( + mapSnapshotter = new MapSnapshotter( getApplicationContext(), new MapSnapshotter .Options(Math.min(container.getMeasuredWidth(), 1024), Math.min(container.getMeasuredHeight(), 1024)) diff --git a/platform/android/src/map_renderer.cpp b/platform/android/src/map_renderer.cpp index 765545521..36e8142bf 100644 --- a/platform/android/src/map_renderer.cpp +++ b/platform/android/src/map_renderer.cpp @@ -41,15 +41,19 @@ ActorRef MapRenderer::actor() const { } void MapRenderer::schedule(std::weak_ptr scheduled) { - // Create a runnable and schedule it on the gl thread + // Create a runnable android::UniqueEnv _env = android::AttachEnv(); auto runnable = std::make_unique(*_env, std::move(scheduled)); + // Obtain ownership of the peer (gets transferred to the MapRenderer on the JVM for later GC) + auto peer = runnable->peer(); + + // Queue the event on the Java Peer static auto queueEvent = javaClass.GetMethod)>(*_env, "queueEvent"); - javaPeer->Call(*_env, queueEvent, runnable->getPeer()); + javaPeer->Call(*_env, queueEvent, *peer); - // Release the object as it will be destroyed on GC of the Java Peer + // Release the c++ peer as it will be destroyed on GC of the Java Peer runnable.release(); } diff --git a/platform/android/src/map_renderer_runnable.cpp b/platform/android/src/map_renderer_runnable.cpp index df8cba5e5..4dc6611c4 100644 --- a/platform/android/src/map_renderer_runnable.cpp +++ b/platform/android/src/map_renderer_runnable.cpp @@ -8,11 +8,13 @@ namespace android { MapRendererRunnable::MapRendererRunnable(jni::JNIEnv& env, std::weak_ptr mailbox_) : mailbox(std::move(mailbox_)) { - // Create the Java peer + // Create the Java peer and hold on to a global reference + // Not using a weak reference here as this might oerflow + // the weak reference table on some devices jni::UniqueLocalFrame frame = jni::PushLocalFrame(env, 5); static auto constructor = javaClass.GetConstructor(env); auto instance = javaClass.New(env, constructor, reinterpret_cast(this)); - javaPeer = SeizeGenericWeakRef(env, jni::Object(jni::NewWeakGlobalRef(env, instance.Get()).release())); + javaPeer = instance.NewGlobalRef(env); } MapRendererRunnable::~MapRendererRunnable() = default; @@ -21,8 +23,8 @@ void MapRendererRunnable::run(jni::JNIEnv&) { Mailbox::maybeReceive(mailbox); } -jni::Object MapRendererRunnable::getPeer() { - return *javaPeer; +jni::UniqueObject MapRendererRunnable::peer() { + return std::move(javaPeer); } // Static methods // diff --git a/platform/android/src/map_renderer_runnable.hpp b/platform/android/src/map_renderer_runnable.hpp index 75646a442..46fb028d2 100644 --- a/platform/android/src/map_renderer_runnable.hpp +++ b/platform/android/src/map_renderer_runnable.hpp @@ -8,8 +8,6 @@ #include -#include "jni/generic_global_ref_deleter.hpp" - namespace mbgl { namespace android { @@ -39,10 +37,11 @@ public: void run(jni::JNIEnv&); - jni::Object getPeer(); + // Transfers ownership of the Peer object to the caller + jni::UniqueObject peer(); private: - GenericUniqueWeakObject javaPeer; + jni::UniqueObject javaPeer; std::weak_ptr mailbox; }; From 199c0cac2573d58483e52abac9e1c6621b0df603 Mon Sep 17 00:00:00 2001 From: Tobrun Date: Fri, 10 Nov 2017 16:34:09 +0100 Subject: [PATCH 02/92] [android] - harden deselection mechanism for markers (#10403) --- .../com/mapbox/mapboxsdk/maps/AnnotationManager.java | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/AnnotationManager.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/AnnotationManager.java index 9f256c341..64b33ad59 100644 --- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/AnnotationManager.java +++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/AnnotationManager.java @@ -302,12 +302,14 @@ class AnnotationManager { } for (Marker marker : selectedMarkers) { - if (marker.isInfoWindowShown()) { - marker.hideInfoWindow(); - } + if (marker != null) { + if (marker.isInfoWindowShown()) { + marker.hideInfoWindow(); + } - if (marker instanceof MarkerView) { - markerViewManager.deselect((MarkerView) marker, false); + if (marker instanceof MarkerView) { + markerViewManager.deselect((MarkerView) marker, false); + } } } From a0cfac4c1a0785fae57ef80839e3e28124c6a541 Mon Sep 17 00:00:00 2001 From: Jordan Kiley Date: Fri, 10 Nov 2017 10:02:45 -0800 Subject: [PATCH 03/92] Update MGLMapSnapshotter docs (#10438) --- platform/darwin/src/MGLMapSnapshotter.h | 81 +++++++++++++++++-------- 1 file changed, 57 insertions(+), 24 deletions(-) diff --git a/platform/darwin/src/MGLMapSnapshotter.h b/platform/darwin/src/MGLMapSnapshotter.h index 541bc68b9..978e19dc2 100644 --- a/platform/darwin/src/MGLMapSnapshotter.h +++ b/platform/darwin/src/MGLMapSnapshotter.h @@ -14,9 +14,10 @@ MGL_EXPORT /** Creates a set of options with the minimum required information. - @param styleURL URL of the map style to snapshot. The URL may be a full HTTP or HTTPS URL, - a Mapbox URL indicating the style’s map ID (`mapbox://styles/{user}/{style`}), or a path - to a local file relative to the application’s resource path. Specify `nil` for the default style. + @param styleURL URL of the map style to snapshot. The URL may be a full HTTP or + HTTPS URL, a Mapbox URL indicating the style’s map ID + (`mapbox://styles/{user}/{style}`), or a path to a local file relative to + the application’s resource path. Specify `nil` for the default style. @param size The image size. */ - (instancetype)initWithStyleURL:(nullable NSURL *)styleURL camera:(MGLMapCamera *)camera size:(CGSize)size; @@ -31,17 +32,18 @@ MGL_EXPORT /** The zoom level. - The default zoom level is 0. If this property is non-zero and the camera property - is non-nil, the camera’s altitude is ignored in favor of this property’s value. + The default zoom level is 0. If this property is non-zero and the camera + property is non-nil, the camera’s altitude is ignored in favor of this + property’s value. */ @property (nonatomic) double zoomLevel; /** A camera representing the viewport visible in the snapshot. - If this property is non-nil and the `coordinateBounds` property is set to a non-empty - coordinate bounds, the camera’s center coordinate and altitude are ignored in favor - of the `coordinateBounds` property. + If this property is non-nil and the `coordinateBounds` property is set to a + non-empty coordinate bounds, the camera’s center coordinate and altitude are + ignored in favor of the `coordinateBounds` property. */ @property (nonatomic) MGLMapCamera *camera; @@ -78,24 +80,26 @@ MGL_EXPORT #if TARGET_OS_IPHONE /** - Converts the specified map coordinate to a point in the coordinate space of the image. + Converts the specified map coordinate to a point in the coordinate space of the + image. */ - (CGPoint)pointForCoordinate:(CLLocationCoordinate2D)coordinate; /** The image of the map’s content. */ -@property(nonatomic, readonly) UIImage *image; +@property (nonatomic, readonly) UIImage *image; #else /** - Converts the specified map coordinate to a point in the coordinate space of the image. + Converts the specified map coordinate to a point in the coordinate space of the + image. */ - (NSPoint)pointForCoordinate:(CLLocationCoordinate2D)coordinate; /** The image of the map’s content. */ -@property(nonatomic, readonly) NSImage *image; +@property (nonatomic, readonly) NSImage *image; #endif @end @@ -103,13 +107,33 @@ MGL_EXPORT /** A block to processes the result or error of a snapshot request. - @param snapshot The `MGLMapSnapshot` that was generated or `nil` if an error occurred. + @param snapshot The `MGLMapSnapshot` that was generated or `nil` if an error + occurred. @param error The error that occured or `nil` when successful. */ typedef void (^MGLMapSnapshotCompletionHandler)(MGLMapSnapshot* _Nullable snapshot, NSError* _Nullable error); /** - An immutable utility object for capturing map-based images. + An `MGLMapSnapshotter` generates static raster images of the map. Each snapshot + image depicts a portion of a map defined by an `MGLMapSnapshotOptions` object + you provide. The snapshotter generates an `MGLMapSnapshot` object + asynchronously, passing it into a completion handler once tiles and other + resources needed for the snapshot are finished loading. + + You can change the snapshotter’s options at any time and reuse the snapshotter + for multiple distinct snapshots; however, the snapshotter can only generate one + snapshot at a time. If you need to generate multiple snapshots concurrently, + create multiple snapshotter objects. + + For an interactive map, use the `MGLMapView` class. Both `MGLMapSnapshotter` + and `MGLMapView` are compatible with offline packs managed by the + `MGLOfflineStorage` class. + + From a snapshot, you can obtain an image and convert geographic coordinates to + the image’s coordinate space in order to superimpose markers and overlays. If + you do not need offline map functionality, you can use the `Snapshot` class in + [MapboxStatic.swift](https://github.com/mapbox/MapboxStatic.swift/) to generate + static map images with overlays. ### Example @@ -132,7 +156,14 @@ typedef void (^MGLMapSnapshotCompletionHandler)(MGLMapSnapshot* _Nullable snapsh MGL_EXPORT @interface MGLMapSnapshotter : NSObject -- (instancetype)initWithOptions:(MGLMapSnapshotOptions*)options; +/** + Initializes and returns a map snapshotter object that produces snapshots + according to the given options. + + @param options The options to use when generating a map snapshot. + @return An initialized map snapshotter. + */ +- (instancetype)initWithOptions:(MGLMapSnapshotOptions *)options; /** Starts the snapshot creation and executes the specified block with the result. @@ -142,7 +173,8 @@ MGL_EXPORT - (void)startWithCompletionHandler:(MGLMapSnapshotCompletionHandler)completionHandler; /** - Starts the snapshot creation and executes the specified block with the result on the specified queue. + Starts the snapshot creation and executes the specified block with the result + on the specified queue. @param queue The queue to handle the result on. @param completionHandler The block to handle the result in. @@ -152,25 +184,26 @@ MGL_EXPORT /** Cancels the snapshot creation request, if any. - Once you call this method, you cannot resume the snapshot. In order to obtain the - snapshot, create a new `MGLMapSnapshotter` object. + Once you call this method, you cannot resume the snapshot. In order to obtain + the snapshot, create a new `MGLMapSnapshotter` object. */ - (void)cancel; /** The zoom level. - The default zoom level is 0. If this property is non-zero and the camera property - is non-nil, the camera’s altitude is ignored in favor of this property’s value. + The default zoom level is 0. If this property is non-zero and the camera + property is non-nil, the camera’s altitude is ignored in favor of this + property’s value. */ @property (nonatomic) double zoomLevel; /** A camera representing the viewport visible in the snapshot. - If this property is non-nil and the `coordinateBounds` property is set to a non-empty - coordinate bounds, the camera’s center coordinate and altitude are ignored in favor - of the `coordinateBounds` property. + If this property is non-nil and the `coordinateBounds` property is set to a + non-empty coordinate bounds, the camera’s center coordinate and altitude are + ignored in favor of the `coordinateBounds` property. */ @property (nonatomic) MGLMapCamera *camera; @@ -186,7 +219,7 @@ MGL_EXPORT URL of the map style to snapshot. The URL may be a full HTTP or HTTPS URL, a Mapbox URL indicating the style’s - map ID (`mapbox://styles/{user}/{style`}), or a path to a local file relative + map ID (`mapbox://styles/{user}/{style}`), or a path to a local file relative to the application’s resource path. Specify `nil` for the default style. */ @property (nonatomic, nullable) NSURL *styleURL; From a9bd09c015f36174abdc5aee0de775500597617d Mon Sep 17 00:00:00 2001 From: Tobrun Date: Mon, 13 Nov 2017 13:20:41 +0100 Subject: [PATCH 04/92] Downgrade min sdk to 14 (#10355) * [android] - downgrade minimum sdk version to 14 * [android] bump MAS version to the one which includes min sdk version 14 * bump lost version to 3.0.4 --- .../android/MapboxGLAndroidSDK/build.gradle | 1 - .../src/main/AndroidManifest.xml | 9 ++-- .../mapboxsdk/location/LocationSource.java | 49 ++++++++++++++----- platform/android/dependencies.gradle | 6 +-- 4 files changed, 46 insertions(+), 19 deletions(-) diff --git a/platform/android/MapboxGLAndroidSDK/build.gradle b/platform/android/MapboxGLAndroidSDK/build.gradle index f3e9433a0..bf0af3052 100644 --- a/platform/android/MapboxGLAndroidSDK/build.gradle +++ b/platform/android/MapboxGLAndroidSDK/build.gradle @@ -6,7 +6,6 @@ dependencies { compile rootProject.ext.dep.timber compile rootProject.ext.dep.okhttp3 provided(rootProject.ext.dep.lost) { - exclude group: 'com.google.guava' exclude group: 'com.android.support' } testCompile rootProject.ext.dep.junit diff --git a/platform/android/MapboxGLAndroidSDK/src/main/AndroidManifest.xml b/platform/android/MapboxGLAndroidSDK/src/main/AndroidManifest.xml index b61035a00..f59585bfe 100644 --- a/platform/android/MapboxGLAndroidSDK/src/main/AndroidManifest.xml +++ b/platform/android/MapboxGLAndroidSDK/src/main/AndroidManifest.xml @@ -1,14 +1,17 @@ + xmlns:tools="http://schemas.android.com/tools" + package="com.mapbox.mapboxsdk"> - - + + + + diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/location/LocationSource.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/location/LocationSource.java index c6bc13f53..131358715 100644 --- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/location/LocationSource.java +++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/location/LocationSource.java @@ -32,7 +32,7 @@ import com.mapzen.android.lost.api.LostApiClient; * @deprecated Use a {@link Mapbox#getLocationEngine()} instead. */ @Deprecated -public class LocationSource extends LocationEngine implements LocationListener { +public class LocationSource extends LocationEngine implements LostApiClient.ConnectionCallbacks, LocationListener { private Context context; private LostApiClient lostApiClient; @@ -45,7 +45,9 @@ public class LocationSource extends LocationEngine implements LocationListener { public LocationSource(Context context) { super(); this.context = context.getApplicationContext(); - lostApiClient = new LostApiClient.Builder(this.context).build(); + lostApiClient = new LostApiClient.Builder(this.context) + .addConnectionCallbacks(this) + .build(); } /** @@ -61,12 +63,7 @@ public class LocationSource extends LocationEngine implements LocationListener { */ @Override public void activate() { - if (!lostApiClient.isConnected()) { - lostApiClient.connect(); - } - for (LocationEngineListener listener : locationListeners) { - listener.onConnected(); - } + connect(); } /** @@ -76,7 +73,7 @@ public class LocationSource extends LocationEngine implements LocationListener { */ @Override public void deactivate() { - if (lostApiClient.isConnected()) { + if (lostApiClient != null && lostApiClient.isConnected()) { lostApiClient.disconnect(); } } @@ -92,6 +89,24 @@ public class LocationSource extends LocationEngine implements LocationListener { return lostApiClient.isConnected(); } + /** + * Invoked when the location provider has connected. + */ + @Override + public void onConnected() { + for (LocationEngineListener listener : locationListeners) { + listener.onConnected(); + } + } + + /** + * Invoked when the location provider connection has been suspended. + */ + @Override + public void onConnectionSuspended() { + // Empty + } + /** * Returns the Last known location is the location provider is connected and location permissions are granted. * @@ -102,7 +117,7 @@ public class LocationSource extends LocationEngine implements LocationListener { public Location getLastLocation() { if (lostApiClient.isConnected()) { //noinspection MissingPermission - return LocationServices.FusedLocationApi.getLastLocation(); + return LocationServices.FusedLocationApi.getLastLocation(lostApiClient); } return null; } @@ -136,7 +151,7 @@ public class LocationSource extends LocationEngine implements LocationListener { if (lostApiClient.isConnected()) { //noinspection MissingPermission - LocationServices.FusedLocationApi.requestLocationUpdates(request, this); + LocationServices.FusedLocationApi.requestLocationUpdates(lostApiClient, request, this); } } @@ -146,7 +161,7 @@ public class LocationSource extends LocationEngine implements LocationListener { @Override public void removeLocationUpdates() { if (lostApiClient.isConnected()) { - LocationServices.FusedLocationApi.removeLocationUpdates(this); + LocationServices.FusedLocationApi.removeLocationUpdates(lostApiClient, this); } } @@ -171,4 +186,14 @@ public class LocationSource extends LocationEngine implements LocationListener { listener.onLocationChanged(location); } } + + private void connect() { + if (lostApiClient != null) { + if (lostApiClient.isConnected()) { + onConnected(); + } else { + lostApiClient.connect(); + } + } + } } \ No newline at end of file diff --git a/platform/android/dependencies.gradle b/platform/android/dependencies.gradle index 8d4c32045..eadf7aea5 100644 --- a/platform/android/dependencies.gradle +++ b/platform/android/dependencies.gradle @@ -1,5 +1,5 @@ ext { - minSdkVersion = 15 + minSdkVersion = 14 targetSdkVersion = 25 compileSdkVersion = 25 buildToolsVersion = "25.0.2" @@ -7,7 +7,7 @@ ext { versionCode = 11 versionName = "5.0.0" - mapboxServicesVersion = "2.2.8" + mapboxServicesVersion = "2.2.9" supportLibVersion = "25.4.0" espressoVersion = '3.0.1' testRunnerVersion = '1.0.1' @@ -20,7 +20,7 @@ ext { mapboxAndroidTelemetry : "com.mapbox.mapboxsdk:mapbox-android-telemetry:${mapboxServicesVersion}@aar", // mapzen lost - lost : 'com.mapzen.android:lost:1.1.1', + lost : 'com.mapzen.android:lost:3.0.4', // unit test junit : 'junit:junit:4.12', From f0f113bafc49a735a596357a0982e298648f4d48 Mon Sep 17 00:00:00 2001 From: Tobrun Date: Tue, 14 Nov 2017 11:13:34 +0100 Subject: [PATCH 05/92] MapSnapshot attribution (#10362) * [android] - add attribution * [android] - optimise attribution sources * [android] - rework datamodel to attribution class * [android] - refactor Attribution, add tests * [android] - add getter for attribution string * [android] - rework attribution to include small logo, add layout placement * [android] - finalise integration and layout logic --- .../android/MapboxGLAndroidSDK/build.gradle | 5 +- .../mapboxsdk/attribution/Attribution.java | 59 ++++ .../attribution/AttributionLayout.java | 62 ++++ .../attribution/AttributionMeasure.java | 230 +++++++++++++ .../attribution/AttributionParser.java | 257 +++++++++++++++ .../mapbox/mapboxsdk/http/HTTPRequest.java | 1 + .../maps/AttributionDialogManager.java | 77 ++--- .../mapboxsdk/snapshotter/MapSnapshot.java | 2 +- .../mapboxsdk/snapshotter/MapSnapshotter.java | 179 ++++++++-- .../res/drawable-hdpi/mapbox_logo_helmet.png | Bin 0 -> 1650 bytes .../res/drawable-mdpi/mapbox_logo_helmet.png | Bin 0 -> 950 bytes .../res/drawable-xhdpi/mapbox_logo_helmet.png | Bin 0 -> 2184 bytes .../drawable-xxhdpi/mapbox_logo_helmet.png | Bin 0 -> 3389 bytes .../drawable-xxxhdpi/mapbox_logo_helmet.png | Bin 0 -> 4468 bytes .../res/drawable/mapbox_rounded_corner.xml | 10 + .../src/main/res/values/colors.xml | 1 + .../attribution/AttributionParseTest.java | 309 ++++++++++++++++++ .../snapshot/MapSnapshotterActivity.java | 2 +- .../MapSnapshotterMarkerActivity.java | 10 +- platform/android/dependencies.gradle | 1 + 20 files changed, 1128 insertions(+), 77 deletions(-) create mode 100644 platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/attribution/Attribution.java create mode 100644 platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/attribution/AttributionLayout.java create mode 100644 platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/attribution/AttributionMeasure.java create mode 100644 platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/attribution/AttributionParser.java create mode 100644 platform/android/MapboxGLAndroidSDK/src/main/res/drawable-hdpi/mapbox_logo_helmet.png create mode 100644 platform/android/MapboxGLAndroidSDK/src/main/res/drawable-mdpi/mapbox_logo_helmet.png create mode 100644 platform/android/MapboxGLAndroidSDK/src/main/res/drawable-xhdpi/mapbox_logo_helmet.png create mode 100644 platform/android/MapboxGLAndroidSDK/src/main/res/drawable-xxhdpi/mapbox_logo_helmet.png create mode 100644 platform/android/MapboxGLAndroidSDK/src/main/res/drawable-xxxhdpi/mapbox_logo_helmet.png create mode 100644 platform/android/MapboxGLAndroidSDK/src/main/res/drawable/mapbox_rounded_corner.xml create mode 100644 platform/android/MapboxGLAndroidSDK/src/test/java/com/mapbox/mapboxsdk/attribution/AttributionParseTest.java diff --git a/platform/android/MapboxGLAndroidSDK/build.gradle b/platform/android/MapboxGLAndroidSDK/build.gradle index bf0af3052..ce886b100 100644 --- a/platform/android/MapboxGLAndroidSDK/build.gradle +++ b/platform/android/MapboxGLAndroidSDK/build.gradle @@ -10,6 +10,7 @@ dependencies { } testCompile rootProject.ext.dep.junit testCompile rootProject.ext.dep.mockito + testCompile rootProject.ext.dep.robolectric // Mapbox Android Services (GeoJSON support) compile(rootProject.ext.dep.mapboxJavaGeoJSON) { @@ -126,7 +127,9 @@ android { } testOptions { - unitTests.returnDefaultValues = true + unitTests{ + returnDefaultValues = true + } } buildTypes { diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/attribution/Attribution.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/attribution/Attribution.java new file mode 100644 index 000000000..0877b3ab9 --- /dev/null +++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/attribution/Attribution.java @@ -0,0 +1,59 @@ +package com.mapbox.mapboxsdk.attribution; + +public class Attribution { + + private static final String OPENSTREETMAP = "OpenStreetMap"; + private static final String OPENSTREETMAP_ABBR = "OSM"; + static final String TELEMETRY = "Telemetry Settings"; + + static final String IMPROVE_MAP_URL = "https://www.mapbox.com/map-feedback/"; + static final String MAPBOX_URL = "https://www.mapbox.com/about/maps/"; + static final String TELEMETRY_URL = "https://www.mapbox.com/telemetry/"; + + private String title; + private String url; + + Attribution(String title, String url) { + this.title = title; + this.url = url; + } + + public String getTitle() { + return title; + } + + public String getTitleAbbreviated() { + if (title.equals(OPENSTREETMAP)) { + return OPENSTREETMAP_ABBR; + } + return title; + } + + public String getUrl() { + return url; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + + Attribution that = (Attribution) o; + + if (title != null ? !title.equals(that.title) : that.title != null) { + return false; + } + return url != null ? url.equals(that.url) : that.url == null; + } + + @Override + public int hashCode() { + int result = title != null ? title.hashCode() : 0; + result = 31 * result + (url != null ? url.hashCode() : 0); + return result; + } +} diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/attribution/AttributionLayout.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/attribution/AttributionLayout.java new file mode 100644 index 000000000..b08a8353b --- /dev/null +++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/attribution/AttributionLayout.java @@ -0,0 +1,62 @@ +package com.mapbox.mapboxsdk.attribution; + +import android.graphics.Bitmap; +import android.graphics.PointF; +import android.support.annotation.Nullable; + +public class AttributionLayout { + + private Bitmap logo; + private PointF anchorPoint; + private boolean shortText; + + public AttributionLayout(@Nullable Bitmap logo, @Nullable PointF anchorPoint, boolean shortText) { + this.logo = logo; + this.anchorPoint = anchorPoint; + this.shortText = shortText; + } + + public Bitmap getLogo() { + return logo; + } + + public PointF getAnchorPoint() { + return anchorPoint; + } + + public boolean isShortText() { + return shortText; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + + AttributionLayout that = (AttributionLayout) o; + + if (logo != null ? !logo.equals(that.logo) : that.logo != null) { + return false; + } + return anchorPoint != null ? anchorPoint.equals(that.anchorPoint) : that.anchorPoint == null; + } + + @Override + public int hashCode() { + int result = logo != null ? logo.hashCode() : 0; + result = 31 * result + (anchorPoint != null ? anchorPoint.hashCode() : 0); + return result; + } + + @Override + public String toString() { + return "AttributionLayout{" + + "logo=" + logo + + ", anchorPoint=" + anchorPoint + + '}'; + } +} diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/attribution/AttributionMeasure.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/attribution/AttributionMeasure.java new file mode 100644 index 000000000..667060168 --- /dev/null +++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/attribution/AttributionMeasure.java @@ -0,0 +1,230 @@ +package com.mapbox.mapboxsdk.attribution; + +import android.graphics.Bitmap; +import android.graphics.PointF; +import android.widget.TextView; + +import java.util.Arrays; +import java.util.List; + +public class AttributionMeasure { + + private Bitmap logo; + private Bitmap logoSmall; + private Bitmap snapshot; + private TextView textView; + private TextView textViewShort; + private float margin; + + private boolean shorterText; + + AttributionMeasure(Bitmap snapshot, Bitmap logo, Bitmap logoSmall, TextView tv, TextView tvShort, float margin) { + this.snapshot = snapshot; + this.logo = logo; + this.logoSmall = logoSmall; + this.textView = tv; + this.textViewShort = tvShort; + this.margin = margin; + } + + public AttributionLayout measure() { + Chain chain = new Chain( + new FullLogoLongTextCommand(), + new FullLogoShortTextCommand(), + new SmallLogoLongTextCommand(), + new SmallLogoShortTextCommand(), + new LongTextCommand(), + new ShortTextCommand(), + new NoTextCommand() + ); + + AttributionLayout attributionLayout = chain.start(this); + shorterText = attributionLayout.isShortText(); + return attributionLayout; + } + + + private static class FullLogoLongTextCommand implements Command { + public AttributionLayout execute(AttributionMeasure measure) { + float width = measure.getLogoContainerWidth() + measure.getTextViewContainerWidth(); + boolean fitBounds = width <= measure.getMaxSize(); + if (fitBounds) { + PointF anchor = calculateAnchor(measure.snapshot, measure.textView, measure.margin); + return new AttributionLayout(measure.logo, anchor, false); + } + return null; + } + } + + private static class FullLogoShortTextCommand implements Command { + @Override + public AttributionLayout execute(AttributionMeasure measure) { + float width = measure.getLogoContainerWidth() + measure.getTextViewShortContainerWidth(); + boolean fitBounds = width <= measure.getMaxSizeShort(); + if (fitBounds) { + PointF anchor = calculateAnchor(measure.snapshot, measure.textView, measure.margin); + return new AttributionLayout(measure.logo, anchor, true); + } + return null; + } + } + + private static class SmallLogoLongTextCommand implements Command { + @Override + public AttributionLayout execute(AttributionMeasure measure) { + float width = measure.getLogoSmallContainerWidth() + measure.getTextViewContainerWidth(); + boolean fitBounds = width <= measure.getMaxSize(); + if (fitBounds) { + PointF anchor = calculateAnchor(measure.snapshot, measure.textView, measure.margin); + return new AttributionLayout(measure.logoSmall, anchor, false); + } + return null; + } + } + + private static class SmallLogoShortTextCommand implements Command { + @Override + public AttributionLayout execute(AttributionMeasure measure) { + float width = measure.getLogoContainerWidth() + measure.getTextViewShortContainerWidth(); + boolean fitBounds = width <= measure.getMaxSizeShort(); + if (fitBounds) { + PointF anchor = calculateAnchor(measure.snapshot, measure.textViewShort, measure.margin); + return new AttributionLayout(measure.logoSmall, anchor, true); + } + return null; + } + } + + private static class LongTextCommand implements Command { + @Override + public AttributionLayout execute(AttributionMeasure measure) { + float width = measure.getTextViewContainerWidth() + measure.margin; + boolean fitBounds = width <= measure.getMaxSize(); + if (fitBounds) { + return new AttributionLayout(null, calculateAnchor(measure.snapshot, measure.textView, measure.margin), false); + } + return null; + } + } + + private static class ShortTextCommand implements Command { + @Override + public AttributionLayout execute(AttributionMeasure measure) { + float width = measure.getTextViewShortContainerWidth() + measure.margin; + boolean fitBounds = width <= measure.getMaxSizeShort(); + if (fitBounds) { + PointF anchor = calculateAnchor(measure.snapshot, measure.textViewShort, measure.margin); + return new AttributionLayout(null, anchor, true); + } + return null; + } + } + + private static class NoTextCommand implements Command { + @Override + public AttributionLayout execute(AttributionMeasure measure) { + return new AttributionLayout(null, null, false); + } + } + + private static PointF calculateAnchor(Bitmap snapshot, TextView textView, float margin) { + return new PointF( + snapshot.getWidth() - textView.getMeasuredWidth() - margin, + snapshot.getHeight() - margin - textView.getMeasuredHeight() + ); + } + + public TextView getTextView() { + return shorterText ? textViewShort : textView; + } + + private class Chain { + public List commands; + + Chain(Command... commands) { + this.commands = Arrays.asList(commands); + } + + public AttributionLayout start(AttributionMeasure measure) { + AttributionLayout attributionLayout = null; + for (Command command : commands) { + attributionLayout = command.execute(measure); + if (attributionLayout != null) { + break; + } + } + return attributionLayout; + } + } + + public interface Command { + AttributionLayout execute(AttributionMeasure measure); + } + + private float getTextViewContainerWidth() { + return textView.getMeasuredWidth() + margin; + } + + private float getLogoContainerWidth() { + return logo.getWidth() + (2 * margin); + } + + private float getTextViewShortContainerWidth() { + return textViewShort.getMeasuredWidth() + margin; + } + + private float getLogoSmallContainerWidth() { + return logoSmall.getWidth() + (2 * margin); + } + + private float getMaxSize() { + return snapshot.getWidth() * 8 / 10; + } + + private float getMaxSizeShort() { + return snapshot.getWidth(); + } + + public static class Builder { + private Bitmap snapshot; + private Bitmap logo; + private Bitmap logoSmall; + private TextView textView; + private TextView textViewShort; + private float marginPadding; + + public Builder setSnapshot(Bitmap snapshot) { + this.snapshot = snapshot; + return this; + } + + public Builder setLogo(Bitmap logo) { + this.logo = logo; + return this; + } + + public Builder setLogoSmall(Bitmap logoSmall) { + this.logoSmall = logoSmall; + return this; + } + + public Builder setTextView(TextView textView) { + this.textView = textView; + return this; + } + + public Builder setTextViewShort(TextView textViewShort) { + this.textViewShort = textViewShort; + return this; + } + + public Builder setMarginPadding(float marginPadding) { + this.marginPadding = marginPadding; + return this; + } + + public AttributionMeasure build() { + return new AttributionMeasure(snapshot, logo, logoSmall, textView, textViewShort, marginPadding); + } + } +} diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/attribution/AttributionParser.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/attribution/AttributionParser.java new file mode 100644 index 000000000..90bb23429 --- /dev/null +++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/attribution/AttributionParser.java @@ -0,0 +1,257 @@ +package com.mapbox.mapboxsdk.attribution; + +import android.text.Html; +import android.text.SpannableStringBuilder; +import android.text.Spanned; +import android.text.style.URLSpan; + +import java.util.LinkedHashSet; +import java.util.Set; + +/** + * Responsible for parsing attribution data coming from Sources and MapSnapshot. + *

+ * Exposes multiple configuration options to manipulate data being parsed. + * Use the Options object to build these configurations. + *

+ */ +public class AttributionParser { + + private final Set attributions = new LinkedHashSet<>(); + private final String attributionData; + private final boolean withImproveMap; + private final boolean withCopyrightSign; + private final boolean withTelemetryAttribution; + private final boolean withMapboxAttribution; + + AttributionParser(String attributionData, boolean withImproveMap, boolean withCopyrightSign, + boolean withTelemetryAttribution, boolean withMapboxAttribution) { + this.attributionData = attributionData; + this.withImproveMap = withImproveMap; + this.withCopyrightSign = withCopyrightSign; + this.withTelemetryAttribution = withTelemetryAttribution; + this.withMapboxAttribution = withMapboxAttribution; + } + + /** + * Get parsed attributions. + * + * @return the attributions + */ + public Set getAttributions() { + return attributions; + } + + /** + * Get parsed attribution string. + * + * @return the parsed attribution string + */ + public String createAttributionString() { + return createAttributionString(false); + } + + /** + * Get parsed attribution string. + * + * @param shortenedOutput if attribution string should contain shortened output + * @return the parsed attribution string + */ + public String createAttributionString(boolean shortenedOutput) { + StringBuilder stringBuilder = new StringBuilder(withCopyrightSign ? "" : "© "); + int counter = 0; + for (Attribution attribution : attributions) { + counter++; + stringBuilder.append(!shortenedOutput ? attribution.getTitle() : attribution.getTitleAbbreviated()); + if (counter != attributions.size()) { + stringBuilder.append(" / "); + } + } + return stringBuilder.toString(); + } + + /** + * Main attribution for configuration + */ + protected void parse() { + parseAttributions(); + addAdditionalAttributions(); + } + + /** + * Parse attributions + */ + private void parseAttributions() { + SpannableStringBuilder htmlBuilder = (SpannableStringBuilder) fromHtml(attributionData); + URLSpan[] urlSpans = htmlBuilder.getSpans(0, htmlBuilder.length(), URLSpan.class); + for (URLSpan urlSpan : urlSpans) { + parseUrlSpan(htmlBuilder, urlSpan); + } + } + + /** + * Parse an URLSpan containing an attribution. + * + * @param htmlBuilder the html builder + * @param urlSpan the url span to be parsed + */ + private void parseUrlSpan(SpannableStringBuilder htmlBuilder, URLSpan urlSpan) { + String url = urlSpan.getURL(); + if (isUrlValid(url)) { + String anchor = parseAnchorValue(htmlBuilder, urlSpan); + attributions.add(new Attribution(anchor, url)); + } + } + + /** + * Invoked to validate if an url is valid to be included in the final attribution. + * + * @param url the url to be validated + * @return if the url is valid + */ + private boolean isUrlValid(String url) { + return isValidForImproveThisMap(url) && isValidForMapbox(url); + } + + /** + * Invoked to validate if an url is valid for the improve map configuration. + * + * @param url the url to be validated + * @return if the url is valid for improve this map + */ + private boolean isValidForImproveThisMap(String url) { + return withImproveMap || !url.equals(Attribution.IMPROVE_MAP_URL); + } + + /** + * Invoked to validate if an url is valid for the Mapbox configuration. + * + * @param url the url to be validated + * @return if the url is valid for Mapbox + */ + private boolean isValidForMapbox(String url) { + return withMapboxAttribution || !url.equals(Attribution.MAPBOX_URL); + } + + /** + * Parse the attribution by parsing the anchor value of html href tag. + * + * @param htmlBuilder the html builder + * @param urlSpan the current urlSpan + * @return the parsed anchor value + */ + private String parseAnchorValue(SpannableStringBuilder htmlBuilder, URLSpan urlSpan) { + int start = htmlBuilder.getSpanStart(urlSpan); + int end = htmlBuilder.getSpanEnd(urlSpan); + int length = end - start; + char[] charKey = new char[length]; + htmlBuilder.getChars(start, end, charKey, 0); + return stripCopyright(String.valueOf(charKey)); + } + + /** + * Utility to strip the copyright sign from an attribution + * + * @param anchor the attribution string to strip + * @return the stripped attribution string without the copyright sign + */ + private String stripCopyright(String anchor) { + if (!withCopyrightSign && anchor.startsWith("© ")) { + anchor = anchor.substring(2, anchor.length()); + } + return anchor; + } + + /** + * Invoked to manually add attributions + */ + private void addAdditionalAttributions() { + if (withTelemetryAttribution) { + attributions.add(new Attribution(Attribution.TELEMETRY, Attribution.TELEMETRY_URL)); + } + } + + /** + * Convert a string to a spanned html representation. + * + * @param html the string to convert + * @return the spanned html representation + */ + private static Spanned fromHtml(String html) { + Spanned result; + if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.N) { + result = Html.fromHtml(html, Html.FROM_HTML_MODE_LEGACY); + } else { + result = Html.fromHtml(html); + } + return result; + } + + /** + * Builder to configure using an AttributionParser. + *

+ * AttributionData, set with {@link #withAttributionData(String...)}, is the only required property to build + * the underlying AttributionParser. Other properties include trimming the copyright sign, adding telemetry + * attribution or hiding attribution as improve this map and Mapbox. + *

+ */ + public static class Options { + private boolean withImproveMap = true; + private boolean withCopyrightSign = true; + private boolean withTelemetryAttribution = false; + private boolean withMapboxAttribution = true; + private String[] attributionDataStringArray; + + public Options withAttributionData(String... attributionData) { + this.attributionDataStringArray = attributionData; + return this; + } + + public Options withImproveMap(boolean withImproveMap) { + this.withImproveMap = withImproveMap; + return this; + } + + public Options withCopyrightSign(boolean withCopyrightSign) { + this.withCopyrightSign = withCopyrightSign; + return this; + } + + public Options withTelemetryAttribution(boolean withTelemetryAttribution) { + this.withTelemetryAttribution = withTelemetryAttribution; + return this; + } + + public Options withMapboxAttribution(boolean withMapboxAttribution) { + this.withMapboxAttribution = withMapboxAttribution; + return this; + } + + public AttributionParser build() { + if (attributionDataStringArray == null) { + throw new IllegalStateException("Using builder without providing attribution data"); + } + + String fullAttributionString = parseAttribution(attributionDataStringArray); + AttributionParser attributionParser = new AttributionParser( + fullAttributionString, + withImproveMap, + withCopyrightSign, + withTelemetryAttribution, + withMapboxAttribution + ); + attributionParser.parse(); + return attributionParser; + } + + private String parseAttribution(String[] attribution) { + StringBuilder builder = new StringBuilder(); + for (String attr : attribution) { + if (!attr.isEmpty()) { + builder.append(attr); + } + } + return builder.toString(); + } + } +} diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/http/HTTPRequest.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/http/HTTPRequest.java index 32aa25099..9f887ab7c 100644 --- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/http/HTTPRequest.java +++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/http/HTTPRequest.java @@ -55,6 +55,7 @@ class HTTPRequest implements Callback { private HTTPRequest(long nativePtr, String resourceUrl, String etag, String modified) { mNativePtr = nativePtr; + Timber.e("requesting: %s",resourceUrl); try { HttpUrl httpUrl = HttpUrl.parse(resourceUrl); final String host = httpUrl.host().toLowerCase(MapboxConstants.MAPBOX_LOCALE); diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/AttributionDialogManager.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/AttributionDialogManager.java index 9ccff387f..2956d864e 100644 --- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/AttributionDialogManager.java +++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/AttributionDialogManager.java @@ -7,22 +7,20 @@ import android.content.DialogInterface; import android.content.Intent; import android.net.Uri; import android.support.annotation.NonNull; -import android.text.Html; -import android.text.SpannableStringBuilder; -import android.text.TextUtils; -import android.text.style.URLSpan; import android.view.View; import android.widget.ArrayAdapter; import android.widget.Toast; - import com.mapbox.mapboxsdk.R; +import com.mapbox.mapboxsdk.attribution.Attribution; +import com.mapbox.mapboxsdk.attribution.AttributionParser; import com.mapbox.mapboxsdk.camera.CameraPosition; import com.mapbox.mapboxsdk.style.sources.Source; import com.mapbox.services.android.telemetry.MapboxTelemetry; -import java.util.HashMap; -import java.util.LinkedHashMap; +import java.util.ArrayList; +import java.util.List; import java.util.Locale; +import java.util.Set; /** * Responsible for managing attribution interactions on the map. @@ -39,8 +37,8 @@ class AttributionDialogManager implements View.OnClickListener, DialogInterface. private final Context context; private final MapboxMap mapboxMap; - private String[] attributionKeys; - private HashMap attributionMap; + private String[] attributionTitles; + private Set attributionSet; AttributionDialogManager(@NonNull Context context, @NonNull MapboxMap mapboxMap) { this.context = context; @@ -50,18 +48,26 @@ class AttributionDialogManager implements View.OnClickListener, DialogInterface. // Called when someone presses the attribution icon on the map @Override public void onClick(View view) { - attributionMap = new AttributionBuilder(context, mapboxMap).build(); + attributionSet = new AttributionBuilder(mapboxMap).build(); showAttributionDialog(); } private void showAttributionDialog() { - attributionKeys = attributionMap.keySet().toArray(new String[attributionMap.size()]); + attributionTitles = getAttributionTitles(); AlertDialog.Builder builder = new AlertDialog.Builder(context); builder.setTitle(R.string.mapbox_attributionsDialogTitle); - builder.setAdapter(new ArrayAdapter<>(context, R.layout.mapbox_attribution_list_item, attributionKeys), this); + builder.setAdapter(new ArrayAdapter<>(context, R.layout.mapbox_attribution_list_item, attributionTitles), this); builder.show(); } + private String[] getAttributionTitles() { + List titles = new ArrayList<>(); + for (Attribution attribution : attributionSet) { + titles.add(attribution.getTitle()); + } + return titles.toArray(new String[titles.size()]); + } + // Called when someone selects an attribution or telemetry settings from the dialog @Override public void onClick(DialogInterface dialog, int which) { @@ -73,7 +79,7 @@ class AttributionDialogManager implements View.OnClickListener, DialogInterface. } private boolean isLatestEntry(int attributionKeyIndex) { - return attributionKeyIndex == attributionKeys.length - 1; + return attributionKeyIndex == attributionTitles.length - 1; } private void showTelemetryDialog() { @@ -105,7 +111,8 @@ class AttributionDialogManager implements View.OnClickListener, DialogInterface. } private void showMapFeedbackWebPage(int which) { - String url = attributionMap.get(attributionKeys[which]); + Attribution[] attributions = attributionSet.toArray(new Attribution[attributionSet.size()]); + String url = attributions[which].getUrl(); if (url.contains(MAP_FEEDBACK_URL)) { url = buildMapFeedbackMapUrl(mapboxMap.getCameraPosition()); } @@ -132,46 +139,24 @@ class AttributionDialogManager implements View.OnClickListener, DialogInterface. private static class AttributionBuilder { - private final HashMap map = new LinkedHashMap<>(); - private final Context context; private final MapboxMap mapboxMap; - AttributionBuilder(Context context, MapboxMap mapboxMap) { - this.context = context.getApplicationContext(); + AttributionBuilder(MapboxMap mapboxMap) { this.mapboxMap = mapboxMap; } - private HashMap build() { + private Set build() { + List attributions = new ArrayList<>(); for (Source source : mapboxMap.getSources()) { - parseAttribution(source.getAttribution()); + attributions.add(source.getAttribution()); } - addTelemetryEntryToAttributionMap(); - return map; - } - private void parseAttribution(String attributionSource) { - if (!TextUtils.isEmpty(attributionSource)) { - SpannableStringBuilder htmlBuilder = (SpannableStringBuilder) Html.fromHtml(attributionSource); - URLSpan[] urlSpans = htmlBuilder.getSpans(0, htmlBuilder.length(), URLSpan.class); - for (URLSpan urlSpan : urlSpans) { - map.put(resolveAnchorValue(htmlBuilder, urlSpan), urlSpan.getURL()); - } - } - } - - private String resolveAnchorValue(SpannableStringBuilder htmlBuilder, URLSpan urlSpan) { - int start = htmlBuilder.getSpanStart(urlSpan); - int end = htmlBuilder.getSpanEnd(urlSpan); - int length = end - start; - char[] charKey = new char[length]; - htmlBuilder.getChars(start, end, charKey, 0); - return String.valueOf(charKey); - } - - private void addTelemetryEntryToAttributionMap() { - String telemetryKey = context.getString(R.string.mapbox_telemetrySettings); - String telemetryLink = context.getString(R.string.mapbox_telemetryLink); - map.put(telemetryKey, telemetryLink); + return new AttributionParser.Options() + .withCopyrightSign(true) + .withImproveMap(true) + .withTelemetryAttribution(true) + .withAttributionData(attributions.toArray(new String[attributions.size()])) + .build().getAttributions(); } } } diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/snapshotter/MapSnapshot.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/snapshotter/MapSnapshot.java index eb4f94c42..38c149146 100644 --- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/snapshotter/MapSnapshot.java +++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/snapshotter/MapSnapshot.java @@ -28,7 +28,7 @@ public class MapSnapshot { } /** - * @return the bitmap + * @return the large */ public Bitmap getBitmap() { return bitmap; diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/snapshotter/MapSnapshotter.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/snapshotter/MapSnapshotter.java index 5deedc3e6..1c59bb468 100644 --- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/snapshotter/MapSnapshotter.java +++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/snapshotter/MapSnapshotter.java @@ -5,19 +5,31 @@ import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.graphics.Canvas; import android.graphics.Matrix; +import android.graphics.PointF; +import android.os.Handler; import android.support.annotation.NonNull; import android.support.annotation.Nullable; import android.support.annotation.UiThread; +import android.support.v4.content.res.ResourcesCompat; +import android.text.Html; import android.util.DisplayMetrics; +import android.view.View; +import android.view.ViewGroup; +import android.widget.TextView; import com.mapbox.mapboxsdk.R; +import com.mapbox.mapboxsdk.attribution.AttributionLayout; +import com.mapbox.mapboxsdk.attribution.AttributionMeasure; +import com.mapbox.mapboxsdk.attribution.AttributionParser; import com.mapbox.mapboxsdk.camera.CameraPosition; import com.mapbox.mapboxsdk.constants.Style; import com.mapbox.mapboxsdk.geometry.LatLngBounds; import com.mapbox.mapboxsdk.storage.FileSource; +import timber.log.Timber; + /** - * The map snapshotter creates a bitmap of the map, rendered + * The map snapshotter creates a large of the map, rendered * off the UI thread. The snapshotter itself must be used on * the UI thread (for access to the main looper) */ @@ -269,43 +281,126 @@ public class MapSnapshotter { * @param mapSnapshot the map snapshot to draw the overlay on */ protected void addOverlay(MapSnapshot mapSnapshot) { - Bitmap original = mapSnapshot.getBitmap(); - Canvas canvas = new Canvas(original); - addLogo(canvas, original); + Bitmap snapshot = mapSnapshot.getBitmap(); + Canvas canvas = new Canvas(snapshot); + int margin = (int) context.getResources().getDisplayMetrics().density * LOGO_MARGIN_DP; + drawOverlay(mapSnapshot, snapshot, canvas, margin); + } + + private void drawOverlay(MapSnapshot mapSnapshot, Bitmap snapshot, Canvas canvas, int margin) { + AttributionMeasure measure = getAttributionMeasure(mapSnapshot, snapshot, margin); + AttributionLayout layout = measure.measure(); + drawLogo(mapSnapshot, canvas, margin, layout); + drawAttribution(mapSnapshot, canvas, measure, layout); + } + + private AttributionMeasure getAttributionMeasure(MapSnapshot mapSnapshot, Bitmap snapshot, int margin) { + Logo logo = createScaledLogo(snapshot); + TextView longText = createTextView(mapSnapshot, false, logo.getScale()); + TextView shortText = createTextView(mapSnapshot, true, logo.getScale()); + + return new AttributionMeasure.Builder() + .setSnapshot(snapshot) + .setLogo(logo.getLarge()) + .setLogoSmall(logo.getSmall()) + .setTextView(longText) + .setTextViewShort(shortText) + .setMarginPadding(margin) + .build(); + } + + private void drawLogo(MapSnapshot mapSnapshot, Canvas canvas, int margin, AttributionLayout layout) { + if (mapSnapshot.isShowLogo()) { + drawLogo(mapSnapshot.getBitmap(), canvas, margin, layout); + } + } + + private void drawLogo(Bitmap snapshot, Canvas canvas, int margin, AttributionLayout placement) { + Bitmap selectedLogo = placement.getLogo(); + if (selectedLogo != null) { + canvas.drawBitmap(selectedLogo, margin, snapshot.getHeight() - selectedLogo.getHeight() - margin, null); + } + } + + private void drawAttribution(MapSnapshot mapSnapshot, Canvas canvas, + AttributionMeasure measure, AttributionLayout layout) { + // draw attribution + PointF anchorPoint = layout.getAnchorPoint(); + if (anchorPoint != null) { + drawAttribution(canvas, measure, anchorPoint); + } else { + Bitmap snapshot = mapSnapshot.getBitmap(); + Timber.e("Could not generate attribution for snapshot size: %s x %s." + + " You are required to provide your own attribution for the used sources: %s", + snapshot.getWidth(), snapshot.getHeight(), mapSnapshot.getAttributions()); + } + } + + private void drawAttribution(Canvas canvas, AttributionMeasure measure, PointF anchorPoint) { + canvas.save(); + canvas.translate(anchorPoint.x, anchorPoint.y); + measure.getTextView().draw(canvas); + canvas.restore(); + } + + private TextView createTextView(MapSnapshot mapSnapshot, boolean shortText, float scale) { + int textColor = ResourcesCompat.getColor(context.getResources(), R.color.mapbox_gray_dark, context.getTheme()); + int widthMeasureSpec = View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED); + int heightMeasureSpec = View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED); + TextView textView = new TextView(context); + textView.setLayoutParams(new ViewGroup.LayoutParams( + ViewGroup.LayoutParams.WRAP_CONTENT, + ViewGroup.LayoutParams.WRAP_CONTENT) + ); + textView.setSingleLine(true); + textView.setTextSize(10 * scale); + textView.setTextColor(textColor); + textView.setBackgroundResource(R.drawable.mapbox_rounded_corner); + textView.setText(Html.fromHtml(createAttributionString(mapSnapshot, shortText))); + textView.measure(widthMeasureSpec, heightMeasureSpec); + textView.layout(0, 0, textView.getMeasuredWidth(), textView.getMeasuredHeight()); + return textView; } /** - * Draw a logo on the canvas created from the map snapshot. + * Create the attribution string. * - * @param canvas the canvas to draw the bitmap on - * @param original the map snapshot image + * @param mapSnapshot the map snapshot to create the attribution for + * @param shortText indicates if the short variant of the string should be parsed + * @return the parsed attribution string */ - private void addLogo(Canvas canvas, Bitmap original) { - DisplayMetrics displayMetrics = context.getResources().getDisplayMetrics(); - float margin = displayMetrics.density * LOGO_MARGIN_DP; - Bitmap logo = createScaledLogo(original); - canvas.drawBitmap(logo, margin, original.getHeight() - logo.getHeight() - margin, null); + private String createAttributionString(MapSnapshot mapSnapshot, boolean shortText) { + AttributionParser attributionParser = new AttributionParser.Options() + .withAttributionData(mapSnapshot.getAttributions()) + .withCopyrightSign(false) + .withImproveMap(false) + .build(); + + return attributionParser.createAttributionString(shortText); } /** * Create a scaled logo for a map snapshot. * * @param snapshot the map snapshot where the logo should be placed on - * @return the scaled bitmap logo + * @return the scaled large logo */ - private Bitmap createScaledLogo(Bitmap snapshot) { + private Logo createScaledLogo(@NonNull Bitmap snapshot) { Bitmap logo = BitmapFactory.decodeResource(context.getResources(), R.drawable.mapbox_logo_icon, null); float scale = calculateLogoScale(snapshot, logo); Matrix matrix = new Matrix(); matrix.postScale(scale, scale); - return Bitmap.createBitmap(logo, 0, 0, logo.getWidth(), logo.getHeight(), matrix, true); + Bitmap helmet = BitmapFactory.decodeResource(context.getResources(), R.drawable.mapbox_logo_helmet, null); + Bitmap large = Bitmap.createBitmap(logo, 0, 0, logo.getWidth(), logo.getHeight(), matrix, true); + Bitmap small = Bitmap.createBitmap(helmet, 0, 0, helmet.getWidth(), helmet.getHeight(), matrix, true); + return new Logo(large, small, scale); } /** * Calculates the scale of the logo, only allow downscaling. * - * @param snapshot the bitmap of the map snapshot - * @param logo the bitmap of the mapbox logo + * @param snapshot the large of the map snapshot + * @param logo the large of the mapbox logo * @return the scale value */ private float calculateLogoScale(Bitmap snapshot, Bitmap logo) { @@ -315,7 +410,14 @@ public class MapSnapshotter { float prefWidth = logo.getWidth() / widthRatio; float prefHeight = logo.getHeight() / heightRatio; float calculatedScale = Math.min(prefWidth / logo.getWidth(), prefHeight / logo.getHeight()) * 2; - return calculatedScale < 1 ? calculatedScale : 1.0f; + if (calculatedScale > 1) { + // don't allow over-scaling + calculatedScale = 1.0f; + } else if (calculatedScale < 0.60f) { + // don't scale to low either + calculatedScale = 0.60f; + } + return calculatedScale; } /** @@ -324,14 +426,17 @@ public class MapSnapshotter { * * @param snapshot the generated snapshot */ - protected void onSnapshotReady(MapSnapshot snapshot) { - if (callback != null) { - if (snapshot.isShowLogo()) { - addOverlay(snapshot); + protected void onSnapshotReady(final MapSnapshot snapshot) { + new Handler().post(new Runnable() { + @Override + public void run() { + if (callback != null) { + addOverlay(snapshot); + callback.onSnapshotReady(snapshot); + reset(); + } } - callback.onSnapshotReady(snapshot); - reset(); - } + }); } /** @@ -364,4 +469,28 @@ public class MapSnapshotter { @Override protected native void finalize() throws Throwable; + + private class Logo { + private Bitmap large; + private Bitmap small; + private float scale; + + public Logo(Bitmap large, Bitmap small, float scale) { + this.large = large; + this.small = small; + this.scale = scale; + } + + public Bitmap getLarge() { + return large; + } + + public Bitmap getSmall() { + return small; + } + + public float getScale() { + return scale; + } + } } diff --git a/platform/android/MapboxGLAndroidSDK/src/main/res/drawable-hdpi/mapbox_logo_helmet.png b/platform/android/MapboxGLAndroidSDK/src/main/res/drawable-hdpi/mapbox_logo_helmet.png new file mode 100644 index 0000000000000000000000000000000000000000..2629afe6a3834bd47520f8b5829cec1cdfe373fb GIT binary patch literal 1650 zcmV-&295cNP)kwVb{wQR;A2n<-dq9rKcHsZ42(qxHQLY6o+hAm`& z=v)w-8DZnU5gau50cuDLG;9mbkvTUAP*H}%GElIsYlRlDuPyYo`{#8j&$brzBsaPD zymRmQy>svR;vh0{g62E`G5{L^hye%z2mp8ixR~(>fC<1nq9jffGExBB03-#=3xz^X zdU`rW zw0mi3$zm`VM$ex=KiS^iK2Os$05|~{0L-lyfE0iVfJmWG@Xnk$Q&3n~SWXZG8I4)( zcKf}?#>VcGCr_Ff)*S$20Q}Ja*a+Y)05PXdok~4=^ytT2F83uo1I^6L4DZ^t>+;OZ z%qjpgfa~ll;e`0}5|SjjJv}{nd-m-40MAKFOH1aes;ZX0zP@DuGXVY!2Y?Tt6o5#t z*XNg&l|8re0J+_6dr?u*H>0DYZstw=9SXpk05&%?G;FG^t^M?AhtAH{C>YV z+@L7Rc;du~dI0-FjlFyKR$HysUqkKf>+AcDktlE{1t2Dv#DbKRl#Fo7 z=jP^a_xAQK2G$CNBF11aWX;abenFC?oB>nea=EIzy1G($JRXPflvRhr@kAIdE-p@B zrm+M7AxV-D3WcwP128l+G#W(^4-O87bi2cc4_l2!qn^3%p6>2$XYhBWQpuM} zrE>N@r_7cHR_c)eaKl68iLhE}$2-Fk)1-@SXcq@tqY-B5d`rl!^aumQlx z$cQ0~1?VX90?o2Y!lg@>KH+k?Lbj~W=kvC;wLN6gvV&l1IGjCu_HL-dV`5_X(Pll8 zB>f#79Xs0F+dmVF#R*|*gi(vd;sx+9@CNJvoSmJWcAL#M#ooZ<@kAn#h=`;(J3Cv@ z+1Z)ra5z5KYPI`Gk_;=a)9G$7(+9!HC(Q<@Jq)=yba5^78WcLizMl9^CDknwl$&+1-rtN9*Z~6acmZ zAe2fazqz?NCoeCrATBO0DclB{rdOw@r$=-;-Ho88WPwpmJxgyWV*0{O0Y+I_nM9+} z#3v;s#U>^u#!(dIwpc97Mx$}Dt*z}}tJNAvY!rZ70PcnAh}P4b2CC*%raO*{AV&kR wFhOSaX^rW60I;nR%QUY-R(tM)2BUc#5e;F4WnmA}1mc%i^ScUeMg`lLt~}K;-Pri z#U6X`B!!Y@E-?h5rHAdVC!y8WicnCjM$07G1*=J#Kw`}FG81OgMEl^u@ZS6X-uH&@ z`+pX?kGB9f-~`?T-T-Pq6(|6I0e^QAS~{%t0S^Ev6bkjrvOMPTcSzD`OgZ4!gEd2a@}U3P+6~ZXG|q~};%}WUOr=t*KtSiT#=}@Fw%AEfEEa!V zT3Y(tYPHJ1j3h~q*Vfj)tk>(u=7?jl*dp-I01f~%`F#GTcHrgZ2&&QfW5uFZ|!#bcc-VP4Xf2E*zIh{xkDK@jd4XLL?Y0IJz+ z_LUiMeSKZ6*Xvq)^dlo9Ka@(PrvB94<>lpB^S;ih3P2%|NF2Xr2o{UbspJe`C=_~o ze}8{b6h)_bU*{AodY*oys%ms_aIlqDUa$9yY&Kgn(rJ8r+&(ce;h375`e1Bq?EUr& zbGh6fk|eDIKej3=5{bl{&8BKj{(8Nht<`FW?du&pK%JYL`_x=f0CpgtD9Y3SVTtGOPOg_0QGINBa*K`s;WMVL?UrLLf2i+ zZwGvUdvbEJUzX*O;o;$y^Pioay-Xw$rn*aa+ literal 0 HcmV?d00001 diff --git a/platform/android/MapboxGLAndroidSDK/src/main/res/drawable-xhdpi/mapbox_logo_helmet.png b/platform/android/MapboxGLAndroidSDK/src/main/res/drawable-xhdpi/mapbox_logo_helmet.png new file mode 100644 index 0000000000000000000000000000000000000000..942d78ec585d996a465ff975b83de401ab84d001 GIT binary patch literal 2184 zcmV;32zU31P)#}% zUrmjY7^mPyU=wuRrbsZXyA38P6#<*oL>v{7w=9hE7#v`E3}qPRacBC^z1s`U9cGaA zB=?VVe&=`2=bZC9=lss^^6-8s2tXJBF#wYF0f341835=2%x$zI-Ui{KX+VL8y2~`M z)>CLtK>YxG0zkG_kd>7sjEjpCL`6jjBO)S105Cp2zWCOg2m~LwoW|wlnXay`CykAbeOIquoiUkA z4q9XfFhm1W?*mE#NCyzi6kND)L3Zreu{@DT^wW*l+S1a}+nSo1n`h3P8D$lJ58xqy zm5qP~(U1ZFC@3fhQmfU!mq;YB*n~7QGxO@?$&=sI)z!_i?Dty$^PYeP0@zD0JF2Rx zK2|D~r368EVH1<>+PBu;&v)uRZ-~Z7e0U$j+J-5BRJ%i2)Xp`fw1!E^UfJgwi zeED)ret!O8Pdl|(EXK*n$yYj^ZpdIT%*>j4ve?kj(ARhG-kqai2>^O$ zOD_cQTL8qNLx+Ou>gxXDiA`#?+833Tm2KCqU7K22S+TQayLRm&Pn|loEjKqe*T=_4 z?80Vkg@uI|>+9=h>7(m50OMNF6aY~G@b>N75~)-g=MEr6QI^We$}dizK0UHt-LSAQ zuY33I{U$y>K9j4?)YQ~~R4V;~&b|iF!M4#r2J-y*^D=iK?RL9esZ@UE4kQ5RbUNG4 zojY&0w6uK9RYxL`#FdwqN731z0SI8v=q~_l^Y!&5^m_dt#A0!{I~~{8*Vh#k6ufjM z3l9(HXJ=;%uUxsZ=uF<*+nW;~AOEQ{nZaPtNu|=yXcKw`pp%)=FaRhlEDUiMvahf2 z5f>x?+`M@+_Tt5hzvPnd+qbXTY&JU`gjg&ND=sb$VaCiXeIUJ&aNxiJcbD8zQc}{w zB@YP+AruNlj#w;CQ!14rE;G1w>sAw28~OS9v8+uVKrpij07*$n$?kx5cX$7%qoc#f zC2wqOjN$Qkp|s6saMe?*)k9peq@*MTdmj=2L;#SQnkp2DL{fJ^&z?Q|$XWUB-MhC8 z4-cngWn~roa2E##X3ovc<&>3`y>l!*d-lw7=i(@0Zop)oPo~#`ZN$t*x!K!NI|Q&&bFan4X@d z)-17zt1lK4Nw97hhdZDejb`4J{P^+X`r6vsMkYTpGID$G-n~Qf^YibtFBA$1iA3_T zi(AjZ_MS`tFflRV*4w4CvvYa9I%Q>LQ&y{W0Km%O!-qS$>K!?9MB?r3&AB&NOr{?| zwOXxlJpilKY8o3Gv$!*$8#iwJdvtWPxuc_lv;K(_Cw{e#qr)(nycp2_{{CfmK;8AG zii?XUHcY*~XkqB8?SpjKjY0{LG6lp?2LXy9~f0(DU zUr|x<4Gqb#t$KLRV*^yJ>QA zvO6p+?4Mju5di36;y)^ts)?c~&K=I<@!;d*4w^}l97#({Q{V$8wOajob#?U=ogDx$!S$}60q_w3VOv|C>pPT^k|N*iAQ?qbX0=-Vc~MbOKPyP~fSIWEKtTtnbO3$= zU`tzD+d_AD_w&@$)Bv$qEZq#qiHV7q#l^+fST<>-As4u!$y~`yhp&SH2nPoTS1w(; z^wMIn^d%-HN=cFo+z8;@+}!JP=g$3O|Ni}t1_uY3lVzG~COrv_699Gsh-C)G=ks|5 z1qHze4<6i>oSd927K==$~R-?I*LioSVz*4pGoK*0(JCeUG) zReFhuiR6wQJILthXklbzq#po`jg2j7wOV6;f4}L)ix+F%LkE4B_t5dsb<;+E--v10 zZ~*=u>i!r1|9xZdM3MKNdqPA5i?I5K7>}MQ=7-oK4QSYCNB;wU&KoYTY$uxl0000< KMNUMnLSTYAF%(k( literal 0 HcmV?d00001 diff --git a/platform/android/MapboxGLAndroidSDK/src/main/res/drawable-xxhdpi/mapbox_logo_helmet.png b/platform/android/MapboxGLAndroidSDK/src/main/res/drawable-xxhdpi/mapbox_logo_helmet.png new file mode 100644 index 0000000000000000000000000000000000000000..947d5a2a3075ada1740e516251df197a12d2c75e GIT binary patch literal 3389 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 Tusn%@00000NkvXXu0mjf1RbDm literal 0 HcmV?d00001 diff --git a/platform/android/MapboxGLAndroidSDK/src/main/res/drawable-xxxhdpi/mapbox_logo_helmet.png b/platform/android/MapboxGLAndroidSDK/src/main/res/drawable-xxxhdpi/mapbox_logo_helmet.png new file mode 100644 index 0000000000000000000000000000000000000000..bec38cedc7cf0159b7d257c4905601317677a188 GIT binary patch literal 4468 zcmWky1ymGW7#&Jjfu*}dkdki61?ldN1qCTVN?H~WY5nPL>FyA4rIB3HB}HivkZ%5Q z=DeLVZ|2PT-uK<_-upI6M@yOTA?-r|00>o86!gHW!M}m`0Q{wQCjJIq9@wfYD**TZ z&b-c&L~sW3M#a<<0PxBF4GbV7iyEB7^-|ST#9hUQ5MxRl<6&C>011Ywf}DZx{Cc*Z zj=_1#z}Lz){9=~Dz8NW`dBE>oliq%a=g zOq{l3W&?0GglaQo@8&Tf03*gGlO5Ct3_qWBQNk2~Zk4!3t#C_AQ%+7!R}vBuMj`u= zG;zP9HC0zv*PK9^mH6RxiFy-mT!5c8jy7AXgbh#rb`Raqys@#7(%#;Fc64;~F_B$c zW_M?Yb_{WXjg$tYUr=z+!2pEm+MrZvrRA4d$KU;NcQ!UQ->j^x8cew<$5Xz?DHT>X zH8mYAcLvNTe`2hX4!#R)p+I{9cT_M!G*2u|-fy56pq4c$$jf`QoNE2<84EMBO?*Yg zu2;aBou#Ga>0Gtt)2oe4H>dLQ^2X;+aNk4-e^X*8#fDwL&7Of@i-?Vl9Xvcd#1_pQ z?ZJ!w2A@btO|?eXy-@zU^ut9c^1!SZKT|k~BFvnWY#*NkNKj)0kIwIV;~p$w7yd z=c;+N*y_GlUte#Cfq@ZoNUQ$(^`C6N;|;qq1FkTfgPmp(tmLL@3u+1tH#av|Lqo%z zT__oFb9?*Zv);Bp6B85H@i;DwL!VXx2PT|sZ)9Xt9NqUzr$cUXaq$MeF_O;CC?TIzQA)%q6igI#t zF^3=2U@#MF({qqV?|=(E0>{cjeEgW> zqoaM5qRH}lGUL{Mrq$gnT2s5SxcaKF|^(3QQBn z>TCf4fr6Wxn`{u_sO3jYvhOTXl9Rpf2jf|e=I6~ub+%uPWpS!#Yg4havUaR*Zc+{X zXFSv3g04Tn$H$-9NCnm~x0)y&2sEZBu&zeIX3zw&Eq8{E{_(@)a>m$t{qAU(kHKr$ zq`^M!xGU(Il$A7U6uvM&|5-*xM)~B*ctnQ=Ve6dHLFdRu_+J<<(Sv^QSionMBkug- zb0E|4_RoB11QF9b`AN{p7D;@3yzUYj?dSF_6h|K$GX#IBJ}WCrDljl`4UI;tHK_kq zy*3a^`oR0%v~g*C{FAYv;VBbl2s}#~E)#rbQTOililwcsZ9JXV988VtQu}F+2{*K5 zbzmO~fn3&r9hiQ7>LD0u>z?F;(Kp=}MaE7!k6$dG?@LchdsQe6$3$50&Rt($=koIM zb}6(F$mAXb?)?zps!$@(f3x&>0)9--%*+f0<9zG5!)MjuU|Iii2$HU0KgVem`iPi; z!SW^kG}w(ro||Ldd9CCxAsj@A8o!;}>vQE=vA0wi$laj@JO0YO&Q^JP`S@59AWnOTWP2w#S%icdEZGv1 zQA3$&Y1E2;-LxlZuE}tIVT;BvV#G!t4=cOxd2z@@h{6 zi^Exwrqb`jxlJ|J1oX#`A2&oh@DMDSCm$cEczD#)eH!qDlWzT4XgU7U-u|H~n;weG zu9bDj!_BP`79QSaTj#5&uRpagoXST9o!fMCc21mZWsg`}ds&`tP1W4Ciw%InPI0VA&dmLvSyX1GoXZ+`uX|YEiEnOR+~21Bnwm~&vR~CB9q5ZbTwPrWw(I0qR*saTP7YUlmeq=mR>0KV zhxe>r%*&hL%CEa#?Me^IXE@2Dhrt5y{x`f%c@4hk%9Gu_w76JG{TF@9aGm;? z7*9dtn=m!O2ccJE9960d3kxx8Yiml%$^*Gt*%D3G6*IGw5MB{6u}xMsw*3rY$H};V zK)_X(vgyV)8+QsJ`9v6PswtB@PCapUb~ZmYHfB?0%YxUPmXUF#z(LL^@pkV=S67#e zvy!bQSeL%m*4CP!pdkErx2MJx1twl0X7Jv^X&pB9Ra!ba$AujKPDV#Z$5AL0s$6Z+ z<}s)zQDtOKM?rDgr0}>cJ2$t6#(v7X0Fo3jQWBOyW@htb z66>QGBI;YKs{(OaR`{`AE@>NSqf5P3#gC){FLe40OzFg2T|`@e`i2HReT~0nPrx8$ zL|Z2fgc{7$2>-oBA}( z_hNb3s{h=ue8%YosBIs=!5vInTp3>D!a-<>jwTPi6y#D`N`e*XIpUHL)u0^w;kc@* zs%4Vyzj|q!%ru?dZgQjpievhInKmyz*VNREc#>B`K-<^XmrWpYX%zq%awUIgY!o)r zE$~_P8}Pn9`$PA-GXfM2z4S0HQ4MzHwCiO)ywF-dxF9vbgIMOj$H!#!pm!kqG|;e( z#0q^h4a$arTr!ml;B+Je7X~9DdL0C?F<_h9jb%Oi*y6gR=IQSK*A{sl0IPeUKnS}P zjJ^LJX{e`nG&ma#x{X)dNU+#N0lK;ae!kJN|-|qkhn+EVFCp-0bh}UQ;ebUj}x)X@ot% z#*X|4Wnp3ABvdD$og;PG+1S|V!$J6`XmS#46;g99s)yk$UG6F4n+;G#DQX>E-MEUw$Z^Y2?V&@t;qm&?MUy!Lgv%Np}Ry^aqXHpG7H}G8WxPnnVIBFH@~ zDk`ckdm>NpJrWI5`BIjgR&{uS?l;ooW1U^h%zp3J6sOM$WoD96y)U7?tsn{$qdj^-Wc z>wAJ~i`UE)y`&@fFp!*_OxtE5lLZlY%*y)yivz0QuP5lah>3}RiUeJq0H8p?0=NN2 zHP_{ibaQKKw|DnSX=9;R`lX^g3h}qwh^|IZ)I8%=)?9zrEG|q^j8tEECA%1aAWkWb(PeTU5@jN-?NcTS#p55whC z)6*|yCBf?27UuJLfx0LzDf!zwfhqXruNyhPb$z!E?ZY(Ds4hVf&{_W{=)E)Tcfn5D zW?>~`_dRKfJe3ycs7LfnZlG7>+-LjC4J&vZgfpsxDbql{v5bm}qAI=eNkCOpP3ZY3 z+tc!IPNGox#$^T~5C}v-!_|PH;^=ZS_m%ytSNf(L=YSUhE(ahL;YhL#6n0fsYW#!U z7y^Mny9ti$?d>IkL|YjBio-@?E=uo%o)8IQJd3V#wAufKA5MH+ZI8AiKjNBRO?wBt~ zbmA}ln1!XGNN>AJ496bqSzTY>3t4Vt5)^03EDty&CXd(yZFUdHVhw6)Y91>H`y3&# ze(ID^w|J~tC!FRcSlmm6qGUDw!h(V$&_i8_v1Bso&TH}N z?D$v}zxc2j0NiiH7Bn;*pMy36*R#!Hbr+^rh>}_W_cU<8C@2xuhz3cSK8ik)OU{9$M_E?46$9(C*7!qgJ|2|TslnhsW zZGV3Z-R8NO1ghXAX%uU$T?qmK?%qU2L=3ZJgS*zg9CRi6ynPFu@sfl`JI{Ae#th-w ze)A$lo7etYV*KY?x3{+w($dm^;NbgbplR-ii_hQm_Vy;)Uu@I&{D}-H#wB7jX_&pU zn=Zv5=uGNkr0vEf#zgMCm;s5<8C`Fug-^--h6oCMo2tTUMaHIa_y#=IjxP&R%}qeV z;Exx&1xDlqDhYGqkXc1Vg{0d`*OK4q&W!Ad|LvQ+>BN4C!d>G(G+~}>xZDt>gDP=@ z=EhihUxTw!I4k2cNpYbsYu=A;A-ymuh@OPW=PhrH`IU`R=4;aflF|h{m|Un!@eBQr z-g&o*Ff(jEYn{F%&Y8IT;Ae)CN?QzSFEC2m#F1Xa-NSPw>0jmJ=4!T~XAeb29b^aZ ZF(A6;@vZtL|Nb8VR28)ps^#IK{{t)HmdXGC literal 0 HcmV?d00001 diff --git a/platform/android/MapboxGLAndroidSDK/src/main/res/drawable/mapbox_rounded_corner.xml b/platform/android/MapboxGLAndroidSDK/src/main/res/drawable/mapbox_rounded_corner.xml new file mode 100644 index 000000000..c4dbfb3d8 --- /dev/null +++ b/platform/android/MapboxGLAndroidSDK/src/main/res/drawable/mapbox_rounded_corner.xml @@ -0,0 +1,10 @@ + + + + + + \ No newline at end of file diff --git a/platform/android/MapboxGLAndroidSDK/src/main/res/values/colors.xml b/platform/android/MapboxGLAndroidSDK/src/main/res/values/colors.xml index b51c890e5..19007f503 100644 --- a/platform/android/MapboxGLAndroidSDK/src/main/res/values/colors.xml +++ b/platform/android/MapboxGLAndroidSDK/src/main/res/values/colors.xml @@ -1,5 +1,6 @@ + #5F5F5F #7D7F80 #1E8CAB diff --git a/platform/android/MapboxGLAndroidSDK/src/test/java/com/mapbox/mapboxsdk/attribution/AttributionParseTest.java b/platform/android/MapboxGLAndroidSDK/src/test/java/com/mapbox/mapboxsdk/attribution/AttributionParseTest.java new file mode 100644 index 000000000..f25cf1b7d --- /dev/null +++ b/platform/android/MapboxGLAndroidSDK/src/test/java/com/mapbox/mapboxsdk/attribution/AttributionParseTest.java @@ -0,0 +1,309 @@ +package com.mapbox.mapboxsdk.attribution; + +import com.mapbox.mapboxsdk.BuildConfig; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.robolectric.RobolectricTestRunner; +import org.robolectric.annotation.Config; + +import java.util.Set; + +import static junit.framework.Assert.assertEquals; + +@RunWith(RobolectricTestRunner.class) +@Config(constants = BuildConfig.class) +public class AttributionParseTest { + + private static final String STREETS_ATTRIBUTION = "© Mapbox © OpenStreetMap Improve this map\n"; + private static final String SATELLITE_ATTRIBUTION = "© Mapbox © OpenStreetMap Improve this map © DigitalGlobe\n"; + + @Test + public void testParseAttributionStringSatellite() throws Exception { + AttributionParser attributionParser = new AttributionParser.Options() + .withAttributionData(SATELLITE_ATTRIBUTION) + .build(); + + Set attributionList = attributionParser.getAttributions(); + assertEquals("Size of list should match", 4, attributionList.size()); + + int counter = 0; + for (Attribution attribution : attributionList) { + switch (counter) { + case 0: + assertEquals("URL mapbox should match", "https://www.mapbox.com/about/maps/", attribution.getUrl()); + assertEquals("Title mapbox should match", "© Mapbox", attribution.getTitle()); + break; + case 1: + assertEquals("URL openstreetmap should match", "http://www.openstreetmap.org/about/", attribution.getUrl()); + assertEquals("Title openstreetmap should match", "© OpenStreetMap", attribution.getTitle()); + break; + case 2: + assertEquals("URL improve map should match", "https://www.mapbox.com/map-feedback/", attribution.getUrl()); + assertEquals("Title improve map should match", "Improve this map", attribution.getTitle()); + break; + case 3: + assertEquals("URL digital globe should match", "https://www.digitalglobe.com/", attribution.getUrl()); + assertEquals("Title digital globe should match", "© DigitalGlobe", attribution.getTitle()); + break; + } + counter++; + } + } + + @Test + public void testParseAttributionStringStreets() throws Exception { + AttributionParser attributionParser = new AttributionParser.Options() + .withAttributionData(STREETS_ATTRIBUTION) + .build(); + + Set attributionList = attributionParser.getAttributions(); + assertEquals("Size of list should match", 3, attributionList.size()); + + int counter = 0; + for (Attribution attribution : attributionList) { + switch (counter) { + case 0: + assertEquals("URL mapbox should match", "https://www.mapbox.com/about/maps/", attribution.getUrl()); + assertEquals("Title mapbox should match", "© Mapbox", attribution.getTitle()); + break; + case 1: + assertEquals("URL openstreetmap should match", "http://www.openstreetmap.org/about/", attribution.getUrl()); + assertEquals("Title openstreetmap should match", "© OpenStreetMap", attribution.getTitle()); + break; + case 2: + assertEquals("URL improve map should match", "https://www.mapbox.com/map-feedback/", attribution.getUrl()); + assertEquals("Title improve map should match", "Improve this map", attribution.getTitle()); + break; + } + counter++; + } + } + + @Test + public void testParseAttributionWithoutMapbox() throws Exception { + AttributionParser attributionParser = new AttributionParser.Options() + .withAttributionData(STREETS_ATTRIBUTION) + .withMapboxAttribution(false) + .build(); + + Set attributionList = attributionParser.getAttributions(); + assertEquals("Size of list should match", 2, attributionList.size()); + + int counter = 0; + for (Attribution attribution : attributionList) { + switch (counter) { + case 0: + assertEquals("URL openstreetmap should match", "http://www.openstreetmap.org/about/", attribution.getUrl()); + assertEquals("Title openstreetmap should match", "© OpenStreetMap", attribution.getTitle()); + break; + case 1: + assertEquals("URL improve map should match", "https://www.mapbox.com/map-feedback/", attribution.getUrl()); + assertEquals("Title improve map should match", "Improve this map", attribution.getTitle()); + break; + } + counter++; + } + } + + @Test + public void testParseAttributionArrayString() throws Exception { + AttributionParser attributionParser = new AttributionParser.Options() + .withAttributionData(new String[] {STREETS_ATTRIBUTION, "", SATELLITE_ATTRIBUTION}) + .build(); + Set attributionList = attributionParser.getAttributions(); + assertEquals("Size of list should match", 4, attributionList.size()); + + int counter = 0; + for (Attribution attribution : attributionList) { + switch (counter) { + case 0: + assertEquals("URL mapbox should match", "https://www.mapbox.com/about/maps/", attribution.getUrl()); + assertEquals("Title mapbox should match", "© Mapbox", attribution.getTitle()); + break; + case 1: + assertEquals("URL openstreetmap should match", "http://www.openstreetmap.org/about/", attribution.getUrl()); + assertEquals("Title openstreetmap should match", "© OpenStreetMap", attribution.getTitle()); + break; + case 2: + assertEquals("URL improve map should match", "https://www.mapbox.com/map-feedback/", attribution.getUrl()); + assertEquals("Title improve map should match", "Improve this map", attribution.getTitle()); + break; + case 3: + assertEquals("URL digital globe should match", "https://www.digitalglobe.com/", attribution.getUrl()); + assertEquals("Title digital globe should match", "© DigitalGlobe", attribution.getTitle()); + break; + } + counter++; + } + } + + @Test + public void testHideImproveThisMapAttributionArrayString() throws Exception { + AttributionParser attributionParser = new AttributionParser.Options() + .withAttributionData(SATELLITE_ATTRIBUTION) + .withImproveMap(false) + .build(); + Set attributionList = attributionParser.getAttributions(); + assertEquals("Size of list should match", 3, attributionList.size()); + + int counter = 0; + for (Attribution attribution : attributionList) { + switch (counter) { + case 0: + assertEquals("URL mapbox should match", "https://www.mapbox.com/about/maps/", attribution.getUrl()); + assertEquals("Title mapbox should match", "© Mapbox", attribution.getTitle()); + break; + case 1: + assertEquals("URL openstreetmap should match", "http://www.openstreetmap.org/about/", attribution.getUrl()); + assertEquals("Title openstreetmap should match", "© OpenStreetMap", attribution.getTitle()); + break; + case 2: + assertEquals("URL digital globe should match", "https://www.digitalglobe.com/", attribution.getUrl()); + assertEquals("Title digital globe should match", "© DigitalGlobe", attribution.getTitle()); + break; + } + counter++; + } + } + + @Test + public void testParseHideCopyrightAttributionArrayString() throws Exception { + AttributionParser attributionParser = new AttributionParser.Options() + .withAttributionData(STREETS_ATTRIBUTION, "", SATELLITE_ATTRIBUTION) + .withCopyrightSign(false) + .build(); + Set attributionList = attributionParser.getAttributions(); + assertEquals("Size of list should match", 4, attributionList.size()); + + int counter = 0; + for (Attribution attribution : attributionList) { + switch (counter) { + case 0: + assertEquals("URL mapbox should match", "https://www.mapbox.com/about/maps/", attribution.getUrl()); + assertEquals("Title mapbox should match", "Mapbox", attribution.getTitle()); + break; + case 1: + assertEquals("URL openstreetmap should match", "http://www.openstreetmap.org/about/", attribution.getUrl()); + assertEquals("Title openstreetmap should match", "OpenStreetMap", attribution.getTitle()); + break; + case 2: + assertEquals("URL improve map should match", "https://www.mapbox.com/map-feedback/", attribution.getUrl()); + assertEquals("Title improve map should match", "Improve this map", attribution.getTitle()); + break; + case 3: + assertEquals("URL digital globe should match", "https://www.digitalglobe.com/", attribution.getUrl()); + assertEquals("Title digital globe should match", "DigitalGlobe", attribution.getTitle()); + break; + } + counter++; + } + } + + @Test + public void testOutputWithoutCopyRightString() throws Exception { + AttributionParser attributionParser = new AttributionParser.Options() + .withAttributionData(STREETS_ATTRIBUTION) + .withCopyrightSign(false) + .withImproveMap(false) + .build(); + + assertEquals( + "Attribution string should match", + "© Mapbox / OpenStreetMap", + attributionParser.createAttributionString() + ); + } + + + @Test + public void testOutputWithCopyRightString() throws Exception { + AttributionParser attributionParser = new AttributionParser.Options() + .withAttributionData(STREETS_ATTRIBUTION) + .withImproveMap(false) + .build(); + + assertEquals( + "Attribution string should match", + "© Mapbox / © OpenStreetMap", + attributionParser.createAttributionString() + ); + } + + @Test + public void testOutputWithoutCopyRightWithoutMapboxString() throws Exception { + AttributionParser attributionParser = new AttributionParser.Options() + .withAttributionData(STREETS_ATTRIBUTION) + .withCopyrightSign(false) + .withImproveMap(false) + .withMapboxAttribution(false) + .build(); + + assertEquals( + "Attribution string should match", + "© OpenStreetMap", + attributionParser.createAttributionString() + ); + } + + @Test + public void testOutputWithCopyRightWithoutMapboxString() throws Exception { + AttributionParser attributionParser = new AttributionParser.Options() + .withAttributionData(STREETS_ATTRIBUTION) + .withImproveMap(false) + .withMapboxAttribution(false) + .build(); + + assertEquals( + "Attribution string should match", + "© OpenStreetMap", + attributionParser.createAttributionString() + ); + } + + @Test + public void testOutputSatelliteString() throws Exception { + AttributionParser attributionParser = new AttributionParser.Options() + .withAttributionData(STREETS_ATTRIBUTION, SATELLITE_ATTRIBUTION, "blabla", "") + .withImproveMap(false) + .withCopyrightSign(false) + .withMapboxAttribution(false) + .build(); + + assertEquals( + "Attribution string should match", + "© OpenStreetMap / DigitalGlobe", + attributionParser.createAttributionString() + ); + } + + @Test + public void testShortOpenStreetMapString() throws Exception { + AttributionParser attributionParser = new AttributionParser.Options() + .withAttributionData(STREETS_ATTRIBUTION, SATELLITE_ATTRIBUTION, "blabla", "") + .withImproveMap(false) + .withCopyrightSign(false) + .withMapboxAttribution(false) + .build(); + + assertEquals( + "Attribution string should match", + "© OSM / DigitalGlobe", + attributionParser.createAttributionString(true) + ); + } + + @Test + public void testShortOpenStreetMapWithoutCopyrightString() throws Exception { + AttributionParser attributionParser = new AttributionParser.Options() + .withAttributionData(STREETS_ATTRIBUTION, SATELLITE_ATTRIBUTION, "blabla", "") + .withImproveMap(false) + .withCopyrightSign(false) + .build(); + + assertEquals( + "Attribution string should match", + "© Mapbox / OSM / DigitalGlobe", + attributionParser.createAttributionString(true) + ); + } +} diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/snapshot/MapSnapshotterActivity.java b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/snapshot/MapSnapshotterActivity.java index 245786e1d..c4fe93d20 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/snapshot/MapSnapshotterActivity.java +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/snapshot/MapSnapshotterActivity.java @@ -69,7 +69,7 @@ public class MapSnapshotterActivity extends AppCompatActivity { .withPixelRatio(1) // Optionally the style - .withStyle((column + row) % 2 == 0 ? Style.TRAFFIC_DAY : Style.DARK); + .withStyle((column + row) % 2 == 0 ? Style.MAPBOX_STREETS : Style.DARK); // Optionally the visible region if (row % 2 == 0) { diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/snapshot/MapSnapshotterMarkerActivity.java b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/snapshot/MapSnapshotterMarkerActivity.java index 781e7b633..b690f18b6 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/snapshot/MapSnapshotterMarkerActivity.java +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/snapshot/MapSnapshotterMarkerActivity.java @@ -9,14 +9,12 @@ import android.support.v7.app.AppCompatActivity; import android.view.View; import android.view.ViewTreeObserver; import android.widget.ImageView; - import com.mapbox.mapboxsdk.camera.CameraPosition; import com.mapbox.mapboxsdk.constants.Style; import com.mapbox.mapboxsdk.geometry.LatLng; import com.mapbox.mapboxsdk.snapshotter.MapSnapshot; import com.mapbox.mapboxsdk.snapshotter.MapSnapshotter; import com.mapbox.mapboxsdk.testapp.R; - import timber.log.Timber; /** @@ -46,7 +44,7 @@ public class MapSnapshotterMarkerActivity extends AppCompatActivity implements M getApplicationContext(), new MapSnapshotter .Options(Math.min(container.getMeasuredWidth(), 1024), Math.min(container.getMeasuredHeight(), 1024)) - .withStyle(Style.TRAFFIC_DAY) + .withStyle(Style.OUTDOORS) .withCameraPosition(new CameraPosition.Builder().target(new LatLng(52.090737, 5.121420)).zoom(15).build()) ); mapSnapshotter.start(MapSnapshotterMarkerActivity.this); @@ -54,6 +52,12 @@ public class MapSnapshotterMarkerActivity extends AppCompatActivity implements M }); } + @Override + protected void onStop() { + super.onStop(); + mapSnapshotter.cancel(); + } + @Override public void onSnapshotReady(MapSnapshot snapshot) { Timber.i("Snapshot ready"); diff --git a/platform/android/dependencies.gradle b/platform/android/dependencies.gradle index eadf7aea5..0094b7928 100644 --- a/platform/android/dependencies.gradle +++ b/platform/android/dependencies.gradle @@ -25,6 +25,7 @@ ext { // unit test junit : 'junit:junit:4.12', mockito : 'org.mockito:mockito-core:2.10.0', + robolectric : 'org.robolectric:robolectric:3.5.1', // instrumentation test testRunner : "com.android.support.test:runner:${testRunnerVersion}", From addefe539ac6ad94e4d8526f3cc1da2114ac0585 Mon Sep 17 00:00:00 2001 From: Fabian Guerra Soto Date: Tue, 14 Nov 2017 13:37:45 -0500 Subject: [PATCH 06/92] [ios] Fix toCamera.centerCoordinate in shouldChangeFromCamera (#10433) * [ios] Fix toCamera.centerCoordinate in shouldChangeFromCamera has same center as oldCamera. * [ios] Update changelog. * [ios] Remove unnecessary variables. * [ios] Clarify changelog doc. --- platform/ios/CHANGELOG.md | 1 + platform/ios/src/MGLMapView.mm | 13 ++++++------- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/platform/ios/CHANGELOG.md b/platform/ios/CHANGELOG.md index d449379ea..147567da1 100644 --- a/platform/ios/CHANGELOG.md +++ b/platform/ios/CHANGELOG.md @@ -37,6 +37,7 @@ Mapbox welcomes participation and contributions from everyone. Please read [CONT * Users of VoiceOver can now swipe left and right to navigate among visible places, points of interest, and roads. ([#9950](https://github.com/mapbox/mapbox-gl-native/pull/9950)) * Increased the default maximum zoom level from 20 to 22. ([#9835](https://github.com/mapbox/mapbox-gl-native/pull/9835)) +* Fixed an issue where the same value was passed in as the `oldCamera` and `newCamera` parameters to the `-[MGLMapViewDelegate mapView:shouldChangeFromCamera:toCamera:]` method. ([#10433](https://github.com/mapbox/mapbox-gl-native/pull/10433)) ### Other changes diff --git a/platform/ios/src/MGLMapView.mm b/platform/ios/src/MGLMapView.mm index c002da5f1..41d900702 100644 --- a/platform/ios/src/MGLMapView.mm +++ b/platform/ios/src/MGLMapView.mm @@ -1801,18 +1801,17 @@ public: return panCamera; } -- (MGLMapCamera *)cameraByZoomingToZoomLevel:(double)zoom aroundAnchorPoint:(CGPoint)anchorPoint +- (MGLMapCamera *)cameraByZoomingToZoomLevel:(double)zoom aroundAnchorPoint:(CGPoint)anchorPoint { - mbgl::EdgeInsets padding = MGLEdgeInsetsFromNSEdgeInsets(self.contentInset); - mbgl::CameraOptions currentCameraOptions = _mbglMap->getCameraOptions(padding); - MGLMapCamera *camera; - mbgl::ScreenCoordinate anchor = mbgl::ScreenCoordinate { anchorPoint.x, anchorPoint.y }; + mbgl::EdgeInsets padding = mbgl::EdgeInsets(anchor.y, anchor.x, self.size.height - anchor.y, self.size.width - anchor.x); + mbgl::CameraOptions currentCameraOptions = _mbglMap->getCameraOptions(padding); + currentCameraOptions.zoom = mbgl::util::clamp(zoom, self.minimumZoomLevel, self.maximumZoomLevel); currentCameraOptions.anchor = anchor; - camera = [self cameraForCameraOptions:currentCameraOptions]; + MGLCoordinateBounds bounds = MGLCoordinateBoundsFromLatLngBounds(_mbglMap->latLngBoundsForCamera(currentCameraOptions)); - return camera; + return [self cameraThatFitsCoordinateBounds:bounds]; } - (MGLMapCamera *)cameraByRotatingToDirection:(CLLocationDirection)degrees aroundAnchorPoint:(CGPoint)anchorPoint From 43c6f6b3b0ead73d0c94aa7646e3d47568b924d8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Minh=20Nguy=E1=BB=85n?= Date: Fri, 10 Nov 2017 18:27:36 -0800 Subject: [PATCH 07/92] [ios] Updated Spanish, Vietnamese translations --- .../resources/es.lproj/Localizable.strings | 25 +++++++++- .../es.lproj/Localizable.stringsdict | 48 +++++++++++++------ .../resources/vi.lproj/Localizable.strings | 27 +++++++++-- .../vi.lproj/Localizable.stringsdict | 42 +++++++++++----- 4 files changed, 111 insertions(+), 31 deletions(-) diff --git a/platform/ios/resources/es.lproj/Localizable.strings b/platform/ios/resources/es.lproj/Localizable.strings index 75f799fcd..d1d5084dc 100644 --- a/platform/ios/resources/es.lproj/Localizable.strings +++ b/platform/ios/resources/es.lproj/Localizable.strings @@ -34,6 +34,9 @@ /* Accessibility label */ "INFO_A11Y_LABEL" = "Acerca de este mapa"; +/* List separator */ +"LIST_SEPARATOR" = ", "; + /* User-friendly error description */ "LOAD_MAP_FAILED_DESC" = "No se pudo cargar el mapa debido a un error desconocido."; @@ -46,12 +49,30 @@ /* Accessibility label */ "MAP_A11Y_LABEL" = "Mapa"; -/* Map accessibility value */ -"MAP_A11Y_VALUE" = "Zoom x%1$d\nAnotaciones visibles: %2$ld"; +/* Map accessibility value; {number of visible annotations} */ +"MAP_A11Y_VALUE_ANNOTATIONS" = "%ld anotacion(es) visible(s)."; + +/* Map accessibility value; {list of visible places} */ +"MAP_A11Y_VALUE_PLACES" = "Lugares visibles: %@."; + +/* Map accessibility value; {number of visible roads} */ +"MAP_A11Y_VALUE_ROADS" = "%ld camino(s) visible(s)."; + +/* Map accessibility value; {zoom level} */ +"MAP_A11Y_VALUE_ZOOM" = "Zoom %dx."; /* User-friendly error description */ "PARSE_STYLE_FAILED_DESC" = "No se pudo cargar el mapa debido a que el estilo está dañado."; +/* Accessibility value indicating that a road is a divided road (dual carriageway) */ +"ROAD_DIVIDED_A11Y_VALUE" = "Vía de doble carril"; + +/* Accessibility value indicating that a road is a one-way road */ +"ROAD_ONEWAY_A11Y_VALUE" = "Unidireccional"; + +/* String format for accessibility value for road feature; {route number} */ +"ROAD_REF_A11Y_FMT" = "Ruta %@"; + /* Action sheet title */ "SDK_NAME" = "Mapbox iOS SDK"; diff --git a/platform/ios/resources/es.lproj/Localizable.stringsdict b/platform/ios/resources/es.lproj/Localizable.stringsdict index 9532801ff..91a49b067 100644 --- a/platform/ios/resources/es.lproj/Localizable.stringsdict +++ b/platform/ios/resources/es.lproj/Localizable.stringsdict @@ -2,22 +2,10 @@ - MAP_A11Y_VALUE + MAP_A11Y_VALUE_ANNOTATIONS NSStringLocalizedFormatKey - %#@level@ -%#@count@ - level - - NSStringFormatSpecTypeKey - NSStringPluralRuleType - NSStringFormatValueTypeKey - d - one - Zoom %dx - other - Zoom %dx - + %#@count@ count NSStringFormatSpecTypeKey @@ -30,5 +18,37 @@ %d anotaciones visibles + MAP_A11Y_VALUE_ROADS + + NSStringLocalizedFormatKey + %#@count@ + count + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + one + %d camino visible + other + %d caminos visibles + + + MAP_A11Y_VALUE_ZOOM + + NSStringLocalizedFormatKey + %#@level@ + level + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + d + one + Zoom %dx + other + Zoom %dx + + diff --git a/platform/ios/resources/vi.lproj/Localizable.strings b/platform/ios/resources/vi.lproj/Localizable.strings index 8a35d5d5d..4d08b6729 100644 --- a/platform/ios/resources/vi.lproj/Localizable.strings +++ b/platform/ios/resources/vi.lproj/Localizable.strings @@ -1,4 +1,4 @@ -/* Accessibility hint */ +/* Accessibility hint */ "ANNOTATION_A11Y_HINT" = "Hiển thị thêm thông tin"; /* No comment provided by engineer. */ @@ -34,6 +34,9 @@ /* Accessibility label */ "INFO_A11Y_LABEL" = "Giá»›i thiệu vá»� bản đồ này"; +/* List separator */ +"LIST_SEPARATOR" = ", "; + /* User-friendly error description */ "LOAD_MAP_FAILED_DESC" = "Bản đồ bị thất bại khi tải vì lá»—i không rõ."; @@ -46,12 +49,30 @@ /* Accessibility label */ "MAP_A11Y_LABEL" = "Bản đồ"; -/* Map accessibility value */ -"MAP_A11Y_VALUE" = "Thu phóng gấp %1$d lần\n%2$ld chú thích Ä‘ang xuất hiện"; +/* Map accessibility value; {number of visible annotations} */ +"MAP_A11Y_VALUE_ANNOTATIONS" = "%ld chú thích Ä‘ang xuất hiện."; + +/* Map accessibility value; {list of visible places} */ +"MAP_A11Y_VALUE_PLACES" = "Ä�ịa Ä‘iểm Ä‘ang xuất hiện: %@."; + +/* Map accessibility value; {number of visible roads} */ +"MAP_A11Y_VALUE_ROADS" = "%ld con đưá»�ng Ä‘ang xuất hiện."; + +/* Map accessibility value; {zoom level} */ +"MAP_A11Y_VALUE_ZOOM" = "Thu phóng gấp %d lần."; /* User-friendly error description */ "PARSE_STYLE_FAILED_DESC" = "Bản đồ bị thất bại khi tải vì bảng kiểu bị há»�ng."; +/* Accessibility value indicating that a road is a divided road (dual carriageway) */ +"ROAD_DIVIDED_A11Y_VALUE" = "Ä�ưá»�ng phân làn"; + +/* Accessibility value indicating that a road is a one-way road */ +"ROAD_ONEWAY_A11Y_VALUE" = "Má»™t chiá»�u"; + +/* String format for accessibility value for road feature; {route number} */ +"ROAD_REF_A11Y_FMT" = "Ä�ưá»�ng số %@"; + /* Action sheet title */ "SDK_NAME" = "Mapbox iOS SDK"; diff --git a/platform/ios/resources/vi.lproj/Localizable.stringsdict b/platform/ios/resources/vi.lproj/Localizable.stringsdict index 9044588f5..f4f7c4004 100644 --- a/platform/ios/resources/vi.lproj/Localizable.stringsdict +++ b/platform/ios/resources/vi.lproj/Localizable.stringsdict @@ -2,20 +2,10 @@ - MAP_A11Y_VALUE + MAP_A11Y_VALUE_ANNOTATIONS NSStringLocalizedFormatKey - %#@level@ -%#@count@ - level - - NSStringFormatSpecTypeKey - NSStringPluralRuleType - NSStringFormatValueTypeKey - d - other - Thu phóng gấp %d lần - + %#@count@ count NSStringFormatSpecTypeKey @@ -26,5 +16,33 @@ %d chú thích Ä‘ang xuất hiện + MAP_A11Y_VALUE_ROADS + + NSStringLocalizedFormatKey + %#@count@ + count + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + other + %d con đưá»�ng Ä‘ang xuất hiện + + + MAP_A11Y_VALUE_ZOOM + + NSStringLocalizedFormatKey + %#@level@ + level + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + d + other + Thu phóng gấp %d lần + + From 739f88e61f3e004d372ee12a15b3ef4d2ca2c6e3 Mon Sep 17 00:00:00 2001 From: Fabian Guerra Date: Tue, 14 Nov 2017 15:30:28 -0500 Subject: [PATCH 08/92] [ios] Update podspecs to v3.7.0-rc.1 --- platform/ios/Mapbox-iOS-SDK-nightly-dynamic.podspec | 2 +- platform/ios/Mapbox-iOS-SDK-symbols.podspec | 2 +- platform/ios/Mapbox-iOS-SDK.podspec | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/platform/ios/Mapbox-iOS-SDK-nightly-dynamic.podspec b/platform/ios/Mapbox-iOS-SDK-nightly-dynamic.podspec index b8b6687f0..a522c8acb 100644 --- a/platform/ios/Mapbox-iOS-SDK-nightly-dynamic.podspec +++ b/platform/ios/Mapbox-iOS-SDK-nightly-dynamic.podspec @@ -1,6 +1,6 @@ Pod::Spec.new do |m| - version = '3.7.0-beta.4' + version = '3.7.0-rc.1' m.name = 'Mapbox-iOS-SDK-nightly-dynamic' m.version = "#{version}-nightly" diff --git a/platform/ios/Mapbox-iOS-SDK-symbols.podspec b/platform/ios/Mapbox-iOS-SDK-symbols.podspec index e84255715..d6d52a59c 100644 --- a/platform/ios/Mapbox-iOS-SDK-symbols.podspec +++ b/platform/ios/Mapbox-iOS-SDK-symbols.podspec @@ -1,6 +1,6 @@ Pod::Spec.new do |m| - version = '3.7.0-beta.4' + version = '3.7.0-rc.1' m.name = 'Mapbox-iOS-SDK-symbols' m.version = "#{version}-symbols" diff --git a/platform/ios/Mapbox-iOS-SDK.podspec b/platform/ios/Mapbox-iOS-SDK.podspec index bb6c5e012..9e06e6a48 100644 --- a/platform/ios/Mapbox-iOS-SDK.podspec +++ b/platform/ios/Mapbox-iOS-SDK.podspec @@ -1,6 +1,6 @@ Pod::Spec.new do |m| - version = '3.7.0-beta.4' + version = '3.7.0-rc.1' m.name = 'Mapbox-iOS-SDK' m.version = version From 1049c012255520606ee349a16f6b430db74a520f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Minh=20Nguy=E1=BB=85n?= Date: Tue, 14 Nov 2017 19:14:12 -0800 Subject: [PATCH 09/92] Deploy macosapp as part of releases (#10191) * [macos] Deploy macosapp as part of releases Added steps to the packaging script to archive and export macosapp. Upload the exported, compressed application bundle to the GitHub release when deploying a release. * [macos] Explicitly named function argument * [macos] Consolidated xcodebuild invocations --- platform/macos/ExportOptions.plist | 10 ++++++++++ platform/macos/scripts/deploy-packages.sh | 15 +++++++++++++- platform/macos/scripts/package.sh | 24 ++++++++++++++++++++--- 3 files changed, 45 insertions(+), 4 deletions(-) create mode 100644 platform/macos/ExportOptions.plist diff --git a/platform/macos/ExportOptions.plist b/platform/macos/ExportOptions.plist new file mode 100644 index 000000000..21af10c08 --- /dev/null +++ b/platform/macos/ExportOptions.plist @@ -0,0 +1,10 @@ + + + + + method + developer-id + teamID + GJZR2MEM28 + + diff --git a/platform/macos/scripts/deploy-packages.sh b/platform/macos/scripts/deploy-packages.sh index d9d74b286..90c3c2930 100755 --- a/platform/macos/scripts/deploy-packages.sh +++ b/platform/macos/scripts/deploy-packages.sh @@ -46,6 +46,19 @@ buildPackageStyle() { --name ${file_name} \ --file "${BINARY_DIRECTORY}/${file_name}" > /dev/null fi + if [[ ${DEPLOY_APP} == true ]]; then + cd build/macos/app + rm -f 'Mapbox GL.app.zip' + zip -yr '../deploy/Mapbox GL.app.zip' 'Mapbox GL.app' + cd - + if [[ "${GITHUB_RELEASE}" == true ]]; then + echo "Uploading ${file_name} to GitHub" + github-release upload \ + --tag "macos-v${PUBLISH_VERSION}" \ + --name ${file_name} \ + --file "${BINARY_DIRECTORY}/${file_name}" > /dev/null + fi + fi } export TRAVIS_REPO_SLUG=mapbox-gl-native @@ -114,6 +127,6 @@ if [[ "${GITHUB_RELEASE}" == true ]]; then fi buildPackageStyle "xpackage" "symbols" -buildPackageStyle "xpackage SYMBOLS=NO" +DEPLOY_APP=true buildPackageStyle "xpackage SYMBOLS=NO" step "Finished deploying ${PUBLISH_VERSION} in $(($SECONDS / 60)) minutes and $(($SECONDS % 60)) seconds" diff --git a/platform/macos/scripts/package.sh b/platform/macos/scripts/package.sh index 6ae0cc65c..a5aae24e0 100755 --- a/platform/macos/scripts/package.sh +++ b/platform/macos/scripts/package.sh @@ -6,6 +6,7 @@ set -u NAME=Mapbox OUTPUT=build/macos/pkg +APP_OUTPUT=build/macos/app DERIVED_DATA=build/macos PRODUCTS=${DERIVED_DATA} @@ -16,13 +17,21 @@ function step { >&2 echo -e "\033[1m\033[36m* $@\033[0m"; } function finish { >&2 echo -en "\033[0m"; } trap finish EXIT -rm -rf ${OUTPUT} +rm -rf ${OUTPUT} ${APP_OUTPUT} HASH=`git log | head -1 | awk '{ print $2 }' | cut -c 1-10` && true PROJ_VERSION=$(git rev-list --count HEAD) SEM_VERSION=$( git describe --tags --match=macos-v*.*.* --abbrev=0 | sed 's/^macos-v//' ) SHORT_VERSION=${SEM_VERSION%-*} +XCODEBUILD_SCHEME=dynamic +XCODEBUILD_ACTION=build +if [[ ${BUILDTYPE} == Release ]]; then + XCODEBUILD_SCHEME=macosapp + XCODEBUILD_ACTION=archive + mkdir -p ${APP_OUTPUT} +fi + step "Building targets (build ${PROJ_VERSION}, version ${SEM_VERSION})…" xcodebuild \ CURRENT_PROJECT_VERSION=${PROJ_VERSION} \ @@ -30,10 +39,12 @@ xcodebuild \ CURRENT_SEMANTIC_VERSION=${SEM_VERSION} \ CURRENT_COMMIT_HASH=${HASH} \ -derivedDataPath ${DERIVED_DATA} \ + -archivePath "${APP_OUTPUT}/macosapp.xcarchive" \ -workspace ./platform/macos/macos.xcworkspace \ - -scheme dynamic \ + -scheme ${XCODEBUILD_SCHEME} \ -configuration ${BUILDTYPE} \ - -jobs ${JOBS} | xcpretty + -jobs ${JOBS} \ + ${XCODEBUILD_ACTION} | xcpretty step "Copying dynamic framework into place" mkdir -p "${OUTPUT}/${NAME}.framework" @@ -66,6 +77,13 @@ if [[ ${BUILDTYPE} == Release ]]; then validate_dsym \ "${OUTPUT}/${NAME}.framework.dSYM/Contents/Resources/DWARF/${NAME}" \ "${OUTPUT}/${NAME}.framework/${NAME}" + + step "Exporting Mapbox GL.app" + xcodebuild \ + -exportArchive \ + -archivePath "${APP_OUTPUT}/macosapp.xcarchive" \ + -exportPath "${APP_OUTPUT}" \ + -exportOptionsPlist platform/macos/ExportOptions.plist fi function create_podspec { From 30e59ce738c05e128398ef5109fdc08d208c2cf1 Mon Sep 17 00:00:00 2001 From: Pablo Guardiola Date: Thu, 16 Nov 2017 16:06:22 +0100 Subject: [PATCH 10/92] Monkey crashes (#10440) (#10472) * [android] - avoid null map from trackballevent * [android] - fixup animated marker test activity from monkey runs * [android] - harden NativeMapView OnMapChangeListener * [android] - harden against destroyed wrapper activity while moving touch pointers * [android] - harden bulk marker activity for monkey runner * [android] - harden scale end gesture event for null velocity tracker * [android] - invalid mapboxMap invocation * [android] - reset test setup --- .../mapboxsdk/maps/MapGestureDetector.java | 11 ++++++++-- .../mapbox/mapboxsdk/maps/NativeMapView.java | 4 +++- .../com/mapbox/mapboxsdk/maps/Transform.java | 20 ++++++++++--------- .../annotation/AnimatedMarkerActivity.java | 14 +++++++------ .../annotation/BulkMarkerActivity.java | 4 ++++ 5 files changed, 35 insertions(+), 18 deletions(-) diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapGestureDetector.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapGestureDetector.java index 4120e164a..9d7d980ae 100644 --- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapGestureDetector.java +++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapGestureDetector.java @@ -235,8 +235,10 @@ final class MapGestureDetector { velocityTracker = null; break; case MotionEvent.ACTION_MOVE: - velocityTracker.addMovement(event); - velocityTracker.computeCurrentVelocity(1000); + if (velocityTracker != null) { + velocityTracker.addMovement(event); + velocityTracker.computeCurrentVelocity(1000); + } break; } @@ -551,6 +553,11 @@ final class MapGestureDetector { // Called when fingers leave screen @Override public void onScaleEnd(final ScaleGestureDetector detector) { + if (velocityTracker == null) { + return; + } + + if (rotateGestureOccurred || quickZoom) { reset(); return; diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/NativeMapView.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/NativeMapView.java index 8b6bce69e..e8eb7e871 100755 --- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/NativeMapView.java +++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/NativeMapView.java @@ -1082,7 +1082,9 @@ final class NativeMapView { // void addOnMapChangedListener(@NonNull MapView.OnMapChangedListener listener) { - mapView.addOnMapChangedListener(listener); + if (mapView != null) { + mapView.addOnMapChangedListener(listener); + } } void removeOnMapChangedListener(@NonNull MapView.OnMapChangedListener listener) { diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/Transform.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/Transform.java index 0366e5062..16c45ebea 100644 --- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/Transform.java +++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/Transform.java @@ -238,16 +238,18 @@ final class Transform implements MapView.OnMapChangedListener { } void setZoom(double zoom, @NonNull PointF focalPoint, long duration) { - mapView.addOnMapChangedListener(new MapView.OnMapChangedListener() { - @Override - public void onMapChanged(int change) { - if (change == MapView.REGION_DID_CHANGE_ANIMATED) { - cameraChangeDispatcher.onCameraIdle(); - mapView.removeOnMapChangedListener(this); + if (mapView != null) { + mapView.addOnMapChangedListener(new MapView.OnMapChangedListener() { + @Override + public void onMapChanged(int change) { + if (change == MapView.REGION_DID_CHANGE_ANIMATED) { + cameraChangeDispatcher.onCameraIdle(); + mapView.removeOnMapChangedListener(this); + } } - } - }); - mapView.setZoom(zoom, focalPoint, duration); + }); + mapView.setZoom(zoom, focalPoint, duration); + } } // Direction diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/annotation/AnimatedMarkerActivity.java b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/annotation/AnimatedMarkerActivity.java index 52181cee0..d8752bbea 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/annotation/AnimatedMarkerActivity.java +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/annotation/AnimatedMarkerActivity.java @@ -236,12 +236,14 @@ public class AnimatedMarkerActivity extends AppCompatActivity { stopped = true; - // Stop ongoing animations, prevent memory lekas - MarkerViewManager markerViewManager = mapboxMap.getMarkerViewManager(); - for (MarkerView markerView : markerViews) { - View view = markerViewManager.getView(markerView); - if (view != null) { - view.animate().cancel(); + // Stop ongoing animations, prevent memory leaks + if (mapboxMap != null) { + MarkerViewManager markerViewManager = mapboxMap.getMarkerViewManager(); + for (MarkerView markerView : markerViews) { + View view = markerViewManager.getView(markerView); + if (view != null) { + view.animate().cancel(); + } } } diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/annotation/BulkMarkerActivity.java b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/annotation/BulkMarkerActivity.java index 50adeb2d7..666fd2eee 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/annotation/BulkMarkerActivity.java +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/annotation/BulkMarkerActivity.java @@ -100,6 +100,10 @@ public class BulkMarkerActivity extends AppCompatActivity implements AdapterView } private void showMarkers(int amount) { + if (mapboxMap == null || locations == null) { + return; + } + mapboxMap.clear(); if (locations.size() < amount) { From f6c9dd6b2552a1044f87ae4620ead3da9fcbb54b Mon Sep 17 00:00:00 2001 From: Jason Wray Date: Thu, 16 Nov 2017 11:31:32 -0500 Subject: [PATCH 11/92] [ios] Update puck arrow stroke color when tint changes MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 🤤 --- platform/ios/src/MGLFaux3DUserLocationAnnotationView.m | 1 + 1 file changed, 1 insertion(+) diff --git a/platform/ios/src/MGLFaux3DUserLocationAnnotationView.m b/platform/ios/src/MGLFaux3DUserLocationAnnotationView.m index 1ed3d86ad..a1d9fb1d4 100644 --- a/platform/ios/src/MGLFaux3DUserLocationAnnotationView.m +++ b/platform/ios/src/MGLFaux3DUserLocationAnnotationView.m @@ -63,6 +63,7 @@ const CGFloat MGLUserLocationHeadingUpdateThreshold = 0.01; if (_puckModeActivated) { _puckArrow.fillColor = newTintColor; + _puckArrow.strokeColor = newTintColor; } else { From 84fbb7c5767c6ba18992bcfff0f9a76e202a3ea3 Mon Sep 17 00:00:00 2001 From: Pablo Guardiola Date: Fri, 17 Nov 2017 16:39:36 +0100 Subject: [PATCH 12/92] release v5.2.0-beta.5 (#10464) --- platform/android/CHANGELOG.md | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/platform/android/CHANGELOG.md b/platform/android/CHANGELOG.md index d61c2ec8b..924a05aa8 100644 --- a/platform/android/CHANGELOG.md +++ b/platform/android/CHANGELOG.md @@ -6,6 +6,16 @@ Mapbox welcomes participation and contributions from everyone. If you'd like to * TBA +## 5.2.0-beta.5 - November 14, 2017 + +- MapSnapshot attribution [#10362](https://github.com/mapbox/mapbox-gl-native/pull/10362) +- Downgrade min sdk to 14 [#10355](https://github.com/mapbox/mapbox-gl-native/pull/10355) +- Harden deselection mechanism for markers [#10403](https://github.com/mapbox/mapbox-gl-native/pull/10403) +- Cherry picks to agua [#10442](https://github.com/mapbox/mapbox-gl-native/pull/10442) +- Rework test activity gen script setup [#10365](https://github.com/mapbox/mapbox-gl-native/pull/10365) +- Fix broken android unit tests, update test make target to SDK [#10387](https://github.com/mapbox/mapbox-gl-native/pull/10387) +- Check for null value when calling mapboxMap.clear [#10388](https://github.com/mapbox/mapbox-gl-native/pull/10388) + ## 5.2.0-beta.4 - November 3, 2017 - Revert adding mapbox-android-core dependency (#10354) [#10380](https://github.com/mapbox/mapbox-gl-native/pull/10380) From 5eb050dc35d3d780136806aee0f72bae592011a4 Mon Sep 17 00:00:00 2001 From: Fabian Guerra Date: Mon, 13 Nov 2017 17:29:54 -0500 Subject: [PATCH 13/92] [ios, macos] Update the attribution format for small snapshots. --- platform/darwin/src/MGLAttributionInfo.mm | 9 + platform/darwin/src/MGLMapSnapshotter.mm | 150 ++++++-- .../resources/Base.lproj/Localizable.strings | Bin 3780 -> 298 bytes .../mapbox_helmet.imageset/Contents.json | 12 + .../mapbox_helmet.imageset/mapbox_helmet.pdf | 355 ++++++++++++++++++ .../macos/macos.xcodeproj/project.pbxproj | 4 + .../macos/sdk/Base.lproj/Localizable.strings | Bin 840 -> 298 bytes platform/macos/sdk/mapbox_helmet.pdf | 355 ++++++++++++++++++ 8 files changed, 856 insertions(+), 29 deletions(-) create mode 100644 platform/ios/resources/Images.xcassets/mapbox_helmet.imageset/Contents.json create mode 100644 platform/ios/resources/Images.xcassets/mapbox_helmet.imageset/mapbox_helmet.pdf create mode 100644 platform/macos/sdk/mapbox_helmet.pdf diff --git a/platform/darwin/src/MGLAttributionInfo.mm b/platform/darwin/src/MGLAttributionInfo.mm index 770aeb25e..92fb9b689 100644 --- a/platform/darwin/src/MGLAttributionInfo.mm +++ b/platform/darwin/src/MGLAttributionInfo.mm @@ -127,6 +127,15 @@ return self; } +- (id)copyWithZone:(nullable NSZone *)zone +{ + MGLAttributionInfo *info = [[[self class] allocWithZone:zone] initWithTitle:_title + URL:_URL]; + info.feedbackLink = _feedbackLink; + + return info; +} + - (nullable NSURL *)feedbackURLAtCenterCoordinate:(CLLocationCoordinate2D)centerCoordinate zoomLevel:(double)zoomLevel { return [self feedbackURLForStyleURL:nil atCenterCoordinate:centerCoordinate zoomLevel:zoomLevel direction:0 pitch:0]; } diff --git a/platform/darwin/src/MGLMapSnapshotter.mm b/platform/darwin/src/MGLMapSnapshotter.mm index dea93eba3..31b3ed41d 100644 --- a/platform/darwin/src/MGLMapSnapshotter.mm +++ b/platform/darwin/src/MGLMapSnapshotter.mm @@ -27,6 +27,24 @@ const CGPoint MGLLogoImagePosition = CGPointMake(8, 8); const CGFloat MGLSnapshotterMinimumPixelSize = 64; +@interface MGLSnapshotAttributionOptions : NSObject +#if TARGET_OS_IPHONE +@property (nonatomic) UIImage *logoImage; +#else +@property (nonatomic) NSImage *logoImage; +#endif + +@property (nonatomic) CGSize attributionBackgroundSize; + +@property (nonatomic) NS_ARRAY_OF(MGLAttributionInfo *) *attributionInfo; + +@end + +@implementation MGLSnapshotAttributionOptions +@end + + + @implementation MGLMapSnapshotOptions - (instancetype _Nonnull)initWithStyleURL:(nullable NSURL *)styleURL camera:(MGLMapCamera *)camera size:(CGSize) size @@ -61,6 +79,7 @@ const CGFloat MGLSnapshotterMinimumPixelSize = 64; @implementation MGLMapSnapshot { mbgl::MapSnapshotter::PointForFn _pointForFn; } + - (instancetype)initWithImage:(nullable MGLImage *)image scale:(CGFloat)scale pointForFn:(mbgl::MapSnapshotter::PointForFn)pointForFn { self = [super init]; @@ -88,6 +107,7 @@ const CGFloat MGLSnapshotterMinimumPixelSize = 64; std::shared_ptr _mbglThreadPool; std::unique_ptr _mbglMapSnapshotter; std::unique_ptr> _snapshotCallback; + CGFloat _defaultLogoHeight; } - (instancetype)initWithOptions:(MGLMapSnapshotOptions *)options @@ -167,15 +187,6 @@ const CGFloat MGLSnapshotterMinimumPixelSize = 64; [infos growArrayByAddingAttributionInfosFromArray:tileSetInfos]; } - CGSize attributionBackgroundSize = CGSizeMake(10, 0); - for (MGLAttributionInfo *info in infos) { - if (info.isFeedbackLink) { - continue; - } - attributionBackgroundSize.width += [info.title size].width + 10; - attributionBackgroundSize.height = MAX([info.title size].height, attributionBackgroundSize.height); - } - if (mbglError) { NSString *description = @(mbgl::util::toString(mbglError).c_str()); NSDictionary *userInfo = @{NSLocalizedDescriptionKey: description}; @@ -198,20 +209,28 @@ const CGFloat MGLSnapshotterMinimumPixelSize = 64; dispatch_queue_t workQueue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0); dispatch_async(workQueue, ^{ #if TARGET_OS_IPHONE - UIImage *logoImage = [UIImage imageNamed:@"mapbox" inBundle:[NSBundle mgl_frameworkBundle] compatibleWithTraitCollection:nil]; + MGLSnapshotAttributionOptions *option = [self attributionOptionsForSize:mglImage.size attributionInfo:infos]; + UIImage *logoImage = option.logoImage; CGRect logoImageRect = CGRectMake(MGLLogoImagePosition.x, mglImage.size.height - (MGLLogoImagePosition.y + logoImage.size.height), logoImage.size.width, logoImage.size.height); - CGRect attributionBackgroundFrame = CGRectMake(mglImage.size.width - 10 - attributionBackgroundSize.width, - logoImageRect.origin.y + (logoImageRect.size.height / 2) - (attributionBackgroundSize.height / 2) + 1, - attributionBackgroundSize.width, - attributionBackgroundSize.height); + CGPoint attributionOrigin = CGPointMake(mglImage.size.width - 10 - option.attributionBackgroundSize.width, + logoImageRect.origin.y + (logoImageRect.size.height / 2) - (option.attributionBackgroundSize.height / 2) + 1); + if (!logoImage) { + logoImageRect = CGRectMake(0, mglImage.size.height - (MGLLogoImagePosition.y + _defaultLogoHeight), 0, _defaultLogoHeight); + attributionOrigin = CGPointMake(10, logoImageRect.origin.y + (logoImageRect.size.height / 2) - (option.attributionBackgroundSize.height / 2) + 1); + } + + CGRect attributionBackgroundFrame = CGRectMake(attributionOrigin.x, + attributionOrigin.y, + option.attributionBackgroundSize.width, + option.attributionBackgroundSize.height); CGPoint attributionTextPosition = CGPointMake(attributionBackgroundFrame.origin.x + 10, attributionBackgroundFrame.origin.y - 1); CGRect cropRect = CGRectMake(attributionBackgroundFrame.origin.x * mglImage.scale, attributionBackgroundFrame.origin.y * mglImage.scale, - attributionBackgroundSize.width * mglImage.scale, - attributionBackgroundSize.height * mglImage.scale); + option.attributionBackgroundSize.width * mglImage.scale, + option.attributionBackgroundSize.height * mglImage.scale); UIGraphicsBeginImageContextWithOptions(mglImage.size, NO, self.options.scale); @@ -231,24 +250,32 @@ const CGFloat MGLSnapshotterMinimumPixelSize = 64; [blurredAttributionBackground drawInRect:attributionBackgroundFrame]; - [self drawAttributionText:infos origin:attributionTextPosition]; + [self drawAttributionText:option.attributionInfo origin:attributionTextPosition]; UIImage *compositedImage = UIGraphicsGetImageFromCurrentImageContext(); UIGraphicsEndImageContext(); #else - NSImage *logoImage = [[NSImage alloc] initWithContentsOfFile:[[NSBundle mgl_frameworkBundle] pathForResource:@"mapbox" ofType:@"pdf"]]; - NSImage *sourceImage = mglImage; - NSSize targetSize = NSMakeSize(self.options.size.width, self.options.size.height); NSRect targetFrame = NSMakeRect(0, 0, targetSize.width, targetSize.height); + MGLSnapshotAttributionOptions *option = [self attributionOptionsForSize:targetSize attributionInfo:infos]; + NSImage *logoImage = option.logoImage; + NSImage *sourceImage = mglImage; + CGRect logoImageRect = CGRectMake(MGLLogoImagePosition.x, MGLLogoImagePosition.y, logoImage.size.width, logoImage.size.height); - CGRect attributionBackgroundFrame = CGRectMake(targetFrame.size.width - 10 - attributionBackgroundSize.width, - MGLLogoImagePosition.y + 1, - attributionBackgroundSize.width, - attributionBackgroundSize.height); + CGPoint attributionOrigin = CGPointMake(targetFrame.size.width - 10 - option.attributionBackgroundSize.width, + MGLLogoImagePosition.y + 1); + if (!logoImage) { + logoImageRect = CGRectMake(0, MGLLogoImagePosition.y, 0, _defaultLogoHeight); + attributionOrigin = CGPointMake(10, attributionOrigin.y); + } + + CGRect attributionBackgroundFrame = CGRectMake(attributionOrigin.x, + attributionOrigin.y, + option.attributionBackgroundSize.width, + option.attributionBackgroundSize.height); CGPoint attributionTextPosition = CGPointMake(attributionBackgroundFrame.origin.x + 10, - logoImageRect.origin.y + (logoImageRect.size.height / 2) - (attributionBackgroundSize.height / 2)); + logoImageRect.origin.y + (logoImageRect.size.height / 2) - (option.attributionBackgroundSize.height / 2)); NSImage *compositedImage = nil; @@ -261,7 +288,9 @@ const CGFloat MGLSnapshotterMinimumPixelSize = 64; [sourceImageRep drawInRect: targetFrame]; - [logoImage drawInRect:logoImageRect]; + if (logoImage) { + [logoImage drawInRect:logoImageRect]; + } NSBitmapImageRep *attributionBackground = [[NSBitmapImageRep alloc] initWithFocusedViewRect:attributionBackgroundFrame]; @@ -271,7 +300,7 @@ const CGFloat MGLSnapshotterMinimumPixelSize = 64; [blurredAttributionBackground drawInRect:attributionBackgroundFrame]; - [self drawAttributionText:infos origin:attributionTextPosition]; + [self drawAttributionText:option.attributionInfo origin:attributionTextPosition]; [compositedImage unlockFocus]; @@ -323,14 +352,77 @@ const CGFloat MGLSnapshotterMinimumPixelSize = 64; CGImageRef cgimg = [ctx createCGImage:blurredImage fromRect:[backgroundImage extent]]; #if TARGET_OS_IPHONE - return [UIImage imageWithCGImage:cgimg]; #else - return [[NSImage alloc] initWithCGImage:cgimg size:[backgroundImage extent].size]; #endif } +- (MGLSnapshotAttributionOptions *)attributionOptionsForSize:(CGSize)snapshotSize attributionInfo:(NSArray *)attributionInfo +{ + NSMutableArray *options = [NSMutableArray array]; + MGLSnapshotAttributionOptions *largeLogoAttribution = [self attributionOptionsForAttributionInfo:attributionInfo abbreviated:NO]; +#if TARGET_OS_IPHONE + largeLogoAttribution.logoImage = [UIImage imageNamed:@"mapbox" inBundle:[NSBundle mgl_frameworkBundle] compatibleWithTraitCollection:nil]; +#else + largeLogoAttribution.logoImage = [[NSImage alloc] initWithContentsOfFile:[[NSBundle mgl_frameworkBundle] pathForResource:@"mapbox" ofType:@"pdf"]]; +#endif + _defaultLogoHeight = largeLogoAttribution.logoImage.size.height; + + MGLSnapshotAttributionOptions *smallLogoAttribution = [self attributionOptionsForAttributionInfo:attributionInfo abbreviated:NO]; +#if TARGET_OS_IPHONE + smallLogoAttribution.logoImage = [UIImage imageNamed:@"mapbox_helmet" inBundle:[NSBundle mgl_frameworkBundle] compatibleWithTraitCollection:nil]; +#else + smallLogoAttribution.logoImage = [[NSImage alloc] initWithContentsOfFile:[[NSBundle mgl_frameworkBundle] pathForResource:@"mapbox_helmet" ofType:@"pdf"]]; +#endif + + MGLSnapshotAttributionOptions *noLogoAttribution = [self attributionOptionsForAttributionInfo:attributionInfo abbreviated:YES]; + + [options addObject:largeLogoAttribution]; + [options addObject:smallLogoAttribution]; + [options addObject:noLogoAttribution]; + + for (MGLSnapshotAttributionOptions *attributionOptions in options) { + // -[Mapbox Logo]-[Attribution Background]- + CGFloat origin = attributionOptions.logoImage ? MGLLogoImagePosition.x : 0; + CGFloat width = origin + attributionOptions.logoImage.size.width + 10 + attributionOptions.attributionBackgroundSize.width + 10; + if (width <= snapshotSize.width) { + return attributionOptions; + } + } + + return noLogoAttribution; +} + +- (MGLSnapshotAttributionOptions *)attributionOptionsForAttributionInfo:(NSArray *)attributionInfo abbreviated:(BOOL)isAbbreviated +{ + NSString *openStreetMap = NSLocalizedStringWithDefaultValue(@"OSM_FULL_NAME", nil, nil, @"OpenStreetMap", @"OpenStreetMap full name attribution"); + NSString *OSM = NSLocalizedStringWithDefaultValue(@"OSM_SHORT_NAME", nil, nil, @"OSM", @"OpenStreetMap short name attribution"); + NSMutableArray *infos = [NSMutableArray array]; + CGSize attributionBackgroundSize = CGSizeMake(10, 0); + for (MGLAttributionInfo *info in attributionInfo) { + if (info.isFeedbackLink) { + continue; + } + MGLAttributionInfo *attribution = [info copy]; + NSMutableAttributedString *title = [[NSMutableAttributedString alloc] initWithAttributedString:info.title]; + [title removeAttribute:NSUnderlineStyleAttributeName range:NSMakeRange(0, [title.string length])]; + if ([title.string rangeOfString:@"OpenStreetMap"].location != NSNotFound) { + [title.mutableString replaceOccurrencesOfString:@"OpenStreetMap" withString:isAbbreviated ? OSM : openStreetMap options:NSCaseInsensitiveSearch range:NSMakeRange(0, [title.mutableString length])]; + } + attribution.title = title; + attributionBackgroundSize.width += [attribution.title size].width + 10; + attributionBackgroundSize.height = MAX([attribution.title size].height, attributionBackgroundSize.height); + [infos addObject:attribution]; + } + + MGLSnapshotAttributionOptions *attributionOptions = [[MGLSnapshotAttributionOptions alloc] init]; + attributionOptions.attributionBackgroundSize = attributionBackgroundSize; + attributionOptions.attributionInfo = infos; + + return attributionOptions; +} + - (void)cancel { _snapshotCallback.reset(); diff --git a/platform/ios/resources/Base.lproj/Localizable.strings b/platform/ios/resources/Base.lproj/Localizable.strings index 039ef4c4b194597f4cfb31d09cf9490545325bc4..cb085add6a0e15eeb5fe4ed062941ceaee09f9ae 100644 GIT binary patch literal 298 zcmbV{y9&ZU5JgX&uUJyrpM#-9~otau- jV)ipbJ9EamWP1H#yK{1LC&52-k%bgnb_0C<4PTZwtr#${ literal 3780 zcmc&%+iu%N5Pi>AEQ}aU0$-A%PYDWymZ*dXMG7L7!a)FHMXs!c$X#}KXX9F(`<5_yARa0lA ziP@UmpPB9XARbS=B)RLwCdS|e`P!)PwxBs9MZ<`Y$}A5$E$N(+dJzTU~OHX#tWEK`Zv%1pz0650Q5f`Yk&oDY&jnx+av2X+4*>r%S1A z$1D^}rq~InYsm4N=kF~tYuPA5-ALi%iV2&~@vqO{e-&TF2=x@qI9}s>stXbBuCqFGs;NNwXyNCrJitR}E4| z0cRN0^Cc_m^95JhoT8dqpK_^Bb+J0w%dIE`(I~#dj#dtG#R_ip2~b)vR?KOR`IV}| z1CZB>#X-kCNqWycL%g{i0khohx2jy0rGOH_XP~BpZ1_=nwaG$+o#wBHP|lQs^4XX`>lRBaK)I zc_TWd$rT;*lj(3_QIK;^~)!5?SvrjDC7(M za^q=(^!>rzkne=XEMwmtj5-Ouf!_w4xVJV@?6!G0(vM{-u;p;5DJa*MX5V{KQGZEU zk&<1r@?arf;&|+E`(ocaE^ar;KV}**Mp!66$w-WBE|qF(DCH*jJ{=u7Ac6(YA#rXU zQm7cQSP+;~=v{k8xF;`)1{Xk1mE!b@-O%+*H@X(bY#4kFhL~GNO-CSC{BXzqAh91# zK?-(?SZz{PYFxZH^8fHI?}m$oJs#Fwq{NA|(?FDE7g@U$_GZI9cjYY@E)ZphMM3kh zkle_$&2=%S{-_N&8nRG>0?F`G7J1`#nYA-cc$^SC?-Cta z7ReeaDFqY~Uy!E85oUM0;S1LtDUeucj{saGOxZi_#O^h#@Tl(g3_oqIHr{M9^is_5 zXQ=6Rk?zOdc)?uRUPD3&y~bL!3wpB#AH&s_r8rcxQ9O$tuiSgmiG$0D=R!8vRp=Bl z;sQ&u1~HM)hQBE*S;dT6+Y7g<4XJRlf{c!csUP}dKb>BJjft%q8zuSRcz7urtI#+W z${LGo#YkK;0fL}aPPY)XgQudkhK?JYFZO!Qr2viQjhhcDq*zxHcWUFJ+C%x?)L>(} z?RFrucrlo z>$!1PB({~@S6Qzyy^}OZySsU8Y2J|>/OCGs[5 0 R 33 0 R]>>/Pages 3 0 R/Type/Catalog>> endobj 2 0 obj <>stream + + + + + Adobe Illustrator CC 2017 (Macintosh) + 2017-11-16T09:51:51-08:00 + 2017-11-16T10:04:52-08:00 + 2017-11-16T10:04:52-08:00 + + + + 256 + 256 + JPEG + /9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgBAAEAAwER AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE 1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp 0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo +DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9U4q7FXYq7FXYq7FXYq7 FXYq7FUPe6jYWMfqXdwkC9ubAE/IdT9GKsbv/wAx9HhqtpFJdMOjf3aH6W+L/hcVSC7/ADH1uUkW 8cNuvY0Lt97Gn/C4qlNx5q8xT19S/lFf99n0/wDiHHFUBJfXsprJcSOfFnY/rOKqOKuxVWjvr2I1 iuJIz/kuw/UcVR9v5q8xQU9O/lNP9+H1P+J8sVTa0/MfWoqC4jhuF7mhRvvU0/DFU/sPzH0eai3c Ulqx6t/eIPpX4v8AhcVZJZajYX0fqWlwk69+DAkfMdR9OKojFXYq7FXYq7FXYq7FXYq7FXYq7FXY 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 + + + + 1 + True + False + + 0.222222 + 0.221944 + Inches + + + + Cyan + Magenta + Yellow + Black + + + + + + Default Swatch Group + 0 + + + + application/pdf + proof:pdf + uuid:ad04dd96-0b1b-0043-88c6-2612e9f199e0 + uuid:fd70734a-8143-0b42-928a-90f58b786320 + + + + + + + + + + + + + + + + + + + + + + + + + endstream endobj 3 0 obj <> endobj 7 0 obj <>/Resources<>/Properties<>/XObject<>>>/Thumb 44 0 R/TrimBox[0.0 0.0 16.0 15.98]/Type/Page>> endobj 35 0 obj <>stream +H‰Ò÷wVÐ÷u6PprqVà*ä2P04Õ³´P04SÐ…°ŠR¹Âò€RúîÁ +éÅ@%!>ún¹ +.ù\�qC$qCâFHâÈæCÄ]}�ör1 § endstream endobj 36 0 obj <> endobj 44 0 obj <>stream +8;Xp,*?`,t!f$f[~> endstream endobj 45 0 obj [/Indexed/DeviceRGB 255 46 0 R] endobj 46 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 40 0 obj <>>>/Subtype/Form>>stream +1 1 1 rg +/GS0 gs +q 1 0 0 1 11.3447 6.2625 cm +0 0 m +-1.47 -1.47 -3.642 -1.76 -5.104 -1.76 c +-5.638 -1.76 -6.179 -1.722 -6.705 -1.638 c +-7.482 2.66 -5.074 5.075 v +-4.442 5.707 -3.588 6.05 -2.689 6.05 c +-1.722 6.05 -0.792 5.661 -0.106 4.968 c +1.295 3.566 1.333 1.349 0 0 c +-3.345 8.785 m +-7.238 8.785 -10.393 5.623 -10.393 1.737 c +-10.393 -2.148 -7.23 -5.311 -3.345 -5.311 c +0.541 -5.311 3.703 -2.148 3.703 1.737 c +3.703 5.631 0.549 8.785 -3.345 8.785 c +f +Q + endstream endobj 41 0 obj <>>>/Subtype/Form>>stream +0 0 0 rg +/GS0 gs +q 1 0 0 1 8 0.9519 cm +0 0 m +-3.894 0 -7.048 3.162 -7.048 7.048 c +-7.048 10.934 -3.894 14.104 0 14.104 c +3.894 14.104 7.048 10.941 7.048 7.056 c +7.048 3.147 3.894 0 0 0 c +0 15.048 m +-4.419 15.048 -8 11.459 -8 7.048 c +-8 2.637 -4.419 -0.952 0 -0.952 c +4.419 -0.952 8 2.629 8 7.048 c +7.992 11.459 4.419 15.048 0 15.048 c +f +Q + endstream endobj 42 0 obj <>>>/Subtype/Form>>stream +0 0 0 rg +/GS0 gs +q 1 0 0 1 9.501 8.1145 cm +0 0 m +-0.693 -1.425 l +-1.379 0 l +-2.796 0.693 l +-1.379 1.379 l +-0.693 2.804 l +0 1.379 l +1.417 0.693 l +h +1.729 3.116 m +0.328 4.518 -1.897 4.563 -3.23 3.23 c +-5.638 0.815 -4.861 -3.482 y +-0.564 -4.259 1.852 -1.852 v +3.177 -0.503 3.139 1.714 1.729 3.116 c +f +Q + endstream endobj 43 0 obj <>>>/Subtype/Form>>stream +1 1 1 rg +/GS0 gs +q 1 0 0 1 10.918 8.8074 cm +0 0 m +-1.417 -0.693 l +-2.11 -2.118 l +-2.796 -0.693 l +-4.213 0 l +-2.796 0.686 l +-2.11 2.111 l +-1.417 0.686 l +h +f +Q + endstream endobj 51 0 obj <> endobj 48 0 obj <> endobj 50 0 obj <> endobj 49 0 obj <> endobj 47 0 obj <> endobj 33 0 obj <> endobj 52 0 obj [/View/Design] endobj 53 0 obj <>>> endobj 38 0 obj <> endobj 39 0 obj <> endobj 37 0 obj <> endobj 54 0 obj <> endobj 55 0 obj <>stream +%!PS-Adobe-3.0 %%Creator: Adobe Illustrator(R) 17.0 %%AI8_CreatorVersion: 21.1.0 %%For: (Angel) () %%Title: (mapboxgl-logo.pdf) %%CreationDate: 11/16/17 10:04 AM %%Canvassize: 16383 %%BoundingBox: 2 2 19 19 %%HiResBoundingBox: 2.5 2.51000020160791 18.5 18.5100000270513 %%DocumentProcessColors: Cyan Magenta Yellow Black %AI5_FileFormat 13.0 %AI12_BuildNumber: 326 %AI3_ColorUsage: Color %AI7_ImageSettings: 0 %%RGBProcessColor: 0 0 0 ([Registration]) %AI3_Cropmarks: 2.5 2.51000020160791 18.5 18.4899997983921 %AI3_TemplateBox: 42.5 10.5 42.5 10.5 %AI3_TileBox: -367.5 -277.5 366.5 298.5 %AI3_DocumentPreview: None %AI5_ArtSize: 14400 14400 %AI5_RulerUnits: 0 %AI9_ColorModel: 1 %AI5_ArtFlags: 0 0 0 1 0 0 1 0 0 %AI5_TargetResolution: 800 %AI5_NumLayers: 1 %AI17_Begin_Content_if_version_gt:17 1 %AI9_OpenToView: -11.1249999999991 25 24 1668 982 26 0 0 6 43 0 0 0 1 1 0 1 1 0 1 %AI17_Alternate_Content %AI9_OpenToView: -11.1249999999991 25 24 1668 982 26 0 0 6 43 0 0 0 1 1 0 1 1 0 1 %AI17_End_Versioned_Content %AI5_OpenViewLayers: 7 %%PageOrigin:-65 -26 %AI7_GridSettings: 18 8 18 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 56 0 obj <>stream +%%BoundingBox: 2 2 19 19 %%HiResBoundingBox: 2.5 2.51000020160791 18.5 18.5100000270513 %AI7_Thumbnail: 128 128 8 %%BeginData: 11078 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 %524C45FD37FFFD04A87DA87DA87DA87DA87DA87DA8A8FFA8FD66FFFD04A8 %FD197DA8A8FD5EFFA8A8FD077DA87DA87DA87DA87DA87DA87DA87DA87DA8 %7DA87DA8FD057DA8A8FD58FFA8A8FD297DA8A8FD51FFA87DA87DA87DA87D %A87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87D %A87DA87DA87D7D7DA8A8FD4DFFA8FD337DA8A8FD48FFA8A87D7D7DA87DA8 %7DA87DA87DA87DA87DA87DA87DA87D7D7DA8FD077DA87D7D7DA87DA87DA8 %7DA87DA87DA87DA87DA87DA87D7D7DFD45FFA8FD197DA87DA8A8A87DA8A8 %A87DA8FD177DA8A8FD40FFA8A87D7D7DA87DA87DA87DA87DA87DA87DA87D %A87DA8A8FFA8FD11FFA8A87DA87D7D7DA87DA87DA87DA87DA87DA87DA87D %7D7DFD3EFFA8FD127DA8A8FD19FFA8FFA8A8FD117DA8FD3BFF7D7D7DA87D %A87DA87DA87DA87DA87DA87DFD23FFA8A87D7D7DA87DA87DA87DA87DA87D %7D7DA8A8FD36FFA8A8FD0F7DA8A8FD27FFA8A8FD0F7DFD34FFA8A87DA87D %A87DA87DA87DA87DA87DA8A8FD2DFFA8A87DA87DA87DA87DA87DA87D7D7D %FD32FFA8FD0E7DFD31FFA8A8FD0D7DA8FD2FFFA87D7DA87DA87DA87DA87D %7D7DA8A8FD35FF7D7D7DA87DA87DA87DA87D7D7DA8FD2DFFFD0D7DA8FD38 %FFA8A8FD0B7DA8FD2BFF7D7D7DA87DA87DA87DA87DA8A8FD3CFFA87DA87D %A87DA87DA87DA87DA8FD29FFFD0C7DA8FD3FFFFD0C7DA8FD26FF7D7D7DA8 %7DA87DA87D7D7DA8FD42FFA87D7DA87DA87DA87DA87DA8FD25FFFD0B7DA8 %FD44FFA8FD0B7DA8FD22FF7DA87DA87DA87DA87DA87DFD47FFA8A87DA87D %A87DA87DA87DA8FD21FFFD0B7DFD49FFA8A8FD097DA8FD1FFF7D7D7DA87D %A87DA87D7D7DFD4CFFA87DA87DA87DA87DA87DA8FD1DFFA8FD0A7DFD4EFF %A8FD097DA8FD1BFFA87D7DA87DA87DA87D7D7DFD50FFA87DA87DA87DA87D %A87DFD1AFFA8FD0A7DFD52FFA8FD097DFD19FFA87DA87DA87DA87D7D7DFD %54FFA87DA87DA87DA87DA87DFD17FFA8FD097DFD55FFA8FD097DA8FD16FF %7DA87DA87DA87DA87DFD57FFA8A87DA87DA87DA87D7DA8FD14FFFD097DA8 %FD2CFFFD09A8FFA8FD21FFA8FD097DFD13FFA87D7DA87DA87DA87DA8FD2A %FFA8A87DA8FD077DA87DA87DA8A8FD1FFFA87D7DA87DA87DA87DA8FD11FF %A8FD097DA8FD27FFA8A8FD137DA8A8FD1DFFFD097DFD11FFA87DA87DA87D %A87DA8A8FD27FF7D7D7DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87D %A8A8FD1DFF7DA87DA87DA87D7D7DFD0FFFA8FD097DFD25FFA8FD1C7DA8A8 %FD1AFFA8FD087DA8FD0EFF7D7D7DA87DA87DA87DFD25FFA87D7DA87DA87D %A87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87D7DA8FD1AFFA8 %7DA87DA87DA87DA8FD0DFFA8FD087DA8FD24FFFD237DFD19FFA8FD087DA8 %FD0CFFA87DA87DA87DA87DA8FD24FF7D7D7DA87DA87DA87DA87DA87DA87D %A87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DFD19FF7DA87DA87D %A87D7D7DFD0BFFA8FD087DA8FD23FFFD277DA8FD18FFFD087DA8FD0AFFA8 %7D7DA87DA87DA8A8FD23FF7D7D7DA87DA87DA87DA87DA87DA87DA87DA87D %A87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DFD18FFA87DA87DA8 %7DA87DA8FD09FFA8FD087DFD23FFFD2B7DFD17FFA8FD087DFD09FFA87DA8 %7DA87DA87DA8FD22FF7DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87D %A87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87D7D7DFD17FF7DA87D %A87DA87D7DA8FD08FFFD087DA8FD21FFA8FD167DA8A8FD167DFD16FFA8FD %087DFD07FFA87D7DA87DA87DA87DFD21FFA87D7DA87DA87DA87DA87DA87D %A87DA87DA87DA87DA87D7DA8FFA87D7DA87DA87DA87DA87DA87DA87DA87D %A87DA87D7DA8FD16FFA87DA87DA87DA87DFD07FFA8FD077DA8FD20FFA8FD %187DFFFFFFFD167DA8FD15FFA8FD087DFD06FF7DA87DA87DA87DA8FD21FF %A87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA8FFFFFFA87D %A87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA8FD16FF7DA87DA87DA8 %7DA8FD05FFA8FD087DFD21FFFD177DA8FD05FFFD167DFD16FFA8FD077DA8 %FD04FFA87DA87DA87DA87DA8FD20FF7DA87DA87DA87DA87DA87DA87DA87D %A87DA87DA87DA87D7DA8FD05FFA87D7DA87DA87DA87DA87DA87DA87DA87D %A87DA87D7D7DFD15FFA87D7DA87DA87D7DA8FD04FFFD087DA8FD1FFFA8FD %187DFD07FFFD167DA8FD15FFFD077DA8FD04FFA87DA87DA87DA87DFD20FF %A87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA8FD07FFA87D %A87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA8FD15FFA87DA87DA87D %A87DFFFFFFA8FD077DA8FD20FFFD187DA8FD07FFA8FD167DFD15FFA8FD07 %7DA8FFFFA87D7DA87DA87D7DA8FD1FFF7DA87DA87DA87DA87DA87DA87DA8 %7DA87DA87DA87DA87D7DA8FD09FFA87D7DA87DA87DA87DA87DA87DA87DA8 %7DA87DA87D7DA8FD15FF7D7D7DA87DA87DA8FFFFA8FD077DFD1FFFA8FD18 %7DFD0BFFFD157DA8FD14FFA8FD087DFFFF7DA87DA87DA87DA8FD1FFFA87D %A87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA8A8FD0DFFA8A87DA87D %A87DA87DA87DA87DA87DA87DA87DA87DFD15FF7DA87DA87DA87DA8FFA8FD %077DA8FD1FFFFD157DA8A8FD0FFFA8A8FD127DA8FD14FFA8FD077DFFFF7D %7D7DA87DA87DFD1FFFA8A87DA87DA87DA87DA87DA87DA87DA87DA87DA8A8 %FD15FFA8A87DA87DA87DA87DA87DA87DA87DA87DFD15FFA87D7DA87DA87D %7DA8A8FD077DA8FD1EFFA8FD117DA8A8FD17FFA8A8FD0E7DA8FD14FFA8FD %077DA8A87DA87DA87DA87DFD1FFF7DA87DA87DA87DA87DA87DA87DA87DA8 %A8FD1DFFA8A87DA87DA87DA87DA87DA87DA8FD14FFA8A87DA87DA87D7DA8 %FD087DA8FD1DFFA8FD0E7DA8A8FD1FFFA8A8FD0A7DA8FD15FFFD077DA8A8 %7DA87DA87DA87DFD1EFFA87DA87DA87DA87DA87DA87DA87DA87DA8A8FD1D %FFA8A87DA87DA87DA87DA87DA87DA8FD15FFA87DA87DA87DA8FD087DA8FD %1EFFFD137DA8A8FD17FFA8A8FD0F7DFD15FFFD077DA8A87DA87DA87DA8A8 %FD1EFFA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA8A8FD15FFA8A8 %7DA87DA87DA87DA87DA87DA87DA87DA8FD15FFA87DA87DA87DA8FD087DA8 %FD1EFFFD177DA8A8FD0FFFA8A8FD127DA8FD15FFFD087DA87DA87DA87D7D %7DFD1DFFA87D7DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA8 %A8FD0DFFA8A87DA87DA87DA87DA87DA87DA87DA87DA87DA87DFD16FFA87D %A87DA87DA8FD087DA8FD1DFFA8FD1B7DFD0BFFFD167DA8FD15FFFD087DA8 %7DA87DA87D7DA8FD1DFFA87D7DA87DA87DA87DA87DA87DA87DA87DA87DA8 %7DA87DA87DA87DA8A8FD09FFA8A87DA87DA87DA87DA87DA87DA87DA87DA8 %7DA87DA87DFD16FFA87DA87DA87DA8FD087DA8FD1DFFA8FD1B7DA8FD09FF %FD167DA8FD16FFFD087DA87DA87DA87DA8A8FD1DFF7DA87DA87DA87DA87D %A87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA8FD07FFA87DA87DA87D %A87DA87DA87DA87DA87DA87DA87DA87D7DA8FD16FFA87DA87DA87DA8FD08 %7DA8FD1CFFA8FD1E7DFD07FFFD177DFD17FFFD087DA87DA87DA87DA87DFD %1DFF7DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA8 %7DA8A8FD05FFA8A87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA8 %FD17FFA87DA87DA87DA8FD087DA8FD1CFFA8FD1E7DA8FD05FFFD177DA8FD %17FFFD077DA8A87DA87DA87D7D7DFD1CFFA87DA87DA87DA87DA87DA87DA8 %7DA87DA87DA87DA87DA87DA87DA87DA87DA87DFD05FF7DA87DA87DA87DA8 %7DA87DA87DA87DA87DA87DA87D7D7DFD18FFA87DA87DA8FD0B7DA8FD1BFF %FD217DFFFFFFFD177DA8FD18FFFD077DA8FF7DA87DA87DA87DFD1CFFA87D %A87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87D %A8A8FFA8A87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA8FD18FF %A8A87DA87DA87D7DA8A8FD077DA8FD1BFFFD217DA8FFA8FD167DA8FD18FF %A8FD077DA8FF7DA87DA87DA87DA8FD1BFFA87DA87DA87DA87DA87DA87DA8 %7DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA8 %7DA87DA87DA87DA87DA87DA87D7D7DFD19FFA87D7DA87DA87DA8FFA8FD08 %7DFD1BFFFD397DFD1AFFA8FD077DFFFF7DA87DA87DA87DA8FD1BFFA87DA8 %7DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA8 %7DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DFD1BFF7DA87DA8 %7DA87DA8FFFFA8FD077DA8FD1AFFFD377DFD1BFFA8FD087DFFFFA87D7DA8 %7DA87D7DA8FD1AFFA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87D %A87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87D %A87DFD1CFFA87DA87DA87DA87DA8FFFFFFFD077DA8FD1AFFFD357DFD1DFF %FD087DA8FFFFFFA87DA87DA87DA87DFD1AFFA87DA87DA87DA87DA87DA87D %A87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87D %A87DA87DA87DA87D7D7DFD1EFFA87DA87DA87DA87DFD04FFA8FD077DA8FD %19FFFD337DFD1EFFA8FD077DA8FD05FF7DA87DA87DA87DA8FD19FFA87DA8 %7DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA8 %7DA87DA87DA87DA87DA87DA87DA87DA8A8FD1FFF7DA87DA87DA87D7DA8FD %04FFA8FD087DFD19FFFD2F7DA8A8FD1FFFA8FD087DFD06FFA87D7DA87DA8 %7DA8A8FD18FFA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87D %A87DA87DA87DA87DA87DA87DA87DA87DA87DA87D7D7DFD22FFA87DA87DA8 %7DA87DA8FD07FFFD077DA8FD18FFA8FD2A7DA8A8FD23FFFD087DA8FD07FF %A87DA87DA87DA87DFD19FF7DA87DA87DA87DA87DA87DA87DA87DA87DA87D %A87DA87DA87DA87DA87DA87DA87DA87DA87D7D7DA87DFD25FFA87D7DA87D %A87D7D7DFD08FFFD097DFD17FFA8FD267DA8A8FD26FFA8FD077DA8FD09FF %7DA87DA87DA87DA8A8FD17FF7DA87DA87DA87DA87DA87DA87DA87DA87DA8 %7DA87DA87DA87DA87DA87DA87DA87D7D7DA8A8FD29FF7DA87DA87DA87DA8 %A8FD09FFA8FD077DA8FD16FFA8FD207DA8A8FD2BFFFD097DFD0AFFA87D7D %A87DA87D7D7DFD17FF7DA8FD077DA87D7D7DA87D7D7DA8FD077DA87DA8A8 %FD2FFFA8A87DA87DA87DA87DFD0CFFFD097DFD17FFA8FFA8A87DA87DA87D %A8FD057DA87DA87DFD04A8FFA8FD32FFA8FD087DFD0DFF7DA87DA87DA87D %A8A8FD61FF7DA87DA87DA87D7DA8FD0DFFA8FD077DA8FD60FFFD097DFD0E %FFA87D7DA87DA87DA87DA8FD5EFFA87D7DA87DA87DA87DFD10FFFD097DFD %5DFFA8FD087DA8FD11FF7DA87DA87DA87DA87DFD5CFFA87DA87DA87DA87D %7DA8FD11FFA8FD097DFD5AFFA8FD087DA8FD13FFA87DA87DA87DA87D7DA8 %FD58FFA87DA87DA87DA87D7D7DFD14FFA8FD097DA8FD57FFFD097DA8FD15 %FFA87D7DA87DA87DA87DA8A8FD55FF7DA87DA87DA87DA87DA8FD17FFFD0A %7DA8FD53FFFD097DA8FD19FF7D7D7DA87DA87DA87DA8FD52FF7D7D7DA87D %A87DA87D7DA8FD19FFA8FD097DA8A8FD4FFFFD0A7DA8FD1BFFA87DA87DA8 %7DA87DA87DA8FD4EFF7DA87DA87DA87DA87DA8A8FD1DFFA8FD097DA8FD4C %FFFD0B7DFD1FFFA87DA87DA87DA87DA87DA8FD4AFF7D7D7DA87DA87DA87D %7D7DFD20FFA8FD0B7DA8FD47FFFD0B7DFD23FFA87DA87DA87DA87DA87D7D %A8FD45FF7DA87DA87DA87DA87D7D7DFD24FFA8A8FD0B7DFD42FFA8FD0B7D %FD27FFA87DA87DA87DA87DA87D7D7DFD3FFFA8A87DA87DA87DA87DA87D7D %7DFD28FFA8A8FD0B7DA8A8FD3BFFFD0D7DFD2BFFA87DA87DA87DA87DA87D %A87DA8A8FD39FF7D7D7DA87DA87DA87DA87DA8A8FD2DFFA8FD0D7DFD35FF %A8A8FD0D7DFD2FFFA87DA87DA87DA87DA87DA87D7D7DA8A8FD31FF7D7D7D %A87DA87DA87DA87DA87DA8A8FD32FFFD0F7DA8A8FD2BFFA8A8FD0E7DA8FD %34FFA87D7DA87DA87DA87DA87DA87D7D7DA8A8FD28FFA87DA87DA87DA87D %A87DA87DA87DA87DA8FD37FFA8FD107DA8A8FD21FFA8A8FD117DFD3BFFA8 %7DA87DA87DA87DA87DA87DA87DA87D7D7DA8A8FD1BFFA8A87DA87D7D7DA8 %7DA87DA87DA87DA87DA87DA8A8FD3EFFFD157DFD04A8FD0DFFA8FFA8A87D %A8FD137DA8A8FD40FFA8A87DA87DA87DA87DA87DA87DA87DA87DA87DA87D %7D7DA87DA87DFD09A87DA87DA87D7D7DA87DA87DA87DA87DA87DA87DA87D %A87DA87DFD45FFA8FD377DA8A8FD48FFA8A87D7D7DA87DA87DA87DA87DA8 %7DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA8 %7DA87DA87DA87D7D7DFD4EFFA8FD2E7DA8A8FD52FFA8A87DA87DA87DA87D %A87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87D %A87DA8A8FD57FFA87DA8FD217DA8A8FD5EFFA8A87DA8FD077DA87DA87DA8 %7DA87DA8FD077DFD04A8FD64FFA8FFA8A87DA8FD0B7DA87DFD04A8FD34FF %FF %%EndData endstream endobj 57 0 obj <>stream +H‰ÜWénã8Þð;p±è…LQ—¥Ì/;ÝÉx'‡a§³4-1'´(PT÷Óo‘:¬8ñÑ’^§[6«ŠÅª¯–Þýs8ÞïÅbJ÷�Ž…ZïÞIJ”�‡ÈPÑ€óŸRı}Mv&FåÇ t�Zý[“»“Á(cª˜ j G'ý¦@4íO#:c&(Ûç½R­éœÈ»l‹Ãn§Nhãbë%�§Ð7h¹z7¶àQÿ*¥ÀG#±ïø]àìÛ]ýåø¾>. *¹%‚ôžÑ‡Ct.ZÀÔ“j\DÑu-«xœQΩü˜0U¸Þ„Ng"¦äëýÇœxÌ^> �K"gTAž+“•AuÄá”,¨¦Ñ†»“>À˜À9‰s'ìfr_äòd¦uv\¤4¹WÆ•} In»aõÁÈß]ÈJ?@ayè“|ä:µ�xù,îqEeˆW‡ÿ´“>$ñ¤¬P7OóÌiú¬ +•.dÜrðB2€åpß×!ö‹ä<‘,^æ&PP>ôÁ�À”�…qh[¡îJ)ëúØ °kïB)`‚PàFG{rtÖ¨«s6OÀñ#1×y˜én¡# µ}§àÕ¿ ¶çi�J‘�²CÉ­³un8ÁdÈs`�H‘§ƒäF´ÚEƒ´°ëuq¨‡lãRõu¯UÍp°XÀâ?ðão =À܉ÎЧÏŠ�|=j#âÖAÑÍo¡ð¾�¿ÐÒÛ­� ‡q�‡ÓìÓêpn¼þÒz6´£Ö°_[Ùô5�=uÍh>ÃÂ|Ka«`Å¥Õü£$ƒ¢â奭Õ˼ֻܑÉAµ†$Ó+i4ˆ\˜µïyއÀnƒ=êL‘1Šô«à(i¼Ùún‚×J| ô¡¡)Ô–D›çÜ€_ˆx¶kë³ÑLRš;=‡Ç“ìwÔ~œóØûÐÚ%›æŠf從”¤�úÙ*~€þ†TtËx,W“ªâê‡Z¤%˜í'ÙäžÈìwhÿcО̞ŠÞ“:–†ž­‘Kàê(ÄJK²'«_�D$t`8ž.ŽíÈT’?(1¿Õ¯)3- +ïà$ÔÖ¹qb»MéþïDoDb'ÿ�ž¾Kâo�ê¯Tè‡÷;—º}åŒÖîEy¦Äüu;ÙÏËÃÃŒè©\ÏNPb»¦ãO¯ °å ™òÿP¥ÙÍþ�_¹ 2΢_½×Cñ:'§BA#;¥7êB2xoÚ%ÊÏ÷¼nG¶;ðŠ0¢dƒ›�;eïp[ð±-ì[Ýoój±‹W‹×ö +{�Ð|Ûs]ÇÝæÕ-e³Û]:}-ùÊþùÛƒš� ‹`g¥­7À½/7"vòsÈCšP‰†’fT¡å«ö¬ªzƒ�Ñì�H¦¨d_ˆ>¢qZ±Ã±žì¸ÈUš«-{¬¶#)Òž¤¤%~OŸ�+µ__�ƒ¬'ÕT¿§7$ç�wÇ{.‘N£—ýw(X¢t`Ú£œSÙ¼ó*“Þ³,ådqFä] suÂÏÑmW�0ì�JJv¼|;F”_ŠQaƒ±i(2¦Ý5\{y!‚"7Ð]·Nhﮯäpå‰A¸D{ânÕ ã”ujd +Ôç$+1qK¡Hp¹"D8+{›S7Ó”ÄñÊ“¥BՉݠ^®D�4%¤ËTR™¥Ô$ɉdñÄ ,)‰˜*Ýp½u¢#}¯“ˆö’/;v×ï–.¼("iUáë�0’O¬Ø¤÷˜ !ûuå{�Õ±Š��½µÖkG?<ªºæ­MV/µûžçx›DG4~z®J]6æÎgų*<Žÿ:¿ŒMÇÜ`-ÎWŒ>@±Aa*’Du™‡¸c».Œ"¡ƒƒ®‹«áqƒ¥ŠÔÕ±Q(tµs��ÏJ߯îÁFR­OW-¸’­®t×é5YÕP¼D#xqsݾlk6.Õ¸zÆW'Ý“ûâñ�Æ@ÖÜ¢/Ëþw9ë´«ð#ëeõ:š°åú¯—ûtƒê²Òœƒ�©�ŠL9íe`{ö']lŽ›pÈIB¯XƦŒCqê ÓÍ» <ë·~·Î6ÏqdÒok¶™,¿" ËnÁÿ’®q+ ’˜>3™©ïJxc‚q¬o^õFtC¯Öhc˜ûÛ5ÖQΛ%ü�Öúž¸+Jc‰$^cD7ü:˜.EÚÄèœWéZÛ:¾‚Þƒú”í  Ûi³˜ÐÐP(¡Ð¯=ôT±åÄàX®$CéÕ#¯Šã�þá<š}Þy§U�ÕÕ·w«^Æ”U÷?ô.NѼsñ2Ž·�̘Թ’Ô±G‚è#a.Œž7ò~c76ߨi6+V¿P•‡'Ù¯ŸÝÅ'³11‚|Σ:|Ó®µù½ÿI“hR�_NÌõБº5w(&9òý@XêV“.9Áq^T _¢ƒhK"h…ó¢­�T\�2râË.¼Ôúÿù3ÂÉÀ¶=Ÿ™PvbX²=ìâ10baEµoe�  h™ñÌ1?w›�A/ŽÕ^ô‘)בsêP}ÊèŒhôÉáXvhJ¥ÞïÈ÷Э®'à3´ã%óÏOÙq—Ô¶"F¼öM‰iÁ¾»+^sÀìlâ'7�‘,Þ…!G ºÑOÜs¡×¾8àùsïË1”ó#÷U0,²‰¯dç‡-³×,1t 9Y¿ øq”ÌÏœø;÷Z¹ˆŠ +1÷šaFœG¯»l˜Îë©7;زW†L1t­£$a9Þ5•ÖÄ”±åò€.fw¬q'²2Ö“@�:°Q¤cjÛe’ÒÈÐ…iÊRBßÃÚ}¢ìa³ŸY¾ +nŠgeQV{¨sŽç{»(FåÁÜXU3 (¤HÂKŒÖ9Çd”žkfÍdnþØØ+Ñd¢’QvưèËûÑ/aæ0îe^?’DÌÇ<ë·Ÿ™j•C[Š3¦N|˜LR¥¢ ;1cFê…‰›‡¢ŠÐ«B¿.©…R ¦R‹?ë��Pn™V´Š_6GWÅ×h^¶>y8Aî��œ�—‘°t§5*íºì:UØ×�Ñ1Cü €ó'ù¹Ž®Æâ SC‘ŽòE•]XÎå� +w +w*´$ ),OQتïDLº‹·«Ÿ¥ùõú²jt©tV�/äu«rù¥a*È PÙÍbgU�%ÕB/!u#+œ¢qáòSÚµ 1’噣µáï1ªûÒå<�ë–&1v1ã婼ˆŽÎrÑ &Ëy¨ÀÀ ´·d|c‘§p2¯§€ÈS‚Œ€í¢ðÈâèiJÄñ£œYì •ˉC˜Ëû—ÈO½r(UÂÏyeÏÔCpn9z‹7„o:P7Á–ƒ¬9CŒÅOˆ *UèYB +cdcø&”?è[îéSéÞÀBbMœDM`Í�ñÀ;j&æ-Ž<çÁ�&¬U&G:³Ü¹»²¤ù*oœ`|aòËË +äNÒ^ÕGÊ¥ãPH…ñŽIË%#²z{„Öà¿uéÅgTx±v­èZíŒzƒÁþžFdIäÇÆ»‹•oëÇ·ÿ¬á/g»+›Ý6;�M'Îë³þë�µÕž…k|©ùùýIóÍaûóéÛóÆ»Ãá¿«çmæé­þÉÎùþr½Ñx³½Íµ{m²±½Ô>ú^û»}¼áò6ÿ°³õj¹}4|Í"¡3Ñ�¼ÿ4l7ȨgýóV×jµÕÉ‚©¡ñ?°×Òúˇ­¯§B»¿ë6¾nntftÈ;ƒ‘˜®¿m¾ñúZcé¶{o¯Þ¾ZÖÌí³q¦²¥Ö�ÙºùôíßÎu¯v“oT•;¼k?ôïÚ‡¼6[×6–½þÚ©a¾Zö“ÕÿkV3ïn[]»m94»SÑ›¶¾ÖçÒñcEÓëßíãw«·�p™÷¾O¾Sømå§60¯»›û÷K�Ñæ'ðá 6¼WË÷këú‰¾÷i­7müwtÜYÞ]Yï~Üø±Þî­~î÷ˆ÷÷Û›³7Ó#]Çò7kýÄNËõí-ÜbÖÒ�Cëû™Ñµ—ß­n²õ½Îp´òSúÿWûèlºûj¹yts×î8úêìÿÜWçz²Ø¾‚\„QŒŠ, ŠJ·GÅ5QcÁÞõþg4æÌ7gίó‡Øk¯ò®N¦ÊÉ»ùL-X6t2"âqœ§ÉU‚69Ž•Â©`cߦl;BM 9ô üK—Sž€*­Ùê[Ð)‚œç�mÕÏÅNÀ/ùãL³ò®Oò­I/9¿Ûô–¥Ÿº¤Ç´™Úâ”–V^&p ÍÖ¤DÑ_βúæÝšƒì¡ôDòBP£×|½“i�¿¾ñmµˆÉe¿:ÄÌÂ�p„îE¦Óª?¬df©+ŸvŠON–ï}äISaÀ¯"Å®R‘T0ø² =)M£è_Ì!)5(n™(Óe–c±¡,IÅê÷÷›KbFÍW%>šbE–ªŠQ_„ÃWböBHÑNc€Áì2“®: É–ý+š²läÅ’ %� 1ÓdÃGÓC–Õ';K^¼~ØÅJÉWÔ龜±¹�cxÿ¼ÖÈLëû€ J3ño!Ù8¿Š�ÂùòÓ´dm8ÜñqtÜXÕAæTäó ¡v'Ä,<ä3 +¥} +ü�×>?)í¸þ£¯î‘µ;öæ9™ùé‚P¶Øq*”²â @£ˆáÉ}r¨yŒbP¤øF7ìuõy¬È=ÌE禚ǽ÷ÊsF_©d)¨Y‘ + ³ƒ¦®N`„ + ©6n`šÓ+Ïæê‰MŽ›ºÈvÃíGTsëÖï׬ð�¸g.áVÓ¢üBˆ�ò„&Í)R©³z¦-¢´Ñe;¬’F Sál´ü3rÎUÍ[]'5%Ö “éì0ðBXv«Æ†¦*1Vb•*8A:×ò#¡Jh¸÷IËód#­·­�ؘ¸‹"i2Ø«þÝ{XsØž¨ó7píË-1diŽ«¥W1Þr Ðv7ÇUPm}än%(~5"š0K}À?TFÑy[lãÓ=�[Ô½u|¹ð¨¢Y�H±ÎwŠ—VžýBã³´ÇVÛ»ºïÛŽ è%¶bMS£‹êIÚV§y8‘ì9³3 Þ´þã<>$“ù“*öØ“è˺'Ö‡ùzʉC�ÏÉA@2l�*PrKt÷2ë—FÔ:EÄ Ž�á8N¸±·ìùê𙊼eucæ¡Gý¦q;\*Œi™ÎÊ%¾¥©B–NQÓQ"Cû=rÆü—¶n¼%ú ?%X +et}2õR¸OSøöM€ ÿI˜™È46Pôð »W! �ˆá§òB˜êI�èÝ⃥@y÷,Sù´y#‰H 6U¤’i®ˆy!�™Ø`¨[Í•ð_1³¤ �ÝT~Š>M~õ«ó6º“„çÈŒŒ%"Gêa·³dÍ„ Žð4¥ð®Þ¿wÔ×þŽxpÃU +¾Á²x#3N÷p¤�UÖ'bfJÎ>ÑAxjKúï]‚UFo&G,ôþ‡¨ü¿Ưa‰K¦UV¨< €Hþ V +ÛŠ2çGʲWž�ú�©&€)ŒØƒ™“Ä=‹Ì½6²)ÇôƒPDleˆdË[w^M[Q‹È!â“TIšVÍâ�ƒ\s±ýçPÿçxA�#çkŒ=+€È435ÿYb—˜9„«%ÒQgâ´·‚Þ0üÐ ¤<|tïG?ŸØh·šð6m€IßÛ'nA¯œ•´a¹“о èbЮø­Û\`rQVBÛٜɋþ@PÇ«ƒ·2Û8;W_gìcÙFë ØÅ2 x3xô«æ½ŸV�»Û¶(§Ðzópòü¢w•bñ Ù ’SQß*¡Þ?ŽÀ»6ô½í‰wj=àCm÷xzõöÀÚÚ«c#$1þpÀ¶7ÒÒh¦L}jΚ­à¤T¸p0×)ì3^±­nö!¬¦p·åÖÚÎÀãÙQp-° •õOê&%0­Çºÿf9ùƒÕNJÿr9ùƒÕä:õ™€¦�ðüëb9ƒmÕzŸbC %¾sW4‰Õu>ú(HhŒµp²XýmìqáÞö©Ü§R”˜7 À;’jBÏ'Õˆ¯3‡a©`ŸàdßEPا™bPÉ/Ùo 6°Y@à®ð‹ÛÛZ—b¥Yá²§¥ÈoKÆ3Í0>3²Òš™õÐôÿBXóÿOE§%»"¦ ½j`ÀÖcðæ?g÷¯#Ž#“Ñ÷{¶¥_–þ W˜¬X_ $¸=;Ðc=S MwÝT¾)k……«÷{^…»+§<ÿt$€ÂƒÁÍû_A`nä¾´*“`©Q3Ap1èK«pÊa˜ÁN%&›5ÝT°íg•#i¼ú4¹°ZÿËçÔÔíde˜à6qY~W¨gÇ¥‚T« + [t6ïWE/B¬½×[šâ�ÜÚËÈã�›bW—Q•*íƒëì©2=>H¾fåƒìÿµä IM8çÍh¢ÜÎ I*“ÂíN¦ NÎÛxWöRNŠ^$Šö7OŽ;ôú"—,̃Fô\ˆhSýÂñµ�Ó|^”«6Øoü“-èNº¦ ¼Ž9´4"ð£þVh×HwbNÖ ùqKç¶ê\)ùŠÐ´"ÎÔ4“ (…£oˆcìgÄ8Ô4¦4ó÷ŽÙŸeo˜ݨ‚ûÛü�(UýAöÚ�Ù VÁ�!/N ä¾èéTA=ȹմ(Û-Ûa `³¦ÂÙhù‘mÍ:÷-{#`|)®I‚Ž;À̯y;Õ³XìÐìÆTñ}¢L6œÿ|žWÅxËPŠœsâfØ9ÒÁ �kùQ‹‚ÊÅÓ¡{zÅ)W Ië N¦õ-;^,ñ½ÿR}¢”Ÿ9„ƒÔ÷˜knƨºŒ‹HpyØsfê(Ô]ÜÏ0¨b÷˜®îû¾öëÒ LJl»¼¯ß÷nLÉòuªö+£˜M’°à^uLRŸbÔÃÕ@ùkÇñ,pq +|¦éVò›EOе>‚bÍW�‰zƒ›E–È~±ÒŠží£ +n(©�’ï•|pØÐ ¨Î|ý™òñ†ÛU×NwG1^Ò:îò+�׃†3÷Ñ$1#V &¸×¤áªÏŸ�‚&ªŸTÒÇöö}µH}¡å:ŸMÉ%à♃9—4Dr¬ ܽ9¨|/Ë_Y˜ýªœ(/�¿¯Ò5Uµú¾ƒC9"‚8 jYj©8V9ƒŠ +x»¿þÑÏÞ'¬cݾÎça§’½“•••eFñ7k éÂŒÀ Ê¡WO{²K"ov¤~}ÿ�Q7DÖÙÆ“¬<n‹«5¯gꫬ‡Õa˜1eÚIaTÚ!¿i·¹1Ì(òè0Kjë‹�)ýR±^ì~`ƒðdèN)¯¹¾@6ŸZPdúdS‡WWxÒÛ;:¼™ÕÁõþ¢èÏ*Aä„S™âvɇ¾qìqqËöT-*î·$;Ñ`ùŠú +Cf]LÐ5ÔÅ1][bQ¦‘á«t–=Ú•÷õfT€ÖÐôÙädš!GR�[¦§?” ß�|¦7š_„¹?0꺂Œ=ƒå.—¬ÿ~?.—*Tl(Éçˆø+€¤· /2dºeÉÆ ·lê0‘/Tq½mÙ#™ÑJ(Ò«Vù-­0il˼6aBº+VfŶÛ{Üt¦'¯èÔQ›׉IöÏ(°Ð…¬ZŠ>×ÿô¥™÷ì…*íj{$O–Ê0_NÃìà^¨8%¯3�"Ûtl|tw)žm¾óÄû™‹´$”ÎÔ7[›8‡DÂ-ŠÌGÛw²µë‰1·WvÓï)ýþ¶–ÇÓ[ªå„=寙+�u� Ïž +¾y;€ÅÁ‰Ý7òÉ?ñÒtÃøÚM¥”�€ç^�j"Æ-E –=|¹·u`EMK^ÁU¥5ÏØà–ªyØ4LÍU°X¡<}¡¸,ÄísÝ_Lq@Bg}]$–ðÖß(x,¹]s¥¼W‰‘&ˆ!! ùEw¨ßÝf…@Eê™Ëå·É}N¦ÆæªpF  eìðâñP ˜JjÙ¨¢Ò†iDÙ8#v [šÊ=ö^¼É ø%a¶,âzxHä; žI¢Õ¦IÑ?£XFÖEÇBL|9“ÜÂÇ�_$�_$ËÏ�íš5|2*³ ¼Ž™¯¦~sõ„¯25$“Tô¹þQ§>ÁþR—߀òpÕ‘hÜ€& +MÕç-ÉÑåãéfVMAG\€TÐ;æ°ðï¯êɽßmÙ�©3bw$ýf­�§&¼…htáA¡³É­ º¤´ûKA&¡ÁÂeG¬•ƒ8»Û§¦Èۿ˜mlÏù9Nùí +þꑸ0»™Ì´–kl‹œi©nœ¤›RÚžï·¶Ï+Š�_¸‰l2.MàS­òO±q*·>`ó¿e—{Ÿ�ÖÎâ¡…^(€06±Š QþFSd{<Òð#�À1úwvù´aõ " ‘W‘Þ{ìMí„ ]ƒÿtÖþ½ïÌ>ë|zj $¯Ór¶4Ÿ” 4ƒsC©cŠ'C]íÍH˜ì08’ØÑdÅ3©’n°hjƒ +�w´[ŒvözVÎøöðæVÐ9Ú[*ÒääÂB~fË3“šW¶‘`î°9+ƒÖSñìò,k?©W q˜í/.Òö‡—8EÓmÐÛmA WòöY”þ?~ kéµò`î5€O/z„ª1í0 uY…ö(8ùÅÙ=aRhÄm +Bâ¼`d6±•$¢ÛuSd¡X.®¿$·¹a¹iªsÕ*,?'¯þ ô˜0óñtvÔÙI6<>-€å‡[˜¹Ë#ÓÚ%{O$<ëÓz°ïæªïq€½‡=¾"Ô ƒä‰Ï!)N·,‹9n•$ÜTøü­ùSˆ‡-(t(aqEã�ŸîÔtã¤+�é×¥âÓ‡ähÒÍÁ’–Ôá"£"Ù–T +ÔøñmŒÞñÍg$i!fb³Ð'»C£b©?ì .{ÏâÕ¤>žŸ…éè¼æ*RÅoíFè!,&¬BØ‹�3x‹U�%†ö ð�s˜¯ô;·=yÇöÖ Ì(ãw‰Ýy þg·]¯ã3$pàZkž§Œõ±CŠ�Ü¥·ôæ^¾ïÙDé%ËÓŒ¨#®38U?>Zó’,ÖO‰\HÁTxPe™T¸búó)ð«Wï‚è·ÌߊsUx<ˆ)vÁ4ªåLÀÕÀÌCìéJM7 ù+;ë©Ø^1~ãø´ªðãþº„ƒ^˜O‰Nãkse˜áûWßBÐȪü‚&ÙZ0¨�‡J6 61Díš,aî×?ÀùmÈ£ƒÔŠMô⨭úÊ8¼bDN§ê¬�ûæä,WTô9ÞÝK(ý2ÏlsÜHxl@»û!»»fÎþ7ñfqMK(WÙ{?F>k~{„@•MA]>‡aÕö~Á߯–É Š¹&ù¹È'Ìøyh +‡²ÔƒªøÜ]I˜ßÒt¯‰ø^²Ç%;ß÷r~6Ý„™CÁõ)L£˜Ù ßÜ»k‰?®wó=g+�r‹Èô;sx‹,\%"@íÊïø +ª2/¾QÛ[‰ŒgDd»#ÚRH®–ÅÈýwN!IL_ÆmQ‰"ÛLÔM¦'_CÒÐuHzHÔùE¾ ®:¾ã[ºÃ½¥W=Íá…›•&ÃŽq½0Ì;þ7ïðN²ÎS‰ÆœïêÜÙ8ŠzÐ�Ü̘�a8�:1VUwÎÀ§¬éGya(É%M‘&íÃìx1!I2éÄ*ã…£¶òùb`$u.;?9Áù©ÉºlD6ê\½˜�XÛДÃê…‡úlõ€ÿz•µú¯²"ý4ƒÎþ’kç�¡w2£su¦IúÅ*ëÄêªÑ’ª&ÉÒå ª’žð‰Sç½|0Ì4˜£Ñ +¯”ƒ(ÿÛ¸�90ó»ý‹3ãĘv±RI%9ð+ɦW$Ÿœ’H¡;Çp ©¡HamÄÍ_±ÕÌÄïÍû/ë /ˆ J§´-{Z¹™¹¢äï§1$×"Ö®`¼œs¡˜¿åðº�ü–rëô+¼VàhºŒ¸�s¦í +×úœ Åk1Ë Vø¤«l&ô˜6Ém…Æ4gSñ´Ó~H¡SAµpÿ8Å˹èðjZ>7gÂÇú;]MëùT™êEõ¬—ébñL€�ÀA±#Bí4ÄNíµ+¥OK[çÿM&!‹Ë÷öOºL2×½/®+ˆ£Èrýv.ñœx÷ÃIèW¡¬�©&MÁH9Qä(¦;)Rž°'L¹ß½-I«°ô?�b¦‹ åüZSÎÿ%©æÔªÆ1Mé7 +2zFj$#ëJUî ’J{jlϲö¤9kxÉëÛ‡ólÊR˜À?óß`aëgOjTö¢ÛwÅÑw¸ |\K6ªj'ø%Ý ¤¤,l~d‰Õoâ8ãJ{•ðÑ�ÌS6ÕÊmš­_t"ާŸ-ô¤K8Ÿx î\[€…NBƒ: Z°|Ï}<4N ÷–n¿)X] {2š–pPwì�‹ !‹¥;¨ P‰‚°\r|è 5çVaëo VÇAAîã½@„ÚX®/ ¬ÄèÊõ ŸûxMs»›iÏ%Ÿr› ŸÂ%N�ÖívEÅ«±ëûDP’sAïÕ¡8ÎvëÔyJܘ;x;†+ý÷0úò½,¡&ºìÝm¼®ÜÐ Z•Ý-&•\.Ea¡íâWQ…B¿è±­j¨ýF‚fAL"xhÅci/¦® ++Lw’Øuí:–Ó- Z¯žO€ +î×tXÌ ¨‰6ê:`Ú"tenWxtãÙ›…1f®u¾ÖQºÆ` <™ô¦Dèf™rü#A«àM¨dTŠ1c®vüæÞ¡QÄAE±æ±(ÐyÀiHwÄ%dèÌ|È«PiºˆSQñÈ Ë\@_ŽÝDè¥!4!;MtÓgè:â2@é�¡ùAM4Ë÷ýE}�h¡6ÌKPÏe)¬yN�&s0šWV^šrŒ +…5Ù·~Ún¥*¬ÑLY_ +—îD¸6” ¾Khˆ6'ú…„–(”bù—O•ümx º®6 a-CS�JEßÊ¡�WŸÔÞ@᭞ў²‡Š�þÎ §çŽÌmT`ñ³ÅÍ9aÒ$ƒKÒ©ƒ¡úE8EÓ…äó‹¶XÑ’[Ç¢íæ7ûš\½’‰-­Ÿ́ђWª¥a9CUPS~:í;Ø3¹vê©�–Ëì@ˆ{áÿ@.Ã{ß3ÞWvÃÏZ[å³7ú[’& ó4dKÀަñÒ�¼ît¶ßCµnúªá_;Ü!{G´îÀâú?ï¬ßWbî„hಭëеhf퉺ç´ì¼Tu}_ž ÁO§6x(×ï‘¡æÜÂg€Â.vÆ‚\›o p0~ùªÎHз+м'¢ëû ›Í¢BÅ}Ô½?C:h¸Àõ>+±4ÿ­3¯Ù¡…r-«‰V±âñÍï%BQ´ p›„›ÃåúC´%i±:ÿ°D(ÚˆPisX¨P¨‹»$CõF� •æ¢yM´4‘LIº6.¼j‰2 +ý¦Äyôú{R…QÞŒÝu#7ªÜ÷ž³.¿'U 4óWBçoØ‹ÔÍ¿ÁÂ>Ì(Ñ?kòhþ“‹ËɲjƧýLÇÏœCÅ/ÊLí-™u«Í§7÷¯tEó,C.{¶�$ž4Ë·ÒÚÂ$áKAšFÉ�¯ú]L¼œåÉJ›c½tâ•RèÆd$ß©Ã?m´ò˜õ²ê�/ÝÒP¾<Ìú…ñ>/ù嬰Fä¤@+¦º‘­#Ïü§r¬j#0£3 Öî¼ïs™¥a$Ã0$S x]¨ó+‘�‘Š=ý¿Ê-P.u{•�~¼Ãèè¡èW·Û úÕ)U?Ô+/4üæþ–¿nw©ïCËß +Ó»3'pvWürÛXúÒãÝ\”ž>³ÕÎÚÃëMô#Þ$5òš+Î"ëJ�Ó†¢’”•}æ@”GÖvôPl—§lXÛ £®!+µ…Ÿ•òâƒQ-å/WîPÍD”Ó©æ±\WM~,ë^[rëŒoñ6Î×L4©©ZÙd­ðÁ>Àr¿~½®� ë-Cì q–!€�ó|Ùf˜Õµ1•õý…a¦ä. uY:>%vΑ,ï7ØËæ{âeÄ«4YŸwþíEÞÍÙÝ:ã²N7óCy`·_GŠW|9=Úá¬WeÎ5ÉA‹YŽù2RÖd²C¥‡"<·ÁÇÔO_uW1¼‰„6 �dn¢dà#ã”|ià¦0Õ»²Åô.áv.Y‡Åë=îzéÑv1¨UoOjLØ™Q?1ªÞͪ*ÊJ}cºÛ¿‹¼fµÔéB;?錡n+1w\ Ö1I(–DJx¡ÎÓi¤Ó‹d¹Ò+UçÝÑ< =×Ö«ƒ…åÆÌ¯õà�‘îÿIul6íüÍe`¹ZvqW!¿<|™¾¡Ü–KS-/.û°ïzf±sÝ#J~Dƒ?³˜¡¢=j1Žij-yHî ‹+Ë÷&Ä"dœŽÕÙX®–ziÿô�þÚ@‹oÐØ…«uL;`cg¨ÐÚüGYYp§BùÖ¸�Êå$xò_ÁD¬±rå?YçöÚgºm�©÷Ž%Mž)ȺËÂnšb·UÓ=¢Üª7�Ó…ýÏ6!¦=ÄD_î†Ñ¾E’û+Ý·ÎÎó–ÅSHùƃ„JF +ÖÕIžUV�™p? n·f˜ñþ—z¤|�dU4Œú�ï¦P:‘–{ ¤\¬ŠSPå_ï/×õ;¸í8ý .ýÖ¤`ŒYns®üú¨M9²¿‹_åþ@¿ý'«Î–7�ñ®ç¹€õ_2?ÚƒÁD?f¬«)Ž3ºæ ÆX¦¸ÎXú÷*]L—â?%}Š–4Ð÷8pÞX£fM;…uL·çªÑf“M‚í~JWö<ÝR�l‡:2a‚OùË6]lœ½¡‹ ô¸hRGŽþ�õjÝK‰âO�‡LA €¶â….·(HE Š-âJëjäòþ;3™$3ÃÜ|aý±ô̹ý/Ǧ ´QiùR¯Ó–fx­vܼ¹"”ß?ùÈêT5i§-ž?p±ß¯ô¦[ÄjªBßÁº´—°í ÆÔXÑŒ.ØÀõ¶�ús¤Ñ‚ +Æ‘¥Ã¡؛DžÎ&T�[éR±½d¬t¾Ô5÷˜æƒZÔfz}³&m¥½ó†^ªR×6¥ËÀ:a‘ 6‘ b­dv"¬ž5iÜ /¥îyb›=G›ðY¯'WäŒV±\켕òag@0 ÆÜ]Ë ÌËÍutßtIQÞÊ'+—Ñš i@eŒN—£Ãh໢†�‹¦ÒIô»[3œ °•¡¼ŒÑ@(£Á¹04¤Ãh½i(Fã;¥ìdñšßû`j§;À>Œ“ÒÛ1e‘G1LG‡>ÔÙÐÈ©¾’·Xæyš<÷¶È¿J)äÐKÒÆ"G>UŽc®9oe�b˜Ä¹çAÞ<Œ¡‡ßé ‚àÍÚýk�¯/à]Í·tfý^@²žV†¦Y"˜šd ]šÁìæõ†4ãcßÌò¥^§Þ 0Só–3Œ2ŽÐÚ £ÐZéÇ sΉ³ïÇ.‰»rÓ84•ç„–Üà +L ÃuÏÓBØ1_ Ç'ɪá8r­qÓDåZˆ.¾þ÷]øûû¡ún\[ A0©¿çi!Åct° ý=9S;r´ GZ;Q1g{õ*âè87u6Yaìú4ãØB5”k!‡aìÈax5”ha1ž‚ÓgÔ°yE@5äU.QU>öILÉN–ÝLæ¿h1…>T$TŒ‹ÏQÔJƒHª~C£ù†N×÷–t°Ðèæ…°MÜ/‚`j÷:v,Ÿ¤!¿éYöt\¦Jxñõ‘—±<µZ)�^YÛ ¹ÕdŽ´\¹?8dd |÷k¡sW*„ V?�ÉÒÍ­�êÚ)ôx üg¨¨¿ÜÞÓj¥\ž·t—¥’VÜFkÁœ=‹¿w•ô‘d.y¬‹‰‚)–o²ÎÆ”+ŒÅHŠ7ÌÒi¿é€ýqOœïÌF¯�;!LŠJé^h¡Xpá¹ÐÍš‘°e3õw�ñ F“Ê|~qóìüí�GÕèÓªV?Ùÿò«Þ¹h×¾d–1 ÈõNéÓ ú£>èTÔÎÒàÛl½RNÿ[©”3Í$öm†ƒ=˜é”1 /¢ùø]ã-�Y|¾Œvg‡A"™Öç÷Dåy5ŸŸí Óùëßg~—£°Ö¸J#µÅçÛb›\¯Ñ<8¤}˜<¿;~Nžþ{Ó"ö…|ôèùÀ<Û›Bæ§žÅ�}ñ£‘úSFøh¶Þ)ß2�¢¹ g�£æÍ­±èÑÉ£Îá ñè“eEƒGç‹brázËW_èúÏ×§Þ£Î_òѳHœ|´ðm?xt¾z°ÓÌ£†I4øìôíNðèq4úq¼ºç?Z …�‚ö¾å(§Dך­O;á£ÖõäùIôè„yÔeo•¾ÞöÅ�Ö¾a{÷ßó§#Ñ£À]¬MW�þÂ{^ÔüÝ)ïw®ŠQ¿,Ü_kE,$Úîï°™¼>öÿEŽ.Üäúê/k0Ÿ¬ó¹�¤¾ ü‹A•¡(�2’ïn-w$¯¶­©Ðtû.%®ÔëaÕ>(¿ÔQ†ûâ³—ðuŸf|ªo[)A¼¨“ïÇ.ù'€g åæÌ´ºš¼x=¹"õ¡Qò^é¶S­bøžÀ)Å…)Ñî7ç;¥ðþ·Û 5:Œ}^RùR¯ÓÚ¦O¸K@æ “\XrÓËX㉓K¼S…qM˜’jŸ¦Ár†ª�`~¿ÂÁl7õ«)‹vÓGs�” �>åÊ?N›íÁŒöÉéé× R3•mÖáš_5àùk?Žêìsš¦Þu³ ’¿YJ-iÔ½,„äÌ –,ÅkMÁ­éáÁ2ñǸ_…O%‚ÒH§„ŠC7í–¥ÝG™Ò¼£ü¶?î„]ÎNÆ£®²ª„…ªòka– +ÌœßfUÓzWÒ¤�¶KÎŽIæùÙ¶Ù4æw1þCã4Už!p“áÕ6Ü8X!uGzâÇÜ”±àf¹þ 9y}Óµ8ë1·’£×Ð>{AR£ˆz¦»Ÿˆkþy¬q9¹¾F€ÂK.Èë1ŸäÕÊ¡"Á\8efž§ÉsÀ‚µ”û�ÛQü :†½2tº)â>9°-59`Ë íÄ“#Q6/Mˆ"[û�?ß×ÏK•��Mׯü$ÿk%×$Mjuçe˜œf a’¯Hi¥ÄZiÌ0⤾'Sº¹Ã£SΠN�æ{Žæ2Û&œß‰É›ì˜Þ©fõC-ì˜$Xz›Í +~ =ÿy/³›`0Tv—³wÙ±Ü.;–ß&–S¼h)´ö'—û/ÞÆÿ¹„l)sëš^öØ…CGxfÁ¹`çkü%äöK饦ç¢:öºm%;ÿ¹ä{¨-Ôý¢sì-K\tó¼sz2„>àbá;XáõêOZÔ“ìäeÒ ?!ÂÁ‚ù:½©æÆu”¹rÄ…+�}e;‚#N±öt3�¾xí`̤BÞÎT` +"™s^I|d)^�3>2÷sñgÉk9¨…ï#› ¤sOw ƒSÉu}ô*½\i·Ÿ¶�4⯼oíÇ^®„ˆ nh!ôI®ÌIÉìØËU¾Ôë´vÐ'§ýƬ{Wj®@u)ñ­ë)¦,©ÁL“ +)�Wv´OÌAB¥d˜¡’Ê•œ4§äâeF²ÄÃùƹ#°Š›ŽÞ±Ꮍ5ìÚÏ…ã'šç->hLÓrr~¿ßçÝq$Ãhž Ö¡ûˆ~°Lü�õ,µ’‹é·íÐ7+­÷\ŸìâµÜ‹W”Hv2u•U%,í‹¿T`æ4ø6*èäì˜|wÜ�I;m‰ÌV¼rÿÁ›yÐC«1Œˆr•'\ü`zãyØr‚î™6ËÆ,£‹oÖ¤ÍòúZf¹ÉšeB÷™u�,CñV1Dám€ñBìD©û)&Ÿ¥ÿq'eÐ&CóšRdѦKKKèî'è˜`C›k¢·pÁÄ'‹×ïˆ-UЕ´§A²† +º¥®y´-p›èZåø�‰òý&Ý�ß•ôP½É"üº•z!GÆó +¿/ƒajH�—mÿ›wòIÒ·X*ÿ) ÔRîÎÛ~çŸ!0”o:]?&à,�3ÓP;ÕŽÁ~ÛÛîXÅ@}ŒoF9PM_3NrÃlŸŒâ¤vRÕ!eíâókÉ8²tDÁÒ)¡P˜Çè`´ÕL$åƒÈé‡9Ô™Y|h�`¡/b˜™™‘Ú%lå“•ËhÍ}¨MD ÈäQÆþ¼¾+N™„å·Ø§™ñ½i(ë^á"~ñÊV­ë$8¡l=oI4°‹‰‚åv€}Ðïo‘ m@p%õ»»°(JO5}Í8ƒY¨lÜ»’Geãõ²Á $´2çÇù’�,»¼EJF;ÍRƒ¯¾ƒÏŒøÅ ÃÚ}EÞÀ¨aêÁp0 CfÙÑÅÖýwì#»#‚P,rÔ<&‚!–ßÞ�Ã~ßG·]´¡aî"Î Ã_¯(NHrU¬·ö„ZðÒÚ£`� 2‰hn(|Wâ`…Ô±°>ø£; +9໧ظ&³Ò­)Aµû×:ñ +¹^ãÈÝbÛ~lŽèz¥ŒŽÔæ|×°9†ŽÑÁÁìæõ†G(ôc^¿ó¥^§µ!Sa>°#‡~ÂDÿ•qìƒòK=T6xúlœ-ø—ˆ2Þ�]ªo1eÉy˜*Çñúa œRñC - ¿+é!ɺ�’7ø›[;ÕµSèƒ�hBW÷}Žæë0ß…†!B—a* ®áRCÊ*F)7ÙÊbœ½DICFÀ³µ”²•£¹d.n‘8T0û]ìçªÜT­üÀ¡ +S!*GóüþióZLàuèŽïꮓì±Gªì®W_ª´áŒ!òc=v'¡e såþà�1†à•rÿ—\K4ï³Ç…�˜�ƒ%È@€_²•XË¥@H*€Ãÿ9/Û¦T�(Ž‚>Äò�p/JŽæ\SS{”0K&“ɱ›•Š—ïßîF° tß8ûbåwöœ³çÿß°úôúv¦^þ³ˆM} òœ¥.�é–+V_þS}q‘åãÅ %®™þî?<Œsð§q}Y¤šn ÇÃ#z%}¯¥þôèNJ~Œ"ÝŠ†%ÝýBy(œh0$(7µ#`õ‹å­bÃÞ�³ýÔÏà…Ö¯e›+ ÙÜ!PV/cýÒÅÔºêù¼ù (=û(·ó1PÜå �oŽM´²ÐÎ.PÏÝš®M½ÃPŒZk� yȽà•vYu­5 |ÿHãâïñ®dѨ؇ Äœìê–¦“Yv}æÎRq ;‘[oHñc ÎÞ*Ú®¶’œíÅý‚¡¨.[ÝŸal&”éÏU*TïwÌj²Ü»ÑtáLNb¿ Î<:5:t0ð�j`(š0ŸØú�ÝšÁì :xM&ø�„VÇ™Þë¶M@—‚ÀÆÐƒæëäŠpF*ÁrûNÞdC«ŽC‡2ýg=Å“?JðÃЦ@M–÷´Û ú˜è�„·LžÕß=Ÿ±T(˜±æ„–^%Ýãg=RUE×UÅx¼ + q,Kí±Ox_¤û´�̨J|Ñ\�'¤�96¢¸ÇÈ« ÿ­H)A�UCÊÎP@)×ÁZÂt«÷Ýx®Â@ëÜ—j½Fg±„MÂ]ô¼,˃Bwá¨RÖ¨‡!µ·Y!*VÎDX‚Ÿê&)Ê�Vÿ»Þ÷’þ÷7Õÿ¹_Kð8-KçÉEJž,�_:|÷KäId~ž§8KQ'Ã<¥…ž|r!¡G� æ‡�mÅ endstream endobj 58 0 obj <>stream +H‰¬WûBÚN}‚<—p‘IÀ*XÁ!R •záòëU¹¾ÿ·» ÉnØÝlĶ-…¹œ™9sf‘˜üJûljÜ:m§J¯›l®t3,ªõQ§¬ý8O¥*ÇGu»»LOªsIvÿ_mœÈ²û~Æ�1�©Ìÿ.Æ =^R¯$YÍäîŽ�‰“P%Ùέõu ý¦˜7ªêK|yþiþ³M ¥ÝÿvoÕú`{”**­~H’ ƒJ‹åR!ñ‡’$ + +†¤I’éA]ç…pJ~_8©-ð�†é襓*õÆX—T« ‚WDŒŽƒ`°=šñ´6áW²¹ïíB–ôR4dû1›1è¯CEÌx¼ÙX Â_;ÆôTùc]μN«Méj +|P¬ ê~U’� nœ¯©RÂhb 95°ÆdûÝW¡«$3µlô¼ymu2–\ÐÔ#ÜÔdøÄ$ôG‡Š: º¾Y%c(+ÛŠÆ TÎKyV;0¡jšß9’M)ÓÛtŒìK¼LEóq) 4•ÏÔâÀÜ´�¶QœNN±1~©¤<¦@� Ë),ÉâXÿP'ñ‡ +†Ý(|MÍxq:]�_´2;€OôZŽõ­ßôF + +zl²2C Ç¨…aÿBØý ]‚”šÖ€—ÁJ’YÆ.Õ馛ًlœM2âjéÌ$á¼|¤.÷ŠõØß,,1Ĭ&Þ {«À@~:!™ƒÉ¯ “ÃÆaIÜš' 41ÉáÒñ‚9aâ±jïÈŠS÷ëó³�ßÙ¯/ Eúó}²¥í@ WJ}XóüÁyq7$;¨)ÑrxH—î˜1Cˆ¹Ayøê¦c—N¬~ˆï‰©ôÒ#£‚ûõËË¢õÛÍ ¬ÞñÁÍ;Ù6æ+—„;«—ñÓ–AŒùj¦ ˆi_‰˜þuˆeCÌ^§v£)¨í‹ùzt¶kâ¿u°sF†‡„H=抻ߙ�óeØëPßš�”§¥` ãl=°x% 쎻‘-hº5ßéþ[ן¶å&��]éX!€Ø$–û O÷¦ä;Ý;íÌ2s½|ÒDqí(XFB»:c:Ù‹‰:�M{‡UÈì}øíGÒP¥^¾øŽ«{W2áÐFÑx]6Ž”t¦’•2” L('��$ûŠRÔ� ä±aa힀&¥DÕWbà ëJš]¡»’8ÈóÔã•[�êâ6§Âÿ´ÞDXêBDð`ê⊧.]“³+u!†S©Ðn u„5•œ^½ ü“-ª?]ϋЉ½lí»R4(õE ÷ƒ‡d³%”È8 …´»0†ƒÓ7q†a^DÙh~ž!/¢†÷"rÐ#ì'èwe6Z Ü•1뮤#öÖp@ÍZS™ý¬$/iÍóšDˆ¡Çî1>ü 5-~Hj@ÁÂä²¥Þ¯–óëýÔÐcZqSW'¨ßRefeçb=ÓÛtŒµÅîž�«ÇÞêK|yÏé‹-“1Ä–Œ25¶ä"ÏR¬0'åÆèvÞ˜˜R"ѯýщзyNé`öJ…Û T}ñ‡ +m©+‡¸\ :]б+´#nΨ.ô¬¹ÍÐôŠî}ˆÃh[�ñD÷¢IŠnF‹ïD7SrúÚ �‚ú¤æY�dj’,Ô¡…vˆTÞÁ×¾+aͳ‡'T4û ZçÄÄivÑôîJÁÁ%4 Æ¥k0¾bs*ÔÉžù¥é_w}¥˜¯Gg»¬îï<‹¿Å˜«Ž­: R¢•ÌϨeš[òY€¯[]S¶æ÷ç,Ùj žÞ„q]lî1€7wøÄz¬hÞ¾A¼»-Ë +!X)Õ´då±®WdçS¸gœ°Ä¼PíÀƶ¶°äÛ©U.[²Œ‘RS�Φ ÏÞƒŸ¥ù“#��ôØch†bô1œMÙZCоÛÓüÐØ‘™a»‹ åÝ;‚Ò¿.ø!ÉP­Á¯t/à³I|dX™2ya�ómâ\ò™ÖÅwâ»�”MG¸Ú+%ŒfYg4¥5¯žýÞG ýN¿’ ¥‘®í¨<«q«/hÇxZ›|+’�ŠŒ ÈÚ!ÇPÇí(å„Ý@˜:fŽ!£Õ‡�’Ûc7mg¿*"Zj¯ý1ŸÁ1äÞ/‚ch<^­]eÎ~ÁÛ½wðb¦àã1æö|(�Óqˆ™¤Õc�1à¯_e{�ø·ŠÝ¸(®£cƒ>•ÀØ\`*#"ˆ• +íÖ×Ü•ƒ•: ºÂw%c'iÚ¦†Ã8A*ì t„˜0¯‘0ôxŸR¤apa¨—ï'[·°˜æ·È§w¡07r%­3w€Kh#Fð«ïxM +vJ’ˆW\SÚ;³.ÀØÓ¶ÜôÛ¾ð±�å>˜qe£çÍkLÃ0Œ h˜JúT`k‚Ù÷gbPËAZÀ˜eŠ2Ÿ’ '´Ï]z—�– ÉÛ1ÿõà]îôOZïTv®×«•¾‰Jr+•Ðq#ß)¯³_ð¹ ¥þK7BJµS�Ïïtö:uJó fÿm° +Ã�tœºè|{]­5yå:…�ÉÆÁoéÌú¬ž ë…¼‹h¦uöW3÷ÛÕê{8ü½|wüE €IÀºacµ¦�ñÞ œ/ßõ¿mœ0§ß"‘îâßÝi®ÿ‡ét®Í4ò~!ܪµ—ŸwL§1­1ø�åt‚;ÍÝE]§’¼>ûY¾Ãr�Äb×é:ò:u 0ë�·¸Œ¾9™šÿ§É¾ëÔâ±(ð…ÎtªÖòêO†Óo‘hçM¦9•d˜ë3Wð:Çvj*ÃÓi|š8}ENí]I´R(Íszg:]­»ÅÍ©$#·¡Ë§ã_DU§ù�{ô7»ÉÊŸÉ›È÷ž·oï8Ã0¾ù-²|6îo|-ž¼Ú}g¯É2Èùñ‡Gt: 3L¼¡å‰³sm»b¯(gÑ1Ï'W«ÂKµÈD1_�Îv;þ¡Jîæý«Th7Wá­U#”R}Ø(í)%ôŒî«ÐßCv=TIÍë I +¼œ� Ô¨¼œp±Ã™Ô­¶fÝ å J|–0šäõê‡S’‰“»Ùù¥³ëÂÆ ÊÜOâ„w2Àéüˆy^9û<á(%v ¨ÓÙ´G íý€ý¤N×óß�òÃ/>¢Î�¿(?¨»¹ó": )ÃI +T%ýð5ór®1ƒ²£±/”�®`'÷Éêlä/9% ¼é‹ “1Ô^tmÝW6|Ëgg1ã±ò¿YÑÓ±R;ú16¨©•´æ5Á0Ô›Õ'µãˆ€8W§·éª¼_h(›·oþYŬ¬è]ùl¸Ó»Cì3 ) r«0® ³“dO_eªfÀe°<öW‹�N<¦)P}_c <É¡¶ØS!c}ÉÏY”aF5ç+¬éEÇxlÚ»[NØcXPÙ°H!àcßmE’Ñ)1[.î.™ùÙ�ÞCÅ ü¶»Ð#`#û*)7éßtì0ñXžê"ÄÐ×'&_¹ñë‹y~¶õìœ-È•kâƒå,£ +bKfPù0g©ùªq\)�¯VP—Ž˜P”¦‡ï)Ji°�ó+èÖ/[êýjªŸ$³*¸r”ÙÁͰòîýƒŒiGåY�fJ’?a,pÇsÓFÑxý«#¹ö c$£ˆ˜þ´-7éq9Vv¦:ÿg½ºR‚èð¡CYŠJ�Ž4ƒ"í +*¨„ÿ¿³›„Å—˜‚³SÏ9s@þ#}ÈëÃ×ò9Ë, Œ4Te­>4VÂú_6\=Sijb¯œô�sHo¬ñþ¢ì×ò‰¤Ëâ_ÄúE×úõã3. WžX�ŒL¸­îP‡X´&Ò;Sp‘*­uÐ*ê “hþ¹Ô_[¤U'+Ø)Ç��W%kùLï4¸¡VJÓ±Hx­ï~³ˆïP—£€¢V:’>—êÑ¡Z�)µIO?*µzÊxo·Zõô¼{å5US̾VCÆ[ ~©O±%©c]VL‘_\»_…@†aÆ~¤–•Ó�a³�'ËOòdˆcËŠ©@±˜'Õb +³Rž +í–7”—ĺœrjðmU¨º„{ ;õGý›ªžKpÊ�ód(" ]R̋ک¹v~eí,xs Ûê-7ÅË[®P}ð1TÝŸ^)­m¹ŸUµ&Œ¨NQÐm©æ–™A£gÂëTyH›zÅÓ,º«â ¬):Œ¡ +·K¼ˆœê3 -âLÖê8½íÖrhQïÉÐ\øâ¶‘?CWÐ|:î™Fås“¨ô»*ns©ç÷WÅ7‘Ó�Ãмtɉ*œ2ÜXHŒaZˆ¶„Äh¨\71˜ÏE—Ãì¨gÖ°“Uº@N‘Z°³Ç‚ý»¦ìŽ™KöCvjZÁn±TJ)“h»ÌÀ‘`ÈE ·D¹u;"Ó»ò¨ùE¿–b‹Ÿá¢V·šÍu¢ÓmßéÐÌû³FXzìŒj>ß­Nd3ÝD›ÒƒÙ ®Í…r]üEbÔ4©J‹M®´ÃTõBvùàÓϧWRãB¬’EŒ‘�þÅïLšÁ�è4zŒ»ÿåÜ)kMu8J¨¤ÞþR`„‹èwèËØ˜J·´… `M–]0Føî¼Ãù�ÛcyœE¯¡‰_¬ÙñÿÒÅ–DìУ±§üÊNÀ‚72“ïOí|ÉÈXðGÆÔ¦RSÀ1ß1óq]²«�˜Ë›×%šÿoöËÌšÿˆ» Sùâ³Vº_È¡˜÷OˆÐä…ÛnȧÀ»Äú´XV-)Wß6—ÁÄ÷×g³ +¦7á(¨þ¹J3›6…tºåñ ÿÁìC¾ïígÊ®GðUcEqÊOìôOW_kåP}­�Á÷_D%Šø‹ýÖŽz U[.šó=–´�͆šª‚%‘ªð·+¹ðìÛšNI«¯ä±êS�aa˜ökǰ0ÌŸN v 5CxØ, ç�á³AzÍNtòOÇŒYšŽ�!3Ù-Pd{è8[�s}½1ÔX±Y´óÃ1ÔÛ^‰�óǰ/�¡ ‹™Û1CÙŠVØë" 66Ûýܘh*Êt-€ãöÊŽŠÀ†�ûÓ‰É�W@Fa¸*ê¶×ÔÞÙ��cVeŽÍe.tΖ9x*ec¡ZýÌÕe¸‰dúÝ;M¶8f©BöÀÁeËx‡ërl'äÏ-‹çá&¶r@_�‘mgêô”-x#ìbÆvÔ bXi‡ÉyE�¬ –ÄF¯`¸úx@ùà“u'ÕŒTøf;ÄôB ¹XÃñV3„äxû'cQ=ñÆ8¦JSq·2• ¯±˜TÉ€#+Xýd’ ÕuÑ Ri L…¾ ëÆž÷¹šY³à‹h,º6ô+âLÖêæSi vÔ»ü«½jÙ·¾¤` GxÖ˜÷Ua* ±KÆ�yßTj„a8Ç aïF;CJ·¹,HC©´³Ý a¨„íôê2òÇR6à%àË“I*sÜÊn¢ÇcpÞàÖÀØÆi’1ùÒ<óggc¼�hIà èL¢}gÆšã½ÿ4“J¢ùtÜ#ŒlŘ9äƒì Ê“:« SzœºXè=r®<¢‡9¬Ñà�19ˆ¼à%(ÜR k´è%X°ó”W¦£—8ð‚Y1íËïÒw_€cª~ú&ÆÒñ²s)_ž´òòØ+ë2¡¿”)¼‡´ä`|¾òb>Á”‹ø�ãy~»MwÞoXþºš ÅîÞ´ý–ü$Èî.Êt·5ÝR®!í¦<àå•ߨ`j™¥“éMœ¾Nvt÷}µF…Â’E…e �еv�¿¸~¯£R;@õJcŒêŸ‹WÔü˜¿¡û»Hu+ï}ÔÛ½-Pñ¨?JíÑC ïE�Lχžgö&�¸w"<šD8šÜyÛÛí¶ÀnwÃur»}õm®í~óŽxnP1WË¡ââ_•š�Ï�ct9 FêqJá¼…gC“y)Óâ‹„7€âc=*šà ÿV›8b/*(û¹®ï²µ‡‡g@>.º™¾òÉHÒ‡œ¢ø4uæSÒ§|@þÎ=ö2Ò‡ ++íõš•>4C‡#(˜ë±¥”Ÿ¼ƒSð[åÙ¥<#ÿ\yr©„|3~ ²! v¾ðón¹‡�yŒdz<¶nüc"qõ[EÿÈ*{ž#h‚¡0hZ� 5¡´­&ÐHö‚!Ä �=bÖ/‡m=EØ»ûUþ· Éw\;ðW~"vP(26‘N™@á/·ìôÚ�xýòôŠ×…èR™ –¸¶rq•¶W‰{ëq 2'1\ý¿°(¡*ñÐW�µã±RñÆ3ïÞV^R”¸WB\\Hêßn˜¾e\û¢·\©„}c‡Ø^ƒiôøTÙ^³f§ˆ�¤^}Ác�Û~ơЬ^ñáºÌžB‚êeg£p:^ ¯án‘î^¢Ä„XÚU‡X ú†GŽÿwõ„¤»‘Üm3àÏzú0•«—ˆâÓˆŠŒ‹cßS-<¹Û¸ÄXVŸ—W"¹X$–œ�|‹üÛe±™ûˆ9b8½aqö‹ûB»B@ø±�{ì…(‡Iy.x8ôŸØ,ü…J¡/ÜMCÒÝKXþtâã—Q�7ËÛß/ú}éäU?`¿+Nî\qª÷xw…ª%újõ|Iú\9[ã�ľEMQO¨v1é>,å.î1�pÓ8Ê×xôЏ¹O´0 –K3]Ê÷þ‘¦_í!ÆÒ8†§À…-I,Yj € MÖKFN\Í2ÅŸL7å[Èq'Ë„Ç1/µfÚžOo0ZÒ"Z¶ÜŸj´¬ƒØ¶'칡žIá±pÄ{B‹�­óºÂ¾s<�c7ûÎ$h"–Ç +Uy+«‹?dú�ÿ¼Wyñ\ýùA"!–-Ùii©öQZk÷Eí¾ÿ;÷‘TI¤}ÿñËfæÎÌ™™sJߪ�^ý/GÓo÷ÌÕÕ‘K žØˆG¢XJ\8wT/ʽOñÉ4UËÑhò¡”GŸÄ –uÆ +Ò$Åy­À«ËÐ:¾ ¸j‰KðÁ,ÕŸõ=]�>AñÜ}ö! Á4ì|>!£NZ™¸¬tŹÓR‹Õ÷˜09Q9ûzŸiÊ &-éBBy_ѸÙ%€øåÄÄ=–NA‹™Ý~wê�©á÷»7ñ¦~;Í>§§Ÿâõ‚|;škeµß°êÝ“ç ·x9^è G�Ú2"œË™¼;àïžoy…eOnµî¼²çŸµÝᢙ¼pÚÎ-ü¤EâFSBÝvþÅ]è aܳÆÌJy3ådûù]ú¤é+Ã3AíM5xÎgsþ=gK>¥^ +…ÓOñF‰O'�ç¥fìÌFÊcó›(J³&]OËçêiMË%ÚÔ–6YÞl<3äwÍ?ê�ÆD§M­Ë½båõ¤ )Hø”—«Y ÷âŒl”è5T +3WF� ÊM¾íf› 6òz�QXÚðÊc%¿-ô‡ c7t@#(G¡o <.NIE–± Ó¹3³œ† ~¤–1zr™Ÿ(‹~¡ côº,pó|I,&É) OåZRù¢�V�uÚÉt²wåa®0¨7ZðÉ}” n6~Úh‚»f· +¾ïÍîjÌŒeYú [ +{˜á +@õm6»›ÙÛ°ëÙFP6þ1\ÚØ‡‰åfÉbî_7¤nóŒ¼üZ‘ñ0‹ #ÇK¯¡-ær¬Ûè5ðâv¬ÛØáö1flqçž±âû}Òbc‹¹"-[�Ù…�T; ÷;Ðð~±µ›˜ j[g¹ÄØ7¶FPÏàåH9±kXÑYûr»ê¹K! —†X@¦ èG"^»Ôoƒ!‰'#-õI¼2Rw%x™‚ök\ƒÎð' 9ŽtÌŠ/Š>Îë²o­Æ@óDŸü|ÅšÎà9IFô“Eƒ¾ãht¦ ¥JUhkJ2Ùo²´rvŸ:‡jÐá$¯±xn ¼OŒ +poÔp +úEmµÒÖ¨í{®? õÒéÔà†T{©ÊÛ6H¶Ò‰Ó;ï¡NùÇnHȶ޺ +[ëMå—ÓáƒMƒœZH„cöDP®ˆ£ÍyŽzßÞî¶Íž¶d¼¸È·Ý˜Ým1'Lé‡5êν)åÀ`…?ìöLPÎu‚óùJP¿8àÉPg0^K3ÚÈûÁ*ÉØÑ~±àÀ¥öm«�#¨- Õ¿ÙhïÔ’ôܘ~j†sÍm8¼Þ†øoŒRãÑÖ€MrG h¿ ÉtŸÎу(ÉLÆ·hQÀû+Om� +콓L½£¢ïâdä<Ýü«ýrè€qKü�\µ·_ÜzVû=õSN¸¸¯5a¿Ø_­#æÝ/N7ÞûûÞ.L˜ºOY7\€M¥€Å3®þoÇŒ†zÕ²Ù–s±Ô¯”ÿØ‹ô¤à±»-pìe;‰rE¡ÌÍÕwÒ^Bœ œgÞ¹gÄa´×�Í…¼üî4Ù1ÇÜGán`ÌN{3A9j¯ßÀ˜�ö²Ù\cx[ŸÄúžy?/Ëõ~ž7r'Kl”Wo¥æ¥ÈŒ£‚øxu©)ùpò\dF™€r§ÍÛb1Õ»^nÆYuÚ~¨dó±ú±â}Z¨J>¤Æµ›üQ3­?2ê´“éë»+s…A½Ñ‹Éû¨ÀÍÆo˜¯äÒE߇#^ó#«#¨=4žµåݔΡ#(»”Î�g„dÄê­J(ï&ì‹_Û†¬�)C©RÚš’Löì"³h]‹¹Hº­ÀñÓ刘•†"¨Ý*êwÜã9f óû„ëw>m$eÌæ@üÚ3Aýqá7Ôë)á¼Ù-�ƒu¬ß–5O0µ(ןĬ4g¹ tä¤Èàå]é—GV@?ÉðÚ¥~KûîY’¹hTÐmÕ‘VÙÖåË�líóXày.¿µŸm¶ø[AWoáyâvè.g •�Æùr#Ûn´|-Ôoþ}tlÍ6|¥uITýDFÕ5+^p!ñAu¼èE­û9iâ ÿaK%á+°Öfdþ¹ŽK‹ŠÌ„¶-¿“÷ ,ìö˜Ž1t ùϲT/5ús,ôËßÿeìO �ËNP\x\v‚úãÂï›0¿Sx\vèÊ¿-<.;êý?-<.;ž0Yx\l@òßÞƒÝYx�ÚÛ.7¦ŸnL;`L™fò“¿©¬3F›"`G›Pzˆ�ÒBt1,GB5]ΠD[4¾Å½O¡LÔL[n&llir¤m¸ÂÏ<²èYmÒY]ïm“� av¥ŸyW-&²/¯,”§Ó͸~æñäò…•>…6£G5÷he€Xž=IÎb¢Ñ¨Škïô2éÁ“±>h·!à%‰û³÷1Ð] ++tXqÁágP¿:‹ŸSjϺqøwk¦©ü@$Ù�[Žï„½`7ÐÁ¶‹pö±rå*Ïô¢iÊÝEŸ ¦%jÝ�pê8=êtÑ;å�žÒùû64Q€13°ÃÃU]$rJêKÌîý«® 6Ð /`L?Ïàßå&”šÌp™1)X“§²Íz>þá¾§,Œ«du´>ÍÀÈ;œ«^¦@™]#»LBk3 ‹ûÊ: sÂ몾…î§ñ‡U +2±�ÈwO�U +X<-7’p4Ý›„�'A?M^žlvSžV¦z +–Nõ’õ’ìOBÜ—þät§ñ£Êç2ü"fX%]p´äˆSõ$L¥æ½‘úÁWký€ƒ ½‘Eê„ìY€´ÄØNÁÝ&ö”[›`ø©jWG·gˆ˜ºò ¬�0pÀú~0Á¹ #º9-UÌ*�ó3Á�w·Ù@Èbódg&ÜO†ùÁ„Ýj0‘mpÆL˜Ø<…Õk£qኦ—úù +6@PknAÅD4°T¯ûMÄl¤òÇdžáW&R^£½fžBI6¹âBÆw¾a<[]~§}ñæï¬Ùޱ]QqL Ƹ­q€sn+@cö;ž; Ƹ¨Û0~ž:v1Æñn΀1ÆÅ÷w[1qz!‡uÓ\2n:¿gê,÷Ë®LðŒÛ3DLù�jð¬ DÔ®jðvÈͶÁµ6=x#cɺJ˜E¹ä)cè HVí]»ÉgîÔi‡½‹©Ë¢Ü=ÿ �$+'yéî_^~ïs1ø£ÌÂ)ª2¦†I �¢íÙ29ŧ¿Få™Xº½í†Õz£ˆ®z 5ÈŠjZ(ùq]šÓès•Ž:§Y¬,¢çI +è`’ ¬®b4ž¡!Ü#`úÉ£–äÙ„oA°üGzun¥î=í+àN� …•Žô t R$€  H[ëÿé½öwfï4=¶ßñKÖ&fOyæ™™û=5Sÿ[Q ë +¹Eù ûTô)år(è]Ž CoX» zœ˜‚€]P LMgŒ.çD@n¹ì¢×ÜÂüOÈ&(ewÈÉ5¿ý]ǧׂvÁ"<3È–©âiR\W¢°œç]!…+b‘ÖBt§SÒ-üÙ´ëÖŒl3H?™º.cúÚ¬’ šrI,…&€´áy柦˸ç5uµÓf‡¨…ÇYâ ãíÝĉåÂHÛ·¶ÀHlú*Ž·Äåôí±•]ó ¦1}¬äoÊL\§IÄŒõ1»=äP™-‚Zb™Ä*ÅÄ×z¾Öâpëz𕤩'{~l¸æ¥a?²È´O®§BÖÀòº YX•†§Ñ•Ž}u$(á'a›“ùôåÔÊþG‚%å›9,ö;�€O [âxñLÈÇZ»Å“lžÂTA!þr?ûº¾ñ”¤¸/à-ôß}Ñ<Ù�%=H£',}Ù.ȯ\…éj…Õó¹áKÿ‚îŸ"늈Һí.£ìÈᾊ‹] «Q羬ó–î�õ@rœ¿>È®&ücÈ[—ʶŽAÂC½ÃÕl2O8)Ù¾¬.Âø6ü�=ÍâCWÍå¶X,T»’U`‹—sq®Å.0ñ¼ìJ$Šcö¾�´uIµÀBéÑ™_g„¤ê£ESd|øG¿Åö«þÉdÇœöYœdDLñRÇÔNœ?ϱ³)¬^/â£wG^ÀCÝò”�¼WÌ�ºs|Pò&AU¢,<õŽ<…éS0 ì,»â…kjƒù ‚t·vCn!D‰uà–K`¼Ô%kríPçÈT2`˜|£—}°â)E¥.»Jîa•™Ùé=UÅsí†Vå{ºº€ÊYÔ)gþ±pÕ £g£” ÒwçØ ?Ëôàdõ9»vnŠÈS!ÊS¨Ùᦺ-ºJ5¼^‚¢ÿK9"¡pôOD¥?Bë´žïëû§ÅÓæOÐw™r(ÔÙ̶Åý|~;ÿß1¿�ž^æ›ãŸØ!ÓΕˑóü|º�ÍáståÁB§¨JȲ)hš'É¢ˆüc´´RÎZÉIþQTS¦T +$[K†••$à ޖÃÍR«ÃÖúQ&¸|ÑÃ#ÏN±6¬öò 'V%‚=“Õš€ÒCÕ*09‘#ý‹—~‚{(n/ïdqf/?èÔ8À¦’Z&øZ»¾º‰R%qÇ·ýp·°ôÅ|¿¨Þ“™ä” @¿‹’–§T‰~æ®î�X„´€Ï=&ØÀø»ãã&Nôïq†ËÈ ðÚ3bاuŠá6͘òQ^®DÝVÙÑ¢›¯"dZ0á9z“ü‰ëe@êJC=§­$Û$qwøS0 + P?ùH+ç‡vSÅO`.>†œ80*$ûäEŽGÜ+¼ùGÁ$ùT×kÖ¨€°Ïª#qæóÅ AÌo+°Â(–0Wp‹%’¼éJÊy›ÀÖJ Î,�ýúRŒ%5c¿¹t Ã-=ûÝ¥"g…Ø&(U�ÆJupp�]Ñ—#üìH„îDerŒê +`’ÃO‚:c4Êœ¹¾ŒO~½Tž|ô`xl´DixÐBð˜áÏU õ²áõQÀųú<§–I&á–\(n4Ò:¯ßB0Ÿ�ØÇÜò¢XÏ®#g$IjgÞûUöžÙÄ«n¡Ú>Òçpÿ»ÆŽh«ÊN2–Ët<ñ‡Üòòæ5s›ÙÜ‘j’²÷~h•¿ì´göÝ[Ùš!ìùÕ*A3a˜gyh©Z‹NÃÐ�ò,=Mœ]Žœ äm2èÆ€¨e9_% „œôÔj‹sR/ú0¾ê𠢂¬E¼D`6; +.—Ô­YM$Ó�ô‡Û-Âæ€pnú¢ÉéNQABÁEŸË “„'¶Øx;ÅD!ülÖ¾—Ô~*Zê5áRÖc<<°ONzy:Ž!Vv4ïÒÉÁž +ƒë=Ùì>.dòNʪ�Â;k.ú/Ê:ÿè>Ü“H÷™›žx†sÅ9°I“ö~Ùóäö�Qè-Gæ6¬½¥"&»ÅÌi5zBw¡! �Êa¿—ކMÔÂØºH”yÆ•�$LÞL£àš î^ë(H#�ΰ9(Œw…Û[]ê EÆšyŒØ™�0ébÕ�^Øõ¹Ÿš‰l(È%‡•*rú®0¡£Ç|2æu¶„IÙ2ø–-)ÏÝÐؤÌ9‡#ËY§ —õž9ô±¡ÂðP"Û: =µF~APÿÊ>¿"’{*ÿŽ\‰¯Àm³{b2.[ݳèà²H +ùëÄV|ǪP«5.8Wyi.I¬ƒv"ºÙ”*NžxHØó[%3"ÀëjKhM„x¶v”Aq +B=¢¾Q]T,Ý4C!mäæð«Ÿ‡ƒ-:![=¥v^ ·e ;“Õí÷û¤ðL +Éáæ…l¯sç¹`M ä�;\Ë7Å™{“‡Ï÷r‹]E"Ý&*¨‚ò È¿U°LuÆþØÕ:ât!:Ðņyؘ­+‘�<}éÝ­[SƒXHÔ© +ü¸ù·‚“MLÅ£Ø++Üö’ �t>€\M‚¼¤|JO¼ùN0ßA^‚íÎæ{ºÒˆ>¾ÿ×ÈO<ô»Ì”…³°?=$%RHDàÓ\­e¸˜‹m±£»:f‡8×0Äø@"þ).ލ��QQ|Ý©ÙC +�æ%ËÞÿH†¼ó¹Šp)�ol‰5¬/}¿¶’ƒNú�ˆÉ—õL�½3„—:õK§õ*ò�“Øó&òU¿-÷{Y3B Y!`sýÙˆ„²Oì±!¼3ƒ0²AZ4Í ôí!kì!À%émt$Ûƒ0IÔ¬ È÷ëPÄ +V%o¿”„@OÉç!pXS(o¡¿Çl… Â>«Þÿ W'Ø'Æ +>Üã*f¡÷J JƒÏ ô¹Dr©½ù� +PÐÝ~­kÿêë*â+ƒFìWnŒ÷?PðeU–´Ã/ݘM¶üW7–Ÿƒê�ÈþÇ*ÖÌOU|ÂN] R#±ÿZÝ uûŸè|ùKÅàõw Ó¿§(#b?ÎFCÛlƒ]Aÿ�:Áš*æ‡o³áwÙT¤s»íËãGÀ_~îÆêô�Å»˜®bË|‰¯j£±w +ÔK�¨TÕéÛˆ©;ªÍZ±8TZo¾ÿ ½·{g”ªí~Ç:êü=@LŒý¦êò{€üeûˆ­>„Èpcsú(”ˆ±»±ÿWÖ11¦žœ¿«øþÙÙ÷Y: ,Œ·»lÛUhÚ¯X;²6ß}‰olX~Â:† ´¿| muø"´ÍÑìÈÿH\Úÿ³^­mi$KøðÆ$ˆ}¿hD#jp5Þ×]�š(*Ùœ|9¿ý¼Õ3€Ù!�Ù³‹O&3ÝÕu¯·º~u¦väA:�Ò%ñrqÎO扙¹“y5Sî\´gʃÖLy»½“\mÃLZ/ç¿4æ667ÙeKUÒbùX�sŒfÚ‹YQª|ì×ßðù_JÇÌF§3âvïGSîþÃåUoG¬¿ÃðÛWq8‹áòó�&‹JødýnÓkú~Ó§ öF1‘wYx(Ñg)ý\œ[H´M>¡hrìòpq˜ ,½É&s,Ûè}ªfÕbz�l=· º\z¶Ñ}S[mÔ&bí·Ã•ÑÆfe²!ß,]½mìðgRNq×Íb•æòüdí¹äf­ülã™äæf o—çÅZû÷Rápk¿AZ4÷xøÌååÊá vW'¼;8£Ðve"šÇ0Ð_ wþÊõr�F€–Õ|U²»SÁ­]—!àá >Ûù$8•ÝYÙÞ¿•aâ;€û_¿}Mû%ˆqó>nMs6’r†À›ßê•îÛÙÅ«»Âaãíºº …04T}³ý¬fó“êe£Û®Sþ~ =t¼«ýŽá' +ÕWõ`KàXÜr¼k6V ýƒúæÅòLšîÇm>Êß1©QüÔy�¦×qW� ï>O¯ÞÎ9¨œËí×ÀÞa%Mü^›ñ^k³ˆ·ζtðÐ;U¿)«^WŽÞ.T`‘öv/p\€Ë�‹·íJzöö„Ácéû)ëÓ…•V5ÕçöB>Û8�‘�F§xò^œm?äS[n?›0�É5'ÝRÿ´xYûh;kŸÜkGîãÚo|ùÄ. +'µÄ Éƒt¨Šo©‡íx,ôÐëâ) ×ïBžS¯„Á�½uHyúo5·É›œwÖï.úÿÖïÏ¿|îSWÍce¿?ü2 ÝYë_]ßµºßú�9% ô´>âÂEBk|hZmõrs�6âŨu—cÑ»õ\¾Sy÷8¬_Ÿ¯ïïº�ߢEZjo·7ëÑb”èàÀR4•XÔØ*F(óÔìük¥—~nþ 4©ã}'Ç"–jCí.-Ä·Ÿ5\;®Dªpû6·ðrƒ…¯gÑvtò‹.ˆó^޳XGÜÆZãœgÆj+]ô9gbà ~Ú(¯¸âY+-¤c><­Š¸Š¥×–+¦¹ÔÆN¡€0ÎðŒf£ó\†r…ÎHÍ�vBÓŒqÚ:ã•‘œ¸s®¥w6åš]=Ï‘>Žô�ÚR[;å$lRÁ¦ð”#éÚ-4Y‚¬Y+&ñVJÃMâZ`–[-mÖ•Óƒpž»DŒê9.c§À\pc¤b.r±µ¤¤\2Ã4ÂÅE,mp“’RyÙX2r),•!X,íCkçŒãô-„ A&®Š,SÌx†f)ÎsL�Vp眇Ž#gàsÇœ³Bs¢Ð^Ã99ßb�'r¬‡Ÿ¥¤I¾s0Z+í£²Oš ¬4þ†sx¬$ùXí!?ø€</H.< $/A0¬Õ^ å<\‚pM9ŒÐ@ªP0’{R[àk™³L‡X9A9¤µ`L‚¹¦äÔ† ãx–✜Ï ‚A¤Þ.^ ¡eƒ&’ò^Át�… uà�‚a*,(Ân�·^á:u¹RSþ"ê!Å% +OŽˆÂWðdF‡Ìâ"Ô�w�‹^N¦Ònþp:zÙ¨²y7Œæö�š�ý�ÝAÿàÛ ÿ=`Mp +ú{dŠ2ø_y¤‹�õÁ±°¢œ ++ {F íà=�$*1Š iR¤K1Žr›~¨0Xl&—”�K«“ KÇޱ€.ˆ$™YAU샛P>Þr—,fj�VÁÐSÂÃïN 棌ñÝ1Ï“òά€ò7(MHBö¤K%B·œ¡(Èh7E;¤‡‹•0j­}ÖªŒÀŒ3¦»qŒDS‘vJ³ÈÐüçÇHûÿôŠqÃ!ƒ!<šÚ´ ‘„|‚´ß­&½"`´^¢[L9ùCœH‘È4 zU™,Ü´nA*Ó È¡"T¶[üt¿ûwÊ6iGnwf¢¤ÛÞq kî¨xUáCvü+ØÀ¨å�ÀQèÈÃÖº~k§8²1ãÈ5�Á(´–q0¬•Zè~åÀ%é„zçÙgj¦¢ã\8‚A’9iC¹JŠ+š PDñCFÃ-êb„ˆÚx®ÑZŽr?�«/có‹Ž­�ÊLÄ`;át°àÍIµ(O¸»�!”BÆJàô1÷ie M¡·µrá©DÆÙ,Ÿz¤* IÃA*tZIIë< žñA\PYh¾AAºáÀ¥°ÎMª¼A‰ëÉ:H‚ËÐyQœ‚hR»p³CÁ�MáƒcœŽ)¤ +®ASõyÑ?­T çn=Ò…îÑǦèûù§ôý;ñœÄá_Ž':r¹:EŸQ<5Ê ù-¦Æa +ŸýC±š(óB Zkɤ†¹-ŒR âv»WýƒÇîõ'ÌmWOÝ?ûQ÷îî~Øö؉®ûOÃûÇ~ôôñþ+­àȈàN#÷?ÞVK endstream endobj 5 0 obj <> endobj 25 0 obj [/View/Design] endobj 26 0 obj <>>> endobj 34 0 obj [33 0 R] endobj 59 0 obj <> endobj xref 0 60 0000000004 65535 f +0000000016 00000 n +0000000159 00000 n +0000016706 00000 n +0000000000 00000 f +0000063411 00000 n +0000000000 00000 f +0000016757 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 +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000063481 00000 n +0000063512 00000 n +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000020437 00000 n +0000063597 00000 n +0000017158 00000 n +0000017316 00000 n +0000020870 00000 n +0000020624 00000 n +0000020747 00000 n +0000018097 00000 n +0000018739 00000 n +0000019249 00000 n +0000019733 00000 n +0000017381 00000 n +0000017536 00000 n +0000017584 00000 n +0000020375 00000 n +0000020138 00000 n +0000020313 00000 n +0000020251 00000 n +0000020076 00000 n +0000020508 00000 n +0000020539 00000 n +0000020944 00000 n +0000021127 00000 n +0000022431 00000 n +0000033714 00000 n +0000050016 00000 n +0000063622 00000 n +trailer <<4EB2C399D71C4705888A21443A38AEB3>]>> startxref 63763 %%EOF \ No newline at end of file diff --git a/platform/macos/macos.xcodeproj/project.pbxproj b/platform/macos/macos.xcodeproj/project.pbxproj index c839bfadd..e243658e9 100644 --- a/platform/macos/macos.xcodeproj/project.pbxproj +++ b/platform/macos/macos.xcodeproj/project.pbxproj @@ -16,6 +16,7 @@ 1F7454A51ECFB00300021D39 /* MGLLight.mm in Sources */ = {isa = PBXBuildFile; fileRef = 1F7454A21ECFB00300021D39 /* MGLLight.mm */; }; 1F7454AB1ED1DDBD00021D39 /* MGLLightTest.mm in Sources */ = {isa = PBXBuildFile; fileRef = 1F7454AA1ED1DDBD00021D39 /* MGLLightTest.mm */; }; 1F95931B1E6DE2B600D5B294 /* MGLNSDateAdditionsTests.mm in Sources */ = {isa = PBXBuildFile; fileRef = 1F95931A1E6DE2B600D5B294 /* MGLNSDateAdditionsTests.mm */; }; + 1F9EF4061FBA1B0E0063FBB0 /* mapbox_helmet.pdf in Resources */ = {isa = PBXBuildFile; fileRef = 1F9EF4051FBA1B0D0063FBB0 /* mapbox_helmet.pdf */; }; 1FCDF1421F2A4F3600A46694 /* MGLVectorSource+MGLAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = 1FCDF1401F2A4F3600A46694 /* MGLVectorSource+MGLAdditions.h */; }; 1FCDF1431F2A4F3600A46694 /* MGLVectorSource+MGLAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = 1FCDF1411F2A4F3600A46694 /* MGLVectorSource+MGLAdditions.m */; }; 30E5781B1DAA857E0050F07E /* NSImage+MGLAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = 30E578141DAA7D920050F07E /* NSImage+MGLAdditions.h */; }; @@ -289,6 +290,7 @@ 1F7454A21ECFB00300021D39 /* MGLLight.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = MGLLight.mm; sourceTree = ""; }; 1F7454AA1ED1DDBD00021D39 /* MGLLightTest.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = MGLLightTest.mm; sourceTree = ""; }; 1F95931A1E6DE2B600D5B294 /* MGLNSDateAdditionsTests.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = MGLNSDateAdditionsTests.mm; path = ../../darwin/test/MGLNSDateAdditionsTests.mm; sourceTree = ""; }; + 1F9EF4051FBA1B0D0063FBB0 /* mapbox_helmet.pdf */ = {isa = PBXFileReference; lastKnownFileType = image.pdf; path = mapbox_helmet.pdf; sourceTree = ""; }; 1FCDF1401F2A4F3600A46694 /* MGLVectorSource+MGLAdditions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "MGLVectorSource+MGLAdditions.h"; sourceTree = ""; }; 1FCDF1411F2A4F3600A46694 /* MGLVectorSource+MGLAdditions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "MGLVectorSource+MGLAdditions.m"; sourceTree = ""; }; 30E578141DAA7D920050F07E /* NSImage+MGLAdditions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = "NSImage+MGLAdditions.h"; path = "src/NSImage+MGLAdditions.h"; sourceTree = SOURCE_ROOT; }; @@ -826,6 +828,7 @@ DA8933AB1CCD290700E68420 /* Localizable.strings */, DAE6C3BB1CC31F2E00DB3429 /* default_marker.pdf */, DAE6C3BC1CC31F2E00DB3429 /* mapbox.pdf */, + 1F9EF4051FBA1B0D0063FBB0 /* mapbox_helmet.pdf */, DA8933A71CCD287300E68420 /* MGLAnnotationCallout.xib */, ); name = "Kit Resources"; @@ -1400,6 +1403,7 @@ DA8933A51CCD287300E68420 /* MGLAnnotationCallout.xib in Resources */, DA8933B51CCD2C2500E68420 /* Foundation.strings in Resources */, DA8933B81CCD2C2D00E68420 /* Foundation.stringsdict in Resources */, + 1F9EF4061FBA1B0E0063FBB0 /* mapbox_helmet.pdf in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; diff --git a/platform/macos/sdk/Base.lproj/Localizable.strings b/platform/macos/sdk/Base.lproj/Localizable.strings index 68360320eb38a0c474c3aa76cb69d7e9cf699206..cb085add6a0e15eeb5fe4ed062941ceaee09f9ae 100644 GIT binary patch literal 298 zcmbV{y9&ZU5JgX&uUJyrpM#-9~otau- jV)ipbJ9EamWP1H#yK{1LC&52-k%bgnb_0C<4PTZwtr#${ literal 840 zcmbu7F;BxV5QX>tic=P(R#3HT#SmzUA~|tIoS|JT$8m&(Ye$YF=*Gy*#^38NAvHmz zLWoxE_ul*N-i?QlH^N?4RtjCJEeLCkg;F%!%GybzVK^QH2#0f;giE>zV-(HlJj!kZ zxQ2i{2-vV1DkhaE!5L77l~4%I+C~7=(CSBRo^)?)IB%^L*NyJ?-LD!>CM!x}f+D|Z!s^02pMkv$@3V;h zlUp{xjkRs<4$!9*_8FUELKiqsPcQ7~V!M}jf3wQ8x`gg6IvT0D+0@L*LW!>u5i5iO zQ^DGp4a6FX*17(3))*%=PALj+BIFM_>TgJlQBKx>=m^G$#7nR2?R))kDsDSeA3KA5 nG@VYSki==8K^EVozEe+vbMg&k_xkn=%)#zh`va#N+*^DAkSYkB diff --git a/platform/macos/sdk/mapbox_helmet.pdf b/platform/macos/sdk/mapbox_helmet.pdf new file mode 100644 index 000000000..699b2ff29 --- /dev/null +++ b/platform/macos/sdk/mapbox_helmet.pdf @@ -0,0 +1,355 @@ +%PDF-1.5 %âãÏÓ +1 0 obj <>/OCGs[5 0 R 33 0 R]>>/Pages 3 0 R/Type/Catalog>> endobj 2 0 obj <>stream + + + + + Adobe Illustrator CC 2017 (Macintosh) + 2017-11-16T09:51:51-08:00 + 2017-11-16T10:04:52-08:00 + 2017-11-16T10:04:52-08:00 + + + + 256 + 256 + JPEG + /9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgBAAEAAwER AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE 1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp 0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo +DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9U4q7FXYq7FXYq7FXYq7 FXYq7FUPe6jYWMfqXdwkC9ubAE/IdT9GKsbv/wAx9HhqtpFJdMOjf3aH6W+L/hcVSC7/ADH1uUkW 8cNuvY0Lt97Gn/C4qlNx5q8xT19S/lFf99n0/wDiHHFUBJfXsprJcSOfFnY/rOKqOKuxVWjvr2I1 iuJIz/kuw/UcVR9v5q8xQU9O/lNP9+H1P+J8sVTa0/MfWoqC4jhuF7mhRvvU0/DFU/sPzH0eai3c Ulqx6t/eIPpX4v8AhcVZJZajYX0fqWlwk69+DAkfMdR9OKojFXYq7FXYq7FXYq7FXYq7FXYq7FXY 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 + + + + 1 + True + False + + 0.222222 + 0.221944 + Inches + + + + Cyan + Magenta + Yellow + Black + + + + + + Default Swatch Group + 0 + + + + application/pdf + proof:pdf + uuid:ad04dd96-0b1b-0043-88c6-2612e9f199e0 + uuid:fd70734a-8143-0b42-928a-90f58b786320 + + + + + + + + + + + + + + + + + + + + + + + + + endstream endobj 3 0 obj <> endobj 7 0 obj <>/Resources<>/Properties<>/XObject<>>>/Thumb 44 0 R/TrimBox[0.0 0.0 16.0 15.98]/Type/Page>> endobj 35 0 obj <>stream +H‰Ò÷wVÐ÷u6PprqVà*ä2P04Õ³´P04SÐ…°ŠR¹Âò€RúîÁ +éÅ@%!>ún¹ +.ù\�qC$qCâFHâÈæCÄ]}�ör1 § endstream endobj 36 0 obj <> endobj 44 0 obj <>stream +8;Xp,*?`,t!f$f[~> endstream endobj 45 0 obj [/Indexed/DeviceRGB 255 46 0 R] endobj 46 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 40 0 obj <>>>/Subtype/Form>>stream +1 1 1 rg +/GS0 gs +q 1 0 0 1 11.3447 6.2625 cm +0 0 m +-1.47 -1.47 -3.642 -1.76 -5.104 -1.76 c +-5.638 -1.76 -6.179 -1.722 -6.705 -1.638 c +-7.482 2.66 -5.074 5.075 v +-4.442 5.707 -3.588 6.05 -2.689 6.05 c +-1.722 6.05 -0.792 5.661 -0.106 4.968 c +1.295 3.566 1.333 1.349 0 0 c +-3.345 8.785 m +-7.238 8.785 -10.393 5.623 -10.393 1.737 c +-10.393 -2.148 -7.23 -5.311 -3.345 -5.311 c +0.541 -5.311 3.703 -2.148 3.703 1.737 c +3.703 5.631 0.549 8.785 -3.345 8.785 c +f +Q + endstream endobj 41 0 obj <>>>/Subtype/Form>>stream +0 0 0 rg +/GS0 gs +q 1 0 0 1 8 0.9519 cm +0 0 m +-3.894 0 -7.048 3.162 -7.048 7.048 c +-7.048 10.934 -3.894 14.104 0 14.104 c +3.894 14.104 7.048 10.941 7.048 7.056 c +7.048 3.147 3.894 0 0 0 c +0 15.048 m +-4.419 15.048 -8 11.459 -8 7.048 c +-8 2.637 -4.419 -0.952 0 -0.952 c +4.419 -0.952 8 2.629 8 7.048 c +7.992 11.459 4.419 15.048 0 15.048 c +f +Q + endstream endobj 42 0 obj <>>>/Subtype/Form>>stream +0 0 0 rg +/GS0 gs +q 1 0 0 1 9.501 8.1145 cm +0 0 m +-0.693 -1.425 l +-1.379 0 l +-2.796 0.693 l +-1.379 1.379 l +-0.693 2.804 l +0 1.379 l +1.417 0.693 l +h +1.729 3.116 m +0.328 4.518 -1.897 4.563 -3.23 3.23 c +-5.638 0.815 -4.861 -3.482 y +-0.564 -4.259 1.852 -1.852 v +3.177 -0.503 3.139 1.714 1.729 3.116 c +f +Q + endstream endobj 43 0 obj <>>>/Subtype/Form>>stream +1 1 1 rg +/GS0 gs +q 1 0 0 1 10.918 8.8074 cm +0 0 m +-1.417 -0.693 l +-2.11 -2.118 l +-2.796 -0.693 l +-4.213 0 l +-2.796 0.686 l +-2.11 2.111 l +-1.417 0.686 l +h +f +Q + endstream endobj 51 0 obj <> endobj 48 0 obj <> endobj 50 0 obj <> endobj 49 0 obj <> endobj 47 0 obj <> endobj 33 0 obj <> endobj 52 0 obj [/View/Design] endobj 53 0 obj <>>> endobj 38 0 obj <> endobj 39 0 obj <> endobj 37 0 obj <> endobj 54 0 obj <> endobj 55 0 obj <>stream +%!PS-Adobe-3.0 %%Creator: Adobe Illustrator(R) 17.0 %%AI8_CreatorVersion: 21.1.0 %%For: (Angel) () %%Title: (mapboxgl-logo.pdf) %%CreationDate: 11/16/17 10:04 AM %%Canvassize: 16383 %%BoundingBox: 2 2 19 19 %%HiResBoundingBox: 2.5 2.51000020160791 18.5 18.5100000270513 %%DocumentProcessColors: Cyan Magenta Yellow Black %AI5_FileFormat 13.0 %AI12_BuildNumber: 326 %AI3_ColorUsage: Color %AI7_ImageSettings: 0 %%RGBProcessColor: 0 0 0 ([Registration]) %AI3_Cropmarks: 2.5 2.51000020160791 18.5 18.4899997983921 %AI3_TemplateBox: 42.5 10.5 42.5 10.5 %AI3_TileBox: -367.5 -277.5 366.5 298.5 %AI3_DocumentPreview: None %AI5_ArtSize: 14400 14400 %AI5_RulerUnits: 0 %AI9_ColorModel: 1 %AI5_ArtFlags: 0 0 0 1 0 0 1 0 0 %AI5_TargetResolution: 800 %AI5_NumLayers: 1 %AI17_Begin_Content_if_version_gt:17 1 %AI9_OpenToView: -11.1249999999991 25 24 1668 982 26 0 0 6 43 0 0 0 1 1 0 1 1 0 1 %AI17_Alternate_Content %AI9_OpenToView: -11.1249999999991 25 24 1668 982 26 0 0 6 43 0 0 0 1 1 0 1 1 0 1 %AI17_End_Versioned_Content %AI5_OpenViewLayers: 7 %%PageOrigin:-65 -26 %AI7_GridSettings: 18 8 18 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 56 0 obj <>stream +%%BoundingBox: 2 2 19 19 %%HiResBoundingBox: 2.5 2.51000020160791 18.5 18.5100000270513 %AI7_Thumbnail: 128 128 8 %%BeginData: 11078 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 %524C45FD37FFFD04A87DA87DA87DA87DA87DA87DA8A8FFA8FD66FFFD04A8 %FD197DA8A8FD5EFFA8A8FD077DA87DA87DA87DA87DA87DA87DA87DA87DA8 %7DA87DA8FD057DA8A8FD58FFA8A8FD297DA8A8FD51FFA87DA87DA87DA87D %A87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87D %A87DA87DA87D7D7DA8A8FD4DFFA8FD337DA8A8FD48FFA8A87D7D7DA87DA8 %7DA87DA87DA87DA87DA87DA87DA87D7D7DA8FD077DA87D7D7DA87DA87DA8 %7DA87DA87DA87DA87DA87DA87D7D7DFD45FFA8FD197DA87DA8A8A87DA8A8 %A87DA8FD177DA8A8FD40FFA8A87D7D7DA87DA87DA87DA87DA87DA87DA87D %A87DA8A8FFA8FD11FFA8A87DA87D7D7DA87DA87DA87DA87DA87DA87DA87D %7D7DFD3EFFA8FD127DA8A8FD19FFA8FFA8A8FD117DA8FD3BFF7D7D7DA87D %A87DA87DA87DA87DA87DA87DFD23FFA8A87D7D7DA87DA87DA87DA87DA87D %7D7DA8A8FD36FFA8A8FD0F7DA8A8FD27FFA8A8FD0F7DFD34FFA8A87DA87D %A87DA87DA87DA87DA87DA8A8FD2DFFA8A87DA87DA87DA87DA87DA87D7D7D %FD32FFA8FD0E7DFD31FFA8A8FD0D7DA8FD2FFFA87D7DA87DA87DA87DA87D %7D7DA8A8FD35FF7D7D7DA87DA87DA87DA87D7D7DA8FD2DFFFD0D7DA8FD38 %FFA8A8FD0B7DA8FD2BFF7D7D7DA87DA87DA87DA87DA8A8FD3CFFA87DA87D %A87DA87DA87DA87DA8FD29FFFD0C7DA8FD3FFFFD0C7DA8FD26FF7D7D7DA8 %7DA87DA87D7D7DA8FD42FFA87D7DA87DA87DA87DA87DA8FD25FFFD0B7DA8 %FD44FFA8FD0B7DA8FD22FF7DA87DA87DA87DA87DA87DFD47FFA8A87DA87D %A87DA87DA87DA8FD21FFFD0B7DFD49FFA8A8FD097DA8FD1FFF7D7D7DA87D %A87DA87D7D7DFD4CFFA87DA87DA87DA87DA87DA8FD1DFFA8FD0A7DFD4EFF %A8FD097DA8FD1BFFA87D7DA87DA87DA87D7D7DFD50FFA87DA87DA87DA87D %A87DFD1AFFA8FD0A7DFD52FFA8FD097DFD19FFA87DA87DA87DA87D7D7DFD %54FFA87DA87DA87DA87DA87DFD17FFA8FD097DFD55FFA8FD097DA8FD16FF %7DA87DA87DA87DA87DFD57FFA8A87DA87DA87DA87D7DA8FD14FFFD097DA8 %FD2CFFFD09A8FFA8FD21FFA8FD097DFD13FFA87D7DA87DA87DA87DA8FD2A %FFA8A87DA8FD077DA87DA87DA8A8FD1FFFA87D7DA87DA87DA87DA8FD11FF %A8FD097DA8FD27FFA8A8FD137DA8A8FD1DFFFD097DFD11FFA87DA87DA87D %A87DA8A8FD27FF7D7D7DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87D %A8A8FD1DFF7DA87DA87DA87D7D7DFD0FFFA8FD097DFD25FFA8FD1C7DA8A8 %FD1AFFA8FD087DA8FD0EFF7D7D7DA87DA87DA87DFD25FFA87D7DA87DA87D %A87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87D7DA8FD1AFFA8 %7DA87DA87DA87DA8FD0DFFA8FD087DA8FD24FFFD237DFD19FFA8FD087DA8 %FD0CFFA87DA87DA87DA87DA8FD24FF7D7D7DA87DA87DA87DA87DA87DA87D %A87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DFD19FF7DA87DA87D %A87D7D7DFD0BFFA8FD087DA8FD23FFFD277DA8FD18FFFD087DA8FD0AFFA8 %7D7DA87DA87DA8A8FD23FF7D7D7DA87DA87DA87DA87DA87DA87DA87DA87D %A87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DFD18FFA87DA87DA8 %7DA87DA8FD09FFA8FD087DFD23FFFD2B7DFD17FFA8FD087DFD09FFA87DA8 %7DA87DA87DA8FD22FF7DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87D %A87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87D7D7DFD17FF7DA87D %A87DA87D7DA8FD08FFFD087DA8FD21FFA8FD167DA8A8FD167DFD16FFA8FD %087DFD07FFA87D7DA87DA87DA87DFD21FFA87D7DA87DA87DA87DA87DA87D %A87DA87DA87DA87DA87D7DA8FFA87D7DA87DA87DA87DA87DA87DA87DA87D %A87DA87D7DA8FD16FFA87DA87DA87DA87DFD07FFA8FD077DA8FD20FFA8FD %187DFFFFFFFD167DA8FD15FFA8FD087DFD06FF7DA87DA87DA87DA8FD21FF %A87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA8FFFFFFA87D %A87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA8FD16FF7DA87DA87DA8 %7DA8FD05FFA8FD087DFD21FFFD177DA8FD05FFFD167DFD16FFA8FD077DA8 %FD04FFA87DA87DA87DA87DA8FD20FF7DA87DA87DA87DA87DA87DA87DA87D %A87DA87DA87DA87D7DA8FD05FFA87D7DA87DA87DA87DA87DA87DA87DA87D %A87DA87D7D7DFD15FFA87D7DA87DA87D7DA8FD04FFFD087DA8FD1FFFA8FD %187DFD07FFFD167DA8FD15FFFD077DA8FD04FFA87DA87DA87DA87DFD20FF %A87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA8FD07FFA87D %A87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA8FD15FFA87DA87DA87D %A87DFFFFFFA8FD077DA8FD20FFFD187DA8FD07FFA8FD167DFD15FFA8FD07 %7DA8FFFFA87D7DA87DA87D7DA8FD1FFF7DA87DA87DA87DA87DA87DA87DA8 %7DA87DA87DA87DA87D7DA8FD09FFA87D7DA87DA87DA87DA87DA87DA87DA8 %7DA87DA87D7DA8FD15FF7D7D7DA87DA87DA8FFFFA8FD077DFD1FFFA8FD18 %7DFD0BFFFD157DA8FD14FFA8FD087DFFFF7DA87DA87DA87DA8FD1FFFA87D %A87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA8A8FD0DFFA8A87DA87D %A87DA87DA87DA87DA87DA87DA87DA87DFD15FF7DA87DA87DA87DA8FFA8FD %077DA8FD1FFFFD157DA8A8FD0FFFA8A8FD127DA8FD14FFA8FD077DFFFF7D %7D7DA87DA87DFD1FFFA8A87DA87DA87DA87DA87DA87DA87DA87DA87DA8A8 %FD15FFA8A87DA87DA87DA87DA87DA87DA87DA87DFD15FFA87D7DA87DA87D %7DA8A8FD077DA8FD1EFFA8FD117DA8A8FD17FFA8A8FD0E7DA8FD14FFA8FD %077DA8A87DA87DA87DA87DFD1FFF7DA87DA87DA87DA87DA87DA87DA87DA8 %A8FD1DFFA8A87DA87DA87DA87DA87DA87DA8FD14FFA8A87DA87DA87D7DA8 %FD087DA8FD1DFFA8FD0E7DA8A8FD1FFFA8A8FD0A7DA8FD15FFFD077DA8A8 %7DA87DA87DA87DFD1EFFA87DA87DA87DA87DA87DA87DA87DA87DA8A8FD1D %FFA8A87DA87DA87DA87DA87DA87DA8FD15FFA87DA87DA87DA8FD087DA8FD %1EFFFD137DA8A8FD17FFA8A8FD0F7DFD15FFFD077DA8A87DA87DA87DA8A8 %FD1EFFA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA8A8FD15FFA8A8 %7DA87DA87DA87DA87DA87DA87DA87DA8FD15FFA87DA87DA87DA8FD087DA8 %FD1EFFFD177DA8A8FD0FFFA8A8FD127DA8FD15FFFD087DA87DA87DA87D7D %7DFD1DFFA87D7DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA8 %A8FD0DFFA8A87DA87DA87DA87DA87DA87DA87DA87DA87DA87DFD16FFA87D %A87DA87DA8FD087DA8FD1DFFA8FD1B7DFD0BFFFD167DA8FD15FFFD087DA8 %7DA87DA87D7DA8FD1DFFA87D7DA87DA87DA87DA87DA87DA87DA87DA87DA8 %7DA87DA87DA87DA8A8FD09FFA8A87DA87DA87DA87DA87DA87DA87DA87DA8 %7DA87DA87DFD16FFA87DA87DA87DA8FD087DA8FD1DFFA8FD1B7DA8FD09FF %FD167DA8FD16FFFD087DA87DA87DA87DA8A8FD1DFF7DA87DA87DA87DA87D %A87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA8FD07FFA87DA87DA87D %A87DA87DA87DA87DA87DA87DA87DA87D7DA8FD16FFA87DA87DA87DA8FD08 %7DA8FD1CFFA8FD1E7DFD07FFFD177DFD17FFFD087DA87DA87DA87DA87DFD %1DFF7DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA8 %7DA8A8FD05FFA8A87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA8 %FD17FFA87DA87DA87DA8FD087DA8FD1CFFA8FD1E7DA8FD05FFFD177DA8FD %17FFFD077DA8A87DA87DA87D7D7DFD1CFFA87DA87DA87DA87DA87DA87DA8 %7DA87DA87DA87DA87DA87DA87DA87DA87DA87DFD05FF7DA87DA87DA87DA8 %7DA87DA87DA87DA87DA87DA87D7D7DFD18FFA87DA87DA8FD0B7DA8FD1BFF %FD217DFFFFFFFD177DA8FD18FFFD077DA8FF7DA87DA87DA87DFD1CFFA87D %A87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87D %A8A8FFA8A87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA8FD18FF %A8A87DA87DA87D7DA8A8FD077DA8FD1BFFFD217DA8FFA8FD167DA8FD18FF %A8FD077DA8FF7DA87DA87DA87DA8FD1BFFA87DA87DA87DA87DA87DA87DA8 %7DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA8 %7DA87DA87DA87DA87DA87DA87D7D7DFD19FFA87D7DA87DA87DA8FFA8FD08 %7DFD1BFFFD397DFD1AFFA8FD077DFFFF7DA87DA87DA87DA8FD1BFFA87DA8 %7DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA8 %7DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DFD1BFF7DA87DA8 %7DA87DA8FFFFA8FD077DA8FD1AFFFD377DFD1BFFA8FD087DFFFFA87D7DA8 %7DA87D7DA8FD1AFFA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87D %A87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87D %A87DFD1CFFA87DA87DA87DA87DA8FFFFFFFD077DA8FD1AFFFD357DFD1DFF %FD087DA8FFFFFFA87DA87DA87DA87DFD1AFFA87DA87DA87DA87DA87DA87D %A87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87D %A87DA87DA87DA87D7D7DFD1EFFA87DA87DA87DA87DFD04FFA8FD077DA8FD %19FFFD337DFD1EFFA8FD077DA8FD05FF7DA87DA87DA87DA8FD19FFA87DA8 %7DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA8 %7DA87DA87DA87DA87DA87DA87DA87DA8A8FD1FFF7DA87DA87DA87D7DA8FD %04FFA8FD087DFD19FFFD2F7DA8A8FD1FFFA8FD087DFD06FFA87D7DA87DA8 %7DA8A8FD18FFA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87D %A87DA87DA87DA87DA87DA87DA87DA87DA87DA87D7D7DFD22FFA87DA87DA8 %7DA87DA8FD07FFFD077DA8FD18FFA8FD2A7DA8A8FD23FFFD087DA8FD07FF %A87DA87DA87DA87DFD19FF7DA87DA87DA87DA87DA87DA87DA87DA87DA87D %A87DA87DA87DA87DA87DA87DA87DA87DA87D7D7DA87DFD25FFA87D7DA87D %A87D7D7DFD08FFFD097DFD17FFA8FD267DA8A8FD26FFA8FD077DA8FD09FF %7DA87DA87DA87DA8A8FD17FF7DA87DA87DA87DA87DA87DA87DA87DA87DA8 %7DA87DA87DA87DA87DA87DA87DA87D7D7DA8A8FD29FF7DA87DA87DA87DA8 %A8FD09FFA8FD077DA8FD16FFA8FD207DA8A8FD2BFFFD097DFD0AFFA87D7D %A87DA87D7D7DFD17FF7DA8FD077DA87D7D7DA87D7D7DA8FD077DA87DA8A8 %FD2FFFA8A87DA87DA87DA87DFD0CFFFD097DFD17FFA8FFA8A87DA87DA87D %A8FD057DA87DA87DFD04A8FFA8FD32FFA8FD087DFD0DFF7DA87DA87DA87D %A8A8FD61FF7DA87DA87DA87D7DA8FD0DFFA8FD077DA8FD60FFFD097DFD0E %FFA87D7DA87DA87DA87DA8FD5EFFA87D7DA87DA87DA87DFD10FFFD097DFD %5DFFA8FD087DA8FD11FF7DA87DA87DA87DA87DFD5CFFA87DA87DA87DA87D %7DA8FD11FFA8FD097DFD5AFFA8FD087DA8FD13FFA87DA87DA87DA87D7DA8 %FD58FFA87DA87DA87DA87D7D7DFD14FFA8FD097DA8FD57FFFD097DA8FD15 %FFA87D7DA87DA87DA87DA8A8FD55FF7DA87DA87DA87DA87DA8FD17FFFD0A %7DA8FD53FFFD097DA8FD19FF7D7D7DA87DA87DA87DA8FD52FF7D7D7DA87D %A87DA87D7DA8FD19FFA8FD097DA8A8FD4FFFFD0A7DA8FD1BFFA87DA87DA8 %7DA87DA87DA8FD4EFF7DA87DA87DA87DA87DA8A8FD1DFFA8FD097DA8FD4C %FFFD0B7DFD1FFFA87DA87DA87DA87DA87DA8FD4AFF7D7D7DA87DA87DA87D %7D7DFD20FFA8FD0B7DA8FD47FFFD0B7DFD23FFA87DA87DA87DA87DA87D7D %A8FD45FF7DA87DA87DA87DA87D7D7DFD24FFA8A8FD0B7DFD42FFA8FD0B7D %FD27FFA87DA87DA87DA87DA87D7D7DFD3FFFA8A87DA87DA87DA87DA87D7D %7DFD28FFA8A8FD0B7DA8A8FD3BFFFD0D7DFD2BFFA87DA87DA87DA87DA87D %A87DA8A8FD39FF7D7D7DA87DA87DA87DA87DA8A8FD2DFFA8FD0D7DFD35FF %A8A8FD0D7DFD2FFFA87DA87DA87DA87DA87DA87D7D7DA8A8FD31FF7D7D7D %A87DA87DA87DA87DA87DA8A8FD32FFFD0F7DA8A8FD2BFFA8A8FD0E7DA8FD %34FFA87D7DA87DA87DA87DA87DA87D7D7DA8A8FD28FFA87DA87DA87DA87D %A87DA87DA87DA87DA8FD37FFA8FD107DA8A8FD21FFA8A8FD117DFD3BFFA8 %7DA87DA87DA87DA87DA87DA87DA87D7D7DA8A8FD1BFFA8A87DA87D7D7DA8 %7DA87DA87DA87DA87DA87DA8A8FD3EFFFD157DFD04A8FD0DFFA8FFA8A87D %A8FD137DA8A8FD40FFA8A87DA87DA87DA87DA87DA87DA87DA87DA87DA87D %7D7DA87DA87DFD09A87DA87DA87D7D7DA87DA87DA87DA87DA87DA87DA87D %A87DA87DFD45FFA8FD377DA8A8FD48FFA8A87D7D7DA87DA87DA87DA87DA8 %7DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA8 %7DA87DA87DA87D7D7DFD4EFFA8FD2E7DA8A8FD52FFA8A87DA87DA87DA87D %A87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87D %A87DA8A8FD57FFA87DA8FD217DA8A8FD5EFFA8A87DA8FD077DA87DA87DA8 %7DA87DA8FD077DFD04A8FD64FFA8FFA8A87DA8FD0B7DA87DFD04A8FD34FF %FF %%EndData endstream endobj 57 0 obj <>stream +H‰ÜWénã8Þð;p±è…LQ—¥Ì/;ÝÉx'‡a§³4-1'´(PT÷Óo‘:¬8ñÑ’^§[6«ŠÅª¯–Þýs8ÞïÅbJ÷�Ž…ZïÞIJ”�‡ÈPÑ€óŸRı}Mv&FåÇ t�Zý[“»“Á(cª˜ j G'ý¦@4íO#:c&(Ûç½R­éœÈ»l‹Ãn§Nhãbë%�§Ð7h¹z7¶àQÿ*¥ÀG#±ïø]àìÛ]ýåø¾>. *¹%‚ôžÑ‡Ct.ZÀÔ“j\DÑu-«xœQΩü˜0U¸Þ„Ng"¦äëýÇœxÌ^> �K"gTAž+“•AuÄá”,¨¦Ñ†»“>À˜À9‰s'ìfr_äòd¦uv\¤4¹WÆ•} In»aõÁÈß]ÈJ?@ayè“|ä:µ�xù,îqEeˆW‡ÿ´“>$ñ¤¬P7OóÌiú¬ +•.dÜrðB2€åpß×!ö‹ä<‘,^æ&PP>ôÁ�À”�…qh[¡îJ)ëúØ °kïB)`‚PàFG{rtÖ¨«s6OÀñ#1×y˜én¡# µ}§àÕ¿ ¶çi�J‘�²CÉ­³un8ÁdÈs`�H‘§ƒäF´ÚEƒ´°ëuq¨‡lãRõu¯UÍp°XÀâ?ðão =À܉ÎЧÏŠ�|=j#âÖAÑÍo¡ð¾�¿ÐÒÛ­� ‡q�‡ÓìÓêpn¼þÒz6´£Ö°_[Ùô5�=uÍh>ÃÂ|Ka«`Å¥Õü£$ƒ¢â奭Õ˼ֻܑÉAµ†$Ó+i4ˆ\˜µïyއÀnƒ=êL‘1Šô«à(i¼Ùún‚×J| ô¡¡)Ô–D›çÜ€_ˆx¶kë³ÑLRš;=‡Ç“ìwÔ~œóØûÐÚ%›æŠf從”¤�úÙ*~€þ†TtËx,W“ªâê‡Z¤%˜í'ÙäžÈìwhÿcО̞ŠÞ“:–†ž­‘Kàê(ÄJK²'«_�D$t`8ž.ŽíÈT’?(1¿Õ¯)3- +ïà$ÔÖ¹qb»MéþïDoDb'ÿ�ž¾Kâo�ê¯Tè‡÷;—º}åŒÖîEy¦Äüu;ÙÏËÃÃŒè©\ÏNPb»¦ãO¯ °å ™òÿP¥ÙÍþ�_¹ 2΢_½×Cñ:'§BA#;¥7êB2xoÚ%ÊÏ÷¼nG¶;ðŠ0¢dƒ›�;eïp[ð±-ì[Ýoój±‹W‹×ö +{�Ð|Ûs]ÇÝæÕ-e³Û]:}-ùÊþùÛƒš� ‹`g¥­7À½/7"vòsÈCšP‰†’fT¡å«ö¬ªzƒ�Ñì�H¦¨d_ˆ>¢qZ±Ã±žì¸ÈUš«-{¬¶#)Òž¤¤%~OŸ�+µ__�ƒ¬'ÕT¿§7$ç�wÇ{.‘N£—ýw(X¢t`Ú£œSÙ¼ó*“Þ³,ådqFä] suÂÏÑmW�0ì�JJv¼|;F”_ŠQaƒ±i(2¦Ý5\{y!‚"7Ð]·Nhﮯäpå‰A¸D{ânÕ ã”ujd +Ôç$+1qK¡Hp¹"D8+{›S7Ó”ÄñÊ“¥BՉݠ^®D�4%¤ËTR™¥Ô$ɉdñÄ ,)‰˜*Ýp½u¢#}¯“ˆö’/;v×ï–.¼("iUáë�0’O¬Ø¤÷˜ !ûuå{�Õ±Š��½µÖkG?<ªºæ­MV/µûžçx›DG4~z®J]6æÎgų*<Žÿ:¿ŒMÇÜ`-ÎWŒ>@±Aa*’Du™‡¸c».Œ"¡ƒƒ®‹«áqƒ¥ŠÔÕ±Q(tµs��ÏJ߯îÁFR­OW-¸’­®t×é5YÕP¼D#xqsݾlk6.Õ¸zÆW'Ý“ûâñ�Æ@ÖÜ¢/Ëþw9ë´«ð#ëeõ:š°åú¯—ûtƒê²Òœƒ�©�ŠL9íe`{ö']lŽ›pÈIB¯XƦŒCqê ÓÍ» <ë·~·Î6ÏqdÒok¶™,¿" ËnÁÿ’®q+ ’˜>3™©ïJxc‚q¬o^õFtC¯Öhc˜ûÛ5ÖQΛ%ü�Öúž¸+Jc‰$^cD7ü:˜.EÚÄèœWéZÛ:¾‚Þƒú”í  Ûi³˜ÐÐP(¡Ð¯=ôT±åÄàX®$CéÕ#¯Šã�þá<š}Þy§U�ÕÕ·w«^Æ”U÷?ô.NѼsñ2Ž·�̘Թ’Ô±G‚è#a.Œž7ò~c76ߨi6+V¿P•‡'Ù¯ŸÝÅ'³11‚|Σ:|Ó®µù½ÿI“hR�_NÌõБº5w(&9òý@XêV“.9Áq^T _¢ƒhK"h…ó¢­�T\�2râË.¼Ôúÿù3ÂÉÀ¶=Ÿ™PvbX²=ìâ10baEµoe�  h™ñÌ1?w›�A/ŽÕ^ô‘)בsêP}ÊèŒhôÉáXvhJ¥ÞïÈ÷Э®'à3´ã%óÏOÙq—Ô¶"F¼öM‰iÁ¾»+^sÀìlâ'7�‘,Þ…!G ºÑOÜs¡×¾8àùsïË1”ó#÷U0,²‰¯dç‡-³×,1t 9Y¿ øq”ÌÏœø;÷Z¹ˆŠ +1÷šaFœG¯»l˜Îë©7;زW†L1t­£$a9Þ5•ÖÄ”±åò€.fw¬q'²2Ö“@�:°Q¤cjÛe’ÒÈÐ…iÊRBßÃÚ}¢ìa³ŸY¾ +nŠgeQV{¨sŽç{»(FåÁÜXU3 (¤HÂKŒÖ9Çd”žkfÍdnþØØ+Ñd¢’QvưèËûÑ/aæ0îe^?’DÌÇ<ë·Ÿ™j•C[Š3¦N|˜LR¥¢ ;1cFê…‰›‡¢ŠÐ«B¿.©…R ¦R‹?ë��Pn™V´Š_6GWÅ×h^¶>y8Aî��œ�—‘°t§5*íºì:UØ×�Ñ1Cü €ó'ù¹Ž®Æâ SC‘ŽòE•]XÎå� +w +w*´$ ),OQتïDLº‹·«Ÿ¥ùõú²jt©tV�/äu«rù¥a*È PÙÍbgU�%ÕB/!u#+œ¢qáòSÚµ 1’噣µáï1ªûÒå<�ë–&1v1ã婼ˆŽÎrÑ &Ëy¨ÀÀ ´·d|c‘§p2¯§€ÈS‚Œ€í¢ðÈâèiJÄñ£œYì •ˉC˜Ëû—ÈO½r(UÂÏyeÏÔCpn9z‹7„o:P7Á–ƒ¬9CŒÅOˆ *UèYB +cdcø&”?è[îéSéÞÀBbMœDM`Í�ñÀ;j&æ-Ž<çÁ�&¬U&G:³Ü¹»²¤ù*oœ`|aòËË +äNÒ^ÕGÊ¥ãPH…ñŽIË%#²z{„Öà¿uéÅgTx±v­èZíŒzƒÁþžFdIäÇÆ»‹•oëÇ·ÿ¬á/g»+›Ý6;�M'Îë³þë�µÕž…k|©ùùýIóÍaûóéÛóÆ»Ãá¿«çmæé­þÉÎùþr½Ñx³½Íµ{m²±½Ô>ú^û»}¼áò6ÿ°³õj¹}4|Í"¡3Ñ�¼ÿ4l7ȨgýóV×jµÕÉ‚©¡ñ?°×Òúˇ­¯§B»¿ë6¾nntftÈ;ƒ‘˜®¿m¾ñúZcé¶{o¯Þ¾ZÖÌí³q¦²¥Ö�ÙºùôíßÎu¯v“oT•;¼k?ôïÚ‡¼6[×6–½þÚ©a¾Zö“ÕÿkV3ïn[]»m94»SÑ›¶¾ÖçÒñcEÓëßíãw«·�p™÷¾O¾Sømå§60¯»›û÷K�Ñæ'ðá 6¼WË÷këú‰¾÷i­7müwtÜYÞ]Yï~Üø±Þî­~î÷ˆ÷÷Û›³7Ó#]Çò7kýÄNËõí-ÜbÖÒ�Cëû™Ñµ—ß­n²õ½Îp´òSúÿWûèlºûj¹yts×î8úêìÿÜWçz²Ø¾‚\„QŒŠ, ŠJ·GÅ5QcÁÞõþg4æÌ7gίó‡Øk¯ò®N¦ÊÉ»ùL-X6t2"âqœ§ÉU‚69Ž•Â©`cߦl;BM 9ô üK—Sž€*­Ùê[Ð)‚œç�mÕÏÅNÀ/ùãL³ò®Oò­I/9¿Ûô–¥Ÿº¤Ç´™Úâ”–V^&p ÍÖ¤DÑ_βúæÝšƒì¡ôDòBP£×|½“i�¿¾ñmµˆÉe¿:ÄÌÂ�p„îE¦Óª?¬df©+ŸvŠON–ï}äISaÀ¯"Å®R‘T0ø² =)M£è_Ì!)5(n™(Óe–c±¡,IÅê÷÷›KbFÍW%>šbE–ªŠQ_„ÃWböBHÑNc€Áì2“®: É–ý+š²läÅ’ %� 1ÓdÃGÓC–Õ';K^¼~ØÅJÉWÔ龜±¹�cxÿ¼ÖÈLëû€ J3ño!Ù8¿Š�ÂùòÓ´dm8ÜñqtÜXÕAæTäó ¡v'Ä,<ä3 +¥} +ü�×>?)í¸þ£¯î‘µ;öæ9™ùé‚P¶Øq*”²â @£ˆáÉ}r¨yŒbP¤øF7ìuõy¬È=ÌE禚ǽ÷ÊsF_©d)¨Y‘ + ³ƒ¦®N`„ + ©6n`šÓ+Ïæê‰MŽ›ºÈvÃíGTsëÖï׬ð�¸g.áVÓ¢üBˆ�ò„&Í)R©³z¦-¢´Ñe;¬’F Sál´ü3rÎUÍ[]'5%Ö “éì0ðBXv«Æ†¦*1Vb•*8A:×ò#¡Jh¸÷IËód#­·­�ؘ¸‹"i2Ø«þÝ{XsØž¨ó7píË-1diŽ«¥W1Þr Ðv7ÇUPm}än%(~5"š0K}À?TFÑy[lãÓ=�[Ô½u|¹ð¨¢Y�H±ÎwŠ—VžýBã³´ÇVÛ»ºïÛŽ è%¶bMS£‹êIÚV§y8‘ì9³3 Þ´þã<>$“ù“*öØ“è˺'Ö‡ùzʉC�ÏÉA@2l�*PrKt÷2ë—FÔ:EÄ Ž�á8N¸±·ìùê𙊼eucæ¡Gý¦q;\*Œi™ÎÊ%¾¥©B–NQÓQ"Cû=rÆü—¶n¼%ú ?%X +et}2õR¸OSøöM€ ÿI˜™È46Pôð »W! �ˆá§òB˜êI�èÝ⃥@y÷,Sù´y#‰H 6U¤’i®ˆy!�™Ø`¨[Í•ð_1³¤ �ÝT~Š>M~õ«ó6º“„çÈŒŒ%"Gêa·³dÍ„ Žð4¥ð®Þ¿wÔ×þŽxpÃU +¾Á²x#3N÷p¤�UÖ'bfJÎ>ÑAxjKúï]‚UFo&G,ôþ‡¨ü¿Ưa‰K¦UV¨< €Hþ V +ÛŠ2çGʲWž�ú�©&€)ŒØƒ™“Ä=‹Ì½6²)ÇôƒPDleˆdË[w^M[Q‹È!â“TIšVÍâ�ƒ\s±ýçPÿçxA�#çkŒ=+€È435ÿYb—˜9„«%ÒQgâ´·‚Þ0üÐ ¤<|tïG?ŸØh·šð6m€IßÛ'nA¯œ•´a¹“о èbЮø­Û\`rQVBÛٜɋþ@PÇ«ƒ·2Û8;W_gìcÙFë ØÅ2 x3xô«æ½ŸV�»Û¶(§Ðzópòü¢w•bñ Ù ’SQß*¡Þ?ŽÀ»6ô½í‰wj=àCm÷xzõöÀÚÚ«c#$1þpÀ¶7ÒÒh¦L}jΚ­à¤T¸p0×)ì3^±­nö!¬¦p·åÖÚÎÀãÙQp-° •õOê&%0­Çºÿf9ùƒÕNJÿr9ùƒÕä:õ™€¦�ðüëb9ƒmÕzŸbC %¾sW4‰Õu>ú(HhŒµp²XýmìqáÞö©Ü§R”˜7 À;’jBÏ'Õˆ¯3‡a©`ŸàdßEPا™bPÉ/Ùo 6°Y@à®ð‹ÛÛZ—b¥Yá²§¥ÈoKÆ3Í0>3²Òš™õÐôÿBXóÿOE§%»"¦ ½j`ÀÖcðæ?g÷¯#Ž#“Ñ÷{¶¥_–þ W˜¬X_ $¸=;Ðc=S MwÝT¾)k……«÷{^…»+§<ÿt$€ÂƒÁÍû_A`nä¾´*“`©Q3Ap1èK«pÊa˜ÁN%&›5ÝT°íg•#i¼ú4¹°ZÿËçÔÔíde˜à6qY~W¨gÇ¥‚T« + [t6ïWE/B¬½×[šâ�ÜÚËÈã�›bW—Q•*íƒëì©2=>H¾fåƒìÿµä IM8çÍh¢ÜÎ I*“ÂíN¦ NÎÛxWöRNŠ^$Šö7OŽ;ôú"—,̃Fô\ˆhSýÂñµ�Ó|^”«6Øoü“-èNº¦ ¼Ž9´4"ð£þVh×HwbNÖ ùqKç¶ê\)ùŠÐ´"ÎÔ4“ (…£oˆcìgÄ8Ô4¦4ó÷ŽÙŸeo˜ݨ‚ûÛü�(UýAöÚ�Ù VÁ�!/N ä¾èéTA=ȹմ(Û-Ûa `³¦ÂÙhù‘mÍ:÷-{#`|)®I‚Ž;À̯y;Õ³XìÐìÆTñ}¢L6œÿ|žWÅxËPŠœsâfØ9ÒÁ �kùQ‹‚ÊÅÓ¡{zÅ)W Ië N¦õ-;^,ñ½ÿR}¢”Ÿ9„ƒÔ÷˜knƨºŒ‹HpyØsfê(Ô]ÜÏ0¨b÷˜®îû¾öëÒ LJl»¼¯ß÷nLÉòuªö+£˜M’°à^uLRŸbÔÃÕ@ùkÇñ,pq +|¦éVò›EOе>‚bÍW�‰zƒ›E–È~±ÒŠží£ +n(©�’ï•|pØÐ ¨Î|ý™òñ†ÛU×NwG1^Ò:îò+�׃†3÷Ñ$1#V &¸×¤áªÏŸ�‚&ªŸTÒÇöö}µH}¡å:ŸMÉ%à♃9—4Dr¬ ܽ9¨|/Ë_Y˜ýªœ(/�¿¯Ò5Uµú¾ƒC9"‚8 jYj©8V9ƒŠ +x»¿þÑÏÞ'¬cݾÎça§’½“•••eFñ7k éÂŒÀ Ê¡WO{²K"ov¤~}ÿ�Q7DÖÙÆ“¬<n‹«5¯gꫬ‡Õa˜1eÚIaTÚ!¿i·¹1Ì(òè0Kjë‹�)ýR±^ì~`ƒðdèN)¯¹¾@6ŸZPdúdS‡WWxÒÛ;:¼™ÕÁõþ¢èÏ*Aä„S™âvɇ¾qìqqËöT-*î·$;Ñ`ùŠú +Cf]LÐ5ÔÅ1][bQ¦‘á«t–=Ú•÷õfT€ÖÐôÙädš!GR�[¦§?” ß�|¦7š_„¹?0꺂Œ=ƒå.—¬ÿ~?.—*Tl(Éçˆø+€¤· /2dºeÉÆ ·lê0‘/Tq½mÙ#™ÑJ(Ò«Vù-­0il˼6aBº+VfŶÛ{Üt¦'¯èÔQ›׉IöÏ(°Ð…¬ZŠ>×ÿô¥™÷ì…*íj{$O–Ê0_NÃìà^¨8%¯3�"Ûtl|tw)žm¾óÄû™‹´$”ÎÔ7[›8‡DÂ-ŠÌGÛw²µë‰1·WvÓï)ýþ¶–ÇÓ[ªå„=寙+�u� Ïž +¾y;€ÅÁ‰Ý7òÉ?ñÒtÃøÚM¥”�€ç^�j"Æ-E –=|¹·u`EMK^ÁU¥5ÏØà–ªyØ4LÍU°X¡<}¡¸,ÄísÝ_Lq@Bg}]$–ðÖß(x,¹]s¥¼W‰‘&ˆ!! ùEw¨ßÝf…@Eê™Ëå·É}N¦ÆæªpF  eìðâñP ˜JjÙ¨¢Ò†iDÙ8#v [šÊ=ö^¼É ø%a¶,âzxHä; žI¢Õ¦IÑ?£XFÖEÇBL|9“ÜÂÇ�_$�_$ËÏ�íš5|2*³ ¼Ž™¯¦~sõ„¯25$“Tô¹þQ§>ÁþR—߀òpÕ‘hÜ€& +MÕç-ÉÑåãéfVMAG\€TÐ;æ°ðï¯êɽßmÙ�©3bw$ýf­�§&¼…htáA¡³É­ º¤´ûKA&¡ÁÂeG¬•ƒ8»Û§¦Èۿ˜mlÏù9Nùí +þꑸ0»™Ì´–kl‹œi©nœ¤›RÚžï·¶Ï+Š�_¸‰l2.MàS­òO±q*·>`ó¿e—{Ÿ�ÖÎâ¡…^(€06±Š QþFSd{<Òð#�À1úwvù´aõ " ‘W‘Þ{ìMí„ ]ƒÿtÖþ½ïÌ>ë|zj $¯Ór¶4Ÿ” 4ƒsC©cŠ'C]íÍH˜ì08’ØÑdÅ3©’n°hjƒ +�w´[ŒvözVÎøöðæVÐ9Ú[*ÒääÂB~fË3“šW¶‘`î°9+ƒÖSñìò,k?©W q˜í/.Òö‡—8EÓmÐÛmA WòöY”þ?~ kéµò`î5€O/z„ª1í0 uY…ö(8ùÅÙ=aRhÄm +Bâ¼`d6±•$¢ÛuSd¡X.®¿$·¹a¹iªsÕ*,?'¯þ ô˜0óñtvÔÙI6<>-€å‡[˜¹Ë#ÓÚ%{O$<ëÓz°ïæªïq€½‡=¾"Ô ƒä‰Ï!)N·,‹9n•$ÜTøü­ùSˆ‡-(t(aqEã�ŸîÔtã¤+�é×¥âÓ‡ähÒÍÁ’–Ôá"£"Ù–T +ÔøñmŒÞñÍg$i!fb³Ð'»C£b©?ì .{ÏâÕ¤>žŸ…éè¼æ*RÅoíFè!,&¬BØ‹�3x‹U�%†ö ð�s˜¯ô;·=yÇöÖ Ì(ãw‰Ýy þg·]¯ã3$pàZkž§Œõ±CŠ�Ü¥·ôæ^¾ïÙDé%ËÓŒ¨#®38U?>Zó’,ÖO‰\HÁTxPe™T¸búó)ð«Wï‚è·ÌߊsUx<ˆ)vÁ4ªåLÀÕÀÌCìéJM7 ù+;ë©Ø^1~ãø´ªðãþº„ƒ^˜O‰Nãkse˜áûWßBÐȪü‚&ÙZ0¨�‡J6 61Díš,aî×?ÀùmÈ£ƒÔŠMô⨭úÊ8¼bDN§ê¬�ûæä,WTô9ÞÝK(ý2ÏlsÜHxl@»û!»»fÎþ7ñfqMK(WÙ{?F>k~{„@•MA]>‡aÕö~Á߯–É Š¹&ù¹È'Ìøyh +‡²ÔƒªøÜ]I˜ßÒt¯‰ø^²Ç%;ß÷r~6Ý„™CÁõ)L£˜Ù ßÜ»k‰?®wó=g+�r‹Èô;sx‹,\%"@íÊïø +ª2/¾QÛ[‰ŒgDd»#ÚRH®–ÅÈýwN!IL_ÆmQ‰"ÛLÔM¦'_CÒÐuHzHÔùE¾ ®:¾ã[ºÃ½¥W=Íá…›•&ÃŽq½0Ì;þ7ïðN²ÎS‰ÆœïêÜÙ8ŠzÐ�Ü̘�a8�:1VUwÎÀ§¬éGya(É%M‘&íÃìx1!I2éÄ*ã…£¶òùb`$u.;?9Áù©ÉºlD6ê\½˜�XÛДÃê…‡úlõ€ÿz•µú¯²"ý4ƒÎþ’kç�¡w2£su¦IúÅ*ëÄêªÑ’ª&ÉÒå ª’žð‰Sç½|0Ì4˜£Ñ +¯”ƒ(ÿÛ¸�90ó»ý‹3ãĘv±RI%9ð+ɦW$Ÿœ’H¡;Çp ©¡HamÄÍ_±ÕÌÄïÍû/ë /ˆ J§´-{Z¹™¹¢äï§1$×"Ö®`¼œs¡˜¿åðº�ü–rëô+¼VàhºŒ¸�s¦í +×úœ Åk1Ë Vø¤«l&ô˜6Ém…Æ4gSñ´Ó~H¡SAµpÿ8Å˹èðjZ>7gÂÇú;]MëùT™êEõ¬—ébñL€�ÀA±#Bí4ÄNíµ+¥OK[çÿM&!‹Ë÷öOºL2×½/®+ˆ£Èrýv.ñœx÷ÃIèW¡¬�©&MÁH9Qä(¦;)Rž°'L¹ß½-I«°ô?�b¦‹ åüZSÎÿ%©æÔªÆ1Mé7 +2zFj$#ëJUî ’J{jlϲö¤9kxÉëÛ‡ólÊR˜À?óß`aëgOjTö¢ÛwÅÑw¸ |\K6ªj'ø%Ý ¤¤,l~d‰Õoâ8ãJ{•ðÑ�ÌS6ÕÊmš­_t"ާŸ-ô¤K8Ÿx î\[€…NBƒ: Z°|Ï}<4N ÷–n¿)X] {2š–pPwì�‹ !‹¥;¨ P‰‚°\r|è 5çVaëo VÇAAîã½@„ÚX®/ ¬ÄèÊõ ŸûxMs»›iÏ%Ÿr› ŸÂ%N�ÖívEÅ«±ëûDP’sAïÕ¡8ÎvëÔyJܘ;x;†+ý÷0úò½,¡&ºìÝm¼®ÜÐ Z•Ý-&•\.Ea¡íâWQ…B¿è±­j¨ýF‚fAL"xhÅci/¦® ++Lw’Øuí:–Ó- Z¯žO€ +î×tXÌ ¨‰6ê:`Ú"tenWxtãÙ›…1f®u¾ÖQºÆ` <™ô¦Dèf™rü#A«àM¨dTŠ1c®vüæÞ¡QÄAE±æ±(ÐyÀiHwÄ%dèÌ|È«PiºˆSQñÈ Ë\@_ŽÝDè¥!4!;MtÓgè:â2@é�¡ùAM4Ë÷ýE}�h¡6ÌKPÏe)¬yN�&s0šWV^šrŒ +…5Ù·~Ún¥*¬ÑLY_ +—îD¸6” ¾Khˆ6'ú…„–(”bù—O•ümx º®6 a-CS�JEßÊ¡�WŸÔÞ@᭞ў²‡Š�þÎ §çŽÌmT`ñ³ÅÍ9aÒ$ƒKÒ©ƒ¡úE8EÓ…äó‹¶XÑ’[Ç¢íæ7ûš\½’‰-­Ÿ́ђWª¥a9CUPS~:í;Ø3¹vê©�–Ëì@ˆ{áÿ@.Ã{ß3ÞWvÃÏZ[å³7ú[’& ó4dKÀަñÒ�¼ît¶ßCµnúªá_;Ü!{G´îÀâú?ï¬ßWbî„hಭëеhf퉺ç´ì¼Tu}_ž ÁO§6x(×ï‘¡æÜÂg€Â.vÆ‚\›o p0~ùªÎHз+м'¢ëû ›Í¢BÅ}Ô½?C:h¸Àõ>+±4ÿ­3¯Ù¡…r-«‰V±âñÍï%BQ´ p›„›ÃåúC´%i±:ÿ°D(ÚˆPisX¨P¨‹»$CõF� •æ¢yM´4‘LIº6.¼j‰2 +ý¦Äyôú{R…QÞŒÝu#7ªÜ÷ž³.¿'U 4óWBçoØ‹ÔÍ¿ÁÂ>Ì(Ñ?kòhþ“‹ËɲjƧýLÇÏœCÅ/ÊLí-™u«Í§7÷¯tEó,C.{¶�$ž4Ë·ÒÚÂ$áKAšFÉ�¯ú]L¼œåÉJ›c½tâ•RèÆd$ß©Ã?m´ò˜õ²ê�/ÝÒP¾<Ìú…ñ>/ù嬰Fä¤@+¦º‘­#Ïü§r¬j#0£3 Öî¼ïs™¥a$Ã0$S x]¨ó+‘�‘Š=ý¿Ê-P.u{•�~¼Ãèè¡èW·Û úÕ)U?Ô+/4üæþ–¿nw©ïCËß +Ó»3'pvWürÛXúÒãÝ\”ž>³ÕÎÚÃëMô#Þ$5òš+Î"ëJ�Ó†¢’”•}æ@”GÖvôPl—§lXÛ £®!+µ…Ÿ•òâƒQ-å/WîPÍD”Ó©æ±\WM~,ë^[rëŒoñ6Î×L4©©ZÙd­ðÁ>Àr¿~½®� ë-Cì q–!€�ó|Ùf˜Õµ1•õý…a¦ä. uY:>%vΑ,ï7ØËæ{âeÄ«4YŸwþíEÞÍÙÝ:ã²N7óCy`·_GŠW|9=Úá¬WeÎ5ÉA‹YŽù2RÖd²C¥‡"<·ÁÇÔO_uW1¼‰„6 �dn¢dà#ã”|ià¦0Õ»²Åô.áv.Y‡Åë=îzéÑv1¨UoOjLØ™Q?1ªÞͪ*ÊJ}cºÛ¿‹¼fµÔéB;?錡n+1w\ Ö1I(–DJx¡ÎÓi¤Ó‹d¹Ò+UçÝÑ< =×Ö«ƒ…åÆÌ¯õà�‘îÿIul6íüÍe`¹ZvqW!¿<|™¾¡Ü–KS-/.û°ïzf±sÝ#J~Dƒ?³˜¡¢=j1Žij-yHî ‹+Ë÷&Ä"dœŽÕÙX®–ziÿô�þÚ@‹oÐØ…«uL;`cg¨ÐÚüGYYp§BùÖ¸�Êå$xò_ÁD¬±rå?YçöÚgºm�©÷Ž%Mž)ȺËÂnšb·UÓ=¢Üª7�Ó…ýÏ6!¦=ÄD_î†Ñ¾E’û+Ý·ÎÎó–ÅSHùƃ„JF +ÖÕIžUV�™p? n·f˜ñþ—z¤|�dU4Œú�ï¦P:‘–{ ¤\¬ŠSPå_ï/×õ;¸í8ý .ýÖ¤`ŒYns®üú¨M9²¿‹_åþ@¿ý'«Î–7�ñ®ç¹€õ_2?ÚƒÁD?f¬«)Ž3ºæ ÆX¦¸ÎXú÷*]L—â?%}Š–4Ð÷8pÞX£fM;…uL·çªÑf“M‚í~JWö<ÝR�l‡:2a‚OùË6]lœ½¡‹ ô¸hRGŽþ�õjÝK‰âO�‡LA €¶â….·(HE Š-âJëjäòþ;3™$3ÃÜ|aý±ô̹ý/Ǧ ´QiùR¯Ó–fx­vܼ¹"”ß?ùÈêT5i§-ž?p±ß¯ô¦[ÄjªBßÁº´—°í ÆÔXÑŒ.ØÀõ¶�ús¤Ñ‚ +Æ‘¥Ã¡؛DžÎ&T�[éR±½d¬t¾Ô5÷˜æƒZÔfz}³&m¥½ó†^ªR×6¥ËÀ:a‘ 6‘ b­dv"¬ž5iÜ /¥îyb›=G›ðY¯'WäŒV±\켕òag@0 ÆÜ]Ë ÌËÍutßtIQÞÊ'+—Ñš i@eŒN—£Ãh໢†�‹¦ÒIô»[3œ °•¡¼ŒÑ@(£Á¹04¤Ãh½i(Fã;¥ìdñšßû`j§;À>Œ“ÒÛ1e‘G1LG‡>ÔÙÐÈ©¾’·Xæyš<÷¶È¿J)äÐKÒÆ"G>UŽc®9oe�b˜Ä¹çAÞ<Œ¡‡ßé ‚àÍÚýk�¯/à]Í·tfý^@²žV†¦Y"˜šd ]šÁìæõ†4ãcßÌò¥^§Þ 0Só–3Œ2ŽÐÚ £ÐZéÇ sΉ³ïÇ.‰»rÓ84•ç„–Üà +L ÃuÏÓBØ1_ Ç'ɪá8r­qÓDåZˆ.¾þ÷]øûû¡ún\[ A0©¿çi!Åct° ý=9S;r´ GZ;Q1g{õ*âè87u6Yaìú4ãØB5”k!‡aìÈax5”ha1ž‚ÓgÔ°yE@5äU.QU>öILÉN–ÝLæ¿h1…>T$TŒ‹ÏQÔJƒHª~C£ù†N×÷–t°Ðèæ…°MÜ/‚`j÷:v,Ÿ¤!¿éYöt\¦Jxñõ‘—±<µZ)�^YÛ ¹ÕdŽ´\¹?8dd |÷k¡sW*„ V?�ÉÒÍ­�êÚ)ôx üg¨¨¿ÜÞÓj¥\ž·t—¥’VÜFkÁœ=‹¿w•ô‘d.y¬‹‰‚)–o²ÎÆ”+ŒÅHŠ7ÌÒi¿é€ýqOœïÌF¯�;!LŠJé^h¡Xpá¹ÐÍš‘°e3õw�ñ F“Ê|~qóìüí�GÕèÓªV?Ùÿò«Þ¹h×¾d–1 ÈõNéÓ ú£>èTÔÎÒàÛl½RNÿ[©”3Í$öm†ƒ=˜é”1 /¢ùø]ã-�Y|¾Œvg‡A"™Öç÷Dåy5ŸŸí Óùëßg~—£°Ö¸J#µÅçÛb›\¯Ñ<8¤}˜<¿;~Nžþ{Ó"ö…|ôèùÀ<Û›Bæ§žÅ�}ñ£‘úSFøh¶Þ)ß2�¢¹ g�£æÍ­±èÑÉ£Îá ñè“eEƒGç‹brázËW_èúÏ×§Þ£Î_òѳHœ|´ðm?xt¾z°ÓÌ£†I4øìôíNðèq4úq¼ºç?Z …�‚ö¾å(§Dך­O;á£ÖõäùIôè„yÔeo•¾ÞöÅ�Ö¾a{÷ßó§#Ñ£À]¬MW�þÂ{^ÔüÝ)ïw®ŠQ¿,Ü_kE,$Úîï°™¼>öÿEŽ.Üäúê/k0Ÿ¬ó¹�¤¾ ü‹A•¡(�2’ïn-w$¯¶­©Ðtû.%®ÔëaÕ>(¿ÔQ†ûâ³—ðuŸf|ªo[)A¼¨“ïÇ.ù'€g åæÌ´ºš¼x=¹"õ¡Qò^é¶S­bøžÀ)Å…)Ñî7ç;¥ðþ·Û 5:Œ}^RùR¯ÓÚ¦O¸K@æ “\XrÓËX㉓K¼S…qM˜’jŸ¦Ár†ª�`~¿ÂÁl7õ«)‹vÓGs�” �>åÊ?N›íÁŒöÉéé× R3•mÖáš_5àùk?Žêìsš¦Þu³ ’¿YJ-iÔ½,„äÌ –,ÅkMÁ­éáÁ2ñǸ_…O%‚ÒH§„ŠC7í–¥ÝG™Ò¼£ü¶?î„]ÎNÆ£®²ª„…ªòka– +ÌœßfUÓzWÒ¤�¶KÎŽIæùÙ¶Ù4æw1þCã4Už!p“áÕ6Ü8X!uGzâÇÜ”±àf¹þ 9y}Óµ8ë1·’£×Ð>{AR£ˆz¦»Ÿˆkþy¬q9¹¾F€ÂK.Èë1ŸäÕÊ¡"Á\8efž§ÉsÀ‚µ”û�ÛQü :†½2tº)â>9°-59`Ë íÄ“#Q6/Mˆ"[û�?ß×ÏK•��Mׯü$ÿk%×$Mjuçe˜œf a’¯Hi¥ÄZiÌ0⤾'Sº¹Ã£SΠN�æ{Žæ2Û&œß‰É›ì˜Þ©fõC-ì˜$Xz›Í +~ =ÿy/³›`0Tv—³wÙ±Ü.;–ß&–S¼h)´ö'—û/ÞÆÿ¹„l)sëš^öØ…CGxfÁ¹`çkü%äöK饦ç¢:öºm%;ÿ¹ä{¨-Ôý¢sì-K\tó¼sz2„>àbá;XáõêOZÔ“ìäeÒ ?!ÂÁ‚ù:½©æÆu”¹rÄ…+�}e;‚#N±öt3�¾xí`̤BÞÎT` +"™s^I|d)^�3>2÷sñgÉk9¨…ï#› ¤sOw ƒSÉu}ô*½\i·Ÿ¶�4⯼oíÇ^®„ˆ nh!ôI®ÌIÉìØËU¾Ôë´vÐ'§ýƬ{Wj®@u)ñ­ë)¦,©ÁL“ +)�Wv´OÌAB¥d˜¡’Ê•œ4§äâeF²ÄÃùƹ#°Š›ŽÞ±Ꮍ5ìÚÏ…ã'šç->hLÓrr~¿ßçÝq$Ãhž Ö¡ûˆ~°Lü�õ,µ’‹é·íÐ7+­÷\ŸìâµÜ‹W”Hv2u•U%,í‹¿T`æ4ø6*èäì˜|wÜ�I;m‰ÌV¼rÿÁ›yÐC«1Œˆr•'\ü`zãyØr‚î™6ËÆ,£‹oÖ¤ÍòúZf¹ÉšeB÷™u�,CñV1Dám€ñBìD©û)&Ÿ¥ÿq'eÐ&CóšRdѦKKKèî'è˜`C›k¢·pÁÄ'‹×ïˆ-UЕ´§A²† +º¥®y´-p›èZåø�‰òý&Ý�ß•ôP½É"üº•z!GÆó +¿/ƒajH�—mÿ›wòIÒ·X*ÿ) ÔRîÎÛ~çŸ!0”o:]?&à,�3ÓP;ÕŽÁ~ÛÛîXÅ@}ŒoF9PM_3NrÃlŸŒâ¤vRÕ!eíâókÉ8²tDÁÒ)¡P˜Çè`´ÕL$åƒÈé‡9Ô™Y|h�`¡/b˜™™‘Ú%lå“•ËhÍ}¨MD ÈäQÆþ¼¾+N™„å·Ø§™ñ½i(ë^á"~ñÊV­ë$8¡l=oI4°‹‰‚åv€}Ðïo‘ m@p%õ»»°(JO5}Í8ƒY¨lÜ»’Geãõ²Á $´2çÇù’�,»¼EJF;ÍRƒ¯¾ƒÏŒøÅ ÃÚ}EÞÀ¨aêÁp0 CfÙÑÅÖýwì#»#‚P,rÔ<&‚!–ßÞ�Ã~ßG·]´¡aî"Î Ã_¯(NHrU¬·ö„ZðÒÚ£`� 2‰hn(|Wâ`…Ô±°>ø£; +9໧ظ&³Ò­)Aµû×:ñ +¹^ãÈÝbÛ~lŽèz¥ŒŽÔæ|×°9†ŽÑÁÁìæõ†G(ôc^¿ó¥^§µ!Sa>°#‡~ÂDÿ•qìƒòK=T6xúlœ-ø—ˆ2Þ�]ªo1eÉy˜*Çñúa œRñC - ¿+é!ɺ�’7ø›[;ÕµSèƒ�hBW÷}Žæë0ß…†!B—a* ®áRCÊ*F)7ÙÊbœ½DICFÀ³µ”²•£¹d.n‘8T0û]ìçªÜT­üÀ¡ +S!*GóüþióZLàuèŽïꮓì±Gªì®W_ª´áŒ!òc=v'¡e såþà�1†à•rÿ—\K4ï³Ç…�˜�ƒ%È@€_²•XË¥@H*€Ãÿ9/Û¦T�(Ž‚>Äò�p/JŽæ\SS{”0K&“ɱ›•Š—ïßîF° tß8ûbåwöœ³çÿß°úôúv¦^þ³ˆM} òœ¥.�é–+V_þS}q‘åãÅ %®™þî?<Œsð§q}Y¤šn ÇÃ#z%}¯¥þôèNJ~Œ"ÝŠ†%ÝýBy(œh0$(7µ#`õ‹å­bÃÞ�³ýÔÏà…Ö¯e›+ ÙÜ!PV/cýÒÅÔºêù¼ù (=û(·ó1PÜå �oŽM´²ÐÎ.PÏÝš®M½ÃPŒZk� yȽà•vYu­5 |ÿHãâïñ®dѨ؇ Äœìê–¦“Yv}æÎRq ;‘[oHñc ÎÞ*Ú®¶’œíÅý‚¡¨.[ÝŸal&”éÏU*TïwÌj²Ü»ÑtáLNb¿ Î<:5:t0ð�j`(š0ŸØú�ÝšÁì :xM&ø�„VÇ™Þë¶M@—‚ÀÆÐƒæëäŠpF*ÁrûNÞdC«ŽC‡2ýg=Å“?JðÃЦ@M–÷´Û ú˜è�„·LžÕß=Ÿ±T(˜±æ„–^%Ýãg=RUE×UÅx¼ + q,Kí±Ox_¤û´�̨J|Ñ\�'¤�96¢¸ÇÈ« ÿ­H)A�UCÊÎP@)×ÁZÂt«÷Ýx®Â@ëÜ—j½Fg±„MÂ]ô¼,˃Bwá¨RÖ¨‡!µ·Y!*VÎDX‚Ÿê&)Ê�Vÿ»Þ÷’þ÷7Õÿ¹_Kð8-KçÉEJž,�_:|÷KäId~ž§8KQ'Ã<¥…ž|r!¡G� æ‡�mÅ endstream endobj 58 0 obj <>stream +H‰¬WûBÚN}‚<—p‘IÀ*XÁ!R •záòëU¹¾ÿ·» ÉnØÝlĶ-…¹œ™9sf‘˜üJûljÜ:m§J¯›l®t3,ªõQ§¬ý8O¥*ÇGu»»LOªsIvÿ_mœÈ²û~Æ�1�©Ìÿ.Æ =^R¯$YÍäîŽ�‰“P%Ùέõu ý¦˜7ªêK|yþiþ³M ¥ÝÿvoÕú`{”**­~H’ ƒJ‹åR!ñ‡’$ + +†¤I’éA]ç…pJ~_8©-ð�†é襓*õÆX—T« ‚WDŒŽƒ`°=šñ´6áW²¹ïíB–ôR4dû1›1è¯CEÌx¼ÙX Â_;ÆôTùc]μN«Méj +|P¬ ê~U’� nœ¯©RÂhb 95°ÆdûÝW¡«$3µlô¼ymu2–\ÐÔ#ÜÔdøÄ$ôG‡Š: º¾Y%c(+ÛŠÆ TÎKyV;0¡jšß9’M)ÓÛtŒìK¼LEóq) 4•ÏÔâÀÜ´�¶QœNN±1~©¤<¦@� Ë),ÉâXÿP'ñ‡ +†Ý(|MÍxq:]�_´2;€OôZŽõ­ßôF + +zl²2C Ç¨…aÿBØý ]‚”šÖ€—ÁJ’YÆ.Õ馛ًlœM2âjéÌ$á¼|¤.÷ŠõØß,,1Ĭ&Þ {«À@~:!™ƒÉ¯ “ÃÆaIÜš' 41ÉáÒñ‚9aâ±jïÈŠS÷ëó³�ßÙ¯/ Eúó}²¥í@ WJ}XóüÁyq7$;¨)ÑrxH—î˜1Cˆ¹Ayøê¦c—N¬~ˆï‰©ôÒ#£‚ûõËË¢õÛÍ ¬ÞñÁÍ;Ù6æ+—„;«—ñÓ–AŒùj¦ ˆi_‰˜þuˆeCÌ^§v£)¨í‹ùzt¶kâ¿u°sF†‡„H=抻ߙ�óeØëPßš�”§¥` ãl=°x% 쎻‘-hº5ßéþ[ן¶å&��]éX!€Ø$–û O÷¦ä;Ý;íÌ2s½|ÒDqí(XFB»:c:Ù‹‰:�M{‡UÈì}øíGÒP¥^¾øŽ«{W2áÐFÑx]6Ž”t¦’•2” L('��$ûŠRÔ� ä±aa힀&¥DÕWbà ëJš]¡»’8ÈóÔã•[�êâ6§Âÿ´ÞDXêBDð`ê⊧.]“³+u!†S©Ðn u„5•œ^½ ü“-ª?]ϋЉ½lí»R4(õE ÷ƒ‡d³%”È8 …´»0†ƒÓ7q†a^DÙh~ž!/¢†÷"rÐ#ì'èwe6Z Ü•1뮤#öÖp@ÍZS™ý¬$/iÍóšDˆ¡Çî1>ü 5-~Hj@ÁÂä²¥Þ¯–óëýÔÐcZqSW'¨ßRefeçb=ÓÛtŒµÅîž�«ÇÞêK|yÏé‹-“1Ä–Œ25¶ä"ÏR¬0'åÆèvÞ˜˜R"ѯýщзyNé`öJ…Û T}ñ‡ +m©+‡¸\ :]б+´#nΨ.ô¬¹ÍÐôŠî}ˆÃh[�ñD÷¢IŠnF‹ïD7SrúÚ �‚ú¤æY�dj’,Ô¡…vˆTÞÁ×¾+aͳ‡'T4û ZçÄÄivÑôîJÁÁ%4 Æ¥k0¾bs*ÔÉžù¥é_w}¥˜¯Gg»¬îï<‹¿Å˜«Ž­: R¢•ÌϨeš[òY€¯[]S¶æ÷ç,Ùj žÞ„q]lî1€7wøÄz¬hÞ¾A¼»-Ë +!X)Õ´då±®WdçS¸gœ°Ä¼PíÀƶ¶°äÛ©U.[²Œ‘RS�Φ ÏÞƒŸ¥ù“#��ôØch†bô1œMÙZCоÛÓüÐØ‘™a»‹ åÝ;‚Ò¿.ø!ÉP­Á¯t/à³I|dX™2ya�ómâ\ò™ÖÅwâ»�”MG¸Ú+%ŒfYg4¥5¯žýÞG ýN¿’ ¥‘®í¨<«q«/hÇxZ›|+’�ŠŒ ÈÚ!ÇPÇí(å„Ý@˜:fŽ!£Õ‡�’Ûc7mg¿*"Zj¯ý1ŸÁ1äÞ/‚ch<^­]eÎ~ÁÛ½wðb¦àã1æö|(�Óqˆ™¤Õc�1à¯_e{�ø·ŠÝ¸(®£cƒ>•ÀØ\`*#"ˆ• +íÖ×Ü•ƒ•: ºÂw%c'iÚ¦†Ã8A*ì t„˜0¯‘0ôxŸR¤apa¨—ï'[·°˜æ·È§w¡07r%­3w€Kh#Fð«ïxM +vJ’ˆW\SÚ;³.ÀØÓ¶ÜôÛ¾ð±�å>˜qe£çÍkLÃ0Œ h˜JúT`k‚Ù÷gbPËAZÀ˜eŠ2Ÿ’ '´Ï]z—�– ÉÛ1ÿõà]îôOZïTv®×«•¾‰Jr+•Ðq#ß)¯³_ð¹ ¥þK7BJµS�Ïïtö:uJó fÿm° +Ã�tœºè|{]­5yå:…�ÉÆÁoéÌú¬ž ë…¼‹h¦uöW3÷ÛÕê{8ü½|wüE €IÀºacµ¦�ñÞ œ/ßõ¿mœ0§ß"‘îâßÝi®ÿ‡ét®Í4ò~!ܪµ—ŸwL§1­1ø�åt‚;ÍÝE]§’¼>ûY¾Ãr�Äb×é:ò:u 0ë�·¸Œ¾9™šÿ§É¾ëÔâ±(ð…ÎtªÖòêO†Óo‘hçM¦9•d˜ë3Wð:Çvj*ÃÓi|š8}ENí]I´R(Íszg:]­»ÅÍ©$#·¡Ë§ã_DU§ù�{ô7»ÉÊŸÉ›È÷ž·oï8Ã0¾ù-²|6îo|-ž¼Ú}g¯É2Èùñ‡Gt: 3L¼¡å‰³sm»b¯(gÑ1Ï'W«ÂKµÈD1_�Îv;þ¡Jîæý«Th7Wá­U#”R}Ø(í)%ôŒî«ÐßCv=TIÍë I +¼œ� Ô¨¼œp±Ã™Ô­¶fÝ å J|–0šäõê‡S’‰“»Ùù¥³ëÂÆ ÊÜOâ„w2Àéüˆy^9û<á(%v ¨ÓÙ´G íý€ý¤N×óß�òÃ/>¢Î�¿(?¨»¹ó": )ÃI +T%ýð5ór®1ƒ²£±/”�®`'÷Éêlä/9% ¼é‹ “1Ô^tmÝW6|Ëgg1ã±ò¿YÑÓ±R;ú16¨©•´æ5Á0Ô›Õ'µãˆ€8W§·éª¼_h(›·oþYŬ¬è]ùl¸Ó»Cì3 ) r«0® ³“dO_eªfÀe°<öW‹�N<¦)P}_c <É¡¶ØS!c}ÉÏY”aF5ç+¬éEÇxlÚ»[NØcXPÙ°H!àcßmE’Ñ)1[.î.™ùÙ�ÞCÅ ü¶»Ð#`#û*)7éßtì0ñXžê"ÄÐ×'&_¹ñë‹y~¶õìœ-È•kâƒå,£ +bKfPù0g©ùªq\)�¯VP—Ž˜P”¦‡ï)Ji°�ó+èÖ/[êýjªŸ$³*¸r”ÙÁͰòîýƒŒiGåY�fJ’?a,pÇsÓFÑxý«#¹ö c$£ˆ˜þ´-7éq9Vv¦:ÿg½ºR‚èð¡CYŠJ�Ž4ƒ"í +*¨„ÿ¿³›„Å—˜‚³SÏ9s@þ#}ÈëÃ×ò9Ë, Œ4Te­>4VÂú_6\=Sijb¯œô�sHo¬ñþ¢ì×ò‰¤Ëâ_ÄúE×úõã3. WžX�ŒL¸­îP‡X´&Ò;Sp‘*­uÐ*ê “hþ¹Ô_[¤U'+Ø)Ç��W%kùLï4¸¡VJÓ±Hx­ï~³ˆïP—£€¢V:’>—êÑ¡Z�)µIO?*µzÊxo·Zõô¼{å5US̾VCÆ[ ~©O±%©c]VL‘_\»_…@†aÆ~¤–•Ó�a³�'ËOòdˆcËŠ©@±˜'Õb +³Rž +í–7”—ĺœrjðmU¨º„{ ;õGý›ªžKpÊ�ód(" ]R̋ک¹v~eí,xs Ûê-7ÅË[®P}ð1TÝŸ^)­m¹ŸUµ&Œ¨NQÐm©æ–™A£gÂëTyH›zÅÓ,º«â ¬):Œ¡ +·K¼ˆœê3 -âLÖê8½íÖrhQïÉÐ\øâ¶‘?CWÐ|:î™Fås“¨ô»*ns©ç÷WÅ7‘Ó�Ãмtɉ*œ2ÜXHŒaZˆ¶„Äh¨\71˜ÏE—Ãì¨gÖ°“Uº@N‘Z°³Ç‚ý»¦ìŽ™KöCvjZÁn±TJ)“h»ÌÀ‘`ÈE ·D¹u;"Ó»ò¨ùE¿–b‹Ÿá¢V·šÍu¢ÓmßéÐÌû³FXzìŒj>ß­Nd3ÝD›ÒƒÙ ®Í…r]üEbÔ4©J‹M®´ÃTõBvùàÓϧWRãB¬’EŒ‘�þÅïLšÁ�è4zŒ»ÿåÜ)kMu8J¨¤ÞþR`„‹èwèËØ˜J·´… `M–]0Føî¼Ãù�ÛcyœE¯¡‰_¬ÙñÿÒÅ–DìУ±§üÊNÀ‚72“ïOí|ÉÈXðGÆÔ¦RSÀ1ß1óq]²«�˜Ë›×%šÿoöËÌšÿˆ» Sùâ³Vº_È¡˜÷OˆÐä…ÛnȧÀ»Äú´XV-)Wß6—ÁÄ÷×g³ +¦7á(¨þ¹J3›6…tºåñ ÿÁìC¾ïígÊ®GðUcEqÊOìôOW_kåP}­�Á÷_D%Šø‹ýÖŽz U[.šó=–´�͆šª‚%‘ªð·+¹ðìÛšNI«¯ä±êS�aa˜ökǰ0ÌŸN v 5CxØ, ç�á³AzÍNtòOÇŒYšŽ�!3Ù-Pd{è8[�s}½1ÔX±Y´óÃ1ÔÛ^‰�óǰ/�¡ ‹™Û1CÙŠVØë" 66Ûýܘh*Êt-€ãöÊŽŠÀ†�ûÓ‰É�W@Fa¸*ê¶×ÔÞÙ��cVeŽÍe.tΖ9x*ec¡ZýÌÕe¸‰dúÝ;M¶8f©BöÀÁeËx‡ërl'äÏ-‹çá&¶r@_�‘mgêô”-x#ìbÆvÔ bXi‡ÉyE�¬ –ÄF¯`¸úx@ùà“u'ÕŒTøf;ÄôB ¹XÃñV3„äxû'cQ=ñÆ8¦JSq·2• ¯±˜TÉ€#+Xýd’ ÕuÑ Ri L…¾ ëÆž÷¹šY³à‹h,º6ô+âLÖêæSi vÔ»ü«½jÙ·¾¤` GxÖ˜÷Ua* ±KÆ�yßTj„a8Ç aïF;CJ·¹,HC©´³Ý a¨„íôê2òÇR6à%àË“I*sÜÊn¢ÇcpÞàÖÀØÆi’1ùÒ<óggc¼�hIà èL¢}gÆšã½ÿ4“J¢ùtÜ#ŒlŘ9äƒì Ê“:« SzœºXè=r®<¢‡9¬Ñà�19ˆ¼à%(ÜR k´è%X°ó”W¦£—8ð‚Y1íËïÒw_€cª~ú&ÆÒñ²s)_ž´òòØ+ë2¡¿”)¼‡´ä`|¾òb>Á”‹ø�ãy~»MwÞoXþºš ÅîÞ´ý–ü$Èî.Êt·5ÝR®!í¦<àå•ߨ`j™¥“éMœ¾Nvt÷}µF…Â’E…e �еv�¿¸~¯£R;@õJcŒêŸ‹WÔü˜¿¡û»Hu+ï}ÔÛ½-Pñ¨?JíÑC ïE�Lχžgö&�¸w"<šD8šÜyÛÛí¶ÀnwÃur»}õm®í~óŽxnP1WË¡ââ_•š�Ï�ct9 FêqJá¼…gC“y)Óâ‹„7€âc=*šà ÿV›8b/*(û¹®ï²µ‡‡g@>.º™¾òÉHÒ‡œ¢ø4uæSÒ§|@þÎ=ö2Ò‡ ++íõš•>4C‡#(˜ë±¥”Ÿ¼ƒSð[åÙ¥<#ÿ\yr©„|3~ ²! v¾ðón¹‡�yŒdz<¶nüc"qõ[EÿÈ*{ž#h‚¡0hZ� 5¡´­&ÐHö‚!Ä �=bÖ/‡m=EØ»ûUþ· Éw\;ðW~"vP(26‘N™@á/·ìôÚ�xýòôŠ×…èR™ –¸¶rq•¶W‰{ëq 2'1\ý¿°(¡*ñÐW�µã±RñÆ3ïÞV^R”¸WB\\Hêßn˜¾e\û¢·\©„}c‡Ø^ƒiôøTÙ^³f§ˆ�¤^}Ác�Û~ơЬ^ñáºÌžB‚êeg£p:^ ¯án‘î^¢Ä„XÚU‡X ú†GŽÿwõ„¤»‘Üm3àÏzú0•«—ˆâÓˆŠŒ‹cßS-<¹Û¸ÄXVŸ—W"¹X$–œ�|‹üÛe±™ûˆ9b8½aqö‹ûB»B@ø±�{ì…(‡Iy.x8ôŸØ,ü…J¡/ÜMCÒÝKXþtâã—Q�7ËÛß/ú}éäU?`¿+Nî\qª÷xw…ª%újõ|Iú\9[ã�ľEMQO¨v1é>,å.î1�pÓ8Ê×xôЏ¹O´0 –K3]Ê÷þ‘¦_í!ÆÒ8†§À…-I,Yj € MÖKFN\Í2ÅŸL7å[Èq'Ë„Ç1/µfÚžOo0ZÒ"Z¶ÜŸj´¬ƒØ¶'칡žIá±pÄ{B‹�­óºÂ¾s<�c7ûÎ$h"–Ç +Uy+«‹?dú�ÿ¼Wyñ\ýùA"!–-Ùii©öQZk÷Eí¾ÿ;÷‘TI¤}ÿñËfæÎÌ™™sJߪ�^ý/GÓo÷ÌÕÕ‘K žØˆG¢XJ\8wT/ʽOñÉ4UËÑhò¡”GŸÄ –uÆ +Ò$Åy­À«ËÐ:¾ ¸j‰KðÁ,ÕŸõ=]�>AñÜ}ö! Á4ì|>!£NZ™¸¬tŹÓR‹Õ÷˜09Q9ûzŸiÊ &-éBBy_ѸÙ%€øåÄÄ=–NA‹™Ý~wê�©á÷»7ñ¦~;Í>§§Ÿâõ‚|;škeµß°êÝ“ç ·x9^è G�Ú2"œË™¼;àïžoy…eOnµî¼²çŸµÝᢙ¼pÚÎ-ü¤EâFSBÝvþÅ]è aܳÆÌJy3ådûù]ú¤é+Ã3AíM5xÎgsþ=gK>¥^ +…ÓOñF‰O'�ç¥fìÌFÊcó›(J³&]OËçêiMË%ÚÔ–6YÞl<3äwÍ?ê�ÆD§M­Ë½båõ¤ )Hø”—«Y ÷âŒl”è5T +3WF� ÊM¾íf› 6òz�QXÚðÊc%¿-ô‡ c7t@#(G¡o <.NIE–± Ó¹3³œ† ~¤–1zr™Ÿ(‹~¡ côº,pó|I,&É) OåZRù¢�V�uÚÉt²wåa®0¨7ZðÉ}” n6~Úh‚»f· +¾ïÍîjÌŒeYú [ +{˜á +@õm6»›ÙÛ°ëÙFP6þ1\ÚØ‡‰åfÉbî_7¤nóŒ¼üZ‘ñ0‹ #ÇK¯¡-ær¬Ûè5ðâv¬ÛØáö1flqçž±âû}Òbc‹¹"-[�Ù…�T; ÷;Ðð~±µ›˜ j[g¹ÄØ7¶FPÏàåH9±kXÑYûr»ê¹K! —†X@¦ èG"^»Ôoƒ!‰'#-õI¼2Rw%x™‚ök\ƒÎð' 9ŽtÌŠ/Š>Îë²o­Æ@óDŸü|ÅšÎà9IFô“Eƒ¾ãht¦ ¥JUhkJ2Ùo²´rvŸ:‡jÐá$¯±xn ¼OŒ +poÔp +úEmµÒÖ¨í{®? õÒéÔà†T{©ÊÛ6H¶Ò‰Ó;ï¡NùÇnHȶ޺ +[ëMå—ÓáƒMƒœZH„cöDP®ˆ£ÍyŽzßÞî¶Íž¶d¼¸È·Ý˜Ým1'Lé‡5êν)åÀ`…?ìöLPÎu‚óùJP¿8àÉPg0^K3ÚÈûÁ*ÉØÑ~±àÀ¥öm«�#¨- Õ¿ÙhïÔ’ôܘ~j†sÍm8¼Þ†øoŒRãÑÖ€MrG h¿ ÉtŸÎу(ÉLÆ·hQÀû+Om� +콓L½£¢ïâdä<Ýü«ýrè€qKü�\µ·_ÜzVû=õSN¸¸¯5a¿Ø_­#æÝ/N7ÞûûÞ.L˜ºOY7\€M¥€Å3®þoÇŒ†zÕ²Ù–s±Ô¯”ÿØ‹ô¤à±»-pìe;‰rE¡ÌÍÕwÒ^Bœ œgÞ¹gÄa´×�Í…¼üî4Ù1ÇÜGán`ÌN{3A9j¯ßÀ˜�ö²Ù\cx[ŸÄúžy?/Ëõ~ž7r'Kl”Wo¥æ¥ÈŒ£‚øxu©)ùpò\dF™€r§ÍÛb1Õ»^nÆYuÚ~¨dó±ú±â}Z¨J>¤Æµ›üQ3­?2ê´“éë»+s…A½Ñ‹Éû¨ÀÍÆo˜¯äÒE߇#^ó#«#¨=4žµåݔΡ#(»”Î�g„dÄê­J(ï&ì‹_Û†¬�)C©RÚš’Löì"³h]‹¹Hº­ÀñÓ刘•†"¨Ý*êwÜã9f óû„ëw>m$eÌæ@üÚ3Aýqá7Ôë)á¼Ù-�ƒu¬ß–5O0µ(ןĬ4g¹ tä¤Èàå]é—GV@?ÉðÚ¥~KûîY’¹hTÐmÕ‘VÙÖåË�líóXày.¿µŸm¶ø[AWoáyâvè.g •�Æùr#Ûn´|-Ôoþ}tlÍ6|¥uITýDFÕ5+^p!ñAu¼èE­û9iâ ÿaK%á+°Öfdþ¹ŽK‹ŠÌ„¶-¿“÷ ,ìö˜Ž1t ùϲT/5ús,ôËßÿeìO �ËNP\x\v‚úãÂï›0¿Sx\vèÊ¿-<.;êý?-<.;ž0Yx\l@òßÞƒÝYx�ÚÛ.7¦ŸnL;`L™fò“¿©¬3F›"`G›Pzˆ�ÒBt1,GB5]ΠD[4¾Å½O¡LÔL[n&llir¤m¸ÂÏ<²èYmÒY]ïm“� av¥ŸyW-&²/¯,”§Ó͸~æñäò…•>…6£G5÷he€Xž=IÎb¢Ñ¨Škïô2éÁ“±>h·!à%‰û³÷1Ð] ++tXqÁágP¿:‹ŸSjϺqøwk¦©ü@$Ù�[Žï„½`7ÐÁ¶‹pö±rå*Ïô¢iÊÝEŸ ¦%jÝ�pê8=êtÑ;å�žÒùû64Q€13°ÃÃU]$rJêKÌîý«® 6Ð /`L?Ïàßå&”šÌp™1)X“§²Íz>þá¾§,Œ«du´>ÍÀÈ;œ«^¦@™]#»LBk3 ‹ûÊ: sÂ몾…î§ñ‡U +2±�ÈwO�U +X<-7’p4Ý›„�'A?M^žlvSžV¦z +–Nõ’õ’ìOBÜ—þät§ñ£Êç2ü"fX%]p´äˆSõ$L¥æ½‘úÁWký€ƒ ½‘Eê„ìY€´ÄØNÁÝ&ö”[›`ø©jWG·gˆ˜ºò ¬�0pÀú~0Á¹ #º9-UÌ*�ó3Á�w·Ù@Èbódg&ÜO†ùÁ„Ýj0‘mpÆL˜Ø<…Õk£qኦ—úù +6@PknAÅD4°T¯ûMÄl¤òÇdžáW&R^£½fžBI6¹âBÆw¾a<[]~§}ñæï¬Ùޱ]QqL Ƹ­q€sn+@cö;ž; Ƹ¨Û0~ž:v1Æñn΀1ÆÅ÷w[1qz!‡uÓ\2n:¿gê,÷Ë®LðŒÛ3DLù�jð¬ DÔ®jðvÈͶÁµ6=x#cɺJ˜E¹ä)cè HVí]»ÉgîÔi‡½‹©Ë¢Ü=ÿ �$+'yéî_^~ïs1ø£ÌÂ)ª2¦†I �¢íÙ29ŧ¿Få™Xº½í†Õz£ˆ®z 5ÈŠjZ(ùq]šÓès•Ž:§Y¬,¢çI +è`’ ¬®b4ž¡!Ü#`úÉ£–äÙ„oA°üGzun¥î=í+àN� …•Žô t R$€  H[ëÿé½öwfï4=¶ßñKÖ&fOyæ™™û=5Sÿ[Q ë +¹Eù ûTô)år(è]Ž CoX» zœ˜‚€]P LMgŒ.çD@n¹ì¢×ÜÂüOÈ&(ewÈÉ5¿ý]ǧׂvÁ"<3È–©âiR\W¢°œç]!…+b‘ÖBt§SÒ-üÙ´ëÖŒl3H?™º.cúÚ¬’ šrI,…&€´áy柦˸ç5uµÓf‡¨…ÇYâ ãíÝĉåÂHÛ·¶ÀHlú*Ž·Äåôí±•]ó ¦1}¬äoÊL\§IÄŒõ1»=äP™-‚Zb™Ä*ÅÄ×z¾Öâpëz𕤩'{~l¸æ¥a?²È´O®§BÖÀòº YX•†§Ñ•Ž}u$(á'a›“ùôåÔÊþG‚%å›9,ö;�€O [âxñLÈÇZ»Å“lžÂTA!þr?ûº¾ñ”¤¸/à-ôß}Ñ<Ù�%=H£',}Ù.ȯ\…éj…Õó¹áKÿ‚îŸ"늈Һí.£ìÈᾊ‹] «Q羬ó–î�õ@rœ¿>È®&ücÈ[—ʶŽAÂC½ÃÕl2O8)Ù¾¬.Âø6ü�=ÍâCWÍå¶X,T»’U`‹—sq®Å.0ñ¼ìJ$Šcö¾�´uIµÀBéÑ™_g„¤ê£ESd|øG¿Åö«þÉdÇœöYœdDLñRÇÔNœ?ϱ³)¬^/â£wG^ÀCÝò”�¼WÌ�ºs|Pò&AU¢,<õŽ<…éS0 ì,»â…kjƒù ‚t·vCn!D‰uà–K`¼Ô%kríPçÈT2`˜|£—}°â)E¥.»Jîa•™Ùé=UÅsí†Vå{ºº€ÊYÔ)gþ±pÕ £g£” ÒwçØ ?Ëôàdõ9»vnŠÈS!ÊS¨Ùᦺ-ºJ5¼^‚¢ÿK9"¡pôOD¥?Bë´žïëû§ÅÓæOÐw™r(ÔÙ̶Åý|~;ÿß1¿�ž^æ›ãŸØ!ÓΕˑóü|º�ÍáståÁB§¨JȲ)hš'É¢ˆüc´´RÎZÉIþQTS¦T +$[K†••$à ޖÃÍR«ÃÖúQ&¸|ÑÃ#ÏN±6¬öò 'V%‚=“Õš€ÒCÕ*09‘#ý‹—~‚{(n/ïdqf/?èÔ8À¦’Z&øZ»¾º‰R%qÇ·ýp·°ôÅ|¿¨Þ“™ä” @¿‹’–§T‰~æ®î�X„´€Ï=&ØÀø»ãã&Nôïq†ËÈ ðÚ3bاuŠá6͘òQ^®DÝVÙÑ¢›¯"dZ0á9z“ü‰ëe@êJC=§­$Û$qwøS0 + P?ùH+ç‡vSÅO`.>†œ80*$ûäEŽGÜ+¼ùGÁ$ùT×kÖ¨€°Ïª#qæóÅ AÌo+°Â(–0Wp‹%’¼éJÊy›ÀÖJ Î,�ýúRŒ%5c¿¹t Ã-=ûÝ¥"g…Ø&(U�ÆJupp�]Ñ—#üìH„îDerŒê +`’ÃO‚:c4Êœ¹¾ŒO~½Tž|ô`xl´DixÐBð˜áÏU õ²áõQÀųú<§–I&á–\(n4Ò:¯ßB0Ÿ�ØÇÜò¢XÏ®#g$IjgÞûUöžÙÄ«n¡Ú>Òçpÿ»ÆŽh«ÊN2–Ët<ñ‡Üòòæ5s›ÙÜ‘j’²÷~h•¿ì´göÝ[Ùš!ìùÕ*A3a˜gyh©Z‹NÃÐ�ò,=Mœ]Žœ äm2èÆ€¨e9_% „œôÔj‹sR/ú0¾ê𠢂¬E¼D`6; +.—Ô­YM$Ó�ô‡Û-Âæ€pnú¢ÉéNQABÁEŸË “„'¶Øx;ÅD!ülÖ¾—Ô~*Zê5áRÖc<<°ONzy:Ž!Vv4ïÒÉÁž +ƒë=Ùì>.dòNʪ�Â;k.ú/Ê:ÿè>Ü“H÷™›žx†sÅ9°I“ö~Ùóäö�Qè-Gæ6¬½¥"&»ÅÌi5zBw¡! �Êa¿—ކMÔÂØºH”yÆ•�$LÞL£àš î^ë(H#�ΰ9(Œw…Û[]ê EÆšyŒØ™�0ébÕ�^Øõ¹Ÿš‰l(È%‡•*rú®0¡£Ç|2æu¶„IÙ2ø–-)ÏÝÐؤÌ9‡#ËY§ —õž9ô±¡ÂðP"Û: =µF~APÿÊ>¿"’{*ÿŽ\‰¯Àm³{b2.[ݳèà²H +ùëÄV|ǪP«5.8Wyi.I¬ƒv"ºÙ”*NžxHØó[%3"ÀëjKhM„x¶v”Aq +B=¢¾Q]T,Ý4C!mäæð«Ÿ‡ƒ-:![=¥v^ ·e ;“Õí÷û¤ðL +Éáæ…l¯sç¹`M ä�;\Ë7Å™{“‡Ï÷r‹]E"Ý&*¨‚ò È¿U°LuÆþØÕ:ât!:Ðņyؘ­+‘�<}éÝ­[SƒXHÔ© +ü¸ù·‚“MLÅ£Ø++Üö’ �t>€\M‚¼¤|JO¼ùN0ßA^‚íÎæ{ºÒˆ>¾ÿ×ÈO<ô»Ì”…³°?=$%RHDàÓ\­e¸˜‹m±£»:f‡8×0Äø@"þ).ލ��QQ|Ý©ÙC +�æ%ËÞÿH†¼ó¹Šp)�ol‰5¬/}¿¶’ƒNú�ˆÉ—õL�½3„—:õK§õ*ò�“Øó&òU¿-÷{Y3B Y!`sýÙˆ„²Oì±!¼3ƒ0²AZ4Í ôí!kì!À%émt$Ûƒ0IÔ¬ È÷ëPÄ +V%o¿”„@OÉç!pXS(o¡¿Çl… Â>«Þÿ W'Ø'Æ +>Üã*f¡÷J JƒÏ ô¹Dr©½ù� +PÐÝ~­kÿêë*â+ƒFìWnŒ÷?PðeU–´Ã/ݘM¶üW7–Ÿƒê�ÈþÇ*ÖÌOU|ÂN] R#±ÿZÝ uûŸè|ùKÅàõw Ó¿§(#b?ÎFCÛlƒ]Aÿ�:Áš*æ‡o³áwÙT¤s»íËãGÀ_~îÆêô�Å»˜®bË|‰¯j£±w +ÔK�¨TÕéÛˆ©;ªÍZ±8TZo¾ÿ ½·{g”ªí~Ç:êü=@LŒý¦êò{€üeûˆ­>„Èpcsú(”ˆ±»±ÿWÖ11¦žœ¿«øþÙÙ÷Y: ,Œ·»lÛUhÚ¯X;²6ß}‰olX~Â:† ´¿| muø"´ÍÑìÈÿH\Úÿ³^­mi$KøðÆ$ˆ}¿hD#jp5Þ×]�š(*Ùœ|9¿ý¼Õ3€Ù!�Ù³‹O&3ÝÕu¯·º~u¦väA:�Ò%ñrqÎO扙¹“y5Sî\´gʃÖLy»½“\mÃLZ/ç¿4æ667ÙeKUÒbùX�sŒfÚ‹YQª|ì×ßðù_JÇÌF§3âvïGSîþÃåUoG¬¿ÃðÛWq8‹áòó�&‹JødýnÓkú~Ó§ öF1‘wYx(Ñg)ý\œ[H´M>¡hrìòpq˜ ,½É&s,Ûè}ªfÕbz�l=· º\z¶Ñ}S[mÔ&bí·Ã•ÑÆfe²!ß,]½mìðgRNq×Íb•æòüdí¹äf­ülã™äæf o—çÅZû÷Rápk¿AZ4÷xøÌååÊá vW'¼;8£Ðve"šÇ0Ð_ wþÊõr�F€–Õ|U²»SÁ­]—!àá >Ûù$8•ÝYÙÞ¿•aâ;€û_¿}Mû%ˆqó>nMs6’r†À›ßê•îÛÙÅ«»Âaãíºº …04T}³ý¬fó“êe£Û®Sþ~ =t¼«ýŽá' +ÕWõ`KàXÜr¼k6V ýƒúæÅòLšîÇm>Êß1©QüÔy�¦×qW� ï>O¯ÞÎ9¨œËí×ÀÞa%Mü^›ñ^k³ˆ·ζtðÐ;U¿)«^WŽÞ.T`‘öv/p\€Ë�‹·íJzöö„Ácéû)ëÓ…•V5ÕçöB>Û8�‘�F§xò^œm?äS[n?›0�É5'ÝRÿ´xYûh;kŸÜkGîãÚo|ùÄ. +'µÄ Éƒt¨Šo©‡íx,ôÐëâ) ×ïBžS¯„Á�½uHyúo5·É›œwÖï.úÿÖïÏ¿|îSWÍce¿?ü2 ÝYë_]ßµºßú�9% ô´>âÂEBk|hZmõrs�6âŨu—cÑ»õ\¾Sy÷8¬_Ÿ¯ïïº�ߢEZjo·7ëÑb”èàÀR4•XÔØ*F(óÔìük¥—~nþ 4©ã}'Ç"–jCí.-Ä·Ÿ5\;®Dªpû6·ðrƒ…¯gÑvtò‹.ˆó^޳XGÜÆZãœgÆj+]ô9gbà ~Ú(¯¸âY+-¤c><­Š¸Š¥×–+¦¹ÔÆN¡€0ÎðŒf£ó\†r…ÎHÍ�vBÓŒqÚ:ã•‘œ¸s®¥w6åš]=Ï‘>Žô�ÚR[;å$lRÁ¦ð”#éÚ-4Y‚¬Y+&ñVJÃMâZ`–[-mÖ•Óƒpž»DŒê9.c§À\pc¤b.r±µ¤¤\2Ã4ÂÅE,mp“’RyÙX2r),•!X,íCkçŒãô-„ A&®Š,SÌx†f)ÎsL�Vp眇Ž#gàsÇœ³Bs¢Ð^Ã99ßb�'r¬‡Ÿ¥¤I¾s0Z+í£²Oš ¬4þ†sx¬$ùXí!?ø€</H.< $/A0¬Õ^ å<\‚pM9ŒÐ@ªP0’{R[àk™³L‡X9A9¤µ`L‚¹¦äÔ† ãx–✜Ï ‚A¤Þ.^ ¡eƒ&’ò^Át�… uà�‚a*,(Ân�·^á:u¹RSþ"ê!Å% +OŽˆÂWðdF‡Ìâ"Ô�w�‹^N¦Ònþp:zÙ¨²y7Œæö�š�ý�ÝAÿàÛ ÿ=`Mp +ú{dŠ2ø_y¤‹�õÁ±°¢œ ++ {F íà=�$*1Š iR¤K1Žr›~¨0Xl&—”�K«“ KÇޱ€.ˆ$™YAU샛P>Þr—,fj�VÁÐSÂÃïN 棌ñÝ1Ï“òά€ò7(MHBö¤K%B·œ¡(Èh7E;¤‡‹•0j­}ÖªŒÀŒ3¦»qŒDS‘vJ³ÈÐüçÇHûÿôŠqÃ!ƒ!<šÚ´ ‘„|‚´ß­&½"`´^¢[L9ùCœH‘È4 zU™,Ü´nA*Ó È¡"T¶[üt¿ûwÊ6iGnwf¢¤ÛÞq kî¨xUáCvü+ØÀ¨å�ÀQèÈÃÖº~k§8²1ãÈ5�Á(´–q0¬•Zè~åÀ%é„zçÙgj¦¢ã\8‚A’9iC¹JŠ+š PDñCFÃ-êb„ˆÚx®ÑZŽr?�«/có‹Ž­�ÊLÄ`;át°àÍIµ(O¸»�!”BÆJàô1÷ie M¡·µrá©DÆÙ,Ÿz¤* IÃA*tZIIë< žñA\PYh¾AAºáÀ¥°ÎMª¼A‰ëÉ:H‚ËÐyQœ‚hR»p³CÁ�MáƒcœŽ)¤ +®ASõyÑ?­T çn=Ò…îÑǦèûù§ôý;ñœÄá_Ž':r¹:EŸQ<5Ê ù-¦Æa +ŸýC±š(óB Zkɤ†¹-ŒR âv»WýƒÇîõ'ÌmWOÝ?ûQ÷îî~Øö؉®ûOÃûÇ~ôôñþ+­àȈàN#÷?ÞVK endstream endobj 5 0 obj <> endobj 25 0 obj [/View/Design] endobj 26 0 obj <>>> endobj 34 0 obj [33 0 R] endobj 59 0 obj <> endobj xref 0 60 0000000004 65535 f +0000000016 00000 n +0000000159 00000 n +0000016706 00000 n +0000000000 00000 f +0000063411 00000 n +0000000000 00000 f +0000016757 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 +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000063481 00000 n +0000063512 00000 n +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000020437 00000 n +0000063597 00000 n +0000017158 00000 n +0000017316 00000 n +0000020870 00000 n +0000020624 00000 n +0000020747 00000 n +0000018097 00000 n +0000018739 00000 n +0000019249 00000 n +0000019733 00000 n +0000017381 00000 n +0000017536 00000 n +0000017584 00000 n +0000020375 00000 n +0000020138 00000 n +0000020313 00000 n +0000020251 00000 n +0000020076 00000 n +0000020508 00000 n +0000020539 00000 n +0000020944 00000 n +0000021127 00000 n +0000022431 00000 n +0000033714 00000 n +0000050016 00000 n +0000063622 00000 n +trailer <<4EB2C399D71C4705888A21443A38AEB3>]>> startxref 63763 %%EOF \ No newline at end of file From 131167e1d336bcffe3a8ac90e271fa6801fb314f Mon Sep 17 00:00:00 2001 From: Fabian Guerra Date: Fri, 17 Nov 2017 16:43:48 -0500 Subject: [PATCH 14/92] [ios] Update changelog and bump podspec to 3.7.0 --- platform/ios/CHANGELOG.md | 1 + platform/ios/Mapbox-iOS-SDK-nightly-dynamic.podspec | 2 +- platform/ios/Mapbox-iOS-SDK-symbols.podspec | 2 +- platform/ios/Mapbox-iOS-SDK.podspec | 2 +- 4 files changed, 4 insertions(+), 3 deletions(-) diff --git a/platform/ios/CHANGELOG.md b/platform/ios/CHANGELOG.md index 147567da1..507f5eb07 100644 --- a/platform/ios/CHANGELOG.md +++ b/platform/ios/CHANGELOG.md @@ -18,6 +18,7 @@ Mapbox welcomes participation and contributions from everyone. Please read [CONT * Added `MGLCircleStyleLayer.circlePitchAlignment` and `MGLSymbolStyleLayer.iconPitchAlignment` properties to control whether circles and symbols lie flat against a tilted map. ([#9426](https://github.com/mapbox/mapbox-gl-native/pull/9426), [#9479](https://github.com/mapbox/mapbox-gl-native/pull/9479)) * Added an `MGLSymbolStyleLayer.iconAnchor` property to control where an icon is anchored. ([#9849](https://github.com/mapbox/mapbox-gl-native/pull/9849)) * The `maximumTextWidth` and `textLetterSpacing` properties of `MGLSymbolStyleLayer` are now compatible with `MGLSourceStyleFunction`s and `MGLCompositeStyleFunction`s, allowing data-driven styling of these properties. ([#9870](https://github.com/mapbox/mapbox-gl-native/pull/9870)) +* The `MGLSymbolStyleLayer.textAnchor`, `MGLSymbolStyleLayer.textJustification` and `MGLLineStyleLayer.lineJoin` properties are now compatible with `MGLSourceStyleFunction`s and `MGLCompositeStyleFunction`s, allowing data-driven styling of these properties. ([#9583](https://github.com/mapbox/mapbox-gl-native/pull/9583)) * Improved the legibility of labels that follow lines when the map is tilted. ([#9009](https://github.com/mapbox/mapbox-gl-native/pull/9009)) * Fixed an issue that could cause flickering when a translucent raster style layer was present. ([#9468](https://github.com/mapbox/mapbox-gl-native/pull/9468)) * Fixed an issue that could cause antialiasing between polygons on the same layer to fail if the fill layers used data-driven styling for the fill color. ([#9699](https://github.com/mapbox/mapbox-gl-native/pull/9699)) diff --git a/platform/ios/Mapbox-iOS-SDK-nightly-dynamic.podspec b/platform/ios/Mapbox-iOS-SDK-nightly-dynamic.podspec index a522c8acb..ac60bc330 100644 --- a/platform/ios/Mapbox-iOS-SDK-nightly-dynamic.podspec +++ b/platform/ios/Mapbox-iOS-SDK-nightly-dynamic.podspec @@ -1,6 +1,6 @@ Pod::Spec.new do |m| - version = '3.7.0-rc.1' + version = '3.7.0' m.name = 'Mapbox-iOS-SDK-nightly-dynamic' m.version = "#{version}-nightly" diff --git a/platform/ios/Mapbox-iOS-SDK-symbols.podspec b/platform/ios/Mapbox-iOS-SDK-symbols.podspec index d6d52a59c..9151c9b97 100644 --- a/platform/ios/Mapbox-iOS-SDK-symbols.podspec +++ b/platform/ios/Mapbox-iOS-SDK-symbols.podspec @@ -1,6 +1,6 @@ Pod::Spec.new do |m| - version = '3.7.0-rc.1' + version = '3.7.0' m.name = 'Mapbox-iOS-SDK-symbols' m.version = "#{version}-symbols" diff --git a/platform/ios/Mapbox-iOS-SDK.podspec b/platform/ios/Mapbox-iOS-SDK.podspec index 9e06e6a48..fe4f24ad5 100644 --- a/platform/ios/Mapbox-iOS-SDK.podspec +++ b/platform/ios/Mapbox-iOS-SDK.podspec @@ -1,6 +1,6 @@ Pod::Spec.new do |m| - version = '3.7.0-rc.1' + version = '3.7.0' m.name = 'Mapbox-iOS-SDK' m.version = version From 1d78c044847ceaf688f615bf7b6e066dac805171 Mon Sep 17 00:00:00 2001 From: Victor Akap Oben Date: Mon, 20 Nov 2017 09:00:05 -0600 Subject: [PATCH 15/92] Update comment from onDestroy to onDestroyView (#10501) Updated comment to reflect that MapView's lifecycle callback in a fragment should be called from onDestroyView rather than on onDestroy. This is consistent with that MapFragment is doing. --- .../src/main/java/com/mapbox/mapboxsdk/maps/MapView.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapView.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapView.java index c025a119b..de917979a 100644 --- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapView.java +++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapView.java @@ -401,7 +401,7 @@ public class MapView extends FrameLayout { } /** - * You must call this method from the parent's Activity#onDestroy() or Fragment#onDestroy(). + * You must call this method from the parent's Activity#onDestroy() or Fragment#onDestroyView(). */ @UiThread public void onDestroy() { From a8ad619104a8eba25e7d78604fd08141913d53a7 Mon Sep 17 00:00:00 2001 From: Jason Wray Date: Fri, 17 Nov 2017 16:58:29 -0500 Subject: [PATCH 16/92] [build] Set clang-tidy timeout to 20 minutes Default is 10 minutes, but suddenly we're exceeding that. --- circle.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/circle.yml b/circle.yml index 0d1651e01..75b10850e 100644 --- a/circle.yml +++ b/circle.yml @@ -187,6 +187,7 @@ jobs: - run: name: Run Clang checks command: make check + no_output_timeout: 20m # ------------------------------------------------------------------------------ android-debug-arm-v7: From 34fe323924896ba7d3a1fc07174c8b528b013f55 Mon Sep 17 00:00:00 2001 From: Jason Wray Date: Fri, 17 Nov 2017 14:07:59 -0500 Subject: [PATCH 17/92] [node, build] Don't fail on non-node tags --- platform/node/bitrise.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/platform/node/bitrise.yml b/platform/node/bitrise.yml index fab3093d6..3cc27008e 100644 --- a/platform/node/bitrise.yml +++ b/platform/node/bitrise.yml @@ -4,6 +4,8 @@ default_step_lib_source: https://github.com/bitrise-io/bitrise-steplib.git trigger_map: - tag: "node-v*" workflow: publish +- tag: "*" + workflow: primary - push_branch: "*" workflow: primary - pull_request_target_branch: "*" From 9206e46154f4d3c79ebe3da405fc6b641d336cb9 Mon Sep 17 00:00:00 2001 From: Pablo Guardiola Date: Mon, 20 Nov 2017 20:10:04 +0100 Subject: [PATCH 18/92] release android v5.2.0 (#10487) --- platform/android/CHANGELOG.md | 6 +++++- platform/android/MapboxGLAndroidSDK/gradle.properties | 2 +- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/platform/android/CHANGELOG.md b/platform/android/CHANGELOG.md index 924a05aa8..4d3a82957 100644 --- a/platform/android/CHANGELOG.md +++ b/platform/android/CHANGELOG.md @@ -2,10 +2,14 @@ Mapbox welcomes participation and contributions from everyone. If you'd like to do so please see the [`Contributing Guide`](https://github.com/mapbox/mapbox-gl-native/blob/master/CONTRIBUTING.md) first to get started. -## 5.2.0 - TBA +## 5.3.0 - TBA * TBA +## 5.2.0 - November 17, 2017 + +- Monkey crashes [#10472](https://github.com/mapbox/mapbox-gl-native/pull/10472) + ## 5.2.0-beta.5 - November 14, 2017 - MapSnapshot attribution [#10362](https://github.com/mapbox/mapbox-gl-native/pull/10362) diff --git a/platform/android/MapboxGLAndroidSDK/gradle.properties b/platform/android/MapboxGLAndroidSDK/gradle.properties index a3dab0eff..478475766 100644 --- a/platform/android/MapboxGLAndroidSDK/gradle.properties +++ b/platform/android/MapboxGLAndroidSDK/gradle.properties @@ -1,5 +1,5 @@ GROUP=com.mapbox.mapboxsdk -VERSION_NAME=5.2.0-SNAPSHOT +VERSION_NAME=5.3.0-SNAPSHOT POM_DESCRIPTION=Mapbox GL Android SDK POM_URL=https://github.com/mapbox/mapbox-gl-native From 8f4c07c5b8a0eff9d8047ce6ae030f155359db81 Mon Sep 17 00:00:00 2001 From: Bruno de Oliveira Abinader Date: Mon, 20 Nov 2017 12:29:51 +0200 Subject: [PATCH 19/92] [build] Added CircleCI macos-debug-qt5 job --- circle.yml | 40 ++++++++++++++++++++++++++++++- platform/qt/bitrise-qt4.yml | 36 ++++------------------------ platform/qt/bitrise-qt5.yml | 47 ++++--------------------------------- 3 files changed, 49 insertions(+), 74 deletions(-) diff --git a/circle.yml b/circle.yml index 75b10850e..09421bec9 100644 --- a/circle.yml +++ b/circle.yml @@ -34,6 +34,7 @@ workflows: #- ios-sanitize-address - ios-sanitize-thread - macos-debug + - macos-debug-qt5 step-library: - &generate-cache-key @@ -119,11 +120,23 @@ step-library: - &install-macos-dependencies run: - name: Install dependencies + name: Install macOS dependencies command: | brew install cmake brew install ccache + - &install-macos-qt-dependencies + run: + name: Install macOS Qt dependencies + command: | + sudo chown -R $USER /usr/local + brew install qt + brew link qt --force + brew linkapps qt + export HOMEBREW_QT5_CELLAR=$(brew --cellar qt) + export HOMEBREW_QT5_VERSION=$(brew list --versions qt | rev | cut -d' ' -f1 | rev) + ln -s $HOMEBREW_QT5_CELLAR/$HOMEBREW_QT5_VERSION/mkspecs /usr/local/mkspecs + ln -s $HOMEBREW_QT5_CELLAR/$HOMEBREW_QT5_VERSION/plugins /usr/local/plugins - &run-node-tests run: @@ -693,3 +706,28 @@ jobs: - store_artifacts: path: test/fixtures destination: test/fixtures + +# ------------------------------------------------------------------------------ + macos-debug-qt5: + macos: + xcode: "9.0" + environment: + BUILDTYPE: Debug + HOMEBREW_NO_AUTO_UPDATE: 1 + steps: + - checkout + - *install-macos-dependencies + - *install-macos-qt-dependencies + - *generate-cache-key + - *restore-cache + - *reset-ccache-stats + - *build-qt-app + - *build-qt-test + - run: + name: Run qt-test + command: make run-qt-test + - *show-ccache-stats + - *save-cache + - store_artifacts: + path: test/fixtures + destination: test/fixtures diff --git a/platform/qt/bitrise-qt4.yml b/platform/qt/bitrise-qt4.yml index d8c7e0788..4a013ea8b 100644 --- a/platform/qt/bitrise-qt4.yml +++ b/platform/qt/bitrise-qt4.yml @@ -1,41 +1,15 @@ ---- -format_version: 1.0.0 +format_version: 1.1.0 default_step_lib_source: https://github.com/bitrise-io/bitrise-steplib.git + trigger_map: - pattern: "*" is_pull_request_allowed: true workflow: primary + workflows: primary: steps: - script: - title: Run build + title: Skip Workflow inputs: - - content: |- - #!/bin/bash - set -eu -o pipefail - brew install cmake - brew install qt - brew link qt - brew linkapps qt - export BUILDTYPE=Debug - make qt-app - make run-qt-test - - is_debug: 'yes' - - slack: - title: Post to Slack - inputs: - - webhook_url: "$SLACK_HOOK_URL" - - channel: "#gl-bots" - - from_username: 'Bitrise Qt4 macOS' - - from_username_on_error: 'Bitrise Qt4 macOS' - - message: '<${BITRISE_BUILD_URL}|Build #${BITRISE_BUILD_NUMBER}> - for - by ${GIT_CLONE_COMMIT_COMMITER_NAME} - passed' - - message_on_error: '<${BITRISE_BUILD_URL}|Build #${BITRISE_BUILD_NUMBER}> - for - by ${GIT_CLONE_COMMIT_COMMITER_NAME} - failed' - - icon_url: https://bitrise-public-content-production.s3.amazonaws.com/slack/bitrise-slack-icon-128.png - - icon_url_on_error: https://bitrise-public-content-production.s3.amazonaws.com/slack/bitrise-slack-error-icon-128.png + - content: echo "This workflow is obsolete — see CircleCi." diff --git a/platform/qt/bitrise-qt5.yml b/platform/qt/bitrise-qt5.yml index 0ce964e43..4a013ea8b 100644 --- a/platform/qt/bitrise-qt5.yml +++ b/platform/qt/bitrise-qt5.yml @@ -1,52 +1,15 @@ ---- -format_version: 1.0.0 +format_version: 1.1.0 default_step_lib_source: https://github.com/bitrise-io/bitrise-steplib.git + trigger_map: - pattern: "*" is_pull_request_allowed: true workflow: primary + workflows: primary: steps: - script: - title: Run build + title: Skip Workflow inputs: - - content: |- - #!/bin/bash - set -eu -o pipefail - sudo chown -R $USER /usr/local - brew install cmake - brew install qt - brew link qt --force - brew linkapps qt - export HOMEBREW_QT5_CELLAR=$(brew --cellar qt) - export HOMEBREW_QT5_VERSION=$(brew list --versions qt | rev | cut -d' ' -f1 | rev) - ln -s $HOMEBREW_QT5_CELLAR/$HOMEBREW_QT5_VERSION/mkspecs /usr/local/mkspecs - ln -s $HOMEBREW_QT5_CELLAR/$HOMEBREW_QT5_VERSION/plugins /usr/local/plugins - export BUILDTYPE=Debug - make qt-app - make run-qt-test - - is_debug: 'yes' - - deploy-to-bitrise-io: - title: Deploy to Bitrise.io - inputs: - - deploy_path: "test/fixtures" - - notify_user_groups: none - - is_compress: 'true' - - slack: - title: Post to Slack - inputs: - - webhook_url: "$SLACK_HOOK_URL" - - channel: "#gl-bots" - - from_username: 'Bitrise Qt5 macOS' - - from_username_on_error: 'Bitrise Qt5 macOS' - - message: '<${BITRISE_BUILD_URL}|Build #${BITRISE_BUILD_NUMBER}> - for - by ${GIT_CLONE_COMMIT_COMMITER_NAME} - passed' - - message_on_error: '<${BITRISE_BUILD_URL}|Build #${BITRISE_BUILD_NUMBER}> - for - by ${GIT_CLONE_COMMIT_COMMITER_NAME} - failed' - - icon_url: https://bitrise-public-content-production.s3.amazonaws.com/slack/bitrise-slack-icon-128.png - - icon_url_on_error: https://bitrise-public-content-production.s3.amazonaws.com/slack/bitrise-slack-error-icon-128.png + - content: echo "This workflow is obsolete — see CircleCi." From bcfe51c16c595e1aef691a34acea7636d82cc7bd Mon Sep 17 00:00:00 2001 From: Jesse Bounds Date: Wed, 22 Nov 2017 10:28:43 -0800 Subject: [PATCH 20/92] [ios] Add easy to use demo app for developers (#10524) This updates the package script to include a pre-built iOS app in the published assets of the dynamic SDK. It symlinks the Mapbox.framework in that dynamic build to the demo app so the only real increase in size is the demo Xcode project itself. The addtional step in the publish script checks that the Mapbox.framework that is symlinked in for building in the demo project can actually be built. If it cannot, then the step is skipped and the build will continue as it normally would. Since the demo app is currently not required for publishing it should not block publishing a build. --- platform/ios/scripts/package.sh | 17 + .../MapboxDemo.xcodeproj/project.pbxproj | 366 ++++++++++++++++++ .../MapboxDemo/MapboxDemo/AppDelegate.swift | 12 + .../AppIcon.appiconset/Contents.json | 98 +++++ .../MapboxDemo/Assets.xcassets/Contents.json | 6 + .../yose.imageset/Contents.json | 21 + .../Screen Shot 2017-11-20 at 1.43.33 PM.png | Bin 0 -> 298453 bytes .../MapboxDemo/Base.lproj/Main.storyboard | 189 +++++++++ .../MapboxDemo/MapboxDemo/Info.plist | 47 +++ .../MapboxDemo/ViewController.swift | 239 ++++++++++++ .../MapboxDemo/MapboxDemo/data/yose.geojson | 1 + 11 files changed, 996 insertions(+) create mode 100644 platform/ios/scripts/script_resources/MapboxDemo/MapboxDemo.xcodeproj/project.pbxproj create mode 100644 platform/ios/scripts/script_resources/MapboxDemo/MapboxDemo/AppDelegate.swift create mode 100644 platform/ios/scripts/script_resources/MapboxDemo/MapboxDemo/Assets.xcassets/AppIcon.appiconset/Contents.json create mode 100644 platform/ios/scripts/script_resources/MapboxDemo/MapboxDemo/Assets.xcassets/Contents.json create mode 100644 platform/ios/scripts/script_resources/MapboxDemo/MapboxDemo/Assets.xcassets/yose.imageset/Contents.json create mode 100644 platform/ios/scripts/script_resources/MapboxDemo/MapboxDemo/Assets.xcassets/yose.imageset/Screen Shot 2017-11-20 at 1.43.33 PM.png create mode 100644 platform/ios/scripts/script_resources/MapboxDemo/MapboxDemo/Base.lproj/Main.storyboard create mode 100644 platform/ios/scripts/script_resources/MapboxDemo/MapboxDemo/Info.plist create mode 100644 platform/ios/scripts/script_resources/MapboxDemo/MapboxDemo/ViewController.swift create mode 100644 platform/ios/scripts/script_resources/MapboxDemo/MapboxDemo/data/yose.geojson diff --git a/platform/ios/scripts/package.sh b/platform/ios/scripts/package.sh index 3a7342034..0acce9a57 100755 --- a/platform/ios/scripts/package.sh +++ b/platform/ios/scripts/package.sh @@ -242,6 +242,23 @@ fi if [[ ${BUILD_DYNAMIC} == true && ${BUILD_FOR_DEVICE} == true ]]; then step "Copying bitcode symbol maps…" find "${PRODUCTS}/${BUILDTYPE}-iphoneos" -name '*.bcsymbolmap' -type f -exec cp -pv {} "${OUTPUT}/dynamic/" \; + + step "Copying demo project and sym linking to published framework…" + cp -rv platform/ios/scripts/script_resources/MapboxDemo "${OUTPUT}" + cd "${OUTPUT}/MapboxDemo" + ln -sv "../dynamic/${NAME}.framework" + cd - + + step "Building demo project…" + xcodebuild -quiet -project build/ios/pkg/MapboxDemo/MapboxDemo.xcodeproj -scheme MapboxDemo build ONLY_ACTIVE_ARCH=YES -destination 'platform=iOS Simulator,name=iPhone 7' clean build &> /tmp/iosdemobuildoutput || true + if grep -Fxq "** BUILD FAILED **" /tmp/iosdemobuildoutput + then + echo "Could not build demo project with this version of the SDK." + rm -rf "${OUTPUT}/MapboxDemo" + else + echo "Built and packaged demo project." + fi + rm /tmp/iosdemobuildoutput fi sed -n -e '/^## /,$p' platform/ios/CHANGELOG.md > "${OUTPUT}/CHANGELOG.md" diff --git a/platform/ios/scripts/script_resources/MapboxDemo/MapboxDemo.xcodeproj/project.pbxproj b/platform/ios/scripts/script_resources/MapboxDemo/MapboxDemo.xcodeproj/project.pbxproj new file mode 100644 index 000000000..16e059ace --- /dev/null +++ b/platform/ios/scripts/script_resources/MapboxDemo/MapboxDemo.xcodeproj/project.pbxproj @@ -0,0 +1,366 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 48; + objects = { + +/* Begin PBXBuildFile section */ + 40625C791FB5340B00B90D3E /* Mapbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 40625C781FB5340B00B90D3E /* Mapbox.framework */; }; + 40625C7A1FB5340B00B90D3E /* Mapbox.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 40625C781FB5340B00B90D3E /* Mapbox.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + 40625C9B1FBA59B800B90D3E /* yose.geojson in Resources */ = {isa = PBXBuildFile; fileRef = 40625C9A1FBA59B800B90D3E /* yose.geojson */; }; + 40B9C65E1FB380E3002B6532 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 40B9C65D1FB380E3002B6532 /* AppDelegate.swift */; }; + 40B9C6601FB380E3002B6532 /* ViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 40B9C65F1FB380E3002B6532 /* ViewController.swift */; }; + 40B9C6631FB380E3002B6532 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 40B9C6611FB380E3002B6532 /* Main.storyboard */; }; + 40B9C6651FB380E3002B6532 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 40B9C6641FB380E3002B6532 /* Assets.xcassets */; }; +/* End PBXBuildFile section */ + +/* Begin PBXCopyFilesBuildPhase section */ + 40B9C6721FB3810B002B6532 /* Embed Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + 40625C7A1FB5340B00B90D3E /* Mapbox.framework in Embed Frameworks */, + ); + name = "Embed Frameworks"; + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXCopyFilesBuildPhase section */ + +/* Begin PBXFileReference section */ + 40625C6F1FB5336D00B90D3E /* MapboxDemo.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; path = MapboxDemo.xcodeproj; sourceTree = ""; }; + 40625C781FB5340B00B90D3E /* Mapbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Mapbox.framework; path = ../dynamic/Mapbox.framework; sourceTree = ""; }; + 40625C9A1FBA59B800B90D3E /* yose.geojson */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = yose.geojson; path = MapboxDemo/data/yose.geojson; sourceTree = SOURCE_ROOT; }; + 40B9C65A1FB380E3002B6532 /* MapboxDemo.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = MapboxDemo.app; sourceTree = BUILT_PRODUCTS_DIR; }; + 40B9C65D1FB380E3002B6532 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; + 40B9C65F1FB380E3002B6532 /* ViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ViewController.swift; sourceTree = ""; }; + 40B9C6621FB380E3002B6532 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; + 40B9C6641FB380E3002B6532 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; + 40B9C6691FB380E3002B6532 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 40B9C6571FB380E3002B6532 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 40625C791FB5340B00B90D3E /* Mapbox.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 40625C701FB5336D00B90D3E /* Products */ = { + isa = PBXGroup; + name = Products; + sourceTree = ""; + }; + 40625C9C1FBA59C300B90D3E /* data */ = { + isa = PBXGroup; + children = ( + 40625C9A1FBA59B800B90D3E /* yose.geojson */, + ); + path = data; + sourceTree = ""; + }; + 40B9C6511FB380E3002B6532 = { + isa = PBXGroup; + children = ( + 40625C781FB5340B00B90D3E /* Mapbox.framework */, + 40625C6F1FB5336D00B90D3E /* MapboxDemo.xcodeproj */, + 40B9C65C1FB380E3002B6532 /* MapboxDemo */, + 40B9C65B1FB380E3002B6532 /* Products */, + ); + sourceTree = ""; + }; + 40B9C65B1FB380E3002B6532 /* Products */ = { + isa = PBXGroup; + children = ( + 40B9C65A1FB380E3002B6532 /* MapboxDemo.app */, + ); + name = Products; + sourceTree = ""; + }; + 40B9C65C1FB380E3002B6532 /* MapboxDemo */ = { + isa = PBXGroup; + children = ( + 40625C9C1FBA59C300B90D3E /* data */, + 40B9C65D1FB380E3002B6532 /* AppDelegate.swift */, + 40B9C65F1FB380E3002B6532 /* ViewController.swift */, + 40B9C6611FB380E3002B6532 /* Main.storyboard */, + 40B9C6641FB380E3002B6532 /* Assets.xcassets */, + 40B9C6691FB380E3002B6532 /* Info.plist */, + ); + path = MapboxDemo; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 40B9C6591FB380E3002B6532 /* MapboxDemo */ = { + isa = PBXNativeTarget; + buildConfigurationList = 40B9C66C1FB380E3002B6532 /* Build configuration list for PBXNativeTarget "MapboxDemo" */; + buildPhases = ( + 40B9C6561FB380E3002B6532 /* Sources */, + 40B9C6571FB380E3002B6532 /* Frameworks */, + 40B9C6581FB380E3002B6532 /* Resources */, + 40B9C6721FB3810B002B6532 /* Embed Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = MapboxDemo; + productName = MapboxDemo; + productReference = 40B9C65A1FB380E3002B6532 /* MapboxDemo.app */; + productType = "com.apple.product-type.application"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 40B9C6521FB380E3002B6532 /* Project object */ = { + isa = PBXProject; + attributes = { + LastSwiftUpdateCheck = 0910; + LastUpgradeCheck = 0910; + ORGANIZATIONNAME = Mapbox; + TargetAttributes = { + 40B9C6591FB380E3002B6532 = { + CreatedOnToolsVersion = 9.1; + ProvisioningStyle = Manual; + }; + }; + }; + buildConfigurationList = 40B9C6551FB380E3002B6532 /* Build configuration list for PBXProject "MapboxDemo" */; + compatibilityVersion = "Xcode 8.0"; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + en, + Base, + ); + mainGroup = 40B9C6511FB380E3002B6532; + productRefGroup = 40B9C65B1FB380E3002B6532 /* Products */; + projectDirPath = ""; + projectReferences = ( + { + ProductGroup = 40625C701FB5336D00B90D3E /* Products */; + ProjectRef = 40625C6F1FB5336D00B90D3E /* MapboxDemo.xcodeproj */; + }, + ); + projectRoot = ""; + targets = ( + 40B9C6591FB380E3002B6532 /* MapboxDemo */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 40B9C6581FB380E3002B6532 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 40B9C6651FB380E3002B6532 /* Assets.xcassets in Resources */, + 40B9C6631FB380E3002B6532 /* Main.storyboard in Resources */, + 40625C9B1FBA59B800B90D3E /* yose.geojson in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 40B9C6561FB380E3002B6532 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 40B9C6601FB380E3002B6532 /* ViewController.swift in Sources */, + 40B9C65E1FB380E3002B6532 /* AppDelegate.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXVariantGroup section */ + 40B9C6611FB380E3002B6532 /* Main.storyboard */ = { + isa = PBXVariantGroup; + children = ( + 40B9C6621FB380E3002B6532 /* Base */, + ); + name = Main.storyboard; + sourceTree = ""; + }; +/* End PBXVariantGroup section */ + +/* Begin XCBuildConfiguration section */ + 40B9C66A1FB380E3002B6532 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGN_IDENTITY = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 11.1; + MTL_ENABLE_DEBUG_INFO = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = iphoneos; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + }; + name = Debug; + }; + 40B9C66B1FB380E3002B6532 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGN_IDENTITY = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 11.1; + MTL_ENABLE_DEBUG_INFO = NO; + SDKROOT = iphoneos; + SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; + 40B9C66D1FB380E3002B6532 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CODE_SIGN_STYLE = Manual; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)", + ); + INFOPLIST_FILE = MapboxDemo/Info.plist; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = com.mapbox.MapboxMapsSDKDemoiOS; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 4.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Debug; + }; + 40B9C66E1FB380E3002B6532 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CODE_SIGN_STYLE = Manual; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)", + ); + INFOPLIST_FILE = MapboxDemo/Info.plist; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = com.mapbox.MapboxMapsSDKDemoiOS; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 4.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 40B9C6551FB380E3002B6532 /* Build configuration list for PBXProject "MapboxDemo" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 40B9C66A1FB380E3002B6532 /* Debug */, + 40B9C66B1FB380E3002B6532 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 40B9C66C1FB380E3002B6532 /* Build configuration list for PBXNativeTarget "MapboxDemo" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 40B9C66D1FB380E3002B6532 /* Debug */, + 40B9C66E1FB380E3002B6532 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = 40B9C6521FB380E3002B6532 /* Project object */; +} diff --git a/platform/ios/scripts/script_resources/MapboxDemo/MapboxDemo/AppDelegate.swift b/platform/ios/scripts/script_resources/MapboxDemo/MapboxDemo/AppDelegate.swift new file mode 100644 index 000000000..aa67cf5cf --- /dev/null +++ b/platform/ios/scripts/script_resources/MapboxDemo/MapboxDemo/AppDelegate.swift @@ -0,0 +1,12 @@ +import UIKit + +@UIApplicationMain +class AppDelegate: UIResponder, UIApplicationDelegate { + + var window: UIWindow? + + func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool { + return true + } + +} diff --git a/platform/ios/scripts/script_resources/MapboxDemo/MapboxDemo/Assets.xcassets/AppIcon.appiconset/Contents.json b/platform/ios/scripts/script_resources/MapboxDemo/MapboxDemo/Assets.xcassets/AppIcon.appiconset/Contents.json new file mode 100644 index 000000000..d8db8d65f --- /dev/null +++ b/platform/ios/scripts/script_resources/MapboxDemo/MapboxDemo/Assets.xcassets/AppIcon.appiconset/Contents.json @@ -0,0 +1,98 @@ +{ + "images" : [ + { + "idiom" : "iphone", + "size" : "20x20", + "scale" : "2x" + }, + { + "idiom" : "iphone", + "size" : "20x20", + "scale" : "3x" + }, + { + "idiom" : "iphone", + "size" : "29x29", + "scale" : "2x" + }, + { + "idiom" : "iphone", + "size" : "29x29", + "scale" : "3x" + }, + { + "idiom" : "iphone", + "size" : "40x40", + "scale" : "2x" + }, + { + "idiom" : "iphone", + "size" : "40x40", + "scale" : "3x" + }, + { + "idiom" : "iphone", + "size" : "60x60", + "scale" : "2x" + }, + { + "idiom" : "iphone", + "size" : "60x60", + "scale" : "3x" + }, + { + "idiom" : "ipad", + "size" : "20x20", + "scale" : "1x" + }, + { + "idiom" : "ipad", + "size" : "20x20", + "scale" : "2x" + }, + { + "idiom" : "ipad", + "size" : "29x29", + "scale" : "1x" + }, + { + "idiom" : "ipad", + "size" : "29x29", + "scale" : "2x" + }, + { + "idiom" : "ipad", + "size" : "40x40", + "scale" : "1x" + }, + { + "idiom" : "ipad", + "size" : "40x40", + "scale" : "2x" + }, + { + "idiom" : "ipad", + "size" : "76x76", + "scale" : "1x" + }, + { + "idiom" : "ipad", + "size" : "76x76", + "scale" : "2x" + }, + { + "idiom" : "ipad", + "size" : "83.5x83.5", + "scale" : "2x" + }, + { + "idiom" : "ios-marketing", + "size" : "1024x1024", + "scale" : "1x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/platform/ios/scripts/script_resources/MapboxDemo/MapboxDemo/Assets.xcassets/Contents.json b/platform/ios/scripts/script_resources/MapboxDemo/MapboxDemo/Assets.xcassets/Contents.json new file mode 100644 index 000000000..da4a164c9 --- /dev/null +++ b/platform/ios/scripts/script_resources/MapboxDemo/MapboxDemo/Assets.xcassets/Contents.json @@ -0,0 +1,6 @@ +{ + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/platform/ios/scripts/script_resources/MapboxDemo/MapboxDemo/Assets.xcassets/yose.imageset/Contents.json b/platform/ios/scripts/script_resources/MapboxDemo/MapboxDemo/Assets.xcassets/yose.imageset/Contents.json new file mode 100644 index 000000000..6e793ce10 --- /dev/null +++ b/platform/ios/scripts/script_resources/MapboxDemo/MapboxDemo/Assets.xcassets/yose.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "Screen Shot 2017-11-20 at 1.43.33 PM.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/platform/ios/scripts/script_resources/MapboxDemo/MapboxDemo/Assets.xcassets/yose.imageset/Screen Shot 2017-11-20 at 1.43.33 PM.png b/platform/ios/scripts/script_resources/MapboxDemo/MapboxDemo/Assets.xcassets/yose.imageset/Screen Shot 2017-11-20 at 1.43.33 PM.png new file mode 100644 index 0000000000000000000000000000000000000000..e5badda22c1f6400c8b7d3b11869a4bb33a8b482 GIT binary patch literal 298453 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�j5M1{NR;$y)U@r71wFt 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 b!0G=BBb|3Qc1-N&00000NkvXXu0mjfHpRUf literal 0 HcmV?d00001 diff --git a/platform/ios/scripts/script_resources/MapboxDemo/MapboxDemo/Base.lproj/Main.storyboard b/platform/ios/scripts/script_resources/MapboxDemo/MapboxDemo/Base.lproj/Main.storyboard new file mode 100644 index 000000000..9caacf9d0 --- /dev/null +++ b/platform/ios/scripts/script_resources/MapboxDemo/MapboxDemo/Base.lproj/Main.storyboard @@ -0,0 +1,189 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/platform/ios/scripts/script_resources/MapboxDemo/MapboxDemo/Info.plist b/platform/ios/scripts/script_resources/MapboxDemo/MapboxDemo/Info.plist new file mode 100644 index 000000000..46d889c34 --- /dev/null +++ b/platform/ios/scripts/script_resources/MapboxDemo/MapboxDemo/Info.plist @@ -0,0 +1,47 @@ + + + + + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + APPL + CFBundleShortVersionString + 1.0 + CFBundleVersion + 1 + LSRequiresIPhoneOS + + MGLMapboxAccessToken + pk.eyJ1IjoibWFwYm94IiwiYSI6ImNqYThuNnZ3NTA5MGMyd3F1cmF1eW1xaGEifQ.TdBTSHHPeT1pfLZ_6x_1vA + UILaunchStoryboardName + LaunchScreen + UIMainStoryboardFile + Main + UIRequiredDeviceCapabilities + + armv7 + + UISupportedInterfaceOrientations + + UIInterfaceOrientationPortrait + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + UISupportedInterfaceOrientations~ipad + + UIInterfaceOrientationPortrait + UIInterfaceOrientationPortraitUpsideDown + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + + diff --git a/platform/ios/scripts/script_resources/MapboxDemo/MapboxDemo/ViewController.swift b/platform/ios/scripts/script_resources/MapboxDemo/MapboxDemo/ViewController.swift new file mode 100644 index 000000000..34bbcb766 --- /dev/null +++ b/platform/ios/scripts/script_resources/MapboxDemo/MapboxDemo/ViewController.swift @@ -0,0 +1,239 @@ +import UIKit +import Mapbox + +/* + A simple example that uses the Mapbox Outdoors style to view + Yosemite National Park, USA with a polygon visualization of the + park boundary that can be interacted with. + + A demo access token has been provided for convenience and it may + stop working in the future. + + You can obtain your own access token from the + [Mapbox account page](https://www.mapbox.com/studio/account/tokens/) + and add it to this application's Info.plist as the value for + MGLMapboxAccessToken + */ +class ViewController: UIViewController { + + @IBOutlet weak var mapViewContainer: UIView! + @IBOutlet weak var annotationContextView: UIView! + @IBOutlet weak var accessTokenWarningView: UIView! + + var mapView: MGLMapView! + + // Define a name for our annotation + let annotationIdentifier = "yosemite-fill-layer" + + // Define the name of the map label layer we will want our annotation to be placed under + let styleLabelLayer = "mountain-peak-label" + + // The initial center geometric coordinate for the map to display - this is Yosemite National Park, USA + let centerCoordinate = CLLocationCoordinate2DMake(37.742241, -119.576923) + + // MARK: - View controller life cycle + + override func viewDidLoad() { + super.viewDidLoad() + + setupAnnotationContextView() + setupAndAddMapView() + setupGestureHandling() + } + + // MARK: - Map object interaction + + @objc func didTapMap(sender: UITapGestureRecognizer) { + + // Search for annotation at tap point + // If the annotation is found at the tap point then modify some of its properties + // If the annotation is not found at the tap point, reset the annotation back to the way it was when originally added + if let layer = mapView.style?.layer(withIdentifier: annotationIdentifier) as? MGLFillExtrusionStyleLayer { + let point = sender.location(in: mapView) + let features = mapView.visibleFeatures(at: point, styleLayerIdentifiers: [annotationIdentifier]) + if features.count > 0 { + layer.fillExtrusionOpacity = MGLStyleValue(rawValue: 0.9) + layer.fillExtrusionHeight = MGLStyleValue(rawValue: 5000) + let camera = MGLMapCamera(lookingAtCenter: centerCoordinate, fromDistance: 100000, pitch: 60, heading: 180) + mapView.fly(to: camera, withDuration: 8, completionHandler: nil) + annotationContextView.alpha = 1.0 + } else { + layer.fillExtrusionOpacity = MGLStyleValue(rawValue: 0.5) + layer.fillExtrusionHeight = MGLStyleValue(rawValue: 0) + let camera = MGLMapCamera(lookingAtCenter: centerCoordinate, fromDistance: 100000, pitch: 60, heading: 0) + mapView.fly(to: camera, withDuration: 1, completionHandler: nil) + annotationContextView.alpha = 0 + } + } + } + + // MARK: - Initialization and setup + + /* + Simple (but somewhat styled) stub of a view to present + contextual information about tapped objects on the map. + */ + fileprivate func setupAnnotationContextView() { + annotationContextView.alpha = 0 + let blurView = UIVisualEffectView(effect: UIBlurEffect(style: .light)) + blurView.frame = annotationContextView.bounds + blurView.layer.cornerRadius = 5 + blurView.clipsToBounds = true + blurView.translatesAutoresizingMaskIntoConstraints = false + annotationContextView.insertSubview(blurView, at: 0) + blurView.topAnchor.constraint(equalTo: annotationContextView.topAnchor).isActive = true + blurView.leftAnchor.constraint(equalTo: annotationContextView.leftAnchor).isActive = true + blurView.rightAnchor.constraint(equalTo: annotationContextView.rightAnchor).isActive = true + blurView.bottomAnchor.constraint(equalTo: annotationContextView.bottomAnchor).isActive = true + } + + /* + Create and add a Mapbox map view to the the view + intended to contain it. Setup with the style, initial + location in the world, and make this object the delegate + of the map. Finally, set up a camera to control how the + user will view the map initially. + */ + fileprivate func setupAndAddMapView() { + mapView = MGLMapView(frame: mapViewContainer.bounds) + mapView.autoresizingMask = [.flexibleHeight, .flexibleWidth] + mapView.styleURL = MGLStyle.outdoorsStyleURL(withVersion: 10) + mapView.setCenter(centerCoordinate, zoomLevel: 10, animated: false) + mapView.delegate = self + mapViewContainer.addSubview(mapView) + + accessTokenWarningView.layer.cornerRadius = 5 + accessTokenWarningView.isHidden = true + + // This demo access token has been provided for convenience and it may + // stop working in the future. + // You can obtain your own access token from the + // [Mapbox account page](https://www.mapbox.com/studio/account/tokens/) + // and add it to this application's Info.plist as the value for MGLMapboxAccessToken + if MGLAccountManager.accessToken() == "pk.eyJ1IjoibWFwYm94IiwiYSI6ImNqYThuNnZ3NTA5MGMyd3F1cmF1eW1xaGEifQ.TdBTSHHPeT1pfLZ_6x_1vA" { + accessTokenWarningView.isHidden = false + } + + let camera = MGLMapCamera(lookingAtCenter: centerCoordinate, fromDistance: 100000, pitch: 60, heading: 0) + mapView.setCamera(camera, animated: false) + } + + /* + Add a gesture recognizer that will be used to handle user + interactions with the map. + */ + fileprivate func setupGestureHandling() { + let tapGestureRecognizer = UITapGestureRecognizer(target: self, action: #selector(didTapMap)) + mapView.addGestureRecognizer(tapGestureRecognizer) + } +} + +/* + Implementation of Mapbox map view delegate methods relevant to this application + */ +extension ViewController: MGLMapViewDelegate { + + /* + When the map has finished loading the style it's a great time + to do work like adding annotations. + */ + func mapView(_ mapView: MGLMapView, didFinishLoading style: MGLStyle) { + // This project's bundle contains a geojson file that represents the park boundary of Yosemite National Park in the USA + let url = URL(fileURLWithPath: Bundle.main.path(forResource: "yose", ofType: "geojson")!) + + // Create an instance of a structure to represent a polygon + // fill visualization that can be injeced into the map's style layers + var annotation = StyledAnnotation(identifier: annotationIdentifier, resource: url, type: .extrusion) + annotation.color = UIColor(red:1.00, green:0.95, blue:0.75, alpha:1.0) + annotation.opacity = 0.75 + annotation.transitionDuration = 0.35 + + // Inject the annotation below the label layer so some map labels + // are still visible + mapView.addStyledAnnotation(annotation, belowLayer: styleLabelLayer) + + // Alternatively, a more traditional annotation / marker API + let pointFeatureAnnotation = MGLPointFeature() + let offsetCoordinate = CLLocationCoordinate2D(latitude: centerCoordinate.latitude+0.1, longitude: centerCoordinate.longitude-0.01) + pointFeatureAnnotation.coordinate = offsetCoordinate + mapView.addAnnotation(pointFeatureAnnotation) + } + +} + +/* + An extention of the Mapbox map view class that offers a simplified + API for a small subset of the runtime styling APIs used in this application. + This could be extended. + */ +extension MGLMapView { + + func addStyledAnnotation(_ annotation: StyledAnnotation, belowLayer layerName: String) { + if let labelsLayer = self.style?.layer(withIdentifier: "mountain-peak-label") { + let source = addSource(for: annotation) + let layer = addLayer(for: annotation, source: source) + self.style?.insertLayer(layer, below: labelsLayer) + } + } + + func addStyledAnnotation(_ annotation: StyledAnnotation) { + let source = addSource(for: annotation) + let layer = addLayer(for: annotation, source: source) + self.style?.addLayer(layer) + } + + func addSource(for styledAnnotation: StyledAnnotation) -> MGLSource { + let source = MGLShapeSource(identifier: UUID().uuidString, url: styledAnnotation.resource, options: nil) + self.style?.addSource(source) + return source + } + + func addLayer(for styledAnnotation: StyledAnnotation, source: MGLSource) -> MGLStyleLayer { + switch styledAnnotation.type { + case .extrusion: + let layer = MGLFillExtrusionStyleLayer(identifier: styledAnnotation.identifier, source: source) + if let height = styledAnnotation.height { + layer.fillExtrusionHeight = MGLStyleValue(rawValue: NSNumber(floatLiteral: Double(height))) + } + if let color = styledAnnotation.color { + layer.fillExtrusionColor = MGLStyleValue(rawValue: color) + } + if let opacity = styledAnnotation.opacity { + layer.fillExtrusionOpacity = MGLStyleValue(rawValue: NSNumber(floatLiteral: Double(opacity))) + } + if let duration = styledAnnotation.transitionDuration { + layer.fillExtrusionHeightTransition = MGLTransitionMake(Double(duration), 0) + layer.fillExtrusionOpacityTransition = MGLTransitionMake(Double(duration), 0) + } + return layer + } + } + +} + +/* + A struct to represent a small subset of the annotations that + are possible to add to a Mapbox map. This could be extended. + */ +struct StyledAnnotation { + + enum StyledAnnotationType { + case extrusion + } + + init(identifier: String, resource: URL, type: StyledAnnotationType) { + self.identifier = identifier + self.resource = resource + self.type = type + } + + var identifier: String + var resource: URL + var type: StyledAnnotationType + + var height: Float? + var color: UIColor? + var opacity: Float? + var transitionDuration: Float? + +} diff --git a/platform/ios/scripts/script_resources/MapboxDemo/MapboxDemo/data/yose.geojson b/platform/ios/scripts/script_resources/MapboxDemo/MapboxDemo/data/yose.geojson new file mode 100644 index 000000000..f016ca240 --- /dev/null +++ b/platform/ios/scripts/script_resources/MapboxDemo/MapboxDemo/data/yose.geojson @@ -0,0 +1 @@ +{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[-119.6958770217986,37.60988100501796],[-119.69620637800108,37.61387534285646],[-119.70435119817648,37.61393205716475],[-119.70453536276064,37.62191732074585],[-119.704557157325,37.62286220578499],[-119.6961213772083,37.622814992565075],[-119.6960915703477,37.62908790725655],[-119.70450547277761,37.62916691269313],[-119.72302281936393,37.629338668491016],[-119.72293001552805,37.633494099311946],[-119.72285035772099,37.63706052504478],[-119.7227001306213,37.64395640546974],[-119.71378097003503,37.643931842828664],[-119.71377343578911,37.654746459710736],[-119.71588791979882,37.65479709633237],[-119.71603140668772,37.658633873853724],[-119.71812533680372,37.6586361820479],[-119.75904086620407,37.658673809697675],[-119.75912954388988,37.65990581751325],[-119.7592706531156,37.66186617717078],[-119.7595348185152,37.66553581485243],[-119.75969045987938,37.67006069189628],[-119.76000127225676,37.679095115226545],[-119.76002099100232,37.68770197359184],[-119.7616413475007,37.68774529276704],[-119.76179033137457,37.68964577744604],[-119.76304947996348,37.689620338084204],[-119.76306390615937,37.69036193031185],[-119.76543465166267,37.690301748467135],[-119.76553864898509,37.69676752627665],[-119.76658776406676,37.69677406406548],[-119.76673886408311,37.69847459930377],[-119.76980169921183,37.698560278906285],[-119.7699748860843,37.70229379304012],[-119.76376300116465,37.70232177843931],[-119.76384060022963,37.69872312254282],[-119.76002557215182,37.698565834152085],[-119.76002572551185,37.702454521562274],[-119.76002596388842,37.70849812625453],[-119.77823713483696,37.708478779575096],[-119.77815847630816,37.72352597717673],[-119.77807819456663,37.738382712190834],[-119.79667905250412,37.738414291399025],[-119.80635423548478,37.73848427008996],[-119.81500893103065,37.7385461945924],[-119.8246281899394,37.73831803599111],[-119.82463168804544,37.73831795287667],[-119.83428097684931,37.738088291413916],[-119.85283037293061,37.73906804026692],[-119.85280798193749,37.74244667711781],[-119.85273200945365,37.75390806503102],[-119.85267388601211,37.757479350593144],[-119.85267226979104,37.757578651321495],[-119.85255959721658,37.75839755836345],[-119.85247078881096,37.76064973746678],[-119.85695203161589,37.76068553285457],[-119.86142729649603,37.76072111044132],[-119.86143216972096,37.764394895449655],[-119.86143213104512,37.76452759207086],[-119.86143739552499,37.76833407350216],[-119.8613780913359,37.76878609452542],[-119.86137654829378,37.768965590030774],[-119.86139241572161,37.769231195114976],[-119.86146418101548,37.769534927021844],[-119.86150143219108,37.769842537204184],[-119.86154598649675,37.77165069990197],[-119.86152776515902,37.77220053536986],[-119.86152749156076,37.77275056094873],[-119.86154516628413,37.77330040755764],[-119.86152876344379,37.77352989699091],[-119.86150340990099,37.77375887277847],[-119.86146912992206,37.77398711501744],[-119.86142595634688,37.774214404507376],[-119.86136212126411,37.7744827579244],[-119.8612877837902,37.774749402408666],[-119.86120301598982,37.77501407906426],[-119.86119230446722,37.77506340606285],[-119.86118367165447,37.77511298919988],[-119.86117712716226,37.77516277329965],[-119.86117267827748,37.77521270296258],[-119.86117032995506,37.77526272262709],[-119.86117008481249,37.77531277663131],[-119.86117194312675,37.77536280927507],[-119.8611759028342,37.775412764881786],[-119.86118195953264,37.77546258786055],[-119.86119010648639,37.77551222276792],[-119.8612003346336,37.775561614369664],[-119.86121263259635,37.77561070770216],[-119.8612269866934,37.775659448133545],[-119.86124338095527,37.77570778142467],[-119.86126179714206,37.7757556537893],[-119.86128221476375,37.775803011954],[-119.86130461110294,37.77584980321751],[-119.86132896124005,37.775895975509314],[-119.8613552380812,37.77594147744754],[-119.86138073531171,37.77598197323246],[-119.86140794991,37.77602175860459],[-119.86143685050338,37.776060787695876],[-119.86146740377525,37.77609901551001],[-119.86149957450357,37.77613639797451],[-119.86153332560124,37.77617289199133],[-119.86156861815911,37.77620845548673],[-119.86160541149063,37.77624304745966],[-119.8616436631789,37.77627662802906],[-119.86168332912547,37.776309158479926],[-119.86172436360118,37.77634060130782],[-119.86176671929898,37.77637092026223],[-119.86181034738833,37.77640008038828],[-119.86185519757164,37.7764280480671],[-119.86190121814207,37.77645479105457],[-119.86194835604334,37.77648027851842],[-119.86199655693085,37.77650448107398],[-119.8620457652342,37.77652737081782],[-119.86209592422145,37.776548921360096],[-119.86214697606441,37.77656910785491],[-119.8621988619054,37.77658790702896],[-119.862251521925,37.77660529720841],[-119.862574847549,37.776691508354965],[-119.86290160745749,37.77676913540925],[-119.86323143998929,37.77683809245083],[-119.86356398007906,37.77689830315527],[-119.86366123581294,37.77690727614567],[-119.86375806322884,37.77691880386198],[-119.86385435584047,37.77693287362648],[-119.86395000774954,37.77694946996593],[-119.86404491376203,37.776968574628434],[-119.86413896950415,37.77699016660355],[-119.8642320715369,37.77701422214537],[-119.86432411746982,37.777040714798645],[-119.86441500607356,37.77706961542787],[-119.86450463739132,37.77710089224934],[-119.86459291284852,37.77713451086599],[-119.86467973536145,37.77717043430541],[-119.86476500944374,37.777208623060275],[-119.86484864131164,37.77724903513193],[-119.8649305389869,37.77729162607652],[-119.86501061239811,37.77733634905388],[-119.86505543814066,37.777367295249974],[-119.86509892655727,37.77739942115891],[-119.86514102839041,37.77743269039434],[-119.86518169595293,37.777467065274855],[-119.86522088318182,37.77750250686674],[-119.86525854569062,37.77753897502804],[-119.86529464081966,37.777576428454054],[-119.86532912768419,37.77761482472401],[-119.86536196722095,37.777654120349304],[-119.86539312223233,37.77769427082249],[-119.8654225574284,37.77773523066791],[-119.86545023946707,37.777776953493074],[-119.86547613699166,37.777819392041295],[-119.86550022066668,37.77786249824506],[-119.8655224632108,37.77790622328064],[-119.86554283942797,37.777950517623275],[-119.86556132623586,37.777995331103284],[-119.86557790269204,37.77804061296296],[-119.86559255001775,37.77808631191391],[-119.86560525161916,37.77813237619527],[-119.8656159931061,37.77817875363234],[-119.86562476230857,37.77822539169551],[-119.86563154929037,37.77827223756002],[-119.86563634636039,37.77831923816548],[-119.86591562891591,37.779462248231596],[-119.86593683248155,37.77951125264185],[-119.86596018508007,37.77955963768106],[-119.86598565807142,37.77960734400041],[-119.8660132202146,37.77965431308345],[-119.86604283770579,37.77970048731793],[-119.86607447421991,37.779745810066515],[-119.8661080909552,37.779790225736114],[-119.8661436466806,37.77983367984619],[-119.8661810977865,37.779876119095604],[-119.86622039833826,37.77991749142792],[-119.8662615001323,37.779957746095334],[-119.86630435275544,37.77999683372091],[-119.86634890364667,37.780034706359096],[-119.86639509816158,37.780071317554665],[-119.86644287963942,37.780106622399586],[-119.86649218947258,37.78014057758815],[-119.86654296717848,37.78017314147018],[-119.86659515047377,37.78020427410195],[-119.86664867535072,37.78023393729537],[-119.86670347615572,37.78026209466474],[-119.86675948566989,37.78028871167142],[-119.86681663519143,37.78031375566612],[-119.86687485461998,37.78033719592911],[-119.86693407254262,37.78035900370778],[-119.86699421632133,37.78037915225197],[-119.86705521218236,37.78039761684674],[-119.8671169853065,37.780414374842785],[-119.86722773933617,37.78044783816142],[-119.86733694929987,37.780484358773805],[-119.86744448127611,37.780523891896316],[-119.86755020340043,37.780566389051195],[-119.86765398602707,37.78061179812592],[-119.86775570188794,37.7806600634371],[-119.86785522624857,37.78071112579878],[-119.86795243706118,37.780764922594884],[-119.86804721511416,37.78082138785613],[-119.86813944417837,37.780880452340774],[-119.86822901114965,37.78094204361958],[-119.86831580618747,37.7810060861646],[-119.86839972284957,37.78107250144173],[-119.86846958230811,37.781137062451016],[-119.86853667135094,37.78120344866079],[-119.86860091432348,37.78127158521643],[-119.86866223877969,37.78134139528952],[-119.86872057556378,37.78141280016442],[-119.86877585888817,37.78148571932699],[-119.86882802640775,37.781560070555386],[-119.8688770192901,37.7816357700128],[-119.86892278228204,37.781712732341866],[-119.86896526377177,37.78179087076107],[-119.86900441584724,37.78187009716235],[-119.86904019435023,37.78195032221065],[-119.86907255892602,37.78203145544456],[-119.86910147306915,37.78211340537829],[-119.86912690416445,37.78219607960484],[-119.86914023058777,37.782245304102034],[-119.8691557157695,37.782294129015966],[-119.86917334080594,37.78234249473003],[-119.86919308418054,37.782390342188116],[-119.86921492179003,37.782437612966866],[-119.86923882697384,37.78248424934689],[-119.8692647705467,37.782530194383426],[-119.86929272083417,37.78257539197566],[-119.86932264371136,37.782619786935385],[-119.86935450264457,37.782663325054344],[-119.86938825873588,37.78270595317041],[-119.86942387077065,37.78274761923256],[-119.8694612952678,37.782788272364364],[-119.86950048653291,37.78282786292617],[-119.86954139671406,37.78286634257571],[-119.86958397586018,37.78290366432709],[-119.86962817198201,37.78293978260826],[-119.86967393111571,37.78297465331657],[-119.8697211973886,37.78300823387273],[-119.86976991308748,37.78304048327266],[-119.86982001872911,37.78307136213777],[-119.86987145313273,37.78310083276281],[-119.86992415349489,37.78312885916216],[-119.86997805546612,37.7831554071136],[-119.8700330932294,37.783180444200134],[-119.8704566902497,37.783369592387636],[-119.87088719754918,37.78354864515846],[-119.8710913097609,37.783669378516535],[-119.87128993275908,37.78379574753],[-119.87148281961923,37.783927595117],[-119.87166973054319,37.78406475738474],[-119.87185043315742,37.78420706383313],[-119.87202470280174,37.78435433756661],[-119.8721923228087,37.78450639551388],[-119.87235308477297,37.78466304865547],[-119.87382098567396,37.7858865329194],[-119.87416722094682,37.786195271400395],[-119.87450288280357,37.786511279697066],[-119.87482772889153,37.78683432977407],[-119.87544823563206,37.787487524905764],[-119.87605173858292,37.788150681288116],[-119.87609753335855,37.788192631448446],[-119.87614150644215,37.78823579173508],[-119.87618360709358,37.7882801123489],[-119.87622378673292,37.78832554215187],[-119.87626199899643,37.78837202872611],[-119.8762981997902,37.78841951843424],[-119.87633234734086,37.78846795648139],[-119.87636440224401,37.78851728697837],[-119.87639432750952,37.788567453006124],[-119.87642208860422,37.7886183966814],[-119.87644765349198,37.7886700592236],[-119.8764709926704,37.788722381022524],[-119.87649207920515,37.788775301707176],[-119.87651088876078,37.78882876021539],[-119.87652739962907,37.78888269486433],[-119.87654159275395,37.78893704342164],[-119.87655345175361,37.78899174317725],[-119.87656296293933,37.78904673101567],[-119.87657011533136,37.789101943488916],[-119.8765749006716,37.78915731688964],[-119.87657731343313,37.78921278732472],[-119.87657735082664,37.789268290788876],[-119.87657501280363,37.789323763238535],[-119.87657030205659,37.78937914066588],[-119.8765632240158,37.7894343591725],[-119.87655378684313,37.789489355043294],[-119.87654200142272,37.78954406481986],[-119.87652788134832,37.789598425373754],[-119.87651144290768,37.789652373979436],[-119.87649270506382,37.789705848386504],[-119.87646339803167,37.78975257721216],[-119.8764320730343,37.78979847413335],[-119.87639876751133,37.789843484288724],[-119.87636352127001,37.78988755387668],[-119.87632637643758,37.78993063021986],[-119.87628737741088,37.789972661828074],[-119.87624657080343,37.790013598459794],[-119.8762040053896,37.790053391182354],[-119.87615973204636,37.790091992430234],[-119.8761138036925,37.790129356062174],[-119.8760662752253,37.7901654374161],[-119.87601720345496,37.79020019336273],[-119.87596664703678,37.79023358235693],[-119.87591466640086,37.790265564487534],[-119.87586132368003,37.79029610152502],[-119.87580668263551,37.79032515696717],[-119.87575080858065,37.79035269608274],[-119.87569376830292,37.790378685953016],[-119.87563562998413,37.79040309551106],[-119.87557646311872,37.79042589557899],[-119.87551633843087,37.79044705890279],[-119.87545532778987,37.79046656018486],[-119.8753935041242,37.79048437611434],[-119.87533094133437,37.79050048539497],[-119.87526771420458,37.79051486877045],[-119.87520389831323,37.79052750904757],[-119.87513956994269,37.79053839111674],[-119.87507480598799,37.79054750197002],[-119.87500968386493,37.7905548307167],[-119.87494428141754,37.790560368596374],[-119.87487867682503,37.79056410898926],[-119.87481294850822,37.79056604742427],[-119.87474717503592,37.7905661815843],[-119.8746647974209,37.790561185834946],[-119.87458225323917,37.790558418722284],[-119.87449963819873,37.790557883454696],[-119.87441704808967,37.79055958065282],[-119.87433457867321,37.790563508348804],[-119.87425232557065,37.79056966198854],[-119.87417038415258,37.790578034437054],[-119.8740888494282,37.790588615986664],[-119.87400781593537,37.79060139436831],[-119.87392737763079,37.79061635476574],[-119.87384762778134,37.79063347983267],[-119.87376865885578,37.790652749712926],[-119.87369056241755,37.790674142063466],[-119.87361342901877,37.79069763208025],[-119.87353734809514,37.79072319252704],[-119.87346240786229,37.790750793766875],[-119.87338869521354,37.79078040379655],[-119.87333959509729,37.79080677882827],[-119.87329165629617,37.79083446661785],[-119.87324493451872,37.79086343499074],[-119.87319948405941,37.79089365028421],[-119.87315535773557,37.790925077386525],[-119.87311260682603,37.79095767977777],[-119.87307128101148,37.79099141957213],[-119.87303142831679,37.79102625756208],[-119.87299309505518,37.791062153263915],[-119.87295632577435,37.79109906496466],[-119.87292116320484,37.791136949770674],[-119.8728876482102,37.79117576365745],[-119.87285581973961,37.79121546152074],[-119.87282571478259,37.79125599722898],[-119.872797368326,37.79129732367692],[-119.87277081331334,37.791339392840364],[-119.87274608060649,37.79138215583188],[-119.87272319894988,37.79142556295772],[-119.872702194937,37.79146956377551],[-119.87268309297947,37.79151410715286],[-119.87266591527873,37.79155914132683],[-119.87265068180021,37.79160461396397],[-119.87263741025008,37.79165047222127],[-119.87262611605465,37.791696662807475],[-119.87261681234249,37.79174313204504],[-119.87260950992908,37.791789825932504],[-119.87260421730429,37.79183669020724],[-119.87260087438678,37.79188457978418],[-119.87259958471014,37.79193253186043],[-119.87260034976899,37.79198049101406],[-119.87260316868304,37.79202840181481],[-119.87260803819821,37.79207620888823],[-119.87261495269036,37.79212385697963],[-119.87262390417169,37.79217129101798],[-119.8726348823001,37.79221845617954],[-119.87264787439102,37.792265297951225],[-119.87266286543208,37.79231176219364],[-119.87267983810038,37.79235779520359],[-119.87269877278266,37.7924033437763],[-119.87271964759779,37.792448355266686],[-119.87274243842214,37.792492777650374],[-119.87276711891732,37.79253655958385],[-119.87279366056086,37.79257965046366],[-119.87282203267887,37.792622000485046],[-119.87285220248167,37.79266356069943],[-119.87288413510164,37.79270428307102],[-119.87291779363346,37.79274412053233],[-119.87295313917681,37.792783027038624],[-119.87299013088129,37.79282095762108],[-119.87302872599365,37.7928578684388],[-119.87306887990721,37.7928937168295],[-119.87311054621333,37.7929284613588],[-119.8731536767552,37.79296206186812],[-119.87319822168328,37.79299447952115],[-119.87324412951321,37.793025676848636],[-119.87334954048531,37.79309517302963],[-119.87345184264349,37.793167535824416],[-119.8735509122535,37.79324267771684],[-119.8736466294895,37.79332050782934],[-119.87373887857889,37.79340093203294],[-119.87382754794254,37.79348385306099],[-119.87391253032955,37.793569170626846],[-119.87399372294703,37.79365678154506],[-119.87407102758463,37.793746579856176],[-119.87414435073308,37.793838456954845],[-119.87421360369751,37.793932301721185],[-119.8742787027048,37.79402800065508],[-119.87431244781075,37.79409885578734],[-119.87434306877417,37.794170598932176],[-119.87437052857527,37.79424314337561],[-119.8743947940147,37.794316401434926],[-119.87441583575387,37.79439028456459],[-119.87443362835033,37.79446470346333],[-119.87444815028861,37.79453956818201],[-119.87445938400627,37.79461478823234],[-119.87446731591518,37.79469027269634],[-119.87447193641802,37.7947659303361],[-119.87447323991978,37.79484166970417],[-119.87447122483483,37.794917399254],[-119.87446589358863,37.79499302745064],[-119.87445725261506,37.79506846288136],[-119.87444531234847,37.7951436143662],[-119.87443008721138,37.79521839106808],[-119.87441159559681,37.795292702602715],[-119.87438985984632,37.795366459147736],[-119.87436490622295,37.79543957155141],[-119.87434643775751,37.79552159824347],[-119.87433150486997,37.795604076968594],[-119.87432012494077,37.79568691179473],[-119.87431231121803,37.795770006375214],[-119.87430807280202,37.79585326406102],[-119.87430741463454,37.79593658801306],[-119.8743103374932,37.79601988131484],[-119.8743168379904,37.796103047085246],[-119.87432690857713,37.796185988591105],[-119.87434053755184,37.79626860935981],[-119.87435770907393,37.796350813291525],[-119.87437840318205,37.796432504770884],[-119.87440259581743,37.796513588778325],[-119.87443025885166,37.79659397100053],[-119.87446136011945,37.79667355794017],[-119.87449586345588,37.79675225702468],[-119.8745337287386,37.79682997671391],[-119.8745749119343,37.7969066266066],[-119.87461936514991,37.796982117545646],[-119.8747009642482,37.79708636382616],[-119.87477799170648,37.797192777721236],[-119.87485035616217,37.79730123304025],[-119.87491797178123,37.797411601171255],[-119.87498075835988,37.79752375123333],[-119.87503864141986,37.79763755023194],[-119.87509155229687,37.7977528632165],[-119.87513942822206,37.797869553440364],[-119.87518221239655,37.797987482523084],[-119.8752198540589,37.79810651061438],[-119.87525230854546,37.798226496560005],[-119.87527953734335,37.798347298069196],[-119.87530150813637,37.79846877188322],[-119.87531819484333,37.798590773945456],[-119.87532957764917,37.79871315957206],[-119.87533564302856,37.798835783623645],[-119.87532308694024,37.79896477800143],[-119.87530512265532,37.79909336891372],[-119.87528177008444,37.79922141363702],[-119.87525305511897,37.799348770053335],[-119.87521900960266,37.799475296807856],[-119.87517967129614,37.79960085346598],[-119.87513508383537,37.799725300669095],[-119.87508529668311,37.79984850028931],[-119.87503036507428,37.79997031558283],[-119.87497034995471,37.80009061134167],[-119.87490531791354,37.80020925404387],[-119.87476059049254,37.80042601770702],[-119.87462502661396,37.80064648009661],[-119.8744987762895,37.80087039738768],[-119.87438197923416,37.80109752193208],[-119.87427476471143,37.80132760253229],[-119.87417725139002,37.801560384719075],[-119.87408954721234,37.801795611032816],[-119.87386314059938,37.80247323292051],[-119.87365705253849,37.8031549251357],[-119.87362811570429,37.80323633133803],[-119.87359561842666,37.80331688732305],[-119.8735596002294,37.803396495088435],[-119.87352010492029,37.80347505778509],[-119.87347718053765,37.80355247983505],[-119.87343087929204,37.80362866704779],[-119.87338125750286,37.80370352673471],[-119.87332837552965,37.80377696782205],[-119.87327229769896,37.80384890096163],[-119.87321309222597,37.80391923863959],[-119.87316252858128,37.80397157909476],[-119.87311422652543,37.80402524739931],[-119.87306824140823,37.8040801820597],[-119.87302462592501,37.80413632013125],[-119.87298343005635,37.80419359729031],[-119.8729447010107,37.80425194790783],[-119.87290848317029,37.80431130512468],[-119.87287481804036,37.804371600928135],[-119.87284374420139,37.80443276622989],[-119.872815297265,37.8044947309452],[-119.87278950983313,37.80455742407312],[-119.87276641146059,37.8046207737779],[-119.87274602862117,37.804684707471274],[-119.87272838467732,37.804749151895635],[-119.87271349985336,37.80481403320805],[-119.87270139121216,37.80487927706464],[-119.87269207263573,37.80494480870606],[-119.87268555480912,37.80501055304291],[-119.87268184520825,37.80507643474195],[-119.87268094809127,37.80514237831231],[-119.87268286449364,37.80520830819198],[-119.87268759222688,37.80527414883454],[-119.87269512588115,37.80533982479555],[-119.87270545683134,37.8054052608191],[-119.87271857324687,37.80547038192403],[-119.87273446010532,37.805535113489825],[-119.87275309920949,37.80559938134215],[-119.87278988230669,37.80570913085251],[-119.87283129295582,37.80581783766552],[-119.87287728440113,37.80592537899016],[-119.87292780471198,37.80603163335122],[-119.87298279684131,37.80613648072684],[-119.87304219869013,37.80623980268391],[-119.87310594317736,37.80634148251187],[-119.87317395831586,37.80644140535467],[-119.87319645367963,37.80649132913115],[-119.87321677029388,37.80654183755894],[-119.87323488408565,37.80659287080205],[-119.87325077359144,37.806644368402786],[-119.87326441998263,37.806696269353075],[-119.87327580708796,37.80674851216692],[-119.87328492141255,37.806801034953224],[-119.87329175215392,37.806853775489095],[-119.87329629121496,37.80690667129349],[-119.87329853321336,37.80695965970129],[-119.87329847548816,37.807012677937614],[-119.87329611810277,37.80706566319202],[-119.87329146384513,37.80711855269306],[-119.87328451822417,37.80717128378258],[-119.87327528946352,37.80722379398998],[-119.87326378849174,37.80727602110616],[-119.8732500289293,37.80732790325733],[-119.87323402707258,37.80737937897822],[-119.87321580187451,37.80743038728494],[-119.87319537492222,37.80748086774724],[-119.87317277041139,37.80753076056008],[-119.87314801511761,37.80758000661452],[-119.87312113836481,37.8076285475677],[-119.8730921719904,37.807676325912034],[-119.87306115030754,37.80772328504326],[-119.87302811006468,37.8077693693276],[-119.8729930904019,37.8078145241676],[-119.87295613280457,37.807858696066894],[-119.8729172810542,37.807901832693474],[-119.87287658117667,37.80794388294183],[-119.87283408138761,37.8079847969934],[-119.87278983203531,37.80802452637567],[-119.87274388554115,37.80806302401954],[-119.8726962963374,37.80810024431514],[-119.87263714442308,37.80814653062297],[-119.87258006480769,37.80819442679407],[-119.87252512705483,37.80824387446022],[-119.87247239811835,37.808294813362295],[-119.8724219422607,37.80834718142385],[-119.87237382097466,37.80840091482662],[-119.8723280929084,37.808455948088316],[-119.87228481379394,37.80851221414247],[-119.87224403637923,37.808569644420125],[-119.8722058103639,37.80862816893331],[-119.87217018233856,37.808687716360446],[-119.87213719572813,37.80874821413317],[-119.87210689073882,37.80880958852481],[-119.87207930430911,37.80887176474019],[-119.87205447006468,37.8089346670068],[-119.87203241827754,37.80899821866711],[-119.87201317582887,37.809062342271986],[-119.8719967661764,37.80912695967512],[-119.87198320932579,37.809191992128156],[-119.87197252180614,37.80925736037676],[-119.87196471664981,37.809322984757166],[-119.8719598033766,37.80938878529321],[-119.87195778798194,37.80945468179388],[-119.87195867292978,37.80952059395102],[-119.87196245714934,37.8095864414371],[-119.87196913603641,37.80965214400327],[-119.87191317362615,37.80965372038993],[-119.85969723192136,37.80999719016264],[-119.85971399078119,37.813599348698155],[-119.85517017579467,37.81365043092331],[-119.85513048422938,37.818220058676864],[-119.84548070593988,37.81821408470569],[-119.84549774623429,37.818631102164815],[-119.84548039599905,37.81863109405307],[-119.8454725140837,37.82923683755527],[-119.84547001130208,37.83260389071595],[-119.83114880524018,37.83282666373982],[-119.82680997341869,37.832893812947],[-119.82687032936859,37.847634677276],[-119.82694050493264,37.862420509337895],[-119.82693049328714,37.86601588121162],[-119.82693049306761,37.86601596004159],[-119.82700064026143,37.876872832908035],[-119.82703271998157,37.885230512270205],[-119.82704653701607,37.888829657909795],[-119.82706033611822,37.89242378108221],[-119.84674289655918,37.89214556738538],[-119.86523214752445,37.89197536149072],[-119.88354341362906,37.8917934430759],[-119.88495332336727,37.89177160682513],[-119.88510254551822,37.906651293465885],[-119.8852537527654,37.921241335386775],[-119.88540242028614,37.93593615381663],[-119.88554225691709,37.950448458223214],[-119.885702578222,37.96526481128146],[-119.88584354717649,37.97937814516028],[-119.88578342447175,37.98371924221693],[-119.88590849115705,37.98403465448162],[-119.88602011781185,37.984353210252536],[-119.88611817858005,37.984674550862756],[-119.88620256287504,37.98499831450526],[-119.88627317550504,37.985324136640216],[-119.88632993678107,37.985651650405245],[-119.88637278260734,37.98598048702851],[-119.88640166455447,37.986310276243856],[-119.8864165499146,37.98664064670762],[-119.88641742173921,37.986971226416806],[-119.88636215256453,37.98726923529914],[-119.8863194903144,37.98756853889303],[-119.88628948274679,37.98786880321932],[-119.8862721635001,37.98816969322282],[-119.88626755205529,37.98847087314614],[-119.8862756537132,37.98877200690438],[-119.88629645958815,37.98907275846008],[-119.88630690834863,37.989225678600995],[-119.88631063756479,37.98937879372253],[-119.88630764269196,37.989531918937715],[-119.8862979273048,37.98968486934624],[-119.88628150309322,37.98983746025776],[-119.88625838984849,37.989989507414926],[-119.88622861543949,37.99014082721587],[-119.88619221577937,37.990291236935875],[-119.88614923478222,37.990440554948165],[-119.8860997243103,37.99058860094315],[-119.88604374411169,37.990735196146204],[-119.88598136174814,37.9908801635336],[-119.88591265251374,37.991023328046296],[-119.88583769934425,37.99116451680132],[-119.88575659271699,37.99130355930072],[-119.88566943054171,37.99144028763732],[-119.88557631804261,37.991574536697634],[-119.88547736763134,37.99170614436131],[-119.88537269877129,37.99183495169689],[-119.88451863820417,37.99280056732326],[-119.88362193496373,37.993741666756684],[-119.88268371039861,37.99465707146411],[-119.88170513798553,37.995545635047506],[-119.88068744186359,37.99640624468318],[-119.8796318953042,37.99723782251903],[-119.87902961667925,37.997677084461785],[-119.87844434032131,37.9981305131124],[-119.87787659834814,37.998597696466504],[-119.87732690697426,37.999078210013884],[-119.87679576604175,37.999571617123536],[-119.87628365856536,38.00007746943959],[-119.8762331122638,38.00012350770088],[-119.87618462293462,38.000170911098564],[-119.8761382494184,38.00021962211374],[-119.87609404798874,38.0002695816406],[-119.87605207228404,38.00032072905838],[-119.87601237324222,38.000373002304734],[-119.87597499903907,38.00042633795118],[-119.87593999502971,38.00048067127991],[-119.87590740369356,38.00053593636245],[-119.87587726458267,38.00059206613951],[-119.87584961427387,38.00064899250248],[-119.87582448632426,38.00070664637596],[-119.87580191123051,38.00076495780164],[-119.87578191639173,38.00082385602316],[-119.87576452607635,38.000883269571986],[-119.87574976139256,38.000943126354045],[-119.87573764026264,38.00100335373731],[-119.87572817740124,38.001063878639854],[-119.87572138429749,38.0011246276186],[-119.87571726920096,38.00118552695831],[-119.87571583711168,38.001246502761184],[-119.87571708977407,38.00130748103643],[-119.87572102567468,38.00136838779009],[-119.87572764004413,38.0014291491148],[-119.87573692486276,38.00148969127947],[-119.87574886887039,38.001549940818826],[-119.87576345757988,38.00160982462248],[-119.87578067329478,38.00166927002367],[-119.87580049513072,38.00172820488743],[-119.8758228990407,38.0017865576982],[-119.87584785784429,38.001844257646496],[-119.87587534126054,38.00190123471498],[-119.87590531594472,38.001957419763244],[-119.8759377455288,38.00201274461192],[-119.8759725906655,38.002067142125284],[-119.87600980907598,38.0021205462928],[-119.87604935560128,38.00217289230912],[-119.87609118225691,38.00222411665294],[-119.87613523829118,38.002274157163875],[-119.87618147024675,38.00232295311803],[-119.87622982202545,38.002370445301636],[-119.87685431515403,38.003152236611356],[-119.8774452913689,38.003950177399965],[-119.87800208336219,38.004763368130526],[-119.87852406229955,38.00559089204514],[-119.87901063853299,38.00643181619678],[-119.87946126227013,38.007285192499666],[-119.87987542419835,38.00815005879662],[-119.8799441778298,38.00841649103679],[-119.8800017673978,38.008684575271175],[-119.88004812988666,38.00895401872212],[-119.88008321454014,38.00922452712436],[-119.88010698291733,38.00949580504649],[-119.88011940893523,38.009767556213426],[-119.8801204788978,38.01003948383006],[-119.88011019151132,38.01031129090536],[-119.88008855788655,38.01058268057671],[-119.88005560152705,38.010853356434225],[-119.88001135830393,38.01112302284441],[-119.87995587641741,38.011391385273136],[-119.87992602228985,38.01187450549371],[-119.87991590759414,38.01235813650745],[-119.87992554327299,38.01284177358599],[-119.879954919657,38.013324911984895],[-119.88000400647307,38.01380704747048],[-119.88007275287455,38.014287676846095],[-119.88016108749252,38.01476629847745],[-119.88026891850886,38.01524241281618],[-119.88028824837437,38.01532812466392],[-119.88030390812335,38.015414304111594],[-119.88031587987464,38.015500852825234],[-119.88032414995502,38.015587672049136],[-119.88032870891493,38.01567466271867],[-119.88032955153928,38.015761725573185],[-119.88032667685347,38.01584876126932],[-119.88032008812459,38.015935670494386],[-119.88030979285773,38.016022354079645],[-119.88029580278747,38.01610871311348],[-119.88027813386454,38.0161946490543],[-119.88025680623771,38.016280063842885],[-119.88023184423083,38.01636486001447],[-119.88020327631516,38.016448940809745],[-119.88017113507688,38.016532210285426],[-119.88013545718,38.0166145734237],[-119.88009628332458,38.01669593624065],[-119.88005365820035,38.01677620589353],[-119.88000763043566,38.016855290786665],[-119.87995825254221,38.01693310067605],[-119.87990558085497,38.017009546772314],[-119.8798496754681,38.01708454184207],[-119.87979060016633,38.017158000307404],[-119.87972842235223,38.01722983834364],[-119.87966321296929,38.01729997397493],[-119.87959504642106,38.01736832716789],[-119.879194788172,38.01797619710426],[-119.87877000464661,38.018573560982595],[-119.87832113542952,38.019159799802324],[-119.87784864509642,38.019734306076586],[-119.87772619408517,38.01994604705031],[-119.8776130076153,38.02016099008593],[-119.8775092193146,38.02037888157574],[-119.87741495172554,38.020599464430994],[-119.87733031616011,38.02082247838518],[-119.87725541256839,38.021047660300944],[-119.87719032941995,38.021274744480586],[-119.87713514359936,38.021503462979496],[-119.8770899203148,38.021733545922174],[-119.8770547130209,38.02196472182072],[-119.87702956335502,38.02219671789508],[-119.87701450108788,38.02242926039489],[-119.87700954408793,38.02266207492247],[-119.87701469829973,38.02289488675666],[-119.87702995773657,38.02312742117689],[-119.8770553044871,38.023359403787396],[-119.87709070873592,38.02359056084109],[-119.87713612879847,38.02382061956249],[-119.8771915111696,38.02404930846977],[-119.87725679058644,38.02427635769506],[-119.8773318901049,38.02450149930298],[-119.87741672119004,38.02472446760694],[-119.87751118382029,38.024944999482656],[-119.87761516660491,38.02516283467882],[-119.87772854691521,38.0253777161242],[-119.87786371028676,38.025693721425554],[-119.87801173678986,38.02600609956364],[-119.87817247138449,38.02631452301928],[-119.87834574570037,38.02661866841569],[-119.87853137821293,38.02691821685767],[-119.87872917443295,38.02721285426609],[-119.87893892711021,38.02750227170748],[-119.87916041645009,38.027786165718105],[-119.87939341034378,38.0280642386223],[-119.87963766461114,38.028336198844855],[-119.87968092388493,38.02838195156408],[-119.87972217191894,38.02842885205558],[-119.87976136007975,38.02847684502572],[-119.87979844216207,38.02852587389276],[-119.87983337444342,38.02857588085359],[-119.87986611573552,38.02862680695185],[-119.879896627433,38.02867859214743],[-119.87992487355886,38.028731175387215],[-119.87995082080687,38.028784494677154],[-119.87997443858099,38.02883848715524],[-119.87999569903127,38.02889308916567],[-119.88001457708694,38.02894823633387],[-119.88003105048575,38.0290038636424],[-119.88004509980045,38.02905990550764],[-119.88005670846155,38.02911629585696],[-119.880065862777,38.02917296820686],[-119.88007255194827,38.029229855741114],[-119.88007676808324,38.029286891389695],[-119.88007850620532,38.029344007907774],[-119.88007776425955,38.02940113795502],[-119.88007454311496,38.02945821417503],[-119.88006884656357,38.02951516927469],[-119.88006068131594,38.02957193610352],[-119.8800500569933,38.0296284477329],[-119.88003698611624,38.02968463753491],[-119.88002148409,38.02974043926091],[-119.88000356918627,38.029795787119724],[-119.87998326252166,38.02985061585506],[-119.87996058803297,38.02990486082263],[-119.87993557244883,38.02995845806623],[-119.87990824525824,38.03001134439319],[-119.87987863867586,38.030063457448925],[-119.87984678760414,38.03011473579048],[-119.87981272959199,38.030165118958806],[-119.87977650479063,38.03021454755032],[-119.87973815590627,38.03026296328671],[-119.87969772814982,38.03031030908375],[-119.87965526918346,38.030356529118684],[-119.87656414750204,38.03332808157589],[-119.87359758053879,38.03637809748194],[-119.87296468061278,38.03716425899176],[-119.87236486494746,38.03796648465918],[-119.87179878570437,38.03878390369077],[-119.87126705848732,38.039615628772665],[-119.87077026167033,38.04046075703202],[-119.87030893576565,38.041318371015706],[-119.86988358283261,38.04218753968486],[-119.86949466592806,38.04306731942428],[-119.86914260859854,38.0439567550656],[-119.86856926533896,38.045271151909525],[-119.86794582458688,38.04657120961735],[-119.86789783935212,38.04667191193902],[-119.8678542770467,38.04677386377218],[-119.86781518957993,38.04687694367291],[-119.86778062353133,38.04698102885301],[-119.86775062009507,38.04708599532628],[-119.86772521503084,38.047191718056204],[-119.86770443862115,38.047298071104905],[-119.86768831563514,38.0474049277831],[-119.86767686529898,38.04751216080108],[-119.86767010127295,38.04761964242024],[-119.86766803163498,38.04772724460533],[-119.86767065887096,38.04783483917691],[-119.8676779798717,38.047942297964056],[-119.86768998593651,38.04804949295706],[-119.86770666278349,38.048156296459915],[-119.86772799056642,38.048262581242426],[-119.86775394389835,38.04836822069179],[-119.86778449188168,38.04847308896345],[-119.86781959814499,38.04857706113097],[-119.86785922088609,38.04868001333495],[-119.86790331292201,38.0487818229305],[-119.86795182174481,38.04888236863344],[-119.8680046895843,38.04898153066471],[-119.86806185347665,38.049079190893174],[-119.86812324533939,38.049175232976346],[-119.86818879205245,38.049269542498976],[-119.8682584155451,38.04936200710936],[-119.86833203288907,38.04945251665329],[-119.86871632117472,38.049704144284384],[-119.86908974564442,38.049965801385554],[-119.86945188782903,38.050237194817306],[-119.86980234188582,38.05051802052914],[-119.87014071505314,38.05080796389973],[-119.87046662809071,38.051106700089264],[-119.87077971570477,38.05141389440288],[-119.87107962695752,38.05172920266531],[-119.87136602566078,38.05205227160626],[-119.87163859075298,38.05238273925576],[-119.87189701665959,38.05272023534947],[-119.87195659957035,38.0528079053107],[-119.87201238144574,38.05289712530074],[-119.87206429787064,38.05298779231326],[-119.872112288892,38.053079801670954],[-119.87215629908812,38.05317304714639],[-119.87219627763265,38.05326742108455],[-119.87223217835341,38.05336281452718],[-119.87226395978573,38.053459117338605],[-119.87229158522028,38.05355621833274],[-119.87231502274574,38.05365400540162],[-119.87233424528556,38.053752365644655],[-119.87234923062935,38.05385118549908],[-119.87235996145851,38.05395035087104],[-119.87236642536651,38.05404974726735],[-119.87236861487305,38.05414925992751],[-119.87236652743297,38.05424877395649],[-119.87236016543912,38.05434817445711],[-119.87234953621974,38.05444734666288],[-119.87233465203019,38.0545461760704],[-119.87231553003865,38.05464454857162],[-119.87229219230652,38.054742350585634],[-119.87226466576304,38.05483946918975],[-119.87223298217421,38.05493579224987],[-119.87219717810623,38.05503120855006],[-119.87215729488328,38.0551256079209],[-119.87211337853994,38.05521888136678],[-119.8720654797681,38.05531092119161],[-119.8720136538585,38.05540162112336],[-119.8719579606369,38.055490876436664],[-119.87189846439507,38.05557858407383],[-119.87183523381667,38.05566464276375],[-119.87176834189789,38.055748953139016],[-119.87169786586334,38.05583141785049],[-119.87058482599917,38.05793877572646],[-119.86954151384195,38.060068328033225],[-119.86856864228415,38.0622186319619],[-119.86829888289569,38.062806658173805],[-119.86800335654918,38.06338689146929],[-119.86768242196192,38.063958626369015],[-119.86733646877056,38.064521167710566],[-119.86702791962617,38.06509582798886],[-119.86673897426682,38.065676824106205],[-119.86646984102586,38.06626373808723],[-119.86639485478887,38.06641717652404],[-119.86631319663665,38.06656847141032],[-119.86622496436011,38.066717441485636],[-119.86613026362838,38.06686390827374],[-119.86602920786207,38.06700769629644],[-119.86592191809785,38.06714863328396],[-119.86580852284331,38.0672865503813],[-119.86568915792331,38.06742128235066],[-119.86556396631725,38.067552667769405],[-119.8654330979879,38.067680549223724],[-119.86529670970182,38.06780477349694],[-119.8651549648416,38.067925191753496],[-119.86500803321009,38.06804165971714],[-119.86485609082716,38.06815403784394],[-119.8646993197187,38.06826219148949],[-119.8645379076986,38.06836599107031],[-119.86437204814366,38.06846531221925],[-119.86420193976197,38.068560035934446],[-119.86402778635477,38.06865004872202],[-119.86384979657218,38.06873524273215],[-119.86366818366322,38.06881551588837],[-119.86348316522017,38.06889077200978],[-119.86329496291786,38.068960920926564],[-119.86310380224788,38.069025878587944],[-119.86290991224836,38.06908556716296],[-119.86271352522944,38.06913991513381],[-119.86251487649479,38.06918885738152],[-119.86231420405947,38.06923233526414],[-119.86211174836477,38.06927029668685],[-119.86190775198978,38.06930269616463],[-119.8617024593607,38.06932949487661],[-119.8614961164578,38.06935066071267],[-119.86128897052049,38.069366168312044],[-119.86108126975094,38.06937599909353],[-119.8608732630165,38.06938014127796],[-119.86066519955129,38.06937858990211],[-119.86045732865756,38.069371346824866],[-119.86024989940655,38.06935842072488],[-119.85998582855906,38.06934198683563],[-119.8597211940935,38.069332831361905],[-119.8594563168757,38.06933096540462],[-119.8591915180656,38.06933639122626],[-119.85892711872813,38.06934910224805],[-119.8586634394442,38.06936908305798],[-119.85840079992236,38.06939630942942],[-119.8581395186113,38.069430748350605],[-119.8578799123141,38.06947235806445],[-119.85762229580448,38.06952108811928],[-119.85736698144507,38.069576879429924],[-119.85711427880932,38.06963966434927],[-119.85686449430608,38.06970936675029],[-119.85661793080844,38.069785902118234],[-119.8563748872867,38.06986917765306],[-119.85613565844605,38.06995909238186],[-119.85590053436937,38.07005553728127],[-119.85566980016573,38.070158395409436],[-119.85544373562479,38.07026754204792],[-119.85522261487769,38.07038284485266],[-119.85500670606481,38.07050416401442],[-119.85479627101061,38.070631352428215],[-119.85459156490634,38.070764255871545],[-119.85439283600051,38.07090271319132],[-119.84840236303374,38.07780237271938],[-119.84308904746703,38.08221983087201],[-119.84192014846364,38.08542180398451],[-119.83229943939634,38.091909959745145],[-119.83182504724795,38.09185022728154],[-119.8313483347039,38.091803436915306],[-119.83086986681323,38.091769644107345],[-119.8303902107028,38.091748888912406],[-119.82990993490598,38.09174119593169],[-119.82942960868961,38.091746574283654],[-119.82894980138029,38.09176501759342],[-119.82847108169034,38.09179650400001],[-119.82799401704467,38.09184099618246],[-119.82751917290909,38.091898441403984],[-119.82704711212097,38.091968771574265],[-119.82657839422292,38.09205190333018],[-119.8261135748004,38.09214773813446],[-119.82565320482402,38.09225616239227],[-119.82519782999726,38.09237704758577],[-119.82474799011031,38.09251025042622],[-119.82430421840093,38.09265561302365],[-119.8238670409231,38.09281296307368],[-119.82343697592407,38.09298211406166],[-119.82301453323053,38.09316286548335],[-119.82260021364483,38.09335500308239],[-119.82219450835174,38.09355829910396],[-119.82179789833664,38.09377251256447],[-119.8214108538156,38.093997389536874],[-119.8210338336783,38.094232663451294],[-119.82066728494421,38.09447805541083],[-119.82031164223265,38.09473327452168],[-119.82019258952161,38.094822506822936],[-119.82006971665234,38.094908444199014],[-119.81994316955158,38.09499098457973],[-119.81981309851157,38.09507002992932],[-119.81967965801158,38.09514548636285],[-119.81954300653432,38.09521726425783],[-119.81940330637782,38.09528527836064],[-119.8192607234626,38.09534944788782],[-119.8191154271344,38.095409696622106],[-119.81896758996324,38.095465953003014],[-119.81881738753823,38.09551815021177],[-119.81866499825895,38.09556622625079],[-119.81851060312364,38.095610124017334],[-119.81835438551393,38.09564979137135],[-119.81819653097713,38.09568518119737],[-119.8180372270057,38.09571625146066],[-119.81787666281441,38.09574296525694],[-119.81771502911559,38.095765290856434],[-119.81755251789241,38.09578320174153],[-119.81738932217091,38.09579667663818],[-119.8097614968878,38.09581661336607],[-119.80965780287084,38.09576246362736],[-119.80955655056547,38.09570550130263],[-119.80945786207059,38.09564579508513],[-119.80936185639236,38.09558341697693],[-119.8092686493008,38.095518442202035],[-119.80917835319012,38.09545094911572],[-119.80909107694319,38.095381019109894],[-119.80900692580022,38.095308736515044],[-119.8089260012319,38.095234188498424],[-119.80884840081698,38.09515746495897],[-119.8087742181248,38.09507865841885],[-119.80870354260219,38.09499786391186],[-119.80863645946583,38.09491517886879],[-119.80857304959962,38.09483070299993],[-119.80851338945683,38.0947445381748],[-119.80845755096836,38.09465678829927],[-119.80840560145575,38.094567559190274],[-119.80835760355019,38.094476958448084],[-119.80831361511702,38.09438509532677],[-119.80827368918597,38.09429208060214],[-119.8082378738874,38.09419802643837],[-119.80820621239417,38.0941030462526],[-119.80817874286977,38.09400725457824],[-119.8081554984223,38.09391076692675],[-119.80813650706467,38.093813699648486],[-119.8081217916809,38.09371616979224],[-119.80811136999854,38.09361829496414],[-119.80810525456744,38.09352019318589],[-119.80810345274469,38.09342198275239],[-119.8081059666858,38.09332378208902],[-119.8081127933422,38.09322570960902],[-119.80812392446502,38.09312788357058],[-119.80813934661512,38.09303042193422],[-119.80815904117928,38.09293344222062],[-119.80818298439286,38.09283706136892],[-119.80821114736848,38.092741395595695],[-119.80824349613091,38.09264656025479],[-119.80827999165814,38.09255266969837],[-119.80832058992847,38.092459837138875],[-119.80836524197373,38.092368174512636],[-119.8084138939383,38.092277792344866],[-119.80842391178096,38.09225918936173],[-119.80843311322587,38.092240324818796],[-119.8084414873626,38.09222122108562],[-119.80844902426173,38.0922019008154],[-119.80845571498668,38.09218238691806],[-119.80846155160425,38.09216270253314],[-119.80846652719416,38.09214287100229],[-119.80847063585698,38.09212291584162],[-119.80847387272148,38.0921028607139],[-119.80847623395003,38.0920827294003],[-119.80847771674348,38.092062545772436],[-119.80847831934425,38.09204233376382],[-119.80847804103851,38.09202211734169],[-119.80847688215695,38.0920019204785],[-119.80847484407452,38.09198176712338],[-119.80847192920871,38.09196168117399],[-119.80846814101656,38.091941686447974],[-119.80846348399079,38.09192180665476],[-119.80845796365432,38.09190206536749],[-119.80845158655379,38.09188248599511],[-119.80844436025171,38.09186309175448],[-119.80843629331757,38.091843905642946],[-119.80842739531765,38.09182495041104],[-119.80841767680361,38.09180624853548],[-119.80840714930014,38.09178782219256],[-119.80839582529109,38.09176969323187],[-119.80838371820477,38.09175188315027],[-119.80837084239808,38.09173441306661],[-119.80835721313932,38.09171730369643],[-119.80834284659029,38.09170057532763],[-119.80832775978693,38.09168424779625],[-119.80831197061927,38.09166834046307],[-119.8082954978101,38.09165287219057],[-119.80827836089281,38.091637861320564],[-119.8082605801883,38.091623325652535],[-119.80824217678072,38.091609282422446],[-119.80822317249265,38.09159574828233],[-119.80820358985908,38.091582739280554],[-119.80818345210078,38.091570270842794],[-119.80816278309675,38.0915583577537],[-119.80814160735582,38.091547014139444],[-119.80811994998774,38.091536253450904],[-119.80809783667327,38.091526088447736],[-119.80807529363375,38.09151653118327],[-119.80805234760014,38.09150759299014],[-119.80802902578117,38.091499284467],[-119.8080053558311,38.091491615465756],[-119.807981365817,38.091484595080054],[-119.80795708418546,38.09147823163443],[-119.80793253972882,38.09147253267436],[-119.807907761551,38.09146750495754],[-119.80788277903311,38.091463154445606],[-119.80785762179846,38.09145948629725],[-119.80783231967763,38.09145650486201],[-119.8078069026729,38.09145421367516],[-119.80778140092276,38.09145261545352],[-119.8046617663196,38.09130795708001],[-119.80444071744029,38.089284550899805],[-119.80443439791568,38.08923641393007],[-119.80442597981963,38.089188478042836],[-119.80441547318885,38.0891408003679],[-119.80440289054911,38.08909343772718],[-119.80438824690023,38.08904644656702],[-119.80437155969823,38.08899988289092],[-119.80435284883455,38.08895380219284],[-119.80433213661226,38.088908259391],[-119.80430944771942,38.08886330876251],[-119.8042848091998,38.08881900387859],[-119.80425825042049,38.0887753975408],[-119.80422980303693,38.08873254171814],[-119.80419950095522,38.088690487485],[-119.80416738029156,38.08864928496042],[-119.80413347932942,38.08860898324833],[-119.8040978384737,38.08856963037896],[-119.80406050020265,38.08853127325175],[-119.80402150901725,38.08849395757932],[-119.80398091138811,38.088457727833074],[-119.80393875570023,38.08842262719015],[-119.80389509219508,38.088388697482074],[-119.80384997291097,38.08835597914479],[-119.80380345162091,38.088324511170576],[-119.80375558376849,38.088294331061476],[-119.80370642640193,38.08826547478473],[-119.803656038106,38.08823797672983],[-119.80360447893217,38.088211869667575],[-119.80355181032719,38.08818718471101],[-119.80349809505975,38.08816395127835],[-119.80344339714564,38.088142197057955],[-119.8033877817716,38.08812194797531],[-119.80333131521762,38.08810322816215],[-119.80327406477785,38.088086059927655],[-119.8032160986805,38.08807046373194],[-119.80315748600654,38.08805645816167],[-119.8030982966073,38.08804405990779],[-119.80303860102141,38.08803328374585],[-119.80297847039056,38.08802414251822],[-119.80291797637483,38.08801664711884],[-119.80285719106732,38.088010806480284],[-119.80279618690817,38.08800662756304],[-119.80273503659832,38.08800411534731],[-119.80267381301285,38.088003272826995],[-119.80261258911412,38.08800410100615],[-119.80255143786489,38.088006598897785],[-119.80249043214138,38.088010763525105],[-119.80242964464637,38.08801658992493],[-119.80236914782262,38.08802407115374],[-119.80230901376653,38.08803319829586],[-119.80224931414233,38.08804396047411],[-119.80219012009651,38.08805634486278],[-119.80213150217315,38.08807033670292],[-119.80157512794331,38.08820333041807],[-119.80101339407128,38.08832141799405],[-119.80044693978296,38.088424465049314],[-119.79987640968473,38.0885123543176],[-119.79930245302873,38.08858498578171],[-119.79872572297297,38.088642276787304],[-119.7981468758367,38.088684162137405],[-119.79756657035246,38.088710594166415],[-119.79698546691509,38.088721542794666],[-119.79640422682908,38.08871699556259],[-119.79582351155464,38.08869695764494],[-119.79524398195379,38.088661451844914],[-119.79516072522547,38.088656365202205],[-119.7950772972538,38.08865352902464],[-119.79499379539311,38.08865294662182],[-119.79491031708406,38.08865461867342],[-119.79482695973971,38.08865854322822],[-119.79474382063206,38.08866471570657],[-119.79466099677855,38.08867312890558],[-119.79457858482876,38.08868377300771],[-119.7944966809517,38.088696635591994],[-119.7944153807237,38.08871170164866],[-119.79433477901681,38.088728953596714],[-119.79425496988812,38.088748371304256],[-119.79417604647007,38.088769932112136],[-119.79409810086175,38.088793610860314],[-119.79402122402148,38.08881937991723],[-119.79394550566064,38.08884720921202],[-119.7938710341391,38.08887706626968],[-119.79379789636194,38.08890891624879],[-119.79372617767828,38.088942721982384],[-119.79365596178152,38.08897844402113],[-119.79358733061176,38.0890160406794],[-119.79352036426017,38.089055468083984],[-119.79345514087557,38.089096680225204],[-119.79339173657316,38.089139629010596],[-119.79333022534577,38.08918426432104],[-119.79327067897752,38.08923053406927],[-119.79321316696,38.089278384260524],[-119.79315775641119,38.089327759055756],[-119.79310451199713,38.08937860083655],[-119.79305349585651,38.0894308502725],[-119.79300476752802,38.08948444639042],[-119.79295838388099,38.089539326645436],[-119.79291439904888,38.089595426993995],[-119.79266920627573,38.089908456048086],[-119.79241095905124,38.09021485842242],[-119.79213994369209,38.09051429422249],[-119.79185646068964,38.09080643127784],[-119.79156082437717,38.09109094551091],[-119.79125336258147,38.091367521296746],[-119.79093441625938,38.0916358518135],[-119.79060433911992,38.09189563938302],[-119.79026349723202,38.09214659580146],[-119.7899122686185,38.09238844265926],[-119.78955104283682,38.09262091165036],[-119.78918022054685,38.092843744870095],[-119.7888002130664,38.09305669510162],[-119.78841144191465,38.09325952609053],[-119.78801433834442,38.09345201280717],[-119.78760934286348,38.093633941696616],[-119.78719690474556,38.09380511091583],[-119.7867774815315,38.09396533055791],[-119.78635153852127,38.09411442286299],[-119.78585551826424,38.09427238449523],[-119.78535290475966,38.09441674638648],[-119.78484429489338,38.094547337088684],[-119.78433029268278,38.09466400150803],[-119.78381150855867,38.094766601089425],[-119.78328855863917,38.09485501398103],[-119.7827620639972,38.09492913517946],[-119.78223264992177,38.09498887665452],[-119.7817009451743,38.09503416745388],[-119.78163664238885,38.09503787409555],[-119.7815722156952,38.09503981772722],[-119.78150774246875,38.095039996014606],[-119.78144330014068,38.09503840874361],[-119.78137896610525,38.0950350578205],[-119.7813148176265,38.09502994726967],[-119.78125093174559,38.095023083228824],[-119.78118738518829,38.09501447394152],[-119.78112425427277,38.095004129747366],[-119.78106161481794,38.09499206306951],[-119.7809995420523,38.09497828839982],[-119.78093811052373,38.094962822281396],[-119.78087739400988,38.09494568328866],[-119.78081746542945,38.094926892005205],[-119.78075839675476,38.094906470998936],[-119.78070025892517,38.094884444794964],[-119.78064312176201,38.09486083984623],[-119.78058705388463,38.094835684501646],[-119.78053212262792,38.09480900897209],[-119.78047839396157,38.09478084529417],[-119.78042593241078,38.094751227291546],[-119.7803748009787,38.094720190534545],[-119.78032506107091,38.09468777229732],[-119.78027677242152,38.09465401151306],[-119.78022999302145,38.09461894872722],[-119.78018477904895,38.09458262604895],[-119.78014188218567,38.09454817075938],[-119.78009749315225,38.094514916851715],[-119.78005166579152,38.09448290466064],[-119.78000445569059,38.09445217301471],[-119.77995592011351,38.094422759189214],[-119.77990611793193,38.0943946988609],[-119.77985510955348,38.09436802606495],[-119.7798029568487,38.09434277315333],[-119.77974972307578,38.094318970755936],[-119.77969547280414,38.09429664774318],[-119.77964027183583,38.0942758311911],[-119.77958418712586,38.094256546348504],[-119.77952728670101,38.094238816606314],[-119.77946963957727,38.094222663469274],[-119.77941131567626,38.09420810652977],[-119.77935238574015,38.09419516344413],[-119.77929292124627,38.09418384991126],[-119.77923299432007,38.094174179653486],[-119.77917267764789,38.09416616439999],[-119.77911204438867,38.09415981387262],[-119.77905116808529,38.09415513577396],[-119.77899012257535,38.094152135778195],[-119.77892898190167,38.09415081752402],[-119.77886782022254,38.094151182610375],[-119.77880671172157,38.09415323059444],[-119.77874573051803,38.094156958992215],[-119.77868495057672,38.094162363281434],[-119.77862444561842,38.09416943690718],[-119.77856428903041,38.09417817128976],[-119.77850455377751,38.09418855583513],[-119.7784453123136,38.09420057794771],[-119.77838663649365,38.09421422304571],[-119.7783285974868,38.094229474578775],[-119.77827126568978,38.09424631404807],[-119.77821471064178,38.09426472102871],[-119.77815900093995,38.09428467319458],[-119.77810420415624,38.09430614634527],[-119.77805038675552,38.0943291144356],[-119.77799761401494,38.094353549607085],[-119.77794594994468,38.09437942222177],[-119.77790104322511,38.094408732936124],[-119.77785488419127,38.09443680239017],[-119.77780752775118,38.09446359719339],[-119.7777590302375,38.09448908547141],[-119.77770944934042,38.094513236904106],[-119.7776588440391,38.09453602276157],[-119.77760727453139,38.09455741593834],[-119.77755480216243,38.09457739098561],[-119.77750148935147,38.0945959241415],[-119.77744739951763,38.09461299335944],[-119.77739259700462,38.094628578334245],[-119.77733714700395,38.094642660526326],[-119.77728111547754,38.09465522318383],[-119.77722456907921,38.09466625136242],[-119.77716757507532,38.09467573194321],[-119.77711020126482,38.09468365364831],[-119.77705251589849,38.094690007054155],[-119.77699458759781,38.094694784602865],[-119.77693648527331,38.094697980611166],[-119.77687827804256,38.09469959127712],[-119.77682003514798,38.09469961468471],[-119.77676182587435,38.094698050806095],[-119.77670371946652,38.09469490150164],[-119.7766457850469,38.09469017051769],[-119.77658809153331,38.09468386348216],[-119.7765307075569,38.09467598789779],[-119.77647370138062,38.09466655313319],[-119.77641714081784,38.09465557041184],[-119.77636109315179,38.09464305279853],[-119.7763056250555,38.09462901518399],[-119.77625080251235,38.09461347426709],[-119.7761966907378,38.09459644853494],[-119.77614335410155,38.09457795824103],[-119.77609085605117,38.09455802538096],[-119.7760392590364,38.09453667366644],[-119.77324439348664,38.09232854967919],[-119.77312339909037,38.09223712412765],[-119.77299851767273,38.09214902371799],[-119.77286989546982,38.092064351606474],[-119.7727376830963,38.09198320693474],[-119.77260203536888,38.09190568471396],[-119.77246311112518,38.09183187571348],[-119.77232107303774,38.091761866354695],[-119.77217608742362,38.09169573860982],[-119.77202832404957,38.09163356990596],[-119.77187795593349,38.09157543303453],[-119.77172515914174,38.091521396066064],[-119.77157011258309,38.091471522270446],[-119.77141299779943,38.091425870042954],[-119.7712539987531,38.09138449283597],[-119.77109330161167,38.091347439096225],[-119.77093109453006,38.09131475220828],[-119.77076756743023,38.09128647044373],[-119.77060291177912,38.09126262691631],[-119.77043732036428,38.09124324954324],[-119.77027098706846,38.09122836101252],[-119.77010410664263,38.091217978756376],[-119.76993687447802,38.09121211493083],[-119.76976948637758,38.09121077640158],[-119.76960213832663,38.09121396473579],[-119.76943502626376,38.09122167620044],[-119.76926834585126,38.09123390176655],[-119.76910229224636,38.09125062711984],[-119.76893705987267,38.09127183267745],[-119.76877284219272,38.09129749361087],[-119.76860983148163,38.091327579874886],[-119.76844821860182,38.09136205624298],[-119.76828819277996,38.09140088234835],[-119.7681299413853,38.09144401273122],[-119.76797364971038,38.09149139689202],[-119.7678195007543,38.091542979350564],[-119.76766767500833,38.0915986997109],[-119.76751835024481,38.091658492732044],[-119.76737170130902,38.09172228840427],[-119.76722789991447,38.09179001203112],[-119.76708711444199,38.09186158431685],[-119.76694950974255,38.09193692145913],[-119.76681524694423,38.09201593524721],[-119.76668448326367,38.09209853316514],[-119.76640066006992,38.09227778539193],[-119.7661092107254,38.09244922488522],[-119.76581047937371,38.09261264917979],[-119.76550481876555,38.09276786527475],[-119.76519258984186,38.09291468986189],[-119.76487416130742,38.09305294954215],[-119.76454990919535,38.09318248103069],[-119.76422021642257,38.09330313134982],[-119.7638854723374,38.09341475800993],[-119.76354607225946,38.09351722917783],[-119.76320241701242,38.093610423832615],[-119.76285491245017,38.09369423190874],[-119.76250396897728,38.093768554426156],[-119.76215000106372,38.09383330360726],[-119.76179342675502,38.093888402980724],[-119.76143466717801,38.093933787471826],[-119.76107414604309,38.09396940347947],[-119.76071228914316,38.093995208939475],[-119.76034952385035,38.09401117337438],[-119.7599862786108,38.09401727792937],[-119.75962298243799,38.09401351539469],[-119.75938875672992,38.09400477506502],[-119.75915503843002,38.093989785913394],[-119.75892209440934,38.09396856505512],[-119.75869019065419,38.0939411367211],[-119.75845959196229,38.09390753223024],[-119.75823056164019,38.093867789953535],[-119.75800336120247,38.09382195527034],[-119.75794162306882,38.09380953167717],[-119.75787937272452,38.09379882277187],[-119.75781668639496,38.09378984166747],[-119.75775364083933,38.093782599361276],[-119.75769031325657,38.09377710472147],[-119.75762678119092,38.0937733644762],[-119.75756312243696,38.09377138320537],[-119.75749941494439,38.093771163335056],[-119.75743573672253,38.09377270513445],[-119.75737216574491,38.093776006715665],[-119.75730877985376,38.093781064035916],[-119.75724565666472,38.093787870902524],[-119.75718287347178,38.09379641898055],[-119.75712050715264,38.09380669780292],[-119.75705863407477,38.09381869478322],[-119.75699733000162,38.09383239523122],[-119.7569366700001,38.09384778237076],[-119.75687672834857,38.09386483736035],[-119.75681757844589,38.09388353931615],[-119.75675929272163,38.09390386533767],[-119.75670194254732,38.093925790535664],[-119.75664559814908,38.093949288062724],[-119.7565903285217,38.09397432914608],[-119.75653620134405,38.09400088312281],[-119.75648328289631,38.0940289174775],[-119.75643163797878,38.094058397881874],[-119.75638132983252,38.09408928823699],[-119.75633242006202,38.09412155071729],[-119.75628496855953,38.094155145817076],[-119.756239033432,38.09419003239874],[-119.75598319558844,38.094384409115385],[-119.75571899894288,38.094571672876015],[-119.75544675992732,38.09475159934926],[-119.7551668046153,38.09492397299176],[-119.7548794683313,38.09508858730667],[-119.75458509524896,38.095245245091164],[-119.75428403797862,38.09539375867293],[-119.75397665714492,38.09553395013512],[-119.75366332095435,38.09566565152967],[-119.75334440475413,38.095788705078746],[-119.75302029058231,38.095902963363784],[-119.75269136670963,38.096008289502386],[-119.7523580271742,38.09610455731236],[-119.75202067130913,38.09619165146307],[-119.75167970326355,38.09626946761372],[-119.75133553151831,38.09633791253846],[-119.75079189917265,38.096430395461866],[-119.75024456509084,38.09650805794227],[-119.74969417613639,38.09657080819418],[-119.74914138278884,38.09661857205589],[-119.74858683837374,38.09665129307736],[-119.74803119828948,38.096668932586915],[-119.74747511923123,38.096671469737196],[-119.74691925841395,38.09665890152958],[-119.74636427279414,38.09663124281796],[-119.74581081829243,38.096588526291065],[-119.74568820575925,38.09657904126773],[-119.74556525660007,38.096572849295846],[-119.74544211238887,38.0965699575054],[-119.7453189149241,38.09657036922622],[-119.7451958060656,38.09657408398424],[-119.7450729275711,38.09658109750194],[-119.74495042093326,38.0965914017034],[-119.74482842721665,38.09660498472342],[-119.74470708689545,38.096621830921364],[-119.74458653969171,38.096641920899025],[-119.74446692441451,38.09666523152303],[-119.74434837880027,38.09669173595145],[-119.74423103935402,38.09672140366467],[-119.7441150411924,38.096754200500555],[-119.74400051788817,38.09679008869376],[-119.74388760131622,38.096829026919245],[-119.74363849908387,38.09691488330738],[-119.74338581607795,38.09699393593806],[-119.74312984977728,38.097066091741205],[-119.74287090152895,38.097131265766116],[-119.74260927619338,38.09718938128182],[-119.74234528178505,38.09724036986723],[-119.74207922910972,38.09728417149196],[-119.74181143139819,38.09732073458686],[-119.74154220393731,38.09735001610493],[-119.74127186369857,38.097371981571996],[-119.74100072896445,38.09738660512727],[-119.7407291189536,38.09739386955385],[-119.74045735344467,38.09739376629909],[-119.74018575239953,38.097386295484526],[-119.73991463558619,38.097371465905866],[-119.73964432220222,38.09734929502249],[-119.73937513049852,38.09731980893706],[-119.73910737740438,38.09728304236464],[-119.73884137815406,38.09723903859174],[-119.73879212575464,38.09722950448729],[-119.73874330406468,38.097218674977796],[-119.73869496762616,38.097206562161674],[-119.73864717043885,38.09719317957097],[-119.7385999659,38.097178542156314],[-119.73855340674466,38.09716266627013],[-119.7385075449868,38.09714556964848],[-119.7384624318612,38.09712727139108],[-119.73841811776613,38.09710779194013],[-119.73837465220716,38.09708715305741],[-119.7383320837417,38.09706537779988],[-119.73829045992491,38.0970424904941],[-119.73824982725648,38.097018516708864],[-119.73821023112868,38.09699348322676],[-119.73817171577566,38.09696741801418],[-119.73813432422405,38.096940350190096],[-119.73809809824489,38.09691230999357],[-119.73806307830692,38.096883328749826],[-119.73802930353143,38.09685343883543],[-119.7379968116485,38.09682267364198],[-119.73796563895493,38.096791067538916],[-119.7379167576389,38.09674155771559],[-119.7378657489098,38.09669340681561],[-119.73781267321954,38.0966466719001],[-119.73775759346906,38.09660140835215],[-119.73770057493385,38.09655766981103],[-119.73764168518656,38.09651550810875],[-119.73758099401695,38.096474973208636],[-119.73751857334922,38.09643611314607],[-119.73745449715669,38.096398973971645],[-119.73738884137417,38.09636359969655],[-119.73732168380806,38.096330032240466],[-119.73725310404402,38.09629831138185],[-119.73718318335278,38.096268474710904],[-119.7371120045938,38.09624055758486],[-119.73703965211706,38.096214593086316],[-119.73696621166316,38.096190611983815],[-119.73689177026175,38.096168642695595],[-119.73681641612829,38.09614871125572],[-119.7367402385597,38.09613084128345],[-119.7366633278285,38.09611505395503],[-119.73658577507572,38.0961013679788],[-119.73650767220317,38.09608979957289],[-119.73642911176432,38.0960803624461],[-119.73635018685479,38.09607306778161],[-119.736270991002,38.0960679242237],[-119.7361916180544,38.09606493786762],[-119.7361121620702,38.096064112252236],[-119.73603271720604,38.096065448355915],[-119.73595337760531,38.09606894459533],[-119.73587423728678,38.096074596827414],[-119.73579539003309,38.09608239835415],[-119.73571692927962,38.0960923399306],[-119.7356389480039,38.09610440977577],[-119.7355615386154,38.09611859358669],[-119.73548479284597,38.096134874555254],[-119.73540880164127,38.09615323338817],[-119.735333655053,38.096173648329845],[-119.73525944213218,38.09619609518812],[-119.73518625082362,38.09622054736289],[-119.73511416786174,38.09624697587778],[-119.73504327866783,38.096275349414285],[-119.73497366724882,38.09630563434904],[-119.7349054160977,38.09633779479347],[-119.73483860609589,38.09637179263654],[-119.73477331641728,38.09640758758973],[-119.73470962443443,38.09644513723481],[-119.73464760562699,38.09648439707415],[-119.73458733349213,38.096525320583424],[-119.73452887945757,38.096567859266706],[-119.73447231279677,38.09661196271388],[-119.73441770054703,38.09665757866052],[-119.73436510742992,38.096704653049706],[-119.73337808151946,38.097592269278124],[-119.7323580604639,38.09845628417244],[-119.73130594669567,38.099295932372875],[-119.73022267117163,38.10011047007897],[-119.72910919254947,38.10089917571062],[-119.72796649633908,38.10166135054956],[-119.72774295861065,38.101811226837505],[-119.7275261735634,38.10196717438029],[-119.72731640516018,38.102129003322915],[-119.72711390882665,38.10229651664883],[-119.72691893114013,38.10246951041989],[-119.72673170952949,38.10264777402429],[-119.72655247198591,38.10283109043302],[-119.72638143678509,38.1030192364638],[-119.7262188122216,38.103211983052795],[-119.72606479635478,38.10340909553328],[-119.72591957676764,38.10361033392128],[-119.7257833303381,38.10381545320753],[-119.72565622302345,38.10402420365583],[-119.72553840965793,38.104236331106804],[-119.7253327379881,38.104607284258776],[-119.72511139400375,38.10497256227548],[-119.72487462788736,38.10533175190908],[-119.72462270728055,38.105684446793916],[-119.72435591698198,38.10603024790637],[-119.72407455862582,38.10636876401676],[-119.72377895034136,38.10669961213223],[-119.72346942639342,38.10702241793046],[-119.72314633680497,38.10733681618344],[-119.72281004696134,38.1076424511711],[-119.7224609371974,38.107938977084174],[-119.72209940236733,38.108226058415774],[-119.72172585139829,38.108503370341474],[-119.72134070682779,38.10877059908701],[-119.72094440432568,38.10902744228397],[-119.7205373922013,38.10927360931199],[-119.72012013089603,38.10950882162821],[-119.71959981203979,38.10980172186235],[-119.71909174636326,38.11010775842762],[-119.71859646497506,38.11042661149769],[-119.7181144856434,38.11075794784804],[-119.71764631225517,38.11110142120376],[-119.71719243428925,38.11145667260094],[-119.71675332630493,38.11182333076127],[-119.71632944744574,38.11220101247955],[-119.7161731898903,38.112350003821646],[-119.71602355687561,38.11250318154647],[-119.71588072797373,38.112660361870226],[-119.71574487459633,38.112821356205615],[-119.71561615978898,38.11298597138803],[-119.71549473803543,38.11315400990719],[-119.71538075507199,38.11332527014407],[-119.71527434771248,38.11349954661272],[-119.71517564368405,38.11367663020671],[-119.71508476147348,38.113856308450046],[-119.71500181018497,38.11403836575194],[-119.71492688940883,38.11422258366548],[-119.71486008910193,38.11440874114969],[-119.71480148947926,38.11459661483463],[-119.71475116091756,38.11478597928948],[-119.71470916387052,38.114976607292895],[-119.71467554879608,38.11516827010569],[-119.71465035609528,38.1153607377452],[-119.71463361606386,38.115553779261276],[-119.71462534885525,38.115747163013374],[-119.7146255644563,38.115940656948524],[-119.71463426267485,38.11613402887972],[-119.7146514331397,38.11632704676462],[-119.71467705531275,38.116519478983896],[-119.71471109851323,38.11671109461931],[-119.71475352195436,38.1169016637307],[-119.7147693649141,38.11697280620515],[-119.71478209032578,38.117044338302264],[-119.71479168301578,38.11711617477899],[-119.71479813154355,38.11718823002922],[-119.71480142821528,38.117260418185985],[-119.71480156909315,38.11733265322362],[-119.71479855400003,38.11740484906041],[-119.71479238651976,38.11747691966103],[-119.71478307399288,38.117548779139256],[-119.71477062750796,38.117620341860125],[-119.71475506188848,38.117691522542096],[-119.71473639567513,38.11776223635865],[-119.71471465110373,38.11783239903949],[-119.71468985407893,38.117901926970774],[-119.71466203414312,38.11797073729489],[-119.71463122444156,38.11803874800922],[-119.7145974616827,38.11810587806383],[-119.71456078609452,38.11817204745804],[-119.71452124137672,38.11823717733584],[-119.71447887464849,38.11830119007983],[-119.71443373639264,38.11836400940373],[-119.71438588039517,38.11842556044332],[-119.71433536368141,38.118485769845655],[-119.71428224644802,38.11854456585655],[-119.71422659199125,38.11860187840593],[-119.71416846663158,38.118657639191646],[-119.71410793963459,38.118711781760595],[-119.71404508312861,38.11876424158808],[-119.71397997201855,38.11881495615467],[-119.71391268389677,38.11886386502077],[-119.71384329895065,38.11891090989864],[-119.71377189986691,38.118956034721805],[-119.71369857173315,38.118999185712006],[-119.7136234019364,38.11904031144321],[-119.71354648005897,38.11907936290295],[-119.71346789777176,38.11911629355076],[-119.71338774872488,38.11915105937361],[-119.71330612843609,38.119183618938415],[-119.71322313417697,38.11921393344138],[-119.71313886485689,38.119241966754295],[-119.71305342090524,38.11926768546761],[-119.71296690415157,38.11929105893021],[-119.71240638896795,38.119442440288594],[-119.71185277987666,38.119608931166844],[-119.71130672920611,38.119790335398086],[-119.71076888039272,38.11998643924239],[-119.71023986722385,38.12019701163823],[-119.70972031309174,38.1204218044744],[-119.70921083025985,38.12066055288183],[-119.70871201914188,38.12091297554531],[-119.708224467595,38.12117877503442],[-119.70774875022762,38.12145763815362],[-119.70728542772252,38.121749236310734],[-119.70683504617665,38.12205322590358],[-119.70639813645752,38.12236924872448],[-119.7059752135779,38.12269693238172],[-119.70556677608876,38.12303589073787],[-119.70517330549157,38.123385724364255],[-119.70479526567063,38.12374602101119],[-119.70443310234606,38.12411635609317],[-119.70408724254797,38.124496293188756],[-119.7040026103356,38.12458925269725],[-119.7039139755101,38.12467985462076],[-119.70382144321671,38.12476799146592],[-119.70372512322592,38.12485355866361],[-119.70362512980331,38.12493645469313],[-119.70352158157401,38.12501658120258],[-119.70341460138192,38.12509384312571],[-119.70330431614406,38.125168148794664],[-119.70319085669986,38.12523941004878],[-119.70307435765609,38.125307542339186],[-119.70295495722705,38.12537246482927],[-119.70283279707053,38.12543410049046],[-119.7027080221198,38.12549237619375],[-119.70258078041162,38.12554722279649],[-119.70245122291048,38.12559857522437],[-119.70231950332953,38.12564637254877],[-119.70218577794815,38.12569055805901],[-119.7020502054264,38.12573107932961],[-119.70191294661684,38.125767888282674],[-119.7017741643735,38.12580094124474],[-119.70163402335871,38.12583019899881],[-119.70149268984756,38.12585562683082],[-119.70135033153053,38.12587719457081],[-119.70120711731468,38.12589487662878],[-119.70106321712282,38.12590865202505],[-119.70091880169207,38.12591850441521],[-119.70077404237114,38.12592442210937],[-119.7006291109169,38.12592639808627],[-119.7003150890051,38.1259305520643],[-119.70000141811741,38.12594299226016],[-119.69968844852457,38.125963704782],[-119.69937652971485,38.12599266650043],[-119.69906601000433,38.12602984507412],[-119.69875723614797,38.12607519898608],[-119.698450552953,38.12612867758988],[-119.6981463028941,38.126190221166176],[-119.69784482573124,38.126259760989356],[-119.69754645813063,38.1263372194042],[-119.697251533289,38.126422509912544],[-119.69696038056195,38.126515537269746],[-119.6966733250961,38.126616197591076],[-119.69639068746665,38.12672437846745],[-119.69611278331922,38.126839959091015],[-119.69583992301783,38.12696281038986],[-119.69557241129834,38.1270927951721],[-119.69532163108163,38.12722415659336],[-119.69507677527619,38.127362316566796],[-119.69483813913665,38.1275071085133],[-119.69460601042354,38.12765835785667],[-119.69438066905654,38.127815882233946],[-119.69416238677685,38.127979491715074],[-119.69395142681977,38.12814898903186],[-119.693748043597,38.12832416981559],[-119.69355248239007,38.12850482284343],[-119.69336497905435,38.12869073029283],[-119.69318575973455,38.128881668004134],[-119.69301504059194,38.129077405750614],[-119.69285302754352,38.12927770751607],[-119.69269991601345,38.12948233177911],[-119.6925558906973,38.129691031804484],[-119.69242112533894,38.12990355594022],[-119.69229578252083,38.13011964792112],[-119.69218001346766,38.13033904717757],[-119.69207395786364,38.1305614891497],[-119.69202620513158,38.13067296639695],[-119.69198314749859,38.130785630480375],[-119.6919448321243,38.13089935805895],[-119.69191130097727,38.131014024626865],[-119.69188259078896,38.13112950464971],[-119.69185873301343,38.13124567170201],[-119.6918397537928,38.13136239860551],[-119.69182567392852,38.13147955756845],[-119.69181650885851,38.13159702032546],[-119.69181226864016,38.131714658278014],[-119.69181295793918,38.131832342635114],[-119.6918185760245,38.13194994455443],[-119.69182155501443,38.1320138399295],[-119.6918217093852,38.13207777849866],[-119.69181903894139,38.132141682381096],[-119.69181354692847,38.132205473738125],[-119.69180524002877,38.13226907486788],[-119.69179412835335,38.132332408300044],[-119.69178022542985,38.132395396890175],[-119.69176354818589,38.132457963913616],[-119.6917441169286,38.132520033159096],[-119.69172195531985,38.13258152902148],[-119.6916970903475,38.132642376593786],[-119.69166955229258,38.132702501758665],[-119.6916393746923,38.132761831278415],[-119.69160659429942,38.1328202928844],[-119.69157125103737,38.132877815364985],[-119.69153338795174,38.132934328652354],[-119.6914930511577,38.132989763907766],[-119.69145028978411,38.13304405360551],[-119.6914051559135,38.13309713161517],[-119.69135770451864,38.13314893328209],[-119.69130799339577,38.13319939550624],[-119.69125608309399,38.13324845681903],[-119.69120203684167,38.13329605745825],[-119.69114592046942,38.133342139440835],[-119.69108780232986,38.133386646633475],[-119.69102775321436,38.13342952482108],[-119.69096584626686,38.1334707217728],[-119.69090215689477,38.13351018730563],[-119.69083676267707,38.13354787334559],[-119.69076974326983,38.13358373398622],[-119.69070118030916,38.13361772554466],[-119.69063115731186,38.133649806614706],[-119.69055975957343,38.13367993811733],[-119.69048707406448,38.13370808334834],[-119.69041318932452,38.133734208023],[-119.6903381953542,38.13375828031792],[-119.69026218350564,38.13378027090964],[-119.69018524637116,38.13380015301061],[-119.69010747767044,38.13381790240161],[-119.6900289721363,38.13383349746137],[-119.6899498253994,38.13384691919289],[-119.6898701338716,38.1338581512466],[-119.6897899946285,38.13386717994023],[-119.68970950529126,38.13387399427555],[-119.68962876390762,38.133878585951685],[-119.68954786883238,38.13388094937533],[-119.68946691860758,38.13388108166749],[-119.68938601184247,38.133878982667],[-119.68930524709342,38.133874654930786],[-119.68922472274362,38.13386810373062],[-119.68914453688346,38.1338593370468],[-119.68906478719092,38.13384836555844],[-119.6889855708125,38.133835202630394],[-119.68890698424492,38.13381986429697],[-119.6888291232175,38.13380236924243],[-119.68875208257558,38.13378273877826],[-119.688675956165,38.13376099681709],[-119.68857742784046,38.13373283209203],[-119.68847773330805,38.13370735604485],[-119.68837699013146,38.13368459871773],[-119.6882753171107,38.13366458694674],[-119.68817283414187,38.13364734433032],[-119.68806966207597,38.13363289120147],[-119.68796592257638,38.133621244603674],[-119.68786173797535,38.133612418270864],[-119.68775723112991,38.133606422611365],[-119.68765252527699,38.133603264695324],[-119.68754774388803,38.133602948246704],[-119.6874430105236,38.13360547363863],[-119.68733844868765,38.13361083789309],[-119.68723418168193,38.13361903468444],[-119.68713033246051,38.1336300543468],[-119.68702702348513,38.133643883885526],[-119.68692437658048,38.13366050699244],[-119.68682251279083,38.13367990406513],[-119.68672155223722,38.133702052230014],[-119.68662161397583,38.13372692536937],[-119.6865228158578,38.13375449415201],[-119.68642527438999,38.13378472606801],[-119.6863291045979,38.13381758546687],[-119.68623441988989,38.13385303359967],[-119.68614133192355,38.13389102866473],[-119.68604995047404,38.13393152585684],[-119.68596038330463,38.13397447742012],[-119.68587273603968,38.13401983270435],[-119.68578711204009,38.13406753822458],[-119.6857036122814,38.13411753772432],[-119.68562233523474,38.13416977224176],[-119.68554337675074,38.13422418017936],[-119.68546682994648,38.1342806973764],[-119.68539278509566,38.13433925718473],[-119.68532132952217,38.13439979054717],[-119.68525254749709,38.134462226079144],[-119.6851865201393,38.1345264901527],[-119.68512332531986,38.13459250698339],[-119.68506303757012,38.134660198719544],[-119.68500572799371,38.13472948553419],[-119.68495146418284,38.13480028571899],[-119.68490031013847,38.134872515780835],[-119.68473005632944,38.13505886987914],[-119.6845516906178,38.13524042905636],[-119.68436542924007,38.1354169731452],[-119.6841714980123,38.13558828805839],[-119.68397013205643,38.135754166048436],[-119.68376157551516,38.135914405959674],[-119.68354608125604,38.13606881347224],[-119.68332391056484,38.13621720133805],[-119.68309533282867,38.13635938960781],[-119.68286062520937,38.13649520584949],[-119.68262007230727,38.1366244853575],[-119.68237396581613,38.136747071352616],[-119.68212260416901,38.13686281517216],[-119.68186629217661,38.136971576450456],[-119.68160534065723,38.13707322328917],[-119.68134006605968,38.13716763241734],[-119.68107079007949,38.137254689341034],[-119.68079783926837,38.13733428848227],[-119.68052154463804,38.13740633330706],[-119.68024224125855,38.137470736442815],[-119.67996026785167,38.137527419784085],[-119.67967596637976,38.13757631458755],[-119.6793896816308,38.1376173615554],[-119.67910176079992,38.13765051090731],[-119.67881255306804,38.13767572244081],[-119.67852240917804,38.13769296558019],[-119.66969561382916,38.13908513508714],[-119.66608693848666,38.139079992283165],[-119.66479296310798,38.13924430277057],[-119.66350710576333,38.13944446963142],[-119.66223095827692,38.13968024507468],[-119.66096610049537,38.139951337226016],[-119.65971409833804,38.14025741048805],[-119.65847650186488,38.1405980859543],[-119.65725484336308,38.140972941876754],[-119.6560506354556,38.14138151418618],[-119.65555505256374,38.14155021788659],[-119.65505273362339,38.141706002848785],[-119.65454421842972,38.14184870165433],[-119.6540300534469,38.14197816094718],[-119.65351079122003,38.14209424159892],[-119.65298698978046,38.142196818858345],[-119.65245921204541,38.1422857824858],[-119.651928025212,38.14236103687185],[-119.65139400014692,38.14242250114008],[-119.65124801976215,38.142439429624375],[-119.65110287705464,38.1424603744089],[-119.65095874912433,38.1424853099373],[-119.65081581183335,38.142514205783854],[-119.65067423959172,38.14254702669048],[-119.65053420514444,38.14258373260973],[-119.65039587936087,38.14262427875381],[-119.65025943102633,38.142668615648915],[-119.65012502663608,38.14271668919586],[-119.64999283019243,38.14276844073591],[-119.64986300300455,38.14282380712233],[-119.64973570349171,38.142882720797466],[-119.64961108698995,38.14294510987517],[-119.64948930556278,38.143010898228376],[-119.64937050781546,38.14308000558203],[-119.64925483871376,38.14315234761106],[-119.6491424394071,38.14322783604312],[-119.64887024264131,38.143410664111826],[-119.64859014778494,38.14358589460795],[-119.64830249464985,38.143753314908096],[-119.64800763222645,38.14391272186435],[-119.64770591825992,38.14406392205095],[-119.64739771881612,38.14420673199911],[-119.64708340783719,38.144340978419976],[-119.64676336668751,38.144466498414936],[-119.64643798369087,38.14458313967345],[-119.64610765365883,38.14469076065815],[-119.64577277741134,38.144789230776645],[-119.6454337612901,38.144878430540125],[-119.64509101666505,38.14495825170852],[-119.64474495943482,38.14502859742201],[-119.64439600952159,38.1450893823185],[-119.64408299280637,38.145143780672065],[-119.64377248667931,38.145206514817865],[-119.64346484694153,38.14527751287135],[-119.64316042611252,38.145356693478526],[-119.64285957302657,38.14544396590899],[-119.64256263243334,38.145539230159855],[-119.64226994460319,38.14564237707031],[-119.64198184493733,38.14575328844648],[-119.64169866358394,38.14587183719682],[-119.64142072505992,38.14599788747769],[-119.64114834787927,38.14613129484873],[-119.64088184418833,38.14627190643841],[-119.64062151940811,38.14641956111898],[-119.64036767188458,38.146574089691036],[-119.64012059254665,38.146735315077166],[-119.63988056457303,38.146903052524884],[-119.63964786306768,38.14707710981793],[-119.63951946161413,38.14717303797195],[-119.63938688312584,38.14726535482049],[-119.63925029036785,38.14735394701693],[-119.63910985103573,38.14743870578732],[-119.63896573754968,38.1475195270641],[-119.63881812684286,38.147596311613825],[-119.6386672001441,38.14766896515913],[-119.63851314275537,38.14773739849452],[-119.63835614382413,38.14780152759589],[-119.63819639611117,38.14786127372381],[-119.63803409575372,38.14791656352015],[-119.63786944202467,38.147967329098286],[-119.63770263708773,38.148013508126404],[-119.63753388574916,38.14805504390421],[-119.63736339520625,38.148091885432336],[-119.63719137479266,38.14812398747524],[-119.63701803572147,38.148151310616626],[-119.63684359082559,38.14817382130791],[-119.63666825429635,38.14819149190941],[-119.63649224142047,38.148204300724345],[-119.63631576831543,38.14821223202542],[-119.63613905166413,38.14821527607421],[-119.63596230844867,38.148213429133065],[-119.63578575568373,38.14820669346979],[-119.63560961015006,38.1481950773547],[-119.63503772766558,38.148157033985335],[-119.63446455010256,38.148134179181305],[-119.63389072401893,38.148126538723645],[-119.63331689670291,38.14813412123108],[-119.63274371544412,38.14815691815024],[-119.63217182680465,38.1481949037654],[-119.63160187589082,38.148248035227404],[-119.63103450562676,38.1483162526019],[-119.63047035603026,38.14839947893683],[-119.62991006349203,38.14849762034913],[-119.62935426005882,38.14861056613051],[-119.62880357272168,38.14873818887204],[-119.62825862270952,38.148880344607704],[-119.62772002478945,38.14903687297656],[-119.62718838657422,38.14920759740337],[-119.62701885373731,38.149267453455984],[-119.6268520624657,38.1493319342075],[-119.626688214988,38.14940096147986],[-119.62652750996533,38.14947445158247],[-119.62637014225058,38.14955231541361],[-119.62621630265213,38.14963445856844],[-119.62606617770261,38.149720781453446],[-119.62591994943273,38.149811179406974],[-119.62577779515064,38.14990554282634],[-119.625639887227,38.15000375730045],[-119.62550639288591,38.15010570374852],[-119.62537747400226,38.15021125856446],[-119.62525328690535,38.150320293766654],[-119.62513398218937,38.15043267715301],[-119.62501970453071,38.150548272461336],[-119.62491059251265,38.15066693953439],[-119.624806778457,38.15078853448975],[-119.62470838826385,38.15091290989441],[-119.62461554125872,38.151039914943176],[-119.62452835004775,38.15116939564179],[-119.62444692038109,38.15130119499336],[-119.6243713510246,38.151435153188814],[-119.62430173363995,38.151571107800606],[-119.6242381526733,38.15170889397953],[-119.62418068525282,38.1518483446547],[-119.62412940109502,38.151989290736054],[-119.62408436241999,38.152131561319266],[-119.62404562387593,38.15227498389306],[-119.62401323247258,38.1524193845483],[-119.62398722752411,38.152564588188895],[-119.62396764060126,38.15271041874402],[-119.6239544954929,38.152856699381644],[-119.62394780817696,38.15300325272301],[-119.62394758680091,38.153149901057574],[-119.62395383167168,38.1532964665586],[-119.6239665352551,38.15344277149878],[-119.62398568218481,38.153588638465706],[-119.62401124928078,38.15373389057703],[-119.62410251269964,38.154251016841194],[-119.62417139037133,38.15477029977088],[-119.62421780170106,38.15529113530768],[-119.62424169222417,38.15581291757457],[-119.62424303367159,38.156335039580696],[-119.62422182400493,38.15685689392736],[-119.62417808742119,38.157377873514676],[-119.62411187432669,38.15789737224783],[-119.62402326128073,38.15841478574238],[-119.62391235090872,38.15892951202743],[-119.62377927178488,38.159440952246136],[-119.62376757857147,38.15948592585294],[-119.62375785242561,38.15953119054287],[-119.62375010487249,38.15957669269533],[-119.62374434509353,38.15962237840841],[-119.62374057991549,38.159668193562666],[-119.6237388138023,38.15971408388513],[-119.6237390488499,38.1597599950138],[-119.62374128478353,38.15980587256182],[-119.62374551895822,38.15985166218212],[-119.62375174636179,38.159897309631596],[-119.62375995962087,38.15994276083555],[-119.6237701490095,38.15998796195159],[-119.62378230246074,38.16003285943355],[-119.62379640558089,38.16007740009479],[-119.62381244166653,38.16012153117132],[-119.62383039172434,38.16016520038426],[-119.62385023449349,38.160208356001775],[-119.62387194647089,38.160250946900355],[-119.623895501939,38.160292922625395],[-119.62392087299631,38.16033423345096],[-119.62394802959028,38.160374830438684],[-119.62397693955305,38.16041466549575],[-119.62400756863947,38.160453691431954],[-119.62404104214215,38.16049305194571],[-119.62407275391024,38.16053331162636],[-119.62410266523678,38.1605744213371],[-119.62413073961197,38.1606163309036],[-119.62415694276797,38.16065898917526],[-119.6241812427205,38.16070234408757],[-119.62420360980799,38.16074634272564],[-119.62422401672784,38.16079093138886],[-119.62424243856962,38.16083605565643],[-119.62425885284567,38.16088166045369],[-119.62427323951843,38.160927690119344],[-119.6242855810249,38.16097408847358],[-119.62429586229827,38.161020798886355],[-119.62430407078608,38.16106776434669],[-119.62431019646574,38.16111492753224],[-119.62431423185673,38.161162230879185],[-119.62431617202975,38.16120961665254],[-119.62431601461267,38.161257027016646],[-119.62431375979365,38.16130440410563],[-119.62430941032069,38.16135169009421],[-119.6243029714985,38.16139882726816],[-119.62429445118191,38.161445758094764],[-119.62428385976635,38.161492425293055],[-119.62427121017518,38.16153877190376],[-119.62425651784395,38.161584741358766],[-119.62423980070152,38.16163027755019],[-119.62422107914831,38.16167532489888],[-119.62420037603128,38.16171982842222],[-119.62417771661613,38.16176373380132],[-119.62415312855651,38.16180698744717],[-119.62412664186023,38.16184953656625],[-119.62409828885264,38.16189132922479],[-119.62406810413721,38.161932314412255],[-119.62403612455331,38.16197244210365],[-119.6240023891313,38.16201166332043],[-119.62396693904479,38.16204993019045],[-119.6239298175605,38.1620871960064],[-119.62389106998536,38.162123415282615],[-119.62385074361131,38.16215854381084],[-119.62380888765756,38.16219253871409],[-119.62376555321046,38.162225358498965],[-119.6237207931612,38.16225696310633],[-119.62367466214127,38.16228731396028],[-119.6236272164557,38.162316374015106],[-119.62357851401444,38.162344107800614],[-119.62352861426156,38.16237048146538],[-119.62347757810284,38.16239546281809],[-119.62342546783121,38.16241902136685],[-119.62337234705095,38.16244112835636],[-119.62331828059989,38.16246175680311],[-119.62326333447028,38.1624808815282],[-119.62320757572829,38.16249847918815],[-119.62315107243212,38.16251452830343],[-119.62309389354891,38.162529009284604],[-119.62303610887047,38.162541904456255],[-119.6229777889283,38.162553198078626],[-119.62291900490719,38.16256287636679],[-119.62285982855862,38.16257092750748],[-119.62280033211287,38.16257734167348],[-119.62274058819114,38.16258211103572],[-119.62268066971663,38.16258522977271],[-119.62248240104378,38.16256367985598],[-119.62228330366791,38.16254758289248],[-119.62208361808406,38.162536958326164],[-119.62188358549727,38.162531818990786],[-119.62168344753152,38.162532171094234],[-119.62148344593807,38.16253801421122],[-119.62128382230348,38.16254934128369],[-119.62108481775806,38.162566138629366],[-119.6208866726847,38.16258838595821],[-119.62068962642869,38.16261605639702],[-119.62049391700873,38.162649116521834],[-119.62029978082965,38.162687526398216],[-119.62010745239691,38.1627312396296],[-119.61991716403348,38.16278020341317],[-119.6197291455994,38.16283435860368],[-119.61954362421423,38.16289363978487],[-119.61936082398275,38.16295797534839],[-119.6191809657245,38.16302728758037],[-119.61900426670701,38.16310149275505],[-119.61883094038348,38.16318050123608],[-119.61866119613512,38.163264217584604],[-119.61849523901809,38.163352540674566],[-119.6183332695161,38.16344536381472],[-119.61817548329803,38.16354257487764],[-119.6180220709818,38.16364405643486],[-119.61787321790405,38.163749685898836],[-119.61772910389622,38.1638593356709],[-119.61758990306741,38.16397287329534],[-119.61745578359393,38.16409016161942],[-119.61732690751619,38.16421105895885],[-119.6172034305429,38.164335419269015],[-119.61708550186289,38.16446309232126],[-119.6169732639648,38.164593923884325],[-119.61686685246495,38.16472775591061],[-119.61676639594332,38.16486442672705],[-119.61667201578811,38.16500377123033],[-119.61658382604912,38.165145621086296],[-119.61650193329967,38.16528980493328],[-119.61642643650782,38.16543614858902],[-119.61635742691658,38.165584475261156],[-119.61629498793363,38.16573460576055],[-119.61623919503027,38.1658863587179],[-119.61619011565013,38.166039550802736],[-119.61614780912748,38.16619399694488],[-119.61611232661542,38.166349510558014],[-119.6160837110238,38.16650590376506],[-119.61606199696719,38.16666298762505],[-119.6160472107229,38.166820572361566],[-119.61603937019899,38.16697846759176],[-119.61603848491245,38.1671364825566],[-119.61604455597741,38.16729442635107],[-119.61605757610371,38.16745210815504],[-119.61607752960533,38.16760933746369],[-119.6161043924193,38.167765924317635],[-119.6161381321344,38.16792167953259],[-119.61617870803025,38.16807641492783],[-119.61622607112616,38.168229943553634],[-119.61628016424024,38.16838207991707],[-119.61629355780845,38.168418917489774],[-119.616305310132,38.1684561025596],[-119.61631540680908,38.168493589565934],[-119.61632383546622,38.168531332578176],[-119.61633058577378,38.168569285352],[-119.61633564945835,38.168607401385955],[-119.6163390203131,38.168645633978535],[-119.6163406942052,38.16868393628532],[-119.61634066908114,38.168722261376445],[-119.61633894496904,38.168760562293976],[-119.61633552397872,38.16879879210961],[-119.61633041029917,38.16883690398204],[-119.61632361019329,38.16887485121442],[-119.61631513199045,38.168912587311546],[-119.61630498607605,38.16895006603686],[-119.61629318487901,38.16898724146904],[-119.61627974285642,38.16902406805842],[-119.61626467647592,38.169060500682534],[-119.61624800419547,38.169096494701655],[-119.61622974644081,38.16913200601343],[-119.61620992558035,38.16916699110683],[-119.6161885658979,38.1692014071155],[-119.61616569356283,38.16923521187046],[-119.61614133659805,38.16926836395144],[-119.61611552484564,38.16930082273797],[-119.61608828993035,38.16933254845891],[-119.61605966522083,38.16936350224132],[-119.61602968578875,38.16939364615806],[-119.61599838836582,38.16942294327427],[-119.61596581129885,38.16945135769254],[-119.61593199450266,38.1694788545971],[-119.61589697941125,38.16950540029631],[-119.61586080892707,38.16953096226393],[-119.61582352736832,38.169555509179126],[-119.61578518041479,38.16957901096476],[-119.61536401194866,38.16981936762379],[-119.61493290542,38.1700484815469],[-119.61449234214332,38.17026609689125],[-119.61404281400652,38.17047197065189],[-119.61358482292128,38.17066587293338],[-119.61311888026209,38.17084758720696],[-119.61264550629488,38.171016910552524],[-119.61216522959536,38.17117365388563],[-119.61167858645828,38.17131764216888],[-119.60981672778261,38.17241469913454],[-119.6079982895382,38.17355627007108],[-119.60622497984367,38.17474128390567],[-119.60449846471569,38.17596862875391],[-119.60282036650621,38.17723715295765],[-119.60119226237956,38.178545666159664],[-119.59961568283094,38.17989294041504],[-119.59905089836222,38.18037410855933],[-119.59846590658424,38.1808399939857],[-119.59786137057378,38.18129006832921],[-119.5972379756112,38.18172382114703],[-119.5965964284031,38.1821407604985],[-119.5959374562812,38.182540413503965],[-119.59526180637705,38.182922326882014],[-119.59457024477433,38.183286067464664],[-119.59386355563954,38.183631222689435],[-119.59314254033168,38.18395740106827],[-119.5924080164925,38.184264232632465],[-119.591660817118,38.18455136935311],[-119.59090178961233,38.184818485536645],[-119.59073499482923,38.18487186490928],[-119.59056595242828,38.18492064126361],[-119.59039486624961,38.18496475578151],[-119.59022194259903,38.18500415526637],[-119.59004738999923,38.18503879220726],[-119.58987141893815,38.18506862483621],[-119.58969424161499,38.185093617178666],[-119.58951607168437,38.18511373909678],[-119.58933712399842,38.185128966325884],[-119.58915761434764,38.18513928050371],[-119.58897775920053,38.185144669192574],[-119.5887977754424,38.18514512589431],[-119.58861788011377,38.1851406500582],[-119.58843829014845,38.18513124708157],[-119.58825922211183,38.185116928303344],[-119.58808089193957,38.18509771099031],[-119.5879035146772,38.185073618316295],[-119.5877273042205,38.185044679334226],[-119.58755247305751,38.18501092894103],[-119.58737923201228,38.18497240783565],[-119.58720778999042,38.18492916246982],[-119.587038353727,38.184881244992056],[-119.58687112753738,38.18482871318476],[-119.58670631307052,38.18477163039454],[-119.58654410906578,38.184710065455704],[-119.58638471111337,38.18464409260732],[-119.5862283114181,38.184573791403565],[-119.58607509856778,38.18449924661778],[-119.58592525730566,38.18442054814023],[-119.58577896830768,38.184337790869655],[-119.58563640796439,38.184251074598755],[-119.58549774816852,38.18416050389382],[-119.58536315610735,38.18406618796866],[-119.5852327940614,38.18396824055275],[-119.58510681920848,38.183866779754126],[-119.5849853834344,38.18376192791685],[-119.58410969797164,38.18295222080383],[-119.58326859200264,38.18211999390898],[-119.58246299350036,38.18126616656432],[-119.5816937911206,38.180391681931624],[-119.58096183322353,38.17949750595819],[-119.5802679269402,38.178584626307455],[-119.57961283728525,38.177654051265954],[-119.57955728896479,38.17756839522615],[-119.57950556075127,38.17748126137245],[-119.57945771562899,38.177392755821806],[-119.57941381185245,38.17730298636147],[-119.57937390287567,38.17721206231742],[-119.57933803728692,38.17712009442144],[-119.57930625874975,38.17702719467613],[-119.57927860594995,38.17693347621853],[-119.57925511254828,38.176839053182334],[-119.57923580713978,38.17674404055883],[-119.57922071321892,38.17664855405697],[-119.579209849151,38.17655270996224],[-119.57920322815004,38.176456624995254],[-119.57920085826257,38.176360416169516],[-119.57920274235809,38.1762642006489],[-119.57920887812551,38.176168095605014],[-119.57921925807614,38.1760722180744],[-119.57923386955285,38.17597668481622],[-119.57925269474556,38.17588161216979],[-119.57927571071303,38.1757871159132],[-119.57930288941088,38.175693311122124],[-119.57933419772573,38.1756003120297],[-119.57936959751576,38.17550823188762],[-119.57940904565709,38.17541718282796],[-119.57945249409646,38.175327275726836],[-119.57949988990968,38.175238620069365],[-119.57955117536632,38.1751513238163],[-119.57960628799992,38.175065493272534],[-119.57966516068421,38.174981232957876],[-119.57972772171486,38.174898645479516],[-119.57979389489681,38.17481783140729],[-119.5798635996372,38.1747388891512],[-119.57993675104348,38.17466191484151],[-119.58001326002683,38.17458700221181],[-119.58009303341063,38.17451424248482],[-119.58017597404408,38.17444372426141],[-119.5802619809204,38.17437553341264],[-119.58035094929983,38.17430975297528],[-119.58044277083731,38.17424646305074],[-119.58053733371433,38.17418574070744],[-119.5805901488366,38.17415185601317],[-119.58064147271674,38.17411657220965],[-119.5806912459097,38.17407993016519],[-119.58073941076687,38.17404197232128],[-119.58078591150274,38.17400274264336],[-119.58083069425959,38.173962286569974],[-119.58087370716986,38.17392065096004],[-119.58091490041615,38.17387788403866],[-119.58095422628901,38.17383403534117],[-119.58099163924211,38.17378915565587],[-119.58102709594505,38.17374329696504],[-119.58106055533351,38.17369651238484],[-119.58109197865676,38.17364885610376],[-119.58112132952262,38.173600383319844],[-119.58114857393946,38.17355115017669],[-119.58117368035579,38.173501213698565],[-119.58119661969644,38.17345063172415],[-119.5812173653966,38.17339946283976],[-119.58123589343231,38.173347766311274],[-119.58125218234828,38.17329560201569],[-119.58126621328287,38.173243030371594],[-119.58127796998981,38.173190112269246],[-119.58128743885702,38.17313690900012],[-119.5812946089223,38.173083482185824],[-119.58129947188608,38.17302989370672],[-119.58130202212101,38.17297620563031],[-119.58130225667834,38.1729224801393],[-119.5813001752915,38.172868779459634],[-119.58129578037624,38.17281516578835],[-119.58128907702779,38.17276170122161],[-119.5812800730151,38.172708447682744],[-119.5812687787716,38.17265546685047],[-119.58053748136054,38.17065405884449],[-119.57988381915953,38.168635982258365],[-119.57930839337803,38.16660311291459],[-119.57800160806666,38.16201569393704],[-119.57776076146806,38.16122546552558],[-119.57749013861248,38.16044126763478],[-119.57718998177684,38.159663799592245],[-119.57691718767518,38.158963323248535],[-119.5766666503553,38.15825768310586],[-119.57665723900189,38.15823167615702],[-119.57664668155604,38.158205944985546],[-119.5766349909341,38.158180521069106],[-119.57662218143871,38.158155435509464],[-119.57660826874121,38.158130718994435],[-119.57659326986239,38.1581064017603],[-119.57657720315181,38.15808251355496],[-119.57656008826528,38.158059083601344],[-119.57654194614072,38.15803614056183],[-119.57652279897275,38.15801371250309],[-119.57650267018532,38.157991826861775],[-119.57648158440318,38.15797051041099],[-119.57645956742175,38.15794978922752],[-119.57643664617551,38.15792968865986],[-119.57641284870502,38.1579102332974],[-119.5763882041228,38.15789144694011],[-119.57636274257742,38.15787335256958],[-119.5763364952169,38.157855972320895],[-119.57630949415046,38.15783932745546],[-119.57628177240927,38.15782343833517],[-119.576253363906,38.15780832439727],[-119.57622430339342,38.157794004130814],[-119.57619462642182,38.1577804950539],[-119.57616436929561,38.15776781369226],[-119.57613356902876,38.157755975559084],[-119.57610226329965,38.15774499513605],[-119.57607049040497,38.157734885855554],[-119.57603828921278,38.15772566008434],[-119.5760056991151,38.15771732910832],[-119.57597275997962,38.157709903118835],[-119.57593951210097,38.15770339120012],[-119.57587578008308,38.15769273862447],[-119.57581162520526,38.157683807695115],[-119.57574712204166,38.157676608793466],[-119.5756823455712,38.15767115028758],[-119.57561737109037,38.15766743852244],[-119.57555227412587,38.15766547781259],[-119.57548713034667,38.157665270437235],[-119.57542201547625,38.15766681663741],[-119.57535700520441,38.157670114615776],[-119.57529217509938,38.15767516053877],[-119.5752276005201,38.157681948540976],[-119.57516335652839,38.157690470731964],[-119.57509951780202,38.1577007172055],[-119.57503615854763,38.15771267605098],[-119.5749733524147,38.15772633336735],[-119.57407898009262,38.15777688890122],[-119.57318290065739,38.15780239961843],[-119.57228623896125,38.15780283349577],[-119.57139012058914,38.15777818998865],[-119.57049567044227,38.157728500031595],[-119.56960401132262,38.15765382599954],[-119.56934737368375,38.157625088915786],[-119.56909216618351,38.157589281680494],[-119.56883870116171,38.157546448116975],[-119.56858728882396,38.15749664064784],[-119.56833823686202,38.15743992023065],[-119.56809185007683,38.15737635628338],[-119.56784843000527,38.157306026599336],[-119.56760827455095,38.15722901725193],[-119.56737167761936,38.15714542248917],[-119.5671389287581,38.1570553446184],[-119.56705715082725,38.15702085390829],[-119.56697693899312,38.15698414188444],[-119.56689838999436,38.1569452528241],[-119.56682159856388,38.156904233630044],[-119.56674665731423,38.156861133774115],[-119.56667365662616,38.15681600523749],[-119.56660268453943,38.156768902447915],[-119.56653382664678,38.156719882214134],[-119.56646716599047,38.15666900365732],[-119.56640278296243,38.156616328139805],[-119.56634075520701,38.15656191919098],[-119.5662811575276,38.15650584243068],[-119.56622406179622,38.15644816549012],[-119.56616953686698,38.15638895793022],[-119.56611764849299,38.15632829115771],[-119.56606845924712,38.15626623833905],[-119.56602202844648,38.15620287431211],[-119.56598703902989,38.15615102744737],[-119.56595437759802,38.15609824214443],[-119.56592408445533,38.156044583548926],[-119.56589619698327,38.155990117884095],[-119.56587074959401,38.15593491236912],[-119.56584777368802,38.155879035136124],[-119.56582729761547,38.15582255514605],[-119.56580934664109,38.15576554210362],[-119.56579394291317,38.15570806637124],[-119.56578537535707,38.15567600067697],[-119.56577543640638,38.15564418268214],[-119.56576413748239,38.155612648944604],[-119.56575149156896,38.15558143569566],[-119.56573751319752,38.155550578798255],[-119.56572221843037,38.15552011370593],[-119.56570562484224,38.15549007542195],[-119.56568775150012,38.15546049845917],[-119.56566861894132,38.155431416800404],[-119.56564824914983,38.15540286385929],[-119.56562666553111,38.15537487244196],[-119.56560389288516,38.155347474709366],[-119.56557995737805,38.15532070214027],[-119.56555488651183,38.15529458549522],[-119.5655287090929,38.15526915478092],[-119.56550145519901,38.15524443921612],[-119.5654731561446,38.15522046719776],[-119.56544384444484,38.1551972662685],[-119.56541355377828,38.15517486308504],[-119.56538231894818,38.15515328338746],[-119.56535017584254,38.155132551969686],[-119.5653171613927,38.15511269265101],[-119.5651563864123,38.15502251749349],[-119.56499194239936,38.154936566706525],[-119.56482400730664,38.15485493329531],[-119.56465276286272,38.15477770559318],[-119.56447839437534,38.15470496716583],[-119.56430109053093,38.15463679672103],[-119.56412104319051,38.15457326802348],[-119.5640828752965,38.15456098771154],[-119.56404420483436,38.154549730352215],[-119.56400507576095,38.154539508741685],[-119.56396553255443,38.15453033449889],[-119.5639256201636,38.15452221805218],[-119.5638853839569,38.154515168627476],[-119.5638448696708,38.154509194237875],[-119.56380412335781,38.15450430167443],[-119.56376319133415,38.154500496498514],[-119.56372212012711,38.15449778303548],[-119.56368095642222,38.15449616436966],[-119.56363974701009,38.15449564234105],[-119.56359853873332,38.154496217542984],[-119.56355737843315,38.15449788932166],[-119.56351631289633,38.15450065577679],[-119.56347538880196,38.15450451376371],[-119.56158258301679,38.15469906984412],[-119.56152291592409,38.154704113578006],[-119.56146307004904,38.15470759455859],[-119.56140311102061,38.1547095089685],[-119.56134310459174,38.154709854708365],[-119.56128311656748,38.15470863139904],[-119.56122321273264,38.15470584038203],[-119.56116345877967,38.154701484718025],[-119.56110392023673,38.15469556918359],[-119.56104466239557,38.154688100265936],[-119.56098575024018,38.15467908615564],[-119.56092724837531,38.1546685367379],[-119.56086922095575,38.15465646358146],[-119.56081173161586,38.15464287992614],[-119.5607938807475,38.15463866904477],[-119.56077585881735,38.15463494005225],[-119.56075768668268,38.15463169726419],[-119.56073938537455,38.15462894443359],[-119.56072097607354,38.15462668474636],[-119.56070248008518,38.15462492081769],[-119.56068391881534,38.154623654689026],[-119.56066531374546,38.15462288782567],[-119.5606466864076,38.15462262111515],[-119.56062805835963,38.15462285486614],[-119.56060945116026,38.154623588808086],[-119.56059088634404,38.154624822091606],[-119.56057238539648,38.154626553289404],[-119.56055396972918,38.15462878039788],[-119.56053566065506,38.15463150083956],[-119.56051747936368,38.15463471146604],[-119.56049944689671,38.15463840856154],[-119.56048158412358,38.15464258784734],[-119.56046391171736,38.154647244486654],[-119.56044645013083,38.154652373090215],[-119.56042921957275,38.154657967722535],[-119.56041223998454,38.15466402190887],[-119.56039553101722,38.1546705286425],[-119.56037911200855,38.15467748039301],[-119.56036300196078,38.15468486911497],[-119.56034721951859,38.15469268625718],[-119.56033178294756,38.1547009227727],[-119.56031671011297,38.15470956912913],[-119.5602643658376,38.15473960392484],[-119.56021076733485,38.15476822632046],[-119.5601559757018,38.15479540368853],[-119.56010005339581,38.15482110504877],[-119.56004306416332,38.15484530110343],[-119.5599850729672,38.154867964270665],[-119.55992614591268,38.15488906871599],[-119.55986635017197,38.15490859038176],[-119.55980575390772,38.154926507014565],[-119.55974442619527,38.154942798190596],[-119.55968243694387,38.15495744533897],[-119.55961985681706,38.154970431762834],[-119.55955675715211,38.15498174265852],[-119.55949320987851,38.15499136513228],[-119.55942928743619,38.154999288215116],[-119.55936506269278,38.15500550287518],[-119.55930060886062,38.15501000202817],[-119.5592359994132,38.15501278054527],[-119.55917130800145,38.15501383525919],[-119.55910660836977,38.15501316496762],[-119.5590419742719,38.15501077043461],[-119.55897747938691,38.1550066543898],[-119.55891319723507,38.155000821525256],[-119.55884920109418,38.15499327849006],[-119.55878556391593,38.15498403388281],[-119.55872235824268,38.1549730982418],[-119.55865965612487,38.154960484032976],[-119.55838130416713,38.15489728983054],[-119.55810523458523,38.154828134947365],[-119.55783165207313,38.15475307066021],[-119.55756075947899,38.15467215262739],[-119.5575260656228,38.15466190848679],[-119.55749094074262,38.15465262523543],[-119.55745542750653,38.15464431415007],[-119.5574195690543,38.15463698532661],[-119.55738340894501,38.154630647667766],[-119.55734699110415,38.15462530887219],[-119.55731035977024,38.15462097542515],[-119.55727355944114,38.15461765259072],[-119.55723663481997,38.15461534440529],[-119.55719963076079,38.15461405367273],[-119.55716259221415,38.15461378196096],[-119.55712556417257,38.154614529600025],[-119.5570885916157,38.15461629568174],[-119.55705171945583,38.15461907806077],[-119.55701499248336,38.15462287335722],[-119.55697845531228,38.15462767696075],[-119.55694215232606,38.15463348303622],[-119.55690612762375,38.154640284530686],[-119.55687042496633,38.154648073182024],[-119.55683508772368,38.154656839529004],[-119.5568001588218,38.15466657292271],[-119.55676568069072,38.15467726153949],[-119.55673169521292,38.15468889239535],[-119.55669824367254,38.15470145136169],[-119.55666536670512,38.15471492318247],[-119.55663310424833,38.15472929149279],[-119.55660149549347,38.15474453883869],[-119.55657057883771,38.15476064669844],[-119.5565403918377,38.15477759550488],[-119.55651097116373,38.1547953646694],[-119.55648235255528,38.15481393260679],[-119.5564545707776,38.15483327676151],[-119.55642765957947,38.15485337363513],[-119.55640165165221,38.15487419881476],[-119.55637657858996,38.15489572700283],[-119.55636042535993,38.15490959897238],[-119.55634367279865,38.15492302042025],[-119.55632634104599,38.15493597521095],[-119.55630845093813,38.15494844777007],[-119.55629002398256,38.154960423102885],[-119.55627108233223,38.15497188681249],[-119.55625164875886,38.15498282511701],[-119.5562317466256,38.154993224866246],[-119.55621139985895,38.155003073557424],[-119.55619063292004,38.15501235935027],[-119.55616947077507,38.155021071081265],[-119.55614793886546,38.15502919827695],[-119.55612606307719,38.15503673116672],[-119.55610386970963,38.155043660694346],[-119.55608138544406,38.15504997852901],[-119.55605863731141,38.15505567707532],[-119.55603565265994,38.15506074948233],[-119.55601245912223,38.15506518965187],[-119.55598908458201,38.15506899224595],[-119.55596555714061,38.15507215269297],[-119.55594190508324,38.15507466719336],[-119.5559181568449,38.155076532724145],[-119.55589434097627,38.15507774704254],[-119.55587048610926,38.15507830868869],[-119.55584662092275,38.15507821698731],[-119.555822774108,38.15507747204875],[-119.55579897433417,38.155076074768466],[-119.55577525021388,38.15507402682639],[-119.55575163026876,38.15507133068457],[-119.55572814289522,38.15506798958438],[-119.5557048163303,38.15506400754254],[-119.55568167861765,38.15505938934636],[-119.55565875757385,38.15505414054792],[-119.55563608075506,38.15504826745744],[-119.55561367542376,38.155041777135665],[-119.55559156851602,38.15503467738539],[-119.55556978660908,38.15502697674208],[-119.55554835588956,38.15501868446358],[-119.55552730212169,38.15500981051907],[-119.55550665061662,38.15500036557691],[-119.55548642620177,38.15499036099203],[-119.55546665319116,38.15497980879208],[-119.55544735535602,38.15496872166314],[-119.55542855589634,38.15495711293428],[-119.5554102774129,38.15494499656177],[-119.55539254188012,38.15493238711205],[-119.55537537061966,38.154919299744385],[-119.55535878427472,38.15490575019265],[-119.55534280278533,38.15489175474625],[-119.55532465155348,38.15487584447199],[-119.55530583067527,38.15486042695075],[-119.55528636159222,38.15484551974648],[-119.55526626648428,38.154831139841725],[-119.55524556824443,38.15481730361833],[-119.55522429045283,38.15480402683875],[-119.55520245734975,38.15479132462811],[-119.55518009380809,38.154779211456955],[-119.55515722530492,38.1547677011248],[-119.55513387789264,38.15475680674438],[-119.55511007816915,38.154746540726705],[-119.55508585324753,38.154736914767],[-119.5550612307253,38.15472793983125],[-119.55503623865287,38.15471962614383],[-119.55501090550163,38.154711983175794],[-119.55498526013147,38.154705019634086],[-119.554959331758,38.154698743451675],[-119.55493314991912,38.15469316177845],[-119.5549067444415,38.1546882809731],[-119.55488014540661,38.154684106595916],[-119.55485338311634,38.15468064340237],[-119.55482648805858,38.15467789533776],[-119.55464981406193,38.1546646976925],[-119.5544726637216,38.15465638592308],[-119.55429525366628,38.15465297019361],[-119.55411780084205,38.15465445468097],[-119.55394052224723,38.15466083756992],[-119.55385535491949,38.15466396896652],[-119.55377010306398,38.15466487683215],[-119.55368485976307,38.1546635601755],[-119.55359971808971,38.154660020434235],[-119.55351477100587,38.15465426147315],[-119.55343011126101,38.154646289580214],[-119.5533458312908,38.15463611345949],[-119.55318690667869,38.15461275065091],[-119.55302899675121,38.154585432909165],[-119.55287225932531,38.15455418753602],[-119.55271685104555,38.15451904575855],[-119.55256292722754,38.15448004269791],[-119.55241570760437,38.15444293858704],[-119.55226694487438,38.154409894287205],[-119.55211681852984,38.154380949668294],[-119.5519655097076,38.15435613965362],[-119.55181320097068,38.154335494177836],[-119.55166007608797,38.15431903815083],[-119.5515063198127,38.15430679142764],[-119.55135211765958,38.15429876878463],[-119.55119765568104,38.15429497990149],[-119.55104312024292,38.15429542934972],[-119.55088869779962,38.154300116587045],[-119.55073457466925,38.15430903595807],[-119.55058093680897,38.1543221767011],[-119.5504279695907,38.15433952296115],[-119.55027585757747,38.15436105380904],[-119.55012478430099,38.15438674326661],[-119.54997493204014,38.15441656033809],[-119.54982648160119,38.154450469047546],[-119.54967961209981,38.15448842848211],[-119.54953450074485,38.15453039284145],[-119.54939132262483,38.154576311492995],[-119.54925025049654,38.15462612903292],[-119.54911145457682,38.15467978535308],[-119.54907617646487,38.15469464322344],[-119.54904157206705,38.1547104581438],[-119.5490076830084,38.1547272110909],[-119.54897455005349,38.154744881913125],[-119.5489422130575,38.154763449354746],[-119.54891071091828,38.15478289108153],[-119.54888008152957,38.15480318370757],[-119.5488503617353,38.154824302823364],[-119.54882158728546,38.1548462230253],[-119.54879379279298,38.154868917946104],[-119.54876701169205,38.15489236028658],[-119.54874127619807,38.154916521848456],[-119.54872736238568,38.15492958282308],[-119.54871288105369,38.15494225332132],[-119.54869784976503,38.15495451797622],[-119.54868228674965,38.154966361913],[-119.54866621088239,38.154977770767104],[-119.54864964166013,38.15498873070168],[-119.5486325991781,38.15499922842427],[-119.54861510410562,38.1550092512031],[-119.54859717766087,38.155018786882316],[-119.54857884158523,38.155027823896845],[-119.5485601181169,38.155036351286405],[-119.54854102996406,38.155044358708814],[-119.54852160027707,38.15505183645249],[-119.5485018526206,38.155058775448296],[-119.54848181094498,38.155065167280384],[-119.54846149955715,38.15507100419667],[-119.54844094309114,38.15507627911797],[-119.54842016647831,38.15508098564675],[-119.54839919491695,38.15508511807484],[-119.5483780538419,38.15508867139027],[-119.54835676889348,38.15509164128356],[-119.54833536588663,38.15509402415275],[-119.54831387077942,38.155095817107785],[-119.54829230964164,38.1550970179742],[-119.54827070862318,38.15509762529548],[-119.54824909392225,38.15509763833511],[-119.54822749175374,38.15509705707724],[-119.54820592831727,38.15509588222683],[-119.54818442976551,38.15509411520882],[-119.54816302217247,38.15509175816623],[-119.54814173150172,38.155088813957775],[-119.54812058357516,38.15508528615423],[-119.54809960404144,38.15508117903425],[-119.54807881834502,38.15507649757898],[-119.54805825169528,38.155071247466246],[-119.54803792903587,38.1550654350635],[-119.54801787501452,38.15505906742015],[-119.54799811395316,38.155052152259],[-119.54797866981833,38.15504469796696],[-119.54795956619229,38.155036713584714],[-119.54794082624413,38.1550282087959],[-119.54792247270197,38.15501919391532],[-119.54790452782524,38.1550096798764],[-119.54780666433527,38.15495390608022],[-119.54771117979314,38.15489561804316],[-119.54761817775177,38.15483487898193],[-119.54752775907092,38.15477175477133],[-119.54744002180769,38.154706313872865],[-119.54741821107962,38.154690064199436],[-119.54739571217804,38.154674410464025],[-119.54737255120456,38.15465937082665],[-119.54734875502871,38.154644962734864],[-119.54732435125689,38.154631202903566],[-119.5472993682004,38.154618107295626],[-119.54727383484244,38.15460569110329],[-119.5472477808046,38.15459396873064],[-119.54722123631248,38.154582953776824],[-119.5471942321606,38.15457265902032],[-119.54716679967669,38.1545630964041],[-119.5471389706854,38.15455427702177],[-119.54711077747122,38.15454621110469],[-119.54708225274123,38.154538908010146],[-119.54705342958708,38.154532376210476],[-119.54702434144654,38.154526623283196],[-119.54699502206482,38.15452165590228],[-119.54696550545533,38.15451747983039],[-119.54693582586027,38.15451409991218],[-119.54690601771088,38.15451152006871],[-119.5468761155876,38.15450974329281],[-119.54684615417982,38.154508771645745],[-119.5468161682457,38.15450860625473],[-119.54678619257186,38.15450924731162],[-119.54675626193304,38.15451069407272],[-119.54672641105171,38.154512944859626],[-119.54669667455785,38.15451599706127],[-119.54666708694867,38.15451984713675],[-119.54663768254882,38.15452449061959],[-119.54660849547028,38.1545299221229],[-119.54657955957303,38.1545361353456],[-119.54655090842564,38.154543123079705],[-119.5465225752664,38.15455087721879],[-119.54649459296465,38.154559388767254],[-119.54646699398285,38.154568647850816],[-119.54618475185826,38.15467246796009],[-119.54590718714968,38.15478387429186],[-119.54589936642452,38.15478701194583],[-119.54589141266494,38.154789933662045],[-119.54588333542999,38.154792635929205],[-119.54587514442697,38.15479511549962],[-119.54586684950003,38.154797369393286],[-119.54585846061813,38.15479939490144],[-119.54584998786324,38.15480118958982],[-119.545841441418,38.154802751301474],[-119.54583283155375,38.15480407815954],[-119.54582416861801,38.15480516856939],[-119.54581546302204,38.154806021220516],[-119.5458067252284,38.15480663508821],[-119.54579796573834,38.15480700943468],[-119.54578919507921,38.154807143810054],[-119.54578042379175,38.154807038052844],[-119.54577166241752,38.15480669229012],[-119.54576292148609,38.154806106937464],[-119.54575421150246,38.15480528269834],[-119.54574554293447,38.15480422056335],[-119.54573692620022,38.15480292180896],[-119.54572837165541,38.15480138799608],[-119.54571988958114,38.15479962096805],[-119.54571149017127,38.15479762284853],[-119.5457031835204,38.15479539603888],[-119.5456949796116,38.154792943215355],[-119.54568688830447,38.15479026732579],[-119.54567891932334,38.154787371586124],[-119.5456710822454,38.154784259476465],[-119.54566338648945,38.15478093473711],[-119.54565584130434,38.154777401363724],[-119.545648455758,38.15477366360277],[-119.54564123872649,38.154769725946394],[-119.54563419888338,38.15476559312694],[-119.54562734468918,38.15476127011127],[-119.54562068438145,38.15475676209491],[-119.54561422596454,38.15475207449564],[-119.54560797720032,38.15474721294714],[-119.54560194559858,38.154742183292065],[-119.54559613840819,38.15473699157515],[-119.54559056260823,38.1547316440359],[-119.54558522489978,38.154726147101066],[-119.54558013169776,38.15472050737694],[-119.54557528912316,38.154714731641484],[-119.54557070299579,38.154708826836014],[-119.54556637882733,38.15470280005703],[-119.5455623218145,38.154696658547635],[-119.54555853683307,38.154690409688754],[-119.54555502843179,38.154684060990384],[-119.54555180082704,38.15467762008246],[-119.5455488578977,38.15467109470578],[-119.54554620318059,38.1546644927026],[-119.5455438398661,38.15465782200733],[-119.5455417707944,38.15465109063688],[-119.54553499892097,38.15462902045315],[-119.54552728477887,38.15460714392853],[-119.54551863721116,38.15458548613864],[-119.54550906613075,38.15456407190831],[-119.54549858250913,38.154542925783204],[-119.5454871983637,38.154522072001676],[-119.54547492674408,38.15450153446697],[-119.5454617817171,38.15448133671974],[-119.54544777835062,38.154461501911236],[-119.54543293269636,38.15444205277663],[-119.54541726177145,38.154423011609055],[-119.54540078353894,38.15440440023395],[-119.54538351688717,38.15438623998412],[-119.54536548160813,38.1543685516753],[-119.54534669837479,38.154351355582165],[-119.54532718871744,38.15433467141532],[-119.5453069749989,38.15431851829847],[-119.545286080389,38.15430291474662],[-119.54526452883799,38.154287878644915],[-119.54516861368602,38.154220982854376],[-119.54507559218888,38.15415158601297],[-119.54498556888285,38.154079766113846],[-119.54489864493357,38.15400560387317],[-119.54481491802261,38.15392918263937],[-119.54473448223762,38.15385058829936],[-119.5446574279666,38.15376990918217],[-119.54458384179631,38.15368723595938],[-119.54451380641508,38.15360266154351],[-119.54446728253376,38.15354208285146],[-119.54442342576345,38.15348027605896],[-119.54438228802955,38.15341731435332],[-119.54434391803746,38.15335327228929],[-119.54430836121479,38.15328822570066],[-119.54427565965776,38.15322225161051],[-119.54424585208118,38.15315542814],[-119.5442189737728,38.15308783441584],[-119.54419505655153,38.15301955047666],[-119.54417412872971,38.15295065717805],[-119.54415621507974,38.152881236097016],[-119.54414133680471,38.152811369435234],[-119.54412951151335,38.15274113992182],[-119.54412075319921,38.15267063071527],[-119.54411845041264,38.15264189794137],[-119.54411741249099,38.15261311935382],[-119.54411764068453,38.15258432966169],[-119.54411913471661,38.15255556358738],[-119.54412189278383,38.15252685582475],[-119.54412591155834,38.152498240997325],[-119.54413118619175,38.15246975361651],[-119.54413771032102,38.15244142803993],[-119.54414547607627,38.15241329843004],[-119.54415447409002,38.15238539871292],[-119.5441646935088,38.152357762537335],[-119.544176122006,38.15233042323415],[-119.54418874579686,38.15230341377619],[-119.54420254965503,38.15227676673839],[-119.54421751693106,38.152250514258576],[-119.54423362957235,38.15222468799868],[-119.544250868145,38.15219931910655],[-119.54426921185728,38.15217443817839],[-119.54428863858462,38.15215007522187],[-119.5443091248964,38.15212625961994],[-119.54433064608408,38.15210302009536],[-119.54458898964134,38.15184205916346],[-119.54485695823689,38.15158722286749],[-119.5451343190656,38.15133873251145],[-119.54542083117333,38.15109680388623],[-119.54571624566627,38.150861647082415],[-119.54590920728235,38.15070733635281],[-119.54609539970552,38.15054792446787],[-119.54627460683896,38.150383596480125],[-119.54644662069879,38.1502145431476],[-119.54661124165554,38.1500409607125],[-119.54676827866571,38.149863050673076],[-119.54691754949343,38.14968101954979],[-119.54705888092172,38.14949507864534],[-119.54719210895362,38.1493054437994],[-119.54726595272314,38.14919157911084],[-119.5473350936091,38.149075887749454],[-119.54739945926913,38.14895849080062],[-119.54745898235976,38.14883951113415],[-119.54751360060669,38.14871907327585],[-119.54756325687005,38.14859730327709],[-119.54760789920397,38.14847432858281],[-119.54764748091094,38.14835027789821],[-119.54780402603224,38.14785288271226],[-119.54797682477036,38.14735885482911],[-119.5480069436849,38.14727159211778],[-119.54803343579151,38.14718359880902],[-119.5480562728097,38.14709496887952],[-119.54807543036283,38.14700579698554],[-119.54809088800413,38.14691617836179],[-119.54810262923857,38.14682620871981],[-119.54811064154025,38.146735984145586],[-119.54811805928489,38.146580586122624],[-119.54811917900359,38.14642508023705],[-119.54811399959021,38.146269625631554],[-119.548102526385,38.14611438139538],[-119.54808477116892,38.14595950640154],[-119.54806075215153,38.14580515914415],[-119.54803049395211,38.145651497576324],[-119.54799402757435,38.14549867894848],[-119.54795139037442,38.145346859647454],[-119.54790262602269,38.14519619503652],[-119.54785133710172,38.14505675310496],[-119.54779426687836,38.144918719252104],[-119.54773147717427,38.1447822429263],[-119.54766303600245,38.14464747188867],[-119.54758901749351,38.144514552053344],[-119.54750950181521,38.14438362732941],[-119.54742457508561,38.144254839465106],[-119.54733432927976,38.1441283278945],[-119.54723886212994,38.14400422958648],[-119.54713827701985,38.14388267889648],[-119.54703268287248,38.143763807421166],[-119.54692219403229,38.14364774385594],[-119.54691104508522,38.143636813805784],[-119.5468994318314,38.14362618957079],[-119.54688736771121,38.14361588344649],[-119.54687486668675,38.143605907360325],[-119.54686194322575,38.1435962728577],[-119.54684861228489,38.143586991088725],[-119.54683488929227,38.14357807279531],[-119.54682079012984,38.14356952829865],[-119.54680633111478,38.14356136748741],[-119.5467915289808,38.14355359980615],[-119.54677640085858,38.14354623424447],[-119.54676096425615,38.143539279326625],[-119.54674523703846,38.14353274310155],[-119.54672923740686,38.14352663313371],[-119.54671298387787,38.14352095649419],[-119.54669649526186,38.14351571975263],[-119.54667979064125,38.14351092896954],[-119.54647368478341,38.14345787525032],[-119.54626550544745,38.14341013745088],[-119.54605547239134,38.143367765963404],[-119.54584380732858,38.143330805515426],[-119.54582415013427,38.14332790999008],[-119.54580437990369,38.143325542631025],[-119.54578451938328,38.143323706161986],[-119.54576459142332,38.143322402695894],[-119.5457446189517,38.143321633732455],[-119.54572462494755,38.14332140015637],[-119.54570463241473,38.143321702236385],[-119.54568466435543,38.143322539624954],[-119.54566474374366,38.14332391135862],[-119.54564489349882,38.14332581585915],[-119.54562513645948,38.14332825093534],[-119.54560549535681,38.14333121378555],[-119.54558599278873,38.14333470100091],[-119.54556665119371,38.143338708569175],[-119.54554749282504,38.14334323187958],[-119.54552853972518,38.143348265727816],[-119.54550981370056,38.143353804322246],[-119.54545013979507,38.14337516825762],[-119.5453895761566,38.14339490897947],[-119.54532819355448,38.1434130034203],[-119.54526606371522,38.14342943043633],[-119.54520325923862,38.14344417083222],[-119.54513985351298,38.14345720738344],[-119.54507592062927,38.14346852485647],[-119.54501153529462,38.14347811002653],[-119.54494677274485,38.14348595169313],[-119.54488170865677,38.143492040693054],[-119.54481641905953,38.14349636991112],[-119.54475098024585,38.14349893428855],[-119.54468546868291,38.14349973082879],[-119.53689243212791,38.143502560359515],[-119.53494699138858,38.14350355009535],[-119.53009317265794,38.143504738901456],[-119.529670014142,38.14338327381478],[-119.52884633852976,38.142840014789286],[-119.52804613622153,38.14227530364438],[-119.52727030222879,38.14168977237553],[-119.52651970422943,38.14108407626413],[-119.5263924331287,38.14097634819185],[-119.5262606212457,38.140872081631834],[-119.52612441944142,38.14077139590434],[-119.52598398359864,38.14067440623137],[-119.5258394744435,38.14058122360475],[-119.52569105736167,38.14049195465935],[-119.52553890220898,38.140406701550894],[-119.52538318311709,38.14032556183927],[-119.5252240782943,38.140248628376824],[-119.52506176982165,38.14017598920227],[-119.5248964434445,38.14010772743981],[-119.5247282883602,38.14004392120426],[-119.52455749700151,38.139984643511546],[-119.52438426481649,38.139929962195254],[-119.52420879004504,38.139879939829],[-119.52403127349191,38.13983463365496],[-119.52385191829725,38.13979409551826],[-119.52367092970412,38.1397583718078],[-119.52348851482374,38.13972750340308],[-119.52330488239856,38.13970152562754],[-119.52312024256369,38.13968046820815],[-119.52293480660634,38.13966435524136],[-119.52239800526904,38.13961753758189],[-119.52186357935761,38.13955606503858],[-119.52133217017786,38.13948001137787],[-119.5208044154101,38.139389467863126],[-119.520280948343,38.13928454314502],[-119.51976239711244,38.13916536313087],[-119.51924938394687,38.13903207083352],[-119.51874252441961,38.138884826199245],[-119.51824242670939,38.13872380591576],[-119.51774969086958,38.138549203199794],[-119.51726490810744,38.138361227564936],[-119.51678866007398,38.138160104569955],[-119.51644947909072,38.138016759411336],[-119.51610432131314,38.13788260964193],[-119.51575358622355,38.13775781051427],[-119.51539767975244,38.13764250645852],[-119.51503701380909,38.13753683091557],[-119.51467200580538,38.13744090618274],[-119.51430307817286,38.13735484327237],[-119.51393065787457,38.13727874178354],[-119.51355517591129,38.13721268978681],[-119.51317706682316,38.13715676372246],[-119.51279676818737,38.137111028312226],[-119.51241472011233,38.137075536484275],[-119.5120313647288,38.137050329312146],[-119.51164714567874,38.13703543596728],[-119.51126250760261,38.13703087368521],[-119.51087789562517,38.1370366477457],[-119.5106260433755,38.1370403773895],[-119.51037417826235,38.13703723596184],[-119.51012260072477,38.13702722720996],[-119.5098716108584,38.137010363072804],[-119.50962150805748,38.13698666366679],[-119.50937259065728,38.136956157261714],[-119.50912515557818,38.13691888024702],[-119.50887949797104,38.13687487708853],[-119.50863591086512,38.1368242002751],[-119.50839468481814,38.13676691025616],[-119.50815610756952,38.13670307536948],[-119.507920463697,38.136632771759665],[-119.5078313347378,38.13660618333711],[-119.50774109427817,38.13658204682605],[-119.50764985040672,38.136560391136584],[-119.50755771241354,38.13654124220733],[-119.50746479065943,38.13652462297431],[-119.50737119644369,38.13651055334362],[-119.5072770418709,38.1364990501674],[-119.50718243971664,38.136490127223844],[-119.50708750329242,38.1364837952006],[-119.50699234631003,38.136480061681915],[-119.5068970827454,38.136478931139756],[-119.50680182670206,38.13648040492819],[-119.50670669227449,38.136484481281975],[-119.50661179341164,38.1364911553186],[-119.50651724378032,38.13650041904408],[-119.50642315662914,38.13651226136262],[-119.50632964465295,38.13652666808986],[-119.50623681985783,38.136543621969814],[-119.50614479342701,38.13656310269562],[-119.5060536755877,38.13658508693377],[-119.50596357547902,38.136609548352176],[-119.50587460102157,38.13663645765154],[-119.50578685878783,38.13666578260056],[-119.50570045387481,38.13669748807448],[-119.50561548977811,38.136731536097166],[-119.50553206826787,38.13676788588658],[-119.50545028926712,38.13680649390359],[-119.50537025073181,38.13684731390411],[-119.50529204853382,38.136890296994636],[-119.50521577634589,38.13693539169046],[-119.50514152552954,38.13698254397765],[-119.50506938502555,38.13703169737763],[-119.50499944124763,38.137082793014685],[-119.5049317779787,38.13713576968669],[-119.5048664762706,38.1371905639382],[-119.5048036143471,38.137247110136606],[-119.50474326751001,38.13730534055061],[-119.5046855080492,38.13736518543146],[-119.50463040515574,38.13742657309634],[-119.50457802483919,38.13748943001436],[-119.50452842984852,38.13755368089452],[-119.50448167959675,38.137619248775906],[-119.50443783009,38.13768605511989],[-119.50439693386012,38.137754019904214],[-119.50435903990197,38.13782306171873],[-119.50432419361454,38.13789309786299],[-119.5042924367466,38.13796404444528],[-119.50426380734666,38.13803581648313],[-119.50423833971738,38.138108328004954],[-119.5042160643743,38.13818149215328],[-119.5040154221194,38.138851123902356],[-119.50379162800022,38.13951616335708],[-119.50354484937114,38.14017611135011],[-119.50327527085302,38.140830472522616],[-119.50321474748563,38.14097905302166],[-119.503160657598,38.14112917328503],[-119.50311306381627,38.14128065961016],[-119.5030720212511,38.14143333671274],[-119.50303757743367,38.141587027929596],[-119.50300977226054,38.14174155542301],[-119.50298863794724,38.14189674038648],[-119.50297419899093,38.142052403251704],[-119.50296647214164,38.142208363896195],[-119.50296546638296,38.142364441851825],[-119.50297118292127,38.14252045651361],[-119.50298361518416,38.142676227348645],[-119.50300274882795,38.1428315741051],[-119.50302856175394,38.14298631702073],[-119.50306102413388,38.14314027703095],[-119.50310009844432,38.14329327597602],[-119.50314573950975,38.143445136807266],[-119.50319789455479,38.14359568379199],[-119.50325650326499,38.14374474271675],[-119.50332149785655,38.14389214108916],[-119.50339280315453,38.14403770833736],[-119.50347033667968,38.144181276007544],[-119.50350862995813,38.144252124020575],[-119.50354390442799,38.144323942920714],[-119.5035761206896,38.144396652508256],[-119.50360524275816,38.144470171588665],[-119.50363123810378,38.1445444180632],[-119.50365407768794,38.1446193090206],[-119.50367373599592,38.14469476082963],[-119.50369019106535,38.14477068923259],[-119.5037034245107,38.14484700943919],[-119.50371342154402,38.144923636221414],[-119.50372017099133,38.14500048400864],[-119.5037236653052,38.14507746698312],[-119.5037239005733,38.14515449917595],[-119.5037208765227,38.14523149456295],[-119.50371459652028,38.14530836716081],[-119.50370506756899,38.14538503112306],[-119.50369230030014,38.145461400835984],[-119.50367630896147,38.14553739101416],[-119.50365711140135,38.1456129167958],[-119.50363472904884,38.14568789383746],[-119.50360918688997,38.145762238408246],[-119.5035491019547,38.145937467837015],[-119.50349668577596,38.146114225901],[-119.50345200045956,38.146292303352865],[-119.50341509896063,38.14647148938183],[-119.50338602502076,38.14665157186332],[-119.5033648131159,38.14683233760999],[-119.50335148841528,38.14701357262408],[-119.50334606675142,38.14719506235075],[-119.50334855460098,38.147376591932044],[-119.50335894907697,38.14755794646133],[-119.50337723793174,38.14773891123764],[-119.50340339957134,38.14791927201988],[-119.5034374030807,38.14809881528047],[-119.50347920826003,38.14827732845822],[-119.50352876567216,38.148454600209874],[-119.5035860167007,38.14863042066049],[-119.50365089361934,38.148804581651895],[-119.50372331967164,38.148976876989096],[-119.50380320916177,38.14914710268454],[-119.50389046755575,38.14931505719967],[-119.50398499159301,38.149480541683495],[-119.50408666940862,38.14964336020819],[-119.50419538066545,38.14980332000106],[-119.50431099669642,38.149960231672836],[-119.50443338065679,38.15011390944203],[-119.504562387686,38.15026417135489],[-119.50469786507888,38.150410839501],[-119.50483965246659,38.15055374022393],[-119.50498758200624,38.15069270432688],[-119.50514147857946,38.15082756727328],[-119.50530115999986,38.15095816938144],[-119.50534026053475,38.150990159299226],[-119.50537793119882,38.15102320179399],[-119.50541412657972,38.15105725703434],[-119.50544880304332,38.15109228396806],[-119.50548191878633,38.1511282403715],[-119.50551343388665,38.15116508290054],[-119.50554331035148,38.15120276714279],[-119.50557151216323,38.15124124767113],[-119.5055980053229,38.15128047809847],[-119.50562275789098,38.15132041113367],[-119.50564574002613,38.151360998638566],[-119.50566692402104,38.151402191685975],[-119.50568628433588,38.15144394061858],[-119.5057037976291,38.15148619510897],[-119.50571944278559,38.15152890422019],[-119.50573320094215,38.151572016467135],[-119.50574505551019,38.151615479878664],[-119.50575499219586,38.15165924206019],[-119.50576299901716,38.15170325025692],[-119.50576906631849,38.15174745141735],[-119.50577318678229,38.15179179225733],[-119.50577535543783,38.15183621932412],[-119.50577556966729,38.15188067906107],[-119.5057738292089,38.151925117872],[-119.50577013615727,38.15196948218582],[-119.50576449496083,38.15201371852118],[-119.50575691241662,38.15205777355099],[-119.505747397662,38.15210159416649],[-119.50573596216367,38.15214512754152],[-119.50572261970387,38.1521883211961],[-119.50570738636382,38.15223112305961],[-119.50569028050428,38.152273481533776],[-119.50567132274351,38.152315345554626],[-119.50565053593235,38.15235666465426],[-119.50562794512666,38.15239738902157],[-119.50560357755735,38.152437469562386],[-119.50557746259726,38.15247685795851],[-119.50554963172597,38.152515506726175],[-119.50552011849176,38.152553369273114],[-119.50548895847126,38.152590399954825],[-119.5054561892265,38.152626554129576],[-119.50542185025965,38.15266178821225],[-119.50538598296541,38.152696059726836],[-119.50534863058112,38.15272932735771],[-119.50530983813465,38.152761550999394],[-119.5052696523901,38.152792691804954],[-119.50522812179143,38.15282271223278],[-119.5051852964041,38.15285157609193],[-119.50514122785462,38.15287924858568],[-119.50509596926844,38.152905696353486],[-119.50504957520575,38.15293088751129],[-119.50500210159585,38.15295479168991],[-119.50495360566968,38.15297738007162],[-119.50478712431027,38.153054938473176],[-119.5046241704166,38.15313703555471],[-119.50446494235065,38.15322357138608],[-119.50430963394122,38.15331444063395],[-119.5041584342481,38.15340953268981],[-119.504011527332,38.153508731804614],[-119.50386909203044,38.153611917229625],[-119.50373130174007,38.153718963363296],[-119.50359832420573,38.15382973990414],[-119.50347032131602,38.15394411200926],[-119.50334744890641,38.15406194045843],[-119.50322985656939,38.15418308182352],[-119.50311768747234,38.15430738864296],[-119.50301107818319,38.15443470960132],[-119.50291015850414,38.154564889713285],[-119.50281505131345,38.1546977705124],[-119.50272587241585,38.15483319024377],[-119.50264273040145,38.154970984061116],[-119.50256572651335,38.155110984227164],[-119.5024949545244,38.155253020317964],[-119.50243050062272,38.15539691943026],[-119.5023724433068,38.155542506391825],[-119.50232085328963,38.1556896039748],[-119.50227579341258,38.15583803311141],[-119.50223731856859,38.15598761311175],[-119.50220547563532,38.15613816188395],[-119.5021803034177,38.15628949615561],[-119.50216183260073,38.15644143169708],[-119.50215008571168,38.156593783545546],[-119.50214507709265,38.15674636623035],[-119.50214681288284,38.15689899399862],[-119.50215529101085,38.15705148104153],[-119.50217050119707,38.15720364172042],[-119.50217312980215,38.157229876174085],[-119.50217461000166,38.1572561666361],[-119.50217494003033,38.15728248177376],[-119.50217411949363,38.15730879022495],[-119.50217214936822,38.15733506063544],[-119.50216903200088,38.157361261696344],[-119.50216477110561,38.15738736218138],[-119.50215937175932,38.1574133309841],[-119.50215284039581,38.157439137154945],[-119.5021451847979,38.15746474993818],[-119.50213641408834,38.1574901388085],[-119.50212653871903,38.157515273507464],[-119.50211557045822,38.15754012407945],[-119.50210352237691,38.15756466090749],[-119.50209040883297,38.15758885474846],[-119.5020762454541,38.15761267676805],[-119.50206104911939,38.15763609857502],[-119.50204483793893,38.15765909225507],[-119.5020276312324,38.15768163040412],[-119.50200944950606,38.15770368616101],[-119.50199031442824,38.15772523323941],[-119.50197024880352,38.15774624595928],[-119.50194927654559,38.1577666992774],[-119.50192742264875,38.15778656881721],[-119.50190471315814,38.157805830897914],[-119.50188117513856,38.15782446256263],[-119.50185683664253,38.15784244160586],[-119.50183172667646,38.15785974659985],[-119.50180587516634,38.1578763569202],[-119.50177931292207,38.15789225277039],[-119.5017520716006,38.15790741520544],[-119.5017241836683,38.15792182615449],[-119.5016956823623,38.157935468442176],[-119.50166660165071,38.1579483258094],[-119.50163697619236,38.15796038293241],[-119.5016068412953,38.15797162544128],[-119.50157623287484,38.1579820399369],[-119.50154518741063,38.15799161400704],[-119.50151374190328,38.15800033624105],[-119.50148193383026,38.1580081962436],[-119.50144980110115,38.15801518464691],[-119.5014173820125,38.15802129312199],[-119.50138471520219,38.15802651438869],[-119.50135183960337,38.158030842224065],[-119.50131879439807,38.15803427147013],[-119.50128561897046,38.15803679803983],[-119.50125235285988,38.158038418921905],[-119.50121903571385,38.15803913218456],[-119.50118570724065,38.158038936977725],[-119.50115240716214,38.15803783353401],[-119.50111917516622,38.158035823168554],[-119.50108605085973,38.15803290827735],[-119.50105307372115,38.15802909233448],[-119.50102028305348,38.158024379887834],[-119.5009877179375,38.158018776553895],[-119.50095541718517,38.158012289010806],[-119.50092341929331,38.15800492499062],[-119.50089176239777,38.15799669326996],[-119.50086048422794,38.157987603659635],[-119.5008296220618,38.157977666992785],[-119.50079921268149,38.15796689511225],[-119.50076929232942,38.15795530085617],[-119.5007398966652,38.1579428980429],[-119.500711060723,38.15792970145436],[-119.50068281886985,38.15791572681855],[-119.50065520476466,38.157900990790736],[-119.50062825131816,38.15788551093366],[-119.50060199065358,38.15786930569649],[-119.50057645406847,38.15785239439295],[-119.5005516719973,38.15783479717828],[-119.50052767397528,38.15781653502513],[-119.50050448860304,38.15779762969865],[-119.5004821435127,38.157778103730514],[-119.50046066533483,38.157757980392084],[-119.50044007966669,38.15773728366665],[-119.50042041104184,38.15771603822081],[-119.50040168290074,38.157694269375206],[-119.50032932011514,38.15761012650629],[-119.50025335802836,38.157527985320364],[-119.5001738853839,38.15744794176704],[-119.50009099502505,38.157370089345434],[-119.5000047837865,38.15729451899484],[-119.49991535238102,38.157221318988725],[-119.49982280528195,38.157150574831356],[-119.49972725060111,38.15708236915822],[-119.49962879996245,38.157016781639356],[-119.4995275683718,38.15695388888642],[-119.49942367408237,38.15689376436308],[-119.49931723845671,38.156836478299454],[-119.49920838582501,38.156782097609856],[-119.49909724333982,38.15673068581481],[-119.49898394082756,38.1566823029668],[-119.49886861063686,38.15663700558025],[-119.49875138748409,38.15659484656541],[-119.49863240829603,38.15655587516662],[-119.49851181204984,38.156520136904824],[-119.49838973961093,38.156487673524445],[-119.49826633356834,38.15645852294451],[-119.49814173806837,38.156432719214536],[-119.49801609864609,38.15641029247474],[-119.49793186319306,38.15639523840926],[-119.49784833974655,38.15637788634456],[-119.49776562882751,38.15635825716405],[-119.49768382997864,38.15633637449163],[-119.49760304164487,38.156312264663235],[-119.49752336105453,38.156285956695186],[-119.49744488410262,38.15625748224934],[-119.49736770523512,38.156226875594704],[-119.4972919173355,38.15619417356654],[-119.49721761161278,38.156159415521735],[-119.49714487749188,38.15612264329159],[-119.49707380250585,38.156083901131424],[-119.4970044721906,38.15604323566721],[-119.4969369699819,38.15600069583967],[-119.49687137711503,38.15595633284511],[-119.49680777252694,38.15591020007392],[-119.49674623276127,38.1558623530464],[-119.49668683187623,38.15581284934569],[-119.49662964135557,38.15576174854872],[-119.49657473002237,38.155709112154256],[-119.49652216395639,38.15565500350914],[-119.49647200641444,38.155599487731756],[-119.49642431775433,38.155542631633885],[-119.49637915536232,38.155484503640174],[-119.49633657358383,38.155425173705765],[-119.49629662365838,38.15536471323217],[-119.49625935365769,38.15530319498127],[-119.49622480842794,38.155240692987775],[-119.49619302953593,38.155177282470106],[-119.49616405521887,38.155113039739845],[-119.4961379203386,38.15504804210992],[-119.49611465633954,38.15498236780154],[-119.49609429121095,38.15491609585006],[-119.49607684945323,38.15484930600986],[-119.4960623520485,38.15478207865832],[-119.49605081643536,38.15471449469919],[-119.49604225648804,38.15464663546508],[-119.49603668249958,38.1545785826197],[-119.49603410116958,38.15451041805955],[-119.49603451559625,38.1544422238153],[-119.49603792527252,38.15437408195315],[-119.49604432608687,38.154306074476054],[-119.49605371032825,38.154238283225],[-119.49606606669538,38.15417078978054],[-119.49608138031044,38.15410367536467],[-119.49609963273697,38.154037020742976],[-119.4961208020021,38.15397090612757],[-119.49614486262305,38.15390541108049],[-119.49617178563784,38.153840614418],[-119.49620153864011,38.1537765941157],[-119.4962340858182,38.15371342721474],[-119.49626938799834,38.153651189729125],[-119.49630740269168,38.15358995655425],[-119.49634808414555,38.15352980137669],[-119.49639138339852,38.15347079658564],[-119.49643724833935,38.15341301318581],[-119.49648562376966,38.15335652071195],[-119.49653645147055,38.15330138714517],[-119.49662789151354,38.15320223541523],[-119.49671496413086,38.153100661886675],[-119.49679756656165,38.1529967864549],[-119.49687560132287,38.152890731731986],[-119.4969489763243,38.152782622901874],[-119.497017604977,38.15267258757255],[-119.49708140629573,38.152560755625416],[-119.49714030499419,38.15244725906199],[-119.49719423157389,38.152332231847936],[-119.4972431224062,38.1522158097551],[-119.49728691980718,38.15209813020108],[-119.49732557210564,38.15197933208713],[-119.49735903370407,38.15185955563402],[-119.49738726513228,38.151738942216674],[-119.49741023309383,38.15161763419724],[-119.49742791050538,38.15149577475698],[-119.49744027652837,38.15137350772733],[-119.49744731659354,38.151250977420126],[-119.49744902241807,38.15112832845721],[-119.49744539201511,38.151005705599836],[-119.49743642969612,38.150883253577646],[-119.49742214606563,38.15076111691801],[-119.49740255800847,38.15063943977538],[-119.49737768866994,38.15051836576113],[-119.49734756742815,38.150398037774124],[-119.49731222985938,38.150278597832],[-119.4972717176959,38.15016018690366],[-119.49722607877666,38.15004294474281],[-119.49717536699065,38.14992700972308],[-119.49711964221318,38.14981251867477],[-119.49705897023527,38.14969960672328],[-119.4969934226857,38.14958840712978],[-119.49692307694646,38.14947905113382],[-119.49684801606142,38.1493716677986],[-119.49676832863811,38.14926638385863],[-119.4966841087431,38.14916332357009],[-119.49659545579101,38.14906260856439],[-119.49650247442703,38.14896435770454],[-119.4964052744034,38.1488686869449],[-119.49630397044976,38.14877570919441],[-119.49619868213784,38.148685534183414],[-119.49540130442631,38.148044517776675],[-119.49458082326807,38.14742195410787],[-119.49373792351119,38.146818362399145],[-119.4928733086487,38.1462342460377],[-119.49198770023162,38.14567009215702],[-119.49186179762187,38.145594859894885],[-119.4917328031628,38.145522968558346],[-119.49160085894844,38.14545449733474],[-119.49146611032072,38.145389521643956],[-119.49132870570936,38.14532811305542],[-119.49118879646846,38.145270339209326],[-119.49104653670976,38.14521626374209],[-119.49090208313295,38.14516594621637],[-119.49075559485321,38.14511944205542],[-119.4906072332259,38.14507680248205],[-119.49045716166889,38.14503807446233],[-119.49030554548264,38.1450033006538],[-119.49024541097165,38.14498947271007],[-119.49018591783049,38.144974011058615],[-119.49012713720215,38.144956934188826],[-119.49006913937744,38.14493826252167],[-119.490011993711,38.14491801838512],[-119.48995576853814,38.14489622598756],[-119.48990053109338,38.1448729113888],[-119.48984634742985,38.14484810246889],[-119.48979328234033,38.144821828894784],[-119.48974139927982,38.144794122084924],[-119.48969076028968,38.14476501517152],[-119.48964142592327,38.14473454296107],[-119.4895934551737,38.144702741892644],[-119.48954690540322,38.14466964999433],[-119.48950183227463,38.14463530683777],[-119.48945828968473,38.14459975349082],[-119.48941632969986,38.14456303246843],[-119.48937600249366,38.14452518768178],[-119.48933735628701,38.14448626438578],[-119.48930043729047,38.144446309125016],[-119.48926528964898,38.14440536967797],[-119.48923195538904,38.14436349499995],[-119.48920047436857,38.14432073516454],[-119.48917088422915,38.144277141303675],[-119.48914322035111,38.14423276554656],[-119.48911751581107,38.14418766095729],[-119.48909380134269,38.14414188147135],[-119.48907210529963,38.144095481831194],[-119.4890524536219,38.14404851752076],[-119.48903486980463,38.14400104469907],[-119.48901937487021,38.14395312013314],[-119.48900598734306,38.143904801130034],[-119.48899472322749,38.14385614546839],[-119.4889855959886,38.14380721132929],[-119.48897861653623,38.14375805722668],[-119.4889737932119,38.14370874193748],[-119.48897113177883,38.14365932443114],[-119.48897063541516,38.14360986379932],[-119.48897230471002,38.14356041918506],[-119.48897613766306,38.14351104971215],[-119.48898212968663,38.14346181441444],[-119.48899027361144,38.143412772165206],[-119.48900055969514,38.143363981606754],[-119.48901297563394,38.14331550108032],[-119.48902750657729,38.14326738855637],[-119.48904413514587,38.14321970156512],[-119.48906284145212,38.14317249712795],[-119.48908360312427,38.143125831689005],[-119.4891063953329,38.14307976104798],[-119.48913119082083,38.1430343402931],[-119.4891769208719,38.14295063696927],[-119.48921902050077,38.14286575400117],[-119.48925744102819,38.142779789563114],[-119.48929213803068,38.14269284307983],[-119.48932307139161,38.14260501511155],[-119.48935020534785,38.14251640723763],[-119.4893735085308,38.14242712193916],[-119.48939295400275,38.142337262480225],[-119.48940851928796,38.14224693278871],[-119.48942018639856,38.14215623733592],[-119.48942794185528,38.14206528101581],[-119.48943177670304,38.14197416902368],[-119.48943168652119,38.14188300673449],[-119.4894276714285,38.14179189958096],[-119.4894197360831,38.1417009529317],[-119.48940788967688,38.141610271969284],[-119.4893921459249,38.141519961568626],[-119.48922160101982,38.14054195469546],[-119.48909316300814,38.139559941394396],[-119.48900697804994,38.13857505202502],[-119.48896314365544,38.13758842021316],[-119.48896170858065,38.136601181545814],[-119.48900267277898,38.1356144722639],[-119.48908598740914,38.134629427954565],[-119.48909619585366,38.13450845051485],[-119.48910115581508,38.13438726797753],[-119.48910086150683,38.13426602235131],[-119.48909531329963,38.134144855718134],[-119.48908451772095,38.13402391006672],[-119.48906848744723,38.13390332712608],[-119.48904724128883,38.13378324819962],[-119.48902080416798,38.133663813999355],[-119.48898920708939,38.13354516448116],[-119.48895248710386,38.13342743868075],[-119.48891068726462,38.13331077455077],[-119.488863856577,38.133195308799145],[-119.48881204994062,38.13308117672884],[-119.48875532808522,38.132968512079486],[-119.48869375749922,38.13285744687061],[-119.4886274103518,38.132748111246876],[-119.48855636440817,38.13264063332573],[-119.48848070293853,38.132535139047235],[-119.4884005146202,38.132431752026555],[-119.48831589343382,38.132330593409165],[-119.48822693855304,38.1322317817288],[-119.48813375422841,38.13213543276874],[-119.48803644966496,38.132041659426164],[-119.48793513889434,38.13195057157976],[-119.48782994064119,38.13186227596115],[-119.4877209781839,38.13177687602981],[-119.48760837921019,38.13169447185189],[-119.4874922756675,38.13161515998291],[-119.4873728036083,38.13153903335485],[-119.48725010303077,38.13146618116711],[-119.48712431771469,38.13139668878212],[-119.48699559505305,38.13133063762529],[-119.48686408587929,38.131268105089724],[-119.4867299442907,38.13120916444553],[-119.48659332746779,38.13115388475389],[-119.48645439549021,38.13110233078642],[-119.48631331114926,38.131054562949025],[-119.48617023975716,38.13101063721134],[-119.48602534895342,38.13097060504112],[-119.48587880850846,38.13093451334391],[-119.4857307901248,38.13090240440819],[-119.48558146723597,38.1308743158558],[-119.4854310148033,38.13085028059786],[-119.48527960911099,38.13083032679628],[-119.48512742755977,38.13081447783075],[-119.48497464845899,38.130802752271265],[-119.48376626473541,38.130738934248036],[-119.4825561916251,38.130699917212795],[-119.48204444363292,38.13068192458701],[-119.48153373922928,38.13065047052446],[-119.48102464589046,38.13060558997545],[-119.4805177293,38.13054733280926],[-119.48001355271916,38.1304757637584],[-119.47951267636022,38.13039096234674],[-119.47901565676298,38.13029302280102],[-119.47852304617568,38.1301820539459],[-119.47803539194051,38.13005817908297],[-119.47755323588459,38.12992153585353],[-119.47707711371731,38.129772276085426],[-119.47660755443434,38.129610565624105],[-119.47614507972912,38.12943658414811],[-119.47569020341287,38.129250524969194],[-119.47537324746051,38.12912081845301],[-119.47505105473498,38.12899942992613],[-119.47472397496405,38.128886491142595],[-119.47439236317467,38.128782124684584],[-119.47405657930811,38.12868644382952],[-119.47371698782943,38.12859955242719],[-119.4733739573323,38.128521544787176],[-119.47302786013927,38.12845250557663],[-119.47267907189794,38.12839250972838],[-119.47232797117381,38.12834162235973],[-119.4719749390396,38.12829989870185],[-119.47162035866214,38.1282673840399],[-119.4715524447516,38.128261107214726],[-119.47148484799919,38.12825296997293],[-119.47141765005951,38.12824298214398],[-119.4713509321051,38.12823115579284],[-119.47128477472876,38.12821750520531],[-119.4712192578459,38.128202046870804],[-119.47115446059817,38.12818479946241],[-119.47109046125772,38.12816578381434],[-119.4710273371327,38.12814502289674],[-119.47096516447385,38.12812254178798],[-119.47090401838243,38.1280983676443],[-119.47084397271932,38.12807252966708],[-119.47078510001595,38.128045059067446],[-119.47072747138672,38.12801598902866],[-119.47067115644292,38.12798535466599],[-119.47061622320868,38.12795319298431],[-119.47056273803892,38.12791954283334],[-119.47051076553906,38.127884444860776],[-119.47046036848704,38.127847941463095],[-119.47041160775743,38.127810076734505],[-119.47036454224802,38.12777089641342],[-119.47031922880856,38.12773044782745],[-119.47027572217206,38.12768877983609],[-119.47023407488884,38.127645942771686],[-119.47019433726294,38.12760198837872],[-119.4701565572914,38.12755696975121],[-119.4701207806063,38.12751094126859],[-119.4700870504196,38.12746395853009],[-119.47005540747105,38.127416078287446],[-119.47002588997888,38.12736735837644],[-119.46999853359377,38.127317857647],[-119.46997337135568,38.127267635892075],[-119.4699504336541,38.12721675377547],[-119.46992974819123,38.12716527275851],[-119.46991133994862,38.12711325502582],[-119.46989523115693,38.127060763410206],[-119.46988144126922,38.12700786131675],[-119.46986998693741,38.12695461264623],[-119.46986088199216,38.126901081717875],[-119.4698541374262,38.12684733319179],[-119.4698497613812,38.126793431990734],[-119.46984775913769,38.12673944322171],[-119.46984813310904,38.126685432097425],[-119.46985088283829,38.12663146385743],[-119.46985600499887,38.12657760368929],[-119.46986349339868,38.12652391664995],[-119.46987333898738,38.12647046758707],[-119.46988552986767,38.126417321060714],[-119.46990005130935,38.12636454126538],[-119.46991688576738,38.12631219195254],[-119.46993601290303,38.12626033635344],[-119.46995740960836,38.12620903710297],[-119.46998105003429,38.126158356163785],[-119.47000690562184,38.1261083547517],[-119.47003494513656,38.126059093261546],[-119.47006513470626,38.12601063119432],[-119.47009743786211,38.125963027085355],[-119.47013181558246,38.125916338433534],[-119.47063955745979,38.12522747025776],[-119.47111747431896,38.1245254154466],[-119.47156501878794,38.12381097933534],[-119.47198167838076,38.123084981439156],[-119.47236697608201,38.122348254511536],[-119.47272047089061,38.121601643588285],[-119.47304175832163,38.12084600501692],[-119.47333047086644,38.12008220547372],[-119.47358627840998,38.11931112096875],[-119.47361378339788,38.119214854055755],[-119.47363703482173,38.119117889826285],[-119.4736560045799,38.11902034554104],[-119.473670669749,38.11892233916169],[-119.47368101261141,38.11882398920833],[-119.47368702067676,38.11872541461601],[-119.47368868669678,38.118626734591025],[-119.47368600867418,38.11852806846667],[-119.47367898986487,38.11842953555896],[-119.47366763877388,38.118331255022355],[-119.4736519691451,38.1182333457057],[-119.47363199994462,38.118135926008385],[-119.4736077553375,38.11803911373735],[-119.47357926465871,38.117943025964465],[-119.47354656237741,38.11784777888508],[-119.47350968805523,38.11775348767749],[-119.47346868629843,38.117660266363664],[-119.47342360670383,38.11756822767135],[-119.47337450379872,38.11747748289785],[-119.47332143697498,38.117388141775365],[-119.47326447041706,38.117300312338365],[-119.47320367302441,38.117214100792964],[-119.47313911832813,38.117129611388556],[-119.4730708844018,38.11704694629166],[-119.47299905376738,38.11696620546249],[-119.47292371329503,38.11688748653409],[-119.47284495409826,38.1168108846943],[-119.47276287142361,38.11673649257066],[-119.47267756453553,38.11666440011842],[-119.47258913659626,38.11659469451179],[-119.47249769454109,38.11652746003865],[-119.47240334894904,38.11646277799846],[-119.47230621390925,38.11640072660415],[-119.4722064068828,38.116341380887505],[-119.47210404856094,38.11628481260847],[-119.47199926271892,38.11623109016837],[-119.47189217606652,38.116180278527295],[-119.47178291809479,38.11613243912547],[-119.47167162091948,38.11608762980911],[-119.47155841912134,38.11604590476034],[-119.47144344958339,38.1160073144319],[-119.47132685132553,38.11597190548596],[-119.47120876533636,38.11593972073784],[-119.4710893344028,38.1159107991042],[-119.47096870293755,38.11588517555599],[-119.47084701680444,38.11586288107628],[-119.47072442314207,38.115843942622654],[-119.47060107018612,38.11582838309474],[-119.47047710708999,38.115816221306474],[-119.47035268374462,38.11580747196341],[-119.46997950851697,38.11570042613434],[-119.46961110071953,38.11558352750027],[-119.4692478770147,38.1154569082779],[-119.46889024819536,38.11532071167762],[-119.4685386187198,38.1151750917413],[-119.46819338625404,38.11502021316799],[-119.46785494122172,38.114856251127314],[-119.46752366636224,38.11468339106129],[-119.4671999362977,38.11450182847435],[-119.46688411710916,38.11431176871202],[-119.4665765659222,38.11411342672841],[-119.46627763050314,38.11390702684299],[-119.4659876488657,38.11369280248663],[-119.46570694888861,38.11347099593732],[-119.46543584794482,38.11324185804606],[-119.46517465254286,38.11300564795285],[-119.46492365798012,38.1127626327934],[-119.46468314800921,38.112513087396785],[-119.46445339451722,38.112257293974594],[-119.4642346572186,38.11199554180125],[-119.46402718336164,38.11172812688696],[-119.46383120744932,38.11145535164255],[-119.46364695097449,38.11117752453741],[-119.46358642185501,38.11109619801443],[-119.46352238334468,38.11101656698362],[-119.46345491144933,38.11093872594344],[-119.46338408624855,38.11086276726782],[-119.46330999180039,38.1107887810967],[-119.46323271604182,38.11071685522893],[-119.46315235068414,38.110647075018214],[-119.46306899110432,38.11057952327176],[-119.46298273623162,38.110514280152074],[-119.46289368843038,38.11045142308187],[-119.46280195337835,38.11039102665217],[-119.46270763994139,38.110333162533855],[-119.46261086004421,38.1102778993926],[-119.46251172853773,38.11022530280744],[-119.46241036306255,38.11017543519297],[-119.46230688390956,38.110128355725244],[-119.46220141387714,38.11008412027165],[-119.46209407812547,38.1100427813246],[-119.46198500402807,38.11000438793926],[-119.46187432102062,38.109968985675344],[-119.4617621604474,38.10993661654304],[-119.46164865540555,38.10990731895325],[-119.46153394058712,38.109881127672],[-119.46141815211925,38.109858073779144],[-119.46130142740274,38.10983818463151],[-119.46118390494897,38.109821483830515],[-119.46106572421573,38.10980799119411],[-119.46094702544161,38.10979772273327],[-119.4608279494798,38.10979069063298],[-119.46070863763086,38.10978690323787],[-119.46058923147521,38.10978636504221],[-119.46046987270515,38.10978907668469],[-119.46035070295675,38.10979503494752],[-119.46023186364181,38.10980423276034],[-119.46011349578025,38.10981665920866],[-119.45999573983265,38.10983229954665],[-119.45987873553372,38.10985113521483],[-119.45976262172661,38.10987314386187],[-119.45964753619796,38.10989829937127],[-119.45953361551474,38.10992657189227],[-119.45942099486203,38.10995792787528],[-119.45930980788273,38.10999233011171],[-119.45920018651898,38.110029737778014],[-119.45909226085575,38.11007010648422],[-119.4589861589663,38.110113388326525],[-119.45888200676039,38.11015953194419],[-119.45877992783485,38.11020848258041],[-119.45868004332696,38.11026018214725],[-119.45858247177067,38.110314569294644],[-119.45848732895601,38.11037157948314],[-119.45846555485757,38.110381519792526],[-119.45844335535574,38.11039085424243],[-119.45842075744415,38.11039957148251],[-119.45839778860088,38.110407660912905],[-119.45837447675498,38.110415112697225],[-119.45835085025278,38.11042191777434],[-119.4583269378231,38.110428067869584],[-119.45830276854254,38.110433555504606],[-119.45827837180003,38.11043837400668],[-119.45825377726106,38.110442517516674],[-119.45822901483169,38.110445980996225],[-119.45820411462212,38.110448760233886],[-119.45817910691015,38.11045085185017],[-119.45815402210425,38.1104522533018],[-119.45812889070663,38.1104529628846],[-119.45810374327623,38.110452979735776],[-119.4580786103914,38.11045230383484],[-119.4580535226129,38.110450936003645],[-119.45802851044652,38.11044887790544],[-119.45800360430621,38.110446132042796],[-119.45797883447693,38.11044270175459],[-119.4579542310779,38.11043859121192],[-119.45792982402592,38.11043380541304],[-119.45790564299907,38.110428350177344],[-119.45788171740054,38.110422232138156],[-119.45785807632294,38.110415458734835],[-119.45783474851284,38.110408038203545],[-119.4578117623359,38.110399979567376],[-119.45778914574234,38.110391292625344],[-119.45776692623294,38.110381987940436],[-119.45774513082561,38.11037207682676],[-119.4577237860226,38.110361571335865],[-119.45770291777805,38.11035048424199],[-119.45768255146677,38.110338829026645],[-119.45766271185312,38.11032661986202],[-119.45764342306096,38.11031387159401],[-119.4576247085444,38.11030059972393],[-119.45760659105915,38.110286820389845],[-119.45758909263499,38.11027255034681],[-119.45757223454885,38.110257806946585],[-119.45755603729906,38.110242608116465],[-119.45754052058028,38.110226972337514],[-119.45752570325973,38.110210918622165],[-119.4575116033541,38.11019446649098],[-119.45749823800776,38.11017763594891],[-119.45748562347177,38.110160447461155],[-119.45747377508427,38.11014292192799],[-119.45746270725179,38.110125080659635],[-119.45745243343164,38.110106945350154],[-119.45744296611568,38.11008853805114],[-119.45743431681508,38.11006988114485],[-119.45742649604631,38.11005099731717],[-119.45741951331831,38.11003190952972],[-119.45741337712107,38.110012640992224],[-119.45740809491521,38.10999321513414],[-119.45740367312288,38.109973655576184],[-119.45740011712009,38.10995398610166],[-119.45739743122998,38.10993423062744],[-119.45739561871774,38.10991441317503],[-119.4573946817866,38.10989455784122],[-119.45739462157512,38.10987468876887],[-119.45739543815574,38.109854830117506],[-119.45739713053489,38.109835006034004],[-119.45739969665406,38.10981524062313],[-119.45740313339228,38.10979555791834],[-119.45740743657001,38.109775981852465],[-119.45741260095423,38.1097565362287],[-119.45741862026472,38.10973724469154],[-119.45742548718174,38.109718130698205],[-119.45743319335496,38.10969921748992],[-119.45744172941356,38.10968052806379],[-119.4574510849777,38.10966208514483],[-119.45746124867114,38.10964391115826],[-119.45747220813494,38.10962602820229],[-119.45748395004267,38.10960845802126],[-119.45749646011652,38.10959122197917],[-119.45750972314465,38.10957434103375],[-119.45752372299975,38.10955783571086],[-119.45753844265862,38.10954172607973],[-119.45768184641274,38.10939569227852],[-119.4578314953198,38.1092536244055],[-119.45798721379384,38.10911568911844],[-119.45814881913186,38.10898204822634],[-119.4583161217283,38.1088528584997],[-119.4584889252973,38.10872827148667],[-119.4586670271032,38.108608433335405],[-119.45885021819826,38.10849348462262],[-119.45903828366778,38.10838356018886],[-119.4592310028822,38.1082787889804],[-119.45942814975584,38.10817929389793],[-119.45962949301206,38.108085191652684],[-119.45983479645456,38.107996592629355],[-119.46004381924423,38.10791360075693],[-119.46025631618171,38.10783631338669],[-119.46047203799473,38.107764821178094],[-119.46069073163055,38.107699207992574],[-119.46091214055257,38.107639550795106],[-119.46113600504107,38.10758591956414],[-119.46136206249776,38.10753837720936],[-119.46159004775369,38.10749697949817],[-119.46181969337994,38.10746177499013],[-119.46205073000135,38.10743280498009],[-119.46227755334071,38.10731112744739],[-119.46249888913252,38.1071832966782],[-119.46271447013987,38.10704946702929],[-119.46292403607907,38.10690980010026],[-119.46312733393388,38.10676446453838],[-119.4633241182611,38.10661363583471],[-119.46351415148686,38.10645749611224],[-119.46369720419358,38.10629623390569],[-119.4638730553967,38.10613004393383],[-119.46404149281167,38.105959126864285],[-119.46420231311001,38.10578368907102],[-119.46435532216469,38.10560394238514],[-119.46450033528438,38.105420103838945],[-119.46463717743642,38.105232395403775],[-119.46476568345763,38.105041043721904],[-119.46488569825387,38.10484627983282],[-119.46499707698672,38.104648338894044],[-119.46509968524838,38.104447459897294],[-119.46519339922345,38.104243885379724],[-119.46527810583821,38.10403786113094],[-119.46535370289685,38.1038296358964],[-119.46542009920444,38.10361946107676],[-119.46547721467671,38.10340759042447],[-119.46552498043647,38.103194279737224],[-119.4655633388962,38.10297978654919],[-119.46559224382743,38.10276436981995],[-119.46561166041595,38.102548289621915],[-119.46562156530358,38.10233180682618],[-119.46562194661591,38.10211518278776],[-119.46561280397626,38.10189867902987],[-119.4655941485057,38.10168255692826],[-119.4655660028093,38.10146707739572],[-119.46552840094829,38.101252500567014],[-119.46548138839864,38.101039085484985],[-119.4654250219959,38.10082708978775],[-119.46536839364667,38.10064545591768],[-119.46530394383912,38.100465457279995],[-119.46523174791173,38.1002873041255],[-119.46515189024927,38.10011120454787],[-119.46506446418391,38.0999373642406],[-119.46496957188597,38.09976598625688],[-119.46486732424438,38.09959727077235],[-119.46475784073697,38.09943141485152],[-119.46464124929068,38.09926861221745],[-119.46451768613197,38.09910905302578],[-119.46438729562762,38.09895292364244],[-119.46425023011581,38.09880040642631],[-119.46410664972821,38.098651679516095],[-119.46395672220272,38.098506916622426],[-119.4638006226875,38.09836628682504],[-119.4636385335363,38.09822995437546],[-119.46347064409544,38.09809807850503],[-119.46329715048256,38.09797081323921],[-119.46311825535759,38.09784830721775],[-119.46293416768596,38.09773070352103],[-119.46274510249464,38.09761813950318],[-119.46244837866449,38.09745382197343],[-119.46214462031487,38.097297738352765],[-119.46183419317047,38.09715007654442],[-119.46151747097744,38.09701101431196],[-119.46119483505358,38.09688071906528],[-119.46086667382949,38.09675934765931],[-119.4605333823814,38.096647046205376],[-119.46019536195575,38.09654394989546],[-119.45985301948654,38.09645018283951],[-119.45950676710582,38.09636585791628],[-119.45915702164787,38.096291076637534],[-119.458804204148,38.096225929025906],[-119.45844873933599,38.09617049350676],[-119.45809105512534,38.09612483681371],[-119.45773158209866,38.0960890139085],[-119.45737075298976,38.096063067914784],[-119.45700900216323,38.09604703006643],[-119.45664676509217,38.09604091966976],[-119.45628447783436,38.09604474408046],[-119.4560856061553,38.09605222914357],[-119.4558871675985,38.09606501592773],[-119.45568938840296,38.096083089854844],[-119.45549249405616,38.09610643031879],[-119.4552967090375,38.09613501070913],[-119.45510225656227,38.09616879844131],[-119.45490935832734,38.09620775499384],[-119.45471823425869,38.096251835952216],[-119.45452910226055,38.09630099105946],[-119.45434217796729,38.09635516427341],[-119.45415767449757,38.09641429383063],[-119.45397580221153,38.096478312316734],[-119.45379676847104,38.09654714674319],[-119.45362077740334,38.09662071863064],[-119.45344802966846,38.096698944098065],[-119.45327872223046,38.09678173395868],[-119.45311304813293,38.09686899382126],[-119.45295119627899,38.09696062419801],[-119.4527933512159,38.09705652061771],[-119.45263969292475,38.09715657374489],[-119.45249039661519,38.09726066950437],[-119.4523456325258,38.09736868921136],[-119.45220556572983,38.097480509706564],[-119.45207035594714,38.09759600349678],[-119.4519401573619,38.09771503889992],[-119.45181511844693,38.097837480195345],[-119.45169538179422,38.097963187778376],[-119.45164376890953,38.098021411967906],[-119.45159473244492,38.09808101059093],[-119.45154833095981,38.09814191248223],[-119.45150461986779,38.09820404492017],[-119.45146365137015,38.09826733371366],[-119.45142547439384,38.09833170329054],[-119.45139013453279,38.09839707678796],[-119.45135767399346,38.098463376144096],[-119.45132813154457,38.09853052219133],[-119.4513015424706,38.09859843475086],[-119.45127793852971,38.09866703272832],[-119.45125734791574,38.098736234210705],[-119.45123979522458,38.09880595656409],[-119.45122530142466,38.09887611653244],[-119.45121388383191,38.09894663033679],[-119.45120555608908,38.09901741377554],[-119.45120032814937,38.09908838232482],[-119.4511982062645,38.09915945123947],[-119.45119728275067,38.09919030779378],[-119.45119500618645,38.0992211205038],[-119.45119137930662,38.09925185233087],[-119.45118640646928,38.099282466333584],[-119.45118009365035,38.099312925712084],[-119.45117244843664,38.099343193852334],[-119.4511634800165,38.09937323437011],[-119.45115319916898,38.099403011154834],[-119.4511416182507,38.0994324884128],[-119.45112875118123,38.09946163071044],[-119.4511146134261,38.0994904030167],[-119.45109922197844,38.09951877074525],[-119.45108259533839,38.09954669979609],[-119.45106475349104,38.09957415659647],[-119.45104571788224,38.09960110814131],[-119.45102551139297,38.0996275220328],[-119.4510041583117,38.09965336651947],[-119.45098168430533,38.09967861053421],[-119.45095811638825,38.09970322373175],[-119.45093348288992,38.099727176525086],[-119.4509078134208,38.099750440120964],[-119.45088113883673,38.09977298655467],[-119.45085349120193,38.09979478872352],[-119.45082490375032,38.09981582041944],[-119.45079541084567,38.099836056360544],[-119.45076504794037,38.0998554722215],[-119.45073385153255,38.09987404466274],[-119.4507018591225,38.099891751358555],[-119.45066910916738,38.09990857102391],[-119.45063564103512,38.09992448344007],[-119.45060149495698,38.099939469478876],[-119.45056671197935,38.09995351112572],[-119.45053133391424,38.09996659150125],[-119.45049540328904,38.099978694881656],[-119.45045896329555,38.099989806717545],[-119.4504220577378,38.099999913651445],[-119.45038473097965,38.10000900353386],[-119.45034702789127,38.100017065437896],[-119.4503089937953,38.10002408967238],[-119.45027067441227,38.100030067793504],[-119.45023211580575,38.100034992614994],[-119.45019336432686,38.10003885821675],[-119.45015446655864,38.10004165995193],[-119.45011546925997,38.100043394452584],[-119.45007641930944,38.100044059633696],[-119.45003736364885,38.10004365469562],[-119.4499983492269,38.100042180125165],[-119.44995942294277,38.10003963769485],[-119.44992063158962,38.100036030461],[-119.44988202179844,38.1000313627598],[-119.44984363998186,38.1000256402023],[-119.44980553227849,38.10001886966756],[-119.44976774449742,38.10001105929438],[-119.44973032206305,38.100002218471616],[-119.44969330996058,38.09999235782677],[-119.44965675268197,38.099981489213256],[-119.4496206941723,38.09996962569618],[-119.44958517777701,38.09995678153658],[-119.4495502461899,38.09994297217434],[-119.44951594140161,38.09992821420958],[-119.44948230464927,38.099912525382734],[-119.4494493763669,38.09989592455319],[-119.44941719613682,38.09987843167665],[-119.44938580264198,38.099860067781094],[-119.44935523361963,38.09984085494156],[-119.44932552581567,38.099820816253576],[-119.44929671494081,38.09979997580534],[-119.44926883562745,38.09977835864886],[-119.44924192138804,38.09975599076983],[-119.4492160045749,38.099732899056264],[-119.44919111634115,38.09970911126633],[-119.44916728660361,38.09968465599486],[-119.4491445440064,38.09965956263906],[-119.44912291588682,38.099633861363145],[-119.44910242824241,38.09960758306203],[-119.44908310569964,38.099580759324226],[-119.44906497148439,38.09955342239391],[-119.44904804739403,38.09952560513208],[-119.44903235377116,38.099497340977116],[-119.44901790947921,38.09946866390454],[-119.44900473187975,38.099439608386184],[-119.44899283681173,38.09941020934878],[-119.44898223857223,38.09938050213198],[-119.44897294989948,38.099350522445754],[-119.44896498195747,38.099320306327655],[-119.44895834432252,38.099289890099335],[-119.44895304497189,38.099259310322985],[-119.44894909027396,38.099228603757304],[-119.44894648498091,38.09919780731341],[-119.44894523222273,38.099166958010365],[-119.44894533350363,38.099136092930756],[-119.44894678870014,38.09910524917607],[-119.44894959606138,38.099074463822134],[-119.44895375221107,38.09904377387453],[-119.44895925215161,38.09901321622406],[-119.44899606818478,38.098808706536445],[-119.44902390503343,38.098603312438705],[-119.44904272941724,38.09839728004177],[-119.44905251885574,38.09819085621945],[-119.44905326169466,38.09798428831257],[-119.44904495711975,38.09777782383246],[-119.4490276151572,38.09757171016459],[-119.44900125666145,38.09736619427206],[-119.44896591328964,38.097161522399674],[-119.44892162746348,38.096957939778974],[-119.44886845231801,38.096755690334376],[-119.44880645163761,38.096555016391044],[-119.44873569977919,38.09635615838449],[-119.44865628158283,38.09615935457263],[-119.44856829226983,38.09596484075027],[-119.4484718373282,38.09577284996676],[-119.4483670323862,38.09558361224679],[-119.44825400307322,38.09539735431491],[-119.44813288486931,38.095214299323914],[-119.44807732658231,38.09513694790719],[-119.4480184392751,38.0950611501712],[-119.44795629244713,38.09498699556022],[-119.44789095944351,38.0949145715794],[-119.44782251736845,38.09484396369142],[-119.44775104699431,38.094775255215644],[-119.44767663266622,38.09470852722991],[-119.44759936220251,38.09464385847474],[-119.4475193267911,38.09458132526059],[-119.44743662088185,38.094521001377665],[-119.44735134207521,38.09446295800903],[-119.44726359100687,38.0944072636465],[-119.44717347122916,38.094353984009906],[-119.44708108908877,38.09430318196955],[-119.44698655360133,38.094254917472014],[-119.44688997632275,38.094209247469486],[-119.44679147121758,38.09416622585248],[-119.4466911545246,38.09412590338645],[-119.44658914461967,38.09408832765165],[-119.44648556187599,38.09405354298721],[-119.4463805285223,38.094021590438736],[-119.44627416849838,38.09399250770994],[-119.44616660730914,38.093966329118075],[-119.44605797187633,38.09394308555356],[-119.44594839038892,38.093922804443494],[-119.4458379921519,38.09390550971924],[-119.44572690743372,38.093891221788354],[-119.44561526731258,38.093879957510325],[-119.44550320352187,38.09387173017682],[-119.4453908482947,38.093866549495914],[-119.44527833420801,38.093864421580776],[-119.44516579402611,38.09386534894228],[-119.44505336054407,38.09386933048613],[-119.44494116643116,38.09387636151422],[-119.44482934407422,38.09388643373005],[-119.44471802542162,38.09389953524856],[-119.44460734182752,38.093915650610185],[-119.44449742389692,38.09393476079907],[-119.44438840133172,38.09395684326546],[-119.44428040277757,38.093981871952415],[-119.44417355567215,38.094009817326345],[-119.44406798609492,38.09404064641209],[-119.44308658884506,38.094358236197046],[-119.44211987067614,38.09470280599906],[-119.44116901864604,38.095073932780515],[-119.4402352003847,38.095471160892586],[-119.43931956266326,38.09589400263324],[-119.43924703360487,38.0959302379717],[-119.43917614280568,38.09596844449887],[-119.43910697601221,38.096008576003136],[-119.43903961688613,38.09605058394445],[-119.43897414690312,38.09609441751308],[-119.43891064525431,38.09614002369111],[-119.43884918875051,38.09618734731649],[-119.43878985172928,38.09623633114966],[-119.43873270596502,38.096286915943075],[-119.43867782058217,38.09633904051246],[-119.43862526197158,38.096392641811065],[-119.43857509371017,38.09644765500589],[-119.43852737648409,38.09650401355594],[-119.43848216801517,38.0965616492929],[-119.43843952299123,38.09662049250342],[-119.43839949299988,38.0966804720135],[-119.43836212646595,38.09674151527456],[-119.43832746859313,38.09680354845117],[-119.4382955613091,38.096866496510366],[-119.43826644321486,38.09693028331235],[-119.43824014953793,38.096994831702666],[-119.43821671208983,38.09706006360544],[-119.43819615922745,38.09712590011784],[-119.43817851581879,38.097192261605514],[-119.43816380321286,38.09725906779889],[-119.43815203921372,38.0973262378903],[-119.43814323805901,38.09739369063164],[-119.43813741040263,38.09746134443275],[-119.43813456330183,38.09752911746004],[-119.43813470020865,38.09759692773547],[-119.43813782096574,38.09766469323573],[-119.43814392180636,38.097732331991466],[-119.43815299535906,38.09779976218639],[-119.43816503065652,38.09786690225626],[-119.43818001314875,38.09793367098762],[-119.43819792472057,38.097999987615886],[-119.43821874371366,38.09806577192323],[-119.43824244495262,38.09813094433544],[-119.4382689997754,38.098195426018265],[-119.43829837606788,38.09825913897285],[-119.43833053830284,38.09832200612993],[-119.43836544758271,38.09838395144323],[-119.43840306168673,38.098444899981345],[-119.43844333512192,38.09850477801844],[-119.43848621917815,38.09856351312337],[-119.43853166198699,38.09862103424748],[-119.43857960858439,38.09867727181029],[-119.43863000097724,38.098732157784],[-119.43868277821352,38.098785625775456],[-119.43873787645583,38.09883761110675],[-119.43879522905881,38.098888050893294],[-119.4388547666496,38.098936884119965],[-119.4389164172119,38.098984051714915],[-119.43898010617288,38.09902949662109],[-119.4390457564936,38.09907316386516],[-119.439113288762,38.09911500062411],[-119.43921264155092,38.09917653894412],[-119.43930924096291,38.09924075646805],[-119.43940297135319,38.09930757632211],[-119.4394937205106,38.09937691851713],[-119.43958137979186,38.099448700044206],[-119.43966584425162,38.09952283497413],[-119.43974701276808,38.099599234560195],[-119.43982478816416,38.099677807344364],[-119.43989907732377,38.099758459266816],[-119.43996979130326,38.099841093778466],[-119.44003684543812,38.09992561195654],[-119.44010015944414,38.10001191262294],[-119.44015965751372,38.10009989246538],[-119.44021526840663,38.1001894461611],[-119.44026692553528,38.100280466502774],[-119.44031456704462,38.10037284452695],[-119.44035813588609,38.1004664696445],[-119.44039757988612,38.10056122977282],[-119.44043285180855,38.10065701147026],[-119.44046390941135,38.10075370007166],[-119.44049071549713,38.100851179825746],[-119.44051323795787,38.100949334033714],[-119.44053144981345,38.101048045188755],[-119.44054532924383,38.10114719511698],[-119.44055485961552,38.101246665118644],[-119.44056002950136,38.10134633611039],[-119.44056083269446,38.10144608876779],[-119.44055726821553,38.10154580366813],[-119.44054934031432,38.10164536143343],[-119.44053705846451,38.101744642873406],[-119.44052043735242,38.10184352912806],[-119.44049949685963,38.10194190181011],[-119.4404742620392,38.10203964314658],[-119.44044476308568,38.10213663611997],[-119.44041103529916,38.10223276460826],[-119.44037311904304,38.10232791352394],[-119.4403310596958,38.10242196895189],[-119.44028490759662,38.102514818285655],[-119.44023471798539,38.102606350362414],[-119.44018055093645,38.102696455595954],[-119.44012247128681,38.10278502610803],[-119.44006054855865,38.10287195585738],[-119.43999485687596,38.102957140766826],[-119.43992547487606,38.103040478847866],[-119.43985248561526,38.10312187032279],[-119.43977597646965,38.10320121774416],[-119.4396960390305,38.10327842611152],[-119.43961276899448,38.10335340298518],[-119.43819527275942,38.10450114966775],[-119.43682775989927,38.10568617055705],[-119.43551180111201,38.10690710663902],[-119.43424890819755,38.108162557644114],[-119.43304053231849,38.10945108364733],[-119.43188806232926,38.110771206714006],[-119.43079282317531,38.11212141258928],[-119.42975607436455,38.1135001524294],[-119.42877900851249,38.11490584457312],[-119.42875187588855,38.114944846905374],[-119.42872305254886,38.114983084721786],[-119.42869257296088,38.11502051229347],[-119.42866047357303,38.115057084860446],[-119.42862679277096,38.115092758685165],[-119.42859157083168,38.11512749110488],[-119.42855484987554,38.11516124058255],[-119.42851667381574,38.115193966756664],[-119.42847708830583,38.11522563048939],[-119.42843614068512,38.11525619391347],[-119.42839387992211,38.11528562047746],[-119.4283503565559,38.11531387498953],[-119.42830562263568,38.11534092365939],[-119.42825973165866,38.11536673413888],[-119.42821273850588,38.11539127556061],[-119.42816469937672,38.1154145185748],[-119.42811567172163,38.115436435384474],[-119.42806571417344,38.115456999778665],[-119.42801488647719,38.1154761871638],[-119.42796324941875,38.11549397459308],[-119.42791086475201,38.11551034079394],[-119.42785779512513,38.11552526619352],[-119.42780410400553,38.115538732942],[-119.42774985560405,38.115550724934046],[-119.42769511479803,38.115561227828024],[-119.42763994705382,38.115570229063124],[-119.42758441834845,38.11557771787446],[-119.4275285950907,38.11558368530591],[-119.42747254404169,38.115588124220764],[-119.42741633223496,38.11559102931037],[-119.42736002689634,38.11559239710044],[-119.4273036953636,38.1155922259552],[-119.42724740500576,38.11559051607926],[-119.42719122314261,38.11558726951759],[-119.42713521696426,38.11558249015285],[-119.42707945345052,38.11557618370084],[-119.42702399929105,38.115568357703715],[-119.42696892080546,38.11555902152084],[-119.42691428386404,38.11554818631771],[-119.42686015380887,38.11553586505251],[-119.42680659537578,38.115522072460706],[-119.42675367261687,38.11550682503729],[-119.42670144882393,38.115490141017204],[-119.42664998645263,38.1154720403534],[-119.42659934704797,38.11545254469304],[-119.42654959117056,38.115431677351594],[-119.42650077832428,38.115409463284934],[-119.42645296688501,38.11538592905954],[-119.4264062140308,38.11536110282065],[-119.42636057567368,38.115335014258584],[-119.42631610639255,38.1153076945734],[-119.42627285936803,38.115279176437305],[-119.42623088631882,38.11524949395586],[-119.42619023743991,38.11521868262692],[-119.42615096134244,38.11518677929846],[-119.42611310499571,38.1151538221242],[-119.42607671367082,38.11511985051826],[-119.4260418308868,38.11508490510777],[-119.42600849835823,38.115049027684435],[-119.42597675594568,38.11501226115456],[-119.42594664160788,38.11497464948756],[-119.42591819135629,38.114936237663635],[-119.42589143921222,38.11489707161971],[-119.42586641716595,38.114857198194656],[-119.42584315513865,38.11481666507327],[-119.42582168094651,38.11477552072916],[-119.4258020202675,38.11473381436681],[-119.42578419661072,38.11469159586277],[-119.42576823128822,38.11464891570598],[-119.42575414338958,38.114605824937335],[-119.42574194975919,38.11456237508874],[-119.42564739458271,38.114001990350864],[-119.42552907243429,38.113444430569864],[-119.42538711733965,38.11289032478014],[-119.42522168997664,38.11234029810556],[-119.42503297749181,38.11179497105441],[-119.42482119328685,38.11125495881976],[-119.42458657677577,38.11072087058585],[-119.42441338646222,38.110471852386475],[-119.42422944071825,38.11022769662034],[-119.42403495805685,38.109988693186295],[-119.4238301694954,38.10975512586289],[-119.42361531828092,38.10952727197152],[-119.42339065960105,38.10930540204738],[-119.42315646028075,38.10908977951847],[-119.42291299846534,38.1088806603929],[-119.42266056329004,38.108678292955304],[-119.42239945453653,38.10848291747212],[-119.42212998227706,38.1082947659065],[-119.4218524665061,38.108114061643256],[-119.42156723676048,38.10794101922371],[-119.42127463172824,38.107775844091165],[-119.42097499884649,38.10761873234731],[-119.42066869388911,38.10746987051945],[-119.42035608054445,38.1073294353393],[-119.42003752998382,38.10719759353332],[-119.41971342042095,38.10707450162502],[-119.41938413666328,38.10696030574914],[-119.41905006965548,38.10685514147848],[-119.41892232852861,38.10681249427526],[-119.41879278268462,38.10677339340994],[-119.41866158975847,38.106737886460806],[-119.4185289093886,38.106706016633005],[-119.41839490302269,38.10667782270593],[-119.41825973372133,38.106653338986085],[-119.41812356595959,38.106632595265346],[-119.4179865654271,38.10661561678472],[-119.41784889882635,38.106602424203636],[-119.41771073367,38.10659303357484],[-119.41757223807718,38.10658745632485],[-119.41743358056887,38.10658569924005],[-119.41729492986303,38.10658776445848],[-119.41715645466935,38.10659364946717],[-119.417018323484,38.10660334710525],[-119.41688070438478,38.106616845572624],[-119.41674376482656,38.10663412844435],[-119.41660767143773,38.10665517469062],[-119.41647258981737,38.10667995870229],[-119.41633868433395,38.10670845032211],[-119.41620611792534,38.10674061488135],[-119.41607505190062,38.106776413241924],[-119.41594564574385,38.10681580184415],[-119.41581805692005,38.106858732759584],[-119.41569244068376,38.10690515374942],[-119.41556894989002,38.10695500832791],[-119.4154477348085,38.10700823583121],[-119.41532894294073,38.107064771491125],[-119.41521271884058,38.10712454651383],[-119.41509920393837,38.107187488163675],[-119.41498853636895,38.107253519851525],[-119.41488085080346,38.10732256122803],[-119.41476214870843,38.10738453114211],[-119.41464077545298,38.10744318198548],[-119.41451687962346,38.10749844195434],[-119.41439061289574,38.10755024339599],[-119.4142621298492,38.10759852289178],[-119.41413158777758,38.107643221334754],[-119.41399914649628,38.10768428400196],[-119.41386496814674,38.10772166062157],[-119.41372921699778,38.1077553054344],[-119.41359205924451,38.10778517724995],[-119.41345366280477,38.10781123949688],[-119.41331419711342,38.107833460267734],[-119.41317383291496,38.10785181235812],[-119.41303274205428,38.10786627329992],[-119.41289109726628,38.1078768253889],[-119.41274907196426,38.10788345570633],[-119.41260684002759,38.10788615613482],[-119.41246457558871,38.10788492336829],[-119.41232245281986,38.107879758916035],[-119.4121806457198,38.10787066910075],[-119.41206018460757,38.107867104537114],[-119.41193994376361,38.10786033658343],[-119.41182005960361,38.10785037291808],[-119.41170066813856,38.10783722484503],[-119.41158190482022,38.10782090728098],[-119.41146390438745,38.107801438738484],[-119.41134680071335,38.107778841304984],[-119.41123072665324,38.10775314061755],[-119.411115813894,38.10772436583401],[-119.4110021928045,38.10769254959971],[-119.4108899922878,38.10765772801059],[-119.41077933963464,38.10761994057205],[-119.41067036037927,38.10757923015429],[-119.41057628643814,38.1075409073048],[-119.41048397221132,38.10750000003671],[-119.41039353137751,38.107456558725794],[-119.41030507530792,38.107410636868345],[-119.41021871292891,38.10736229101527],[-119.41013455058803,38.10731158070238],[-119.41005269192286,38.10725856837709],[-119.40999658508709,38.10722223153798],[-119.40993890116316,38.107187470578296],[-119.40987971101255,38.107154328198604],[-119.4098190873467,38.107122845111284],[-119.40975710463773,38.10709305999029],[-119.4096938390269,38.10706500942373],[-119.40962936823115,38.10703872786901],[-119.40956377144757,38.10701424761041],[-119.4094971292562,38.10699159871945],[-119.40942952352098,38.106970809017994],[-119.40936103728933,38.10695190404404],[-119.40929175468995,38.10693490702041],[-119.4092217608297,38.106919838826116],[-119.40915114168895,38.10690671797094],[-119.40907998401602,38.106895560572354],[-119.40900837522057,38.10688638033609],[-119.40893640326641,38.10687918853909],[-119.40886415656333,38.10687399401568],[-119.40879172385846,38.106870803146755],[-119.4087191941275,38.10686961985201],[-119.40864665646521,38.10687044558493],[-119.40857419997619,38.10687327933124],[-119.40854143970925,38.10687456095909],[-119.4085086427367,38.10687493546046],[-119.40847584927889,38.106874402376036],[-119.40844309955193,38.10687296235963],[-119.40841043371827,38.10687061717712],[-119.4083778918375,38.10686736970459],[-119.40834551381712,38.1068632239245],[-119.40831333936379,38.106858184921016],[-119.40828140793433,38.106852258873694],[-119.40824975868763,38.10684545304989],[-119.40821843043648,38.106837775795896],[-119.40818746159991,38.106829236526636],[-119.40815689015628,38.10681984571419],[-119.40812675359645,38.106809614874905],[-119.40809708887794,38.106798556555276],[-119.40806793237965,38.106786684316575],[-119.4080393198571,38.10677401271818],[-119.40801128639872,38.106760557299815],[-119.40798386638268,38.106746334562374],[-119.40795709343489,38.10673136194773],[-119.40793100038763,38.10671565781737],[-119.40790561923936,38.106699241429844],[-119.40788098111537,38.10668213291718],[-119.40785711622979,38.10666435326013],[-119.40783405384838,38.106645924262494],[-119.40781182225273,38.10662686852439],[-119.40779739902712,38.106614498149035],[-119.40778244570257,38.10660252719511],[-119.40776697998503,38.10659096983698],[-119.40775102018708,38.10657983975933],[-119.40773458520631,38.10656915014076],[-119.40771769450295,38.10655891363851],[-119.40770036807677,38.10654914237317],[-119.40768262644352,38.10653984791454],[-119.40766449061046,38.10653104126781],[-119.4076459820516,38.10652273286054],[-119.40762712268233,38.10651493253043],[-119.4076079348333,38.10650764951345],[-119.4075884412241,38.106500892433196],[-119.40756866493646,38.10649466929038],[-119.40754862938661,38.106488987453595],[-119.40752835829788,38.106483853650445],[-119.4075078756724,38.10647927395964],[-119.40748720576282,38.10647525380382],[-119.40746637304348,38.106471797943044],[-119.4074454021815,38.106468910469275],[-119.40742431800757,38.10646659480142],[-119.40740314548655,38.106464853681395],[-119.40738190968787,38.106463689170745],[-119.40736063575591,38.10646310264834],[-119.40733934888014,38.106463094808646],[-119.40731807426545,38.106463665660925],[-119.40729683710214,38.106464814529296],[-119.4072756625362,38.106466540053404],[-119.4072545756395,38.106468840190146],[-119.40723360138007,38.10647171221602],[-119.40721276459267,38.1064751527304],[-119.4071920899492,38.10647915765953],[-119.40717160192965,38.10648372226133],[-119.407151324793,38.10648884113105],[-119.4071312825486,38.10649450820766],[-119.40711149892766,38.10650071678102],[-119.40709004582263,38.10650744394429],[-119.40706830827729,38.106513574582635],[-119.40704631284994,38.10651910120578],[-119.40702408641393,38.106524017061496],[-119.40700165612495,38.10652831614367],[-119.40697904938764,38.10653199319982],[-119.40695629382236,38.10653504373745],[-119.40693341723123,38.106537464029465],[-119.40691044756431,38.10653925111879],[-119.40688741288531,38.10654040282203],[-119.40686434133748,38.10654091773206],[-119.406841261109,38.10654079521978],[-119.4068182003987,38.10654003543486],[-119.40679518738162,38.10653863930562],[-119.40677225017446,38.106536608537745],[-119.40674941680128,38.10653394561246],[-119.40672671515935,38.1065306537832],[-119.40670417298492,38.10652673707188],[-119.40668181781942,38.106522200263775],[-119.40665967697572,38.106517048901885],[-119.40663777750495,38.106511289279986],[-119.40661614616319,38.10650492843504],[-119.40659480937897,38.106497974138534],[-119.40657379322091,38.10649043488706],[-119.4065531233659,38.106482319891846],[-119.40653282506764,38.10647363906756],[-119.4065129231259,38.106464403020205],[-119.40649344185611,38.1064546230341],[-119.4064744050598,38.10644431105815],[-119.40645583599532,38.10643347969119],[-119.40643775734962,38.1064221421667],[-119.40641883769321,38.106410268564254],[-119.4063994146332,38.10639891376283],[-119.4063795109452,38.106388091077],[-119.40635914996832,38.10637781319742],[-119.40633835557793,38.1063680921758],[-119.40631715215746,38.10635893941095],[-119.40629556457004,38.10635036563536],[-119.40627361812919,38.10634238090254],[-119.40625133856928,38.10633499457529],[-119.40622875201511,38.10632821531481],[-119.40620588495159,38.106322051070364],[-119.40618276419245,38.106316509070076],[-119.40615941684892,38.10631159581246],[-119.40613587029786,38.10630731705875],[-119.40611215214972,38.10630367782616],[-119.4060882902162,38.10630068238199],[-119.40606431247753,38.10629833423872],[-119.4060402470497,38.10629663614972],[-119.4060161221516,38.106295590106164],[-119.40599196607181,38.10629519733461],[-119.40596780713543,38.106295458295634],[-119.40594367367096,38.106296372683246],[-119.40591959397703,38.10629793942522],[-119.40589559628923,38.106300156684455],[-119.40587170874693,38.106303021860974],[-119.40584795936044,38.1063065315951],[-119.40582437597806,38.1063106817714],[-119.40580098625338,38.10631546752336],[-119.40578918414808,38.106317884835825],[-119.40577728554815,38.106319986157],[-119.40576530400057,38.10632176909443],[-119.40575325314674,38.106323231618184],[-119.40574114670699,38.10632437206316],[-119.40572899846487,38.10632518913091],[-119.4057168222516,38.10632568189115],[-119.40570463193022,38.10632584978288],[-119.40569244137987,38.106325692614924],[-119.40568026447986,38.10632521056627],[-119.40566811509402,38.1063244041857],[-119.40565600705486,38.10632327439133],[-119.4056439541478,38.10632182246944],[-119.40563197009548,38.10632005007316],[-119.40562006854219,38.106317959220355],[-119.4056082630382,38.10631555229155],[-119.40559656702447,38.106312832027136],[-119.40558499381736,38.10630980152421],[-119.40557355659325,38.10630646423313],[-119.40556226837387,38.10630282395345],[-119.40555114201118,38.10629888482982],[-119.4055401901729,38.10629465134702],[-119.40552942532803,38.10629012832502],[-119.40551885973265,38.106285320913436],[-119.40550850541602,38.106280234585675],[-119.40549837416683,38.10627487513264],[-119.40548868232595,38.10626975344629],[-119.40547877142329,38.106264900548084],[-119.40546865339346,38.10626032228184],[-119.40545834042052,38.10625602416063],[-119.40544784492324,38.10625201136026],[-119.4054371795402,38.10624828871282],[-119.40542635711455,38.10624486070111],[-119.40541539067851,38.10624173145311],[-119.40540429343777,38.106238904737],[-119.40539307875545,38.106236383956684],[-119.4053817601362,38.10623417214764],[-119.40537035120968,38.10623227197332],[-119.40535886571443,38.106230685721854],[-119.40534731748109,38.10622941530343],[-119.40533572041589,38.106228462247856],[-119.40532408848388,38.106227827702746],[-119.40531243569207,38.10622751243226],[-119.40530077607256,38.10622751681604],[-119.40528912366574,38.106227840848774],[-119.40527749250325,38.10622848414028],[-119.40526589659117,38.10622944591595],[-119.40525434989317,38.10623072501756],[-119.40524286631357,38.10623231990489],[-119.4052314596808,38.10623422865738],[-119.40522014373057,38.10623644897652],[-119.40520893208937,38.10623897818865],[-119.40519783825816,38.10624181324813],[-119.40518687559597,38.106244950741],[-119.40517605730392,38.10624838688914],[-119.40516539640925,38.1062521175548],[-119.40515490574974,38.10625613824552],[-119.40514459795813,38.10626044411969],[-119.40513448544694,38.10626502999217],[-119.4051245803936,38.106269890340755],[-119.4051148947257,38.10627501931263],[-119.40510544010662,38.10628041073159],[-119.4050962279216,38.10628605810531],[-119.40508726926387,38.1062919546333],[-119.40507857492142,38.10629809321505],[-119.40507015536396,38.106304466458504],[-119.40506202073031,38.106311066689074],[-119.40505418081618,38.10631788595884],[-119.4050466450624,38.10632491605609],[-119.40503942254357,38.10633214851525],[-119.40503252195701,38.10633957462708],[-119.40502595161252,38.106347185449074],[-119.40501971942211,38.10635497181638],[-119.40501383289066,38.106362924352695],[-119.4050082991068,38.10637103348164],[-119.40500312473439,38.106379289438266],[-119.4049983160045,38.10638768228079],[-119.40499387870787,38.1063962019026],[-119.40498928760357,38.1064050151595],[-119.40498431079376,38.106413696717624],[-119.40497895431761,38.106422236041894],[-119.40497322467506,38.106430622769885],[-119.40496712881895,38.10643884672428],[-119.40496067414645,38.10644689792533],[-119.4049538684902,38.1064547666029],[-119.40494672010871,38.106462443208365],[-119.4049392376765,38.10646991842612],[-119.40493143027341,38.106477183185014],[-119.40492330737362,38.10648422866923],[-119.40491487883419,38.106491046329076],[-119.40490615488311,38.106497627891315],[-119.40489714610679,38.10650396536917],[-119.40488786343741,38.10651005107212],[-119.40487831813941,38.106515877615145],[-119.40486852179599,38.10652143792771],[-119.40485848629501,38.106526725262356],[-119.4048482238145,38.10653173320288],[-119.40483774680803,38.10653645567214],[-119.4048270679894,38.10654088693938],[-119.40481620031743,38.106545021627255],[-119.40480515698003,38.10654885471826],[-119.40479395137832,38.106552381560995],[-119.40478259711037,38.106555597875534],[-119.40477110795457,38.10655849975892],[-119.40475949785314,38.10656108368969],[-119.40474778089492,38.10656334653222],[-119.40473597129855,38.10656528554055],[-119.40472408339501,38.10656689836164],[-119.40471213161034,38.1065681830384],[-119.40470013044815,38.106569138011814],[-119.40468809447185,38.10656976212301],[-119.40468000047952,38.10656996298923],[-119.40467190251275,38.10656994997581],[-119.40466380962138,38.106569723097245],[-119.40465573084957,38.10656928260711],[-119.40464767522566,38.10656862899767],[-119.40463965175212,38.106567762999354],[-119.40463166939554,38.10656668557992],[-119.40462373707649,38.10656539794346],[-119.40461586365969,38.106563901528965],[-119.40460805794396,38.106562198008724],[-119.40460032865253,38.10656028928651],[-119.40459268442322,38.10655817749537],[-119.4045851337987,38.10655586499531],[-119.4045776852171,38.106553354370696],[-119.40457034700252,38.10655064842719],[-119.40456312735567,38.106547750188845],[-119.40455603434481,38.106544662894485],[-119.40454907589664,38.10654138999435],[-119.40454225978745,38.106537935146015],[-119.40453559363452,38.10653430221041],[-119.40452908488753,38.106530495247476],[-119.40449689116315,38.106511681677375],[-119.40446390051657,38.10649375075778],[-119.4044301516913,38.1064767235461],[-119.40439568432107,38.1064606200384],[-119.40436053888341,38.10644545914599],[-119.404324756652,38.106431258673176],[-119.40428837964838,38.10641803529644],[-119.40425145059241,38.10640580454473],[-119.4042140128522,38.10639458078129],[-119.40417611039317,38.106384377186856],[-119.40413778772648,38.10637520574404],[-119.40409908985663,38.10636707722341],[-119.40406006222878,38.1063600011707],[-119.40402075067523,38.106353985895716],[-119.4039812013617,38.10634903846256],[-119.40397243934997,38.106347941335535],[-119.40396373055438,38.10634660561465],[-119.40395508537799,38.106345032895526],[-119.40394651414792,38.10634322505685],[-119.40393802710291,38.106341184258156],[-119.40392963438119,38.106338912937304],[-119.40392134600827,38.10633641380749],[-119.40391317188504,38.10633368985407],[-119.40390512177585,38.1063307443309],[-119.40389720529699,38.106327580756606],[-119.40388943190501,38.1063242029102],[-119.40388181088565,38.10632061482671],[-119.40387435134257,38.10631682079225],[-119.4038670621865,38.10631282533902],[-119.40385995212473,38.10630863323976],[-119.4038530296505,38.10630424950216],[-119.40384630303303,38.1062996793628],[-119.40383978030756,38.10629492828094],[-119.40383346926575,38.106290001931924],[-119.40382737744642,38.106284906200585],[-119.40382151212647,38.106279647174],[-119.40381588031227,38.1062742311343],[-119.40381048873127,38.106268664551244],[-119.40380534382385,38.10626295407433],[-119.40380045173582,38.106257106525035],[-119.40379581831097,38.1062511288885],[-119.40379144908405,38.106245028305324],[-119.40378734927422,38.10623881206291],[-119.40378352377886,38.10623248758683],[-119.40377997716763,38.10622606243198],[-119.403776713677,38.10621954427349],[-119.40377373720534,38.10621294089763],[-119.40377105130806,38.106206260192366],[-119.40376865919352,38.10619951013812],[-119.4037665637191,38.10619269879815],[-119.4037647673879,38.10618583430888],[-119.4037632723456,38.10617892487026],[-119.40376208037803,38.10617197873587],[-119.40376119290893,38.106165004203206],[-119.40376061099833,38.10615800960363],[-119.40375947926141,38.106144388753],[-119.4037577553571,38.106130806713324],[-119.40375544132529,38.10611727955318],[-119.40375253990389,38.10610382327615],[-119.40374905452589,38.10609045380207],[-119.40374498931502,38.10607718694795],[-119.40374034908102,38.10606403840945],[-119.40373513931395,38.1060510237422],[-119.40372936617763,38.10603815834352],[-119.40372303650238,38.10602545743406],[-119.4037161577769,38.10601293603986],[-119.4037087381395,38.106000608974604],[-119.40370078636836,38.10598849082207],[-119.40369231187124,38.10597659591883],[-119.40368332467432,38.10596493833737],[-119.40367383541022,38.10595353186938],[-119.40366385530564,38.105942390009496],[-119.4036533961679,38.10593152593919],[-119.40364247037107,38.105920952511454],[-119.40363109084126,38.10591068223529],[-119.40361927104134,38.10590072726109],[-119.40360702495505,38.10589109936624],[-119.4035943670705,38.10588180994112],[-119.4035813123629,38.10587286997574],[-119.40348123328705,38.10580820710282],[-119.40337930663836,38.105745371941346],[-119.40337225944386,38.105741280985846],[-119.40336503563776,38.105737387107006],[-119.40335764404331,38.10573369506086],[-119.40335009368867,38.1057302093569],[-119.40334239379598,38.10572693425258],[-119.40333455376997,38.10572387374819],[-119.40332658318651,38.10572103158181],[-119.403318491781,38.10571841122489],[-119.40331028943632,38.10571601587798],[-119.4033019861709,38.1057138484668],[-119.40329359212649,38.1057119116386],[-119.40328511755558,38.10571020775905],[-119.40327657280915,38.1057087389093],[-119.40326796832379,38.10570750688339],[-119.40325931460909,38.10570651318616],[-119.4032506222348,38.10570575903131],[-119.40324190181782,38.10570524533995],[-119.4032331640094,38.105704972739524],[-119.40322441948192,38.105704941562976],[-119.40321567891603,38.105705151848426],[-119.40320695298752,38.10570560333898],[-119.40319825235434,38.10570629548321],[-119.4031895876435,38.105707227435715],[-119.40318096943817,38.10570839805819],[-119.40317240826465,38.10570980592084],[-119.40316391457966,38.1057114493041],[-119.4031554987575,38.105713326200714],[-119.40314717107728,38.10571543431822],[-119.40313894171054,38.105717771081785],[-119.40313082070871,38.105720333637194],[-119.40312281799083,38.10572311885456],[-119.40311494333157,38.10572612333201],[-119.40310720634906,38.1057293433998],[-119.40309961649339,38.10573277512495],[-119.4030921830349,38.10573641431588],[-119.40308791491354,38.105738669925834],[-119.40308374825356,38.10574104102186],[-119.4030796880576,38.10574352475712],[-119.40307573920055,38.1057461181496],[-119.40307190642362,38.10574881808544],[-119.40306819432858,38.10575162132309],[-119.40306460737237,38.1057545244968],[-119.40306114986167,38.10575752412088],[-119.40305782594774,38.105760616593884],[-119.40305463962142,38.10576379820282],[-119.40305159470839,38.10576706512771],[-119.40304869486452,38.105770413446166],[-119.40304594357153,38.105773839137996],[-119.40304334413275,38.10577733809019],[-119.40304089966924,38.105780906101735],[-119.40303861311591,38.10578453888873],[-119.40303648721815,38.105788232089445],[-119.40303452452844,38.10579198126968],[-119.4030327274033,38.10579578192799],[-119.40303109800045,38.10579962950111],[-119.40302963827631,38.105803519369495],[-119.40302834998344,38.10580744686276],[-119.40302723466868,38.10581140726539],[-119.40302642720471,38.105814273041],[-119.40302549378993,38.10581711483136],[-119.4030244355591,38.10581992918151],[-119.40302325379882,38.105822712669806],[-119.4030219499458,38.10582546191213],[-119.40302052558528,38.10582817356606],[-119.4030189824489,38.10583084433483],[-119.40301732241275,38.10583347097137],[-119.4030155474951,38.105836050282264],[-119.40301365985378,38.10583857913163],[-119.40301166178381,38.10584105444499],[-119.40300955571432,38.10584347321291],[-119.40300734420585,38.105845832494666],[-119.40300502994704,38.10584812942193],[-119.40300261575156,38.105850361202144],[-119.40300010455451,38.10585252512196],[-119.40299749940897,38.105854618550524],[-119.40299480348214,38.1058566389427],[-119.4029920200517,38.105858583842135],[-119.40298915250169,38.10586045088426],[-119.40298620431841,38.10586223779916],[-119.40298317908614,38.10586394241436],[-119.40298008048298,38.10586556265742],[-119.40297691227605,38.10586709655847],[-119.40297367831722,38.105868542252644],[-119.40297038253829,38.10586989798229],[-119.40296702894615,38.10587116209914],[-119.40296362161808,38.1058723330663],[-119.40296016469655,38.10587340946013],[-119.40295666238451,38.105874389972],[-119.40295311893992,38.10587527340981],[-119.40294953867088,38.10587605869949],[-119.40294592593017,38.1058767448863],[-119.40294228511007,38.10587733113598],[-119.40293862063704,38.105877816735806],[-119.4029349369663,38.10587820109539],[-119.40293123857633,38.10587848374741],[-119.40292752996356,38.10587866434824],[-119.40292381563687,38.10587874267832],[-119.40292010011206,38.105878718642415],[-119.40291638790633,38.10587859226972],[-119.402912683533,38.10587836371389],[-119.40290899149568,38.10587803325282],[-119.40290531628315,38.10587760128828],[-119.40290166236362,38.1058770683454],[-119.40289803417943,38.10587643507216],[-119.40289443614168,38.10587570223844],[-119.40289087262478,38.10587487073527],[-119.40288734796115,38.10587394157352],[-119.40288386643604,38.10587291588286],[-119.4028804322822,38.1058717949103],[-119.40287704967483,38.105870580018696],[-119.40287372272638,38.10586927268511],[-119.40287045548169,38.10586787449894],[-119.40286725191305,38.10586638716007],[-119.40286411591522,38.1058648124768],[-119.40286105130092,38.105863152363575],[-119.40285806179602,38.105861408838734],[-119.40285515103513,38.10585958402203],[-119.40285232255701,38.10585768013201],[-119.4028495798005,38.105855699483385],[-119.40284692610018,38.105853644484206],[-119.40284436468235,38.10585151763289],[-119.40284189866111,38.1058493215152],[-119.40283953103457,38.10584705880114],[-119.40283726468128,38.105844732241664],[-119.40283510235655,38.10584234466535],[-119.40283304668932,38.105839898974956],[-119.40283110017882,38.10583739814391],[-119.40282926519151,38.105834845212655],[-119.40282754395837,38.105832243285],[-119.40282593857197,38.105829595524284],[-119.40282445098416,38.105826905149605],[-119.40282308300344,38.105824175431884],[-119.40282183629294,38.10582140968981],[-119.40282071236845,38.105818611285905],[-119.40281971259635,38.10581578362246],[-119.40281451025436,38.105798933735514],[-119.40280998037025,38.105781963033415],[-119.40280612741483,38.105764888267316],[-119.40280295519077,38.10574772629111],[-119.40280046682874,38.10573049404477],[-119.40279866478447,38.10571320853758],[-119.40279755083618,38.10569588683138],[-119.40279719000061,38.1056904552754],[-119.40279659044796,38.105685036912014],[-119.40279575290288,38.10567963828968],[-119.40279467837762,38.10567426593299],[-119.40279336817092,38.10566892633476],[-119.40279182386622,38.10566362594825],[-119.40279004733003,38.1056583711793],[-119.40278804070945,38.10565316837865],[-119.4027858064296,38.105648023834206],[-119.40278334719086,38.10564294376348],[-119.40278066596541,38.105637934306024],[-119.40277776599369,38.1056330015161],[-119.40277465078053,38.10562815135528],[-119.40277132409096,38.10562338968532],[-119.40276778994546,38.10561872226096],[-119.40276405261535,38.10561415472307],[-119.40276011661743,38.1056096925918],[-119.40275598670866,38.10560534125992],[-119.4027516678803,38.10560110598626],[-119.40274716535193,38.10559699188941],[-119.40274248456514,38.1055930039415],[-119.40273763117706,38.105589146962224],[-119.40273261105324,38.105585425612965],[-119.40272743026085,38.10558184439117],[-119.40271461703959,38.10557357779664],[-119.4027014630355,38.105565652421625],[-119.40268798279602,38.10555807703099],[-119.40267419122942,38.105550860002595],[-119.40266010358823,38.10554400931792],[-119.40264573545241,38.10553753255331],[-119.40263110271209,38.105531436871594],[-119.4026162215501,38.10552572901414],[-119.4026011084239,38.105520415293405],[-119.40258578004749,38.10551550158597],[-119.40257025337297,38.105510993326],[-119.40255454557166,38.10550689549932],[-119.40253867401528,38.1055032126378],[-119.4025226562565,38.10549994881439],[-119.4025065100098,38.10549710763865],[-119.4024902531317,38.105494692252684],[-119.40247390360103,38.10549270532776],[-119.40245747949918,38.105491149061244],[-119.40209908792339,38.10546545586557],[-119.40174000794636,38.10544670168774],[-119.4017311614215,38.105446443818714],[-119.40172230892152,38.10544642217582],[-119.40171346054656,38.105446636783725],[-119.40170462639205,38.105447087397565],[-119.40169581653726,38.10544777350325],[-119.40168704103361,38.10544869431795],[-119.40167830989347,38.105449848791096],[-119.40166963307853,38.10545123560549],[-119.40166102048845,38.105452853178846],[-119.40165248194972,38.10545469966566],[-119.4016440272043,38.10545677295915],[-119.4016356658985,38.10545907069385],[-119.40162740757205,38.10546159024818],[-119.40161926164726,38.10546432874747],[-119.4016112374181,38.10546728306728],[-119.40160334403974,38.10547044983689],[-119.40159559051811,38.10547382544325],[-119.40158798569946,38.105477406034936],[-119.4015805382605,38.105481187526756],[-119.40157325669831,38.10548516560423],[-119.40156614932071,38.10548933572866],[-119.40155922423688,38.10549369314211],[-119.4015524893479,38.105498232873074],[-119.40154595233797,38.105502949742004],[-119.40153962066543,38.105507838367195],[-119.40152621263034,38.10551818078892],[-119.40151235823984,38.10552814914648],[-119.40149807419895,38.105537731420355],[-119.40148337773083,38.10554691605644],[-119.40146828655593,38.10555569198026],[-119.40145281887057,38.10556404860998],[-119.40143699332519,38.105571975869395],[-119.40142082900172,38.10557946420009],[-119.40140434539056,38.10558650457276],[-119.40138756236712,38.10559308849838],[-119.4013705001679,38.10559920803816],[-119.40135317936597,38.10560485581335],[-119.4013356208463,38.105610025014],[-119.40131784578043,38.105614709407206],[-119.40129987560111,38.10561890334467],[-119.40128173197627,38.10562260176942],[-119.40126343678307,38.105625800221986],[-119.40124501208139,38.10562849484577],[-119.40122648008726,38.105630682391634],[-119.40120786314617,38.105632360221904],[-119.40118918370597,38.10563352631349],[-119.40117046428986,38.10563417926031],[-119.40115172746928,38.105634318275136],[-119.4011329958367,38.10563394319028],[-119.40111429197823,38.105633054458046],[-119.40109563844656,38.10563165315003],[-119.40107705773372,38.10562974095591],[-119.40105857224384,38.105627320181334],[-119.40104020426631,38.105624393745245],[-119.40102197594875,38.105620965176236],[-119.40100390927043,38.10561703860842],[-119.40098602601573,38.105612618776355],[-119.40096834774774,38.10560771100937],[-119.40095089578249,38.10560232122512],[-119.40093369116306,38.10559645592244],[-119.4009167546343,38.10559012217362],[-119.40090010661774,38.10558332761571],[-119.40088376718707,38.10557608044138],[-119.4008677560439,38.10556838938914],[-119.4008520924939,38.105560263732606],[-119.40083679542363,38.105551713269506],[-119.40082530051767,38.105545287607896],[-119.40081353072488,38.105539180539196],[-119.40080150018186,38.105533399398524],[-119.40078922333855,38.1055279511296],[-119.40077671494056,38.105522842276294],[-119.40076399001171,38.10551807897478],[-119.40075106383581,38.10551366694625],[-119.40073795193842,38.10550961148995],[-119.40072467006819,38.10550591747682],[-119.40071123417782,38.105502589343736],[-119.40069766040507,38.105499631088094],[-119.4006839650533,38.105497046263025],[-119.40067016457188,38.105494837973126],[-119.40065627553642,38.10549300887075],[-119.40064231462888,38.10549156115282],[-119.40062829861766,38.10549049655819],[-119.40061424433719,38.10548981636552],[-119.40060016866795,38.10548952139178],[-119.40058608851606,38.10548961199128],[-119.40057202079306,38.10549008805517],[-119.40055798239555,38.10549094901169],[-119.40054399018493,38.10549219382673],[-119.4005300609671,38.105493821005126],[-119.40051621147227,38.10549582859256],[-119.40050245833498,38.105498214177715],[-119.40049147943444,38.105500120048625],[-119.40048042421647,38.1055017270476],[-119.40046930570827,38.10550303328101],[-119.40045813701158,38.10550403720964],[-119.40044693128733,38.10550473765043],[-119.40043570174002,38.10550513377805],[-119.40042446160224,38.10550522512569],[-119.40041322411915,38.1055050115857],[-119.40040200253263,38.10550449340974],[-119.40039081006593,38.10550367120841],[-119.40037965990795,38.105502545950536],[-119.40036856519775,38.1055011189621],[-119.40035753900905,38.10549939192467],[-119.40034659433483,38.105497366873294],[-119.40033574407197,38.10549504619427],[-119.40032500100611,38.10549243262221],[-119.40031437779663,38.105489529236905],[-119.40030388696157,38.10548633945958],[-119.40029354086309,38.105482867049],[-119.40028335169266,38.105479116096944],[-119.40027333145694,38.10547509102346],[-119.40026349196344,38.10547079657158],[-119.40025897387038,38.105468824805946],[-119.40025437263238,38.10546697698056],[-119.40024969369288,38.105465255281445],[-119.4002449425873,38.10546366174546],[-119.4002401249364,38.10546219825781],[-119.40023524643959,38.105460866549876],[-119.40023031286842,38.105459668197106],[-119.40022533005947,38.10545860461722],[-119.40022030390757,38.10545767706845],[-119.40021524035893,38.10545688664814],[-119.40021014540392,38.10545623429139],[-119.40020502507002,38.10545572076995],[-119.40019988541485,38.105455346691365],[-119.40019473251883,38.10545511249816],[-119.400189572478,38.10545501846741],[-119.40018441139695,38.10545506471034],[-119.40017925538142,38.105455251172266],[-119.40017411053117,38.10545557763257],[-119.4001689829328,38.10545604370507],[-119.40016387865242,38.10545664883834],[-119.40015880372866,38.1054573923165],[-119.40015376416531,38.10545827326001],[-119.40014876592438,38.105459290626655],[-119.40014381491903,38.10546044321286],[-119.4001389170065,38.10546172965505],[-119.40013407798119,38.105463148431326],[-119.4001293035679,38.10546469786321],[-119.40012459941492,38.10546637611767],[-119.4001199710875,38.10546818120926],[-119.40011542406111,38.105470111002475],[-119.40011096371512,38.1054721632143],[-119.40010659532626,38.10547433541688],[-119.40010232406257,38.10547662504041],[-119.40009815497712,38.105479029376156],[-119.40009409300211,38.105481545579735],[-119.40009014294303,38.105484170674295],[-119.40008630947302,38.105486901554336],[-119.40008259712721,38.10548973498903],[-119.40007901029747,38.10549266762633],[-119.40007555322723,38.105495695996815],[-119.4000722300063,38.10549881651781],[-119.40006904456628,38.10550202549757],[-119.40006600067566,38.10550531913975],[-119.4000631019355,38.10550869354785],[-119.40006035177518,38.105512144729765],[-119.40005775344827,38.10551566860259],[-119.40005531002873,38.1055192609975],[-119.40004341159249,38.105538311914515],[-119.40003236480462,38.10555768039632],[-119.40002218321803,38.10557734268148],[-119.40001287932434,38.10559727464811],[-119.40000446453833,38.10561745184346],[-119.39999694918414,38.1056378495139],[-119.39999034248243,38.10565844263531],[-119.39998465253913,38.10567920594378],[-119.39997988633554,38.10570011396655],[-119.39997604971974,38.10572114105334],[-119.39997314739927,38.10574226140775],[-119.39997118293562,38.10576344911895],[-119.39997015873959,38.10578467819347],[-119.39997007606853,38.10580592258705],[-119.39997093502464,38.10582715623663],[-119.39997185550592,38.10584948021266],[-119.39997182081599,38.105871816016816],[-119.39997083099364,38.105894138140165],[-119.39996888716838,38.10591642108939],[-119.39996599155938,38.10593863941588],[-119.39996214747276,38.1059607677448],[-119.39995735929786,38.10598278080407],[-119.3999516325023,38.106004653453226],[-119.39994497362561,38.10602636071221],[-119.39993739027193,38.10604787778971],[-119.3999288911012,38.1060691801117],[-119.39991948581928,38.106090243349364],[-119.39990918516696,38.10611104344688],[-119.39989800090761,38.106131556649],[-119.39988594581379,38.10615175952804],[-119.39987303365264,38.106171629010795],[-119.39985927917019,38.106191142404725],[-119.39984469807447,38.106210277424005],[-119.39982930701764,38.10622901221488],[-119.39982761582264,38.10623092461028],[-119.39982584223688,38.106232789825725],[-119.39982398836668,38.106234605646044],[-119.39982205641368,38.10623636991478],[-119.39982004867231,38.10623808053668],[-119.39981796752699,38.10623973548015],[-119.39981581544927,38.10624133277978],[-119.39981359499501,38.106242870538615],[-119.39981130880125,38.10624434693039],[-119.39980895958305,38.1062457602017],[-119.39980655013042,38.10624710867415],[-119.3998040833048,38.106248390746266],[-119.39980156203585,38.10624960489547],[-119.39979898931783,38.10625074967979],[-119.39979636820618,38.10625182373969],[-119.39979370181372,38.10625282579958],[-119.39979099330706,38.10625375466943],[-119.39978824590291,38.10625460924609],[-119.39978546286407,38.10625538851467],[-119.39978264749577,38.10625609154968],[-119.3997798031415,38.10625671751621],[-119.39977693317931,38.106257265670806],[-119.39977404101758,38.10625773536254],[-119.39977113009107,38.106258126033545],[-119.39976820385681,38.106258437219886],[-119.39976526579007,38.106258668551995],[-119.3997623193801,38.10625881975511],[-119.39975936812614,38.10625889064971],[-119.39975641553309,38.106258881151554],[-119.3997534651075,38.10625879127195],[-119.39975052035334,38.10625862111759],[-119.39974758476782,38.106258370890636],[-119.39974466183727,38.10625804088819],[-119.39974175503305,38.1062576315022],[-119.39973886780723,38.106257143218855],[-119.39973600358879,38.10625657661803],[-119.39973316577925,38.10625593237265],[-119.3997303577489,38.1062552112478],[-119.39972758283251,38.106254414099915],[-119.39972484432565,38.10625354187571],[-119.39972214548058,38.106252595611025],[-119.39971948950249,38.106251576429656],[-119.39971687954565,38.10625048554202],[-119.39971431870968,38.10624932424363],[-119.39971181003584,38.106248093913685],[-119.39970935650346,38.10624679601334],[-119.39970111273401,38.10624243304828],[-119.39969268590191,38.106238294192956],[-119.39968408576145,38.1062343842382],[-119.39967532226761,38.1062307077099],[-119.39966640556436,38.106227268863755],[-119.39965734597307,38.10622407168029],[-119.39964815398046,38.10622111986038],[-119.39963884022657,38.10621841682079],[-119.39962941549231,38.106215965690396],[-119.39961989068709,38.10621376930643],[-119.3996102768361,38.10621183021126],[-119.39960058506769,38.10621015064947],[-119.39959082660029,38.10620873256517],[-119.39958101272966,38.10620757759985],[-119.39957115481552,38.106206687090406],[-119.39956126426877,38.10620606206763],[-119.39955135253793,38.10620570325498],[-119.3995414310961,38.10620561106783],[-119.3995315114276,38.106205785612865],[-119.39952160501473,38.106206226688045],[-119.39951172332442,38.10620693378281],[-119.39950187779496,38.106207906078716],[-119.39949207982286,38.10620914245023],[-119.39948234074953,38.10621064146629],[-119.39947267184819,38.10621240139171],[-119.39946308431085,38.106214420189346],[-119.39945358923539,38.10621669552236],[-119.39944419761257,38.10621922475703],[-119.3994349203135,38.10622200496564],[-119.39942576807692,38.1062250329301],[-119.39941675149679,38.10622830514539],[-119.39940788101008,38.106231817823854],[-119.39939916688463,38.10623556689948],[-119.39939061920734,38.1062395480326],[-119.39938224787238,38.10624375661494],[-119.39926706104617,38.106305904519225],[-119.39915435858099,38.10637083410023],[-119.3990442480357,38.106438483395344],[-119.39893683449655,38.106508787846366],[-119.39883222047698,38.10658168036107],[-119.39876800307098,38.10662624542104],[-119.39870185712998,38.106669013213505],[-119.39863386317707,38.10670993167279],[-119.39856410398559,38.10674895098451],[-119.3984926644783,38.10678602364627],[-119.398419631624,38.106821104525466],[-119.39834509433163,38.106854150914224],[-119.398269143342,38.10688512258148],[-119.39823985800388,38.10689704259137],[-119.39821109250376,38.10690972829861],[-119.39818287889666,38.10692316556694],[-119.3981552486226,38.10693733942259],[-119.3981282324716,38.10695223407096],[-119.39810186054945,38.106967832914236],[-119.39807616224401,38.10698411856988],[-119.39807213131662,38.10698666967405],[-119.39806799086115,38.10698910880585],[-119.39806374585717,38.10699143303175],[-119.39805940141014,38.1069936395565],[-119.39805496274496,38.10699572572627],[-119.3980504351999,38.10699768903218],[-119.39804582422016,38.106999527112954],[-119.39804113535126,38.10700123775795],[-119.3980363742324,38.107002818909855],[-119.39803154658965,38.10700426866702],[-119.39802665822909,38.107005585285876],[-119.39802171502987,38.107006767182924],[-119.39801672293707,38.10700781293678],[-119.3980116879546,38.107008721289695],[-119.39800661613782,38.1070094911492],[-119.39800151358662,38.10701012158943],[-119.39799638643764,38.10701061185217],[-119.39799124085725,38.10701096134777],[-119.39798608303389,38.107011169655905],[-119.39798091917076,38.107011236526056],[-119.39797575547838,38.107011161877814],[-119.39797059816696,38.107010945800916],[-119.39796545343913,38.10701058855525],[-119.39796032748231,38.107010090570505],[-119.39795522646138,38.10700945244552],[-119.39795015651127,38.10700867494783],[-119.39794512372944,38.10700775901248],[-119.39794013416878,38.10700670574104],[-119.39793519383005,38.107005516400285],[-119.39793030865494,38.107004192420575],[-119.39792548451872,38.10700273539427],[-119.39792072722327,38.107001147073646],[-119.39791604249008,38.10699942936899],[-119.39791143595338,38.10699758434616],[-119.39790691315332,38.10699561422407],[-119.3979024795294,38.106993521372175],[-119.39789814041384,38.1069913083075],[-119.39789390102516,38.10698897769165],[-119.39788976646197,38.10698653232762],[-119.39788574169684,38.10698397515636],[-119.39788183157019,38.106981309253335],[-119.39787804078469,38.106978537824766],[-119.39787437389938,38.10697566420378],[-119.39787083532434,38.10697269184645],[-119.39786742931533,38.10696962432752],[-119.39786415996865,38.106966465336264],[-119.39786103121622,38.10696321867187],[-119.39776267585846,38.10686079178531],[-119.39766031915038,38.10676084259662],[-119.39755406101419,38.10666346866229],[-119.39744400517878,38.10656876502481],[-119.39735520265522,38.1064972385437],[-119.3972633072839,38.10642819431556],[-119.39716843013859,38.106361715787855],[-119.39707068589613,38.10629788330691],[-119.39697019269742,38.10623677402084],[-119.3951895256568,38.10499341015011],[-119.39429714070234,38.104374024370905],[-119.39426866217566,38.1043539416157],[-119.39424106501194,38.10433310474623],[-119.39421438117611,38.10431153789781],[-119.39418864157516,38.104289266051126],[-119.39416387602219,38.10426631500357],[-119.39414011320208,38.10424271133916],[-119.39411738063815,38.10421848239782],[-119.39409570466027,38.104193656243694],[-119.39407511037444,38.10416826163265],[-119.3940556216337,38.10414232797896],[-119.39403726101035,38.10411588532124],[-119.3940200497701,38.10408896428765],[-119.39400400784717,38.1040615960604],[-119.39398915382135,38.10403381233964],[-119.39397550489646,38.10400564530675],[-119.39392818666146,38.103908048858365],[-119.39387664844686,38.10381179612035],[-119.39382095125194,38.10371700098434],[-119.39376116099626,38.10362377561692],[-119.39369734844182,38.10353223032678],[-119.39362958910903,38.103442473434285],[-119.39355796318755,38.1033546111433],[-119.39348255544118,38.103268747415555],[-119.39340345510756,38.10318498384765],[-119.39326742283973,38.103041827641746],[-119.39313659286148,38.102895675321946],[-119.39301107077037,38.10274664488743],[-119.39287949818322,38.10259144535116],[-119.39274124197698,38.10243991718891],[-119.3925964661056,38.1022922400495],[-119.39244534224942,38.102148589014895],[-119.39228804961176,38.102009134392915],[-119.39219962293186,38.101930691566075],[-119.39211472364568,38.101849852054386],[-119.39203345570087,38.10176671484585],[-119.39195591859747,38.10168138174166],[-119.39193864213578,38.10166234648561],[-119.39192055883512,38.1016437850616],[-119.39190168949138,38.101625718814745],[-119.39188205580432,38.10160816852075],[-119.39186168035269,38.10159115436195],[-119.39184058656812,38.101574695904084],[-119.39181879870834,38.10155881207392],[-119.39179634182908,38.10154352113736],[-119.39177324175546,38.101528840678526],[-119.39174952505215,38.10151478757942],[-119.39172521899297,38.101501378000656],[-119.39170035152934,38.10148862736283],[-119.39167495125824,38.10147655032871],[-119.39164904738936,38.10146516078646],[-119.39162266971144,38.101454471833684],[-119.39159584855807,38.10144449576225],[-119.39156861477272,38.10143524404433],[-119.39154099967338,38.101426727319016],[-119.39151303501654,38.10141895538025],[-119.39145983299045,38.10140569503335],[-119.39140613047464,38.10139376076719],[-119.391351980388,38.10138316434185],[-119.39129743609033,38.101373916199094],[-119.39124255132995,38.1013660254521],[-119.39122543015296,38.10136354096906],[-119.39120842828802,38.10136058887667],[-119.39119156618162,38.1013571727251],[-119.39117486411222,38.10135329662268],[-119.39115834216585,38.10134896523081],[-119.39114202021186,38.10134418375845],[-119.39112591787905,38.10133895795582],[-119.39111005453218,38.10133329410749],[-119.3910944492485,38.101327199024865],[-119.39107912079494,38.101320680037894],[-119.39106408760551,38.10131374498634],[-119.39104936775912,38.101306402210334],[-119.3910349789578,38.10129866054033],[-119.39102093850548,38.10129052928646],[-119.39100726328712,38.10128201822742],[-119.39099396974846,38.101273137598646],[-119.39098107387623,38.10126389807999],[-119.39096859117885,38.10125431078289],[-119.39095653666786,38.10124438723705],[-119.39094492483989,38.10123413937654],[-119.3909337696591,38.101223579525474],[-119.39092308454056,38.10121272038309],[-119.39091288233395,38.1012015750086],[-119.39090317530821,38.10119015680541],[-119.39089397513682,38.10117847950503],[-119.39088529288355,38.10116655715059],[-119.39087713898951,38.10115440407985],[-119.39086952326018,38.10114203490804],[-119.390862454854,38.10112946451029],[-119.39085594227113,38.10111670800371],[-119.39084999334324,38.10110378072922],[-119.3908446152242,38.10109069823306],[-119.39083981438137,38.10107747624818],[-119.39083559658796,38.10106413067522],[-119.39083196691588,38.10105067756351],[-119.39082892972986,38.10103713309158],[-119.39082648868207,38.10102351354796],[-119.39082464670771,38.101009835311345],[-119.39082340602165,38.10099611483106],[-119.39082276811553,38.10098236860721],[-119.3908227337562,38.10096861317083],[-119.39082330298463,38.10095486506403],[-119.39082447511592,38.10094114082013],[-119.39082624874018,38.10092745694371],[-119.39082870107771,38.10091332208602],[-119.39083175443592,38.100899260509415],[-119.39083540535042,38.100885288167014],[-119.39083964967881,38.100871420910714],[-119.39084448260552,38.100857674473154],[-119.39084989864713,38.10084406444992],[-119.39085589165879,38.100830606281825],[-119.390862454841,38.10081731523735],[-119.3908695807474,38.10080420639541],[-119.39087726129327,38.10079129462815],[-119.39088548776462,38.10077859458422],[-119.39089425082814,38.10076612067195],[-119.39090354054174,38.10075388704318],[-119.39091334636586,38.10074190757711],[-119.39092365717543,38.100730195864585],[-119.39094601020803,38.10070477012059],[-119.39096722363054,38.10067874185396],[-119.39098727146079,38.100652142945535],[-119.39100612914443,38.10062500597509],[-119.39102377358486,38.100597364181425],[-119.39104018317167,38.100569251421575],[-119.39105533780695,38.100540702129486],[-119.39106921893006,38.10051175127368],[-119.39108180954025,38.10048243431454],[-119.3910930942175,38.10045278716079],[-119.39110305914141,38.100422846125596],[-119.39111169210813,38.10039264788199],[-119.3911189825453,38.10036222941802],[-119.39112492152495,38.10033162799146],[-119.39112950177447,38.10030088108407],[-119.3911327176855,38.10027002635579],[-119.39113456532081,38.10023910159858],[-119.39113504241902,38.100208144690136],[-119.39113414839754,38.10017719354746],[-119.39113188435307,38.10014628608047],[-119.39113110672389,38.1001396495796],[-119.39113004389374,38.10013303781942],[-119.39112869709261,38.10012645845113],[-119.3911270678791,38.100119919088456],[-119.39112515813862,38.10011342729877],[-119.39112297008126,38.1001069905945],[-119.39112050623908,38.10010061642421],[-119.39111776946335,38.100094312164124],[-119.39111476292116,38.10008808510965],[-119.39111149009175,38.10008194246673],[-119.39110795476257,38.10007589134373],[-119.39110416102476,38.10006993874302],[-119.39110011326856,38.10006409155299],[-119.39109581617807,38.10005835654005],[-119.39109127472602,38.100052740340836],[-119.39108649416784,38.10004724945442],[-119.39108148003565,38.100041890234884],[-119.39107623813193,38.100036668883966],[-119.39107077452269,38.100031591443845],[-119.39106509553042,38.100026663790146],[-119.39105920772701,38.10002189162516],[-119.39105311792585,38.10001728047131],[-119.39104683317413,38.10001283566463],[-119.39104036074461,38.10000856234865],[-119.39103370812731,38.10000446546849],[-119.39102688302061,38.100000549765085],[-119.39101989332266,38.09999681976967],[-119.39101274712192,38.09999327979864],[-119.39100545268805,38.09998993394845],[-119.39099801846224,38.09998678609092],[-119.39099045304737,38.09998383986879],[-119.39098276519822,38.09998109869143],[-119.39095425204447,38.09997094123903],[-119.39092618323201,38.09996003833291],[-119.39089858996083,38.09994840209226],[-119.3908715029022,38.099936045451486],[-119.39084495216477,38.099922982145664],[-119.39081896726091,38.09990922669548],[-119.39079357707398,38.09989479439081],[-119.39076880982628,38.099879701274034],[-119.39074469304762,38.099863964121965],[-119.39072125354468,38.09984760042731],[-119.39069851737133,38.099830628379216],[-119.39067650979953,38.099813066843005],[-119.39065525529134,38.09979493533926],[-119.39063477747172,38.09977625402209],[-119.3905966764267,38.099741367557655],[-119.39055728100828,38.0997073907087],[-119.39051662597643,38.09967435345269],[-119.39051022438346,38.099669472756176],[-119.39050361619864,38.099664767137625],[-119.39049680908572,38.09966024205431],[-119.39048981093913,38.099655902754066],[-119.39048262987491,38.09965175426936],[-119.39047527422116,38.09964780141127],[-119.3904677525085,38.099644048764105],[-119.39046007346006,38.09964050067986],[-119.39045224598154,38.0996371612734],[-119.39044427915067,38.09963403441749],[-119.39043618220686,38.09963112373847],[-119.39042796454036,38.099628432611915],[-119.39041963568147,38.09962596415884],[-119.39041120528944,38.099623721241954],[-119.39040268314118,38.099621706462415],[-119.39039407912014,38.099619922156855],[-119.39038540320462,38.099618370394566],[-119.39037666545636,38.09961705297519],[-119.39036787600872,38.099615971426545],[-119.39035904505515,38.099615127002984],[-119.3903501828371,38.09961452068373],[-119.39034129963235,38.09961415317204],[-119.390332405743,38.09961402489406],[-119.39032351148356,38.099614135998586],[-119.39031462716895,38.099614486356764],[-119.39030576310256,38.099615075562255],[-119.39029692956429,38.09961590293177],[-119.39028813679863,38.099616967505774],[-119.39027939500282,38.099618268049646],[-119.39027071431501,38.09961980305511],[-119.39026210480235,38.09962157074197],[-119.39025244440448,38.09962355162433],[-119.39024270288314,38.09962526657005],[-119.39023289195816,38.09962671351592],[-119.39022302343302,38.09962789072109],[-119.39021310918041,38.09962879676934],[-119.39020316112806,38.09962943057056],[-119.39019319124436,38.09962979136225],[-119.390183211524,38.09962987871036],[-119.39017323397343,38.09962969250979],[-119.39016327059659,38.09962923298453],[-119.39015333338027,38.099628500687466],[-119.39014343427984,38.09962749649961],[-119.39013358520478,38.09962622162908],[-119.39012379800444,38.09962467760966],[-119.39011408445367,38.09962286629895],[-119.39010445623875,38.099620789876134],[-119.39009492494323,38.099618450839294],[-119.39008550203413,38.0996158520025],[-119.39007619884802,38.09961299649242],[-119.39006702657747,38.09960988774446],[-119.39005799625748,38.09960652949873],[-119.39004911875232,38.09960292579549],[-119.39004040474238,38.099599080970286],[-119.39003186471137,38.099594999648836],[-119.39002350893365,38.099590686741266],[-119.39001534746193,38.09958614743644],[-119.39000739011512,38.0995813871955],[-119.38994863081953,38.09954363235312],[-119.38989156487031,38.09950428897209],[-119.38983626100341,38.099463404443384],[-119.38978278583201,38.099421028014376],[-119.38973120376622,38.09937721072933],[-119.38971853316649,38.09936567070067],[-119.38970637477507,38.09935379156592],[-119.38969474311476,38.09934158751455],[-119.3896836520792,38.09932907312414],[-119.38967311491618,38.09931626334299],[-119.38966314421191,38.09930317347219],[-119.38965375187598,38.09928981914741],[-119.38964494912705,38.09927621632018],[-119.38963674647958,38.09926238123888],[-119.38962915373111,38.099248330429255],[-119.38962217995073,38.09923408067482],[-119.38961583346813,38.09921964899661],[-119.3896101218637,38.099205052632996],[-119.38960505195946,38.099190309019086],[-119.38960062981094,38.09917543576584],[-119.38959686069994,38.099160450639026],[-119.38959374912812,38.09914537153808],[-119.38959129881182,38.09913021647466],[-119.38956843024437,38.09897062766827],[-119.38956778870764,38.098966841636624],[-119.38956698092282,38.098963075528154],[-119.38956600786744,38.09895933390013],[-119.38956487071898,38.09895562128019],[-119.38956357085351,38.09895194216081],[-119.38956210984396,38.09894830099399],[-119.3895604894583,38.09894470218577],[-119.38955871165729,38.09894115009096],[-119.38955677859221,38.09893764900784],[-119.38955469260225,38.098934203172924],[-119.38955245621155,38.098930816755896],[-119.38955007212638,38.098927493854575],[-119.38954754323166,38.098924238489865],[-119.38954487258748,38.09892105460098],[-119.38954206342555,38.09891794604062],[-119.38953911914514,38.09891491657036],[-119.38953604330905,38.09891196985606],[-119.38953283963924,38.09890910946339],[-119.38952951201239,38.098906338853666],[-119.38952606445513,38.09890366137947],[-119.38952250113925,38.09890108028074],[-119.38951882637663,38.09889859868076],[-119.38951504461394,38.09889621958241],[-119.38951116042739,38.098893945864546],[-119.38950717851706,38.098891780278564],[-119.38950310370137,38.098889725444906],[-119.3894989409111,38.09888778385008],[-119.38949469518347,38.09888595784353],[-119.38949037165614,38.09888424963482],[-119.3894859755608,38.09888266129104],[-119.38948151221702,38.09888119473413],[-119.38947698702574,38.09887985173876],[-119.38947240546277,38.09887863393002],[-119.38946777307201,38.09887754278152],[-119.38946309545902,38.098876579613645],[-119.38945837828395,38.098875745591876],[-119.3894536272549,38.09887504172546],[-119.38944884812095,38.09887446886605],[-119.38944404666506,38.09887402770692],[-119.3894392286974,38.09887371878186],[-119.38943440004796,38.09887354246468],[-119.3894295665597,38.098873498968764],[-119.38942473408144,38.09887358834673],[-119.38941990846081,38.09887381049041],[-119.3894150955371,38.098874165131036],[-119.38941030113425,38.09887465183941],[-119.38939265386293,38.098876443575456],[-119.38937493846792,38.098877749701764],[-119.38935717634159,38.09887856864113],[-119.38933938893264,38.09887889940464],[-119.38932159772038,38.09887874159287],[-119.38930382418873,38.0988780953964],[-119.38928608980017,38.09887696159553],[-119.38926841596998,38.0988753415594],[-119.3892508240403,38.09887323724431],[-119.38923333525436,38.0988706511913],[-119.38921597073082,38.09886758652319],[-119.38919875143827,38.09886404694075],[-119.38918169816996,38.09886003671819],[-119.38916483151863,38.098855560698105],[-119.3891481718516,38.09885062428552],[-119.38913173928636,38.09884523344139],[-119.38911555366599,38.09883939467551],[-119.3890996345355,38.09883311503845],[-119.38908400111802,38.09882640211322],[-119.38906867229164,38.098819264006075],[-119.38905366656665,38.0988117093366],[-119.38903900206316,38.098803747227485],[-119.3890246964892,38.098795387293386],[-119.38901076711939,38.098786639629346],[-119.38899723077401,38.098777514798634],[-119.38898410379873,38.09876802381995],[-119.38897140204489,38.09875817815411],[-119.38895914085033,38.098747989690246],[-119.38894733502086,38.09873747073146],[-119.3889359988124,38.09872663397988],[-119.38892514591377,38.09871549252141],[-119.38891478943017,38.09870405980992],[-119.38890494186725,38.098692349650925],[-119.38889561511621,38.098680376185],[-119.3888868204393,38.09866815387066],[-119.38887916834973,38.09865752176242],[-119.38887105095723,38.09864710736785],[-119.38886247816953,38.09863692339809],[-119.38885346045025,38.09862698228311],[-119.38884400880603,38.09861729615641],[-119.38883413477313,38.09860787684027],[-119.38882385040331,38.098598735831274],[-119.38881316824917,38.09858988428642],[-119.38880210134883,38.09858133300928],[-119.38879066320995,38.09857309243704],[-119.38877886779328,38.0985651726276],[-119.38876672949567,38.09855758324735],[-119.38875426313241,38.098550333559366],[-119.38874148391925,38.09854343241217],[-119.3887284074537,38.09853688822886],[-119.38871504969613,38.09853070899681],[-119.38870142695013,38.098524902258],[-119.38868755584282,38.0985194750997],[-119.38867345330435,38.098514434145976],[-119.38865913654742,38.09850978554944],[-119.38864462304606,38.09850553498389],[-119.38862993051453,38.098501687637246],[-119.38861507688553,38.098498248205345],[-119.38860008028844,38.09849522088609],[-119.38858495902703,38.09849260937445],[-119.38856973155731,38.09849041685785],[-119.3885544164649,38.09848864601229],[-119.38853362108799,38.09848624386452],[-119.388512943523,38.098483273768366],[-119.38849240860154,38.09847973929057],[-119.38847204098404,38.09847564467572],[-119.3884518651299,38.09847099484102],[-119.38843190526823,38.09846579537048],[-119.38841218536886,38.098460052508116],[-119.38839272911329,38.09845377315052],[-119.38837355986645,38.098446964838594],[-119.38835470064859,38.09843963574841],[-119.38833617410762,38.098431794681446],[-119.3883180024919,38.098423451054025],[-119.38830020762356,38.09841461488599],[-119.38828281087227,38.098405296788684],[-119.38826583312957,38.09839550795214],[-119.3882492947838,38.09838526013174],[-119.38823321569564,38.09837456563409],[-119.38821761517414,38.09836343730208],[-119.38820251195365,38.09835188849973],[-119.38818792417136,38.098339933095886],[-119.38817386934534,38.09832758544771],[-119.38809863021316,38.09826113232023],[-119.38802095483021,38.09819645333972],[-119.3879409101609,38.09813360426115],[-119.38785856521157,38.098072639261986],[-119.38784416143373,38.09806264372889],[-119.38782932318611,38.09805305327692],[-119.38781406870184,38.09804387969072],[-119.38779841672553,38.09803513424263],[-119.3877823864902,38.098026827678865],[-119.38776599769362,38.09801897020643],[-119.38774927047415,38.098011571480406],[-119.38773222538597,38.098004640592244],[-119.38771488337389,38.09799818605848],[-119.38769726574746,38.0979922158103],[-119.38767939415493,38.09798673718384],[-119.38766129055664,38.097981756911146],[-119.38764297719794,38.09797728111186],[-119.38762447658198,38.09797331528574],[-119.38760581144189,38.097969864305945],[-119.38758700471308,38.09796693241292],[-119.38756807950485,38.09796452320938],[-119.38754905907209,38.09796263965566],[-119.38753040083783,38.09796131469096],[-119.38751169532934,38.097960506930214],[-119.3874929654974,38.09796021736455],[-119.38747423432265,38.09796044634923],[-119.38745552478727,38.09796119360327],[-119.387436859847,38.09796245820985],[-119.38741826240283,38.09796423861739],[-119.38739975527291,38.09796653264136],[-119.38738136116463,38.097969337467134],[-119.38736310264669,38.09797264965331],[-119.38734500212142,38.097976465136014],[-119.38732708179737,38.097980779233794],[-119.38730936366196,38.09798558665348],[-119.38722594951332,38.098010771765864],[-119.3871436464394,38.09803814465337],[-119.38706254629469,38.098067674766774],[-119.38698273959159,38.09809932914927],[-119.38690431539919,38.098133072473324],[-119.38682736124414,38.09816886707989],[-119.38675196301268,38.098206673020606],[-119.38667820485504,38.09824644810232],[-119.38660616909146,38.098288147934184],[-119.38653593612024,38.09833172597707],[-119.38646758432813,38.098377133595655],[-119.38640119000283,38.09842432011263],[-119.3863915481668,38.0984311633188],[-119.38638161126164,38.09843773765111],[-119.3863713912876,38.09844403517004],[-119.38636090058682,38.09845004827034],[-119.38635015182845,38.09845576969025],[-119.38633915799325,38.09846119252022],[-119.38632793235796,38.09846631021135],[-119.38631648847927,38.09847111658323],[-119.38630484017746,38.09847560583138],[-119.38629300151962,38.09847977253433],[-119.38628098680284,38.09848361166013],[-119.38626881053673,38.09848711857242],[-119.3862564874261,38.09849028903603],[-119.38624403235305,38.09849311922213],[-119.38623146035901,38.098495605712834],[-119.38621878662673,38.09849774550528],[-119.38620602646175,38.09849953601533],[-119.38619319527396,38.098500975080704],[-119.38618030855913,38.098502060963426],[-119.38616738188003,38.09850279235216],[-119.38615443084764,38.098503168363635],[-119.3861414711025,38.09850318854374],[-119.38612851829552,38.098502852868116],[-119.3861155880693,38.098502161742175],[-119.38610269603919,38.09850111600051],[-119.38608985777438,38.09849971690605],[-119.38607708877909,38.09849796614843],[-119.38606440447397,38.09849586584194],[-119.38605182017733,38.09849341852307],[-119.3860393510867,38.09849062714733],[-119.3860270122605,38.09848749508575],[-119.3860148185998,38.098484026120815],[-119.38600278483041,38.098480224441836],[-119.38599092548498,38.098476094639956],[-119.38597925488551,38.09847164170255],[-119.3859677871261,38.09846687100727],[-119.38595653605582,38.09846178831548],[-119.3859455152621,38.09845639976531],[-119.38593473805426,38.098450711864324],[-119.38570463675828,38.098329023932365],[-119.38546959858144,38.09821337861819],[-119.38522987753602,38.09810390089249],[-119.3851964907807,38.09808980384927],[-119.3851625215105,38.098076604441644],[-119.38512800835774,38.09806431768083],[-119.38509299057318,38.09805295754011],[-119.38505750798146,38.098042536938955],[-119.38502160093569,38.0980330677283],[-119.38498531027173,38.09802456067712],[-119.38494867726162,38.09801702546015],[-119.38491174356675,38.09801047064691],[-119.38487455119035,38.09800490369192],[-119.38483714242986,38.09800033092627],[-119.38479955982882,38.09799675755036],[-119.38476184612833,38.09799418762807],[-119.38472404421867,38.097992624082046],[-119.3846861970904,38.09799206869046],[-119.3846483477855,38.09799252208492],[-119.3846105393484,38.09799398374983],[-119.38457281477709,38.09799645202287],[-119.38453521697416,38.09799992409698],[-119.3845264870527,38.098000727789],[-119.38451772728928,38.0980012934641],[-119.38450894807245,38.09800162045136],[-119.38450015981392,38.09800170836303],[-119.3844913729361,38.09800155709486],[-119.38448259785974,38.09800116682618],[-119.3844738449916,38.09800053801992],[-119.38446512471215,38.09799967142174],[-119.38445644736309,38.0979985680594],[-119.38444782323536,38.097997229241436],[-119.3844392625567,38.09799565655561],[-119.38443077547954,38.09799385186704],[-119.38442237206918,38.09799181731599],[-119.38441406229153,38.09798955531534],[-119.38440585600155,38.09798706854765],[-119.38439776293144,38.09798435996215],[-119.38438979267914,38.09798143277102],[-119.38438195469689,38.097978290445795],[-119.38437425828009,38.09797493671308],[-119.38436671255627,38.09797137555025],[-119.38435932647423,38.09796761118058],[-119.38435210879338,38.09796364806843],[-119.3843450680735,38.097959490913844],[-119.38433821266443,38.09795514464695],[-119.3843315506963,38.09795061442223],[-119.38432509006978,38.09794590561221],[-119.38431883844676,38.09794102380132],[-119.38431280324126,38.09793597477908],[-119.38430699161067,38.09793076453335],[-119.38430141044721,38.09792539924319],[-119.38429606636974,38.09791988527152],[-119.38429096571599,38.0979142291576],[-119.38428611453496,38.09790843760924],[-119.38428151857984,38.097902517494894],[-119.38427718330108,38.09789647583544],[-119.38427311384005,38.097890319795965],[-119.38426931502273,38.097884056677145],[-119.38426579135432,38.097877693906675],[-119.38423285873974,38.0978121468187],[-119.38420282366494,38.09774573629378],[-119.38417572228504,38.097678542291895],[-119.38415158722272,38.097610645716124],[-119.38413044752882,38.09754212831518],[-119.38411232864753,38.097473072585146],[-119.38410325748531,38.097438404117625],[-119.38409271765673,38.09740399603685],[-119.384080721062,38.09736988718559],[-119.38406728124598,38.097336116068746],[-119.38405241338253,38.09730272080992],[-119.38403613425761,38.09726973910831],[-119.38401846225028,38.09723720819633],[-119.38399941731184,38.09720516479733],[-119.38397902094346,38.097173645084354],[-119.38395729617176,38.09714268463918],[-119.38393426752287,38.097112318412236],[-119.38361910301128,38.09662111077869],[-119.38332442001834,38.096122026948],[-119.38305053289065,38.09561560001119],[-119.38279773374344,38.095102370891915],[-119.38256629215026,38.09458288776828],[-119.38235645485652,38.09405770548687],[-119.3822997537302,38.09391581309545],[-119.38223720167616,38.09377546471392],[-119.38216886586584,38.0936368109811],[-119.38209481967725,38.09350000071601],[-119.38201514261613,38.09336518075828],[-119.38192992023049,38.09323249581053],[-119.38183924401875,38.09310208828312],[-119.38182304998217,38.09308055775351],[-119.38180591517957,38.09305948690697],[-119.38178786048083,38.0930389014064],[-119.38176890787608,38.09301882632362],[-119.38174908044905,38.09299928610873],[-119.38172840234891,38.09298030456036],[-119.3817068987608,38.09296190479674],[-119.38168459587511,38.0929441092275],[-119.38166152085581,38.09292693952639],[-119.38163770180714,38.092910416604866],[-119.3816131677394,38.092894560586664],[-119.38158794853379,38.09287939078329],[-119.38156207490577,38.092864925670376],[-119.38153557836793,38.092851182865395],[-119.38150849119131,38.09283817910603],[-119.38148084636637,38.09282593022989],[-119.38145267756265,38.092814451155164],[-119.38144065603667,38.09280996259072],[-119.38142844559907,38.0928058046942],[-119.38141606080727,38.09280198242272],[-119.38140351642669,38.09279850033324],[-119.38139082741286,38.09279536257714],[-119.38137800889388,38.09279257289533],[-119.38136507615214,38.092790134613686],[-119.38135204460625,38.09278805063914],[-119.38133892979259,38.0927863234563],[-119.38132574734685,38.092784955124266],[-119.38131251298528,38.092783947274434],[-119.3812992424861,38.09278330110833],[-119.38128595167055,38.09278301739638],[-119.38127265638414,38.09278309647676],[-119.38125937247766,38.092783538255254],[-119.38124611578837,38.0927843422051],[-119.38123290212107,38.09278550736788],[-119.38121974722928,38.09278703235447],[-119.38120666679643,38.09278891534671],[-119.38119367641718,38.092791154099714],[-119.38118079157886,38.09279374594439],[-119.38116802764299,38.09279668779072],[-119.38115539982685,38.09279997613135],[-119.38114292318558,38.09280360704592],[-119.38113061259403,38.09280757620561],[-119.38111848272906,38.092811878878315],[-119.38110654805212,38.092816509934295],[-119.38109482279192,38.09282146385237],[-119.38108332092757,38.0928267347264],[-119.38107205617179,38.09283231627235],[-119.38106104195467,38.09283820183583],[-119.38105029140756,38.09284438439997],[-119.38103981734756,38.09285085659383],[-119.38102963226203,38.09285761070114],[-119.38101974829392,38.09286463866953],[-119.38101017722713,38.09287193212016],[-119.38100093047254,38.09287948235767],[-119.38099201905437,38.09288728038045],[-119.38098345359717,38.092895316891635],[-119.38097524431288,38.09290358230993],[-119.38096740098888,38.092912066781125],[-119.38095993297628,38.09292076018988],[-119.38095284917871,38.09292965217174],[-119.3809461580418,38.0929387321255],[-119.38093986754296,38.092947989225884],[-119.38093398518201,38.092957412436334],[-119.3809285179722,38.09296699052233],[-119.3809234724318,38.09297671206466],[-119.38091809551658,38.0929870746851],[-119.38091227139917,38.09299728523695],[-119.38090600695232,38.09300733167088],[-119.38089930956848,38.09301720213112],[-119.38089218715106,38.09302688496966],[-119.38088464810498,38.093036368759805],[-119.38087670132687,38.09304564230978],[-119.38086835619451,38.09305469467596],[-119.38085962255586,38.093063515175686],[-119.38085051071727,38.09307209339992],[-119.38084103143143,38.093080419225515],[-119.38083119588475,38.09308848282725],[-119.38082101568395,38.093096274689245],[-119.38081050284256,38.0931037856164],[-119.38079966976669,38.09311100674505],[-119.38078852924029,38.09311792955358],[-119.3807770944102,38.09312454587238],[-119.3807653787706,38.09313084789359],[-119.38075339614701,38.09313682818017],[-119.38074116068006,38.09314247967478],[-119.38072868680871,38.09314779570813],[-119.38071598925335,38.09315277000675],[-119.38070308299834,38.09315739670049],[-119.38068998327428,38.093161670329366],[-119.38067670554015,38.09316558585011],[-119.38066326546497,38.09316913864197],[-119.38064967890936,38.09317232451231],[-119.3806359619068,38.0931751397015],[-119.38062213064471,38.093177580887314],[-119.3805528693015,38.093189799991066],[-119.38048417654934,38.09320388182388],[-119.38041613257272,38.09321980994828],[-119.38034881679891,38.09323756577148],[-119.38028230780533,38.09325712856733],[-119.38027500711375,38.09325927414173],[-119.38026761656484,38.09326121810581],[-119.38026014506984,38.093262958115645],[-119.38025260163768,38.09326449207316],[-119.3802449953639,38.09326581812878],[-119.38023733541988,38.093266934683584],[-119.38022963104171,38.0932678403913],[-119.38022189151908,38.093268534159826],[-119.38021412618401,38.09326901515264],[-119.38020634439968,38.09326928278981],[-119.38019855554909,38.093269336748584],[-119.38019076902374,38.09326917696394],[-119.38018299421238,38.09326880362852],[-119.38017524048959,38.093268217192474],[-119.38016751720453,38.09326741836293],[-119.38015983366967,38.09326640810305],[-119.38015219914953,38.093265187631005],[-119.38014462284958,38.093263758418374],[-119.38013711390501,38.09326212218849],[-119.38012994824442,38.09326056046753],[-119.38012271846168,38.09325919574854],[-119.38011543322577,38.0932580296679],[-119.38010810127221,38.09325706362384],[-119.38010073139253,38.09325629877467],[-119.38009333242368,38.09325573603755],[-119.38008591323754,38.09325537608719],[-119.3800784827302,38.09325521935523],[-119.38007104981133,38.093255266029594],[-119.38006362339358,38.09325551605431],[-119.38005621238163,38.09325596912957],[-119.38004882566186,38.09325662471213],[-119.38004147209139,38.09325748201589],[-119.3800341604877,38.09325854001291],[-119.38002689961786,38.09325979743451],[-119.38001969818816,38.09326125277303],[-119.3800125648336,38.09326290428341],[-119.38000550810763,38.09326474998534],[-119.37999853647166,38.093266787665705],[-119.37999165828519,38.09326901488121],[-119.37998488179568,38.09327142896126],[-119.37997821512856,38.093274027011184],[-119.37997166627767,38.093276805915785],[-119.37996524309554,38.09327976234296],[-119.379958953284,38.09328289274771],[-119.37995280438504,38.09328619337651],[-119.37994680377157,38.09328966027162],[-119.3799409586388,38.093293289276055],[-119.37993527599546,38.09329707603835],[-119.37992976265546,38.093301016017925],[-119.37992442522972,38.093305104490476],[-119.3799192701182,38.09330933655362],[-119.37991430350226,38.09331370713281],[-119.37990953133728,38.09331821098744],[-119.37990495934547,38.093322842717065],[-119.379900593009,38.093327596767885],[-119.37989643756343,38.09333246743949],[-119.37989249799152,38.09333744889157],[-119.3798887790171,38.09334253515104],[-119.37988528509956,38.09334772011905],[-119.37988202042843,38.09335299757851],[-119.37987898891826,38.093358361201346],[-119.37987619420419,38.09336380455619],[-119.37987363963727,38.09336932111604],[-119.3798713282807,38.09337490426614],[-119.37986926290601,38.09338054731192],[-119.3798539791837,38.09342773895442],[-119.37984033495498,38.0934752434],[-119.37982834043859,38.09352302508183],[-119.37981800461812,38.0935710482254],[-119.37981677633165,38.09357663228505],[-119.37981530410012,38.093582179381364],[-119.37981358968939,38.09358768286051],[-119.3798116351559,38.093593136121015],[-119.37980944284406,38.093598532621584],[-119.37980701538353,38.09360386588905],[-119.37980435568608,38.09360912952607],[-119.37980146694194,38.09361431721883],[-119.37979835261623,38.09361942274461],[-119.37979501644455,38.09362443997922],[-119.37979146242864,38.09362936290445],[-119.37978769483159,38.09363418561515],[-119.37978371817262,38.09363890232639],[-119.3797795372218,38.09364350738039],[-119.37977515699414,38.09364799525331],[-119.37977058274389,38.09365236056189],[-119.3797658199578,38.093656598069835],[-119.37976087434893,38.09366070269419],[-119.37975575184961,38.09366466951137],[-119.37975045860433,38.093668493763126],[-119.37974500096243,38.093672170862206],[-119.37973938547042,38.093675696397824],[-119.37973361886415,38.09367906614103],[-119.37972770806076,38.093682276049805],[-119.37972166015038,38.093685322273735],[-119.37971548238755,38.09368820115886],[-119.37970918218262,38.09369090925191],[-119.37970276709281,38.09369344330443],[-119.37969624481312,38.09369580027682],[-119.37968962316717,38.09369797734181],[-119.3796829100977,38.09369997188796],[-119.37967611365721,38.09370178152281],[-119.37966924199814,38.09370340407563],[-119.37966230336323,38.09370483760018],[-119.37965530607542,38.09370608037686],[-119.37964825852819,38.093707130914964],[-119.37964116917519,38.09370798795437],[-119.37963404652022,38.093708650467],[-119.37962689910707,38.093709117658186],[-119.3796197355092,38.09370938896751],[-119.3796125643195,38.09370946406953],[-119.37960539413999,38.09370934287418],[-119.3795982335714,38.09370902552679],[-119.37957109000124,38.093707821126856],[-119.37954391001433,38.0937073574242],[-119.37951672596341,38.09370763497079],[-119.37948957020605,38.093708653436266],[-119.37946247506608,38.09371041160835],[-119.37943547279527,38.093712907394185],[-119.3794085955348,38.09371613782308],[-119.37938187527705,38.09372009904978],[-119.37935534382758,38.09372478635917],[-119.37932903276719,38.0937301941719],[-119.37930297341437,38.093736316050936],[-119.37927719678807,38.09374314470933],[-119.37925173357063,38.09375067201883],[-119.37922661407144,38.09375888901951],[-119.37920186819079,38.09376778593058],[-119.37917752538421,38.09377735216191],[-119.37915361462755,38.09378757632659],[-119.37914459089768,38.093791433289915],[-119.37913540264181,38.093795039505814],[-119.37912606101187,38.09379839059738],[-119.37911657734595,38.09380148249728],[-119.37910696315456,38.093804311452864],[-119.3790972301066,38.093806874030534],[-119.37908739001521,38.09380916712008],[-119.37907745482356,38.09381118793831],[-119.37906743659013,38.09381293403252],[-119.37905734747427,38.093814403283446],[-119.37904719972133,38.09381559390783],[-119.37903700564785,38.09381650446059],[-119.3790267776265,38.093817133836545],[-119.37901652807135,38.09381748127185],[-119.37900626942242,38.0938175463448],[-119.37899601413085,38.09381732897641],[-119.3789857746437,38.093816829430494],[-119.37897556338879,38.093816048313386],[-119.37896539275981,38.09381498657309],[-119.378955275101,38.09381364549835],[-119.37894522269237,38.09381202671679],[-119.37893524773472,38.09381013219316],[-119.37892536233485,38.09380796422691],[-119.37891557849085,38.09380552544932],[-119.37890590807754,38.093802818820386],[-119.37889636283212,38.09379984762518],[-119.37888695433976,38.093796615469934],[-119.37887769401975,38.09379312627754],[-119.37886859311148,38.09378938428291],[-119.37885966266086,38.09378539402777],[-119.37885091350692,38.093781160355185],[-119.37884235626865,38.093776688403615],[-119.37883400133207,38.09377198360075],[-119.37882585883769,38.09376705165692],[-119.37881793866815,38.093761898558064],[-119.37881025043625,38.093756530558636],[-119.37880280347328,38.09375095417383],[-119.37879560681768,38.09374517617182],[-119.3787886692041,38.093739203565455],[-119.37878199905278,38.09373304360377],[-119.37877560445929,38.09372670376323],[-119.37877186692903,38.093722997500834],[-119.37876796918803,38.09371939578013],[-119.37876391591476,38.093715902924295],[-119.37875971197435,38.09371252312576],[-119.37875536241285,38.0937092604413],[-119.37875087245098,38.093706118787125],[-119.37874624747808,38.09370310193409],[-119.37874149304551,38.0937002135034],[-119.37873661486002,38.09369745696197],[-119.37873161877684,38.09369483561849],[-119.37872651079282,38.09369235261933],[-119.37872129703904,38.09369001094484],[-119.37871598377353,38.093687813405715],[-119.37871057737387,38.093685762639666],[-119.37870508432927,38.09368386110821],[-119.37869951123305,38.09368211109374],[-119.37869386477455,38.09368051469681],[-119.37868815173121,38.09367907383354],[-119.37868237896038,38.09367779023341],[-119.37867655339107,38.09367666543713],[-119.37867068201574,38.093675700794755],[-119.37866477188173,38.09367489746417],[-119.37865883008293,38.09367425640961],[-119.3786528637513,38.093673778400515],[-119.37864688004818,38.093673464010635],[-119.37864088615576,38.09367331361734],[-119.37863488926848,38.09367332740114],[-119.37862889658442,38.093673505345514],[-119.37862291529655,38.09367384723683],[-119.37861695258414,38.09367435266475],[-119.37861101560424,38.093675021022605],[-119.37836175938163,38.093703000780295],[-119.37811140494071,38.093723981980006],[-119.3778602668343,38.093737938260375],[-119.37782799920424,38.093739726523424],[-119.37779583073034,38.09374240763351],[-119.3777638009564,38.09374597829481],[-119.37773194925572,38.09375043411802],[-119.37770031478267,38.09375576962574],[-119.37766893642471,38.093761978259124],[-119.37763785275439,38.09376905238609],[-119.37760710198208,38.09377698331065],[-119.37757672190895,38.09378576128349],[-119.3775467498806,38.093795375514105],[-119.37751722274095,38.09380581418397],[-119.37748817678711,38.093817064461085],[-119.3774596477248,38.09382911251576],[-119.3774316706243,38.09384194353767],[-119.37740427987748,38.09385554175387],[-119.37737750915547,38.09386989044843],[-119.37735139136727,38.093884971982824],[-119.37732595861924,38.0939007678177],[-119.37730124217585,38.09391725853548],[-119.37727361251828,38.09393569198413],[-119.3772451810221,38.09395334750582],[-119.37721598273902,38.09397020333372],[-119.37718605366598,38.09398623868684],[-119.37715543070112,38.09400143379573],[-119.37712415159811,38.09401576992688],[-119.37709225491953,38.094029229405734],[-119.3770597799895,38.09404179563852],[-119.37702676684506,38.09405345313273],[-119.3769932561869,38.094064187516196],[-119.37695928932915,38.09407398555481],[-119.37692490814831,38.0940828351689],[-119.37689015503189,38.09409072544798],[-119.37685507282589,38.094097646664395],[-119.37654854706292,38.09415117606272],[-119.37624077689628,38.094200043780965],[-119.37611907068263,38.09421676125505],[-119.37599672994332,38.09423028028667],[-119.37587388923141,38.09424058600739],[-119.37575068364994,38.09424766708265],[-119.37562724870354,38.094251515724565],[-119.37560989813,38.09425159497658],[-119.37559255424506,38.094251206117804],[-119.37557523726478,38.09425034960149],[-119.37555796737374,38.094249026426],[-119.37554076470168,38.09424723813361],[-119.37552364929999,38.094244986808775],[-119.37550664111835,38.09424227507559],[-119.3754897599814,38.09423910609486],[-119.37547302556577,38.09423548356035],[-119.375456457377,38.09423141169447],[-119.37544007472687,38.09422689524337],[-119.37542389671093,38.094221939471396],[-119.37540794218616,38.09421655015501],[-119.37539222974907,38.09421073357595],[-119.3753767777139,38.09420449651398],[-119.37536160409147,38.09419784623902],[-119.37534672656794,38.09419079050259],[-119.37533216248443,38.0941833375288],[-119.37531792881666,38.09417549600483],[-119.37530404215518,38.09416727507067],[-119.37529051868611,38.0941586843086],[-119.37527737417214,38.09414973373199],[-119.37526462393433,38.09414043377351],[-119.3752522828341,38.09413079527316],[-119.37524036525598,38.09412082946548],[-119.3752288850908,38.09411054796655],[-119.37521785571955,38.09409996276039],[-119.37520728999782,38.09408908618496],[-119.37519720024066,38.09407793091796],[-119.3751875982084,38.094066509961834],[-119.37517849509283,38.094054836628686],[-119.37516990150417,38.09404292452486],[-119.37516182745875,38.09403078753494],[-119.37515428236738,38.094018439805645],[-119.37514727502419,38.09400589572933],[-119.37514081359663,38.0939931699272],[-119.3751349056157,38.09398027723227],[-119.37512955796738,38.09396723267206],[-119.37512477688453,38.09395405145113],[-119.37512056793959,38.09394074893325],[-119.37511059192833,38.09390915369301],[-119.37509929579079,38.0938778372348],[-119.37508669195105,38.093846833997695],[-119.37507279427136,38.0938161780762],[-119.37505761803664,38.09378590318286],[-119.37504117993791,38.09375604261122],[-119.3750234980537,38.09372662919904],[-119.3750045918303,38.09369769529239],[-119.37498448206041,38.09366927270997],[-119.37496319086006,38.09364139270811],[-119.37494074164454,38.09361408594645],[-119.37491715910247,38.093587382454196],[-119.37489246916871,38.09356131159714],[-119.37486669899586,38.09353590204529],[-119.37482393385334,38.09349371077412],[-119.37478299354122,38.093450403703145],[-119.37474392463463,38.093406030103374],[-119.37470677157933,38.09336064045918],[-119.37467157664115,38.0933142864108],[-119.37463837985797,38.09326702069556],[-119.37460721899409,38.09321889708791],[-119.37457812949732,38.0931699703382],[-119.37455114445869,38.093120296110484],[-119.37452629457479,38.093069930919015],[-119.37450360811287,38.093018932064105],[-119.37448311087866,38.09296735756688],[-119.37446482618714,38.09291526610315],[-119.37444877483593,38.09286271693688],[-119.37443497508164,38.092809769852536],[-119.37442344261919,38.09275648508724],[-119.37441419056398,38.0927029232621],[-119.3744072294369,38.09264914531334],[-119.37440256715244,38.09259521242288],[-119.37439942542096,38.092558908943545],[-119.37439472946319,38.092522710402925],[-119.37438848467121,38.092486658348],[-119.37438069821475,38.09245079415755],[-119.37437137903295,38.09241515899466],[-119.37436053782406,38.09237979375957],[-119.37434818703325,38.09234473904255],[-119.37433434083816,38.092310035077496],[-119.37431901513278,38.09227572169561],[-119.37430222750912,38.09224183827981],[-119.37428399723696,38.09220842371946],[-119.37426434524183,38.092175516365714],[-119.37424329408091,38.09214315398756],[-119.37422086791722,38.09211137372844],[-119.37419709249171,38.09208021206366],[-119.37417199509395,38.09204970475845],[-119.37414560453055,38.09201988682701],[-119.3741179510923,38.09199079249226],[-119.3740890665193,38.0919624551466],[-119.37405898396453,38.091934907313565],[-119.37389798228851,38.09178774100693],[-119.37374303421177,38.09163657067677],[-119.37359429903432,38.091481551775395],[-119.37345192966431,38.09132284371177],[-119.37331607246101,38.09116060968745],[-119.37318686708437,38.09099501652873],[-119.37302650994448,38.090788591769055],[-119.37285886757238,38.090585814635595],[-119.37268407276694,38.090386845688286],[-119.37250226398709,38.09019184247043],[-119.37244935299724,38.09013473878287],[-119.37239893264496,38.09007624450507],[-119.37235106138533,38.09001642745951],[-119.37230579471739,38.08995535700222],[-119.3722631851199,38.08989310394234],[-119.37222328199039,38.08982974046009],[-119.37218613158802,38.089765340022915],[-119.37215177697988,38.08969997730043],[-119.3721202579912,38.089633728077764],[-119.37209161115904,38.0895666691677],[-119.37206586969013,38.089498878321606],[-119.37204306342228,38.089430434139345],[-119.3720232187899,38.08936141597796],[-119.37200635879333,38.089291903859866],[-119.3719994411156,38.08926338330362],[-119.37199129869272,38.089235065448484],[-119.37198194096936,38.089206983136265],[-119.37197137879951,38.08917916893555],[-119.37195962443407,38.08915165510394],[-119.37194669150644,38.08912447355064],[-119.37193259501692,38.08909765579948],[-119.37191735131515,38.089071232952314],[-119.37190097808119,38.08904523565296],[-119.37188349430498,38.089019694051736],[-119.37186492026446,38.088994637770384],[-119.37184527750182,38.08897009586778],[-119.37182458879862,38.088946096806254],[-119.3718028781495,38.08892266841849],[-119.37178017073408,38.088899837875374],[-119.37175649288797,38.088877631654384],[-119.37173187207212,38.08885607550895],[-119.37170633684107,38.08883519443853],[-119.37167991680967,38.0888150126597],[-119.37165264261888,38.08879555357799],[-119.37162454590022,38.08877683976075],[-119.37159565923896,38.08875889291105],[-119.3715660161365,38.08874173384247],[-119.37153565097137,38.08872538245491],[-119.3715045989595,38.088709857711606],[-119.37147289611326,38.08869517761708],[-119.37144057919974,38.088681359196315],[-119.37140768569814,38.088668418474874],[-119.3713742537563,38.088656370460534],[-119.37134032214638,38.08864522912573],[-119.37130593022003,38.088635007391346],[-119.37125580598243,38.08862163992149],[-119.37120512868549,38.08860964553279],[-119.37115395852497,38.0885990384725],[-119.37110235628195,38.08858983133987],[-119.37105038325076,38.08858203507132],[-119.37099810116602,38.0885756589274],[-119.37094557212943,38.088570710481825],[-119.37089285853592,38.08856719561246],[-119.3708400229997,38.08856511849434],[-119.37078712827977,38.088564481594695],[-119.37073423720537,38.08856528567004],[-119.37068141260146,38.08856752976529],[-119.37062871721406,38.08857121121486],[-119.37057621363572,38.088576325645874],[-119.37052396423114,38.0885828669833],[-119.37047203106327,38.08859082745718],[-119.37042047581932,38.08860019761193],[-119.3703693597378,38.088610966317525],[-119.37031874353559,38.088623120782614],[-119.37026868733588,38.0886366465699],[-119.3702192505968,38.08865152761315],[-119.37017049204076,38.088667746236354],[-119.37012246958469,38.088685283174584],[-119.37007524027133,38.08870411759709],[-119.3700288602014,38.0887242271319],[-119.36998338446706,38.088745587892326],[-119.36992282986132,38.088776322508686],[-119.36986366491362,38.08880870366705],[-119.3698059612684,38.088842692157165],[-119.36974978880085,38.088878246822446],[-119.36969521553242,38.088915324609744],[-119.36964230754836,38.0889538806215],[-119.36959112891772,38.08899386817013],[-119.36954174161576,38.08903523883447],[-119.36949420544896,38.08907794251847],[-119.36944857798247,38.08912192751189],[-119.36940491447055,38.089167140552725],[-119.36930603622645,38.08927693231526],[-119.36921163677476,38.08938915958674],[-119.36912181209817,38.089503708282],[-119.36903665353003,38.089620461955505],[-119.36895624766163,38.08973930191969],[-119.36888067625402,38.08986010736557],[-119.36881001615484,38.08998275548552],[-119.3687833818591,38.09002889386082],[-119.36875481354735,38.09007430381836],[-119.36872434306203,38.0901189347384],[-119.36869200436608,38.09016273686943],[-119.36865783350534,38.09020566138378],[-119.36862186856803,38.090247660432006],[-119.36858414964266,38.09028868719622],[-119.3685447187731,38.09032869594229],[-119.36850361991182,38.09036764207088],[-119.36846089887091,38.090405482167085],[-119.36841660327097,38.09044217404888],[-119.36837078248803,38.09047767681415],[-119.36832348759859,38.09051195088631],[-119.3683068201676,38.09052322658716],[-119.3682896652018,38.09053403593117],[-119.3682720435814,38.09054436576155],[-119.36825397675462,38.090554203505235],[-119.3682354867116,38.09056353718807],[-119.36821659595763,38.09057235544939],[-119.36819732748579,38.09058064755592],[-119.36817770474886,38.0905884034148],[-119.36815775163089,38.090595613585855],[-119.36813749241807,38.09060226929311],[-119.36811695176922,38.09060836243542],[-119.36809615468565,38.090613885596426],[-119.36807512648089,38.09061883205353],[-119.36805389274976,38.09062319578606],[-119.36803247933723,38.09062697148261],[-119.36801091230707,38.090630154547526],[-119.36798921790995,38.09063274110646],[-119.36796742255163,38.090634728011125],[-119.36794555276073,38.0906361128432],[-119.36792363515656,38.09063689391704],[-119.36790169641644,38.09063707028195],[-119.36787976324365,38.09063664172328],[-119.36785786233453,38.09063560876267],[-119.3678360203462,38.09063397265736],[-119.36781426386409,38.090631735398816],[-119.3677926193695,38.09062889971014],[-119.36777111320741,38.090625469042855],[-119.36774977155446,38.090621447572666],[-119.36773119583091,38.09061794218056],[-119.36771247919388,38.09061494127398],[-119.36769364357183,38.09061244836886],[-119.3676747110326,38.09061046638587],[-119.36765570375763,38.09060899764709],[-119.36763664401586,38.09060804387332],[-119.36761755413774,38.090607606182],[-119.36759845648898,38.09060768508591],[-119.36757937344447,38.09060828049261],[-119.3675603273619,38.09060939170456],[-119.3675413405557,38.0906110174198],[-119.3675224352709,38.09061315573369],[-119.36750363365692,38.09061580414095],[-119.36748495774184,38.09061895953871],[-119.36746642940639,38.09062261823009],[-119.36744807035844,38.09062677592856],[-119.3674344484272,38.090630259726105],[-119.36742098207206,38.09063410278944],[-119.36740768645815,38.09063830079066],[-119.36739457655847,38.09064284900223],[-119.3673816671367,38.090647742302146],[-119.36736897273093,38.090652975179786],[-119.367356507637,38.09065854174216],[-119.36734428589259,38.09066443572045],[-119.36733232126133,38.090670650477136],[-119.36732062721725,38.09067717901344],[-119.36730921692975,38.09068401397722],[-119.36729810324867,38.090691147671286],[-119.36728729868977,38.09069857206195],[-119.36727681542078,38.09070627878824],[-119.36726666524757,38.09071425917114],[-119.36725685960096,38.09072250422354],[-119.3672474095237,38.0907310046602],[-119.36723832565822,38.09073975090831],[-119.36723555720714,38.09074241427244],[-119.36723267459725,38.09074500088494],[-119.36722968123284,38.090747507690985],[-119.36722658064902,38.09074993173015],[-119.36722337650747,38.09075227013966],[-119.36722007259219,38.09075452015794],[-119.36721667280506,38.09075667912777],[-119.36721318116112,38.09075874449941],[-119.36720960178394,38.09076071383374],[-119.36720593890063,38.090762584805006],[-119.36720219683706,38.09076435520364],[-119.36719838001244,38.09076602293883],[-119.3671944929344,38.09076758604099],[-119.36719054019346,38.09076904266417],[-119.36718652645777,38.09077039108814],[-119.36718245646742,38.090771629720386],[-119.36717833502898,38.090772757098144],[-119.36717416700981,38.09077377189002],[-119.36716995733221,38.09077467289753],[-119.36716571096777,38.090775459056616],[-119.36716143293133,38.090776129438844],[-119.36715712827517,38.09077668325251],[-119.36715280208298,38.090777119843544],[-119.36714845946392,38.0907774386964],[-119.36714410554654,38.090777639434464],[-119.36713974547273,38.09077772182068],[-119.36713538439162,38.09077768575778],[-119.36713102745357,38.09077753128831],[-119.36712667980403,38.090777258594734],[-119.36712234657752,38.09077686799907],[-119.36711803289143,38.09077635996262],[-119.36711374384018,38.09077573508536],[-119.36710948448903,38.09077499410526],[-119.3671052598682,38.09077413789739],[-119.36710107496684,38.09077316747293],[-119.36709693472729,38.09077208397792],[-119.36709284403902,38.09077088869195],[-119.3670888077331,38.09076958302661],[-119.36708483057629,38.09076816852389],[-119.36708091726554,38.09076664685428],[-119.36707707242238,38.09076501981484],[-119.36707330058744,38.09076328932705],[-119.36706960621524,38.0907614574346],[-119.36706599366872,38.09075952630093],[-119.36706246721421,38.09075749820663],[-119.36705903101637,38.09075537554685],[-119.36705568913327,38.090753160828406],[-119.36705244551159,38.09075085666684],[-119.36704930398196,38.09074846578331],[-119.36704626825447,38.0907459910014],[-119.36704334191423,38.09074343524377],[-119.36704052841714,38.09074080152871],[-119.36703783108591,38.090738092966596],[-119.36703525310598,38.090735312756124],[-119.3670327975219,38.09073246418074],[-119.3670304672336,38.09072955060449],[-119.36702399847374,38.090721460401014],[-119.36701718433395,38.09071354927514],[-119.3670100327436,38.090705826432696],[-119.36700255202479,38.090698300860325],[-119.36699475088255,38.0906909813152],[-119.36698663839478,38.09068387631472],[-119.36697822400164,38.090676994126596],[-119.3669695174947,38.09067034275931],[-119.36696052900527,38.090663929952726],[-119.36695126899293,38.090657763169105],[-119.36694174823312,38.09065184958438],[-119.36693197780473,38.09064619607995],[-119.36692196907717,38.09064080923446],[-119.36691173369712,38.09063569531634],[-119.36690128357502,38.09063086027636],[-119.36689063087115,38.09062630974083],[-119.36687978798156,38.09062204900495],[-119.36686876752358,38.090618083026726],[-119.36685758232113,38.09061441642117],[-119.3668462453899,38.0906110534549],[-119.36683476992206,38.0906079980412],[-119.36682316927107,38.09060525373553],[-119.36681145693593,38.09060282373132],[-119.36679964654572,38.09060071085616],[-119.36678775184353,38.09059891756871],[-119.36677578667062,38.09059744595579],[-119.36676376495019,38.090596297729746],[-119.36675170067132,38.090595474226774],[-119.36674322983663,38.090595125967596],[-119.36673474888038,38.09059500716348],[-119.36672626775045,38.090595117953754],[-119.366717796395,38.09059545820847],[-119.36670934475065,38.09059602752854],[-119.36670092273096,38.090596825246124],[-119.36669254021473,38.09059785042556],[-119.36668420703438,38.09059910186434],[-119.36667593296455,38.090600578094524],[-119.36666772771046,38.090602277384576],[-119.36665960089667,38.09060419774126],[-119.36665156205571,38.090606336912046],[-119.36664362061688,38.09060869238775],[-119.36663578589535,38.09061126140549],[-119.36662806708098,38.09061404095182],[-119.36662047322778,38.090617027766456],[-119.36661301324314,38.09062021834594],[-119.36660569587741,38.09062360894778],[-119.36659852971371,38.09062719559494],[-119.36659152315777,38.09063097408033],[-119.36658468442812,38.09063493997192],[-119.36651680428737,38.09067679676076],[-119.36645025895683,38.0907199716239],[-119.36638508940342,38.09076443798336],[-119.36638035710718,38.09076763661706],[-119.36637548945383,38.09077070575913],[-119.36637049211352,38.09077364183442],[-119.36636537090742,38.0907764414228],[-119.36636013180103,38.09077910126314],[-119.36635478089718,38.090781618257125],[-119.36634932442888,38.09078398947281],[-119.36634376875217,38.09078621214803],[-119.36633812033863,38.09078828369368],[-119.36633238576788,38.090790201696706],[-119.36632657171988,38.0907919639229],[-119.36632068496719,38.090793568319526],[-119.36631473236704,38.09079501301765],[-119.36630872085341,38.09079629633443],[-119.36630265742889,38.090797416774976],[-119.36629654915647,38.09079837303412],[-119.36629040315151,38.09079916399795],[-119.36628422657319,38.09079978874512],[-119.36627802661643,38.09080024654785],[-119.36627181050329,38.09080053687291],[-119.36626558547466,38.09080065938208],[-119.3662593587819,38.090800613932686],[-119.3662531376782,38.09080040057762],[-119.36624692941031,38.09080001956544],[-119.36624074120999,38.09079947133998],[-119.36623458028566,38.09079875653982],[-119.3662284538139,38.09079787599765],[-119.36622236893125,38.09079683073911],[-119.36621633272571,38.09079562198184],[-119.36621035222868,38.09079425113387],[-119.36620443440655,38.09079271979203],[-119.3661985861528,38.090791029740124],[-119.36619281427981,38.09078918294682],[-119.36618712551102,38.0907871815634],[-119.36618239175344,38.09078551757905],[-119.36617758767964,38.09078398462679],[-119.36617271909442,38.09078258455886],[-119.36616779188056,38.09078131906694],[-119.36616281199163,38.090780189680224],[-119.3661577854449,38.09077919776328],[-119.36615271831398,38.09077834451471],[-119.36614761672155,38.09077763096546],[-119.36614248683192,38.09077705797774],[-119.36613733484356,38.09077662624389],[-119.36613216698167,38.090776336285586],[-119.36612698949061,38.090776188453155],[-119.36612180862645,38.09077618292528],[-119.36611663064923,38.090776319708596],[-119.36611146181555,38.09077659863783],[-119.36610630837093,38.090777019375984],[-119.3661011765424,38.09077758141463],[-119.36609607253074,38.090778284074695],[-119.36609100250317,38.0907791265071],[-119.3660859725859,38.09078010769396],[-119.36608098885658,38.09078122644972],[-119.36607605733714,38.09078248142251],[-119.36607118398635,38.090783871096],[-119.36606637469275,38.09078539379098],[-119.36606163526746,38.09078704766761],[-119.36605697143716,38.09078883072744],[-119.36605238883723,38.09079074081605],[-119.36604789300488,38.09079277562541],[-119.36604348937242,38.09079493269684],[-119.36603918326088,38.09079720942396],[-119.36603497987338,38.090799603055764],[-119.36603088428889,38.09080211069998],[-119.36596152860275,38.090844722325194],[-119.36589051303663,38.09088559066955],[-119.36581790771562,38.09092467537572],[-119.36574378433505,38.090961937847545],[-119.36566821608963,38.090997341288364],[-119.36559127760128,38.091030850737184],[-119.36551304484531,38.09106243310334],[-119.3654335950754,38.09109205719908],[-119.36542869197312,38.09109373091605],[-119.36542371818418,38.09109526885484],[-119.36541867972635,38.091096669154666],[-119.3654135826956,38.09109793012136],[-119.36540843325879,38.09109905022925],[-119.36540323764618,38.091100028123144],[-119.3653980021439,38.0911008626199],[-119.36539273308638,38.09110155270985],[-119.36538743684858,38.09110209755806],[-119.3653821198384,38.091102496505336],[-119.36537678848883,38.091102749069],[-119.36537144925025,38.09110285494348],[-119.36536610858256,38.09110281400063],[-119.36536077294741,38.09110262629003],[-119.36535544880032,38.0911022920388],[-119.36535014258295,38.091101811651285],[-119.36534486071528,38.09110118570878],[-119.36533960958778,38.09110041496857],[-119.36533439555376,38.09109950036317],[-119.36532922492161,38.091098442999154],[-119.36532410394729,38.09109724415583],[-119.36531903882658,38.09109590528367],[-119.36531403568776,38.091094428002556],[-119.36530910058406,38.0910928140998],[-119.36530423948643,38.091091065528126],[-119.36529945827633,38.09108918440309],[-119.3652947627384,38.091087173000616],[-119.36529015855379,38.09108503375435],[-119.36528565129304,38.09108276925248],[-119.36528124640945,38.09108038223484],[-119.36527694923245,38.09107787558946],[-119.36527276496112,38.091075252349135],[-119.36526869865799,38.091072515687664],[-119.36526475524282,38.091069668916134],[-119.36526093948669,38.09106671547881],[-119.36525725600626,38.09106365894904],[-119.36525370925811,38.091060503024885],[-119.36525030353339,38.09105725152468],[-119.36524704295265,38.09105390838239],[-119.36524393146082,38.09105047764283],[-119.36524097282243,38.091046963456826],[-119.36523817061709,38.09104337007618],[-119.36523552823516,38.09103970184846],[-119.36523304887356,38.09103596321182],[-119.36523073553207,38.09103215868962],[-119.36522859100951,38.091028292884886],[-119.36522661790053,38.09102437047484],[-119.36489983783994,38.090366974334515],[-119.36474322277296,38.090076090740936],[-119.36457588965766,38.089788959377096],[-119.36456970440328,38.08977917803205],[-119.36456309749599,38.089769570452646],[-119.36455607674061,38.08976014798812],[-119.36454865043076,38.08975092176902],[-119.36454082733913,38.0897419026941],[-119.36453261670712,38.089733101417444],[-119.36452402823392,38.08972452833574],[-119.364515072065,38.08971619357626],[-119.36450575878025,38.089708106984624],[-119.36449609938134,38.08970027811334],[-119.36448610527881,38.08969271621053],[-119.36447578827854,38.089685430208824],[-119.36446516056786,38.08967842871504],[-119.36445423470113,38.08967171999987],[-119.3644430235849,38.089665311988156],[-119.36443154046259,38.08965921224954],[-119.36441979889908,38.08965342798947],[-119.36440781276438,38.08964796604076],[-119.36439559621748,38.089642832855475],[-119.3643831636895,38.08963803449729],[-119.36437052986673,38.08963357663441],[-119.36435770967317,38.08962946453279],[-119.36434471825307,38.08962570304995],[-119.3643315709528,38.08962229662921],[-119.36431828330295,38.08961924929449],[-119.36430487099992,38.08961656464555],[-119.36429134988727,38.089614245853674],[-119.36427773593715,38.08961229565799],[-119.36426404523135,38.08961071636219],[-119.36425029394232,38.089609509831895],[-119.36423649831409,38.089608677492315],[-119.36422267464306,38.08960822032668],[-119.36420883925874,38.089608138875036],[-119.3641950085045,38.08960843323359],[-119.36418119871823,38.08960910305461],[-119.36416742621304,38.08961014754689],[-119.36415370725803,38.08961156547658],[-119.36414005805901,38.08961335516871],[-119.36412649473941,38.0896155145092],[-119.3641130333212,38.089618040947215],[-119.36409968970607,38.0896209314984],[-119.36408647965641,38.08962418274819],[-119.36407341877693,38.089627790856],[-119.36406052249616,38.089631751559644],[-119.3640478060481,38.08963606018046],[-119.36400691901022,38.08965000247538],[-119.36396552562252,38.08966297800709],[-119.363923662472,38.08967497530668],[-119.36388136656085,38.089685983769826],[-119.36383867527388,38.089695993666275],[-119.36379562634541,38.08970499614838],[-119.36378959861622,38.089706093384095],[-119.3637835261576,38.08970702389946],[-119.36377741634978,38.08970778656358],[-119.36377127661832,38.089708380449494],[-119.36376511442512,38.089708804835475],[-119.36375893725952,38.08970905920573],[-119.36375275262891,38.089709143251085],[-119.36374656804985,38.089709056869424],[-119.36374039103877,38.089708800165724],[-119.36373422910297,38.08970837345197],[-119.36372808973137,38.08970777724676],[-119.36372198038548,38.08970701227471],[-119.36371590849032,38.08970607946552],[-119.36370988142541,38.08970497995289],[-119.36370390651578,38.089703715073114],[-119.36369799102305,38.089702286363476],[-119.36369214213664,38.089700695560374],[-119.36368636696504,38.08969894459718],[-119.3636806725271,38.08969703560194],[-119.36367506574358,38.08969497089477],[-119.3636695534287,38.089692752985016],[-119.3636641422819,38.089690384568215],[-119.36365883887959,38.089687868522844],[-119.3636536496673,38.089685207906776],[-119.36364858095172,38.089682405953624],[-119.36364363889314,38.08967946606874],[-119.36363882949792,38.0896763918251],[-119.36356598805524,38.089626496387716],[-119.36349528262339,38.08957471732346],[-119.36342679114217,38.08952111171256],[-119.36336058911036,38.089465738648656],[-119.36329674950235,38.089408659173735],[-119.36323534268777,38.08934993621069],[-119.3631739079389,38.08929100205929],[-119.36311025501335,38.08923355716216],[-119.36304444167988,38.089177653649415],[-119.36297652766747,38.089123342252336],[-119.36294225061049,38.08909580547219],[-119.36290920222649,38.08906734595535],[-119.36287742225647,38.089037997926],[-119.36284694891603,38.089007796676576],[-119.3628178188493,38.08897677852567],[-119.36279006708489,38.088944980774095],[-119.36260520809479,38.088793802861204],[-119.36242619684225,38.08863829145646],[-119.36225319585236,38.08847858778128],[-119.36208636218919,38.08831483686329],[-119.36192584731322,38.088147187404346],[-119.36177179694378,38.08797579164567],[-119.36175162145429,38.087951719510954],[-119.36173252593203,38.08792710325651],[-119.36171453384337,38.08790197313443],[-119.36169766729849,38.08787636002834],[-119.36168194702427,38.08785029541531],[-119.36166739233883,38.087823811327326],[-119.36165402112785,38.087796940311826],[-119.36164184982243,38.08776971539175],[-119.3616308933791,38.087742170024875],[-119.36162116526124,38.08771433806283],[-119.36161267742277,38.08768625370933],[-119.36160544029326,38.08765795147829],[-119.36125340816287,38.086944732182474],[-119.3608759727296,38.086239675697854],[-119.36047343725333,38.08554334717606],[-119.360324625894,38.085305542643674],[-119.3601659216447,38.08507176831766],[-119.35999749908325,38.08484228121823],[-119.3598195434669,38.08461733364976],[-119.35963225052858,38.084397172923445],[-119.3595691440069,38.0843280713948],[-119.35950315587975,38.08426067241756],[-119.35943435962271,38.084195051030356],[-119.35936283183709,38.084131280292574],[-119.3592886521648,38.084069431202956],[-119.35921190319955,38.08400957262065],[-119.35913267039491,38.08395177118856],[-119.3590510419692,38.08389609125902],[-119.35896710880722,38.08384259482242],[-119.35888096435912,38.08379134143796],[-119.35879270453631,38.08374238816751],[-119.35870242760473,38.083695789512056],[-119.3586102340754,38.08365159735101],[-119.3582258716757,38.083480919452214],[-119.35783455294258,38.08332042165835],[-119.3575818024409,38.083216517756206],[-119.35733381987956,38.08310566901678],[-119.357090910584,38.082988011930425],[-119.35705710822504,38.082970352842175],[-119.35702407118305,38.08295181098167],[-119.35699183634476,38.082932407051686],[-119.3569604397011,38.08291216271756],[-119.3569299163071,38.08289110058296],[-119.35690030024261,38.08286924416458],[-119.3568716245744,38.08284661786602],[-119.35684392131908,38.08282324695044],[-119.35681722140751,38.08279915751234],[-119.35679155465013,38.08277437644848],[-119.35676694970377,38.08274893142783],[-119.35674343403964,38.08272285086062],[-119.35672103391256,38.0826961638667],[-119.35671602239154,38.082690197778206],[-119.35671075633773,38.08268437026676],[-119.35670524187918,38.08267868811373],[-119.35669948543296,38.082673157931275],[-119.35669349369776,38.08266778615471],[-119.35668727364607,38.08266257903505],[-119.35668083251605,38.08265754263167],[-119.35667417780309,38.082652682805325],[-119.35666731725118,38.082648005211254],[-119.35666025884375,38.08264351529264],[-119.35665301079457,38.08263921827429],[-119.35664558153799,38.082635119156514],[-119.35663797971925,38.08263122270937],[-119.35663021418445,38.082627533467004],[-119.35662229397013,38.08262405572253],[-119.35661422829281,38.082620793522864],[-119.35660602653836,38.082617750664184],[-119.35659769825092,38.082614930687335],[-119.35658925312188,38.08261233687386],[-119.35658070097863,38.08260997224211],[-119.35657205177306,38.082607839543726],[-119.35656331557001,38.082605941260475],[-119.3565373953961,38.082601057866604],[-119.35651127775009,38.08259688323151],[-119.35648499364301,38.082593422312],[-119.35645857428362,38.08259067921749],[-119.35643205104121,38.08258865720496],[-119.35640545540839,38.082587358675276],[-119.3563788189638,38.08258678517027],[-119.35635217333444,38.082586937370934],[-119.35632555015827,38.08258781509648],[-119.35629898104656,38.082589417304796],[-119.35627249754643,38.08259174209345],[-119.35624613110332,38.08259478670208],[-119.35621991302371,38.082598547515644],[-119.35619387443793,38.082603020068724],[-119.35616804626319,38.08260819905075],[-119.35614245916688,38.082614078312425],[-119.35611714353021,38.08262065087292],[-119.35609212941203,38.08262790892822],[-119.35606744651326,38.082635843860416],[-119.35604312414154,38.08264444624784],[-119.35601919117642,38.08265370587639],[-119.35599567603519,38.08266361175145],[-119.35597260663906,38.082674152111196],[-119.35594898582258,38.08268581682158],[-119.3559258829964,38.0826981125892],[-119.35590332513553,38.082711025057584],[-119.35588133857863,38.08272453915022],[-119.3558599489974,38.08273863908816],[-119.35583918136665,38.08275330840833],[-119.35581905993484,38.0827685299829],[-119.35579960819614,38.0827842860392],[-119.35578084886278,38.08280055818054],[-119.35576280383857,38.082817327407504],[-119.35574549419339,38.08283457414046],[-119.35572991810722,38.082850077597435],[-119.35571366180857,38.08286513846844],[-119.3556967454114,38.08287973811824],[-119.35567918984638,38.08289385848232],[-119.35566101683516,38.08290748208924],[-119.35564224886335,38.082920592082054],[-119.35562290915277,38.08293317223944],[-119.35560302163276,38.08294520699562],[-119.35558261091043,38.08295668145966],[-119.35556170224035,38.08296758143383],[-119.35554032149325,38.08297789343126],[-119.35551849512402,38.08298760469261],[-119.35537063322924,38.0830530381798],[-119.35522536954487,38.08312201185301],[-119.35508283970364,38.08319446131483],[-119.35494317678702,38.08327031892252],[-119.35493820148487,38.083273008886394],[-119.3549331106763,38.0832755602639],[-119.35492791053771,38.08327796995959],[-119.35492260737819,38.083280235049905],[-119.35491720763176,38.083282352786696],[-119.35491171784967,38.08328432060064],[-119.35490614469245,38.08328613610427],[-119.35490049492168,38.08328779709493],[-119.35489477539197,38.0832893015574],[-119.35488899304255,38.08329064766642],[-119.35488315488887,38.08329183378883],[-119.35487726801405,38.08329285848552],[-119.3548713395604,38.08329372051331],[-119.35486537672058,38.08329441882631],[-119.35485938672905,38.08329495257732],[-119.35485337685317,38.08329532111874],[-119.35484735438442,38.083295524003475],[-119.3548413266296,38.083295560985334],[-119.35483530090188,38.08329543201948],[-119.35482928451201,38.08329513726235],[-119.35482328475935,38.083294677071585],[-119.35481730892315,38.08329405200548],[-119.35481136425358,38.08329326282245],[-119.35480545796302,38.083292310479926],[-119.35479959721734,38.08329119613337],[-119.35479378912704,38.08328992113476],[-119.35478804073881,38.08328848703096],[-119.35478235902693,38.08328689556193],[-119.35477675088467,38.083285148658504],[-119.35477122311619,38.083283248440154],[-119.35476578242799,38.08328119721228],[-119.35476043542104,38.08327899746356],[-119.35475518858257,38.08327665186281],[-119.3547500482783,38.08327416325588],[-119.35474502074472,38.08327153466205],[-119.35474011208147,38.083268769270454],[-119.35473532824396,38.083265870436236],[-119.35473067503618,38.0832628416764],[-119.35472615810363,38.08325968666556],[-119.35472178292648,38.08325640923157],[-119.35471755481286,38.08325301335075],[-119.35471347889252,38.0832495031432],[-119.35470956011056,38.08324588286762],[-119.35469058111299,38.08322829460721],[-119.35467090545266,38.0832111912996],[-119.3546505529534,38.08319459017646],[-119.35462954412084,38.08317850796352],[-119.35460790012189,38.08316296086361],[-119.3545856427633,38.08314796454051],[-119.35456279446974,38.08313353410304],[-119.35453937826125,38.08311968408987],[-119.35453724431254,38.08311850724225],[-119.35453505999307,38.0831173896194],[-119.35453282793277,38.0831163325669],[-119.35453055081895,38.083115337357434],[-119.35452823139322,38.083114405189185],[-119.35452587244812,38.08311353718448],[-119.35452347682377,38.08311273438838],[-119.35452104740449,38.083111997767425],[-119.35451858711517,38.08311132820851],[-119.354516098918,38.08311072651776],[-119.3545135858087,38.08311019341956],[-119.354511050813,38.083109729555815],[-119.35450849698299,38.08310933548496],[-119.35450592739342,38.08310901168146],[-119.35450334513801,38.083108758535175],[-119.35450075332577,38.08310857635089],[-119.35449815507717,38.08310846534793],[-119.3544955535204,38.08310842565995],[-119.35449295178773,38.083108457334745],[-119.3544903530116,38.083108560334175],[-119.35448776032085,38.083108734534214],[-119.35448517683702,38.083108979725154],[-119.35448260567055,38.08310929561177],[-119.35448004991711,38.08310968181375],[-119.35447751265376,38.08311013786612],[-119.35447499693531,38.08311066321979],[-119.35447250579064,38.08311125724225],[-119.354470042219,38.08311191921832],[-119.35446760918651,38.08311264835098],[-119.35446520962248,38.08311344376239],[-119.35446284641591,38.083114304494885],[-119.3544605224121,38.08311522951213],[-119.35445824040907,38.08311621770049],[-119.35445600315431,38.08311726787013],[-119.35445381334142,38.08311837875674],[-119.3544516736069,38.083119549022776],[-119.35444958652697,38.08312077725931],[-119.35444755461437,38.0831220619875],[-119.35444558031556,38.08312340166067],[-119.35444366600748,38.08312479466581],[-119.354441813995,38.08312623932575],[-119.35444002650785,38.08312773390121],[-119.35443830569812,38.08312927659274],[-119.35443665363769,38.08313086554294],[-119.35443507231557,38.08313249883875],[-119.35443356363567,38.08313417451376],[-119.35443212941438,38.08313589055045],[-119.35443077137849,38.083137644882754],[-119.35442087675096,38.083150439733714],[-119.35441044060263,38.0831629629189],[-119.35439947486057,38.083175200125766],[-119.35438799205707,38.08318713736859],[-119.3543760053154,38.083198761004525],[-119.35436352833479,38.08321005774905],[-119.35435057537481,38.08322101469129],[-119.35433716123899,38.08323161930872],[-119.35432330125799,38.083241859481454],[-119.35430901127204,38.08325172350612],[-119.35429430761278,38.083261200109284],[-119.3542792070847,38.083270278460205],[-119.35426372694594,38.083278948183384],[-119.35424788488838,38.083287199370254],[-119.35423169901765,38.08329502259065],[-119.35421518783232,38.08330240890347],[-119.35419837020277,38.083309349867015],[-119.35418126534961,38.083315837548476],[-119.35417733468373,38.083317329151875],[-119.35417347084048,38.08331892610946],[-119.35416967833822,38.08332062655379],[-119.354165961612,38.08332242849635],[-119.35416232500806,38.08332432982993],[-119.35415877277913,38.083326328331125],[-119.35415530907918,38.08332842166286],[-119.35415193795869,38.08333060737721],[-119.35414866335981,38.08333288291821],[-119.35414548911194,38.083335245624816],[-119.35414241892701,38.08333769273405],[-119.35413945639533,38.0833402213843],[-119.35413660498132,38.08334282861854],[-119.35413386801942,38.08334551138786],[-119.35413124871025,38.08334826655504],[-119.35412875011684,38.08335109089817],[-119.35412637516112,38.083353981114435],[-119.35412412662032,38.08335693382404],[-119.35412200712393,38.083359945574045],[-119.35412001915054,38.08336301284254],[-119.35411816502487,38.08336613204263],[-119.35411644691516,38.08336929952671],[-119.35411486683063,38.083372511590696],[-119.35411342661901,38.083375764478404],[-119.35411212796454,38.08337905438593],[-119.35411097238587,38.08338237746597],[-119.35410996123436,38.083385729832564],[-119.35410909569248,38.08338910756541],[-119.35410837677242,38.08339250671456],[-119.35410780531491,38.08339592330508],[-119.35410710005839,38.08340164044888],[-119.35410664320365,38.08340737334302],[-119.35410643528795,38.083413115246934],[-119.35410647655577,38.08341885940944],[-119.35410676695868,38.08342459907676],[-119.35410730615527,38.0834303275003],[-119.35410809351163,38.08343603794479],[-119.35410912810205,38.08344172369607],[-119.35411040871018,38.08344737806896],[-119.35411193383035,38.08345299441523],[-119.35411370166943,38.08345856613134],[-119.3541157101489,38.083464086666204],[-119.35411795690727,38.083469549528964],[-119.35412043930296,38.083474948296484],[-119.35412315441728,38.08348027662107],[-119.35412609905788,38.08348552823783],[-119.35412926976261,38.08349069697204],[-119.35413266280351,38.08349577674644],[-119.35413627419112,38.083500761588354],[-119.35413852490713,38.083503868957024],[-119.35414063875987,38.083507035804445],[-119.35414261323653,38.083510258366175],[-119.35414444599006,38.08351353281143],[-119.35414613484171,38.083516855247865],[-119.354147677784,38.08352022172605],[-119.35414907298271,38.083523628244144],[-119.35415031877935,38.083527070752766],[-119.35415141369297,38.083530545159746],[-119.35415235642205,38.08353404733499],[-119.35415314584587,38.083537573115386],[-119.35415378102606,38.08354111830977],[-119.3541542612075,38.083544678703895],[-119.35415458581939,38.08354825006545],[-119.35415475447583,38.08355182814908],[-119.35415476697632,38.08355540870147],[-119.35415462330596,38.083558987466304],[-119.35415432363556,38.08356256018945],[-119.35415386832123,38.08356612262392],[-119.35415325790427,38.083569670535006],[-119.35415249311026,38.083573199705185],[-119.35415157484827,38.0835767059393],[-119.35415050420988,38.083580185069366],[-119.3541492824677,38.08358363295971],[-119.35414791107411,38.08358704551173],[-119.35414639165919,38.083590418668855],[-119.35414472602916,38.08359374842131],[-119.35414291616397,38.083597030810964],[-119.35414096421499,38.08360026193596],[-119.35413887250256,38.08360343795542],[-119.3541366435131,38.08360655509389],[-119.35413427989629,38.08360960964597],[-119.35413178446176,38.083612597980625],[-119.35412916017589,38.0836155165456],[-119.35412641015819,38.08361836187148],[-119.35412353767771,38.083621130575985],[-119.35412054614899,38.083623819367865],[-119.35411743912812,38.083626425050916],[-119.35411422030849,38.08362894452768],[-119.35411089351635,38.08363137480318],[-119.35410746270637,38.08363371298854],[-119.35410393195681,38.083635956304256],[-119.35410030546473,38.08363810208365],[-119.3540965875411,38.083640147776],[-119.35409278260538,38.08364209094953],[-119.3540888951807,38.08364392929432],[-119.35408492988803,38.083645660625116],[-119.35408089144111,38.083647282883845],[-119.35407678464047,38.08364879414205],[-119.35407261436801,38.08365019260328],[-119.354068385581,38.08365147660514],[-119.35406410330631,38.083652644621324],[-119.35405977263439,38.08365369526337],[-119.35405539871326,38.08365462728235],[-119.35405098674222,38.083655439570336],[-119.35404654196599,38.08365613116181],[-119.3540420696681,38.08365670123456],[-119.35403757516495,38.08365714911096],[-119.35403306379928,38.08365747425866],[-119.35402854093384,38.08365767629108],[-119.35402401194503,38.08365775496812],[-119.35401948221666,38.08365771019619],[-119.35401495713327,38.08365754202855],[-119.35401044207401,38.08365725066512],[-119.354005942406,38.08365683645221],[-119.35400146347808,38.08365629988223],[-119.35399954462909,38.0836560700366],[-119.3539976168873,38.08365589266989],[-119.35399568254942,38.08365576799346],[-119.35399374392,38.08365569615578],[-119.35399180330876,38.0836556772425],[-119.35398986302772,38.0836557112761],[-119.35398792538851,38.08365579821609],[-119.35398599269965,38.08365593795885],[-119.35398406726378,38.08365613033791],[-119.35398215137478,38.08365637512405],[-119.35398024731532,38.08365667202565],[-119.35397835735385,38.08365702068896],[-119.35397648374209,38.0836574206986],[-119.35397462871225,38.083657871578005],[-119.3539727944744,38.08365837278998],[-119.35397098321388,38.083658923737396],[-119.35396919708859,38.08365952376384],[-119.35396743822653,38.08366017215448],[-119.35396570872321,38.08366086813675],[-119.35396401063916,38.083661610881514],[-119.3539623459975,38.08366239950387],[-119.35396071678144,38.08366323306423],[-119.35395912493208,38.083664110569494],[-119.3539575723459,38.0836650309742],[-119.35395606087269,38.08366599318181],[-119.35395459231319,38.083666996045906],[-119.35395316841705,38.08366803837167],[-119.3539517908807,38.083669118917335],[-119.35395046134539,38.0836702363955],[-119.35394918139505,38.083671389474816],[-119.35394795255465,38.08367257678147],[-119.35394677628824,38.08367379690093],[-119.35394565399722,38.083675048379554],[-119.3539445870187,38.08367632972632],[-119.35394357662385,38.08367763941466],[-119.35394262401648,38.08367897588417],[-119.35394173033156,38.08368033754257],[-119.35394089663374,38.083681722767636],[-119.3539401239164,38.083683129908955],[-119.3539394131001,38.08368455729011],[-119.3539387650317,38.08368600321047],[-119.35393818048335,38.083687465947406],[-119.35393766015146,38.083688943758176],[-119.35393720465598,38.083690434882115],[-119.35393681453954,38.08369193754276],[-119.35393649026697,38.08369344994974],[-119.35393623222464,38.08369497030125],[-119.35393604071996,38.083696496785926],[-119.35393591598104,38.08369802758511],[-119.35393585815658,38.08369956087497],[-119.35393586731543,38.0837010948288],[-119.35393594344669,38.08370262761901],[-119.35393608645964,38.083704157419454],[-119.35393629618396,38.08370568240749],[-119.35393657236975,38.08370720076628],[-119.35393691468794,38.08370871068682],[-119.35393732273073,38.083710210370235],[-119.35393779601198,38.08371169802974],[-119.35393833396783,38.08371317189299],[-119.35393893595733,38.08371463020399],[-119.3539396012633,38.0837160712253],[-119.3539403290931,38.08371749324009],[-119.3539424174034,38.08372157267113],[-119.35394432693093,38.08372570646819],[-119.35394605541529,38.083729889738045],[-119.35394760081053,38.08373411752892],[-119.35394896128723,38.083738384836316],[-119.35395013523497,38.083742686608986],[-119.3539511212641,38.08374701775486],[-119.35395191820741,38.08375137314712],[-119.35395252512154,38.08375574763023],[-119.35395294128801,38.08376013602606],[-119.3539531662142,38.083764533140005],[-119.35395319963379,38.08376893376716],[-119.3539530415072,38.083773332698435],[-119.35395269202158,38.08377772472676],[-119.35395215159059,38.08378210465323],[-119.3539514208539,38.083786467293265],[-119.35395050067648,38.083790807482764],[-119.35394939214748,38.08379512008417],[-119.35394809657912,38.08379939999258],[-119.35394661550487,38.08380364214183],[-119.3539449506779,38.083807841510435],[-119.35389395735918,38.0839363444575],[-119.35384849740687,38.084066138268035],[-119.35380862296982,38.084197074134046],[-119.35377437979388,38.08432900193734],[-119.35376982400024,38.0843501183605],[-119.35376615302899,38.084371342186216],[-119.35376337088593,38.084392650259005],[-119.35376148060722,38.08441401933142],[-119.35376048425596,38.08443542608948],[-119.35376038291992,38.08445684717804],[-119.35376117671049,38.084478259226266],[-119.35376286476236,38.08449963887324],[-119.35376544523466,38.08452096279333],[-119.35376650969673,38.08452980464772],[-119.35376719315963,38.08453866999719],[-119.35376749483278,38.08454754858859],[-119.35376741436708,38.08455643015335],[-119.35376695185553,38.08456530441956],[-119.35376610783288,38.08457416112368],[-119.35376488327513,38.084582990022504],[-119.35376327959841,38.084591780904965],[-119.35376129865736,38.08460052360397],[-119.35375894274284,38.08460920800819],[-119.3537562145795,38.08461782407361],[-119.35375311732246,38.08462636183536],[-119.35374965455372,38.08463481141906],[-119.35374583027803,38.084643163052334],[-119.35374164891823,38.08465140707609],[-119.3537371153102,38.08465953395569],[-119.35373223469713,38.084667534291924],[-119.35372701272362,38.08467539883202],[-119.35372145542911,38.08468311848023],[-119.35371556924073,38.08469068430831],[-119.3537093609661,38.08469808756601],[-119.35370283778535,38.084705319691054],[-119.35369600724277,38.08471237231908],[-119.35368887723824,38.084719237293356],[-119.35368145601787,38.08472590667413],[-119.35367375216464,38.08473237274791],[-119.35366577458844,38.0847386280363],[-119.35365571367572,38.084746518214565],[-119.35364599976074,38.08475467551619],[-119.35363664418968,38.08476309041325],[-119.35362765789026,38.08477175307692],[-119.35361905135878,38.084780653389],[-119.35361083464808,38.08478978095366],[-119.35360301735562,38.084799125109676],[-119.3535956086124,38.084808674942835],[-119.35358861707216,38.08481841929862],[-119.3535820509014,38.08482834679537],[-119.35357591776976,38.08483844583749],[-119.35357022484109,38.084848704629],[-119.35356497876512,38.08485911118735],[-119.35356018566958,38.084869653357295],[-119.35355585115315,38.08488031882533],[-119.3535519802789,38.08489109513381],[-119.35354857756829,38.08490196969571],[-119.35354564699604,38.084912929809136],[-119.35354319198538,38.084923962672356],[-119.35354121540402,38.0849350553986],[-119.35353971956089,38.08494619503121],[-119.35353870620344,38.084957368558705],[-119.3535381765155,38.084968562929994],[-119.353538131116,38.084979765069704],[-119.35353857005815,38.08499096189328],[-119.35353949282953,38.08500214032246],[-119.35354089835246,38.085013287300434],[-119.35354278498549,38.08502438980709],[-119.35354515052519,38.08503543487428],[-119.35354799220872,38.08504640960098],[-119.35355130671707,38.08505730116823],[-119.35355509017903,38.08506809685428],[-119.35355933817549,38.085078784049315],[-119.35356404574487,38.0850893502703],[-119.3535659957747,38.0850937319274],[-119.35356775139287,38.085098164643156],[-119.35356931046584,38.085102643030694],[-119.35357067109892,38.0851071616477],[-119.35357183163855,38.08511171500291],[-119.35357279067435,38.08511629756289],[-119.35357354704087,38.085120903758714],[-119.35357409981883,38.08512552799269],[-119.35357444833645,38.08513016464528],[-119.35357459217019,38.08513480808176],[-119.3535745311452,38.08513945265923],[-119.35357426533558,38.085144092733366],[-119.35357379506436,38.08514872266533],[-119.35357312090295,38.08515333682862],[-119.3535722436706,38.08515792961585],[-119.35357116443336,38.08516249544569],[-119.35356988450269,38.08516702876949],[-119.35356840543402,38.08517152407815],[-119.35356672902472,38.085175975908705],[-119.35356485731205,38.08518037885114],[-119.35356279257053,38.08518472755475],[-119.35356053730933,38.085189016734766],[-119.35355809426912,38.08519324117875],[-119.35355546641877,38.085197395753],[-119.35355265695175,38.085201475408596],[-119.35354966928223,38.085205475187784],[-119.35354650704093,38.085209390229814],[-119.35354317407078,38.08521321577694],[-119.35353967442215,38.085216947180164],[-119.35353601234793,38.08522057990485],[-119.35353219229843,38.08522410953637],[-119.35352821891598,38.08522753178532],[-119.35352409702925,38.0852308424928],[-119.35351983164729,38.08523403763546],[-119.35351542795364,38.08523711333043],[-119.35351089129986,38.085240065839926],[-119.3535062271991,38.085242891575916],[-119.35350144131945,38.085245587104446],[-119.35346052694814,38.085268500575516],[-119.35342048539212,38.08529235783575],[-119.35338135149019,38.08531713812827],[-119.35334315929141,38.08534281989317],[-119.35330594202564,38.08536938078611],[-119.35330392057162,38.08537081651905],[-119.35330183804697,38.085372196649274],[-119.35329969689872,38.08537351955507],[-119.3532974996427,38.085374783682006],[-119.35329524886075,38.08537598754471],[-119.3532929471976,38.08537712972861],[-119.3532905973577,38.08537820889164],[-119.35328820210216,38.08537922376576],[-119.3532857642455,38.08538017315848],[-119.35328328665219,38.08538105595423],[-119.35328077223343,38.08538187111572],[-119.35327822394376,38.08538261768513],[-119.35327564477741,38.08538329478522],[-119.353273037765,38.08538390162037],[-119.35327040596978,38.08538443747754],[-119.35326775248417,38.08538490172712],[-119.35326508042607,38.08538529382356],[-119.35326239293516,38.085385613306194],[-119.35325969316936,38.08538585979958],[-119.35325698430087,38.085386033014075],[-119.35325426951272,38.08538613274623],[-119.35325155199477,38.08538615887878],[-119.3532488349402,38.08538611138101],[-119.3532461215416,38.08538599030879],[-119.35324341498725,38.08538579580434],[-119.35324071845743,38.085385528096246],[-119.35323803512054,38.08538518749901],[-119.35323536812962,38.085384774412894],[-119.3532327206184,38.08538428932324],[-119.35323009569773,38.085383732800075],[-119.353227496452,38.085383105497286],[-119.35322492593532,38.085382408152014],[-119.35322238716813,38.08538164158361],[-119.35321988313349,38.085380806692825],[-119.3532174167737,38.08537990446066],[-119.35321499098679,38.085378935947254],[-119.3532126086231,38.08537790229064],[-119.35321027248192,38.08537680470537],[-119.35320798530825,38.08537564448114],[-119.35320574978962,38.08537442298123],[-119.35320356855273,38.0853731416409],[-119.35319611807512,38.0853687633678],[-119.35318848394772,38.08536458740348],[-119.35318067496046,38.08536061855611],[-119.35317270010462,38.08535686139544],[-119.35316456856243,38.08535332024741],[-119.35315628969657,38.08534999918928],[-119.35314787303923,38.08534690204496],[-119.35313932828142,38.085344032380426],[-119.3531306652615,38.08534139349983],[-119.35312189395403,38.08533898844156],[-119.35311302445828,38.0853368199748],[-119.35310406698657,38.085334890596265],[-119.35309503185245,38.085333202527494],[-119.35308592945896,38.08533175771209],[-119.35307677028653,38.08533055781361],[-119.35306756488103,38.085329604213605],[-119.35305832384147,38.085328898010054],[-119.35304905780795,38.08532844001607],[-119.35303977744933,38.08532823075899],[-119.35303049345094,38.08532827047976],[-119.35302121650238,38.08532855913263],[-119.35301195728503,38.08532909638524],[-119.35300272645993,38.08532988161901],[-119.35299353465537,38.08533091392985],[-119.3529843924548,38.0853321921291],[-119.35297531038444,38.08533371474513],[-119.3529662989014,38.08533548002476],[-119.35295736838142,38.08533748593544],[-119.35295217830782,38.08533880511446],[-119.35294704903464,38.0853402653141],[-119.35294198669348,38.08534186478879],[-119.35293699733599,38.08534360162654],[-119.35293208692646,38.08534547375109],[-119.35292726133495,38.08534747892444],[-119.35292252633008,38.0853496147496],[-119.35291788757209,38.085351878673364],[-119.3529133506063,38.08535426798937],[-119.35290892085625,38.08535677984144],[-119.35290460361739,38.08535941122683],[-119.35290040405062,38.085362158999914],[-119.35289632717618,38.085365019876],[-119.35289237786765,38.08536799043512],[-119.35288856084617,38.0853710671262],[-119.35288488067461,38.08537424627134],[-119.35288134175241,38.085377524070104],[-119.35287794831004,38.08538089660415],[-119.35287470440413,38.085384359841925],[-119.35287161391251,38.085387909643366],[-119.35286868052962,38.08539154176498],[-119.35286590776215,38.08539525186488],[-119.35286329892472,38.08539903550791],[-119.352860857136,38.08540288817108],[-119.35285858531499,38.085406805248766],[-119.3528564861775,38.08541078205847],[-119.3528545622329,38.08541481384623],[-119.35285281578116,38.08541889579232],[-119.35285124891007,38.085423023017135],[-119.35284986349265,38.08542719058691],[-119.35284866118518,38.08543139351963],[-119.35284764342488,38.08543562679102],[-119.35284681142849,38.085439885340556],[-119.35284616619063,38.08544416407743],[-119.3528457084826,38.08544845788679],[-119.35284543885167,38.085452761635715],[-119.35284535762013,38.08545707017938],[-119.35284546488518,38.08546137836729],[-119.35284576051855,38.08546568104934],[-119.35284624416693,38.085469973081956],[-119.35284691525213,38.08547424933441],[-119.3528493274655,38.08548961708131],[-119.35285106707964,38.08550504148143],[-119.35285213202074,38.08552050415074],[-119.35285252101906,38.085535986659565],[-119.35285223361056,38.08555147055452],[-119.35285127013736,38.08556693738068],[-119.35284963174742,38.085582368703335],[-119.35284732039301,38.08559774613014],[-119.35284433882867,38.08561305133297],[-119.35284069060765,38.08562826606974],[-119.35283638007776,38.08564337220624],[-119.3528314123763,38.08565835173764],[-119.35282579342382,38.08567318680998],[-119.35281952991708,38.085687859741526],[-119.35281672170728,38.08569375570533],[-119.35281365593514,38.08569957096808],[-119.35281033630473,38.085705298503555],[-119.35280676682699,38.08571093139148],[-119.35280295181462,38.08571646282592],[-119.35279889587707,38.08572188612357],[-119.35279460391486,38.08572719473172],[-119.35279008111368,38.08573238223626],[-119.35278533293815,38.08573744236942],[-119.35278036512521,38.08574236901729],[-119.35277518367715,38.08574715622728],[-119.35276979485437,38.085751798215234],[-119.35276420516793,38.0857562893725],[-119.3527584213715,38.08576062427262],[-119.35275245045331,38.085764797677975],[-119.35274629962768,38.08576880454604],[-119.35273997632632,38.085772640035536],[-119.3527288777772,38.085778903388],[-119.35271751448452,38.08578486281657],[-119.35270589976547,38.08579051133707],[-119.35269404723174,38.0857958423298],[-119.35268197077386,38.08580084954709],[-119.35266968454472,38.08580552712072],[-119.35265720294313,38.08580986956888],[-119.3526445405968,38.085813871802415],[-119.35263171234533,38.08581752913092],[-119.35261873322271,38.08582083726823],[-119.3526056184398,38.08582379233734],[-119.3525923833664,38.08582639087509],[-119.35257904351334,38.08582862983611],[-119.35256561451423,38.08583050659649],[-119.35255211210712,38.08583201895673],[-119.35253855211617,38.085833165144436],[-119.35252495043295,38.08583394381634],[-119.35251132299796,38.08583435405986],[-119.35249768578184,38.08583439539426],[-119.35248405476672,38.08583406777101],[-119.35247044592744,38.08583337157415],[-119.35245687521282,38.08583230761956],[-119.35244335852708,38.085830877154116],[-119.35242991171106,38.085829081854286],[-119.3524165505237,38.085826923824044],[-119.35240329062368,38.08582440559249],[-119.35239014755084,38.08582153011088],[-119.3523569728863,38.085814263007485],[-119.35232350811792,38.08580788069484],[-119.3522897910094,38.085802390375136],[-119.35225585960919,38.085797798244016],[-119.35222175220756,38.08579410948348],[-119.35218750729331,38.085791328256164],[-119.35215316351045,38.085789457700564],[-119.35211875961453,38.085788499927524],[-119.35208433442891,38.08578845601787],[-119.35204992680103,38.08578932602114],[-119.35201557555848,38.085791108955576],[-119.3519813194652,38.08579380280917],[-119.35196372389761,38.0857951769206],[-119.3519460783152,38.08579606411805],[-119.35192840428068,38.085796463317386],[-119.35191072339164,38.08579637403079],[-119.35189305725396,38.08579579636737],[-119.35187542745555,38.08579473103305],[-119.35185785553985,38.08579317932961],[-119.35184036297962,38.08579114315323],[-119.3518229711506,38.085788624992134],[-119.35180570130548,38.0857856279235],[-119.35178857454784,38.08578215560966],[-119.35177161180644,38.08577821229379],[-119.35175483380952,38.08577380279459],[-119.35173826105968,38.085768932500415],[-119.35172191380856,38.08576360736272],[-119.35170581203235,38.0857578338888],[-119.35168997540721,38.08575161913374],[-119.35167442328522,38.085744970691934],[-119.3516591746709,38.085737896687704],[-119.35164424819776,38.085730405765396],[-119.35162966210572,38.08572250707884],[-119.35161543421867,38.08571421028015],[-119.35160523240414,38.08570825994085],[-119.35159477517543,38.0857025933488],[-119.3515840751602,38.0856972173467],[-119.35157314527927,38.085692138426275],[-119.35156199873103,38.0856873627206],[-119.35155064897549,38.085682895996534],[-119.35153910971798,38.085678743647875],[-119.35152739489274,38.085674910688766],[-119.351515518646,38.08567140174764],[-119.35150349531887,38.08566822106177],[-119.35149133943004,38.08566537247193],[-119.35147906565832,38.085662859417916],[-119.35146668882487,38.085660684934396],[-119.35145422387522,38.08565885164711],[-119.35144168586143,38.08565736176985],[-119.35142908992366,38.08565621710172],[-119.35141645127204,38.08565541902494],[-119.35140378516834,38.08565496850324],[-119.35139110690746,38.08565486608064],[-119.3513784317989,38.0856551118808],[-119.35136577514844,38.08565570560695],[-119.35135315223955,38.085656646542084],[-119.35134057831493,38.08565793355001],[-119.35132806855815,38.08565956507663],[-119.35131563807533,38.08566153915175],[-119.3513033018768,38.085663853391644],[-119.3512910748591,38.085666505001726],[-119.3512789717869,38.08566949078007],[-119.35126700727523,38.085672807121206],[-119.35125954701087,38.08567510860594],[-119.35125219297605,38.08567761458367],[-119.35124495414057,38.08568032199789],[-119.3512378393336,38.08568322754631],[-119.35123085723319,38.08568632768505],[-119.35122401635542,38.085689618632856],[-119.35121732504417,38.08569309637575],[-119.35121079146086,38.08569675667188],[-119.3512044235746,38.08570059505677],[-119.3511982291523,38.08570460684876],[-119.35119221574942,38.08570878715464],[-119.35118639070055,38.08571313087564],[-119.35118076111054,38.085717632713695],[-119.3511753338459,38.08572228717793],[-119.35117011552632,38.08572708859121],[-119.35116511251665,38.08573203109725],[-119.3511603309192,38.08573710866768],[-119.35115577656609,38.08574231510927],[-119.35115145501234,38.085747644071766],[-119.35114737152908,38.08575308905535],[-119.35114353109701,38.085758643418735],[-119.35113993840035,38.08576430038723],[-119.35113659782125,38.085770053061005],[-119.35113351343428,38.08577589442342],[-119.35113068900152,38.08578181734979],[-119.35112812796808,38.085787814615784],[-119.35112583345771,38.08579387890654],[-119.35112380826911,38.08580000282537],[-119.35112205487249,38.08580617890288],[-119.35112057540657,38.08581239960602],[-119.3511193716759,38.08581865734737],[-119.35111783640944,38.08582664226246],[-119.35111595066478,38.08583458013817],[-119.35111371672406,38.08584246136769],[-119.3511111372908,38.08585027641268],[-119.35110821548669,38.08585801581496],[-119.35110495484773,38.08586567020785],[-119.35110135932001,38.08587323032753],[-119.35109743325499,38.08588068702437],[-119.35109318140411,38.08588803127382],[-119.35108860891307,38.08589525418744],[-119.35108372131575,38.08590234702361],[-119.35107852452725,38.085909301198186],[-119.35107302483698,38.08591610829482],[-119.3510672289009,38.08592276007516],[-119.35106114373355,38.085929248488796],[-119.35105477669944,38.08593556568307],[-119.3510481355043,38.085941704012555],[-119.35104122818564,38.08594765604825],[-119.35103406310307,38.08595341458663],[-119.35102664892811,38.08595897265838],[-119.35101899463386,38.08596432353675],[-119.35101110948393,38.0859694607458],[-119.35100300302138,38.08597437806813],[-119.35099468505715,38.08597906955254],[-119.35098616565806,38.08598352952106],[-119.35097745513484,38.08598775257597],[-119.35096856402946,38.08599173360625],[-119.35095950310249,38.085995467793815],[-119.35095028332002,38.08599895061932],[-119.35094091584037,38.08600217786762],[-119.35093141200068,38.086005145632896],[-119.35092178330305,38.086007850323355],[-119.35091204140078,38.08601028866563],[-119.35090219808411,38.08601245770868],[-119.35089226526607,38.08601435482735],[-119.35088225496796,38.08601597772567],[-119.35087217930491,38.08601732443949],[-119.35086205047114,38.08601839333893],[-119.35085188072522,38.08601918313035],[-119.35084168237523,38.08601969285786],[-119.35083146776385,38.08601992190458],[-119.35082124925353,38.086019869993294],[-119.35081103921131,38.086019537186836],[-119.35080084999409,38.08601892388799],[-119.35079069393352,38.08601803083901],[-119.3507805833211,38.086016859120704],[-119.35077053039335,38.086015410151184],[-119.35076054731695,38.08601368568409],[-119.35075064617413,38.08601168780647],[-119.35074083894784,38.086009418936264],[-119.35073113750741,38.086006881819436],[-119.35072155359413,38.086004079526575],[-119.35071209880705,38.08600101544915],[-119.35068817922159,38.085993258588545],[-119.35066393686989,38.08598615520839],[-119.35063940032119,38.085979713679826],[-119.35061459849145,38.085973941594155],[-119.35058956060925,38.085968845753634],[-119.35056431618123,38.08596443216363],[-119.35053889495752,38.08596070602546],[-119.35051332689659,38.08595767173033],[-119.35048764212989,38.08595533285408],[-119.3504618709264,38.08595369215303],[-119.35043604365703,38.085952751560725],[-119.35041019075865,38.08595251218565],[-119.35038434269838,38.085952974309876],[-119.35035852993768,38.0859541373888],[-119.35033278289636,38.08595600005176],[-119.35030713191681,38.085958560103656],[-119.35028160722818,38.085961814527515],[-119.35025623891087,38.08596575948803],[-119.35023105686096,38.0859703903362],[-119.35020609075505,38.0859757016146],[-119.35018137001526,38.085981687064006],[-119.35015692377462,38.08598833963066],[-119.35013278084259,38.08599565147466],[-119.3501089696713,38.086003613979116],[-119.35008551832193,38.08601221776036],[-119.35006245443157,38.08602145267896],[-119.35003980518081,38.08603130785173],[-119.35001759726158,38.086041771664505],[-119.34999585684577,38.086052831785835],[-119.34997460955428,38.086064475181566],[-119.34995388042702,38.08607668813008],[-119.34993369389322,38.08608945623864],[-119.34991407374271,38.08610276446012],[-119.34989504309789,38.08611659711102],[-119.34987662438647,38.08613093788971],[-119.34985883931505,38.08614576989576],[-119.34984548779191,38.08615689745474],[-119.34983165227902,38.08616764933094],[-119.34981734968771,38.08617801238207],[-119.34980259750023,38.08618797394107],[-119.34978741374833,38.08619752183174],[-119.3497718169914,38.086206644383374],[-119.34975582629366,38.08621533044529],[-119.34973946120076,38.08622356940023],[-119.34972274171614,38.086231351177496],[-119.34970568827639,38.08623866626524],[-119.34968832172633,38.086245505721976],[-119.34967066329354,38.08625186118768],[-119.34965273456228,38.08625772489384],[-119.34963455744743,38.08626308967309],[-119.34961615416731,38.086267948967944],[-119.34959754721676,38.08627229683867],[-119.34957875933961,38.08627612797079],[-119.34956548049492,38.08627883418682],[-119.34955232838612,38.08628190276089],[-119.34953931883722,38.08628533000105],[-119.34952646750054,38.086289111783834],[-119.34951378983817,38.08629324355921],[-119.3495013011032,38.08629772035604],[-119.34948901632148,38.08630253678809],[-119.34947695027337,38.0863076870605],[-119.34946511747619,38.08631316497671],[-119.34945353216655,38.086318963946],[-119.34944220828336,38.086325076991365],[-119.349431159451,38.08633149675787],[-119.34942039896288,38.08633821552164],[-119.34940993976555,38.086345225198954],[-119.34939979444307,38.0863525173562],[-119.34938997520186,38.086360083219766],[-119.34938049385602,38.08636791368683],[-119.34937136181317,38.08637599933611],[-119.34936259006061,38.086384330439444],[-119.3493541891522,38.0863928969732],[-119.3493461691956,38.086401688630545],[-119.34933853984022,38.086410694833845],[-119.34933131026543,38.08641990474723],[-119.3493244891697,38.08642930728976],[-119.34931808475996,38.0864388911488],[-119.34931210474188,38.086448644793464],[-119.3493065563105,38.086458556488616],[-119.34930144614158,38.086468614308984],[-119.3492967803837,38.08647880615345],[-119.3492925646506,38.08648911975966],[-119.34928880401465,38.08649954271872],[-119.34924658467173,38.08663181205749],[-119.34920884037095,38.08676492372163],[-119.34920824541481,38.08676698257528],[-119.34920756017128,38.08676902381872],[-119.34920678547032,38.0867710449794],[-119.34920592225032,38.08677304360911],[-119.3492049715569,38.08677501728693],[-119.34920393454163,38.08677696362216],[-119.34920281246059,38.086778880257185],[-119.34920160667298,38.08678076487048],[-119.34920031863933,38.08678261517915],[-119.34919894991984,38.08678442894198],[-119.34919750217242,38.08678620396194],[-119.3491959771507,38.086787938088996],[-119.34919437670192,38.08678962922259],[-119.34919270276467,38.086791275314255],[-119.34919095736662,38.086792874370126],[-119.34918914262191,38.08679442445324],[-119.34918726072874,38.086795923686026],[-119.34918531396661,38.08679737025249],[-119.34918330469365,38.08679876240034],[-119.34918123534364,38.08680009844337],[-119.34917910842321,38.08680137676317],[-119.34917692650863,38.08680259581136],[-119.34917469224287,38.0868037541113],[-119.34917240833225,38.086804850259966],[-119.34917007754328,38.08680588292956],[-119.34916770269923,38.08680685086926],[-119.3491652866767,38.08680775290658],[-119.3491628324022,38.08680858794893],[-119.34916034284859,38.086809354984766],[-119.34915782103147,38.08681005308503],[-119.34915527000548,38.08681068140412],[-119.34915269286064,38.0868112391809],[-119.34915009271867,38.08681172573981],[-119.34914747272907,38.08681214049143],[-119.34914483606545,38.08681248293342],[-119.34914218592151,38.086812752650964],[-119.34913952550744,38.08681294931732],[-119.34913685804574,38.08681307269432],[-119.34913418676749,38.086813122632506],[-119.3491315149084,38.086813099071364],[-119.34912884570485,38.08681300203944],[-119.34912618239007,38.086812831654285],[-119.34912352819008,38.086812588122285],[-119.34912088631992,38.0868122717384],[-119.34911825997966,38.08681188288591],[-119.34911565235059,38.08681142203579],[-119.34911306659126,38.08681088974628],[-119.34911050583383,38.086810286662136],[-119.3491079731801,38.08680961351386],[-119.3491054716979,38.08680887111687],[-119.3491030044172,38.08680806037039],[-119.34910057432664,38.08680718225646],[-119.34909818436974,38.08680623783877],[-119.34909583744147,38.086805228261284],[-119.34909353638463,38.086804154746844],[-119.34909128398645,38.086803018595866],[-119.3490890829753,38.08680182118452],[-119.34908693601717,38.0868005639632],[-119.34908484571272,38.086799248454845],[-119.34908281459388,38.08679787625284],[-119.34908084512094,38.08679644901936],[-119.34907893967952,38.08679496848319],[-119.3490771005776,38.086793436437716],[-119.34907533004294,38.086791854738664],[-119.34907363022015,38.08679022530197],[-119.34904272119275,38.08676057140179],[-119.34901055514263,38.08673176472107],[-119.34897716922053,38.08670383852932],[-119.34894260198584,38.08667682507903],[-119.34890689336227,38.086650755568634],[-119.34887008459145,38.086625660106264],[-119.3488322181856,38.086601567675096],[-119.34882305430747,38.08659573336116],[-119.34881415146208,38.08658965181576],[-119.3488055203215,38.08658333032905],[-119.34879717123219,38.08657677647885],[-119.34878911420238,38.08656999812147],[-119.34878135889022,38.08656300338237],[-119.34877391459223,38.086555800646416],[-119.34876679023205,38.08654839854775],[-119.34875999434978,38.08654080595953],[-119.34875353509177,38.08653303198323],[-119.34874742020088,38.086525085937815],[-119.3487416570071,38.086516977348445],[-119.34873625241882,38.08650871593517],[-119.3487312129146,38.086500311601206],[-119.34872654453534,38.08649177442107],[-119.34872225287701,38.086483114628614],[-119.34871834308407,38.08647434260454],[-119.34871481984314,38.086465468864176],[-119.34871168737749,38.08645650404473],[-119.348708949442,38.08644745889262],[-119.34870660931851,38.0864383442505],[-119.3487046698121,38.0864291710444],[-119.3487031332475,38.086419950270496],[-119.34870200146655,38.086410692981964],[-119.34870127582577,38.0864014102758],[-119.34870095719486,38.08639211327941],[-119.3487010459556,38.08638281313738],[-119.34870154200144,38.08637352099802],[-119.34870244473761,38.086364248000095],[-119.34870375308184,38.086355005259335],[-119.34870546546557,38.086345803855274],[-119.34870757983607,38.086336654817856],[-119.34871009365855,38.08632756911427],[-119.3487125975361,38.08631851147864],[-119.34871469900848,38.08630939016105],[-119.34871639550364,38.08630021632585],[-119.3487176849453,38.08629100120163],[-119.3487185657553,38.086281756067564],[-119.34871903685578,38.08627249223949],[-119.34871909767021,38.08626322105616],[-119.34871874812433,38.08625395386536],[-119.34871798864613,38.0862447020099],[-119.34871682016535,38.08623547681388],[-119.34871524411234,38.08622628956874],[-119.3487132624163,38.08621715151953],[-119.34871087750294,38.08620807385092],[-119.34870809229149,38.08619906767384],[-119.34870491019113,38.08619014401166],[-119.34870133509682,38.08618131378668],[-119.3486973713845,38.08617258780696],[-119.34869302390587,38.08616397675283],[-119.34868829798218,38.08615549116403],[-119.34868319939804,38.086147141426714],[-119.34867773439409,38.08613893776077],[-119.34867190965947,38.08613089020723],[-119.34866573232362,38.086123008616134],[-119.34865920994757,38.08611530263431],[-119.34865235051463,38.08610778169369],[-119.34864516242061,38.08610045499969],[-119.34863765446372,38.08609333151998],[-119.34862983583349,38.08608641997355],[-119.34862171609987,38.08607972881986],[-119.34861330520121,38.08607326624876],[-119.34860461343229,38.08606704017021],[-119.34857676550892,38.08604710749242],[-119.34854979680186,38.086026433387765],[-119.34852373889277,38.086005042067185],[-119.34849862229669,38.08598295858158],[-119.34847447642615,38.08596020879238],[-119.3484513295569,38.08593681934123],[-119.34842920879467,38.08591281761889],[-119.34840814004343,38.08588823173314],[-119.34838814797514,38.085863090475776],[-119.34836925600084,38.08583742328893],[-119.34836615671527,38.085833212451135],[-119.34836287701653,38.085829087863],[-119.34835942074271,38.085825054351346],[-119.34835579193854,38.085821116636424],[-119.34835199485069,38.08581727932631],[-119.34834803392269,38.08581354691163],[-119.34834391378986,38.08580992376027],[-119.34833963927382,38.085806414112206],[-119.34833521537685,38.0858030220746],[-119.34833064727603,38.085799751616996],[-119.3483259403172,38.08579660656665],[-119.3483211000087,38.08579359060407],[-119.34831613201492,38.085790707258674],[-119.34831104214967,38.08578795990467],[-119.34830583636936,38.0857853517572],[-119.34830052076609,38.08578288586841],[-119.34829510156044,38.08578056512404],[-119.34828958509424,38.08577839223989],[-119.34828397782316,38.085776369758825],[-119.34827828630904,38.08577450004764],[-119.34827251721248,38.08577278529432],[-119.34826667728468,38.085771227505624],[-119.34826077335988,38.0857698285045],[-119.348235748053,38.08576388918623],[-119.34821100163857,38.0857572599511],[-119.34818656455369,38.08574994895286],[-119.34816246685496,38.085741965183736],[-119.34813873818152,38.085733318463454],[-119.3481154077186,38.08572401942714],[-119.34809250416157,38.08571407951225],[-119.34807005568075,38.08570351094448],[-119.34804808988667,38.08569232672275],[-119.34802663379617,38.08568054060318],[-119.34800571379904,38.08566816708223],[-119.34798535562581,38.085655221378765],[-119.34796558431583,38.085641719415506],[-119.34794642418666,38.08562767779926],[-119.34792789880402,38.08561311380056],[-119.34791003095299,38.08559804533252],[-119.34789284260977,38.08558249092863],[-119.34787635491479,38.085566469720135],[-119.34781560083746,38.08550728686647],[-119.34775243647341,38.08544970194802],[-119.34768692906167,38.0853937762594],[-119.34761914833466,38.085339569328994],[-119.34754916644415,38.08528713885557],[-119.34747705788442,38.08523654064689],[-119.34746128009752,38.08522618721433],[-119.34744507094368,38.08521625877906],[-119.34742844873986,38.08520676656048],[-119.3474114322698,38.08519772128505],[-119.34739404076271,38.08518913317422],[-119.34737629387159,38.085181011932775],[-119.34735821165107,38.08517336673794],[-119.34733981453462,38.08516620622901],[-119.34732112331156,38.08515953849755],[-119.34730215910353,38.08515337107829],[-119.34728294334069,38.085147710940554],[-119.34726349773734,38.08514256448043],[-119.34724384426758,38.08513793751359],[-119.34722400514039,38.0851338352686],[-119.34720400277446,38.0851302623811],[-119.347183859773,38.085127222888566],[-119.34718086579947,38.085126854324095],[-119.34717785746695,38.08512656797067],[-119.34717483838786,38.085126364172076],[-119.34717181218761,38.085126243173114],[-119.34716878250015,38.08512620511906],[-119.34716575296356,38.0851262500556],[-119.34716272721582,38.08512637792877],[-119.34715970889032,38.08512658858505],[-119.34715670161154,38.08512688177141],[-119.34715370899065,38.08512725713587],[-119.34715073462132,38.08512771422762],[-119.34714778207521,38.0851282524978],[-119.34714485489782,38.08512887130002],[-119.34714195660416,38.08512956989124],[-119.3471390906746,38.08513034743257],[-119.34713626055061,38.085131202990304],[-119.34713346963068,38.08513213553705],[-119.3471307212662,38.085133143953016],[-119.34712801875746,38.085134227027254],[-119.34712536534974,38.0851353834592],[-119.3471227642293,38.08513661186016],[-119.34712021851965,38.085137910755044],[-119.34711773127772,38.08513927858413],[-119.34711530549026,38.08514071370486],[-119.34711294407025,38.08514221439393],[-119.34711064985328,38.08514377884925],[-119.34710842559437,38.08514540519223],[-119.34710627396444,38.085147091469864],[-119.34710419754725,38.08514883565726],[-119.34710219883621,38.085150635659936],[-119.34710028023142,38.08515248931641],[-119.34709844403679,38.08515439440076],[-119.34709669245728,38.085156348625326],[-119.34709502759624,38.0851583496434],[-119.3470934514529,38.08516039505213],[-119.34709196591993,38.085162482395326],[-119.34709057278121,38.08516460916647],[-119.34708927370966,38.08516677281163],[-119.34708807026522,38.08516897073272],[-119.34708696389309,38.085171200290354],[-119.34708595592177,38.08517345880726],[-119.34708504756172,38.08517574357131],[-119.3470842399037,38.085178051838945],[-119.3470835339176,38.085180380838324],[-119.3470829304512,38.08518272777269],[-119.34708243022912,38.08518508982381],[-119.34708203385212,38.08518746415525],[-119.34708174179613,38.08518984791588],[-119.34708155441189,38.085192238243174],[-119.34708147192445,38.08519463226679],[-119.34708149443284,38.085197027111924],[-119.34708162191005,38.08519941990277],[-119.34708180608354,38.08520288044436],[-119.34708183807017,38.085206343954],[-119.34708171783136,38.08520980625185],[-119.34708144551219,38.08521326315965],[-119.34708102144128,38.08521671050559],[-119.34708044613036,38.08522014412943],[-119.34707972027371,38.085223559887446],[-119.34707884474726,38.08522695365753],[-119.34707782060757,38.08523032134404],[-119.34707664909057,38.085233658882906],[-119.34707533161001,38.08523696224632],[-119.34707386975585,38.085240227447805],[-119.34707226529218,38.08524345054692],[-119.34707052015528,38.085246627654044],[-119.34706863645117,38.08524975493499],[-119.34706661645308,38.085252828615786],[-119.34706446259875,38.08525584498708],[-119.34706217748742,38.085258800408745],[-119.34705976387673,38.08526169131415],[-119.34705722467945,38.08526451421455],[-119.34705456295987,38.08526726570325],[-119.34705178193016,38.08526994245975],[-119.34704888494643,38.085272541253765],[-119.34704587550478,38.08527505894901],[-119.34704275723696,38.08527749250718],[-119.34703953390616,38.085279838991404],[-119.34703620940226,38.08528209556994],[-119.34703278773726,38.08528425951958],[-119.34702927304046,38.08528632822881],[-119.3470256695534,38.08528829920114],[-119.34702198162472,38.085290170058],[-119.3470182137051,38.085291938541594],[-119.34701437034163,38.08529360251775],[-119.3470104561725,38.08529515997837],[-119.3470064759213,38.08529660904388],[-119.34700243439148,38.08529794796556],[-119.34699833646035,38.085299175127574],[-119.34699418707326,38.085300289049],[-119.34698999123776,38.08530128838556],[-119.34698575401737,38.08530217193122],[-119.34698148052561,38.08530293861973],[-119.34697717591972,38.08530358752587],[-119.34697284539456,38.08530411786649],[-119.34696849417617,38.08530452900162],[-119.34696412751565,38.08530482043506],[-119.3469597506827,38.08530499181513],[-119.3469553689593,38.08530504293499],[-119.34695098763335,38.08530497373297],[-119.34694661199225,38.08530478429257],[-119.34694224731652,38.08530447484242],[-119.34693789887349,38.08530404575595],[-119.34693357191087,38.08530349755099],[-119.34692927165047,38.085302830889134],[-119.34692500328184,38.08530204657487],[-119.34692077195608,38.08530114555474],[-119.3469165827796,38.08530012891609],[-119.34691244080784,38.08529899788583],[-119.34690835103942,38.08529775382886],[-119.34690431840986,38.08529639824653],[-119.34690034778573,38.085294932774744],[-119.34689644395884,38.08529335918207],[-119.34689261164029,38.085291679367494],[-119.34688885545495,38.08528989535824],[-119.34688517993578,38.085288009307234],[-119.34688158951845,38.08528602349062],[-119.34687808853583,38.08528394030485],[-119.34684078043051,38.08526014097121],[-119.34680447782584,38.085235389297864],[-119.34676921961778,38.08520971180534],[-119.34673504358321,38.08518313600617],[-119.34670198633926,38.08515569037533],[-119.34667008330429,38.08512740431975],[-119.34663936865982,38.085098308146875],[-119.34660987531394,38.08506843303201],[-119.3465816348661,38.08503781098513],[-119.34655467757307,38.085006474816424],[-119.34652903231685,38.0849744581012],[-119.34651779136729,38.08496043989147],[-119.3465059586182,38.08494672931836],[-119.34649354753432,38.084933341983024],[-119.3464805722384,38.084920293118806],[-119.34646704749521,38.084907597573874],[-119.34645298869471,38.0848952697944],[-119.34643841183453,38.08488332380801],[-119.34642333350173,38.08487177320794],[-119.34640777085401,38.08486063113745],[-119.34639174160017,38.084849910275],[-119.34637526397985,38.0848396228197],[-119.34635835674293,38.08482978047754],[-119.34634103912809,38.08482039444799],[-119.34632333084093,38.08481147541127],[-119.34630525203163,38.08480303351624],[-119.34628682327187,38.08479507836881],[-119.34626806553162,38.08478761902101],[-119.34624900015507,38.08478066396072],[-119.34622964883651,38.08477422110201],[-119.3462100335956,38.0847682977761],[-119.3461901767522,38.08476290072304],[-119.34617010090116,38.08475803608406],[-119.34615559727946,38.084754942952145],[-119.34614096858361,38.08475224272968],[-119.34612623184674,38.08474993856069],[-119.34611140422776,38.08474803312809],[-119.3460965029914,38.084746528650484],[-119.34608154548813,38.08474542687961],[-119.34606654913388,38.084744729098375],[-119.34605153138989,38.084744436119216],[-119.34603650974223,38.084744548283254],[-119.34602150168156,38.08474506545993],[-119.34600652468269,38.084745987047015],[-119.34599159618432,38.08474731197152],[-119.3459767335686,38.08474903869068],[-119.34596195414103,38.08475116519401],[-119.34594727511023,38.084753689005446],[-119.34593271356795,38.0847566071864],[-119.34591828646913,38.08475991633902],[-119.34590401061216,38.084763612610246],[-119.34588990261935,38.0847676916963],[-119.34587597891756,38.08477214884763],[-119.3458622557191,38.08477697887445],[-119.34584874900281,38.08478217615291],[-119.34583547449546,38.08478773463144],[-119.34582244765348,38.08479364783797],[-119.34580968364493,38.08479990888734],[-119.34579719733185,38.084806510489415],[-119.34578500325296,38.08481344495753],[-119.34577311560666,38.084820704217414],[-119.34575810297545,38.08482986659446],[-119.34574269753377,38.08483861215564],[-119.34572691779776,38.08484693038944],[-119.34571078273343,38.08485481129787],[-119.34569431173395,38.084862245408615],[-119.34567752459623,38.084869223786384],[-119.34566044149719,38.08487573804367],[-119.3456430829695,38.08488178035077],[-119.3456254698769,38.08488734344518],[-119.34560762338906,38.0848924206405],[-119.34558956495627,38.084897005834264],[-119.34557131628351,38.084901093515356],[-119.34555289930448,38.084904678770634],[-119.34553433615513,38.08490775729092],[-119.34551564914715,38.084910325375986],[-119.34549686074108,38.0849123799392],[-119.34547799351934,38.08491391851107],[-119.34545907015914,38.08491493924237],[-119.34544011340509,38.08491544090622],[-119.34542114604199,38.08491542289967],[-119.34540219086735,38.08491488524436],[-119.3453832706641,38.08491382858652],[-119.34536440817304,38.08491225419615],[-119.34534562606572,38.08491016396562],[-119.34532694691693,38.08490756040721],[-119.3453083931778,38.08490444665023],[-119.3452899871487,38.08490082643722],[-119.34527175095248,38.084896704119444],[-119.34525370650775,38.08489208465165],[-119.34523587550271,38.08488697358612],[-119.34521827936904,38.08488137706602],[-119.34520093925605,38.08487530181799],[-119.34518387600534,38.084868755144086],[-119.34516711012567,38.084861744912935],[-119.34515066176846,38.08485427955039],[-119.3451345507034,38.084846368029304],[-119.34511879629478,38.08483801985877],[-119.34510341747821,38.08482924507272],[-119.3450884327378,38.08482005421783],[-119.34507386008403,38.08481045834089],[-119.34505971703207,38.08480046897544],[-119.34504602058067,38.08479009812801],[-119.34503278719181,38.08477935826363],[-119.34502003277086,38.0847682622908],[-119.34500777264752,38.08475682354613],[-119.34499602155736,38.084745055778136],[-119.34498479362401,38.084732973130805],[-119.34497410234242,38.08472059012663],[-119.34496396056241,38.084707921648985],[-119.34495438047337,38.084694982924525],[-119.34494537358957,38.08468178950453],[-119.34493695073627,38.0846683572465],[-119.34492912203677,38.08465470229501],[-119.34492189690022,38.08464084106225],[-119.34491528401033,38.08462679020833],[-119.34490929131495,38.084612566621246],[-119.34490392601644,38.08459818739663],[-119.34489919456307,38.08458366981716],[-119.34489510264133,38.0845690313318],[-119.34489165516901,38.08455428953481],[-119.34488885628923,38.084539462144605],[-119.3448867093657,38.08452456698249],[-119.3448852169784,38.08450962195117],[-119.34488438092063,38.08449464501336],[-119.34488420219695,38.08447965417003],[-119.34488562558822,38.08443323975013],[-119.34488896482684,38.08438688677578],[-119.3448942163512,38.0843406446365],[-119.3449013745622,38.08429456260361],[-119.34491043182913,38.08424868977776],[-119.34492137849799,38.08420307503659],[-119.34493420290158,38.08415776698268],[-119.34494889137206,38.084112813891714],[-119.34496542825555,38.084068263661116],[-119.34498379592871,38.08402416375894],[-119.34499849326158,38.083988753449525],[-119.34501162735167,38.08395296141281],[-119.34502318238584,38.083916830747555],[-119.34503314445259,38.083880404960205],[-119.34504150155848,38.08384372791253],[-119.34504824364285,38.083806843768805],[-119.34505336258968,38.08376979694255],[-119.34505685223753,38.08373263204316],[-119.34505870838689,38.08369539382216],[-119.34505892880513,38.083658127119236],[-119.34505751322929,38.083620876808325],[-119.34505446336645,38.08358368774362],[-119.34504978289145,38.083546604705404],[-119.34504347744257,38.08350967234628],[-119.34503555461484,38.08347293513735],[-119.34502602395068,38.08343643731465],[-119.34501489692849,38.083400222825894],[-119.34500218694888,38.08336433527761],[-119.34498790931838,38.083328817882524],[-119.34497208123116,38.08329371340764],[-119.34495989931527,38.08326668261147],[-119.34494892180113,38.08323933138144],[-119.34493916213854,38.08321169323182],[-119.34493063228489,38.08318380202841],[-119.34492334269065,38.08315569194701],[-119.34491730228652,38.08312739743168],[-119.34491251847248,38.083098953152344],[-119.34490899710887,38.083070393962416],[-119.34490674250898,38.0830417548561],[-119.34490575743395,38.08301307092544],[-119.34490604308934,38.08298437731739],[-119.34490759912364,38.08295570919073],[-119.34491042362875,38.08292710167295],[-119.34491451314231,38.0828985898173],[-119.34491986265192,38.08287020855963],[-119.34492646560129,38.08284199267592],[-119.34493431389835,38.082813976739295],[-119.34494339792514,38.082786195077986],[-119.34495370654949,38.08275868173308],[-119.34496522713887,38.082731470416796],[-119.34497794557569,38.08270459447132],[-119.34499184627474,38.08267808682784],[-119.34500691220217,38.082651979966215],[-119.34502312489651,38.08262630587521],[-119.34504046449116,38.082601096013285],[-119.3450589097388,38.08257638127002],[-119.34507843803742,38.08255219192835],[-119.34509902545807,38.08252855762737],[-119.34512064677406,38.08250550732606],[-119.345143275492,38.082483069267795],[-119.34516688388422,38.08246127094578],[-119.34519144302269,38.08244013906931],[-119.34521692281456,38.082419699531066],[-119.34524283325659,38.082398923590375],[-119.34526781972346,38.082377452216434],[-119.34529185235806,38.082355311066785],[-119.34531490244308,38.082332526599295],[-119.34533694243547,38.082309126040535],[-119.34535794599924,38.082285137353246],[-119.34537788803702,38.082260589203],[-119.3453967447199,38.082235510923795],[-119.34541449351607,38.082209932483124],[-119.34543111321763,38.08218388444613],[-119.34544658396598,38.08215739793904],[-119.34546088727554,38.08213050461202],[-119.3454740060558,38.082103236601306],[-119.34548592463176,38.082075626490884],[-119.34549662876266,38.08204770727344],[-119.34550610565898,38.08201951231103],[-119.34551434399775,38.08199107529515],[-119.34552133393603,38.08196243020648],[-119.34552706712269,38.08193361127438],[-119.34553153670834,38.08190465293582],[-119.34553473735359,38.081875589794315],[-119.34553666523534,38.08184645657864],[-119.34553731805141,38.0818172881012],[-119.34553669502321,38.08178811921651],[-119.34553479689679,38.081758984779576],[-119.3455316259417,38.08172991960413],[-119.34552718594858,38.08170095842115],[-119.34552148222438,38.0816721358373],[-119.34551452158617,38.08164348629358],[-119.34550631235284,38.08161504402416],[-119.34549686433526,38.08158684301556],[-119.34548618882457,38.08155891696589],[-119.34547429857857,38.08153129924472],[-119.34546120780655,38.081504022853146],[-119.3454469321523,38.08147712038438],[-119.34543148867539,38.08145062398471],[-119.3454148958308,38.08142456531529],[-119.34539717344678,38.081398975514084],[-119.34537834270138,38.08137388515884],[-119.3453584260968,38.08134932423043],[-119.34533744743281,38.0813253220771],[-119.34531543177809,38.08130190737938],[-119.34529240544046,38.081279108115766],[-119.34526839593524,38.08125695152946],[-119.34524343195253,38.08123546409552],[-119.34521754332286,38.081214671489576],[-119.34519076098154,38.081194598556884],[-119.3451631169317,38.08117526928276],[-119.34513464420608,38.08115670676387],[-119.3451053768275,38.0811389331807],[-119.3450753497683,38.081121969771026],[-119.345052936137,38.08110930761172],[-119.3450310893915,38.081096040883864],[-119.34500983562062,38.08108218543049],[-119.3449892002049,38.08106775779755],[-119.34496920778656,38.08105277521429],[-119.34494988223982,38.081037255572696],[-119.34493124664252,38.08102121740608],[-119.34491332324849,38.08100467986692],[-119.34489613346109,38.080987662704075],[-119.3448796978075,38.08097018623909],[-119.34486403591434,38.08095227134205],[-119.34484916648414,38.08093393940655],[-119.3448351072731,38.08091521232419],[-119.34482187506978,38.08089611245844],[-119.34480948567517,38.08087666261792],[-119.34479795388366,38.080856886029174],[-119.34478729346556,38.080836806308916],[-119.34477751715058,38.08081644743578],[-119.34476863661256,38.080795833721865],[-119.34476066245567,38.080774989783436],[-119.34475360420164,38.08075394051177],[-119.34474747027846,38.08073271104325],[-119.34474226801028,38.08071132672947],[-119.34473800360863,38.08068981310689],[-119.34473468216514,38.08066819586639],[-119.3447323076453,38.080646500822546],[-119.3447308828839,38.080624753882795],[-119.34473040958143,38.08060298101658],[-119.34473088830231,38.08058120822426],[-119.34473231847402,38.08055946150606],[-119.34473469838785,38.08053776683108],[-119.34473802520097,38.08051615010622],[-119.34476194518219,38.08039489854222],[-119.3447908692741,38.080274330201384],[-119.34482476650619,38.08015457408087],[-119.3448636005877,38.08003575830814],[-119.34490732994641,38.07991801000403],[-119.34495590777337,38.0798014551466],[-119.34496255894751,38.07978544110943],[-119.344968501726,38.07976925396988],[-119.34497372892369,38.079752913300325],[-119.3449782342207,38.079736438858774],[-119.34498201217001,38.07971985056496],[-119.34498505820412,38.07970316847626],[-119.34498736864045,38.079686412763486],[-119.3449889406859,38.0796696036864],[-119.34498977244016,38.07965276156931],[-119.34498986289803,38.079635906776446],[-119.3449892119507,38.07961905968737],[-119.3449878203857,38.0796022406723],[-119.34498568988613,38.079585470067485],[-119.34498282302849,38.079568768150665],[-119.3449792232797,38.07955215511647],[-119.34497489499275,38.079535651052055],[-119.34496984340159,38.079519275912844],[-119.34496407461464,38.07950304949833],[-119.3449575956075,38.07948699142813],[-119.34495041421454,38.07947112111841],[-119.34494253911934,38.079455457758186],[-119.34493397984424,38.07944002028628],[-119.34492474673883,38.07942482736838],[-119.3449148509674,38.079409897374475],[-119.34490430449544,38.07939524835664],[-119.34489312007524,38.07938089802717],[-119.34366121363051,38.07782654955939],[-119.3424683891193,38.07625328126003],[-119.34237384696968,38.07613032657692],[-119.34227434747795,38.07600984103568],[-119.34216999377207,38.07589194948689],[-119.34206089400858,38.07577677409256],[-119.3419471612604,38.075664434199666],[-119.34182891339954,38.07555504621639],[-119.34170627297509,38.075448723491604],[-119.34157936708603,38.0753455761975],[-119.34021394995622,38.07426385933099],[-119.339411809975,38.07364596075507],[-119.33858310070654,38.07305038146111],[-119.33850559676351,38.07299467838787],[-119.33843058111307,38.07293688574711],[-119.3383581438511,38.07287707295382],[-119.33828837197592,38.07281531184929],[-119.33822134928386,38.07275167661477],[-119.33815715626851,38.07268624368232],[-119.33809587002415,38.07261909164299],[-119.33803756415321,38.07255030115246],[-119.33798230867771,38.07247995483407],[-119.33793016995544,38.072408137179636],[-119.33788121060007,38.07233493444795],[-119.33783548940605,38.07226043456109],[-119.3377930612781,38.072184726998906],[-119.3377539771652,38.07210790269144],[-119.33771828399951,38.072030053909785],[-119.33768602464,38.07195127415517],[-119.33765723782108,38.071871658046696],[-119.337631958106,38.07179130120769],[-119.33761021584557,38.0717103001508],[-119.3375920371416,38.071628752162134],[-119.33757744381572,38.07154675518437],[-119.3375664533831,38.071464407699104],[-119.33755907903166,38.07138180860858],[-119.3375553296061,38.07129905711692],[-119.33755520959737,38.07121625261095],[-119.33757767822155,38.07067286326743],[-119.33762280393445,38.0701303552541],[-119.33769053714275,38.06958931880696],[-119.33778080366093,38.06905034254824],[-119.33778870321846,38.068931199310306],[-119.33779139450557,38.06881191148202],[-119.33778887433806,38.06869262131388],[-119.3377811457464,38.068573471058414],[-119.337768217972,38.068454602800735],[-119.33775010645596,38.068336158288936],[-119.33772683282066,38.06821827876514],[-119.33769842484378,38.06810110479714],[-119.33766491642508,38.06798477611059],[-119.3376263475459,38.0678694314227],[-119.33758276422135,38.06775520827657],[-119.33753421844528,38.06764224287727],[-119.33748076812827,38.067530669929546],[-119.33742247702847,38.067420622477066],[-119.33735941467529,38.067312231743884],[-119.33729165628672,38.06720562697801],[-119.33721928267933,38.067100935297205],[-119.33714238017185,38.06699828153754],[-119.33706104048227,38.06689778810455],[-119.33697536061824,38.066799574827236],[-119.33688544276154,38.06670375881533],[-119.33679139414606,38.066610454319544],[-119.33669332692989,38.06651977259552],[-119.3365913580616,38.0664318217711],[-119.33648560914072,38.06634670671742],[-119.33637620627276,38.06626452892404],[-119.33626327991875,38.06618538637773],[-119.33614696473977,38.06610937344591],[-119.33602739943635,38.06603658076404],[-119.33590472658301,38.065967095127526],[-119.3357790924584,38.06590099938843],[-119.33565064687086,38.06583837235654],[-119.33551954297977,38.065779288705556],[-119.33538593711296,38.06572381888402],[-119.33524998858046,38.06567202903134],[-119.33511185948448,38.06562398089907],[-119.33497171452623,38.065579731777106],[-119.33482972080961,38.06553933442561],[-119.33468604764192,38.06550283701198],[-119.3345408663322,38.065470283053486],[-119.33439434998697,38.06544171136544],[-119.33424667330391,38.065417156014895],[-119.33409801236364,38.06539664628006],[-119.33394854441984,38.06538020661535],[-119.33379844768803,38.06536785662234],[-119.3336479011331,38.06535961102632],[-119.33349708425612,38.06535547965874],[-119.33334617688027,38.06535546744559],[-119.3331953589366,38.06535957440144],[-119.33304481024965,38.06536779562942],[-119.33289471032295,38.0653801213271],[-119.33274523812523,38.06539653679818],[-119.33259657187703,38.06541702246992],[-119.33244888883844,38.065441553916585],[-119.3323023650976,38.06547010188849],[-119.33215717536103,38.06550263234685],[-119.33201349274528,38.0655391065044],[-119.33187148857063,38.065579480871556],[-119.33174647264033,38.06561090465698],[-119.33162016716649,38.06563892060461],[-119.33149272072868,38.06566349575764],[-119.33136428324914,38.065684601206826],[-119.33123500581642,38.06570221212452],[-119.33110504050752,38.065716307793906],[-119.33097454020883,38.06572687163334],[-119.33084365843642,38.06573389121589],[-119.33071254915525,38.065737358284],[-119.33058136659797,38.06573726875911],[-119.33045026508351,38.065733622746556],[-119.33031939883543,38.065726424535335],[-119.33018892180033,38.06571568259322],[-119.33005898746694,38.06570140955662],[-119.32992974868525,38.06568362221579],[-119.32980135748672,38.065662341495134],[-119.32967396490542,38.06563759242847],[-119.32954772080028,38.06560940412961],[-119.32942277367862,38.065577809758125],[-119.32929927052166,38.06554284648035],[-119.32917735661125,38.06550455542549],[-119.32905717535918,38.06546298163748],[-119.32893886813831,38.065418174021744],[-119.32882257411617,38.06537018528774],[-119.32870843009138,38.06531907188697],[-119.32859657033251,38.065264893946505],[-119.32848712642021,38.06520771519824],[-119.32838022709244,38.065147602903906],[-119.32827599809285,38.06508462777589],[-119.32817456202304,38.065018863894096],[-119.32807603819816,38.06495038861873],[-119.32798054250671,38.064879282499305],[-119.32788818727404,38.0648056291798],[-119.32779908113044,38.06472951530032],[-119.32771332888312,38.064651030395076],[-119.3276310313932,38.06457026678713],[-119.32707347583803,38.06362255418958],[-119.32655587498988,38.06266078155958],[-119.32607879363243,38.061686001246414],[-119.32564275215044,38.060699279791095],[-119.3252482259665,38.05970169675777],[-119.32489564502748,38.05869434355115],[-119.3245853933409,38.057678322221065],[-119.32431780856211,38.056654744255674],[-119.3240931816321,38.055624729364446],[-119.32396538566758,38.05503795737834],[-119.32381344306424,38.054454795254145],[-119.32363751622225,38.053875864109756],[-119.32343779307442,38.05330178054243],[-119.3232144868836,38.052733155972426],[-119.32296783601343,38.05217059599228],[-119.32269810367235,38.051614699722144],[-119.32240557763114,38.05106605917225],[-119.32209056991461,38.050525258612936],[-119.32195012006277,38.05030382661722],[-119.32180026409875,38.05008628449849],[-119.32164117415695,38.049872882021226],[-119.3214730329687,38.04966386419499],[-119.32129603365222,38.04945947099337],[-119.3211103794908,38.049259937078354],[-119.32091628369903,38.04906549153127],[-119.32071396917789,38.048876357589855],[-119.32050366825875,38.048692752392],[-119.32028562243634,38.048514886726736],[-119.32006008209163,38.04834296479233],[-119.31982730620405,38.04817718396194],[-119.31958756205432,38.048017734557284],[-119.31934112491756,38.047864799630176],[-119.31908827774717,38.04771855475252],[-119.31882931085018,38.04757916781504],[-119.31856452155388,38.04744679883445],[-119.31829421386483,38.04732159977008],[-119.3180186981197,38.04720371434943],[-119.31773829062934,38.04709327790338],[-119.31745331331584,38.046990417210864],[-119.31716409334304,38.04689525035356],[-119.31687096274128,38.04680788658029],[-119.31623920485683,38.04662002957754],[-119.31561546909325,38.046416099518694],[-119.31500040921597,38.046196310172036],[-119.31439466987928,38.04596089192828],[-119.31379888594945,38.045710091558696],[-119.3132136818387,38.045444171955886],[-119.31309482789497,38.04538586978165],[-119.31297862392577,38.04532431751129],[-119.31286521197923,38.04525959038999],[-119.31275473068935,38.04519176754385],[-119.31264731510637,38.04512093188313],[-119.31254309653173,38.04504717000092],[-119.3124422023576,38.04497057206713],[-119.31234475591103,38.044891231718424],[-119.3122508763033,38.04480924594352],[-119.3121606782843,38.04472471496473],[-119.3120742721023,38.04463774211533],[-119.31199176336915,38.0445484337133],[-119.31191325293123,38.044456898931266],[-119.31183883674633,38.044363249663014],[-119.31176860576616,38.04426760038673],[-119.31170264582552,38.04417006802494],[-119.31164103753711,38.04407077180168],[-119.31158385619342,38.043969833096604],[-119.31153117167433,38.0438673752967],[-119.31148304836223,38.04376352364532],[-119.31143954506302,38.04365840508921],[-119.31140071493449,38.04355214812314],[-119.31136660542147,38.04344488263294],[-119.31133725819777,38.0433367397367],[-119.31131270911546,38.04322785162445],[-119.31129298816111,38.043118351396515],[-119.3112781194193,38.043008372900985],[-119.31126812104307,38.04289805056983],[-119.3112630052321,38.04278751925483],[-119.31126277821778,38.04267691406254],[-119.31126744025565,38.04256637018931],[-119.31127698562531,38.04245602275588],[-119.31129140263747,38.042346006642305],[-119.31131067364828,38.04223645632304],[-119.31133477508106,38.042127505702695],[-119.3113636774553,38.04201928795217],[-119.31139734542265,38.04191193534608],[-119.31143573781027,38.04180557910103],[-119.31147880767138,38.04170034921509],[-119.31152650234247,38.041596374309236],[-119.31157876350802,38.04149378146985],[-119.31163552727178,38.04139269609358],[-119.31169672423486,38.04129324173399],[-119.31176227958073,38.041195539950664],[-119.31223854847737,38.04048520605795],[-119.31268257919051,38.03976192958366],[-119.31309381116498,38.039026625154975],[-119.31347172536917,38.038280222582216],[-119.3138158449472,38.037523665681775],[-119.31385680508748,38.037422665875944],[-119.31389335813225,38.03732061371775],[-119.31392546102879,38.03721762945655],[-119.31395307596866,38.037113834439594],[-119.31397617043201,38.03700935096882],[-119.31399471722584,38.03690430215697],[-119.314008694516,38.036798811782404],[-119.31401808585275,38.03669300414319],[-119.31402288019012,38.03658700391077],[-119.31402307189879,38.03648093598295],[-119.31401866077267,38.03637492533677],[-119.31400965202901,38.03626909688127],[-119.31399605630213,38.03616357531032],[-119.31397788963095,38.036058484955596],[-119.31395517343982,38.03595394964025],[-119.31392793451322,38.03585009253292],[-119.31389620496425,38.035747036002604],[-119.31386002219654,38.035644901474576],[-119.31381942886021,38.03554380928727],[-119.31377447280143,38.03544387855049],[-119.31372520700613,38.03534522700512],[-119.31367168953726,38.035247970884456],[-119.31361398346655,38.03515222477718],[-119.31355215679999,38.03505810149241],[-119.31348628239766,38.03496571192686],[-119.31341643788788,38.034875164934185],[-119.31334270557562,38.034786567196605],[-119.31326517234555,38.034700023099504],[-119.31318392955954,38.03461563460823],[-119.3130990729491,38.03453350114814],[-119.31301070250247,38.03445371948736],[-119.31291892234681,38.034376383622906],[-119.31282384062547,38.03430158466997],[-119.31272556937066,38.034229410754435],[-119.31262422437129,38.03415994690933],[-119.3125199250367,38.03409327497442],[-119.31241279425588,38.03402947350001],[-119.31230295825273,38.033968617654295],[-119.31219054643735,38.03391077913492],[-119.31207569125361,38.03385602608443],[-119.31195852802303,38.033804423010125],[-119.31183919478559,38.033756030708034],[-119.31171783213689,38.03371090619128],[-119.31147496868152,38.03362056353434],[-119.31123621269592,38.03352361370065],[-119.3110018514058,38.03342017332805],[-119.31077216674629,38.03331036686254],[-119.31054743502246,38.0331943264083],[-119.31032792657703,38.03307219156891],[-119.31011390546489,38.032944109279086],[-119.30990562913536,38.0328102336279],[-119.30970334812255,38.032670725673235],[-119.30950730574381,38.032525753248024],[-119.30931773780699,38.03237549075809],[-119.30913487232694,38.03222011897235],[-119.30895892925109,38.032059824805124],[-119.308790120195,38.03189480109124],[-119.30862864818789,38.03172524635394],[-119.30847470742842,38.03155136456586],[-119.30832848305138,38.03137336490366],[-119.30819015090498,38.03119146149621],[-119.30805987733955,38.031005873166926],[-119.30793781900763,38.0308168231704],[-119.30782412267581,38.0306245389238],[-119.30771892504829,38.03042925173316],[-119.30762235260285,38.03023119651505],[-119.30753452143887,38.03003061151394],[-119.307455537138,38.02982773801547],[-119.30738549463754,38.02962282005625],[-119.30724742498863,38.0291557387449],[-119.30712953175605,38.02868521129908],[-119.30703195113468,38.02821178282958],[-119.30695479578004,38.02773600179776],[-119.30689815467964,38.02725841938],[-119.30686209305159,38.026779588829044],[-119.3068466522709,38.02630006483298],[-119.30685184982347,38.02582040287265],[-119.30687767928762,38.02534115857806],[-119.30692411034335,38.024862887084915],[-119.30699108880945,38.02438614239141],[-119.30707853670795,38.023911476716826],[-119.3071836041195,38.023451088776],[-119.30730824606634,38.02299376692345],[-119.30745232028268,38.02254003181989],[-119.30761566238783,38.0220904000331],[-119.30779808607495,38.02164538345016],[-119.30799938332453,38.02120548869496],[-119.30821932464269,38.02077121655165],[-119.3084576593238,38.0203430613949],[-119.30871411573729,38.019921510627526],[-119.30898840163788,38.01950704412586],[-119.30907716132504,38.01937293562675],[-119.30916016671294,38.01923654045789],[-119.30923732383336,38.019098013081106],[-119.3093085453425,38.01895751037201],[-119.30937375061978,38.01881519144231],[-119.309432865859,38.018671217459534],[-119.30948582415172,38.01852575146461],[-119.30953256556302,38.01837895818703],[-119.309573037199,38.01823100385843],[-119.30960719326681,38.018082056024255],[-119.30963499512603,38.01793228335399],[-119.30965641133251,38.017781855450224],[-119.30967141767363,38.0176309426564],[-119.30967999719563,38.017479715864134],[-119.30968214022269,38.01732834631955],[-119.30967784436753,38.01717700542935],[-119.30966711453411,38.017025864566826],[-119.30963872869849,38.01677735007703],[-119.30959956319879,38.0165297542361],[-119.3095496644217,38.016283369609404],[-119.3094890914351,38.01603848732829],[-119.30941791591755,38.01579539674597],[-119.3093362220732,38.01555438509592],[-119.30924410653184,38.015315737152385],[-119.3091416782342,38.01507973489397],[-119.30902905830291,38.01484665717068],[-119.30890637989881,38.014616779374386],[-119.30879539256581,38.01440889377956],[-119.308693423193,38.01419813698655],[-119.30860059012622,38.0139847537597],[-119.30851700109783,38.01376899191151],[-119.308442753102,38.01355110201475],[-119.30837793228247,38.01333133711143],[-119.30832261383267,38.01310995241879],[-119.30827686190906,38.0128872050329],[-119.3082407295568,38.01266335363014],[-119.30821425864858,38.01243865816659],[-119.30819747983645,38.0122133795762],[-119.30819041251662,38.01198777946787],[-119.30819306480726,38.01176211982136],[-119.30820543353958,38.01153666268332],[-119.30822750426192,38.01131166986286],[-119.30825925125691,38.011087402627574],[-119.3083006375717,38.01086412140018],[-119.3083516150614,38.01064208545608],[-119.30841212444517,38.010421552622375],[-119.30848209537574,38.010202778978545],[-119.3085614465212,38.00998601855908],[-119.30865008565996,38.009771523058575],[-119.3087479097882,38.009559541539545],[-119.30930516617178,38.008360939688366],[-119.30981785280434,38.007149950524806],[-119.31028553283758,38.005927611083216],[-119.31070780802611,38.00469496806733],[-119.31108431906124,38.00345307695232],[-119.31116037439308,38.00320410703635],[-119.31124667961454,38.00295723858189],[-119.31134314228102,38.00271273572705],[-119.311449659083,38.00247086007619],[-119.31156611595681,38.00223187042028],[-119.31169238820716,38.00199602246007],[-119.31182834064086,38.00176356853239],[-119.31197382771182,38.001534757340586],[-119.31212869367712,38.00130983368834],[-119.31229277276388,38.00108903821788],[-119.31246588934701,38.00087260715269],[-119.31264785813721,38.00066077204487],[-119.31302485052723,38.000220800673375],[-119.31338213016407,37.9997706481631],[-119.31371925871363,37.99931086724528],[-119.31403582260826,37.99884202246334],[-119.3141242700045,37.99869945925427],[-119.31420661062833,37.998554623666976],[-119.3142827514267,37.9984076794433],[-119.31435260635719,37.99825879270797],[-119.31441609648527,37.9981081317809],[-119.31447315007328,37.997955866986636],[-119.3145237026615,37.99780217046196],[-119.31456769714062,37.99764721596113],[-119.31460508381639,37.99749117865954],[-119.31463582046547,37.997334234955495],[-119.314659872383,37.99717656227097],[-119.31467721242164,37.99701833885089],[-119.31468782102212,37.99685974356163],[-119.31469168623511,37.99670095568886],[-119.31468880373454,37.996542154734776],[-119.31467917682228,37.99638352021527],[-119.31466281642432,37.99622523145695],[-119.31463974107797,37.99606746739442],[-119.31462005755257,37.995932128884576],[-119.31460635566216,37.99579632913349],[-119.3145986520733,37.995660233650156],[-119.31459695614174,37.99552400830312],[-119.31460126990132,37.99538781911825],[-119.31461158806145,37.99525183207652],[-119.31462789801395,37.995116212911604],[-119.31465017984836,37.994981126907895],[-119.31467840637647,37.9948467386992],[-119.31471254316568,37.99471321206795],[-119.31475254858093,37.99458070974572],[-119.3147983738358,37.99444939321487],[-119.31484996305198,37.99431942251182],[-119.31490725332749,37.99419095603193],[-119.31497017481364,37.99406415033661],[-119.31503865080006,37.993939159962466],[-119.31511259780851,37.99381613723305],[-119.31519192569462,37.993695232073215],[-119.31527653775784,37.993576591826546],[-119.31536633085948,37.99346036107564],[-119.31546119554841,37.99334668146615],[-119.31556101619461,37.99323569153409],[-119.31566567113006,37.99312752653711],[-119.3157750327971,37.993022318289654],[-119.31588896790407,37.99292019500241],[-119.31623605818177,37.9925056266902],[-119.31656532952258,37.99208205345501],[-119.31687640954272,37.99164995472424],[-119.31716894646736,37.99120981956669],[-119.31744260952748,37.99076214613855],[-119.31769708933324,37.990307441119064],[-119.3179320982228,37.989846219136574],[-119.3181473705864,37.98937900218575],[-119.3181637575429,37.98934440205506],[-119.31817860895801,37.98930937044522],[-119.31819190674474,37.98927395002526],[-119.3182036347084,37.98923818393772],[-119.31821377856647,37.98920211574614],[-119.31822232596596,37.98916578938192],[-119.31822926649845,37.989129249090894],[-119.31823459171268,37.98909253937936],[-119.3182382951249,37.9890557049599],[-119.3182403722268,37.98901879069699],[-119.31824082049089,37.98898184155221],[-119.31823963937362,37.988944902529624],[-119.318236830316,37.988908018620876],[-119.31823239674192,37.988871234750384],[-119.31822634405383,37.988834595720675],[-119.31821867962628,37.98879814615787],[-119.31820941279682,37.98876193045713],[-119.31819855485466,37.9887259927288],[-119.318186119027,37.98869037674455],[-119.3181721204627,37.98865512588412],[-119.31815657621404,37.98862028308249],[-119.31807298724375,37.98850226797105],[-119.31799427426621,37.98838217113305],[-119.31792051993214,37.98826011870961],[-119.31785180168293,37.9881362388954],[-119.31778819166927,37.988010661803656],[-119.31772975667558,37.9878835193298],[-119.31767655804985,37.98775494501257],[-119.31762865163947,37.98762507389399],[-119.31758608773245,37.98749404237738],[-119.3175683111381,37.98743117039576],[-119.31755323482334,37.98736785804425],[-119.31754087607442,37.98730417794505],[-119.31753124906032,37.98724020314201],[-119.31752436481658,37.98717600701678],[-119.3175202312325,37.98711166320472],[-119.31751885304229,37.987047245510446],[-119.31752023181959,37.986982827823034],[-119.3175243659757,37.98691848403143],[-119.31753125076149,37.98685428793962],[-119.3175408782728,37.98679031318198],[-119.3175532374596,37.98672663313882],[-119.31756831413867,37.98666332085224],[-119.3175860910099,37.98660044894232],[-119.31760654767618,37.986538089523826],[-119.31762966066682,37.98647631412353],[-119.31765540346453,37.98641519359815],[-119.31768374653574,37.986354798053114],[-119.31772736478246,37.98623991585844],[-119.31776607430685,37.986123937145116],[-119.31779983129515,37.986006993254215],[-119.31782859754269,37.98588921661918],[-119.31785234049704,37.98577074061588],[-119.31787103329482,37.985651699411555],[-119.317884654792,37.98553222781288],[-119.31789318958775,37.985412461113285],[-119.3178966280417,37.985292534939724],[-119.31789496628485,37.985172585099065],[-119.31788820622376,37.98505274742438],[-119.31788355312976,37.98498992129323],[-119.31787615565155,37.98492726025274],[-119.317866022659,37.984864839376996],[-119.31785316629929,37.9848027334521],[-119.31783760198236,37.98474101688668],[-119.31781934836235,37.98467976362264],[-119.31779842731534,37.984619047046685],[-119.31777486391299,37.98455893990231],[-119.31774868639249,37.9844995142027],[-119.31771992612283,37.98444084114447],[-119.31768861756703,37.98438299102226],[-119.31765479824085,37.98432603314471],[-119.31761850866795,37.98427003575131],[-119.31757979233113,37.984215065930606],[-119.31753869562036,37.98416118953997],[-119.31749526777713,37.98410847112662],[-119.31744956083543,37.98405697385029],[-119.31740162955938,37.98400675940761],[-119.31737799653362,37.98398800864221],[-119.31735517446002,37.98396863879433],[-119.31733318921069,37.98394867182302],[-119.31731206570895,37.983928130364234],[-119.31729182790114,37.98390703770515],[-119.31727249872945,37.9838854177579],[-119.31725410010597,37.983863295032265],[-119.3172366528877,37.98384069460805],[-119.3172201768531,37.98381764210655],[-119.31720469067956,37.98379416366156],[-119.31719021192221,37.98377028588974],[-119.31717675699412,37.98374603586042],[-119.31716434114759,37.98372144106487],[-119.3171529784569,37.98369652938526],[-119.31713412343885,37.98365507712812],[-119.3171136071321,37.983614122091254],[-119.31709145042744,37.98357370597176],[-119.31706767588557,37.98353386991788],[-119.31704230771427,37.98349465448727],[-119.31701537174372,37.98345609960568],[-119.31698689540013,37.98341824452622],[-119.31698317357471,37.98341364842906],[-119.31697925658443,37.98340915508161],[-119.31697514895309,37.983404769673356],[-119.31697085542477,37.9834004972691],[-119.3169663809582,37.98339634280316],[-119.31696173072106,37.983392311073615],[-119.31695691008404,37.9833884067368],[-119.31695192461466,37.98338463430194],[-119.31694678007075,37.98338099812589],[-119.31694148239391,37.98337750240817],[-119.31693603770253,37.983374151186055],[-119.31693045228488,37.98337094832992],[-119.31692473259164,37.98336789753888],[-119.31691888522867,37.98336500233631],[-119.31691291694925,37.98336226606596],[-119.31690683464623,37.98335969188801],[-119.31690064534428,37.98335728277544],[-119.31689435619151,37.983355041510556],[-119.3168879744514,37.983352970681885],[-119.31688150749443,37.98335107268105],[-119.31687496278938,37.98334934970012],[-119.31686834789491,37.98334780372897],[-119.31686167045069,37.98334643655306],[-119.3168549381686,37.98334524975143],[-119.31684815882399,37.98334424469469],[-119.3168418824327,37.98334331444621],[-119.31683564947039,37.98334221640443],[-119.31682946709562,37.98334095183044],[-119.31682334240865,37.98333952217658],[-119.31681728244365,37.98333792908478],[-119.31681129416036,37.98333617438469],[-119.31680538443624,37.98333426009155],[-119.31679956005846,37.983332188403885],[-119.31679382771625,37.98332996170101],[-119.3167881939931,37.98332758254025],[-119.31678266535923,37.98332505365403],[-119.31677724816419,37.98332237794672],[-119.31677194862951,37.98331955849137],[-119.3167667728416,37.98331659852603],[-119.31676172674476,37.98331350145018],[-119.31675681613433,37.983310270820766],[-119.31675204665005,37.98330691034812],[-119.31674742376954,37.98330342389166],[-119.31674295280213,37.98329981545555],[-119.31673863888255,37.98329608918399],[-119.31673448696529,37.983292249356545],[-119.31673050181871,37.98328830038318],[-119.31672668801964,37.98328424679921],[-119.31668880580925,37.983243878677335],[-119.31664934021747,37.98320447231571],[-119.3166083301972,37.98316606660623],[-119.31656581622535,37.98312869945325],[-119.31652184026305,37.98309240773599],[-119.31647644571402,37.98305722727227],[-119.31642967738195,37.983023192783065],[-119.3163815814261,37.98299033785834],[-119.3163733434424,37.982985073662476],[-119.31636488267623,37.98298003568716],[-119.31635620903926,37.9829752298343],[-119.31634733269247,37.98297066173383],[-119.31633826403429,37.98296633673718],[-119.31632901368849,37.982962259910934],[-119.31631959249162,37.98295843603101],[-119.3163100114804,37.982954869577014],[-119.31630028187878,37.98295156472691],[-119.3162904150847,37.98294852535226],[-119.31628042265689,37.98294575501361],[-119.31627031630127,37.98294325695635],[-119.31626010785712,37.98294103410688],[-119.31624980928338,37.98293908906922],[-119.31623943264456,37.98293742412188],[-119.31622899009665,37.982936041215396],[-119.31621849387278,37.98293494196973],[-119.31620795626903,37.982934127672614],[-119.31619738962986,37.98293359927801],[-119.31618680633386,37.98293335740493],[-119.31617621877903,37.982933402336684],[-119.31616563936845,37.98293373402067],[-119.31615508049559,37.9829343520683],[-119.31614455452987,37.98293525575555],[-119.31613407380216,37.98293644402381],[-119.3161236505904,37.982937915480996],[-119.31611329710509,37.98293966840339],[-119.31610302547504,37.98294170073746],[-119.31609284773324,37.98294401010239],[-119.31608277580261,37.982946593792825],[-119.31607282148218,37.982949448782044],[-119.31606299643319,37.982952571725484],[-119.3160573527538,37.98295436655264],[-119.31605163553998,37.98295600912617],[-119.31604585134613,37.98295749756298],[-119.3160400068035,37.982958830156676],[-119.31603410861253,37.982960005379525],[-119.3160281635351,37.98296102188417],[-119.31602217838689,37.982961878505286],[-119.3160161600295,37.98296257426077],[-119.3160101153627,37.98296310835301],[-119.31600405131623,37.9829634801697],[-119.3159979748422,37.98296368928457],[-119.31599189290695,37.98296373545786],[-119.315985812483,37.98296361863668],[-119.31597974054125,37.982963338954924],[-119.31597368404277,37.98296289673324],[-119.31596764993103,37.98296229247862],[-119.31596164512374,37.98296152688378],[-119.31595567650504,37.98296060082645],[-119.31594975091761,37.98295951536828],[-119.31594387515479,37.98295827175371],[-119.31593805595276,37.98295687140844],[-119.3159322999829,37.9829553159379],[-119.31592661384408,37.98295360712533],[-119.31592100405511,37.982951746929835],[-119.31591547704728,37.982949737483935],[-119.31591003915695,37.982947581091366],[-119.31587704340723,37.982933403200136],[-119.31584463667096,37.982918398349554],[-119.31581285202077,37.982902581853025],[-119.31578172189433,37.98288596985211],[-119.31575127806128,37.98286857930037],[-119.31572155159078,37.982850427945806],[-119.31569257281983,37.98283153431288],[-119.3152277964889,37.982517275651624],[-119.31520244605515,37.98249945141675],[-119.31517789535955,37.98248093914396],[-119.31515417419337,37.982461761297614],[-119.31513131134123,37.98244194114973],[-119.31510933454614,37.98242150275173],[-119.31508827047583,37.98240047090522],[-119.31506814469033,37.982378871132006],[-119.3150489816111,37.98235672964291],[-119.31503080449126,37.982334073306234],[-119.31501363538743,37.98231092961491],[-119.31499749513297,37.98228732665331],[-119.31498240331274,37.982263293063035],[-119.31496837823923,37.982238858008216],[-119.31495543693042,37.9822140511402],[-119.31494359508918,37.9821889025614],[-119.31493286708408,37.98216344278889],[-119.3149232659321,37.982137702717345],[-119.31491480328275,37.98211171358156],[-119.31490748940398,37.982085506918466],[-119.31490133316971,37.98205911452899],[-119.3148963420491,37.98203256843937],[-119.31489252209741,37.98200590086229],[-119.31488987794874,37.981979144157904],[-119.3148884128104,37.98195233079441],[-119.31486806030507,37.98156563010436],[-119.31483225333943,37.98117963307177],[-119.31478102804031,37.98079472654109],[-119.31477512879107,37.980749863111974],[-119.31477116825658,37.98070486641153],[-119.31476915105178,37.98065978891184],[-119.3147690795254,37.98061468317911],[-119.31477095375737,37.980569601812384],[-119.3147747715585,37.98052459738214],[-119.31478052847324,37.98047972236912],[-119.31478821778481,37.980435029103035],[-119.31479783052308,37.98039056970151],[-119.31480935547499,37.98034639600944],[-119.31482277919777,37.98030255953841],[-119.31483808603447,37.980259111406696],[-119.31485525813234,37.980216102279634],[-119.31487427546358,37.98017358231054],[-119.31489511584886,37.98013160108224],[-119.31491775498296,37.98009020754929],[-119.31494216646342,37.980049449980775],[-119.31496832182103,37.9800093759041],[-119.31499619055329,37.97997003204968],[-119.31502574015987,37.97993146429626],[-119.3150569361805,37.97989371761751],[-119.3158169951363,37.9789975583064],[-119.31584429969081,37.978966136616144],[-119.31587289460383,37.978935442475155],[-119.315902748957,37.97890550906986],[-119.31593383047044,37.97887636876421],[-119.31596610553748,37.97884805306456],[-119.31599953926118,37.97882059258572],[-119.31603409549196,37.97879401701778],[-119.31606973686672,37.97876835509405],[-119.31610642484924,37.97874363455994],[-119.3161441197718,37.97871988214309],[-119.3166535337786,37.978400913186086],[-119.31715199761962,37.97807128522022],[-119.31723711236138,37.978015372813005],[-119.31732452892518,37.977961731731945],[-119.31741415061411,37.97791042130982],[-119.3175058782928,37.97786149830137],[-119.3175996104972,37.97781501682046],[-119.31769524354642,37.97777102828029],[-119.31779267165778,37.97772958133653],[-119.31789178706362,37.977690721833554],[-119.31799248013043,37.977654492753636],[-119.31809463948026,37.97762093416955],[-119.31819815211378,37.97759008320016],[-119.31830290353517,37.977561973969436],[-119.3183354714502,37.97755320756533],[-119.31836763013781,37.97754354082734],[-119.31839933988726,37.97753298569244],[-119.31843056154217,37.97752155519452],[-119.31846125654896,37.977509263448475],[-119.31849138700441,37.977496125632626],[-119.31852091570252,37.97748215797008],[-119.3185498061804,37.97746737770867],[-119.31857802276333,37.97745180309965],[-119.31860553060885,37.977435453375115],[-119.31863229574962,37.97741834872437],[-119.31865828513563,37.97740051026884],[-119.31868346667481,37.97738196003608],[-119.31870050063152,37.97736850530342],[-119.31871693731303,37.97735459288372],[-119.31873275710433,37.97734023937987],[-119.31874794112679,37.97732546192103],[-119.31876247126044,37.97731027814236],[-119.31877633016572,37.97729470616389],[-119.31878950130412,37.97727876456889],[-119.31880196895794,37.97726247238172],[-119.31881371824899,37.97724584904514],[-119.31882473515643,37.97722891439706],[-119.31883500653345,37.97721168864685],[-119.31884452012297,37.97719419235134],[-119.31885326457225,37.97717644639017],[-119.31886122944641,37.977158471940896],[-119.31886840524099,37.97714029045372],[-119.31887478339317,37.97712192362601],[-119.31888035629203,37.97710339337611],[-119.31888511728766,37.97708472181755],[-119.31888906069902,37.97706593123238],[-119.31889218182081,37.97704704404468],[-119.31895883570793,37.97652169681567],[-119.31897807919928,37.976307399903384],[-119.31898841607449,37.97609271816433],[-119.31898983524609,37.97587788347804],[-119.31898233525877,37.975663127887245],[-119.31896592429072,37.97544868334732],[-119.31894062014439,37.97523478147565],[-119.31893584588187,37.97519398469442],[-119.31893287093965,37.975153080975765],[-119.31893169893017,37.97511212002983],[-119.31893233127481,37.975071151636264],[-119.31893476720207,37.97503022558368],[-119.31893900374861,37.97498939160915],[-119.31894503576282,37.97494869933776],[-119.31895285591115,37.97490819822232],[-119.31896245468693,37.97486793748326],[-119.31897382042206,37.97482796604874],[-119.31898693930113,37.974788332495365],[-119.3190017953782,37.974749084988915],[-119.31901837059634,37.97471027122605],[-119.31903664480936,37.9746719383762],[-119.31905659580646,37.974634133024246],[-119.31907819933926,37.97459690111399],[-119.31910142915113,37.97456028789229],[-119.31912625700923,37.97452433785398],[-119.31920337657274,37.97441341290369],[-119.31927636632489,37.97430075064513],[-119.31934516388529,37.97418644739367],[-119.3194097104584,37.974070600867215],[-119.31946995088359,37.97395331010251],[-119.31954770875903,37.97380281175055],[-119.3196317735039,37.97365445335346],[-119.31972205126634,37.97350840047577],[-119.31981844126275,37.97336481610823],[-119.31992083589033,37.973223860485895],[-119.32002912084721,37.973085690909286],[-119.32014317526023,37.972950461569006],[-119.32026287181986,37.97281832337362],[-119.3203880769224,37.97268942378143],[-119.32051865081914,37.97256390663587],[-119.32065444777238,37.972441912005046],[-119.32079531621815,37.972323576025595],[-119.32094109893531,37.97220903075066],[-119.32109163322116,37.972098404002764],[-119.32124675107288,37.97199181923109],[-119.32140168409222,37.97186235238778],[-119.32156222469578,37.97173724030828],[-119.32172817766136,37.971616635111204],[-119.32189934118912,37.97150068343479],[-119.32207550714696,37.9713895262586],[-119.32225646132348,37.97128329873221],[-119.32244198368845,37.97118213001092],[-119.32263184866034,37.97108614309891],[-119.32282582538043,37.97099545469963],[-119.32286420393041,37.97097755614208],[-119.32290182252453,37.970958673587944],[-119.32293864091892,37.97093882723784],[-119.32297461972587,37.97091803832335],[-119.32300972045596,37.97089632908449],[-119.32304390555929,37.970873722745786],[-119.32307713846546,37.970850243491434],[-119.32309726284265,37.97083502651833],[-119.32311670293852,37.970819261931815],[-119.32313543498918,37.970802969003145],[-119.32315343609632,37.970786167649415],[-119.32317068425522,37.9707688784092],[-119.32318715838166,37.97075112241748],[-119.32320283833765,37.97073292137985],[-119.32321770495601,37.970714297545854],[-119.32323174006396,37.97069527368189],[-119.32324492650513,37.97067587304336],[-119.3232572481607,37.970656119346195],[-119.32326868996896,37.970636036737965],[-119.32327923794385,37.970615649768185],[-119.32328887919196,37.97059498335853],[-119.32329760192829,37.970574062772165],[-119.32330539549075,37.970552913582964],[-119.32331225035308,37.97053156164427],[-119.3233339130756,37.97045307470469],[-119.32335233628885,37.97037407104023],[-119.32336750046879,37.97029463441964],[-119.32337938954723,37.97021484907046],[-119.32338799092862,37.970134799589694],[-119.32339329550356,37.97005457085417],[-119.32339428533788,37.9700128908944],[-119.32339346230088,37.969971208661015],[-119.3233908273711,37.969929573554076],[-119.32338638367435,37.969888034917666],[-119.32338013648011,37.96984664198145],[-119.32337209319535,37.969805443802414],[-119.32336226335549,37.969764489206526],[-119.32335065861334,37.96972382673111],[-119.32333729272507,37.96968350456711],[-119.32332218153411,37.969643570502114],[-119.32330534295214,37.9696040718637],[-119.32328679693799,37.969565055463306],[-119.32326656547394,37.9695265675408],[-119.32324467253964,37.969488653709625],[-119.32322114408373,37.96945135890276],[-119.32319600799296,37.96941472731959],[-119.3231692940593,37.96937880237334],[-119.32314103394444,37.96934362663973],[-119.32311126114244,37.96930924180652],[-119.32308997551824,37.96928468130564],[-119.3230697433799,37.96925956898227],[-119.32305058753262,37.969233933143755],[-119.32303252956835,37.96920780268757],[-119.32301558984129,37.969181207068665],[-119.32299978744517,37.969154176266315],[-119.32298514019158,37.96912674075034],[-119.32297166458999,37.96909893144669],[-119.32295937582906,37.96907077970266],[-119.32294044181697,37.96902743096327],[-119.32291966003318,37.96898461598996],[-119.32289705443223,37.96894238412761],[-119.32287265107043,37.968900784048934],[-119.32284647807587,37.96885986369852],[-119.32281856561616,37.96881967023744],[-119.32278894586331,37.96878024998894],[-119.32275765295695,37.968741648385084],[-119.32272472296488,37.96870390991437],[-119.32269019384135,37.968667078070425],[-119.3226541053836,37.96863119530198],[-119.32261649918566,37.968596302963874],[-119.32257741859068,37.96856244126941],[-119.32253690864081,37.96852964924401],[-119.32249501602539,37.968497964680324],[-119.32236025191001,37.96840266844972],[-119.32222158000947,37.968310953232816],[-119.32207915209263,37.96822291939778],[-119.32193312403692,37.96813866328366],[-119.321783655658,37.96805827709512],[-119.32159105534953,37.9679552062319],[-119.32140224048915,37.96784783577281],[-119.3212173641769,37.96773625278809],[-119.32119766220862,37.96772358346138],[-119.32117850098814,37.96771040459583],[-119.32115990153196,37.96769673064658],[-119.32114188424045,37.9676825766118],[-119.32112446887535,37.9676679580162],[-119.32110767453823,37.96765289089404],[-119.32109151964936,37.96763739177154],[-119.32107602192762,37.96762147764873],[-119.32106119837113,37.967605165980814],[-119.32104706523842,37.96758847465906],[-119.32103363803081,37.96757142199111],[-119.32102093147523,37.967554026680965],[-119.32100895950816,37.967536307808366],[-119.32099773526036,37.96751828480801],[-119.32098727104238,37.967499977448135],[-119.3209775783312,37.96748140580885],[-119.32096866775747,37.96746259026009],[-119.32096360465158,37.9674506907223],[-119.32095906234692,37.96743866016885],[-119.32095504623508,37.967426512880465],[-119.32095156108313,37.9674142632765],[-119.32094861102783,37.967401925897725],[-119.32094619957068,37.96738951538909],[-119.32094432957399,37.967377046482376],[-119.32094300325717,37.96736453397861],[-119.32094222219438,37.96735199273061],[-119.32094198731245,37.96733943762533],[-119.32094229888997,37.96732688356612],[-119.32094315655677,37.9673143454551],[-119.32094455929449,37.96730183817549],[-119.32094650543777,37.96728937657379],[-119.32094899267622,37.96727697544239],[-119.32095201805708,37.967264649501836],[-119.32095557798891,37.967252413383434],[-119.32095966824566,37.96724028161187],[-119.3209642839718,37.96722826858791],[-119.32096941968811,37.967216388571416],[-119.32097506929804,37.96720465566431],[-119.32098122609511,37.967193083793916],[-119.32098788277081,37.96718168669637],[-119.3209950314232,37.96717047790038],[-119.32100266356643,37.9671594707111],[-119.32101077014069,37.96714867819434],[-119.32101934152311,37.96713811316119],[-119.3210230436244,37.967133550533184],[-119.32102654564893,37.96712888996074],[-119.32102984346659,37.9671241369403],[-119.32103293318812,37.96711929707741],[-119.32103581116964,37.96711437607998],[-119.32103847401709,37.96710937975162],[-119.32104091859001,37.96710431398479],[-119.32104314200546,37.96709918475381],[-119.32104514164126,37.967093998107906],[-119.32104691513922,37.96708876016395],[-119.32104846040774,37.96708347709935],[-119.3210497756245,37.96707815514472],[-119.32105085923841,37.96707280057652],[-119.3210517099716,37.96706741970969],[-119.32105232682073,37.9670620188902],[-119.32105270905845,37.96705660448752],[-119.32105285623396,37.96705118288712],[-119.32105276817377,37.96704576048301],[-119.32105244498176,37.96704034367011],[-119.32105188703916,37.96703493883677],[-119.32105109500402,37.967029552357175],[-119.3210500698105,37.96702419058393],[-119.32104881266768,37.96701885984039],[-119.32104732505826,37.9670135664134],[-119.32104560873668,37.967008316545815],[-119.32104366572715,37.96700311642904],[-119.3210414983212,37.966997972195834],[-119.321039109075,37.96699288991307],[-119.32103650080639,37.96698787557454],[-119.32103367659143,37.966982935093924],[-119.32103063976095,37.96697807429775],[-119.32102739389646,37.9669732989186],[-119.32102394282597,37.96696861458835],[-119.32102029061959,37.96696402683144],[-119.32101644158458,37.96695954105844],[-119.3210124002603,37.96695516255966],[-119.32100817141297,37.96695089649886],[-119.32100376002983,37.96694674790721],[-119.32099917131355,37.96694272167737],[-119.32099441067578,37.966938822557665],[-119.32098948373107,37.96693505514648],[-119.32098439628997,37.96693142388696],[-119.3209791543524,37.966927933061584],[-119.32097376410042,37.96692458678725],[-119.32094742326177,37.96690935345368],[-119.32092044593038,37.966894835021705],[-119.3208928630513,37.9668810481448],[-119.32086470626415,37.96686800863743],[-119.32083600786672,37.966855731456675],[-119.32080680077812,37.96684423068526],[-119.32077711850086,37.96683351951522],[-119.32074699508246,37.966823610232936],[-119.32071646507642,37.96681451420494],[-119.32068556350264,37.9668062418649],[-119.32065432580707,37.9667988027017],[-119.32062278782128,37.96679220524849],[-119.32059098572122,37.96678645707291],[-119.3205589559858,37.96678156476846],[-119.32052673535497,37.96677753394691],[-119.32049436078768,37.96677436923182],[-119.32046186941938,37.96677207425333],[-119.32042929851949,37.96677065164387],[-119.32030008390427,37.96676830285349],[-119.32017083885918,37.96676906923428],[-119.32004168318056,37.966772950075885],[-119.31991273658193,37.9667799417812],[-119.3197841185831,37.96679003786962],[-119.31977090849762,37.96679105457085],[-119.31975766215601,37.966791712224634],[-119.31974439512442,37.966792010058164],[-119.31973112299343,37.96679194772145],[-119.31971786135956,37.96679152528775],[-119.31970462580702,37.96679074325346],[-119.31969143188935,37.96678960253759],[-119.31967829511116,37.96678810448063],[-119.31966523090993,37.96678625084297],[-119.3196522546378,37.96678404380294],[-119.31963938154367,37.96678148595406],[-119.3196266267551,37.96677858030217],[-119.31961400526062,37.96677533026177],[-119.3196015318922,37.9667717396521],[-119.3195892213077,37.9667678126926],[-119.31957708797357,37.966763553998],[-119.31956514614816,37.96675896857279],[-119.3195534098646,37.96675406180548],[-119.31954189291454,37.966748839462134],[-119.31953060883188,37.96674330767973],[-119.31951957087686,37.966737472958805],[-119.31950879202043,37.96673134215596],[-119.31949828492914,37.966724922475656],[-119.31948806195007,37.96671822146188],[-119.31947813509653,37.966711246989185],[-119.31946851603377,37.96670400725348],[-119.31945921606531,37.966696510762404],[-119.31945024611974,37.96668876632531],[-119.3194416167378,37.966680783042875],[-119.31943333806004,37.96667257029652],[-119.31942541981482,37.96666413773726],[-119.31941787130697,37.966655495274445],[-119.3194107014068,37.966646653064025],[-119.31940391853978,37.96663762149678],[-119.31939753067643,37.96662841118591],[-119.31939154532317,37.966619032954675],[-119.31938596951339,37.96660949782373],[-119.31938080979921,37.96659981699802],[-119.31937607224378,37.9665900018537],[-119.31937176241414,37.96658006392484],[-119.31936788537469,37.966570014889676],[-119.31936444568129,37.966559866557105],[-119.3193614473758,37.96654963085268],[-119.31935889398139,37.96653931980457],[-119.31935678849847,37.96652894552953],[-119.31935513340102,37.96651852021859],[-119.31935393063378,37.966508056122755],[-119.31935225883679,37.9664935100489],[-119.31934995857924,37.96647901785335],[-119.31934703256181,37.96646459654881],[-119.31934348421979,37.966450263064765],[-119.31933931771898,37.966436034227534],[-119.3193345379509,37.966421926740665],[-119.31932915052695,37.966407957165146],[-119.31932316177185,37.96639414190016],[-119.31931657871625,37.96638049716365],[-119.31930940908843,37.96636703897342],[-119.31930166130525,37.96635378312824],[-119.31929334446222,37.96634074518933],[-119.31928446832296,37.96632794046216],[-119.31927504330754,37.96631538397833],[-119.3192650804804,37.96630309047813],[-119.31925459153727,37.96629107439299],[-119.31924358879155,37.966279349828774],[-119.31923208515968,37.96626793054909],[-119.31922009414617,37.96625682995913],[-119.31920762982759,37.966246061090025],[-119.31919470683611,37.96623563658345],[-119.31918134034238,37.966225568676826],[-119.3191675460376,37.966215869188986],[-119.31915334011521,37.9662065495062],[-119.31913873925176,37.96619762056895],[-119.31912376058749,37.96618909285897],[-119.3191084217061,37.96618097638704],[-119.3190927406141,37.966173280681105],[-119.31907673571972,37.96616601477521],[-119.31906042581132,37.96615918719886],[-119.31904383003524,37.96615280596699],[-119.31902696787346,37.96614687857056],[-119.3190098591206,37.96614141196775],[-119.31899252386076,37.96613641257586],[-119.31888313633954,37.96610527397806],[-119.3187748053914,37.966071900617386],[-119.318667603849,37.96603631493168],[-119.31862756707137,37.96602317442056],[-119.31858698952202,37.966011118301864],[-119.31854591804652,37.966000160493984],[-119.31850440006058,37.96599031364732],[-119.31846248349534,37.96598158912966],[-119.318420216742,37.96597399701317],[-119.31837764859607,37.96596754606265],[-119.31833482820085,37.965962243725485],[-119.31829180499095,37.96595809612304],[-119.31824862863496,37.96595510804351],[-119.31820534897832,37.965953282936574],[-119.31816201598573,37.96595262290925],[-119.31811867968344,37.96595312872348],[-119.31807539010147,37.96595479979532],[-119.31803219721596,37.96595763419559],[-119.31798915089144,37.9659616286521],[-119.31794630082322,37.96596677855339],[-119.31790369648012,37.965973077954104],[-119.31786138704727,37.96598051958179],[-119.31781942136938,37.96598909484542],[-119.31779339610728,37.965995162092284],[-119.31776764287746,37.96600191780544],[-119.31774219072925,37.966009354364594],[-119.31771706837232,37.96601746338136],[-119.31769230414447,37.96602623570895],[-119.31766792597948,37.966035661452246],[-119.31764396137575,37.96604572997917],[-119.3176204373652,37.966056429932564],[-119.31759738048278,37.966067749243],[-119.31757481673658,37.96607967514245],[-119.31755277157846,37.96609219417862],[-119.31753126987537,37.96610529223022],[-119.3175103358813,37.96611895452276],[-119.31748999320988,37.96613316564532],[-119.31747026480777,37.96614790956788],[-119.31745117292883,37.96616316965946],[-119.31743273910891,37.96617892870678],[-119.31739803189048,37.96620856370847],[-119.31736204316438,37.966237224691014],[-119.31732481651552,37.966264876942816],[-119.3172863970282,37.96629148697387],[-119.31724683123159,37.96631702255641],[-119.31720616704327,37.96634145276389],[-119.31716445371129,37.96636474800854],[-119.3171217417544,37.966386880077046],[-119.31707808290103,37.96640782216487],[-119.31706147991035,37.966415178964304],[-119.31704456914741,37.966422082433006],[-119.31702737035413,37.96642852451175],[-119.31700990360858,37.9664344976799],[-119.3169921893018,37.96643999496427],[-119.31697424811375,37.96644500994722],[-119.31695610098936,37.966449536774164],[-119.31693776911388,37.96645357016037],[-119.31691927388835,37.96645710539718],[-119.3169006369044,37.966460138357505],[-119.31688187991935,37.966462665500565],[-119.31686302483044,37.966464683876154],[-119.31684409364952,37.96646619112795],[-119.31682510847725,37.966467185496356],[-119.31680609147736,37.96646766582055],[-119.31678706485071,37.966467631539786],[-119.31676805080944,37.96646708269403],[-119.31674907155093,37.96646601992412],[-119.31673014923199,37.966464444470645],[-119.31671130594297,37.96646235817291],[-119.31669256368193,37.966459763466446],[-119.31667394432895,37.966456663380406],[-119.3166554696207,37.96645306153386],[-119.3166371611249,37.96644896213173],[-119.31661904021529,37.96644436995972],[-119.31660112804654,37.96643929037881],[-119.31658344552964,37.96643372931903],[-119.31656601330751,37.966427693272465],[-119.31654885173079,37.96642118928576],[-119.31653198083418,37.966414224951734],[-119.31651542031304,37.96640680840072],[-119.31649918950033,37.96639894829094],[-119.31648330734411,37.96639065379843],[-119.31646779238541,37.96638193460631],[-119.31645266273651,37.966372800893595],[-119.3164379360599,37.96636326332307],[-119.3164236295476,37.966353333029105],[-119.31640975990113,37.966343021604466],[-119.31640588254652,37.96634013985608],[-119.31640188203231,37.96633736562111],[-119.3163977631126,37.96633470219636],[-119.31639353068206,37.966332152746915],[-119.31638918977038,37.96632972030237],[-119.31638474553604,37.96632740775339],[-119.3163802032604,37.96632521784806],[-119.31637556834129,37.96632315318876],[-119.31637084628657,37.96632121622903],[-119.31636604270778,37.966319409270646],[-119.3163611633132,37.96631773446092],[-119.31635621390133,37.96631619379013],[-119.31635120035375,37.96631478908911],[-119.31634612862837,37.96631352202714],[-119.31634100475212,37.966312394109956],[-119.31633583481403,37.96631140667789],[-119.31633062495773,37.96631056090437],[-119.31632538137441,37.96630985779447],[-119.31632011029527,37.96630929818374],[-119.31631481798415,37.966308882737174],[-119.31630951073026,37.96630861194848],[-119.3163041948404,37.96630848613946],[-119.31629887663176,37.9663085054596],[-119.31629356242418,37.96630866988595],[-119.31628825853285,37.96630897922311],[-119.31628297126065,37.966309433103476],[-119.31627770689066,37.96631003098769],[-119.31627247167886,37.96631077216526],[-119.31626727184647,37.9663116557554],[-119.31626211357273,37.96631268070808],[-119.31625700298747,37.966313845805324],[-119.31625194616389,37.96631514966256],[-119.31624694911123,37.96631659073038],[-119.31624201776778,37.96631816729626],[-119.31623715799368,37.96631987748672],[-119.31623237556407,37.966321719269416],[-119.31622767616213,37.966323690455674],[-119.31622306537244,37.96632578870306],[-119.31621854867424,37.966328011518094],[-119.31621413143498,37.9663303562593],[-119.31620981890383,37.966332820140295],[-119.31620561620566,37.96633540023312],[-119.31620152833476,37.96633809347175],[-119.31619756014896,37.966340896655616],[-119.31619287990887,37.96634420143827],[-119.316188056873,37.966347374933875],[-119.31618309691423,37.966350413278136],[-119.31617800607222,37.96635331277135],[-119.3161727905459,37.966356069882856],[-119.31616745668612,37.96635868125538],[-119.31616201098777,37.96636114370912],[-119.31615646008194,37.96636345424564],[-119.31615081072786,37.966365610051376],[-119.3161450698046,37.966367608501294],[-119.31613924430273,37.9663694471619],[-119.31613334131586,37.96637112379434],[-119.31612736803191,37.96637263635701],[-119.31612133172442,37.966373983008054],[-119.31611523974364,37.96637516210772],[-119.31610909950767,37.96637617222023],[-119.31610291849329,37.966377012115586],[-119.31609670422706,37.96637768077109],[-119.31609046427594,37.966378177372505],[-119.31608420623813,37.96637850131517],[-119.31607793773397,37.96637865220459],[-119.31607166639643,37.966378629857054],[-119.31606539986203,37.96637843429975],[-119.31605914576136,37.966378065770826],[-119.31605291170992,37.966377524719],[-119.31604670529876,37.966376811803144],[-119.3160405340853,37.96637592789133],[-119.31603440558413,37.96637487405989],[-119.31602832725773,37.966373651592036],[-119.31602230650759,37.966372261976375],[-119.31601635066501,37.96637070690498],[-119.31601046698233,37.966368988271434],[-119.31600466262393,37.96636710816847],[-119.31599894465762,37.96636506888547],[-119.3159933200461,37.966362872905606],[-119.31598779563832,37.96636052290288],[-119.31598237816115,37.96635802173884],[-119.3159770742114,37.9663553724591],[-119.3159718902475,37.9663525782896],[-119.31596683258185,37.96634964263278],[-119.315271645844,37.96592298913207],[-119.31518350743251,37.96589053312974],[-119.315093988208,37.96586053917925],[-119.31500319786007,37.96583304403231],[-119.31491124763545,37.965808081378725],[-119.31481825020172,37.96578568180527],[-119.31472431950925,37.965765872758084],[-119.31462957065165,37.96574867850916],[-119.31462100362243,37.96574712573321],[-119.31461250928757,37.96574534010781],[-119.3146040977415,37.96574332375494],[-119.31459577898035,37.965741079070796],[-119.31458756288991,37.9657386087229],[-119.314579459234,37.96573591564698],[-119.31457147764282,37.96573300304341],[-119.31456362760149,37.96572987437347],[-119.31455591843878,37.96572653335518],[-119.31454835931606,37.965722983958955],[-119.31454095921643,37.965719230402804],[-119.31453372693396,37.96571527714735],[-119.31452667106326,37.96571112889057],[-119.31451979998936,37.96570679056214],[-119.31451312187765,37.96570226731761],[-119.31450664466418,37.96569756453231],[-119.31450037604625,37.96569268779492],[-119.31449432347334,37.965687642900825],[-119.31448849413812,37.96568243584525],[-119.31448289496795,37.96567707281615],[-119.31447753261673,37.96567156018678],[-119.31447241345685,37.9656659045082],[-119.31446754357174,37.96566011250152],[-119.3144629287486,37.96565419104974],[-119.31445857447149,37.96564814718982],[-119.31445448591482,37.96564198810408],[-119.31445066793732,37.9656357211118],[-119.31444712507603,37.965629353660574],[-119.31444386154119,37.96562289331721],[-119.31444088121096,37.96561634775907],[-119.31443818762703,37.96560972476466],[-119.31443578399028,37.965603032204605],[-119.31443367315707,37.96559627803209],[-119.31443185763578,37.9655894702736],[-119.3144303395838,37.9655826170193],[-119.31442912080506,37.96557572641337],[-119.31442820274788,37.96556880664438],[-119.31442758650311,37.96556186593561],[-119.31442727280306,37.965554912535154],[-119.31442726202036,37.96554795470621],[-119.31442755416779,37.96554100071726],[-119.31442814889806,37.96553405883219],[-119.31442904550434,37.96552713730053],[-119.31443184189926,37.965505573856944],[-119.31443370396602,37.965483947250455],[-119.31443462952141,37.96546228284724],[-119.31443461748066,37.96544060605783],[-119.31443366785871,37.96541894230723],[-119.31443178177018,37.96539731700514],[-119.31442896142813,37.965375755516156],[-119.31442521014138,37.965354283129955],[-119.31442053231069,37.96533292503174],[-119.31441493342346,37.9653117062726],[-119.31440842004751,37.965290651740204],[-119.31440099982319,37.96526978612955],[-119.31439268145448,37.96524913391408],[-119.31436618457458,37.96518369598587],[-119.31434227782866,37.96511763580223],[-119.3143209844576,37.96505101760268],[-119.3143023251608,37.964983906169195],[-119.31428631807606,37.96491636676327],[-119.31427297876186,37.96484846506233],[-119.31426232018244,37.964780267095975],[-119.31425435269506,37.96471183918171],[-119.3142400381897,37.964589558348095],[-119.31422076340313,37.96446770526672],[-119.31419654830364,37.96434640602053],[-119.31416741797099,37.964225786118824],[-119.31413340257032,37.96410597036736],[-119.31409453732086,37.963987082739216],[-119.31409268144364,37.96398137950563],[-119.31409107438037,37.96397562912019],[-119.31408971803187,37.96396983838459],[-119.31408861400239,37.963964014148196],[-119.31408776359768,37.963958163299964],[-119.3140871678236,37.96395229276038],[-119.3140868273848,37.96394640947321],[-119.31408674268383,37.96394052039727],[-119.31408691382087,37.96393463249825],[-119.3140873405934,37.96392875274043],[-119.31408802249659,37.963922888078464],[-119.31408895872383,37.963917045449165],[-119.31409014816761,37.96391123176321],[-119.31409158942105,37.963905453897176],[-119.31409328077935,37.963899718685134],[-119.31409522024188,37.963894032910794],[-119.31409740551456,37.96388840329932],[-119.31409905811347,37.963884142652326],[-119.31410052232114,37.96387983903161],[-119.31410179636175,37.963875497656645],[-119.3141028786902,37.96387112379265],[-119.31410376799388,37.96386672274431],[-119.31410446319425,37.96386229984924],[-119.31410496344823,37.963857860471556],[-119.3141052681491,37.963853409995345],[-119.31410537692739,37.9638489538182],[-119.31410528965117,37.96384449734458],[-119.31410500642636,37.963840045979346],[-119.31410452759647,37.96383560512109],[-119.3141038537423,37.963831180155736],[-119.31410298568106,37.96382677644992],[-119.31410192446566,37.96382239934446],[-119.31410067138314,37.96381805414796],[-119.31409922795329,37.96381374613023],[-119.31409759592671,37.96380948051609],[-119.3140957772828,37.96380526247892],[-119.31409377422722,37.963801097134336],[-119.31409158918933,37.963796989534075],[-119.31408922481921,37.96379294465988],[-119.31408668398433,37.96378896741736],[-119.3140839697663,37.96378506263015],[-119.31408108545699,37.96378123503397],[-119.31407803455444,37.96377748927096],[-119.31407482075889,37.963773829883955],[-119.31407144796802,37.963770261311105],[-119.31406792027241,37.96376678788036],[-119.31406424195043,37.9637634138043],[-119.31406041746325,37.963760143175016],[-119.31405645144918,37.96375697995916],[-119.31405234871823,37.96375392799306],[-119.31404811424622,37.963750990978106],[-119.31404375316872,37.963748172476386],[-119.3140392707749,37.963745475906144],[-119.314034672501,37.96374290453779],[-119.31396764720684,37.96370551333409],[-119.31390219563912,37.96366641378421],[-119.313838387237,37.96362564737128],[-119.31377628969604,37.963583257346905],[-119.31371596889623,37.963539288685126],[-119.31365748883223,37.96349378803486],[-119.31360091154541,37.9634468036702],[-119.31354629705797,37.963398385439405],[-119.31349370330936,37.96334858471189],[-119.31344318609484,37.96329745432362],[-119.31339479900622,37.963245048521294],[-119.31334859337495,37.96319142290459],[-119.31334573308628,37.963186411354144],[-119.31334309402304,37.963181324291746],[-119.3133406793596,37.96317616783631],[-119.31333849200031,37.963170948190225],[-119.31333653457618,37.96316567163186],[-119.31333480944164,37.96316034450803],[-119.31333331867167,37.96315497322644],[-119.31333206405938,37.96314956424781],[-119.31333104711378,37.963144124078276],[-119.3133302690581,37.96313865926148],[-119.3133297308281,37.96313317637066],[-119.31332943307116,37.96312768200085],[-119.31332937614536,37.96312218276087],[-119.31332956011916,37.963116685265376],[-119.31332998477114,37.96311119612695],[-119.31333064959053,37.96310572194812],[-119.3133315537776,37.96310026931341],[-119.31333269624467,37.96309484478142],[-119.31333407561755,37.96308945487698],[-119.31333569023697,37.9630841060832],[-119.31333753816081,37.96307880483383],[-119.31333961716626,37.96307355750533],[-119.31334192475258,37.96306837040942],[-119.31334445814407,37.96306324978525],[-119.31334721429347,37.96305820179208],[-119.31335018988555,37.963053232501814],[-119.31335338134109,37.963048347891636],[-119.31335678482132,37.963043553836926],[-119.31336039623237,37.963038856104134],[-119.31336421123025,37.96303426034379],[-119.31336822522621,37.96302977208386],[-119.31337243339198,37.963025396722905],[-119.31337683066587,37.963021139523796],[-119.31338141175867,37.963017005607156],[-119.31338617116006,37.96301299994544],[-119.31339110314526,37.96300912735674],[-119.31339620178194,37.96300539249912],[-119.3134014609373,37.96300179986499],[-119.31340687428542,37.962998353775646],[-119.31341243531494,37.96299505837616],[-119.31341813733692,37.96299191763031],[-119.31342397349279,37.962988935315906],[-119.31342993676262,37.96298611502014],[-119.31343601997361,37.96298346013534],[-119.31344221580873,37.96298097385487],[-119.31344851681541,37.96297865916932],[-119.31345984354778,37.96297450066097],[-119.31347098379659,37.96297003755346],[-119.31348192449825,37.96296527508046],[-119.3134926528232,37.96296021882663],[-119.3135031561909,37.96295487472125],[-119.31351342228464,37.96294924903104],[-119.31352343906595,37.96294334835298],[-119.31353319478873,37.962937179606485],[-119.31354267801298,37.962930750025336],[-119.31355187761832,37.96292406714915],[-119.31356078281688,37.96291713881461],[-119.31356938316615,37.962909973146196],[-119.31357766858099,37.96290257854671],[-119.31358562934565,37.96289496368742],[-119.31359325612507,37.96288713749786],[-119.31360053997584,37.96287910915537],[-119.31360747235667,37.96287088807437],[-119.31361404513848,37.96286248389524],[-119.31362025061384,37.96285390647315],[-119.31362608150606,37.962845165866334],[-119.31363153097772,37.96283627232441],[-119.31363659263867,37.96282723627637],[-119.31364126055351,37.96281806831824],[-119.31364552924859,37.96280877920077],[-119.31364939371844,37.96279937981679],[-119.31365284943155,37.96278988118841],[-119.31365589233575,37.96278029445411],[-119.313658518863,37.9627706308557],[-119.31366072593345,37.96276090172512],[-119.31366251095918,37.96275111847109],[-119.3136638718472,37.962741292565894],[-119.3136648070018,37.96273143553178],[-119.31366600088256,37.96271888215453],[-119.31366774273909,37.96270636900461],[-119.31367003048464,37.96269391107081],[-119.31367286137855,37.96268152327582],[-119.3136762320296,37.96266922045828],[-119.31368013839999,37.96265701735508],[-119.31368457581024,37.96264492858361],[-119.31368953894476,37.962632968624305],[-119.31369502185827,37.962621151803354],[-119.31370101798284,37.96260949227543],[-119.31370752013581,37.9625980040068],[-119.31371452052845,37.96258670075857],[-119.31372201077512,37.96257559607025],[-119.31372998190353,37.96256470324345],[-119.31373842436531,37.962554035326036],[-119.31375790376592,37.962531175195146],[-119.31377832376359,37.96250883550934],[-119.31379966219227,37.96248704051768],[-119.3138218958889,37.96246581387794],[-119.31384500071883,37.962445178630965],[-119.31386895160179,37.96242515717562],[-119.31389372253926,37.96240577124453],[-119.31391928664262,37.96238704188043],[-119.31394561616239,37.96236898941341],[-119.31397268251824,37.96235163343872],[-119.31400045633023,37.96233499279567],[-119.31410954882554,37.96226961611255],[-119.31421584402857,37.96220141231838],[-119.31431922511285,37.96213045637918],[-119.31441957845601,37.96205682628577],[-119.31451679376454,37.961980602968005],[-119.31461076419512,37.96190187020583],[-119.3147013864719,37.961820714537154],[-119.31478856100016,37.96173722516269],[-119.3147918534733,37.96173215622854],[-119.31479492142766,37.96172699975444],[-119.31479776115596,37.961721761971624],[-119.3148003692266,37.961716449209575],[-119.31480274248801,37.96171106788835],[-119.31480487807227,37.961705624510905],[-119.31480677339874,37.96170012565515],[-119.31480842617717,37.96169457796606],[-119.3148098344103,37.96168898814759],[-119.31481099639647,37.96168336295463],[-119.31481191073155,37.96167770918479],[-119.31481257631069,37.961672033670276],[-119.31481299232965,37.961666343269464],[-119.31481315828576,37.96166064485879],[-119.31481307397851,37.96165494532437],[-119.31481273950988,37.96164925155362],[-119.31481215528407,37.961643570427086],[-119.31481132200716,37.96163790880992],[-119.31481024068613,37.96163227354378],[-119.31480891262774,37.96162667143845],[-119.31480733943692,37.96162110926363],[-119.31480552301477,37.96161559374077],[-119.31480346555638,37.961610131534975],[-119.31480219909798,37.96160677112665],[-119.31480107965288,37.961603378161755],[-119.31480010855078,37.96159995667052],[-119.31479928694519,37.96159651071714],[-119.31479861581197,37.96159304439473],[-119.31479809594828,37.96158956182072],[-119.31479772797164,37.9615860671318],[-119.31479751231909,37.96158256447904],[-119.31479744924681,37.96157905802296],[-119.31479753882962,37.96157555192861],[-119.31479778096117,37.96157205036065],[-119.3147981753538,37.96156855747828],[-119.314798721539,37.96156507743046],[-119.31479941886799,37.96156161435086],[-119.31480026651245,37.96155817235302],[-119.31480126346551,37.96155475552539],[-119.31480240854295,37.96155136792661],[-119.31480370038457,37.96154801358051],[-119.31480513745592,37.961544696471464],[-119.31480671804994,37.96154142053961],[-119.31480844028918,37.961538189676155],[-119.31481030212791,37.961535007718865],[-119.31481230135458,37.96153187844723],[-119.3148144355944,37.96152880557833],[-119.31481670231234,37.961525792762195],[-119.31481909881587,37.96152284357748],[-119.31482162225836,37.961519961527316],[-119.31482426964241,37.96151715003504],[-119.31482703782338,37.96151441244022],[-119.31482992351316,37.96151175199462],[-119.31483292328404,37.96150917185838],[-119.31483603357283,37.961506675096246],[-119.31483925068507,37.961504264673906],[-119.31484257079939,37.9615019434545],[-119.31484598997206,37.96149971419527],[-119.3148495041417,37.96149757954411],[-119.31485310913416,37.96149554203664],[-119.31485680066729,37.961493604093064],[-119.31489399488673,37.96147413441521],[-119.31493038804766,37.96145373788857],[-119.31496594331796,37.96143243515603],[-119.31500062471359,37.961410247777636],[-119.31503439713512,37.961387198208726],[-119.3150672264031,37.96136330977723],[-119.3150990792927,37.961338606660064],[-119.31512992356744,37.96131311385861],[-119.31521452313193,37.96123836784318],[-119.31529579630225,37.96116134303977],[-119.31537364523241,37.96108213218957],[-119.31544797620026,37.961000830665554],[-119.31551869972024,37.96091753635767],[-119.31558573065122,37.96083234955493],[-119.31564898829885,37.96074537282456],[-119.31565750014516,37.960732671777265],[-119.3156654526386,37.960719745469135],[-119.31567283628311,37.960706609335894],[-119.31567964226194,37.960693279063904],[-119.31568586244818,37.96067977057126],[-119.31569148941436,37.96066609998894],[-119.3156965164415,37.96065228364139],[-119.315700937527,37.960638338027195],[-119.31570474739185,37.96062427979921],[-119.31570794148689,37.960610125744864],[-119.31571051599835,37.96059589276586],[-119.31571246785226,37.96058159785827],[-119.31571379471823,37.960567258092034],[-119.31571449501217,37.960552890590684],[-119.31571456789823,37.96053851251084],[-119.31571401328969,37.960524141021736],[-119.3157128318492,37.96050979328478],[-119.31571102498793,37.960495486432926],[-119.31570859486386,37.96048123755037],[-119.31570554437923,37.96046706365202],[-119.31570187717702,37.96045298166327],[-119.31569759763664,37.96043900839977],[-119.31569271086883,37.960425160547246],[-119.31568654190377,37.96040776270616],[-119.31568108076871,37.96039021718856],[-119.31567633308036,37.960372542041576],[-119.31567230372161,37.960354755445486],[-119.31566899683648,37.960336875695376],[-119.31566641582585,37.96031892118199],[-119.31566456334393,37.96030091037301],[-119.31566344129568,37.96028286179405],[-119.31566305083466,37.96026479400951],[-119.31566339236194,37.96024672560354],[-119.3156644354264,37.960229648325985],[-119.31566622489457,37.96021260989567],[-119.31566875861873,37.960195630756516],[-119.31567203355829,37.96017873128133],[-119.31567604578318,37.96016193174721],[-119.31568079047881,37.960145252311484],[-119.31568626195165,37.960128712987256],[-119.31569245363617,37.960112333619556],[-119.31569935810272,37.96009613386139],[-119.31570696706635,37.96008013315033],[-119.31571527139694,37.96006435068507],[-119.31572426112994,37.96004880540248],[-119.31573392547847,37.960033515954706],[-119.31574425284623,37.96001850068705],[-119.31575099962937,37.96000869050863],[-119.31575731233508,37.959998700856836],[-119.31576318335806,37.95998854376698],[-119.31576860562521,37.95997823147615],[-119.3157735726041,37.95996777640842],[-119.31577807831076,37.959957191159845],[-119.31578211731701,37.95994648848333],[-119.31578568475697,37.959935681273265],[-119.31578877633284,37.959924782549884],[-119.31579138832016,37.95991380544385],[-119.31579351757229,37.95990276318004],[-119.31579516152416,37.959891669062],[-119.31579631819541,37.95988053645566],[-119.31579698619271,37.95986937877329],[-119.3157971647115,37.95985820945743],[-119.31579685353694,37.959847041964615],[-119.31579605304412,37.95983588974912],[-119.31579476419769,37.959824766246896],[-119.31579298855065,37.959813684859235],[-119.31579072824245,37.95980265893669],[-119.31578798599647,37.959791701763024],[-119.3157847651167,37.95978082653911],[-119.31578106948382,37.95977004636712],[-119.31577690355037,37.95975937423472],[-119.31577227233556,37.95974882299935],[-119.31576718141916,37.95973840537288],[-119.31576163693471,37.9597281339061],[-119.31575564556229,37.95971802097378],[-119.31574921452021,37.95970807875968],[-119.31568245352405,37.95960578014199],[-119.31561926925276,37.95950206730031],[-119.31555970943728,37.9593970186065],[-119.31550381906905,37.95929071344151],[-119.31549786524091,37.95927835097832],[-119.31549242705185,37.95926584046949],[-119.31548751036038,37.95925319539315],[-119.31548312046324,37.959240429372414],[-119.31547926208958,37.95922755616075],[-119.31547593939594,37.95921458962707],[-119.31547315596175,37.95920154374079],[-119.3154709147854,37.95918843255682],[-119.31546921828114,37.95917527020048],[-119.3154680682764,37.959162070852095],[-119.31546746600986,37.95914884873194],[-119.31546741213002,37.95913561808473],[-119.31546790669469,37.959122393164456],[-119.31546882319333,37.959098187179634],[-119.31546875840486,37.95907397037493],[-119.31546771239697,37.95904976768116],[-119.31546568624746,37.95902560401466],[-119.31546268204313,37.95900150425151],[-119.31545870287776,37.95897749320203],[-119.31545375284877,37.958953595585136],[-119.315447837053,37.95892983600295],[-119.31544096158164,37.95890623891553],[-119.31543313351375,37.95888282861553],[-119.31541963177929,37.958847277440036],[-119.31540459038855,37.958812115858265],[-119.31538802721913,37.95877738565672],[-119.31536996195697,37.958743128109184],[-119.31535041607309,37.95870938392763],[-119.31532941279795,37.95867619321399],[-119.31530697709393,37.95864359541229],[-119.31528313562563,37.95861162926195],[-119.3152579167281,37.95858033275164],[-119.31523135037324,37.958549743074215],[-119.31520346813421,37.95851989658248],[-119.31517430314776,37.958490828746],[-119.31514389007498,37.9584625741089],[-119.31512283063863,37.95844306516519],[-119.31510256146467,37.958423038356216],[-119.3150831028542,37.95840251374098],[-119.3150644742965,37.95838151187712],[-119.3150466944493,37.95836005380024],[-119.31502978112029,37.958338161002864],[-119.31501375124918,37.95831585541298],[-119.31499862089076,37.95829315937194],[-119.3149770786943,37.9582609371219],[-119.31495416555376,37.95822931328633],[-119.31492990795478,37.95819832441731],[-119.31490433393695,37.95816800633305],[-119.3148774730613,37.958138394076315],[-119.31484935637611,37.95810952187405],[-119.31482001638106,37.958081423097774],[-119.31478948698972,37.95805413022504],[-119.31478093933872,37.95804648971114],[-119.31477272339968,37.958038624382844],[-119.31476484859826,37.95803054326371],[-119.31475732396866,37.95802225562473],[-119.31475015814348,37.95801377097391],[-119.31474335934348,37.95800509904528],[-119.3147369353685,37.957996249787705],[-119.31473089358828,37.95798723335344],[-119.31472524093411,37.957978060086596],[-119.31471998389084,37.95796874051116],[-119.31471512848942,37.95795928531901],[-119.3147106803001,37.9579497053576],[-119.31470664442581,37.95794001161743],[-119.31470302549658,37.95793021521964],[-119.314699827664,37.95792032740313],[-119.31469705459666,37.957910359511615],[-119.31469470947572,37.957900322980706],[-119.31469279499146,37.95789022932475],[-119.31469131334006,37.957880090123616],[-119.31469026622118,37.95786991700945],[-119.31468965483593,37.957859721653286],[-119.31468775621539,37.957828465480446],[-119.3146844734288,37.95779728131291],[-119.31467981052188,37.957766207565776],[-119.31467377324046,37.95773528251795],[-119.31466636902346,37.95770454426523],[-119.31465760699359,37.95767403067318],[-119.31464749794623,37.9576437793306],[-119.314636054336,37.9576138275032],[-119.31462329026158,37.95758421208761],[-119.31458672176312,37.95750740329575],[-119.31454743617213,37.95743144025876],[-119.31450546465236,37.957356383219214],[-119.3144608404973,37.957282291700935],[-119.31444196091998,37.95725068650356],[-119.3144244706055,37.95721858410194],[-119.31440839040238,37.95718602276564],[-119.31439373947809,37.957153041311265],[-119.31438053529618,37.957119679056206],[-119.31436879359545,37.95708597577175],[-119.31435852837119,37.95705197163565],[-119.31434975185856,37.95701770718429],[-119.31434247451797,37.9569832232643],[-119.31433670502261,37.956948560983896],[-119.31433245024819,37.95691376166383],[-119.31432971526462,37.95687886678818],[-119.3143285033301,37.95684391795489],[-119.31432881588725,37.95680895682614],[-119.31433065256132,37.956774025078744],[-119.31433401116067,37.956739164354396],[-119.31433717880685,37.956706623602166],[-119.31433899066703,37.95667401788245],[-119.31433944477563,37.95664138259855],[-119.3143385406414,37.956608753185854],[-119.31433627924784,37.95657616507335],[-119.31433266305216,37.956543653645085],[-119.31432769598258,37.95651125420181],[-119.31432138343408,37.95647900192266],[-119.31431373226253,37.95644693182695],[-119.31430475077724,37.9564150787361],[-119.3142944487319,37.956383477235846],[-119.3142828373141,37.95635216163878],[-119.31426992913293,37.95632116594696],[-119.31425618460173,37.95628825875848],[-119.31424374340651,37.95625502806391],[-119.31423261765825,37.956221506216394],[-119.31422281818705,37.95618772585256],[-119.31421435453176,37.95615371986065],[-119.31420723493068,37.956119521348505],[-119.31420146631352,37.956085163611434],[-119.31419705429462,37.956050680099594],[-119.31419479405163,37.95603320647191],[-119.31419179795823,37.95601580236917],[-119.31418806935841,37.95599848721321],[-119.31418361241353,37.955981280326576],[-119.31417843209773,37.95596420091094],[-119.3141725341924,37.95594726802578],[-119.31416592527965,37.95593050056698],[-119.31415861273504,37.95591391724584],[-119.31415060471934,37.95589753656815],[-119.31414191016935,37.9558813768136],[-119.31413253878802,37.95586545601524],[-119.31412250103351,37.95584979193954],[-119.31411180810768,37.95583440206643],[-119.31410047194339,37.955819303569854],[-119.31408850519134,37.95580451329857],[-119.31407592120584,37.95579004775741],[-119.31406273403005,37.95577592308879],[-119.31404895838017,37.955762155054735],[-119.31403460962903,37.95574875901931],[-119.31402671620474,37.95574138737526],[-119.31401914112128,37.95573380922908],[-119.31401189298967,37.955726033195326],[-119.31400498004919,37.955718068113505],[-119.31399841015809,37.955709923038015],[-119.31399219078465,37.955701607227866],[-119.31398632899871,37.95569313013614],[-119.3139808314636,37.95568450139929],[-119.31397570442854,37.955675730826066],[-119.31397095372166,37.95566682838655],[-119.31396658474318,37.955657804200676],[-119.3139626024595,37.95564866852677],[-119.31395901139732,37.95563943174986],[-119.31395581563866,37.95563010436996],[-119.3139530188162,37.95562069699004],[-119.3139412207914,37.955574543549204],[-119.31393113288726,37.955528136602794],[-119.3139227637342,37.95548151586747],[-119.31391612049154,37.95543472124278],[-119.31391474835216,37.955425265797416],[-119.31391296891137,37.95541585300376],[-119.3139107842481,37.95540649385807],[-119.31390819691467,37.955397199293955],[-119.31390520993381,37.95538798016947],[-119.31390182679515,37.95537884725465],[-119.31389805145109,37.95536981121876],[-119.3138938883122,37.955360882617896],[-119.31388934224205,37.95535207188263],[-119.31388441855165,37.95534338930584],[-119.31387912299307,37.955334845030684],[-119.31387346175278,37.95532644903877],[-119.31386744144451,37.95531821113847],[-119.3138610691014,37.95531014095342],[-119.3138543521679,37.95530224791139],[-119.31384729849088,37.955294541233194],[-119.31383991631073,37.955287029921884],[-119.31383221425152,37.95527972275228],[-119.31382420131106,37.95527262826082],[-119.31381588685025,37.95526575473535],[-119.31375585681802,37.95521621003669],[-119.31369789380143,37.95516514555888],[-119.31364205913361,37.955112615339154],[-119.31358841189505,37.95505867496567],[-119.3135370088511,37.95500338151881],[-119.31346807051743,37.95492425512671],[-119.31340203668829,37.95484359063865],[-119.31333896205504,37.954761454875175],[-119.31327889885722,37.95467791587537],[-119.3132218968392,37.95459304284056],[-119.31321041720108,37.95457607704178],[-119.31319819547723,37.95455943939784],[-119.31318524661113,37.95454315025082],[-119.31317158643513,37.95452722951668],[-119.31315723165135,37.95451169666095],[-119.31314219981108,37.954496570674834],[-119.31312650929343,37.95448187005211],[-119.31311017928272,37.95446761276652],[-119.3130932297452,37.95445381624969],[-119.31307568140453,37.95444049736988],[-119.3130575557164,37.954427672411384],[-119.31303887484242,37.95441535705461],[-119.31301966162295,37.954403566356824],[-119.31299993954914,37.9543923147339],[-119.3129683402373,37.95437436211094],[-119.31293745915616,37.95435564230391],[-119.31290732600324,37.954336173315475],[-119.31287796975668,37.95431597386874],[-119.3128494186474,37.954295063389296],[-119.312821700132,37.95427346198651],[-119.31281713506058,37.95426991601169],[-119.31281241913841,37.954266496045435],[-119.31280755791019,37.9542632061087],[-119.31280255709137,37.95426005006953],[-119.31279742256157,37.954257031638576],[-119.31279216035757,37.95425415436465],[-119.31278677666631,37.954251421630666],[-119.31278127781752,37.954248836649526],[-119.31277567027631,37.954246402460484],[-119.31276996063566,37.95424412192548],[-119.31276415560853,37.954241997725745],[-119.31275826202,37.95424003235878],[-119.31275228679932,37.95423822813534],[-119.3127462369717,37.95423658717664],[-119.31274011965007,37.95423511141205],[-119.31273394202671,37.9542338025766],[-119.31272771136477,37.954232662209144],[-119.31272143498981,37.95423169165044],[-119.31271512028113,37.95423089204161],[-119.31270877466302,37.95423026432277],[-119.3127024055962,37.95422980923191],[-119.31269602056894,37.954229527304115],[-119.31268962708822,37.95422941887085],[-119.31268323267105,37.95422948405961],[-119.31267684483542,37.954229722793734],[-119.31267047109174,37.95423013479256],[-119.31266411893367,37.954230719571676],[-119.31265779582967,37.95423147644354],[-119.31265150921391,37.954232404518294],[-119.31264526647772,37.954233502704774],[-119.31263907496083,37.954234769711796],[-119.31263294194275,37.95423620404976],[-119.3126268746342,37.95423780403224],[-119.3126208801687,37.95423956777811],[-119.31261496559402,37.954241493213715],[-119.31260913786414,37.95424357807523],[-119.3126034038308,37.95424581991148],[-119.31259782202436,37.954248000981806],[-119.31259214789844,37.95425002720288],[-119.31258638830235,37.954251896128795],[-119.31258055018854,37.95425360550356],[-119.31257464060425,37.95425515326378],[-119.31256866668302,37.954256537541085],[-119.31256263563603,37.95425775666457],[-119.31255655474342,37.95425880916257],[-119.31255043134554,37.954259693764605],[-119.31254427283397,37.95426040940288],[-119.31253808664276,37.954260955213535],[-119.31253188023933,37.9542613305377],[-119.31252566111549,37.95426153492233],[-119.31251943677842,37.95426156812071],[-119.31251321474159,37.954261430092764],[-119.31250700251572,37.95426112100509],[-119.31250080759965,37.95426064123082],[-119.31249463747132,37.954259991349076],[-119.3124884995788,37.954259172144354],[-119.31248240133117,37.95425818460551],[-119.31247635008974,37.9542570299246],[-119.31247035315903,37.954255709495506],[-119.31246441777795,37.95425422491209],[-119.31245855111123,37.95425257796642],[-119.31245276024056,37.95425077064653],[-119.31244705215614,37.954248805134114],[-119.31244143374832,37.95424668380167],[-119.31243591179907,37.95424440920996],[-119.31243049297402,37.95424198410463],[-119.31242518381428,37.95423941141308],[-119.31241999072857,37.954236694240805],[-119.31241491998553,37.954233835867754],[-119.31240997770608,37.954230839744305],[-119.31240516985612,37.95422770948708],[-119.31240050223919,37.95422444887468],[-119.3123959804896,37.954221061842986],[-119.31239161006563,37.95421755248055],[-119.31238739624277,37.95421392502355],[-119.31238334410762,37.95421018385073],[-119.31237945855146,37.954206333478076],[-119.31237574426461,37.954202378553454],[-119.31237220573057,37.95419832385085],[-119.3123688472207,37.95419417426471],[-119.31236567278904,37.95418993480409],[-119.31236268626748,37.95418561058646],[-119.31235989126104,37.95418120683162],[-119.31235729114354,37.95417672885536],[-119.31235488905355,37.95417218206311],[-119.3123526878907,37.95416757194333],[-119.31235069031187,37.954162904060944],[-119.31234889872843,37.95415818405054],[-119.31234731530289,37.95415341760971],[-119.3123459419466,37.95414861049207],[-119.31234478031735,37.9541437685003],[-119.31234383181724,37.95413889747922],[-119.31234309759121,37.95413400330865],[-119.3123425785255,37.95412909189639],[-119.3123422752466,37.95412416917101],[-119.31234218812061,37.95411924107478],[-119.31234231725263,37.95411431355645],[-119.31234266248674,37.95410939256402],[-119.31234322340616,37.95410448403764],[-119.3123439993338,37.95409959390243],[-119.31234498933293,37.9540947280613],[-119.3123461922085,37.95408989238782],[-119.3123476065085,37.954085092719126],[-119.31234923052564,37.95408033484895],[-119.31235106229956,37.95407562452054],[-119.31235309961905,37.954070967419725],[-119.31235534002481,37.954066369168096],[-119.31235778081245,37.954061835316224],[-119.31236041903561,37.954057371336965],[-119.31236325150968,37.954052982618755],[-119.3123662748155,37.954048674459244],[-119.31236948530365,37.954044452058845],[-119.31237287909867,37.954040320514366],[-119.3123764521039,37.95403628481304],[-119.31238020000632,37.95403234982637],[-119.3123841182818,37.95402852030428],[-119.3123882022006,37.954024800869355],[-119.31239035778187,37.954022837191],[-119.31239242529418,37.954020815010516],[-119.31239440220698,37.95401873680295],[-119.31239628610064,37.954016605112024],[-119.31239807466929,37.954014422546784],[-119.31239976572384,37.954012191778645],[-119.31240135719449,37.95400991553797],[-119.31240284713336,37.95400759661081],[-119.31240423371678,37.95400523783545],[-119.3124055152477,37.95400284209895],[-119.31240669015754,37.954000412333606],[-119.31240775700829,37.953997951513344],[-119.31240871449411,37.953995462650134],[-119.31240956144319,37.95399294879022],[-119.31241029681883,37.95399041301054],[-119.31241091972097,37.95398785841474],[-119.31241142938723,37.953985288129594],[-119.31241182519382,37.953982705300994],[-119.31241210665627,37.95398011309025],[-119.31241227343013,37.95397751467013],[-119.31241232531126,37.953974913221],[-119.31241226223618,37.95397231192694],[-119.31241208428209,37.95396971397183],[-119.31241179166683,37.95396712253547],[-119.31241138474854,37.95396454078968],[-119.31241086402534,37.95396197189444],[-119.3124102301345,37.95395941899395],[-119.31240948385198,37.95395688521287],[-119.31240862609113,37.95395437365246],[-119.31240765790189,37.95395188738678],[-119.31240658046927,37.95394942945888],[-119.31240539511201,37.95394700287724],[-119.31240410328098,37.953944610611856],[-119.31240270655731,37.95394225559077],[-119.31240120665058,37.95393994069642],[-119.31239960539658,37.95393766876219],[-119.31239790475522,37.95393544256881],[-119.31239610680802,37.95393326484106],[-119.31229274392624,37.95380972745142],[-119.31219295481947,37.953684361370634],[-119.31194769494186,37.95337723945543],[-119.31169255952291,37.95307520424162],[-119.31142771683858,37.952778454797574],[-119.31128348887609,37.952625660969176],[-119.31113398307642,37.95247608189628],[-119.31097931369102,37.95232983185509],[-119.31081959891416,37.95218702257782],[-119.31062722513731,37.95201473413844],[-119.31044129458243,37.951838066361155],[-119.31026196613625,37.95165717026096],[-119.31023639771696,37.95162959551962],[-119.31021206821721,37.951601326684745],[-119.31018900765923,37.951572398641304],[-119.31016724449924,37.95154284708775],[-119.3101468055924,37.95151270849197],[-119.31012771615947,37.95148202004621],[-119.31010999975587,37.95145081962118],[-119.3100936782426,37.9514191457194],[-119.31007877175914,37.95138703742756],[-119.31006529869883,37.95135453436845],[-119.31005327568592,37.95132167665189],[-119.31004271755526,37.951288504825285],[-119.30999771748326,37.95112363662831],[-119.30995959861497,37.95095768439541],[-119.30992840225588,37.95079082815329],[-119.30992610126467,37.95077858537433],[-119.30992326897685,37.95076641263522],[-119.30991990875543,37.950754324388335],[-119.3099160245902,37.950742334985875],[-119.30991162109294,37.95073045866251],[-119.3099067034921,37.95071870951876],[-119.30990127762644,37.950707101504065],[-119.30989534993824,37.95069564840036],[-119.3098889274655,37.950684363805614],[-119.3098820178337,37.95067326111775],[-119.30987462924664,37.95066235351872],[-119.30986677047684,37.95065165395877],[-119.309858450855,37.95064117514123],[-119.30984968025894,37.95063092950733],[-119.30984046910199,37.95062092922139],[-119.30983082832037,37.950611186156465],[-119.30982076936054,37.95060171188022],[-119.30981030416534,37.950592517641205],[-119.30979944515992,37.95058361435544],[-119.309788205237,37.9505750125935],[-119.30977659774153,37.95056672256805],[-119.30976463645483,37.95055875412154],[-119.30975233557825,37.95055111671466],[-119.30973970971634,37.950543819415074],[-119.30972677385951,37.950536870886616],[-119.30971354336609,37.95053027937904],[-119.30970003394432,37.95052405271826],[-119.30968626163356,37.95051819829694],[-119.30967224278524,37.95051272306585],[-119.30965799404353,37.950507633525554],[-119.30964353232554,37.95050293571871],[-119.30962753441322,37.95049774314469],[-119.30961176783225,37.950492124405244],[-119.30959625068205,37.95048608595047],[-119.30958100077562,37.95047963471231],[-119.30956603561921,37.95047277809652],[-119.30955137239215,37.950465523974195],[-119.30953702792719,37.950457880672865],[-119.30952301869108,37.95044985696662],[-119.30950936076576,37.950441462066465],[-119.30949606982986,37.95043270560935],[-119.30948316114075,37.95042359764736],[-119.30947064951684,37.950414148636014],[-119.30945854932088,37.95040436942242],[-119.30944983716937,37.95039682724389],[-119.3094414612482,37.95038904990326],[-119.3094334316737,37.95038104679399],[-119.30942575814386,37.950372827582214],[-119.30941844992662,37.95036440219511],[-119.30941151584877,37.950355780808835],[-119.30940496428506,37.95034697383628],[-119.3093988031484,37.95033799191447],[-119.30939303987996,37.95032884589174],[-119.30938768144048,37.95031954681464],[-119.30938273430174,37.95031010591453],[-119.30937820443867,37.9503005345941],[-119.30937409732228,37.95029084441355],[-119.30937041791293,37.95028104707663],[-119.30936717065447,37.95027115441647],[-119.30936435946867,37.95026117838138],[-119.30936198775075,37.95025113102037],[-119.30936005836503,37.950241024468525],[-119.30935857364163,37.95023087093249],[-119.30935753537365,37.95022068267561],[-119.30935694481484,37.95021047200315],[-119.30935680267835,37.9502002512475],[-119.30935710913563,37.95019003275318],[-119.3093578638164,37.95017982886194],[-119.30935906580892,37.950169651897994],[-119.3093607136613,37.950159514152915],[-119.30936280538309,37.95014942787097],[-119.30936533844772,37.950139405234225],[-119.30936830979567,37.950129458347945],[-119.30937171583797,37.95011959922578],[-119.3093755524607,37.9501098397755],[-119.30937981502983,37.95010019178437],[-119.30938449839698,37.95009066690516],[-119.30938959690545,37.950081276641825],[-119.30939510439718,37.950072032335775],[-119.30940101422021,37.95006294515217],[-119.30940731923658,37.95005402606633],[-119.30941401183104,37.9500452858506],[-119.30942108392027,37.95003673506126],[-119.30942852696258,37.95002838402575],[-119.3094363319683,37.95002024283037],[-119.3094444895106,37.95001232130785],[-119.30945298973677,37.9500046290257],[-119.30946182238037,37.949997175274476],[-119.30947097677335,37.94998996905667],[-119.30948044185915,37.94998301907583],[-119.309490206206,37.94997633372599],[-119.30950025802055,37.94996992108156],[-119.30951058516246,37.94996378888765],[-119.3095211751587,37.949957944550526],[-119.30953201521885,37.94995239512888],[-119.30954309225046,37.94994714732521],[-119.3095480148877,37.9499448152089],[-119.30955283222622,37.94994234906767],[-119.30955753844901,37.94993975187939],[-119.30956212787322,37.949937026780276],[-119.30956659495695,37.9499341770609],[-119.30957093430617,37.94993120616245],[-119.309575140681,37.94992811767228],[-119.30957920900217,37.949924915319855],[-119.30958313435706,37.94992160297206],[-119.30958691200578,37.949918184628665],[-119.30959053738674,37.9499146644174],[-119.30959400612221,37.949911046588994],[-119.30959731402366,37.94990733551204],[-119.30960045709674,37.94990353566776],[-119.3096034315461,37.94989965164458],[-119.30960623378013,37.949895688132514],[-119.30960886041504,37.94989164991762],[-119.30961130827916,37.94988754187607],[-119.30961357441666,37.94988336896849],[-119.30961565609117,37.94987913623372],[-119.30961755078904,37.94987484878289],[-119.30961925622243,37.949870511793186],[-119.30962077033203,37.94986613050161],[-119.30962209128951,37.94986171019866],[-119.30962321749989,37.94985725622196],[-119.30962414760326,37.94985277394977],[-119.30962488047649,37.94984826879451],[-119.30962541523472,37.94984374619628],[-119.3096257512322,37.94983921161619],[-119.30962588806328,37.949834670529825],[-119.30962582556279,37.94983012842065],[-119.3096255638062,37.94982559077334],[-119.3096251031096,37.949821063067205],[-119.30962444402937,37.949816550769505],[-119.3096235873614,37.949812059328956],[-119.30962253414013,37.94980759416905],[-119.3096212856374,37.94980316068154],[-119.30961984336086,37.94979876421993],[-119.3096182090521,37.94979441009306],[-119.30961638468459,37.94979010355859],[-119.30948580623925,37.94950885408692],[-119.30948257480213,37.949502467719995],[-119.30947906301554,37.94949617484381],[-119.30947527518445,37.94948998317246],[-119.30947121595224,37.949483900295924],[-119.30946689029487,37.94947793367084],[-119.30946230351506,37.94947209061135],[-119.30945746123547,37.94946637828013],[-119.30945236939202,37.94946080367954],[-119.30944703422657,37.94945537364321],[-119.30944146227925,37.94945009482743],[-119.30943566038039,37.949444973703216],[-119.30942963564222,37.94944001654824],[-119.30942339545017,37.94943522943915],[-119.30941694745371,37.9494306182442],[-119.30941029955714,37.94942618861598],[-119.3094034599097,37.949421945984454],[-119.30939643689571,37.94941789555042],[-119.30938923912431,37.949414042279045],[-119.30938187541878,37.949410390893846],[-119.30937435480588,37.949406945870805],[-119.30936668650466,37.949403711432936],[-119.30935887991525,37.94940069154517],[-119.3093553008053,37.94939930816035],[-119.3093517838184,37.94939782823724],[-119.30934833310577,37.9493962535226],[-119.3093449527403,37.94939458587511],[-119.30934164671186,37.94939282726309],[-119.30933841892258,37.94939097976225],[-119.3093352731823,37.949389045553225],[-119.30933221320389,37.94938702691902],[-119.30932924259915,37.94938492624219],[-119.3093263648743,37.949382746002236],[-119.3093235834259,37.94938048877248],[-119.30932090153692,37.9493781572172],[-119.30931832237286,37.94937575408835],[-119.30931584897787,37.94937328222233],[-119.3093134842714,37.949370744536736],[-119.30931123104443,37.949368144026835],[-119.30930909195652,37.949365483762044],[-119.30930706953244,37.94936276688226],[-119.30930516615923,37.94935999659431],[-119.30930338408348,37.94935717616792],[-119.30930172540856,37.94935430893212],[-119.30926060837598,37.94927615829378],[-119.30922299591545,37.94919690850063],[-119.30918893476829,37.949116658060824],[-119.3091523282627,37.94901928576824],[-119.3091199882717,37.94892097089293],[-119.30909195332494,37.94882183061824],[-119.30906825682034,37.948721983110836],[-119.30904892698437,37.9486215473799],[-119.30904759554679,37.948612637161105],[-119.30904662923092,37.94860369747026],[-119.3090460290505,37.94859473768681],[-119.30904579563511,37.948585767211306],[-119.30904592922948,37.94857679545538],[-119.30904642969335,37.9485678318322],[-119.30904729650149,37.94855888574622],[-119.30904852874433,37.94854996658359],[-119.30905012512883,37.9485410837022],[-119.30905208398005,37.9485322464218],[-119.30905440324258,37.94852346401441],[-119.30905708048302,37.94851474569437],[-119.30907122803585,37.94846852778553],[-119.30908339199244,37.94842195717286],[-119.30909355841757,37.948375087223035],[-119.309101715665,37.94832797164557],[-119.30910785439099,37.948280664431415],[-119.30911196756489,37.94823321979098],[-119.30911405047725,37.94818569209208],[-119.3091141007451,37.948138135797585],[-119.30911211831476,37.948090605403024],[-119.30910634505243,37.94802318961911],[-119.30909755086492,37.94795597881135],[-119.30908574686366,37.9478890578377],[-119.30907094796004,37.94782251118992],[-119.30905317284659,37.94775642288699],[-119.30904486119495,37.94772561283178],[-119.30903788894236,37.9476945951534],[-119.309032264292,37.947663406353186],[-119.3090279938612,37.94763208313383],[-119.30902508267368,37.947600662356145],[-119.30902353415351,37.94756918099569],[-119.30902335012125,37.9475376760993],[-119.30902453079175,37.94750618474142],[-119.30902707477382,37.94747474398058],[-119.30903097907208,37.94744339081565],[-119.30903623909025,37.94741216214241],[-119.30904284863675,37.94738109471011],[-119.30905079993201,37.947350225078196],[-119.30906008361737,37.947319589573254],[-119.30907068876644,37.94728922424639],[-119.30908260289772,37.9472591648307],[-119.30910916773497,37.9471920315915],[-119.30913272896801,37.94712419883073],[-119.30915325734493,37.9470557507885],[-119.30917072738048,37.946986772468826],[-119.3091851173876,37.946917349534],[-119.30919640950447,37.94684756819825],[-119.30919698394946,37.94684266224514],[-119.30919734286874,37.94683774345231],[-119.30919748582923,37.94683281775544],[-119.30919741265846,37.94682789109852],[-119.30919712344478,37.94682296942668],[-119.30919661853724,37.946818058679064],[-119.30919589854513,37.94681316478158],[-119.30919496433737,37.946808293639904],[-119.30919381704132,37.94680345113211],[-119.30919245804147,37.946798643101864],[-119.30919088897787,37.9467938753511],[-119.30918911174396,37.94678915363321],[-119.30918712848441,37.946784483646056],[-119.30918494159252,37.946779871025],[-119.3091825537073,37.94677532133625],[-119.30917996771035,37.946770840070016],[-119.30917718672224,37.946766432634],[-119.30917421409896,37.94676210434674],[-119.30917105342763,37.94675786043132],[-119.30916770852242,37.94675370600896],[-119.30916418341967,37.94674964609293],[-119.3091604823733,37.94674568558245],[-119.30915660984944,37.94674182925675],[-119.30915257052122,37.946738081769375],[-119.30914836926303,37.94673444764249],[-119.30914401114467,37.94673093126152],[-119.30913950142516,37.94672753686974],[-119.3091348455466,37.946724268563266],[-119.30913004912726,37.94672113028606],[-119.3091251179552,37.94671812582513],[-119.30912005798099,37.94671525880606],[-119.30911487531063,37.946712532688515],[-119.30910957619818,37.94670995076222],[-119.30910416703823,37.946707516142794],[-119.30909865435817,37.94670523176819],[-119.30896975113578,37.94665191308529],[-119.30884315743856,37.94659523066683],[-119.30883878859214,37.94659311619848],[-119.30883451512928,37.94659088283633],[-119.30883034220751,37.94658853327579],[-119.30882627486295,37.946586070352424],[-119.30882231800433,37.946583497038645],[-119.30881847640705,37.94658081644014],[-119.30881475470741,37.946578031791994],[-119.30881115739693,37.94657514645492],[-119.30880768881715,37.94657216391114],[-119.3088043531541,37.94656908776016],[-119.30880115443347,37.9465659217145],[-119.30879809651567,37.94656266959517],[-119.3087951830912,37.946559335326995],[-119.30879241767613,37.94655592293398],[-119.30878980360794,37.946552436534496],[-119.3087873440414,37.9465488803361],[-119.30878504194489,37.94654525863065],[-119.3087829000967,37.94654157578904],[-119.30878092108168,37.94653783625599],[-119.30877910728827,37.94653404454459],[-119.3087774609054,37.946530205230935],[-119.30877598392003,37.946526322948536],[-119.30877467811463,37.94652240238277],[-119.30877354506516,37.94651844826525],[-119.30877258613894,37.94651446536805],[-119.3087718024933,37.94651045849796],[-119.30877119507393,37.94650643249076],[-119.3087707646139,37.946502392205225],[-119.30877051163266,37.94649834251749],[-119.30877043643551,37.94649428831492],[-119.30877053911318,37.94649023449042],[-119.30877081954169,37.946486185936394],[-119.30877127738262,37.94648214753885],[-119.30877191208337,37.94647812417159],[-119.3087727228779,37.94647412069027],[-119.3087737087877,37.94647014192654],[-119.30877541452739,37.946463267681125],[-119.30877682226641,37.94645635124589],[-119.30877793035644,37.94644940071939],[-119.3087787375001,37.94644242424011],[-119.30877924275242,37.94643542997693],[-119.30877944552184,37.94642842611955],[-119.308779345571,37.946421420868894],[-119.30877894301707,37.946414422427516],[-119.30877823833144,37.94640743899003],[-119.30877723233935,37.94640047873338],[-119.30877592621881,37.94639354980749],[-119.30877432149927,37.94638666032554],[-119.30877242005981,37.94637981835447],[-119.3087702241269,37.946373031905686],[-119.30876773627189,37.94636630892552],[-119.3087649594079,37.94635965728599],[-119.30876189678649,37.946353084775595],[-119.30875855199379,37.94634659909016],[-119.30875492894636,37.94634020782386],[-119.30875103188652,37.94633391846029],[-119.30874686537742,37.94632773836377],[-119.3087424342978,37.94632167477062],[-119.30873774383605,37.946315734780775],[-119.3087327994844,37.94630992534943],[-119.30872760703231,37.94630425327889],[-119.30872217255968,37.94629872521068],[-119.30871650242987,37.94629334761767],[-119.30871060328217,37.94628812679646],[-119.30870448202393,37.94628306886027],[-119.30869814582266,37.94627817973138],[-119.30869160209753,37.946273465134595],[-119.30868485851066,37.946268930590236],[-119.30867792295824,37.94626458140784],[-119.3085601374875,37.946191114550125],[-119.30844509247373,37.946114973312774],[-119.30833288471082,37.94603622176333],[-119.30822360860446,37.9459549261655],[-119.30770823042832,37.9455639005292],[-119.30770530655568,37.945561777539474],[-119.30770229199616,37.94555973563722],[-119.30769919033398,37.945557777250116],[-119.3076960052567,37.94555590470652],[-119.30769274055116,37.945554120232735],[-119.30768940009882,37.94555242595038],[-119.30768598787124,37.94555082387378],[-119.30768250792528,37.94554931590772],[-119.30767896439833,37.94554790384504],[-119.30767536150337,37.94554658936456],[-119.30767170352398,37.9455453740291],[-119.30766799480915,37.94554425928361],[-119.30766423976834,37.94554324645341],[-119.30766044286592,37.9455423367427],[-119.30765660861614,37.94554153123305],[-119.30765274157761,37.94554083088214],[-119.30764884634796,37.94554023652261],[-119.30764492755827,37.94553974886114],[-119.30764098986769,37.94553936847752],[-119.30763703795783,37.945539095823975],[-119.30763307652718,37.945538931224675],[-119.3076291102856,37.94553887487534],[-119.3076251439486,37.945538926842914],[-119.30762118223183,37.94553908706567],[-119.3076172298455,37.94553935535307],[-119.30761329148866,37.94553973138616],[-119.30760937184368,37.945540214717866],[-119.30760547557077,37.94554080477356],[-119.30760160730222,37.94554150085168],[-119.30759777163715,37.94554230212466],[-119.30759397313582,37.945543207639865],[-119.30759021631438,37.94554421632068],[-119.30758650563938,37.945545326967896],[-119.30758284552252,37.945546538261],[-119.3075792403154,37.945547848759894],[-119.30757569430433,37.94554925690649],[-119.30757221170522,37.94555076102663],[-119.30756879665866,37.945552359332005],[-119.30756545322481,37.94555404992236],[-119.3075621853788,37.945555830787725],[-119.30755899700586,37.94555769981077],[-119.30755589189665,37.94555965476942],[-119.30755287374298,37.94556169333934],[-119.30754994613315,37.94556381309685],[-119.30754711254792,37.945566011521706],[-119.30754437635618,37.945568286000174],[-119.30754174081106,37.945570633828055],[-119.30753920904603,37.94557305221401],[-119.30753678407116,37.9455755382827],[-119.30753446876959,37.94557808907843],[-119.30753226589404,37.945580701568474],[-119.30753017806357,37.945583372646816],[-119.30752820776043,37.945586099137714],[-119.30752635732722,37.9455888777996],[-119.30752462896393,37.945591705328866],[-119.30752302472551,37.94559457836379],[-119.30752154651927,37.94559749348854],[-119.3075201961027,37.94560044723727],[-119.30751897508134,37.94560343609821],[-119.30751788490694,37.9456064565178],[-119.30751692687562,37.94560950490503],[-119.30751610212644,37.94561257763559],[-119.30751541163998,37.94561567105621],[-119.30751489927947,37.94561796486121],[-119.30751428667368,37.94562024319856],[-119.30751357456101,37.9456225033218],[-119.30751276379998,37.94562474250639],[-119.30751185536784,37.94562695805302],[-119.30751085035972,37.945629147290944],[-119.30750974998715,37.94563130758108],[-119.30750855557652,37.94563343631925],[-119.30750726856775,37.94563553093928],[-119.3075058905122,37.94563758891622],[-119.30750442307111,37.94563960776918],[-119.30750286801346,37.945641585064486],[-119.30750122721379,37.94564351841858],[-119.30749950265007,37.94564540550083],[-119.30749769640121,37.945647244036394],[-119.30749581064458,37.945649031809005],[-119.30749384765342,37.945650766663476],[-119.30749180979404,37.94565244650854],[-119.30748969952309,37.94565406931914],[-119.30748751938435,37.94565563313907],[-119.307485272006,37.94565713608313],[-119.3074829600972,37.945658576339596],[-119.30748058644484,37.945659952172235],[-119.30747815391035,37.94566126192253],[-119.30747566542608,37.945662504011615],[-119.30747312399183,37.94566367694215],[-119.30747053267123,37.94566477930023],[-119.3074678945881,37.94566580975697],[-119.30746521292252,37.94566676707018],[-119.30746249090724,37.945667650085845],[-119.30745973182353,37.94566845773949],[-119.30745693899745,37.945669189057554],[-119.30745411579566,37.945669843158385],[-119.30745126562148,37.94567041925352],[-119.30744839191071,37.945670916648496],[-119.30744549812759,37.945671334743686],[-119.30744258776045,37.945671673035115],[-119.30743966431771,37.945671931114944],[-119.30743673132348,37.9456721086721],[-119.30743379231349,37.945672205492535],[-119.30743085083057,37.945672221459496],[-119.30742791042063,37.9456721565538],[-119.30742497462832,37.94567201085363],[-119.30742204699264,37.945671784534646],[-119.30741913104275,37.94567147786968],[-119.30741623029384,37.94567109122841],[-119.3074133482426,37.9456706250769],[-119.30741048836337,37.94567007997713],[-119.30740765410363,37.94566945658616],[-119.30740484888001,37.94566875565549],[-119.30740207607415,37.94566797803007],[-119.3073993390286,37.94566712464732],[-119.30739664104283,37.94566619653597],[-119.30739398536917,37.945665194814836],[-119.307391375209,37.945664120691475],[-119.30738881370874,37.945662975460706],[-119.3073863039563,37.9456617605031],[-119.30738384897708,37.94566047728324],[-119.30738145173052,37.94565912734803],[-119.30737911510644,37.94565771232477],[-119.30737684192157,37.945656233919266],[-119.30737463491617,37.94565469391368],[-119.30737249675079,37.94565309416444],[-119.30737043000285,37.94565143660004],[-119.30736843716379,37.94564972321863],[-119.30736652063597,37.94564795608563],[-119.30736468272964,37.94564613733128],[-119.3073629256604,37.945644269148055],[-119.30736125154637,37.945642353788],[-119.30735966240557,37.94564039356006],[-119.30734800980983,37.94562600683637],[-119.30733574824572,37.94561194108818],[-119.30732289179912,37.9455982124736],[-119.30730945523918,37.945584836763366],[-119.30729545400153,37.94557182932285],[-119.3072809041704,37.94555920509441],[-119.30726582246015,37.94554697858012],[-119.30725022619622,37.94553516382517],[-119.30723413329497,37.945523774401785],[-119.3072175622434,37.94551282339354],[-119.30720053207764,37.94550232338038],[-119.30718306236125,37.945492286424226],[-119.30716517316274,37.945482724054955],[-119.30714688503238,37.94547364725734],[-119.30712821897878,37.945465066458304],[-119.30710919644457,37.945456991515044],[-119.30708983928194,37.94544943170358],[-119.30706271253938,37.94543883459645],[-119.3070360580144,37.94542751095381],[-119.30700990672501,37.94541547395315],[-119.30698428910358,37.94540273760203],[-119.30695923496135,37.945389316721915],[-119.30693477345382,37.94537522693083],[-119.30691093304674,37.94536048462524],[-119.30688774148311,37.94534510696087],[-119.30686522575074,37.94532911183288],[-119.30672723815529,37.94523088352767],[-119.3065853447978,37.945136209128705],[-119.30643969157765,37.94504518597382],[-119.30629042825825,37.94495790764644],[-119.3062876360873,37.94495638593718],[-119.30628477938615,37.94495494129174],[-119.30628186154497,37.94495357542456],[-119.30627888602656,37.944952289956554],[-119.30627585636206,37.94495108641329],[-119.30627277614703,37.94494996622306],[-119.30626964903685,37.944948930715256],[-119.30626647874264,37.94494798111878],[-119.30626326902674,37.94494711856051],[-119.30626002369834,37.944946344064185],[-119.30625674660877,37.944945658548846],[-119.30625344164714,37.94494506282806],[-119.30625011273564,37.94494455760884],[-119.30624676382486,37.94494414349072],[-119.3062433988891,37.94494382096514],[-119.30624002192171,37.94494359041491],[-119.30623663693028,37.94494345211357],[-119.30623324793203,37.9449434062253],[-119.3062298589488,37.944943452804516],[-119.30622647400246,37.94494359179597],[-119.30622309711013,37.94494382303472],[-119.30621973227936,37.94494414624633],[-119.3062163835033,37.94494456104724],[-119.30621305475614,37.944945066945145],[-119.30620974998834,37.94494566333971],[-119.30620647312172,37.94494634952315],[-119.30620322804522,37.944947124681136],[-119.30620001860986,37.94494798789375],[-119.30619684862448,37.94494893813658],[-119.30619372185105,37.944949974281904],[-119.30619064200029,37.94495109510011],[-119.30618761272721,37.944952299261],[-119.3061846376268,37.944953585335604],[-119.30618172022979,37.94495495179765],[-119.30617886399838,37.94495639702548],[-119.30617607232223,37.944957919303974],[-119.30617334851436,37.94495951682653],[-119.30617069580728,37.944961187697345],[-119.30616811734907,37.94496292993348],[-119.30616561619976,37.94496474146731],[-119.30616319532756,37.94496662014904],[-119.30616085760546,37.94496856374909],[-119.30615860580781,37.94497056996094],[-119.30615644260688,37.94497263640367],[-119.3061543705699,37.944974760624966],[-119.30615239215587,37.94497694010385],[-119.30615050971267,37.94497917225386],[-119.30614872547432,37.94498145442598],[-119.30614704155826,37.94498378391184],[-119.30614545996289,37.94498615794689],[-119.30614398256522,37.944988573713765],[-119.30614261111855,37.94499102834552],[-119.30614134725043,37.94499351892913],[-119.3061401924608,37.94499604250888],[-119.30613914812012,37.94499859608991],[-119.30613821546777,37.94500117664175],[-119.30613739561058,37.94500378110191],[-119.30613668952155,37.94500640637954],[-119.30613609803864,37.94500904935908],[-119.3061356218638,37.94501170690396],[-119.306134592513,37.94501744151089],[-119.30613331077157,37.94502314413495],[-119.30613177820474,37.94502880781224],[-119.30612999668398,37.945034425626375],[-119.30612796838477,37.94503999071698],[-119.30612569578398,37.94504549628812],[-119.30612318165684,37.94505093561645],[-119.30612042907347,37.945056302059584],[-119.30611744139524,37.94506158906412],[-119.30611422227061,37.94506679017368],[-119.30611077563061,37.94507189903673],[-119.30610710568425,37.94507690941445],[-119.30610321691312,37.94508181518827],[-119.30609911406604,37.94508661036729],[-119.30609480215332,37.94509128909576],[-119.30609028644062,37.9450958456601],[-119.30608557244234,37.94510027449588],[-119.3060806659151,37.94510457019471],[-119.30607557285069,37.94510872751074],[-119.3060702994686,37.94511274136712],[-119.3060648522086,37.94511660686218],[-119.30605923772275,37.94512031927549],[-119.30605346286737,37.94512387407344],[-119.30604753469457,37.945127266914994],[-119.3060414604438,37.94513049365689],[-119.30603524753273,37.94513355035866],[-119.3060289035485,37.94513643328751],[-119.3060224362383,37.94513913892283],[-119.30601585349984,37.945141663960555],[-119.30600916337191,37.945144005317175],[-119.3060023740244,37.94514616013339],[-119.30599549374828,37.94514812577782],[-119.30598853094571,37.94514989985004],[-119.30598149411955,37.94515148018356],[-119.30597439186306,37.945152864848524],[-119.3059672328494,37.94515405215399],[-119.30596002582105,37.94515504065004],[-119.30595277957917,37.94515582912951],[-119.30594550297275,37.945156416629544],[-119.30593820488788,37.94515680243272],[-119.3059308942369,37.94515698606782],[-119.30592357994742,37.94515696731067],[-119.30591627095163,37.94515674618416],[-119.30590897617512,37.94515632295831],[-119.3059017045262,37.94515569814996],[-119.30589446488489,37.94515487252211],[-119.30588726609216,37.94515384708303],[-119.30588011693905,37.945152623084944],[-119.30587302615602,37.94515120202262],[-119.30586600240223,37.945149585631405],[-119.305859054255,37.945147775885204],[-119.30585219019925,37.945145774994096],[-119.30584541861732,37.94514358540148],[-119.30583874777855,37.94514120978133],[-119.30583218582925,37.94513865103467],[-119.30582574078278,37.94513591228621],[-119.3058112067954,37.945129726049565],[-119.30579641877804,37.94512392964219],[-119.30578139339781,37.94511852959704],[-119.30576614758945,37.94511353200033],[-119.30575069853609,37.94510894248469],[-119.30573506364986,37.94510476622284],[-119.30571926055244,37.94510100792171],[-119.30570330705498,37.945097671817166],[-119.30568722113821,37.94509476166921],[-119.30567102093208,37.94509228075782],[-119.30565472469532,37.9450902318791],[-119.30563835079487,37.94508861734229],[-119.30562191768526,37.945087438967114],[-119.30560544388774,37.94508669808165],[-119.30558894796935,37.94508639552094],[-119.30557244852216,37.945086531625975],[-119.30555596414214,37.94508710624337],[-119.30553951340826,37.9450881187255],[-119.3055231148617,37.945089567931205],[-119.3055067869847,37.94509145222717],[-119.30549054817986,37.94509376948962],[-119.30547088421767,37.94509660206596],[-119.30545112100005,37.94509896201921],[-119.3054312766367,37.94510084718689],[-119.30541136931174,37.945102255841526],[-119.30539141726702,37.94510318669231],[-119.30537143878533,37.94510363888629],[-119.30535495983435,37.945103590252394],[-119.30533849270061,37.94510309374412],[-119.30532205678902,37.94510214994655],[-119.30530567146765,37.94510075997186],[-119.30528935604491,37.94509892545797],[-119.30527312974688,37.9450966485667],[-119.30525701169461,37.94509393198111],[-119.30524102088155,37.94509077890244],[-119.30522517615127,37.94508719304626],[-119.30520949617512,37.945083178638136],[-119.30519399943036,37.94507874040864],[-119.30517870417826,37.94507388358779],[-119.30516362844268,37.94506861389882],[-119.3051487899888,37.945062937551526],[-119.30513420630213,37.945056861234924],[-119.30511989456797,37.94505039210929],[-119.30510587165115,37.94504353779784],[-119.30509215407619,37.945036306377645],[-119.30507875800767,37.945028706370195],[-119.30507608782156,37.94502719229594],[-119.3050733526702,37.945025752781014],[-119.30507055587191,37.94502438957183],[-119.30506770081978,37.945023104322274],[-119.30506479097765,37.94502189859168],[-119.3050618298758,37.9450207738428],[-119.30505882110664,37.945019731440226],[-119.30505576832051,37.945018772648616],[-119.30505267522108,37.94501789863121],[-119.30504954556098,37.94501711044834],[-119.30504638313714,37.94501640905627],[-119.30504319178625,37.945015795305935],[-119.30503997538018,37.945015269941955],[-119.30503673782106,37.9450148336017],[-119.30503348303675,37.94501448681455],[-119.30503021497606,37.94501423000123],[-119.30502693760384,37.9450140634733],[-119.30502365489623,37.94501398743281],[-119.30502037083586,37.94501400197203],[-119.30501708940704,37.94501410707326],[-119.30501381459085,37.94501430260907],[-119.30501055036034,37.94501458834218],[-119.30500730067571,37.945014963925935],[-119.30500406947955,37.94501542890469],[-119.305000860692,37.945015982714324],[-119.30499767820604,37.94501662468293],[-119.30499452588269,37.94501735403168],[-119.30499140754641,37.94501816987569],[-119.30498832698039,37.94501907122518],[-119.30498528792208,37.94502005698664],[-119.30498229405848,37.945021125964075],[-119.3049793490218,37.94502227686064],[-119.30497645638503,37.94502350828],[-119.30497361965755,37.94502481872822],[-119.30497084228097,37.94502620661538],[-119.3049681276248,37.94502767025774],[-119.30496547898252,37.94502920787955],[-119.30496289956757,37.94503081761534],[-119.30496039250926,37.94503249751215],[-119.30495796084928,37.9450342455319],[-119.3049556075377,37.94503605955388],[-119.30495333542967,37.945037937377265],[-119.30495114728171,37.94503987672384],[-119.30494904574854,37.9450418752408],[-119.30494703337982,37.945043930503424],[-119.30494511261695,37.94504604001833],[-119.30494328579026,37.94504820122615],[-119.3049415551161,37.94505041150489],[-119.30493992269417,37.945052668172984],[-119.30493839050496,37.94505496849262],[-119.3049352866393,37.94505963246201],[-119.30493198368625,37.94506420987562],[-119.30492848548982,37.94506869540604],[-119.30492479612137,37.94507308383288],[-119.3049209198747,37.94507737004862],[-119.30491686126113,37.94508154906486],[-119.30491262500422,37.94508561601781],[-119.30490821603426,37.94508956617418],[-119.30490363948259,37.945093394936656],[-119.30489890067557,37.945097097849136],[-119.3048940051284,37.94510067060199],[-119.30488895853873,37.94510410903708],[-119.30488376677995,37.94510740915265],[-119.3048784358945,37.94511056710786],[-119.30487297208663,37.94511357922733],[-119.30486738171535,37.94511644200542],[-119.304861671287,37.94511915211032],[-119.30485584744763,37.94512170638787],[-119.30484991697521,37.945124101865304],[-119.30484388677195,37.94512633575464],[-119.30483776385603,37.945128405455975],[-119.3048315553536,37.94513030856052],[-119.30482526849035,37.945132042853345],[-119.30481891058324,37.94513360631598],[-119.30481248903189,37.94513499712881],[-119.30480601130998,37.945136213673166],[-119.30479948495658,37.94513725453316],[-119.30479291756735,37.94513811849738],[-119.30478631678574,37.94513880456033],[-119.30477969029403,37.945139311923505],[-119.30477304580441,37.945139639996434],[-119.3047663910501,37.945139788397306],[-119.30475973377612,37.945139756953374],[-119.30475308173061,37.945139545701245],[-119.30474644265547,37.94513915488678],[-119.30473982427759,37.945138584964845],[-119.3047332342997,37.94513783659872],[-119.30472668039155,37.94513691065942],[-119.30472017018089,37.94513580822455],[-119.30469985056082,37.945132372307285],[-119.30467939260969,37.94512949688035],[-119.30465882097297,37.94512718540774],[-119.304638160433,37.94512544067404],[-119.30461743587924,37.945124264781136],[-119.30459667227824,37.94512365914556],[-119.3045758946436,37.94512362449696],[-119.3045551280058,37.945124160877064],[-119.30453439738217,37.94512526763967],[-119.3045137277465,37.94512694345152],[-119.30449314399925,37.94512918629377],[-119.30447267093733,37.9451319934645],[-119.30445233322438,37.94513536158194],[-119.30443215536097,37.94513928658859],[-119.3044121616551,37.94514376375605],[-119.30439577046626,37.945147918126274],[-119.30437956497067,37.94515250666852],[-119.30436356350114,37.94515752419191],[-119.30434778415967,37.945162965020266],[-119.30433224479698,37.94516882299859],[-119.30431696299232,37.945175091499884],[-119.30430195603361,37.945181763432785],[-119.30428724089782,37.94518883124959],[-119.30427283423184,37.94519628695462],[-119.3042587523336,37.945204122113495],[-119.30424501113362,37.94521232786252],[-119.30423162617707,37.945220894918776],[-119.30421861260608,37.94522981359059],[-119.30420598514266,37.945239073788514],[-119.30419375807205,37.94524866503674],[-119.30418194522657,37.945258576484974],[-119.30417055996995,37.94526879692064],[-119.30415961518219,37.945279314781615],[-119.30414912324503,37.94529011816935],[-119.30413909602794,37.94530119486223],[-119.30412954487467,37.945312532329446],[-119.30412076594249,37.945322949964066],[-119.30411154594235,37.94533312584972],[-119.30410189548023,37.94534304828071],[-119.30409182565731,37.945352705842765],[-119.30408134805725,37.945362087426375],[-119.30407047473271,37.945371182239484],[-119.30405921819165,37.9453799798199],[-119.30404759138288,37.945388470047355],[-119.30403560768109,37.945396643155156],[-119.30402328087162,37.945404489741385],[-119.30401062513447,37.94541200077973],[-119.30399765502807,37.94541916762992],[-119.30398438547245,37.94542598204754],[-119.30397083173213,37.945432436193656],[-119.3039570093986,37.945438522643755],[-119.30394293437232,37.94544423439627],[-119.30392862284438,37.9454495648807],[-119.30391409127805,37.945454507965145],[-119.30389935638964,37.9454590579633],[-119.30388443512939,37.9454632096411],[-119.30386934466199,37.945466958222646],[-119.30385410234675,37.945470299395744],[-119.30375802963128,37.94548862532332],[-119.30366123719692,37.94550439853826],[-119.30356383317368,37.945517601419745],[-119.30346592637494,37.945528219218374],[-119.30336762617591,37.94553624007261],[-119.30326904239146,37.94554165502208],[-119.30317028515329,37.94554445801751],[-119.30307146478697,37.945544645927576],[-119.3029726916886,37.94554221854239],[-119.3028740762014,37.945537178573645],[-119.3027757284926,37.945529531651694],[-119.3026777584301,37.945519286319154],[-119.30262591350564,37.94551247327687],[-119.30257437936771,37.94550431451332],[-119.30252321170246,37.94549481884466],[-119.30247246579995,37.94548399653161],[-119.30242219649453,37.945471859268416],[-119.30237245810534,37.94545842017021],[-119.30232330437786,37.94544369375887],[-119.30227478842566,37.945427695947245],[-119.30222696267307,37.94541044402206],[-119.30217987879846,37.94539195662513],[-119.30213358767851,37.94537225373328],[-119.3020881393331,37.94535135663678],[-119.30204358287139,37.94532928791624],[-119.30199996643859,37.94530607141829],[-119.30195733716407,37.94528173222978],[-119.30192554529313,37.94526361595686],[-119.30189297847147,37.94524638453307],[-119.30185967595321,37.94523005872789],[-119.3018256778791,37.9452146582192],[-119.30179102522825,37.945200201569584],[-119.30175575976864,37.94518670620398],[-119.30171992400679,37.94517418838867],[-119.30168356113656,37.945162663211626],[-119.30164671498711,37.945152144564396],[-119.30160942997004,37.945142645125294],[-119.30157175102583,37.94513417634422],[-119.30153372356976,37.94512674842874],[-119.30149539343712,37.94512037033187],[-119.30145680682796,37.945115049741254],[-119.30141801025151,37.9451107930699],[-119.30137905046995,37.94510760544841],[-119.3013399744422,37.94510549071894],[-119.30130082926728,37.945104451430375],[-119.30126166212757,37.9451044888354],[-119.30122252023189,37.94510560288892],[-119.30118345075861,37.945107792248194],[-119.30104727044203,37.94511923061951],[-119.30091168532452,37.94513447132282],[-119.30077686463906,37.94515349533517],[-119.30074549554361,37.94515880913627],[-119.30071436852803,37.9451649511397],[-119.30068351844959,37.94517191446745],[-119.30065297985546,37.945179691321705],[-119.30062278694406,37.94518827299364],[-119.30059297352665,37.945197649873144],[-119.30056357298965,37.94520781145964],[-119.30053461825709,37.94521874637378],[-119.30050614175384,37.945230442370196],[-119.30047817536929,37.94524288635123],[-119.30045075042158,37.94525606438161],[-119.30042389762261,37.94526996170401],[-119.30039764704362,37.9452845627556],[-119.30037202808148,37.94529985118553],[-119.30034706942584,37.94531580987313],[-119.3003227990269,37.94533242094715],[-119.30029924406423,37.94534966580574],[-119.30027643091628,37.94536752513733],[-119.30025438513081,37.945385978942205],[-119.30023313139631,37.94540500655491],[-119.30021269351435,37.94542458666739],[-119.30020272959302,37.945434118258596],[-119.30019235149128,37.945443368539074],[-119.30018157186471,37.94545232622839],[-119.30017040385859,37.945460980402984],[-119.30015886109182,37.9454693205093],[-119.30014695764031,37.94547733637684],[-119.3001347080199,37.94548501823053],[-119.3001221271685,37.94549235670257],[-119.30010923042799,37.94549934284389],[-119.30009603352548,37.94550596813511],[-119.30008255255416,37.94551222449686],[-119.3000688039536,37.9455181042997],[-119.30005480448978,37.9455236003734],[-119.30004057123458,37.94552870601562],[-119.30002612154506,37.94553341500018],[-119.30001147304215,37.94553772158462],[-119.29999664358931,37.94554162051714],[-119.29998165127057,37.94554510704313],[-119.29996651436869,37.94554817691086],[-119.29995125134266,37.94555082637669],[-119.29993588080539,37.9455530522097],[-119.2999204215008,37.94555485169552],[-119.29990489228109,37.94555622263974],[-119.29988931208376,37.94555716337051],[-119.29987369990843,37.94555767274065],[-119.29985807479378,37.945557750129],[-119.29984245579419,37.94555739544116],[-119.29982686195663,37.94555660910969],[-119.29981131229742,37.94555539209349],[-119.29979582577893,37.94555374587669],[-119.29978042128653,37.94555167246677],[-119.29976511760563,37.94554917439225],[-119.29974993339866,37.94554625469944],[-119.29973488718234,37.945542916948824],[-119.29971999730508,37.94553916521072],[-119.29970528192469,37.94553500406023],[-119.29969075898613,37.9455304385718],[-119.29967644619971,37.94552547431292],[-119.29966236101941,37.94552011733735],[-119.2996485206217,37.945514374177776],[-119.29963494188446,37.945508251837815],[-119.29962164136657,37.94550175778348],[-119.29960863528748,37.945494899934104],[-119.29959593950773,37.94548768665262],[-119.29958356950927,37.945480126735426],[-119.29957154037692,37.9454722294016],[-119.29955986677967,37.9454640042817],[-119.29954856295306,37.94545546140601],[-119.29953764268159,37.94544661119232],[-119.29952711928205,37.94543746443317],[-119.29951700558725,37.94542803228276],[-119.29950731393036,37.94541832624325],[-119.29949805612988,37.94540835815089],[-119.2994892434752,37.9453981401614],[-119.29948088671289,37.94538768473531],[-119.2994729960335,37.945377004622614],[-119.29946558105928,37.94536611284734],[-119.2994586508323,37.94535502269166],[-119.2994522138035,37.9453437476796],[-119.2994462778224,37.94533230156061],[-119.29944085012744,37.94532069829284],[-119.2994359373373,37.94530895202602],[-119.29939879124676,37.94522017609354],[-119.29935772478379,37.945132489848426],[-119.2993127887915,37.94504600182281],[-119.29926403890182,37.944960819065415],[-119.29921153546672,37.94487704700903],[-119.29915534348329,37.94479478933998],[-119.29909553251339,37.944714147869945],[-119.29903217659736,37.94463522240983],[-119.29896535416252,37.94455811064633],[-119.29889514792578,37.944482908021016],[-119.29882164479162,37.944409707612216],[-119.29874493574412,37.94433860001986],[-119.29872370113193,37.944312165169755],[-119.29870137200993,37.94428630208694],[-119.29867797290608,37.94426103918002],[-119.29865352952358,37.944236404198364],[-119.29862806871257,37.944212424201574],[-119.29860161844071,37.9441891255298],[-119.29857420776246,37.944166533774755],[-119.29854586678698,37.94414467375166],[-119.2985166266454,37.94412356947193],[-119.29848651945626,37.944103244116896],[-119.2984555782905,37.944083720012216],[-119.29842383713498,37.94406501860349],[-119.29839133085522,37.944047160432625],[-119.29835809515708,37.94403016511526],[-119.29788285775085,37.94378666789669],[-119.29741865485644,37.94353017026046],[-119.29734388270627,37.943494074032095],[-119.29727063143469,37.94345607245269],[-119.29719897843083,37.94341620567169],[-119.29712899939499,37.94337451580909],[-119.29706076825842,37.943331046911005],[-119.2969943571053,37.943285844902974],[-119.29692983609667,37.94323895754156],[-119.29686727339615,37.94319043436382],[-119.29680673509799,37.94314032663497],[-119.29674828515729,37.94308868729423],[-119.29669198532238,37.94303557089882],[-119.29668434802383,37.94302698835435],[-119.29667708471585,37.943018204564055],[-119.29667020384609,37.94300922974416],[-119.29666371341742,37.943000074333085],[-119.29665762097856,37.9429907489793],[-119.29665193361531,37.94298126452887],[-119.29664665794239,37.942971632012934],[-119.29664180009564,37.94296186263491],[-119.29663736572493,37.94295196775726],[-119.29663444145066,37.94294544846088],[-119.29663123349779,37.94293901338177],[-119.29662774572428,37.94293267025878],[-119.2966239823246,37.942926426720156],[-119.29661994782468,37.94292029027441],[-119.29661564707654,37.94291426830123],[-119.29661108525227,37.942908368042644],[-119.29660626783802,37.94290259659434],[-119.29660120062728,37.942896960897045],[-119.29659588971391,37.94289146772828],[-119.29659034148494,37.94288612369412],[-119.29658456261265,37.942880935221325],[-119.29657856004681,37.942875908549546],[-119.29657234100614,37.942871049723834],[-119.29656591296971,37.942866364587466],[-119.29655928366789,37.94286185877474],[-119.29655246107309,37.942857537704356],[-119.29654545339024,37.942853406572844],[-119.29653826904679,37.94284947034828],[-119.29653091668266,37.94284573376437],[-119.2965234051398,37.94284220131474],[-119.2965157434516,37.942838877247524],[-119.296507940832,37.94283576556018],[-119.2965000066645,37.942832869994874],[-119.29649195049065,37.942830194033775],[-119.29648378199883,37.942827740895],[-119.29647551101249,37.942825513528696],[-119.29646714747825,37.942823514613465],[-119.29645870145413,37.94282174655323],[-119.29645018309729,37.94282021147425],[-119.29644160265191,37.94281891122259],[-119.29643297043677,37.942817847361944],[-119.29642429683297,37.942817021171685],[-119.29641559227134,37.942816433645405],[-119.29640686722004,37.942816085489675],[-119.2963981321717,37.942815977123175],[-119.29638939763109,37.942816108676226],[-119.29638067410241,37.942816479990604],[-119.29637432133805,37.94281674952598],[-119.29636796055158,37.942816842726224],[-119.29636159954507,37.94281675947703],[-119.29635524612075,37.942816499880486],[-119.29634890807172,37.94281606425504],[-119.2963425931721,37.942815453135],[-119.29633630916764,37.94281466726996],[-119.29633006376623,37.94281370762386],[-119.29632386462836,37.94281257537377],[-119.2963177193578,37.9428112719085],[-119.29631163549226,37.94280979882685],[-119.29630562049411,37.942808157935715],[-119.29629968174122,37.94280635124775],[-119.29629382651801,37.94280438097903],[-119.29628806200635,37.94280224954625],[-119.29628239527693,37.942799959563764],[-119.29627683328043,37.942797513840475],[-119.29627138283914,37.94279491537624],[-119.29626605063842,37.94279216735831],[-119.29626084321872,37.94278927315734],[-119.29625576696729,37.94278623632332],[-119.29625082811059,37.9427830605812],[-119.29624603270648,37.94277974982625],[-119.29624138663698,37.94277630811942],[-119.29616211285686,37.94271369796876],[-119.29608516486869,37.94264929381708],[-119.29601060737524,37.94258314982463],[-119.29593850306861,37.942515321614565],[-119.29586891257738,37.9424458662263],[-119.2956200706527,37.94219891385196],[-119.29536061073635,37.9419589131867],[-119.2950908423331,37.941726150429886],[-119.2948110872313,37.94150090314711],[-119.29452167911909,37.94128343993939],[-119.29450471024309,37.94127022093078],[-119.29448830469116,37.94125656320392],[-119.29447248053826,37.94124248180656],[-119.2944572552187,37.94122799225329],[-119.29444264550705,37.941213110508315],[-119.29442866749953,37.941197852967996],[-119.29441533659642,37.941182236442685],[-119.29440266748486,37.94116627813826],[-119.29439067412298,37.941149995637176],[-119.29437936972427,37.94113340687904],[-119.29436876674309,37.941116530140846],[-119.29435887686108,37.94109938401693],[-119.2943497109741,37.94108198739836],[-119.29434127918033,37.941064359452206],[-119.29433359076911,37.941046519600405],[-119.2943266542108,37.94102848749831],[-119.29421125896724,37.9408085991059],[-119.2941053271238,37.94058574374011],[-119.29400897997046,37.940360176746424],[-119.29392232781206,37.94013215657499],[-119.29384546984225,37.939901944484426],[-119.2937784940302,37.93966980424231],[-119.29372147702027,37.9394360018231],[-119.29367448404457,37.93920080510305],[-119.29363756884865,37.93896448355355],[-119.29361077363026,37.93872730793208],[-119.29359412899167,37.93848954997216],[-119.29358765390477,37.93825148207194],[-119.29359135568997,37.93801337698198],[-119.29360523000821,37.93777550749298],[-119.29362926086642,37.937538146123075],[-119.29366342063621,37.937301564805736],[-119.29370767008596,37.93706603457816],[-119.29376195842633,37.936831825270886],[-119.29377767390115,37.936800309153334],[-119.29379200271613,37.93676838114286],[-119.29380492770426,37.93673607949574],[-119.29381643338066,37.93670344291575],[-119.2938265059611,37.93667051050807],[-119.29383513337858,37.93663732173218],[-119.29384230529769,37.936603916354805],[-119.29384801312705,37.93657033440202],[-119.29385225002959,37.936536616111546],[-119.29385501093066,37.93650280188426],[-119.29385629252423,37.9364689322361],[-119.29385609327673,37.93643504774924],[-119.29385441342892,37.93640118902361],[-119.2938512549956,37.93636739662824],[-119.29384662176318,37.936333711052576],[-119.29384051928513,37.93630017265809],[-119.29383295487523,37.936266821629786],[-119.29382393759906,37.93623369792817],[-119.2938134782628,37.93620084124127],[-119.29380158940047,37.936168290937196],[-119.29378828525886,37.93613608601681],[-119.29377358178048,37.9361042650672],[-119.29375749658439,37.93607286621526],[-119.29374004894507,37.93604192708213],[-119.29372125976943,37.936011484738096],[-119.29370115157168,37.93598157565812],[-119.2936797484463,37.93595223567822],[-119.29365707603924,37.9359234999525],[-119.29363316151716,37.93589540291099],[-119.29360803353494,37.93586797821845],[-119.29358172220113,37.93584125873403],[-119.29355425904218,37.93581527647192],[-119.29352567696442,37.935790062562916],[-119.29349601021474,37.93576564721723],[-119.2934652943395,37.93574205968818],[-119.29343356614199,37.93571932823725],[-119.29340086363834,37.93569748010018],[-119.29336722601188,37.93567654145434],[-119.29333269356631,37.93565653738736],[-119.2932973076773,37.9356374918671],[-119.29326111074305,37.935619427712886],[-119.29322414613331,37.93560236656827],[-119.29318645813761,37.93558632887499],[-119.29314809191209,37.93557133384853],[-119.2931090934254,37.93555739945509],[-119.29306950940368,37.93554454239011],[-119.29302938727449,37.935532778058196],[-119.29298877511015,37.93552212055466],[-119.29294772156993,37.93551258264877],[-119.29290627584197,37.93550417576823],[-119.2927653572584,37.93546772298568],[-119.29262607122787,37.93542752670157],[-119.2924885762394,37.935383632654606],[-119.29235302874321,37.93533609079112],[-119.29221958297258,37.93528495520806],[-119.29208839076841,37.93523028409149],[-119.29195960140638,37.93517213965039],[-119.29183336142687,37.93511058804574],[-119.2917098144685,37.93504569931536],[-119.29158910110439,37.93497754729405],[-119.29147135868232,37.93490620952956],[-119.29135672116836,37.93483176719445],[-119.29124531899447,37.93475430499354],[-119.29113727891004,37.9346739110676],[-119.29103272383776,37.934590676892974],[-119.2909317727336,37.93450469717747],[-119.29083454045163,37.934416069752594],[-119.29074113761328,37.93432489546217],[-119.29065167048148,37.93423127804756],[-119.29056624083981,37.93413532402969],[-119.2904849458767,37.93403714258762],[-119.29040787807499,37.933936845434445],[-119.29033512510662,37.93383454669017],[-119.29026676973298,37.933730362751746],[-119.29020288971086,37.93362441216057],[-119.29014355770397,37.93351681546772],[-119.29011345204874,37.93346227910582],[-119.29008098718651,37.933408598459735],[-119.29004620182799,37.9333558375293],[-119.29000913745024,37.93330405921766],[-119.2899698382471,37.93325332525634],[-119.2899283510766,37.933203696131656],[-119.28988472540497,37.93315523101256],[-119.28983901324776,37.933107987680145],[-119.2897912691077,37.933062022458806],[-119.28974154990979,37.933017390148954],[-119.28968991493345,37.93297414396189],[-119.28963642574172,37.9329323354562],[-119.28958114610795,37.93289201447638],[-119.28952414193976,37.93285322909341],[-119.28946548120045,37.93281602554748],[-119.28940523382796,37.93278044819276],[-119.2893434716515,37.93274653944468],[-119.28928026830596,37.932714339729266],[-119.28921569914402,37.93268388743498],[-119.28914984114647,37.93265521886699],[-119.2890827728303,37.93262836820382],[-119.28901457415523,37.93260336745674],[-119.28894532642828,37.93258024643146],[-119.28887511220692,37.932559032692666],[-119.2888040152007,37.93253975153122],[-119.28873212017126,37.932522425933946],[-119.28865951283161,37.93250707655622],[-119.28858627974373,37.93249372169741],[-119.28851250821536,37.932482377279015],[-119.28843828619625,37.93247305682572],[-119.28836370217292,37.93246577144925],[-119.28828884506343,37.932460529835126],[-119.28821380411136,37.932457338232304],[-119.28813866877944,37.93245620044582],[-119.28806352864281,37.93245711783209],[-119.28798847328241,37.93246008929742],[-119.28791359217814,37.9324651112993],[-119.28783897460214,37.932472177850535],[-119.28776470951249,37.93248128052649],[-119.28495473268956,37.932896323169075],[-119.28215999127833,37.93337159872611],[-119.28206678779976,37.9333899585964],[-119.28197283037285,37.93340572460518],[-119.28187823403682,37.93341887744891],[-119.28178311461336,37.93342940102348],[-119.28168758856484,37.93343728244404],[-119.28159177285154,37.93344251206073],[-119.2814957847886,37.93344508347053],[-119.28139974190219,37.933444993525],[-119.28130376178554,37.93344224233428],[-119.28120796195515,37.93343683326694],[-119.28111245970662,37.93342877294566],[-119.28101737197115,37.933418071239394],[-119.28092281517223,37.9334047412511],[-119.28082890508323,37.9333887993017],[-119.28073575668532,37.933370264910245],[-119.28064348402697,37.93334916076979],[-119.28055220008412,37.933325512719776],[-119.28046201662177,37.93329934971437],[-119.28037304405726,37.933270703786825],[-119.28028539132491,37.9332396100105],[-119.28019916574273,37.933206106455756],[-119.28011447288095,37.933170234143354],[-119.28003141643268,37.93313203699423],[-119.27995009808703,37.933091561775754],[-119.27987061740457,37.93304885804431],[-119.27979307169535,37.93300397808485],[-119.27971755589991,37.932956976846626],[-119.27964416247276,37.932907911875986],[-119.27957298126948,37.93285684324598],[-119.27947965452432,37.93272907782199],[-119.27938088726812,37.93260390445586],[-119.27927679415906,37.93248146842609],[-119.2791674960347,37.93236191183338],[-119.27905311977183,37.93224537343597],[-119.2789337981391,37.932131988488415],[-119.2788096696428,37.93202188858487],[-119.2786808783661,37.93191520150621],[-119.27854757380184,37.931812051071944],[-119.27840991067895,37.931712556996516],[-119.27826804878279,37.931616834750365],[-119.27812215276992,37.931524995426024],[-119.27797239197668,37.93143714560923],[-119.27781894022304,37.93135338725521],[-119.2776619756106,37.93127381757053],[-119.27750168031602,37.931198528900225],[-119.27733824037978,37.931127608620685],[-119.27717184549005,37.931061139038356],[-119.27700268876289,37.930999197294184],[-119.27683096651796,37.930941855274206],[-119.27665687805097,37.9308891795261],[-119.27648062540224,37.93084123118202],[-119.2763024131226,37.93079806588771],[-119.27612244803585,37.93075973373787],[-119.27594093899899,37.93072627921817],[-119.27575809665991,37.930697741153544],[-119.275574133213,37.93067415266319],[-119.27538926215304,37.93065554112221],[-119.27520369802765,37.93064192812976],[-119.27501765618825,37.93063332948404],[-119.27483135254045,37.930629755164006],[-119.27464500329343,37.9306312093177],[-119.27445882470936,37.930637690257605],[-119.2744031577554,37.93063961036566],[-119.2743474403814,37.93064001484471],[-119.2742917383454,37.93063890321739],[-119.27423611738722,37.93063627679564],[-119.27418064315111,37.930632138679165],[-119.27412538110804,37.93062649375182],[-119.27407039647855,37.93061934867574],[-119.27401575415573,37.930610711883624],[-119.27396151862857,37.930600593568585],[-119.27390775390595,37.93058900567237],[-119.27385452344096,37.93057596187098],[-119.27380189005609,37.93056147755881],[-119.27374991586906,37.93054556983022],[-119.27369866221945,37.93052825745956],[-119.27364818959641,37.930509560878896],[-119.27359855756713,37.930489502153904],[-119.27354982470655,37.930468104957924],[-119.27350204852841,37.9304453945438],[-119.27345528541711,37.93042139771433],[-119.27340959056127,37.93039614279049],[-119.27336501788865,37.93036965957797],[-119.2733216200024,37.93034197933207],[-119.27327944811908,37.930313134720826],[-119.27323855200811,37.93028315978635],[-119.2731989799331,37.93025208990475],[-119.27316077859486,37.930219961744335],[-119.27312399307631,37.93018681322231],[-119.27308866678925,37.93015268346006],[-119.27305484142317,37.930117612736936],[-119.273022556896,37.930081642442815],[-119.27299185130704,37.93004481502906],[-119.272962760892,37.93000717395862],[-119.2729353199802,37.9299687636546],[-119.27285381306422,37.9298546365376],[-119.27276744554699,37.929742774725554],[-119.2726763176875,37.929633308044245],[-119.2725805352681,37.92952636353905],[-119.27248020947171,37.92942206532773],[-119.2723754567528,37.92932053445627],[-119.27226639870203,37.92922188875837],[-119.2721531619052,37.92912624271895],[-119.27203587779628,37.929033707341134],[-119.27191468250491,37.92894439001755],[-119.27178971669824,37.92885839440569],[-119.27166112541781,37.9287758203077],[-119.27152905791124,37.92869676355456],[-119.27139366745884,37.92862131589492],[-119.271255111196,37.92854956488864],[-119.27111354993063,37.92848159380528],[-119.27096914795673,37.928417481527376],[-119.27082207286361,37.92835730245905],[-119.27067249534159,37.928301126439656],[-119.27052058898387,37.92824901866273],[-119.27036653008514,37.9282010396004],[-119.27021049743712,37.928157244933246],[-119.27005267212107,37.928117685485674],[-119.26989323729767,37.92808240716696],[-119.26973237799474,37.928051450918005],[-119.26957028089238,37.92802485266392],[-119.26940713410657,37.928002643272166],[-119.26924312697084,37.927984848516964],[-119.26907844981675,37.92797148904923],[-119.26891329375302,37.92796258037275],[-119.26874785044387,37.92795813282604],[-119.26858231188682,37.927958151570564],[-119.26841687018974,37.927962636584546],[-119.26834366872843,37.927964613815135],[-119.26827042471928,37.9279646004852],[-119.26819722441282,37.927962596610435],[-119.26812415400818,37.92795860455056],[-119.26805129955153,37.92795262900655],[-119.26797874683457,37.92794467701503],[-119.26790658129372,37.92793475794011],[-119.26783488790932,37.927922883462266],[-119.26776375110562,37.927909067564556],[-119.2676932546513,37.92789332651628],[-119.26762348156086,37.927875678853674],[-119.2675545139968,37.92785614535818],[-119.26748643317286,37.92783474903189],[-119.2674193192584,37.92781151507051],[-119.26735325128392,37.927786470833695],[-119.26728830704808,37.927759645812806],[-119.26722456302596,37.9277310715961],[-119.2671620942791,37.927700781831625],[-119.267100974367,37.927668812187626],[-119.26704127526057,37.927635200310384],[-119.26698306725734,37.92759998578],[-119.26692641889872,37.92756321006373],[-119.26687139688916,37.9275249164672],[-119.26681806601778,37.927485150083314],[-119.26676648908196,37.92744395773921],[-119.26671672681336,37.927401387941075],[-119.26666883780653,37.927357490817116],[-119.26662287844988,37.92731231805838],[-119.26657890285914,37.92726592285794],[-119.26653696281393,37.92721835984829],[-119.26649710769648,37.927169685036915],[-119.26645938443377,37.927119955740466],[-119.26642383744208,37.9270692305171],[-119.26639050857483,37.92701756909766],[-119.26635943707322,37.9269650323152],[-119.26633065952015,37.92691168203349],[-119.26630420979704,37.92685758107404],[-119.26628011904407,37.92680279314218],[-119.26590728321304,37.92586236008425],[-119.26556715743561,37.92491418006949],[-119.2652599964295,37.923958966690364],[-119.26498603007569,37.92299743880538],[-119.2649592269148,37.922887716419545],[-119.26493718216807,37.922777331385014],[-119.26491992166657,37.922666413152676],[-119.26490746563046,37.92255509179808],[-119.2648998286454,37.92244349786898],[-119.2648970196455,37.92233176223219],[-119.26489904190313,37.92222001592012],[-119.26490589302495,37.922108389977126],[-119.26491756495484,37.92199701530582],[-119.26493404398374,37.92188602251358],[-119.26495531076542,37.92177554175935],[-119.26498134033956,37.921665702601096],[-119.26501210216102,37.92155663384381],[-119.26504756013573,37.921448463388515],[-119.26508767266309,37.921341318082234],[-119.26513239268502,37.92123532356937],[-119.26518166774096,37.92113060414427],[-119.26523544002971,37.92102728260557],[-119.26529364647718,37.92092548011214],[-119.2653562188104,37.92082531604108],[-119.2654230836377,37.92072690784779],[-119.26552029083,37.920274790754455],[-119.26559747399018,37.919820256682804],[-119.26565453901605,37.91936386197588],[-119.2656914164342,37.918906165243904],[-119.26570806148294,37.91844772668055],[-119.26570445416542,37.917989107377274],[-119.2656805992723,37.91753086863643],[-119.26563652637397,37.917073571284455],[-119.26557228978251,37.91661777498542],[-119.26548796848351,37.916164037556165],[-119.2653836660375,37.91571291428381],[-119.26525951045144,37.91526495724627],[-119.26511565402042,37.91482071463693],[-119.26495227313957,37.91438073009393],[-119.26476956808652,37.91394554203514],[-119.26456776277472,37.91351568299958],[-119.26434710447799,37.91309167899618],[-119.26410786352649,37.9126740488603],[-119.26385033297446,37.91226330361935],[-119.26357482824045,37.91185994586785],[-119.2635245749233,37.91179209680809],[-119.26347141383033,37.91172565327832],[-119.2634154075289,37.911660693468875],[-119.26335662193395,37.91159729382383],[-119.26329512623066,37.91153552895107],[-119.26323099279277,37.91147547153453],[-119.26316429709757,37.91141719224866],[-119.26309511763705,37.911360759675304],[-119.26302353582535,37.91130624022294],[-119.26294963590325,37.91125369804862],[-119.26287350483868,37.911203194982434],[-119.2627952322247,37.91115479045482],[-119.26271491017387,37.911108541426586],[-119.26263263320985,37.9110645023219],[-119.26254849815639,37.91102272496434],[-119.26246260402314,37.91098325851579],[-119.26237505188926,37.91094614941871],[-119.26228594478462,37.910911441341504],[-119.26219538756831,37.910879175126986],[-119.26210348680547,37.91084938874458],[-119.26201035064193,37.91082211724541],[-119.26191608867674,37.91079739272124],[-119.26182081183353,37.91077524426662],[-119.2617246322298,37.91075569794469],[-119.2616276630451,37.91073877675654],[-119.26153001838786,37.9107245006141],[-119.26143181316114,37.910712886316745],[-119.26133316292751,37.91070394753154],[-119.26123418377301,37.91069769477717],[-119.26113499217061,37.91069413541149],[-119.2610357048433,37.91069327362299],[-119.26093643862656,37.910695110425756],[-119.26083731033111,37.91069964365833],[-119.26073843660541,37.91070686798631],[-119.26063993379846,37.910716774908465],[-119.2605419178228,37.91072935276688],[-119.26040620537898,37.9107467702666],[-119.26026981943346,37.91076049402902],[-119.26013292010556,37.91077050794223],[-119.2599956681177,37.91077680024972],[-119.2598582246063,37.91077936356418],[-119.25972075093283,37.91077819487629],[-119.2595834084942,37.91077329555808],[-119.2594463585331,37.91076467136141],[-119.2593097619488,37.9107523324113],[-119.25917377910804,37.91073629319386],[-119.25903856965674,37.91071657253934],[-119.25890429233255,37.910693193600146],[-119.25877110477829,37.91066618382348],[-119.258639163357,37.910635574919155],[-119.25850862296808,37.910601402822415],[-119.25837963686561,37.91056370765165],[-119.25825235647817,37.910522533661286],[-119.2581269312311,37.91047792918988],[-119.25800350837106,37.91042994660331],[-119.25788223279305,37.91037864223324],[-119.25776324687027,37.91032407631103],[-119.25764669028705,37.91026631289695],[-119.25753269987459,37.910205419804946],[-119.25742140945056,37.910141468523086],[-119.2573129496618,37.91007453412948],[-119.257207447831,37.910004695204215],[-119.25710502780723,37.90993203373699],[-119.25700580982047,37.90985663503095],[-119.25690991034058,37.90977858760239],[-119.25681744194041,37.90969798307686],[-119.25672851316385,37.90961491608157],[-119.25429443462369,37.90718776331926],[-119.25425235925127,37.90714602361659],[-119.25420847431468,37.907105470542064],[-119.25416283308554,37.90706615332015],[-119.25411549096711,37.9070281196751],[-119.25406650542693,37.906991415773106],[-119.2540159359271,37.90695608616617],[-119.2539638438521,37.90692217373812],[-119.2539102924343,37.90688971965249],[-119.25385534667714,37.90685876330264],[-119.25379907327634,37.90682934226383],[-119.2537415405388,37.90680149224781],[-119.2536828182999,37.90677524705926],[-119.25362297783849,37.906750638554904],[-119.2535620917906,37.906727696604804],[-119.25350023406115,37.906706449056124],[-119.2534374797343,37.906686921699304],[-119.25337390498235,37.906669138236815],[-119.25330958697319,37.9066531202543],[-119.25324460377679,37.906638887194525],[-119.25317903427036,37.90662645633362],[-119.25311295804264,37.90661584276021],[-119.25304645529734,37.90660705935712],[-119.25297960675574,37.90660011678565],[-119.25291249355884,37.90659502347272],[-119.25284519716872,37.9065917856006],[-119.25277779926988,37.906590407099436],[-119.25271038166996,37.906590889642466],[-119.2526430262005,37.90659323264394],[-119.25257581461767,37.90659743325997],[-119.25250882850297,37.90660348639179],[-119.25244214916438,37.90661138469213],[-119.25237585753746,37.90662111857397],[-119.25231003408734,37.906632676222316],[-119.25224475871092,37.90664604360843],[-119.25218011064,37.90666120450696],[-119.25211616834511,37.90667814051547],[-119.25205300944023,37.906696831076964],[-119.2519907105886,37.90671725350471],[-119.25192934740976,37.906739383009786],[-119.25186899438764,37.906763192731226],[-119.25180972478034,37.90678865376851],[-119.25175161053102,37.9068157352168],[-119.25169472218076,37.90684440420426],[-119.2516391287828,37.90687462593206],[-119.25158489781883,37.90690636371665],[-119.25142800370327,37.9070049339916],[-119.25127538046173,37.90710762768445],[-119.25112720064925,37.90721432870212],[-119.25098363179987,37.90732491642088],[-119.25084483623712,37.90743926582259],[-119.2507109708906,37.90755724763599],[-119.2505821871185,37.907678728482765],[-119.25045863053643,37.90780357102833],[-119.25034044085282,37.90793163413698],[-119.25022775171078,37.90806277303136],[-119.2501206905371,37.90819683945621],[-119.25001937839798,37.90833368184577],[-119.24992392986212,37.908473145495165],[-119.24983445287108,37.90861507273523],[-119.24975104861714,37.90875930311071],[-119.24967381142872,37.908905673561655],[-119.2496028286637,37.90905401860762],[-119.24953818061039,37.909204170534856],[-119.24947994039672,37.90935595958576],[-119.2494281739073,37.90950921415084],[-119.24938293970888,37.90966376096264],[-119.2493783106634,37.90967954769578],[-119.24937299847842,37.909695198827386],[-119.24936700944984,37.90971069580684],[-119.24936035067577,37.90972602026626],[-119.24935303004813,37.90974115404222],[-119.24934505624334,37.9097560791973],[-119.24933643871208,37.9097707780413],[-119.24932718766796,37.90978523315232],[-119.24931731407551,37.90979942739729],[-119.24930682963715,37.90981334395227],[-119.24929574677932,37.909826966322576],[-119.24928407863784,37.909840278362104],[-119.24927183904217,37.909853264292586],[-119.24925904249919,37.909865908722274],[-119.24924570417585,37.90987819666419],[-119.24923183988139,37.909890113553885],[-119.2492174660484,37.909901645266665],[-119.24920259971344,37.90991277813439],[-119.24918725849692,37.909923498961646],[-119.24917146058199,37.90993379504142],[-119.2491552246933,37.90994365417008],[-119.24913857007446,37.90995306466194],[-119.24912151646562,37.90996201536303],[-119.24910408407968,37.909970495664375],[-119.24908629357857,37.909978495514544],[-119.24906816604876,37.90998600543155],[-119.24904972297618,37.90999301651411],[-119.24903098622072,37.9099995204522],[-119.24901197799043,37.9100055095369],[-119.24899272081521,37.91001097666952],[-119.24897323751993,37.910015915370046],[-119.24895355119757,37.91002031978476],[-119.24893368518173,37.910024184693256],[-119.248913663019,37.910027505514535],[-119.24889350844107,37.91003027831253],[-119.2488732453366,37.91003249980074],[-119.24885289772288,37.91003416734611],[-119.24883248971739,37.910035278972096],[-119.2488120455091,37.91003583336115],[-119.24879158933005,37.91003582985614],[-119.24877114542635,37.91003526846127],[-119.2487507380296,37.910034149841934],[-119.24873039132815,37.91003247532399],[-119.24871012943832,37.91003024689217],[-119.24868997637603,37.9100274671878],[-119.24866995602807,37.91002413950559],[-119.24865009212402,37.91002026778974],[-119.24863040820794,37.91001585662929],[-119.24861092761064,37.91001091125265],[-119.24859167342183,37.91000543752143],[-119.24857266846291,37.9099994419235],[-119.24855393525984,37.90999293156526],[-119.24853549601646,37.90998591416325],[-119.24851737258814,37.909978398034966],[-119.24849958645599,37.90997039208906],[-119.24830750724301,37.909883819254716],[-119.2481118965503,37.90980236142166],[-119.24791297128985,37.909726108913816],[-119.24771095204693,37.90965514628287],[-119.24750606283547,37.90958955221476],[-119.24729853084989,37.909529399442256],[-119.24708858621317,37.90947475466459],[-119.24687646172198,37.909425678473355],[-119.24666239258853,37.90938222528543],[-119.24644661617995,37.909344443282734],[-119.24622937175533,37.909312374358734],[-119.24601090020042,37.909286054072076],[-119.2457914437608,37.909265511607174],[-119.24557124577342,37.90925076974187],[-119.24535055039699,37.909241844822176],[-119.24512960234127,37.9092387467442],[-119.24490864659613,37.90924147894312],[-119.24468792815992,37.90925003838944],[-119.24459575946678,37.90926213971167],[-119.24450415464408,37.90927668248275],[-119.24441321668321,37.90929365035225],[-119.24432304782603,37.90931302424319],[-119.2442337494499,37.90933478237353],[-119.24414542195382,37.90935890028055],[-119.24405816464538,37.90938535084845],[-119.24397207562936,37.90941410433876],[-119.24388725169733,37.90944512842379],[-119.24380378821887,37.90947838822302],[-119.24372177903432,37.90951384634214],[-119.2436413163494,37.909551462915346],[-119.24356249063148,37.90959119564987],[-119.24348539050784,37.909632999873736],[-119.24341010266615,37.90967682858585],[-119.24333671175691,37.90972263250894],[-119.24326530029833,37.90977036014475],[-119.2430189424977,37.909954674947244],[-119.24278055005931,37.91014545200637],[-119.24255039292261,37.91034247534833],[-119.24232873171033,37.91054552192639],[-119.24211581743324,37.91075436187309],[-119.24191189120602,37.91096875876047],[-119.24176236716706,37.91112638206343],[-119.24160673427426,37.91128024900132],[-119.24144514274103,37.91143021102853],[-119.24127774853613,37.911576123368384],[-119.24110471323328,37.91171784515306],[-119.24108815581536,37.91173055124289],[-119.24107106219162,37.91174280354216],[-119.24105345216526,37.911754587856244],[-119.24103534613774,37.911765890532735],[-119.24101676508513,37.911776698477134],[-119.24099773053396,37.911786999168136],[-119.24097826453608,37.911796780672105],[-119.2409583896433,37.911806031656866],[-119.24093812888113,37.91181474140492],[-119.24091750572214,37.9118228998257],[-119.24089654405876,37.91183049746747],[-119.24087526817563,37.91183752552813],[-119.24085370272147,37.91184397586543],[-119.240810519747,37.91185685773739],[-119.24076788401618,37.91187083706313],[-119.2407258399496,37.91188589927829],[-119.24068443135143,37.91190202869014],[-119.24064370136377,37.91191920849421],[-119.24060369242193,37.911937420791624],[-119.24056444620999,37.91195664660774],[-119.24052600361755,37.911976865912024],[-119.2402728936188,37.91211083422963],[-119.24001539824205,37.91223945051885],[-119.2397536977357,37.9123626247368],[-119.23974829724317,37.912364994039734],[-119.23974279762493,37.91236721561654],[-119.23973720531647,37.9123692868676],[-119.23973152686173,37.91237120536921],[-119.2397257689055,37.91237296887637],[-119.23971993818556,37.91237457532547],[-119.23971404152483,37.91237602283672],[-119.23970808582348,37.912377309716234],[-119.23970207805064,37.9123784344582],[-119.23969602523648,37.91237939574642],[-119.23968993446381,37.91238019245606],[-119.23968381285991,37.91238082365481],[-119.23967766758808,37.91238128860406],[-119.2396715058394,37.91238158675974],[-119.23966533482412,37.912381717772966],[-119.23965916176343,37.91238168149044],[-119.23965299388088,37.91238147795459],[-119.23964683839397,37.912381107403604],[-119.23964070250564,37.912380570271104],[-119.23963459339598,37.91237986718558],[-119.23962851821366,37.91237899896981],[-119.23962248406775,37.91237796663974],[-119.23961649801919,37.91237677140337],[-119.23961056707272,37.91237541465936],[-119.23960469816855,37.9123738979953],[-119.2395988981743,37.91237222318596],[-119.23959317387695,37.91237039219116],[-119.23958753197495,37.91236840715347],[-119.23958197907027,37.912366270395744],[-119.23957652166075,37.91236398441833],[-119.23957116613248,37.91236155189623],[-119.23956591875238,37.91235897567593],[-119.23956078566073,37.91235625877202],[-119.23955577286411,37.91235340436376],[-119.2395508862284,37.91235041579128],[-119.23954613147171,37.912347296551765],[-119.23954151415793,37.91234405029521],[-119.23953703969013,37.91234068082029],[-119.23953271330414,37.91233719206989],[-119.23952854006254,37.91233358812647],[-119.23952452484876,37.91232987320721],[-119.23950259835037,37.91230956719338],[-119.2394798315208,37.91228985019106],[-119.23945624955273,37.91227074401761],[-119.23943187854086,37.912252269814466],[-119.23940674545287,37.91223444802384],[-119.23938087809962,37.91221729836594],[-119.23935430510443,37.91220083981722],[-119.23932705587136,37.91218509058946],[-119.23929916055266,37.91217006810952],[-119.23927065001546,37.912155789000074],[-119.23924155580754,37.91214226906124],[-119.23921191012253,37.912129523253114],[-119.23918174576423,37.91211756567913],[-119.23915109611019,37.9121064095706],[-119.2391199950751,37.91209606727195],[-119.23908847707287,37.91208655022708],[-119.23905657697887,37.912077868966804],[-119.23902433009121,37.91207003309706],[-119.23899177209165,37.91206305128837],[-119.23762301629384,37.911777264401294],[-119.23757212462735,37.911765451680836],[-119.23752178062647,37.911752247858885],[-119.23747204485156,37.91173766881878],[-119.23742297713115,37.911721732098165],[-119.23737463649012,37.911704456867874],[-119.23732708107855,37.91168586390883],[-119.23728036810178,37.91166597558717],[-119.23723455375169,37.91164481582711],[-119.23718969313902,37.91162241008242],[-119.23714584022704,37.911598785305635],[-119.23710304776678,37.91157396991564],[-119.23706136723332,37.91154799376358],[-119.23702084876417,37.911520888096824],[-119.23698154109871,37.91149268552146],[-119.23694349151968,37.91146341996305],[-119.23690674579625,37.91143312662573],[-119.23687134812901,37.91140184195005],[-119.23672027626893,37.91126761388698],[-119.23656428695227,37.911136964262475],[-119.23640351517054,37.911010006118225],[-119.23623810005101,37.910886849301335],[-119.23604058546564,37.9107488354981],[-119.23583730477077,37.91061618153815],[-119.2356284895801,37.91048903854527],[-119.23541437780867,37.91036755136427],[-119.23519521340191,37.91025185839596],[-119.23497124605768,37.91014209143965],[-119.234742730942,37.91003837554313],[-119.23450992839834,37.90994082886015],[-119.23320325104908,37.909455341931796],[-119.23310354474125,37.909420487568966],[-119.23300253508782,37.90938807452019],[-119.23290031728598,37.909358133332866],[-119.2327969876713,37.90933069222482],[-119.23269264362676,37.90930577705765],[-119.23258738349102,37.90928341131239],[-119.23254945695425,37.909276356272834],[-119.23251126401516,37.90927026989121],[-119.23247284407427,37.90926515844626],[-119.23243423676624,37.90926102721112],[-119.23239548191901,37.909257880447576],[-119.23235661951273,37.909255721401905],[-119.23231768963846,37.909254552301434],[-119.23227873245689,37.909254374352166],[-119.23223978815686,37.90925518773774],[-119.23133473685711,37.9092777846318],[-119.23042927849747,37.90928472694959],[-119.23040900666604,37.909284432744506],[-119.23038875934293,37.90928359017417],[-119.2303685601519,37.909282200221725],[-119.23034843266062,37.90928026450885],[-119.23032840035297,37.90927778529412],[-119.2303084866019,37.90927476547012],[-119.23028871464194,37.90927120856029],[-119.23026910754223,37.9092671187147],[-119.23024968817944,37.90926250070519],[-119.23023047921133,37.909257359919906],[-119.2302115030501,37.90925170235687],[-119.23019278183625,37.90924553461709],[-119.2301743374129,37.90923886389686],[-119.23015619130015,37.90923169797926],[-119.23012297815795,37.90921859485341],[-119.23008920760489,37.90920641890295],[-119.23005492085788,37.9091951849885],[-119.23002015976373,37.909184906821],[-119.22998496674825,37.90917559694481],[-119.22994938476424,37.90916726672256],[-119.22991345723919,37.909159926321166],[-119.22987722802235,37.90915358469953],[-119.2298407413311,37.909148249597514],[-119.22980404169705,37.90914392752655],[-119.22976717391164,37.90914062376169],[-119.22973018297155,37.90913834233511],[-119.22969311402375,37.909137086031286],[-119.2296560123104,37.90913685638348],[-119.22961892311363,37.90913765367204],[-119.22958189170038,37.90913947692385],[-119.22954496326693,37.909142323913635],[-119.22950818288398,37.9091461911667],[-119.22947159544157,37.90915107396313],[-119.22943524559426,37.909156966343474],[-119.2293991777066,37.90916386111622],[-119.2293634357991,37.90917174986632],[-119.2293280634945,37.90918062296567],[-119.22929310396438,37.90919046958476],[-119.22925859987669,37.909201277705854],[-119.22922459334346,37.909213034137764],[-119.22919112586963,37.909225724531886],[-119.22915823830222,37.90923933339969],[-119.22914812724085,37.909246705446975],[-119.2291377042696,37.90925379957279],[-119.22912698155162,37.90926060749853],[-119.22911597159978,37.909267121279605],[-119.22910468726228,37.90927333331466],[-119.22909314170741,37.90927923635452],[-119.22908134840836,37.90928482351053],[-119.22906932112743,37.90929008826271],[-119.22905707389994,37.90929502446726],[-119.22904462101793,37.90929962636379],[-119.22903197701345,37.90930388858213],[-119.22901915664158,37.909307806148355],[-119.22900617486319,37.90931137449083],[-119.22899304682751,37.90931458944542],[-119.22897978785451,37.90931744726039],[-119.22896641341694,37.909319944600774],[-119.2289529391223,37.909322078552236],[-119.22893938069456,37.909323846624595],[-119.22892575395596,37.909325246754506],[-119.22891207480846,37.90932627730808],[-119.22889835921514,37.90932693708274],[-119.22888462318157,37.90932722530849],[-119.22887088273728,37.90932714164902],[-119.22885715391689,37.909326686201936],[-119.22884345274144,37.90932585949874],[-119.22882979519973,37.90932466250418],[-119.22881619722965,37.90932309661509],[-119.22880267469955,37.909321163658824],[-119.22878924338974,37.909318865891045],[-119.22877591897411,37.909316205993186],[-119.22876271700173,37.90931318706925],[-119.22874965287885,37.90930981264221],[-119.22873674185082,37.90930608664993],[-119.22872399898432,37.90930201344049],[-119.22870892298526,37.909297188509846],[-119.22869365255428,37.909292764017664],[-119.22867820462984,37.90928874487173],[-119.2286625963472,37.9092851355302],[-119.22864684501951,37.90928193999661],[-119.2286309681186,37.90927916181557],[-119.22861498325553,37.9092768040687],[-119.2285989081612,37.90927486937127],[-119.22858276066647,37.909273359869296],[-119.22856655868264,37.90927227723719],[-119.2285503201813,37.90927162267581],[-119.22853406317472,37.90927139691121],[-119.22851780569552,37.909271600193826],[-119.22850156577695,37.90927223229816],[-119.22848536143276,37.90927329252307],[-119.22846921063724,37.90927477969253],[-119.22846019362719,37.90927560463604],[-119.22845114586197,37.90927618063481],[-119.22844207828713,37.90927650699204],[-119.2284330018722,37.90927658331292],[-119.2284239275974,37.909276409505104],[-119.22841486644045,37.909275985778855],[-119.22840582936303,37.90927531264679],[-119.22839682729783,37.909274390923215],[-119.22838787113513,37.90927322172321],[-119.22837897170965,37.90927180646123],[-119.22837013978751,37.909270146849344],[-119.22836138605321,37.90926824489532],[-119.22835272109657,37.909266102900034],[-119.22834415540002,37.909263723454764],[-119.22833569932595,37.90926110943809],[-119.22832736310414,37.909258264012294],[-119.22831915681934,37.90925519061964],[-119.22831109039907,37.909251892978176],[-119.22830317360174,37.909248375077254],[-119.22829541600466,37.90924464117265],[-119.2282878269926,37.909240695781456],[-119.22828041574637,37.90923654367665],[-119.22827319123166,37.90923218988117],[-119.22826616218836,37.90922763966213],[-119.22825933711981,37.909222898524106],[-119.22825272428263,37.909217972202725],[-119.22824633167664,37.90921286665758],[-119.22824016703528,37.909207588065144],[-119.22823423781614,37.90920214281118],[-119.22822855119209,37.909196537483076],[-119.22822311404244,37.90919077886189],[-119.22821793294474,37.909184873914114],[-119.22821301416674,37.90917882978327],[-119.2282083636589,37.90917265378124],[-119.22820398704707,37.90916635337942],[-119.22819988962578,37.909159936199735],[-119.22819607635184,37.90915341000533],[-119.22819255183823,37.90914678269128],[-119.2281893203487,37.909140062274965],[-119.22818638579241,37.90913325688637],[-119.22818375171937,37.90912637475831],[-119.22818142131607,37.90911942421645],[-119.22817939740158,37.90911241366914],[-119.22817768242427,37.909105351597354],[-119.22817627845873,37.90909824654447],[-119.2281751872033,37.90909110710572],[-119.22817440997805,37.90908394191805],[-119.22817394772312,37.909076759649516],[-119.22817380099765,37.90906956898879],[-119.22817396997903,37.909062378634765],[-119.22817445446273,37.90905519728592],[-119.22817525386259,37.90904803362984],[-119.22817636721143,37.909040896332705],[-119.2281777931623,37.909033794028815],[-119.22817952999009,37.90902673531014],[-119.2281842411671,37.90901056956394],[-119.22818964309366,37.908994540021766],[-119.22819572952744,37.90897866520568],[-119.22820249343518,37.90896296345891],[-119.22820992700076,37.9089474529248],[-119.22821802163435,37.9089321515256],[-119.22822676798225,37.90891707694202],[-119.22823615593775,37.90890224659259],[-119.22824617465271,37.908887677613684],[-119.22825681255028,37.908873386839595],[-119.22826805733813,37.90885939078317],[-119.22827989602264,37.908845705616706],[-119.22829231492408,37.9088323471533],[-119.2283052996922,37.90881933082842],[-119.22831883532297,37.90880667168234],[-119.22833290617591,37.90879438434253],[-119.22834749599207,37.90878248300679],[-119.22836258791288,37.908770981427],[-119.22837816449962,37.908759892893016],[-119.22839420775355,37.90874923021754],[-119.22841069913677,37.90873900572107],[-119.22842761959357,37.90872923121784],[-119.22844494957253,37.90871991800217],[-119.22846266904892,37.9087110768353],[-119.22848075754816,37.90870271793304],[-119.2284991941691,37.908694850953964],[-119.22851795760856,37.90868748498818],[-119.22852444079656,37.908684937505456],[-119.22853080840619,37.908682213164404],[-119.22853705275469,37.908679315252044],[-119.22854316630806,37.90867624726485],[-119.22854914169007,37.90867301290438],[-119.22855497169125,37.90866961607307],[-119.22856064927755,37.90866606086929],[-119.22856616759876,37.908662351582514],[-119.22857151999683,37.90865849268811],[-119.22857670001402,37.908654488842],[-119.2285817014004,37.90865034487496],[-119.22858651812169,37.90864606578679],[-119.22859114436639,37.90864165674036],[-119.22859557455281,37.908637123055364],[-119.22859980333584,37.90863247020183],[-119.22860382561333,37.90862770379358],[-119.2286076365323,37.90862282958143],[-119.22861123149484,37.90861785344629],[-119.2286146061635,37.90861278139201],[-119.2286177564667,37.90860761953821],[-119.22862067860356,37.90860237411282],[-119.22862336904845,37.90859705144459],[-119.22862582455534,37.908591657955526],[-119.22862804216162,37.908586200153],[-119.22863001919177,37.90858068462208],[-119.22863175326043,37.90857511801735],[-119.22863324227549,37.908569507055105],[-119.22863448444049,37.9085638585052],[-119.22863547825673,37.9085581791827],[-119.22863622252521,37.90855247593992],[-119.228636716348,37.908546755657966],[-119.22863695912937,37.90854102523856],[-119.22863695057644,37.90853529159557],[-119.2286366906996,37.90852956164683],[-119.22863328015819,37.908491275159264],[-119.22862821216387,37.90845310404986],[-119.2286214926977,37.90841509334744],[-119.22861312968887,37.908377287891604],[-119.22860313300534,37.90833973227969],[-119.22859151444219,37.9083024708143],[-119.22857828770772,37.90826554745091],[-119.22856346840719,37.908229005746186],[-119.2285470740245,37.90819288880638],[-119.22852912390148,37.90815723923676],[-119.22850963921513,37.908122099091074],[-119.22848864295256,37.90808750982214],[-119.2284661598839,37.90805351223284],[-119.22844221653307,37.908020146428086],[-119.2284168411465,37.90798745176744],[-119.22839006365973,37.90795546681865],[-119.22836191566222,37.907924229312314],[-119.22833243035997,37.90789377609718],[-119.2283262238462,37.907887802068565],[-119.22831976244397,37.907882000167724],[-119.22831305375243,37.9078763772181],[-119.22830610566145,37.9078709398327],[-119.22829892634256,37.90786569440623],[-119.22829152423917,37.90786064710768],[-119.22828390805672,37.90785580387305],[-119.22827608675239,37.90785117039829],[-119.22826806952462,37.90784675213269],[-119.22825986580223,37.90784255427245],[-119.22825148523339,37.907838581754476],[-119.22824293767422,37.9078348392508],[-119.2282342331773,37.90783133116279],[-119.2282253819797,37.90782806161623],[-119.22821639449103,37.90782503445634],[-119.22820728128119,37.907822253243225],[-119.22819805306796,37.907819721247805],[-119.22818872070432,37.90781744144785],[-119.22817929516577,37.907815416524585],[-119.2281697875374,37.90781364885942],[-119.22816020900078,37.9078121405313],[-119.22815057082092,37.90781089331407],[-119.22814088433296,37.90780990867456],[-119.22813116092887,37.907809187770766],[-119.228121412044,37.90780873145053],[-119.22811164914368,37.907808540250514],[-119.2281018837097,37.90780861439554],[-119.22809212722692,37.90780895379848],[-119.22808239116956,37.90780955806012],[-119.22807268698787,37.9078104264698],[-119.22806302609463,37.90781155800628],[-119.22805341985166,37.90781295133875],[-119.22804387955658,37.90781460482855],[-119.2280344164294,37.90781651653107],[-119.22756227609028,37.90791128359244],[-119.22753653415982,37.90791567332393],[-119.22751061475994,37.9079193495099],[-119.22748454938824,37.907922307682995],[-119.22745836971986,37.90792454424841],[-119.22743210756876,37.9079260564882],[-119.22740579484919,37.90792684256467],[-119.22737946353685,37.9079269015226],[-119.22735314562999,37.907926233290304],[-119.22732687311063,37.90792483867985],[-119.22730067790559,37.90792271938599],[-119.22727459184775,37.907919877984114],[-119.22724864663732,37.907916317927146],[-119.2272228738034,37.90791204354136],[-119.22719730466548,37.90790706002102],[-119.22717197029563,37.907901373422206],[-119.22714690148052,37.90789499065534],[-119.22712212868413,37.90788791947692],[-119.22709768201065,37.907880168479885],[-119.22707359116798,37.907871747083405],[-119.22704988543157,37.90786266552128],[-119.22702659360881,37.90785293482956],[-119.22700374400412,37.90784256683311],[-119.22698136438449,37.90783157413129],[-119.22695948194566,37.90781997008254],[-119.22693812327925,37.90780776878826],[-119.22691731434034,37.90779498507562],[-119.22689708041585,37.90778163447953],[-119.226877446094,37.90776773322376],[-119.22685843523426,37.907753298201285],[-119.22684007093844,37.90773834695364],[-119.22682237552262,37.90772289764976],[-119.22680537048997,37.907706969063746],[-119.2267890765047,37.90769058055211],[-119.2267735133669,37.907673752030306],[-119.22675869998845,37.907656503948445],[-119.22674465437017,37.90763885726647],[-119.22673139357971,37.90762083342869],[-119.22671893373115,37.90760245433776],[-119.22670728996508,37.90758374232797],[-119.2266964764304,37.907564720138204],[-119.2266865062671,37.907545410884204],[-119.22667739159023,37.907525838030566],[-119.22666914347525,37.907506025362224],[-119.22666177194458,37.90748599695546],[-119.22665528595535,37.907465777148765],[-119.2266496933886,37.90744539051311],[-119.22664500103961,37.90742486182226],[-119.22664121460977,37.90740421602253],[-119.22663833869959,37.907383478202554],[-119.22663637680303,37.9073626735628],[-119.22663533130344,37.90734182738482],[-119.22663520347051,37.907320965000686],[-119.22663599345879,37.907300111762154],[-119.22663770030758,37.9072792930098],[-119.22664339596842,37.907211576019535],[-119.2266463961341,37.90714375046792],[-119.22664669783335,37.90707588369422],[-119.22664430077404,37.907008043078406],[-119.22663920734344,37.90694029597432],[-119.22663142260582,37.90687270964273],[-119.22662095429735,37.90680535118463],[-119.22660781281839,37.90673828747466],[-119.22659201122329,37.90667158509458],[-119.22656594166943,37.90657859368457],[-119.22653583259556,37.906486371469235],[-119.22650171997086,37.90639502857417],[-119.22646364454492,37.90630467407452],[-119.22642165179889,37.90621541586482],[-119.22637579189117,37.90612736053008],[-119.22632611959747,37.906040613218565],[-119.22627269424522,37.90595527751628],[-119.2262155796429,37.90587145532322],[-119.22615484400355,37.905789246731764],[-119.22609055986345,37.90570874990718],[-119.22602280399535,37.905630060970395],[-119.22595165731687,37.9055532738832],[-119.2258772047937,37.90547848033623],[-119.22579953533825,37.905405769639245],[-119.22571874170337,37.90533522861474],[-119.22563492037162,37.90526694149421],[-119.22554817143995,37.90520098981759],[-119.22544539911536,37.905093266742085],[-119.22533803336664,37.90498839418645],[-119.22522620004749,37.9048864950632],[-119.22511003024594,37.90478768879949],[-119.22498966013089,37.90469209119714],[-119.22486523079229,37.90459981429696],[-119.22473688807594,37.90451096624745],[-119.22471449869582,37.90449547118652],[-119.22469278601358,37.90447938289587],[-119.22467177505231,37.904462719917014],[-119.22465149002636,37.904445501453765],[-119.22463195431335,37.904427747350105],[-119.2246131904273,37.904409478067336],[-119.22459521999268,37.90439071466045],[-119.22457806371943,37.904371478753944],[-119.22456174137922,37.90435179251674],[-119.2245462717825,37.90433167863689],[-119.22453167275697,37.904311160295144],[-119.22451796112692,37.90429026113845],[-119.22450515269392,37.90426900525256],[-119.22449326221862,37.90424741713436],[-119.22448230340365,37.90422552166358],[-119.2244722888779,37.90420334407419],[-119.22446323018207,37.90418090992523],[-119.22445513775509,37.904158245071415],[-119.22444802092234,37.90413537563328],[-119.22444188788491,37.904112327967184],[-119.22443674570998,37.904089128634794],[-119.22443260032281,37.9040658043726],[-119.22442945649985,37.904042382060965],[-119.2244273178633,37.90401888869333],[-119.2244259563585,37.90400403969739],[-119.22442394013669,37.90398923752585],[-119.22442127166623,37.90397450029681],[-119.22441795421373,37.90395984604884],[-119.22441399184014,37.90394529271898],[-119.22440938939589,37.90393085812069],[-119.22440415251477,37.903916559922116],[-119.22439828760716,37.903902415624394],[-119.22439180185214,37.90388844254033],[-119.22438470318868,37.90387465777312],[-119.22437700030594,37.90386107819547],[-119.2243687026327,37.9038477204289],[-119.22435982032563,37.903834600823444],[-119.22435036425713,37.9038217354376],[-119.22434034600175,37.90380914001868],[-119.22432977782216,37.9037968299836],[-119.2243186726542,37.90378482039986],[-119.22430704409088,37.90377312596733],[-119.2242949063659,37.903761761000005],[-119.22428227433605,37.90375073940869],[-119.22422624650511,37.903701920637545],[-119.22417232260119,37.90365163639187],[-119.22412056363517,37.90359994356851],[-119.22407102816786,37.90354690065797],[-119.22402377224384,37.90349256767829],[-119.22397884932799,37.9034370061071],[-119.2239363102451,37.90338027881199],[-119.22389620312234,37.90332244997947],[-119.22385857333475,37.90326358504224],[-119.22382346345404,37.9032037506052],[-119.22379091320032,37.90314301437008],[-119.22376095939734,37.903081445058824],[-119.22373363593069,37.90301911233577],[-119.22371448605618,37.90297006077182],[-119.22369751060269,37.90292050904596],[-119.22368273029107,37.902870517655536],[-119.22367016316201,37.902820147634564],[-119.22365982455402,37.90276946047916],[-119.2236517270848,37.90271851807255],[-119.22364588063577,37.90266738260942],[-119.22364229234009,37.902616116520065],[-119.22364096657392,37.90256478239411],[-119.2236419049512,37.90251344290412],[-119.22364510632157,37.90246216072912],[-119.22365056677187,37.902410998477954],[-119.22365137925043,37.902403385026325],[-119.22365185537545,37.9023957537242],[-119.22365199456515,37.90238811389837],[-119.22365179664946,37.90238047488603],[-119.2236512618704,37.90237284602338],[-119.22365039088169,37.902365236634246],[-119.22364918474793,37.902357656018616],[-119.22364764494327,37.90235011344131],[-119.22364577334979,37.90234261812067],[-119.22364357225499,37.90233517921727],[-119.22364104434902,37.90232780582272],[-119.22363819272158,37.90232050694862],[-119.22363502085794,37.902313291515405],[-119.22363153263474,37.90230616834162],[-119.22362773231526,37.902299146132926],[-119.22362362454426,37.90229223347176],[-119.22361921434218,37.90228543880647],[-119.22361450709917,37.902278770441356],[-119.22360950856832,37.90227223652628],[-119.22360422485878,37.90226584504678],[-119.22359866242816,37.90225960381436],[-119.22359282807483,37.90225352045681],[-119.22358672892939,37.90224760240907],[-119.22358037244605,37.902241856903935],[-119.22357376639363,37.902236290963415],[-119.2235669188458,37.90223091139001],[-119.22355983817154,37.90222572475848],[-119.22355253302459,37.90222073740772],[-119.22354501233319,37.90221595543314],[-119.22353728528884,37.90221138467908],[-119.22352936133537,37.90220703073179],[-119.22352125015713,37.90220289891249],[-119.22351296166744,37.90219899427096],[-119.22350450599615,37.90219532157933],[-119.22349589347759,37.90219188532621],[-119.22348713463765,37.90218868971131],[-119.22347824018114,37.902185738640185],[-119.22346922097854,37.90218303571952],[-119.2234600880528,37.90218058425272],[-119.22345085256592,37.902178387235914],[-119.22344152580513,37.90217644735419],[-119.22343211916933,37.90217476697841],[-119.22342264415495,37.90217334816228],[-119.22341311234203,37.90217219263982],[-119.22340353538,37.90217130182326],[-119.22339392497351,37.902170676801354],[-119.22338429286803,37.90217031833794],[-119.22337465083561,37.902170226871156],[-119.22336501066034,37.90217040251276],[-119.2233553841241,37.90217084504811],[-119.22332554172142,37.90217222491317],[-119.22329565716097,37.9021727933656],[-119.22326576557202,37.90217254973724],[-119.22323590209193,37.902171494314395],[-119.22320610182513,37.90216962833775],[-119.22317639980166,37.90216695400074],[-119.22314683093613,37.90216347444705],[-119.22311742998656,37.90215919376686],[-119.22308823151363,37.9021541169921],[-119.22305926983991,37.90214825009049],[-119.22303057900963,37.902141599958526],[-119.22300219274864,37.9021341744134],[-119.22297414442473,37.90212598218382],[-119.22294646700838,37.902117032899646],[-119.2229191930341,37.90210733708073],[-119.22289235456205,37.902096906124406],[-119.2228659831405,37.90208575229222],[-119.22284010976857,37.90207388869538],[-119.22281476485996,37.902061329279434],[-119.22259201158194,37.901949990763335],[-119.22236561035496,37.901843372595245],[-119.22231724293762,37.90182040098726],[-119.22226988881349,37.90179614006347],[-119.22222360270025,37.90177061785784],[-119.22217843808126,37.9017438638618],[-119.22213444714383,37.901715908990056],[-119.22209168071892,37.901686785544904],[-119.22205018822228,37.90165652717895],[-119.22201001759757,37.901625168856135],[-119.22197121526072,37.9015927468114],[-119.22193382604648,37.90155929850875],[-119.22189789315651,37.90152486259804],[-119.22186345810951,37.90148947887021],[-119.22183056069323,37.90145318821136],[-119.22179923891856,37.90141603255559],[-119.22176952897547,37.901378054836265],[-119.22174146519137,37.901339298936755],[-119.22171507999133,37.90129980963944],[-119.22169040386076,37.901259632574124],[-119.22166746530995,37.90121881416524],[-119.2216462908414,37.901177401578195],[-119.2216269049191,37.90113544266488],[-119.22160932994022,37.90109298590846],[-119.22159358620934,37.901050080367156],[-119.22149107281145,37.90076957195601],[-119.22137734691981,37.90049179041739],[-119.22125252384104,37.90021701708843],[-119.22121566428385,37.90014364647962],[-119.22117560342002,37.900071337214875],[-119.2211323898315,37.90000017696688],[-119.22108607592212,37.89993025201502],[-119.22103671785443,37.89986164714065],[-119.2209843754814,37.89979444552436],[-119.22092911227375,37.89972872864508],[-119.22087099524319,37.89966457618144],[-119.22081009486082,37.899602065915026],[-119.22074648497201,37.89954127363619],[-119.22068024270663,37.89948227305207],[-119.22061144838555,37.8994251356974],[-119.22050065739278,37.899339095574966],[-119.22038641473252,37.899255938088736],[-119.22026883980165,37.89917575013984],[-119.22014805547815,37.89909861552589],[-119.22002418799256,37.89902461485341],[-119.21989736679626,37.898953825453766],[-119.21976772442609,37.89888632130226],[-119.21963539636592,37.89882217294089],[-119.21950052090503,37.898761447404716],[-119.21942969590745,37.8987319891234],[-119.21935763639824,37.89870447496662],[-119.21928442733437,37.898678937372736],[-119.2192101550279,37.89865540644961],[-119.21913490704407,37.89863390993941],[-119.21905877209821,37.89861447318572],[-119.21898183995108,37.898597119103734],[-119.21890420130322,37.89858186815324],[-119.21882594768779,37.89856873831453],[-119.21874717136289,37.898557745067144],[-119.21866796520274,37.89854890137171],[-119.21858842258814,37.8985422176545],[-119.21850863729654,37.89853770179545],[-119.21842870339141,37.89853535911848],[-119.21834871511136,37.898535192385566],[-119.21826876675912,37.898537201793246],[-119.21818895259038,37.898541384972525],[-119.21810936670263,37.89854773699162],[-119.21803010292429,37.89855625036172],[-119.21795125470412,37.89856691504594],[-119.21789344488312,37.89857634800823],[-119.21783606901049,37.898587319218336],[-119.21777919225116,37.89859981621571],[-119.21772287920336,37.8986138248068],[-119.21766719382514,37.898629329081295],[-119.21761219936181,37.898646311430156],[-119.2175579582741,37.8986647525656],[-119.21750453216723,37.89868463154293],[-119.21745198172086,37.89870592578449],[-119.21740036662037,37.89872861110516],[-119.21734974548893,37.89875266173991],[-119.21730017582094,37.89877805037294],[-119.21725171391682,37.898804748168814],[-119.21720441481897,37.89883272480521],[-119.21715833224927,37.89886194850725],[-119.21711351854817,37.89889238608367],[-119.21707002461508,37.89892400296451],[-119.21702789985076,37.89895676324032],[-119.21698386396785,37.89899099145668],[-119.21693837524954,37.899024005141705],[-119.21689148701263,37.89905576559911],[-119.21684325421445,37.89908623560152],[-119.21679373338867,37.89911537943405],[-119.21674298257884,37.89914316293624],[-119.21669106127047,37.899169553542094],[-119.21663803032118,37.89919452031826],[-119.21658395188945,37.899218034000214],[-119.21652888936181,37.8992400670267],[-119.2164729072784,37.899260593571945],[-119.21641607125737,37.89927958957593],[-119.21635844791801,37.89929703277271],[-119.21630010480257,37.89931290271633],[-119.21624111029712,37.89932718080496],[-119.2161815335514,37.89933985030267],[-119.21612144439776,37.899350896358925],[-119.21606091326916,37.899360306026175],[-119.21600001111683,37.89936806827495],[-119.21593880932687,37.899374174006724],[-119.21587737963678,37.899378616064716],[-119.21581579405108,37.89938138924218],[-119.2157541247572,37.899382490288524],[-119.2156924440406,37.8993819179132],[-119.2156308242002,37.89937967278709],[-119.21556933746349,37.89937575754181],[-119.21550805590202,37.8993701767666],[-119.21544705134667,37.899362937002955],[-119.21538639530367,37.89935404673692],[-119.21519432200044,37.899325822007086],[-119.21500116897663,37.899302682177726],[-119.2148071505494,37.89928465292412],[-119.21461248199569,37.899271754251004],[-119.21441737931323,37.89926400047032],[-119.21422205898132,37.8992614001854],[-119.2140267377205,37.89926395628149],[-119.21383163225246,37.89927166592241],[-119.21363695905949,37.899284520553756],[-119.21344293414454,37.89930250591245],[-119.21324977279167,37.89932560204247],[-119.21305768932733,37.89935378331708],[-119.21286689688257,37.89938701846707],[-119.21267760715678,37.89942527061565],[-119.21249003018295,37.8994684973192],[-119.21230437409459,37.899516650614395],[-119.21212084489507,37.89956967707139],[-119.21193964622898,37.89962751785304],[-119.2119066720787,37.89963603523988],[-119.21187407824462,37.89964542691865],[-119.21184190163399,37.89965568225485],[-119.21181017868155,37.899666789636036],[-119.21177894530845,37.899678736484944],[-119.21174823688156,37.89969150927375],[-119.21171808817334,37.89970509353937],[-119.2116885333225,37.89971947389991],[-119.21165960579543,37.899734634071926],[-119.21163133834814,37.899750556889046],[-119.21160376298936,37.89976722432126],[-119.21157691094417,37.899784617495406],[-119.21155081261871,37.899802716716536],[-119.21152549756563,37.899821501490166],[-119.21150099445079,37.89984095054555],[-119.21147733102073,37.89986104185975],[-119.21145453407122,37.899881752682546],[-119.21143262941693,37.899903059562114],[-119.21141164186227,37.899924938371825],[-119.21139159517314,37.89994736433728],[-119.21138390436674,37.899955970647824],[-119.21137585563112,37.89996436893789],[-119.21136745792003,37.89997254986468],[-119.21135872057549,37.899980504327296],[-119.21134965331734,37.89998822347667],[-119.21134026623243,37.89999569872558],[-119.2113305697634,37.900002921758116],[-119.21132057469714,37.90000988453894],[-119.21131029215267,37.90001657932222],[-119.21129973356886,37.900022998660255],[-119.21128891069168,37.900029135411806],[-119.21127783556105,37.900034982749986],[-119.21125677419326,37.90004531486534],[-119.21123528856998,37.9000550831189],[-119.21121340272438,37.900064276584104],[-119.21119114113728,37.90007288497729],[-119.21116852870992,37.90008089866937],[-119.21114559073591,37.9000883086964],[-119.21112235287315,37.900095106769655],[-119.21109884111489,37.90010128528497],[-119.21107508176085,37.9001068373312],[-119.21105110138771,37.900111756697925],[-119.21102692681936,37.900116037882455],[-119.21100258509698,37.90011967609594],[-119.2109781034487,37.90012266726876],[-119.21095350925918,37.90012500805502],[-119.21092883003904,37.9001266958364],[-119.21090409339394,37.900127728724975],[-119.21087932699378,37.900128105565344],[-119.21084976077017,37.90012775687401],[-119.21082022763828,37.90012659517911],[-119.21079076319232,37.90012462188078],[-119.21076140294376,37.90012183935729],[-119.21073218227843,37.90011825096223],[-119.21070313641394,37.90011386102043],[-119.21067430035718,37.90010867482276],[-119.2106457088622,37.90010269861982],[-119.21061739638824,37.90009593961425],[-119.21058939705821,37.900088405952246],[-119.21056174461764,37.900080106713574],[-119.2105344723939,37.90007105190067],[-119.21050761325611,37.90006125242668],[-119.21048119957547,37.900050720102215],[-119.21045526318622,37.90003946762108],[-119.21042983534737,37.90002750854504],[-119.21040494670501,37.90001485728751],[-119.21038062725525,37.9000015290961],[-119.21035690630814,37.89998754003426],[-119.21033381245242,37.89997290696196],[-119.21031137352095,37.899957647515244],[-119.21028961655726,37.89994178008522],[-119.21026856778283,37.899925323795614],[-119.21024825256563,37.899908298479865],[-119.21022869538943,37.899890724657276],[-119.21020991982441,37.89987262350811],[-119.21019194849862,37.899854016848195],[-119.21014421548996,37.8998008496842],[-119.21009886609022,37.89974638816087],[-119.21005595614001,37.89969069934526],[-119.21001553847549,37.89963385181562],[-119.2099776628633,37.899575915577024],[-119.20994237593936,37.899516961975],[-119.20990972115148,37.89945706360772],[-119.2098797387057,37.8993962942367],[-119.20985246551712,37.89933472869579],[-119.20982793516413,37.899272442799145],[-119.20981870022726,37.899245791042006],[-119.20981061291505,37.89921890612987],[-119.20980368255724,37.89919181908199],[-119.20979791714869,37.899164561150876],[-119.20979332334008,37.89913716378609],[-119.20978990643034,37.899109658598086],[-119.20978767036054,37.899082077321665],[-119.20978661770924,37.89905445177939],[-119.20978674968967,37.89902681384488],[-119.2097880661482,37.89899919540595],[-119.20979056556466,37.898971628327985],[-119.20979424505394,37.898944144416994],[-119.20979910036947,37.89891677538303],[-119.20980512590806,37.898889552803574],[-119.20981231471636,37.898862508087106],[-119.20982065849893,37.89883567243681],[-119.20983014762774,37.8988090768147],[-119.20984077115341,37.898782751905735],[-119.20985251681773,37.89875672808259],[-119.20986537106788,37.89873103537046],[-119.20987931907199,37.89870570341253],[-119.20989434473638,37.89868076143573],[-119.20990695974902,37.89865982612868],[-119.20991867528495,37.898638565160454],[-119.20992947797812,37.89861700278872],[-119.20993935550406,37.89859516361496],[-119.20994829659384,37.89857307255647],[-119.20995629104704,37.89855075481793],[-119.20996332974326,37.89852823586267],[-119.20996940465268,37.89850554138344],[-119.20997450884505,37.89848269727334],[-119.20997863649767,37.89845972959614],[-119.20998178290208,37.898436664556556],[-119.2099839444693,37.898413528470414],[-119.20998511873408,37.89839034773446],[-119.20998530435759,37.898367148796495],[-119.20998450112893,37.89834395812497],[-119.2099827099655,37.89832080217893],[-119.20997993291178,37.89829770737772],[-119.20997617313718,37.898274700070985],[-119.2099714349322,37.898251806508426],[-119.20996572370372,37.898229052810024],[-119.20995904596874,37.89820646493611],[-119.20995140934696,37.89818406865783],[-119.20994282255204,37.898161889527685],[-119.20993329538173,37.89813995285042],[-119.20992283870669,37.89811828365413],[-119.20991804166984,37.89810928333879],[-119.20991285013666,37.89810042154605],[-119.20990727046569,37.89809170912953],[-119.2099013094909,37.898083156759974],[-119.2098949745132,37.898074774912025],[-119.20988827329164,37.89806657385154],[-119.20988121403373,37.89805856362287],[-119.2098738053856,37.89805075403673],[-119.20986605642118,37.89804315465805],[-119.20985797663126,37.89803577479425],[-119.20984957591182,37.898028623484],[-119.20976180101826,37.89795407370062],[-119.20967715061377,37.89787728861014],[-119.20959571529269,37.89779835039804],[-119.20951758220724,37.8977173435542],[-119.2094428349744,37.89763435478226],[-119.20937155358638,37.89754947290691],[-119.20936012668444,37.89753482039124],[-119.20934934514027,37.89751986392218],[-119.2093392218145,37.89750462134103],[-119.20932976878262,37.89748911083025],[-119.20932099732052,37.897473350892014],[-119.20931291789103,37.897457360325944],[-119.20930554013142,37.8974411582068],[-119.209298872842,37.89742476386165],[-119.20929292397553,37.897408196846875],[-119.20928770062771,37.89739147692483],[-119.20928320902891,37.897374624040246],[-119.20927945453647,37.897357658296414],[-119.20927644162852,37.8973405999313],[-119.20927417389858,37.89732346929326],[-119.2092726540512,37.89730628681692],[-119.20927188389888,37.89728907299872],[-119.20927186435974,37.89727184837242],[-119.20927259545658,37.89725463348471],[-119.20927407631679,37.89723744887064],[-119.20927630517339,37.89722031502912],[-119.20927927936711,37.897203252398484],[-119.20928299534965,37.897186281332104],[-119.20928744868786,37.89716942207414],[-119.20929263406902,37.89715269473536],[-119.20929854530718,37.8971361192691],[-119.20930517535058,37.89711971544759],[-119.20931251629007,37.89710350283829],[-119.20932055936848,37.89708750078053],[-119.20932929499108,37.89707172836248],[-119.20933871273714,37.89705620439839],[-119.20934880137216,37.89704094740606],[-119.2093595488615,37.897025975584945],[-119.20937094238458,37.897011306794205],[-119.2093829683502,37.89699695853156],[-119.20939561241276,37.896982947912385],[-119.20940885948947,37.8969692916493],[-119.20942269377821,37.89695600603218],[-119.20943709877635,37.89694310690878],[-119.20945205730065,37.89693060966585],[-119.20946755150759,37.896918529210716],[-119.2094835629146,37.896906879953534],[-119.20950007242232,37.8968956757901],[-119.20951706033715,37.8968849300853],[-119.20953450639489,37.8968746556571],[-119.20955238978495,37.89686486476134],[-119.20957068917495,37.89685556907706],[-119.20957617713897,37.8968527810392],[-119.2095815400018,37.89684984410919],[-119.20958677133329,37.89684676180849],[-119.20959186486095,37.89684353783284],[-119.20959681447758,37.89684017604785],[-119.20960161424848,37.89683668048437],[-119.20960625841863,37.89683305533365],[-119.20961074141964,37.89682930494235],[-119.20961505787629,37.896825433807216],[-119.20961920261313,37.89682144656985],[-119.20962317066049,37.896817348011034],[-119.2096269572607,37.896813143045],[-119.20963055787354,37.89680883671363],[-119.20963396818185,37.896804434180254],[-119.20963718409664,37.89679994072361],[-119.20964020176199,37.896795361731456],[-119.20964301755971,37.896790702694055],[-119.20964562811366,37.89678596919773],[-119.20964803029376,37.896781166918],[-119.20965022121977,37.896776301612874],[-119.20965219826482,37.89677137911596],[-119.2096539590584,37.896766405329416],[-119.20965550148932,37.896761386216944],[-119.20965682370827,37.89675632779647],[-119.20965792412991,37.896751236133184],[-119.20965880143486,37.896746117332015],[-119.20965945457125,37.89674097753057],[-119.20965988275604,37.89673582289153],[-119.20966008547585,37.896730659595335],[-119.20966006248764,37.896725493832946],[-119.20965981381907,37.89672033179816],[-119.20965933976832,37.8967151796803],[-119.20965864090384,37.896710043656874],[-119.20965771806361,37.89670492988605],[-119.20965657235418,37.896699844499295],[-119.20965520514933,37.896694793594065],[-119.20965361808841,37.89668978322649],[-119.20965181307433,37.896684819404044],[-119.20964979227142,37.89667990807845],[-119.20964755810266,37.896675055138424],[-119.20964511324689,37.89667026640272],[-119.20964246063559,37.89666554761309],[-119.2096396034493,37.89666090442742],[-119.20963654511387,37.89665634241295],[-119.20963328929629,37.896651867039616],[-119.2096298399004,37.896647483673405],[-119.20962620106206,37.89664319757008],[-119.20962237714434,37.896639013868686],[-119.20961837273218,37.89663493758552],[-119.20961419262697,37.896630973608126],[-119.20960984184069,37.89662712668934],[-119.20960532559006,37.89662340144167],[-119.20960064929007,37.896619802331706],[-119.20959581854773,37.89661633367486],[-119.20959083915513,37.896612999630044],[-119.20958571708267,37.896609804194846],[-119.20958045847178,37.89660675120059],[-119.2095750696276,37.89660384430788],[-119.20954105638658,37.896585494690314],[-119.20950786761817,37.89656622034478],[-119.20947554334039,37.89654604451214],[-119.2094441225289,37.896524991520224],[-119.20941364306974,37.89650308675445],[-119.20938414171388,37.8964803566274],[-119.20935565403276,37.89645682854668],[-119.20932821437545,37.89643253088218],[-119.20930185582723,37.896407492931644],[-119.20927661016972,37.89638174488539],[-119.20925250784254,37.89635531778998],[-119.20922957790657,37.89632824351068],[-119.20920784800896,37.89630055469315],[-119.20918734434983,37.89627228472394],[-119.20916809165061,37.89624346769034],[-119.20915011312425,37.89621413833922],[-119.20913343044731,37.896184332035176],[-119.20912147495106,37.89616294526328],[-119.20910861390038,37.89614189099856],[-119.20909486199886,37.89612119331036],[-119.20908023496845,37.89610087586037],[-119.20906474953154,37.89608096187555],[-119.20904842339176,37.89606147412162],[-119.20903127521387,37.896042434877],[-119.20901332460228,37.896023865907374],[-119.20899459207874,37.89600578844079],[-119.20897509905873,37.89598822314334],[-119.20895486782722,37.89597119009571],[-119.208933921513,37.89595470876995],[-119.20891228406222,37.89593879800752],[-119.2088899802112,37.895923475997485],[-119.20886703545796,37.895908760255914],[-119.20884347603318,37.89589466760576],[-119.20881932887019,37.89588121415764],[-119.20879462157417,37.89586841529145],[-119.20876938239057,37.89585628563877],[-119.20874364017284,37.89584483906609],[-119.20871742434949,37.89583408865905],[-119.20869076489042,37.89582404670741],[-119.20868477699315,37.895821788821834],[-119.20867889135484,37.89581936797441],[-119.20867311503542,37.895816787069],[-119.20866745496373,37.89581404920146],[-119.20866191792913,37.89581115765594],[-119.20865651057345,37.89580811590089],[-119.20865123938285,37.89580492758498],[-119.20864611068023,37.89580159653265],[-119.20864113061761,37.89579812673959],[-119.20863630516864,37.89579452236789],[-119.20863164012154,37.895790787741085],[-119.20862714107211,37.895786927338904],[-119.208622813417,37.895782945792035],[-119.20861866234735,37.895778847876365],[-119.20861469284239,37.89577463850748],[-119.20861090966359,37.8957703227346],[-119.20860731734895,37.89576590573456],[-119.20860392020745,37.89576139280566],[-119.20860072231407,37.89575678936128],[-119.20859772750462,37.89575210092329],[-119.20859493937144,37.895747333115594],[-119.2085923612589,37.89574249165727],[-119.20858999625948,37.89573758235574],[-119.20858784720997,37.89573261109982],[-119.20858591668816,37.89572758385259],[-119.2085842070097,37.89572250664436],[-119.20858272022537,37.89571738556534],[-119.2085814581185,37.89571222675832],[-119.20858042220299,37.89570703641142],[-119.20857961372138,37.89570182075054],[-119.20857903364339,37.895696586031946],[-119.20857868266486,37.8956913385348],[-119.20857856120668,37.89568608455354],[-119.20857866941449,37.89568083039043],[-119.20857900715846,37.895675582347906],[-119.20857957403342,37.89567034672108],[-119.20858036935937,37.89566512979018],[-119.2085813921822,37.89565993781301],[-119.20858308037374,37.89565296158345],[-119.20858507183198,37.89564603576056],[-119.20858736417708,37.8956391686205],[-119.20858995466965,37.895632368369306],[-119.20859284021407,37.895625643133094],[-119.20859601736213,37.89561900094829],[-119.20859948231713,37.89561244975215],[-119.20860323093848,37.89560599737313],[-119.20860725874662,37.895599651521614],[-119.20861156092839,37.89559341978073],[-119.20861613234274,37.89558730959721],[-119.2086209675269,37.89558132827252],[-119.20862606070293,37.89557548295415],[-119.20863140578454,37.89556978062707],[-119.20863699638454,37.8955642281054],[-119.20864282582224,37.8955588320242],[-119.20864888713162,37.89555359883164],[-119.20865517306957,37.89554853478118],[-119.20866167612454,37.89554364592423],[-119.20866838852558,37.89553893810276],[-119.20867530225154,37.895534416942496],[-119.20868240904072,37.89553008784606],[-119.20868970040073,37.89552595598658],[-119.2086971676186,37.895522026301485],[-119.20870480177122,37.89551830348661],[-119.20871259373607,37.895514791990585],[-119.20872053420193,37.89551149600954],[-119.20872861368026,37.89550841948205],[-119.20873682251633,37.89550556608445],[-119.20874515090087,37.89550293922647],[-119.20875358888173,37.895500542047095],[-119.2087621263758,37.89549837741088],[-119.20877075318111,37.89549644790447],[-119.2087794589889,37.89549475583356],[-119.20878823339605,37.895493303220135],[-119.20879706591744,37.89549209180002],[-119.20880594599856,37.895491123020776],[-119.20881486302797,37.89549039804011],[-119.2088238063502,37.895489917724305],[-119.20883276527827,37.89548968264734],[-119.2088417291066,37.895489693090134],[-119.20885068712374,37.89548994904018],[-119.20885962862516,37.89549045019165],[-119.20886854292614,37.895491195945695],[-119.20887741937436,37.89549218541114],[-119.2088862473628,37.89549341740562],[-119.20889501634232,37.89549489045694],[-119.20890371583434,37.895496602804876],[-119.20891233544324,37.89549855240321],[-119.20892086486889,37.89550073692226],[-119.20893436999032,37.89550419759223],[-119.2089480167972,37.8955072895874],[-119.20896178926765,37.895510009277665],[-119.20897567123225,37.89551235346997],[-119.20898964639306,37.895514319412165],[-119.2090036983427,37.89551590479615],[-119.20901781058365,37.895517107760625],[-119.20903196654749,37.895517926893255],[-119.20904614961465,37.895518361232334],[-119.20906034313361,37.89551841026796],[-119.20907453044063,37.89551807394256],[-119.20908869487926,37.89551735265098],[-119.20910281981985,37.895516247240046],[-119.20911688867919,37.89551475900755],[-119.20913088493988,37.89551288970075],[-119.20914479216978,37.89551064151427],[-119.20915859404123,37.89550801708757],[-119.20917227435032,37.89550501950185],[-119.20918581703587,37.89550165227637],[-119.2091992061982,37.895497919364395],[-119.20921242611803,37.895493825148485],[-119.2092254612746,37.89548937443544],[-119.20923829636425,37.89548457245056],[-119.20925091631806,37.89547942483154],[-119.20926330631983,37.895473937621894],[-119.20927545182326,37.89546811726379],[-119.20928733856913,37.89546197059058],[-119.20929895260201,37.89545550481865],[-119.20931028028672,37.89544872753907],[-119.20932130832419,37.895441646708626],[-119.20933202376722,37.89543427064043],[-119.20934241403553,37.895426607994295],[-119.20935246693074,37.895418667766386],[-119.20936217065048,37.89541045927887],[-119.20937151380237,37.89540199216874],[-119.20939018033675,37.89538386519268],[-119.20940806149551,37.895365247668686],[-119.20942513676576,37.89534616095493],[-119.20944138655932,37.89532662694782],[-119.209456792235,37.89530666805685],[-119.20947133612006,37.89528630717889],[-119.20948500153037,37.89526556767208],[-119.20949777278973,37.89524447332877],[-119.20950963524768,37.89522304834845],[-119.2095205752964,37.89520131730984],[-119.20953058038629,37.89517930514277],[-119.20953963904036,37.895157037099565],[-119.20954774086742,37.89513453872606],[-119.20955487657393,37.89511183583231],[-119.20956103797477,37.89508895446295],[-119.20956621800248,37.89506592086736],[-119.2095704107155,37.8950427614695],[-119.20957361130493,37.89501950283768],[-119.20957581609998,37.89499617165398],[-119.20957702257232,37.89497279468368],[-119.2095772293388,37.894949398744586],[-119.20957643616319,37.89492601067625],[-119.20957464395636,37.89490265730913],[-119.20957185477522,37.89487936543389],[-119.20956807182043,37.89485616177058],[-119.20956466727739,37.89483523354585],[-119.20956217374356,37.89481422486069],[-119.20956059417304,37.89479316061102],[-119.20955993043687,37.89477206575857],[-119.20956018332086,37.894750965301256],[-119.20956135252452,37.894729884243674],[-119.20956343666155,37.894708847567344],[-119.2095664332614,37.89468788020128],[-119.2095703387723,37.89466700699226],[-119.20957514856532,37.894646252675436],[-119.20958085694004,37.89462564184515],[-119.20958745713116,37.89460519892561],[-119.20959494131662,37.89458494814203],[-119.2096033006268,37.89456491349199],[-119.20961252515508,37.89454511871685],[-119.20962260396955,37.89452558727373],[-119.20963352512601,37.89450634230766],[-119.20964527568209,37.89448740662421],[-119.20965784171261,37.89446880266238],[-119.20967120832606,37.894450552468115],[-119.20968535968228,37.89443267766807],[-119.20970027901123,37.89441519944409],[-119.2097159486328,37.89439813850801],[-119.20973234997786,37.894381515077185],[-119.20974946361021,37.89436534885054],[-119.20976726924964,37.89434965898513],[-119.20978574579593,37.89433446407354],[-119.20980487135382,37.894319782121855],[-119.20982462325914,37.89430563052825],[-119.20984497810538,37.894292026062395],[-119.20986591177171,37.894278984845656],[-119.20988739945139,37.8942665223319],[-119.20990941568118,37.8942546532892],[-119.2099319343716,37.89424339178246],[-119.20995492883772,37.894232751156544],[-119.20997837183094,37.894222744020574],[-119.21000223557111,37.894213382233055],[-119.21002649177962,37.89420467688765],[-119.2100511117127,37.894196638300215],[-119.21007606619567,37.89418927599648],[-119.21010132565746,37.89418259870075],[-119.21012686016554,37.89417661432557],[-119.21015263946157,37.89417132996249],[-119.21017863299706,37.894166751873385],[-119.2101885232704,37.894165009982245],[-119.2101983320433,37.89416299940798],[-119.21020804769636,37.89416072253233],[-119.2102176587205,37.89415818205243],[-119.2102271537305,37.89415538097774],[-119.21023652147872,37.89415232262643],[-119.21024575086817,37.89414901062135],[-119.21025483096577,37.894145448885894],[-119.2102637510153,37.894141641639294],[-119.21027250045023,37.89413759339156],[-119.21028106890599,37.894133308938244],[-119.21028944623252,37.89412879335467],[-119.21029762250612,37.89412405198995],[-119.21030558804128,37.8941190904607],[-119.21031333340211,37.89411391464427],[-119.21032084941358,37.89410853067194],[-119.21032812717233,37.89410294492148],[-119.21033515805725,37.89409716400973],[-119.21034193373967,37.89409119478472],[-119.21034844619324,37.89408504431754],[-119.21035468770341,37.89407871989398],[-119.21036065087667,37.89407222900588],[-119.21036632864912,37.894065579342275],[-119.21037171429504,37.89405877878029],[-119.21037680143469,37.89405183537583],[-119.21038158404203,37.89404475735397],[-119.21038605645171,37.894037553099224],[-119.21039021336584,37.894030231145685],[-119.21039404986028,37.89402280016687],[-119.21039756139051,37.89401526896541],[-119.21040074379685,37.894007646462676],[-119.21040359330961,37.89399994168819],[-119.21040610655338,37.89399216376892],[-119.2104082805511,37.893984321918495],[-119.21041011272762,37.89397642542624],[-119.21041160091266,37.89396848364625],[-119.21041274334345,37.89396050598622],[-119.2104135386668,37.89395250189638],[-119.2104139859407,37.893944480858245],[-119.2104140846354,37.893936452373424],[-119.21041383463415,37.89392842595231],[-119.21041323623318,37.893920411102904],[-119.21041229014143,37.893912417319406],[-119.21041099747978,37.89390445407115],[-119.21040935977962,37.89389653079126],[-119.21040737898102,37.893888656865485],[-119.2104050574305,37.89388084162116],[-119.21040239787823,37.893873094316056],[-119.2103994034748,37.8938654241275],[-119.21039607776738,37.89385784014145],[-119.21039242469568,37.89385035134172],[-119.21038844858715,37.893842966599394],[-119.2103841541519,37.89383569466232],[-119.21037954647709,37.89382854414465],[-119.21037463102097,37.893821523516735],[-119.2103694136064,37.89381464109507],[-119.21034376968916,37.89378332403717],[-119.21031676427299,37.89375273414266],[-119.21028843016117,37.89372290856696],[-119.21025880177083,37.893693883537175],[-119.210227915091,37.89366569430802],[-119.21019580763885,37.89363837511889],[-119.21016251841435,37.89361195915247],[-119.21012808785268,37.89358647849425],[-119.21009255777514,37.89356196409369],[-119.21005597133853,37.893538445726556],[-119.21001837298243,37.8935159519588],[-119.20997980837554,37.89349451011182],[-119.20994032435999,37.8934741462293],[-119.20989996889456,37.89345488504564],[-119.20985879099635,37.89343674995582],[-119.20981684068131,37.89341976298703],[-119.2097741689035,37.893403944771926],[-119.20973082749309,37.89338931452357],[-119.20968686909362,37.89337589001206],[-119.20964234709786,37.89336368754302],[-119.20959731558305,37.89335272193773],[-119.20955182924529,37.89334300651519],[-119.20950594333294,37.893334553075846],[-119.20945971357972,37.893327371887345],[-119.20941319613691,37.89332147167204],[-119.20936644750512,37.89331685959645],[-119.20931952446578,37.893313541262394],[-119.209287490917,37.89331129739319],[-119.20925556890393,37.89330821280689],[-119.20922379355139,37.89330429089761],[-119.20919219982292,37.893299535980745],[-119.2091608224821,37.89329395328827],[-119.20912969605442,37.89328754896303],[-119.20909885478927,37.89328033005188],[-119.2090683326222,37.893272304498076],[-119.20903816313765,37.89326348113235],[-119.20900837953194,37.893253869663354],[-119.20897901457676,37.89324348066686],[-119.20895010058314,37.89323232557425],[-119.2089216693658,37.89322041665976],[-119.20889375220824,37.89320776702715],[-119.20886637982831,37.89319439059517],[-119.20883958234427,37.893180302082335],[-119.20881338924188,37.8931655169906],[-119.20878782934177,37.8931500515884],[-119.20875668957835,37.89312986320629],[-119.20872643349978,37.89310884790738],[-119.20869709605398,37.893087029966395],[-119.20866871112769,37.89306443458512],[-119.20864131150732,37.89304108786339],[-119.20861492884107,37.893017016768866],[-119.2085895936024,37.89299224910585],[-119.20856533505473,37.892966813483284],[-119.20854218121781,37.8929407392816],[-119.20852015883516,37.89291405661883],[-119.20849929334338,37.89288679631579],[-119.20847960884262,37.89285898986051],[-119.20846112806883,37.8928306693718],[-119.20844387236751,37.89280186756222],[-119.20842786166895,37.89277261770024],[-119.20841311446534,37.89274295357184],[-119.20839964778936,37.89271290944143],[-119.20838747719452,37.89268252001242],[-119.20837661673721,37.89265182038689],[-119.20836707896045,37.892620846025245],[-119.20835887487941,37.89258963270523],[-119.2083520139687,37.89255821648045],[-119.20834650415152,37.89252663363892],[-119.2082922246231,37.89221699504256],[-119.20822418943845,37.89190906746967],[-119.2081424835371,37.89160323458432],[-119.20811415013878,37.89149785829422],[-119.20809017803344,37.891391804396214],[-119.20807059281925,37.891285186220934],[-119.20805541540615,37.891178117701536],[-119.20804466199372,37.89107071325193],[-119.2080383440538,37.8909630876445],[-119.20803775207779,37.890953113700704],[-119.20803673616308,37.890943161241225],[-119.20803529746472,37.89093324157984],[-119.20803343761837,37.89092336599301],[-119.20803115873842,37.8909135457071],[-119.20802846341563,37.89090379188558],[-119.20802535471412,37.890894115616405],[-119.20802183616797,37.890884527899324],[-119.20801791177718,37.89087503963346],[-119.20801358600299,37.89086566160479],[-119.20800886376303,37.89085640447413],[-119.20800375042558,37.8908472787647],[-119.20799825180346,37.89083829485037],[-119.20799237414757,37.89082946294388],[-119.20798612413954,37.890820793085076],[-119.20797950888439,37.890812295129656],[-119.2079725359023,37.89080397873787],[-119.20796521312008,37.89079585336357],[-119.20795754886217,37.890787928243455],[-119.20741157200378,37.89024253054182],[-119.20738933829463,37.890221089945854],[-119.20736617940833,37.89020027353643],[-119.20734212322623,37.89018010637408],[-119.2073171987099,37.89016061273771],[-119.20729143586621,37.890141816095394],[-119.20726486571114,37.890123739076074],[-119.20723752023262,37.89010640344229],[-119.2072094323518,37.890089830064106],[-119.2071806358836,37.89007403889384],[-119.20715116549586,37.89005904894215],[-119.20712105666772,37.890044878255104],[-119.20709034564682,37.89003154389245],[-119.20707830754105,37.890026315217945],[-119.20706650768263,37.89002075590173],[-119.20705496052521,37.89001487275343],[-119.20704368021292,37.89000867297939],[-119.20703268056302,37.89000216417373],[-119.20702197504895,37.88999535430912],[-119.2070115767839,37.88998825172699],[-119.20700149850461,37.88998086512735],[-119.20699175255595,37.88997320355805],[-119.20698235087568,37.88996527640378],[-119.20697330497981,37.889957093374534],[-119.20696462594854,37.88994866449376],[-119.2069563244128,37.88994000008599],[-119.20694841054097,37.88993111076428],[-119.2069408940266,37.8899220074172],[-119.2069337840766,37.88991270119543],[-119.20692708939974,37.88990320349815],[-119.20692081819621,37.889893525959145],[-119.20691497814745,37.88988368043239],[-119.20690957640674,37.889873678977686],[-119.20690461959046,37.889863533845805],[-119.20690088144968,37.88985586424592],[-119.20689682265203,37.88984829770711],[-119.20689244771273,37.889840842646734],[-119.20688776149875,37.88983350735803],[-119.20688276922331,37.88982630000107],[-119.20687747644007,37.889819228593566],[-119.206871889037,37.88981230100202],[-119.2068660132298,37.8898055249329],[-119.20685985555502,37.889798907924174],[-119.20685342286272,37.88979245733684],[-119.20684672230894,37.88978618034674],[-119.20683976134768,37.88978008393661],[-119.20683254772258,37.88977417488831],[-119.20682508945845,37.889768459775276],[-119.20680116083933,37.889751316522386],[-119.20677651607183,37.88973482279091],[-119.20675118321346,37.88971899735826],[-119.20672519110502,37.88970385824104],[-119.20669856933782,37.889689422674515],[-119.20667134821996,37.889675707092955],[-119.20664355874177,37.88966272711092],[-119.20661523254067,37.88965049750556],[-119.20658640186502,37.889639032199746],[-119.2065570995374,37.88962834424623],[-119.2065273589174,37.889618445812715],[-119.20649721386346,37.88960934816813],[-119.20646669869447,37.88960106166971],[-119.20643584815062,37.88959359575127],[-119.20640469735383,37.88958695891238],[-119.20637328176791,37.88958115870878],[-119.206341637158,37.88957620174369],[-119.20630979955003,37.88957209366042],[-119.20627780518953,37.88956883913579],[-119.20624569050054,37.88956644187494],[-119.2062134920441,37.889564904607035],[-119.20618124647653,37.889564229082154],[-119.20614899050783,37.88956441606938],[-119.20600595002644,37.88956903936143],[-119.20586318148068,37.88957741741089],[-119.20572084174697,37.889589541011816],[-119.20557908723065,37.889605396842576],[-119.20543807369431,37.88962496748049],[-119.20529795608671,37.88964823142095],[-119.20524615592511,37.889656851276925],[-119.20519403202269,37.88966414313924],[-119.20514163857244,37.88967009942659],[-119.20508903004777,37.889674713946235],[-119.20503626114568,37.889677981900455],[-119.20498338672991,37.889679899891576],[-119.20493046177397,37.88968046592546],[-119.20487754130389,37.88967967941361],[-119.20482468034103,37.88967754117371],[-119.20477193384492,37.889674053428976],[-119.20471935665606,37.88966921980555],[-119.20469489723305,37.88966631537231],[-119.20467057758785,37.88966274913984],[-119.2046464262222,37.88965852528761],[-119.20462247144067,37.88965364876586],[-119.2045987413173,37.889648125289675],[-119.20457526366296,37.889641961332416],[-119.20455206599254,37.88963516411794],[-119.2045291754928,37.889627741612415],[-119.20450661899044,37.88961970251469],[-119.20448442292079,37.889611056246316],[-119.20446261329667,37.889601812940384],[-119.20444121567796,37.88959198342968],[-119.20442025514171,37.88958157923405],[-119.20439975625268,37.889570612546805],[-119.20437974303456,37.889559096220424],[-119.20436023894179,37.88954704375162],[-119.20434126683219,37.88953446926541],[-119.20432284893995,37.88952138749857],[-119.20430500684984,37.88950781378235],[-119.20428776147168,37.88949376402461],[-119.204271133016,37.88947925469103],[-119.20425514097025,37.88946430278597],[-119.20423980407601,37.88944892583234],[-119.20422514030702,37.88943314185129],[-119.20421116684815,37.88941696934089],[-119.20419790007516,37.88940042725457],[-119.2041853555356,37.88938353497892],[-119.20417354793062,37.88936631231084],[-119.20416249109758,37.889348779434464],[-119.20415219799405,37.889330956897446],[-119.20414268068245,37.88931286558693],[-119.20413395031602,37.88929452670496],[-119.20412601712573,37.88927596174379],[-119.20411889040822,37.88925719246055],[-119.20411257851505,37.889238240851846],[-119.20409790620756,37.88919413694446],[-119.20408136846204,37.88915044955919],[-119.20406298403542,37.889107228237165],[-119.20404277377867,37.88906452199092],[-119.20402076061308,37.889022379248814],[-119.20399696950433,37.88898084780014],[-119.2039714274341,37.88893997474091],[-119.20394416336951,37.888899806420454],[-119.20391520823026,37.88886038838882],[-119.20388459485345,37.88882176534527],[-119.20387374992929,37.888809064066436],[-119.20386236028544,37.88879666586637],[-119.20385043939561,37.88878458541151],[-119.20383800136189,37.888772836992445],[-119.20382506089803,37.88876143450696],[-119.20381163331223,37.88875039144361],[-119.20379773448876,37.88873972086578],[-119.20378338086948,37.8887294353962],[-119.20376858943413,37.888719547202065],[-119.20375337768036,37.88871006798055],[-119.203737763603,37.88870100894509],[-119.20372176567281,37.88869238081202],[-119.20370540281462,37.88868419378799],[-119.20368869438488,37.888676457557764],[-119.20367166014886,37.88866918127288],[-119.20365432025724,37.88866237354079],[-119.20363669522217,37.88865604241469],[-119.20361880589317,37.8886501953839],[-119.20360067343235,37.88864483936517],[-119.20358231928942,37.88863998069433],[-119.20356376517638,37.88863562511892],[-119.20354503304168,37.88863177779136],[-119.20352614504438,37.8886284432628],[-119.2035071235279,37.8886256254778],[-119.20348799099362,37.88862332776963],[-119.20346877007425,37.88862155285638],[-119.20344948350701,37.888620302837616],[-119.2034301541068,37.88861957919208],[-119.20341080473915,37.8886193827758],[-119.20339145829324,37.88861971382111],[-119.20331684951036,37.888621035609454],[-119.20324222621682,37.88862041346134],[-119.20316766903366,37.88861784804893],[-119.20309325851042,37.88861334214378],[-119.20301907503818,37.88860690061397],[-119.20294519876263,37.88859853041877],[-119.20287170949757,37.88858824060103],[-119.20279868663852,37.88857604227762],[-119.20272620907703,37.88856194862724],[-119.2026543551154,37.888545974876195],[-119.2025832023821,37.88852813828209],[-119.2025128277478,37.88850845811496],[-119.20244330724238,37.88848695563667],[-119.20237471597282,37.88846365407774],[-119.20236168277312,37.888459236801076],[-119.20234846478108,37.88845517903703],[-119.20233507778025,37.888451485630966],[-119.20232153775588,37.8884481609931],[-119.20230786087608,37.88844520909338],[-119.20229406347227,37.88844263345668],[-119.20228016201982,37.88844043715844],[-119.20226617311832,37.888438622821354],[-119.20225211347183,37.88843719261183],[-119.20223799986881,37.888436148237695],[-119.2022238491622,37.888435490946044],[-119.20220967824922,37.88843522152172],[-119.20219550405118,37.888435340286435],[-119.20218134349341,37.88843584709839],[-119.20216721348487,37.88843674135239],[-119.2021531308981,37.888438021980654],[-119.20213911254893,37.888439687453925],[-119.2021251751766,37.88844173578354],[-119.20211133542355,37.888444164523584],[-119.20209760981575,37.88844697077391],[-119.20208401474282,37.88845015118361],[-119.20207056643855,37.88845370195499],[-119.20205728096145,37.88845761884807],[-119.20204417417563,37.88846189718579],[-119.20203126173182,37.88846653185937],[-119.20201855904867,37.888471517334594],[-119.20200608129446,37.88847684765834],[-119.20199384336877,37.888482516465714],[-119.2019818598849,37.888488516987636],[-119.20197014515229,37.88849484205892],[-119.20195871315951,37.88850148412685],[-119.20194757755752,37.88850843526018],[-119.2019367516433,37.88851568715859],[-119.20192624834417,37.888523231162594],[-119.20191608020212,37.88853105826401],[-119.20191164683578,37.88853447059225],[-119.20190706695034,37.88853775913658],[-119.20190234604532,37.888540919948106],[-119.20189748978969,37.888543949231256],[-119.20189250401484,37.88854684334848],[-119.20188739470773,37.88854959882445],[-119.20188216800366,37.88855221235035],[-119.201876830179,37.888554680787834],[-119.20187138764337,37.888557001172764],[-119.20186584693228,37.888559170718814],[-119.20186021469905,37.888561186820745],[-119.20185449770698,37.88856304705759],[-119.20184870282108,37.88856474919556],[-119.20184283699993,37.8885662911907],[-119.20183690728726,37.88856767119136],[-119.20183092080359,37.888568887540416],[-119.20182488473755,37.888569938777266],[-119.2018188063373,37.88857082363958],[-119.20181269290191,37.88857154106478],[-119.20180655177248,37.88857209019139],[-119.20180039032333,37.888572470359996],[-119.20179421595326,37.8885726811141],[-119.20178803607648,37.8885727222006],[-119.20178185811395,37.88857259357019],[-119.2017756894842,37.88857229537734],[-119.20176953759461,37.88857182798009],[-119.20176340983248,37.88857119193968],[-119.20175731355609,37.88857038801992],[-119.20175125608594,37.88856941718617],[-119.20174524469594,37.8885682806042],[-119.20173928660464,37.88856697963883],[-119.20173338896659,37.88856551585229],[-119.20172755886374,37.88856389100233],[-119.20172180329698,37.88856210704003],[-119.20171612917765,37.88856016610767],[-119.20171054331934,37.88855807053591],[-119.20170505242952,37.88855582284115],[-119.20169966310182,37.88855342572244],[-119.20169438180777,37.888550882058304],[-119.20168921488919,37.88854819490315],[-119.2016841685506,37.888545367483815],[-119.20167924885168,37.88854240319543],[-119.20167446170002,37.88853930559761],[-119.20166981284413,37.88853607840999],[-119.20166530786635,37.88853272550777],[-119.20166095217634,37.88852925091718],[-119.2016567510044,37.88852565881056],[-119.20165270939535,37.88852195350134],[-119.20164883220235,37.8885181394389],[-119.20164512408118,37.88851422120324],[-119.20164158948458,37.888510203499365],[-119.20163823265686,37.88850609115182],[-119.20163505762895,37.888501889098755],[-119.20163206821339,37.888497602386025],[-119.20162926799989,37.88849323616117],[-119.20162666035094,37.888488795667215],[-119.2016242483978,37.8884842862363],[-119.20162203503672,37.888479713283445],[-119.20162002292552,37.888475082299856],[-119.20161821448028,37.88847039884651],[-119.20161661187255,37.8884656685473],[-119.2016146281717,37.88845980790038],[-119.20161239288964,37.88845400440852],[-119.20160990863826,37.888448264852734],[-119.20160717832027,37.88844259593931],[-119.20160420512595,37.88843700429206],[-119.20160099252936,37.88843149644443],[-119.20159754428424,37.888426078832026],[-119.20159386441973,37.88842075778495],[-119.20158995723553,37.88841553952053],[-119.201585827297,37.88841043013595],[-119.20158147942972,37.888405435601186],[-119.201576918714,37.88840056175207],[-119.20157215047873,37.88839581428335],[-119.20156718029531,37.88839119874215],[-119.20156201397114,37.88838672052141],[-119.20155665754277,37.88838238485363],[-119.20155111726885,37.88837819680478],[-119.20154539962287,37.88837416126829],[-119.2015395112855,37.888370282959464],[-119.20153345913698,37.8883665664098],[-119.20152725024879,37.88836301596186],[-119.20152089187567,37.888359635764076],[-119.20151439144692,37.88835642976603],[-119.20150775655793,37.88835340171366],[-119.20150099496111,37.888350555145095],[-119.20143530089884,37.88832295236105],[-119.20137077593559,37.888293668720394],[-119.20130748851955,37.888262735287874],[-119.20124550578593,37.8882301848784],[-119.2011848934855,37.888196052022046],[-119.20112571591514,37.888160372927636],[-119.20106803584935,37.88812318544419],[-119.20101191447381,37.88808452902075],[-119.20095741132052,37.888044444664615],[-119.20089095403874,37.88799221428432],[-119.20082675752828,37.887938237112174],[-119.20076489484212,37.88788257457617],[-119.20070543637671,37.88782529002205],[-119.20064844979204,37.8877664486414],[-119.20059399993448,37.88770611739733],[-119.20054214876313,37.887644364948294],[-119.2004929552793,37.88758126156998],[-119.20044647545923,37.8875168790752],[-119.20040276219069,37.88745129073233],[-119.2003618652126,37.887384571181805],[-119.20032383105847,37.88731679635113],[-119.20028870300361,37.887248043368615],[-119.20025652101579,37.88717839047545],[-119.20022732170979,37.88710791693668],[-119.19994153094028,37.88633559749637],[-119.1996853690399,37.885556776182575],[-119.1996482529547,37.885427497437576],[-119.19961641825064,37.88529733702427],[-119.19958989803754,37.88516643043068],[-119.19956871989284,37.88503491392074],[-119.19955290583276,37.884902924392634],[-119.19954247228976,37.88477059923617],[-119.19953743009539,37.8846380761898],[-119.19953778446917,37.884505493197224],[-119.1995435350133,37.884372988263806],[-119.19954542134721,37.88435088993166],[-119.19954825641413,37.88432885535566],[-119.1995520369222,37.88430691011409],[-119.19955675848207,37.88428507968157],[-119.19956241561205,37.88426338939933],[-119.19956900174436,37.884241864446004],[-119.19957650923288,37.88422052980818],[-119.19958492936195,37.884199410251576],[-119.19959425235659,37.88417853029216],[-119.19960446739371,37.88415791416782],[-119.19961556261475,37.88413758581014],[-119.19962752513952,37.884117568816556],[-119.19964034108102,37.88409788642315],[-119.19965399556162,37.88407856147754],[-119.1996684727304,37.8840596164124],[-119.19968375578142,37.884041073219414],[-119.19969982697332,37.88402295342375],[-119.19971666764994,37.884005278059064],[-119.19973425826188,37.88398806764312],[-119.19975257838927,37.88397134215394],[-119.19977160676548,37.883955121006636],[-119.19979132130175,37.88393942303084],[-119.19981169911287,37.88392426644888],[-119.19983271654374,37.883909668854635],[-119.19985434919684,37.883895647193086],[-119.1998765719605,37.883882217740634],[-119.19989935903818,37.88386939608627],[-119.19992268397822,37.883857197113414],[-119.19994651970468,37.883845634982706],[-119.1999708385488,37.883834723115484],[-119.19999561228094,37.883824474178276],[-119.20002081214356,37.88381490006808],[-119.20020525626659,37.883750736221096],[-119.2003922500189,37.88369138920613],[-119.20058159321599,37.88363692255487],[-119.20077308315977,37.88358739457444],[-119.20096651485521,37.88354285828493],[-119.20116168122988,37.8835033613627],[-119.2013583733554,37.88346894608933],[-119.20155638067101,37.8834396493065],[-119.2017554912089,37.88341550237644],[-119.20205648904756,37.8833867473117],[-119.20235846770265,37.88336540941177],[-119.20266113631611,37.883351509228866],[-119.20296420336597,37.88334506015125],[-119.20326737694685,37.883346068390544],[-119.20357036505087,37.88335453297562],[-119.20387287584862,37.88337044575364],[-119.20417461796993,37.88339379139772],[-119.20464741286487,37.88343095114929],[-119.20512133432676,37.883457615625886],[-119.20559601148209,37.88347376396099],[-119.20561257807451,37.883473917788116],[-119.20562914154453,37.8834736200565],[-119.20564568230421,37.88347287111824],[-119.20566218079252,37.88347167185899],[-119.20567861749828,37.883470023697015],[-119.20569497298355,37.88346792858145],[-119.20571122790633,37.883465388989954],[-119.20572736304361,37.88346240792584],[-119.20574335931403,37.88345898891454],[-119.20575919780042,37.88345513599931],[-119.20577485977228,37.88345085373667],[-119.20579032670781,37.88344614719074],[-119.20580558031591,37.88344102192751],[-119.20582060255771,37.8834354840081],[-119.20583537566807,37.88342953998162],[-119.2058498821764,37.883423196877466],[-119.20586410492739,37.883416462196955],[-119.2058780271014,37.883409343904496],[-119.2058916322342,37.88340185041817],[-119.2059049042365,37.88339399059972],[-119.20591782741303,37.88338577374411],[-119.20593038648103,37.883377209568565],[-119.20594256658833,37.883368308201014],[-119.20595435333097,37.8833590801682],[-119.20596573277017,37.88334953638307],[-119.20597669144883,37.88333968813209],[-119.20598721640751,37.88332954706166],[-119.20599729519961,37.8833191251646],[-119.20600691590626,37.883308434765695],[-119.2060160671503,37.88329748850734],[-119.20602473810975,37.88328629933448],[-119.20603291853065,37.8832748804793],[-119.20604059873915,37.88326324544561],[-119.20604776965294,37.88325140799289],[-119.20605442279206,37.88323938211995],[-119.20606055028881,37.883227182048444],[-119.20606614489719,37.88321482220604],[-119.20607120000135,37.88320231720928],[-119.20607570962345,37.883189681846424],[-119.20607966843075,37.88317693105986],[-119.20608307174196,37.88316407992847],[-119.2060859155326,37.88315114364978],[-119.20608819644,37.88313813752205],[-119.20608991176707,37.8831250769261],[-119.2060926084472,37.88310454226375],[-119.20609619385158,37.883084093175825],[-119.20610066374435,37.883063753817034],[-119.20610601284493,37.8830435482124],[-119.20611223483421,37.88302350022896],[-119.20611932236197,37.883003633547574],[-119.20612726705572,37.88298397163493],[-119.20613605953046,37.88296453771579],[-119.20614568939979,37.882945354745615],[-119.20615614528823,37.882926445383404],[-119.20616741484463,37.882907831964964],[-119.20617948475673,37.88288953647653],[-119.20619234076696,37.88287158052876],[-119.20620596768923,37.88285398533125],[-119.20622034942683,37.882836771667435],[-119.20623546899164,37.882819959870076],[-119.20625130852386,37.88280356979726],[-119.20626784931345,37.882787620808934],[-119.20628507182202,37.88277213174396],[-119.20630295570602,37.88275712089798],[-119.20632147984067,37.88274260600171],[-119.20634062234498,37.882728604200125],[-119.2063603606076,37.88271513203204],[-119.20638067131354,37.8827022054107],[-119.20640153047164,37.882689839604915],[-119.20642291344295,37.88267804922112],[-119.20671320398729,37.88252793726404],[-119.20700815826322,37.88238365009397],[-119.20730759025615,37.8822452786939],[-119.2077880315943,37.882021007266616],[-119.20825859877885,37.881783950638926],[-119.20871875044578,37.8815343815797],[-119.20916795723147,37.88127258725248],[-119.20960570238218,37.88099886888459],[-119.2096541001781,37.88096640335729],[-119.20970103850034,37.88093261845255],[-119.20974646012743,37.88089755535815],[-119.20979030968732,37.88086125682018],[-119.20983253372457,37.88082376709068],[-119.20987308076576,37.880785131873964],[-119.20991190138217,37.88074539827063],[-119.20994894824993,37.88070461472034],[-119.20998417620787,37.88066283094266],[-119.21001754231247,37.88062009787641],[-119.21004900589018,37.8805764676177],[-119.21007852858709,37.880531993356236],[-119.21010607441556,37.880486729310576],[-119.21013160979822,37.88044073066201],[-119.21015510360873,37.88039405348729],[-119.21017652720978,37.88034675469023],[-119.21019585448809,37.880298891932384],[-119.21021306188605,37.88025052356268],[-119.21022812843049,37.88020170854632],[-119.21024103575829,37.880152506392925],[-119.2102517681387,37.88010297708391],[-119.2102603124924,37.88005318099945],[-119.21026665840763,37.88000317884479],[-119.2102707981527,37.87995303157623],[-119.21027272668542,37.87990280032694],[-119.21027244165927,37.879852546332266],[-119.21026994342621,37.87980233085522],[-119.21026523503625,37.879752215111694],[-119.21025832223368,37.87970226019591],[-119.21024778230533,37.87962602200695],[-119.21024062637849,37.87954953748326],[-119.2102368632688,37.87947290096092],[-119.21023649760716,37.87939620696318],[-119.21023952983404,37.879319550083906],[-119.21024595619897,37.87924302487091],[-119.21025576876531,37.8791667257093],[-119.21026895541998,37.87909074670507],[-119.21029175688379,37.87898560202559],[-119.21031877919073,37.87888108751624],[-119.2103499948074,37.87877730959949],[-119.210385371931,37.87867437394734],[-119.21042487452159,37.87857238537374],[-119.21046846233905,37.8784714477278],[-119.21051609098406,37.87837166378817],[-119.21056771194327,37.87827313515834],[-119.21060262291022,37.87821224060959],[-119.21064011947897,37.87815231963792],[-119.2106801584962,37.878093441194146],[-119.21072269388334,37.878035673029295],[-119.21076767668954,37.87797908161664],[-119.21081505514813,37.87792373207523],[-119.21086477473617,37.87786968809497],[-119.21091677823718,37.87781701186337],[-119.21097100580694,37.877765763993914],[-119.21102739504255,37.877716003456406],[-119.21108588105403,37.877667787509054],[-119.2111463965391,37.87762117163272],[-119.21120887186065,37.87757620946692],[-119.21127323512681,37.87753295274825],[-119.21133941227374,37.87749145125079],[-119.2114073271508,37.87745175272886],[-119.21147690160812,37.877413902862116],[-119.21148870157786,37.87740747629032],[-119.21150021091898,37.87740072669812],[-119.21151141556368,37.87739366233554],[-119.21152230181666,37.87738629183735],[-119.21153285637172,37.87737862421245],[-119.21154306632823,37.87737066883297],[-119.21155291920668,37.87736243542277],[-119.21156240296408,37.87735393404547],[-119.21157150600855,37.877345175092294],[-119.21158021721367,37.877336169269284],[-119.21158852593187,37.877326927584164],[-119.21159642200766,37.87731746133302],[-119.21160389578984,37.87730778208642],[-119.2116109381434,37.877297901675185],[-119.21161754046076,37.87728783217609],[-119.21162369467207,37.87727758589704],[-119.2116293932553,37.87726717536196],[-119.21163462924532,37.87725661329555],[-119.21163939624245,37.877245912607755],[-119.21164368842017,37.87723508637788],[-119.21164750053245,37.87722414783875],[-119.21165082791998,37.87721311036043],[-119.21165366651599,37.877201987433885],[-119.21165601285104,37.877190792654545],[-119.21165786405753,37.87717953970566],[-119.21165921787293,37.877168242341554],[-119.21166007264276,37.87715691437083],[-119.21166042732244,37.87714556963957],[-119.21166028147871,37.87713422201421],[-119.21165963529006,37.87712288536481],[-119.21165848954651,37.87711157354799],[-119.21165684564873,37.87710030038998],[-119.21165470560625,37.877089079669766],[-119.21165207203504,37.877077925102306],[-119.2116489481543,37.877066850321555],[-119.21164533778251,37.87705586886404],[-119.21164124533276,37.87704499415221],[-119.21163667580738,37.87703423947798],[-119.21163163479181,37.877023617986595],[-119.21162612844783,37.877013142660516],[-119.21160988077662,37.87698223723605],[-119.21159500204959,37.876950901687245],[-119.21158151034787,37.8769191740978],[-119.21156942206682,37.87688709302782],[-119.21155875189612,37.876854697467046],[-119.21154951280182,37.87682202678731],[-119.21154171601077,37.87678912069472],[-119.2115353709968,37.87675601918157],[-119.21153048546931,37.8767227624775],[-119.21152706536395,37.87668939100073],[-119.21152511483531,37.87665594530893],[-119.21152463625194,37.87662246604991],[-119.21152563019349,37.87658899391219],[-119.21152809545002,37.87655556957563],[-119.21153202902345,37.87652223366191],[-119.21153742613113,37.876489026685185],[-119.21154428021192,37.87645598900291],[-119.21155258293392,37.87642316076665],[-119.21156232420464,37.876390581873444],[-119.21157349218343,37.87635829191723],[-119.21158607329573,37.87632633014073],[-119.21160005224965,37.87629473538777],[-119.21161541205448,37.87626354605608],[-119.21163213404148,37.87623280005067],[-119.21165019788643,37.876202534737644],[-119.21166958163444,37.87617278689892],[-119.2116902617266,37.87614359268746],[-119.21171221302866,37.87611498758335],[-119.21173540886149,37.87608700635071],[-119.21175982103355,37.876059682995376],[-119.21178541987523,37.87603305072369],[-119.2123731146468,37.875115922435384],[-119.21292823347767,37.874186131760034],[-119.21345034375396,37.8732444053578],[-119.21368044073901,37.87286206403407],[-119.21389384076765,37.87247368585809],[-119.2140902924629,37.872079728803705],[-119.21426956444444,37.87168065741613],[-119.21443144560047,37.87127694226383],[-119.21457574533545,37.87086905938345],[-119.21470229379344,37.87045748971816],[-119.2148109420573,37.87004271855041],[-119.21490156232278,37.86962523492946],[-119.21497404804792,37.8692055310947],[-119.2150283140772,37.868784101894946],[-119.2150642967406,37.868361444205036],[-119.21508195392715,37.86793805633988],[-119.21508126513308,37.867514437466816],[-119.21506223148462,37.86709108701712],[-119.21502487573505,37.866668504097206],[-119.21496924223659,37.866247186900246],[-119.21486931812983,37.86595910461274],[-119.21478150820818,37.86566855224351],[-119.21470590905328,37.86537584984182],[-119.21464260379332,37.86508131982145],[-119.21459166201196,37.86478528660562],[-119.21455313967233,37.86448807626938],[-119.21452707905623,37.86419001618053],[-119.21451350871794,37.863891434638965],[-119.21451244345354,37.86359266051501],[-119.21452388428536,37.86329402288723],[-119.21454781846138,37.86299585067989],[-119.21456809334624,37.862841943447194],[-119.21458168156563,37.86268757455217],[-119.2145885670936,37.86253292653268],[-119.21458874183011,37.862378182255405],[-119.21458220561054,37.862223524699786],[-119.21456896620555,37.862069136741596],[-119.21454903931188,37.86191520093669],[-119.2145224485334,37.86176189930515],[-119.21448922535322,37.86160941311608],[-119.21444940909599,37.86145792267327],[-119.21440304688147,37.861307607102056],[-119.21435019356852,37.86115864413747],[-119.21429091169,37.8610112099142],[-119.21422527137885,37.86086547875831],[-119.21415335028472,37.860721622981124],[-119.21407523348225,37.860579812675574],[-119.21399101337018,37.860440215515084],[-119.21390078956208,37.86030299655542],[-119.21380466876828,37.86016831803945],[-119.21370276466969,37.86003633920558],[-119.21360218386012,37.8599541256786],[-119.21350524935107,37.85986920363556],[-119.21341207709341,37.859781674669335],[-119.21332277853607,37.85969164349106],[-119.21323746049264,37.859599217804984],[-119.21315622501369,37.85950450817944],[-119.21307916926472,37.85940762791461],[-119.21300638540997,37.85930869290694],[-119.2129379605022,37.85920782151053],[-119.21287397637863,37.859105134395364],[-119.21281450956313,37.859000754403134],[-119.21275963117465,37.85889480640007],[-119.2127094068424,37.85878741712772],[-119.21266389662723,37.858678715051155],[-119.21262315495,37.85856883020535],[-119.21258723052652,37.858457894039596],[-119.21255616630937,37.85834603926023],[-119.21252999943663,37.85823339967193],[-119.21250876118754,37.85812011001753],[-119.21249247694519,37.858006305816915],[-119.21248116616627,37.85789212320484],[-119.21247484235795,37.85777769876814],[-119.21247351306171,37.85766316938225],[-119.21247717984456,37.85754867204759],[-119.21248583829716,37.85743434372553],[-119.21249947803932,37.857320321174754],[-119.21251808273246,37.857206740787454],[-119.21254163009921,37.85709373842639],[-119.21257009195037,37.8569814492622],[-119.21260343421844,37.85687000761187],[-119.21264161699871,37.856759546778015],[-119.21268459459698,37.85665019888946],[-119.21273231558436,37.85654209474312],[-119.21278472285887,37.85643536364778],[-119.21284175371383,37.856330133269154],[-119.2129033399129,37.856226529477446],[-119.2129694077719,37.85612467619671],[-119.21303987824686,37.85602469525662],[-119.21311466702886,37.855926706246855],[-119.21319368464466,37.855830826374],[-119.213276836564,37.855737170321426],[-119.21336402331266,37.85564585011213],[-119.21345514059145,37.855556974974796],[-119.213550079401,37.85547065121314],[-119.21364872617222,37.85538698207887],[-119.2137509629022,37.855306067648065],[-119.2138566672952,37.855228004701665],[-119.21396571290914,37.855152886609694],[-119.21423962819301,37.854968529286005],[-119.21450527971523,37.85477672074164],[-119.21476234527172,37.854577693664154],[-119.2150105130817,37.85437168949617],[-119.21524948216594,37.854158958142314],[-119.21547896271171,37.853939757665884],[-119.21569867642421,37.85371435397547],[-119.21590835686392,37.853483020502345],[-119.21610774976965,37.85324603786845],[-119.21629661336661,37.85300369354585],[-119.21647471865947,37.85275628150777],[-119.21664184970965,37.852504101871915],[-119.21679780389702,37.85224746053609],[-119.21694239216507,37.851986668807164],[-119.21707543924994,37.851722043023095],[-119.21719678389243,37.851453904169226],[-119.21730627903301,37.85118257748867],[-119.21740379198977,37.85090839208779],[-119.2174892046187,37.850631680536765],[-119.21756241345638,37.85035277846622],[-119.21762332984483,37.850072024159914],[-119.21767188003845,37.84978975814451],[-119.21770800529283,37.84950632277627],[-119.21773166193516,37.849222061825955],[-119.2177428214167,37.848937320061715],[-119.21774238850182,37.84883477771824],[-119.21773755970233,37.84873230631139],[-119.21772834061846,37.848630024296696],[-119.21771474192543,37.84852804991032],[-119.21769677936105,37.848426501032314],[-119.21767447370733,37.84832549505031],[-119.21764785076664,37.848225148724],[-119.21761694133151,37.84812557805002],[-119.21758178114914,37.84802689812793],[-119.21754241087987,37.84792922302712],[-119.2174988760503,37.847832665655126],[-119.21745122700037,37.84773733762689],[-119.21739951882529,37.84764334913597],[-119.21734381131164,37.84755080882704],[-119.21728416886828,37.84745982367038],[-119.21722066045189,37.84737049883824],[-119.21715335948703,37.84728293758329],[-119.21708234378143,37.847197241119275],[-119.21700769543585,37.84711350850404],[-119.21692950074926,37.84703183652509],[-119.21684785011895,37.8469523195877],[-119.21676283793599,37.846875049605806],[-119.2166745624763,37.84680011589578],[-119.21658312578676,37.846727605073305],[-119.21648863356741,37.84665760095314],[-119.21639119504921,37.846590184452346],[-119.21629092286784,37.846525433496794],[-119.21618793293341,37.846463422931066],[-119.21608234429647,37.84640422443202],[-119.21597427901052,37.84634790642588],[-119.21586386199094,37.8462945340093],[-119.21575122087052,37.84624416887398],[-119.21563648585197,37.84619686923552],[-119.21531537388992,37.84607523668564],[-119.21498929243833,37.84596222406606],[-119.21465860933675,37.84585795885479],[-119.21432369761042,37.84576255866237],[-119.21398493504987,37.84567613109911],[-119.21364270378511,37.84559877365404],[-119.21329738985496,37.84553057358489],[-119.21294938277202,37.845471607819796],[-119.21259907508357,37.84542194287076],[-119.21224686192947,37.84538163475842],[-119.21189314059657,37.84535072894915],[-119.21153831007122,37.845329260303785],[-119.21116543827277,37.845321961339884],[-119.21079246524957,37.84532436834465],[-119.21041979262108,37.84533647872615],[-119.2100478216836,37.84535827944382],[-119.20967695297871,37.845389747022374],[-119.20930758586236,37.84543084757705],[-119.20894011807535,37.845481536850215],[-119.2085749453154,37.845541760258754],[-119.20821246081165,37.84561145295297],[-119.20785305490159,37.845690539886164],[-119.20749711461104,37.84577893589557],[-119.20714502323791,37.84587654579376],[-119.20679715993987,37.8459832644712],[-119.20524310280992,37.846573160420995],[-119.20493852972746,37.846684437831215],[-119.20462952413472,37.84678774644018],[-119.20431641751249,37.84688297541979],[-119.20399954574509,37.84697002260924],[-119.20367924875987,37.847048794624726],[-119.20335587016218,37.84711920695979],[-119.20302975686643,37.84718118407593],[-119.20270125872368,37.847234659483846],[-119.20237072814591,37.84727957581474],[-119.20203851972761,37.847315884881944],[-119.20170498986509,37.847343547732734],[-119.20163791125731,37.84735246770915],[-119.20157048819142,37.84735956942375],[-119.20150279902818,37.84736484462279],[-119.20143492243764,37.847368287175236],[-119.20136693730781,37.84736989308014],[-119.2012989226528,37.847369660471024],[-119.20123095752106,37.84736758961826],[-119.2011631209035,37.84736368292863],[-119.20109549164161,37.847357944942594],[-119.20102814833584,37.84735038232898],[-119.20096116925423,37.84734100387727],[-119.20089463224146,37.84732982048729],[-119.20082861462828,37.84731684515669],[-119.20076319314171,37.84730209296566],[-119.20069844381577,37.84728558105957],[-119.20063444190319,37.847267328628924],[-119.20057126178786,37.84724735688705],[-119.20050897689832,37.84722568904557],[-119.20044765962257,37.847202350287226],[-119.20038738122382,37.84717736773677],[-119.20032821175761,37.84715077042937],[-119.20027021999049,37.84712258927685],[-119.19987387073941,37.84691483100446],[-119.19948679571908,37.84669635532855],[-119.19910945557513,37.84646742229608],[-119.19874229935358,37.84622830439866],[-119.19838576396627,37.845979286247974],[-119.19804027367086,37.845720664236715],[-119.19770623956566,37.845452746185366],[-119.19738405910068,37.845175850975586],[-119.19707411560451,37.84489030817019],[-119.19677677782843,37.84459645762067],[-119.19649239950783,37.8442946490623],[-119.19648108021384,37.84427950144211],[-119.1964704337516,37.844264050089805],[-119.19646047306496,37.8442483137916],[-119.19645121026393,37.84423231168006],[-119.19644265661002,37.844216063211],[-119.19643482250252,37.844199588139695],[-119.19642771746582,37.84418290649692],[-119.19642135013791,37.84416603856465],[-119.19641572825981,37.844149004851275],[-119.19641085866625,37.84413182606672],[-119.19640674727721,37.844114523097346],[-119.19640339909088,37.844097116980464],[-119.19640081817755,37.84407962887872],[-119.19639900767453,37.8440620800545],[-119.19639796978257,37.84404449184397],[-119.19639770576299,37.844026885631145],[-119.19639821593623,37.844009282821986],[-119.19639949968148,37.84399170481821],[-119.19640155543738,37.84397417299141],[-119.19640438070397,37.84395670865702],[-119.19640797204573,37.84393933304838],[-119.19641232509572,37.84392206729098],[-119.19641743456091,37.84390493237669],[-119.19642329422865,37.84388794913832],[-119.1964298969742,37.84387113822425],[-119.19643723476939,37.843854520073336],[-119.19644529869238,37.843838114890005],[-119.1964540789385,37.84382194261983],[-119.19646356483224,37.84380602292513],[-119.19647374484015,37.843790375161184],[-119.19648460658489,37.843775018352574],[-119.19649613686029,37.84375997117017],[-119.19650832164741,37.843745251908416],[-119.19652114613157,37.843730878462964],[-119.19653459472042,37.843716868309095],[-119.19654865106278,37.84370323848037],[-119.19656329806863,37.843690005547934],[-119.19657851792984,37.84367718560037],[-119.19659429214182,37.843664794224146],[-119.19661060152603,37.8436528464847],[-119.19662742625337,37.84364135690805],[-119.19664474586811,37.84363033946319],[-119.19666253931294,37.8436198075451],[-119.19668078495445,37.84360977395842],[-119.1966994606095,37.84360025090194],[-119.19671854357215,37.84359124995379],[-119.19673801064134,37.84358278205722],[-119.196757838149,37.84357485750747],[-119.19677800198883,37.843567485939154],[-119.1967984776457,37.843560676314596],[-119.1968192402254,37.84355443691285],[-119.19684026448482,37.84354877531976],[-119.19686152486281,37.84354369841866],[-119.19688299551112,37.843539212381984],[-119.19690465032592,37.84353532266381],[-119.19692646297938,37.843532033993235],[-119.1969484069519,37.843529350368634],[-119.19697045556417,37.84352727505268],[-119.19699258200968,37.84352581056857],[-119.19701475938729,37.843524958696754],[-119.19703696073394,37.84352472047299],[-119.19705915905749,37.843525096186866],[-119.19708132736935,37.84352608538162],[-119.20139241020337,37.843790168953376],[-119.2014961711958,37.84380540877447],[-119.20160054118324,37.84381775974973],[-119.20170539230446,37.843827206748294],[-119.20181059610861,37.843833738196814],[-119.20191602371267,37.84383734609378],[-119.20202154595938,37.84383802601919],[-119.2021270335755,37.843835777140136],[-119.20223235733016,37.843830602211625],[-119.20233738819338,37.84382250757341],[-119.20244199749406,37.84381150314201],[-119.20254605707771,37.84379760239871],[-119.20264943946349,37.84378082237301],[-119.20275201800031,37.843761183621716],[-119.20285366702231,37.8437387102038],[-119.20295426200258,37.84371342965086],[-119.20305367970583,37.84368537293343],[-119.20315179833946,37.843654574423],[-119.20324849770277,37.84362107184993],[-119.20334365933415,37.843584906257185],[-119.20343716665643,37.84354612195008],[-119.2035289051195,37.8435047664419],[-119.20361876234087,37.84346089039578],[-119.20370662824315,37.843414547562595],[-119.20379239518915,37.843365794715034],[-119.20503859390044,37.842407470643344],[-119.20625474606237,37.84142518335135],[-119.207440120021,37.84041952475851],[-119.20749635818345,37.84037048122776],[-119.20755044684587,37.84031994004377],[-119.20760232263837,37.84026796042432],[-119.20765192478424,37.84021460327249],[-119.2076991951711,37.84015993110516],[-119.20774407841897,37.8401040079799],[-119.20778652194522,37.840046899419846],[-119.20782647602603,37.83998867233685],[-119.20786389385475,37.83992939495323],[-119.20789873159671,37.83986913672166],[-119.2079309484404,37.83980796824386],[-119.20796050664553,37.83974596118796],[-119.20798737158692,37.839683188204305],[-119.2080115117953,37.83961972284056],[-119.20803289899403,37.83955563945537],[-119.20805150813216,37.839491013131315],[-119.20806731741386,37.839425919586866],[-119.20808030832384,37.839360435087784],[-119.20809046564902,37.83929463635764],[-119.2080977774964,37.839228600487935],[-119.20810223530681,37.839162404847876],[-119.20810383386507,37.83909612699358],[-119.2081025713059,37.839029844577375],[-119.20809844911624,37.838963635256654],[-119.20809147213326,37.83889757660298],[-119.20808164853892,37.838831746011216],[-119.20806898985012,37.8387662206088],[-119.20805351090532,37.8387010771654],[-119.20803522984698,37.83863639200303],[-119.20801416810046,37.83857224090651],[-119.20799035034867,37.838508699034826],[-119.20796380450327,37.838445840832975],[-119.20748487696024,37.83752247371741],[-119.20704047923648,37.83658831280451],[-119.20663099621135,37.83564416989219],[-119.20625678238098,37.83469086542228],[-119.20576209726428,37.833400743998695],[-119.20532553808347,37.83209749470335],[-119.20494765330731,37.83078276403729],[-119.20491495549665,37.83071968174735],[-119.20488500086707,37.83065574824454],[-119.20485782455876,37.83059103854535],[-119.20483345845176,37.830525628576886],[-119.20481193112848,37.830459595087675],[-119.20479326784027,37.830393015557625],[-119.20477749047777,37.83032596810721],[-119.20476461754528,37.83025853140564],[-119.20475466413916,37.83019078457871],[-119.20474764193001,37.83012280711583],[-119.20474355914914,37.83005467877677],[-119.20474242057888,37.829986479498224],[-119.20474422754701,37.82991828929982],[-119.20474897792526,37.82985018819033],[-119.20475666613189,37.829782256073784],[-119.20476728313815,37.82971457265573],[-119.20478081647903,37.82964721734968],[-119.20479725026793,37.829580269183964],[-119.20481656521518,37.82951380670898],[-119.20483873865088,37.82944790790512],[-119.2048637445515,37.82938265009116],[-119.20489155357035,37.82931810983358],[-119.20492213307213,37.82925436285686],[-119.20495544717127,37.829191483954446],[-119.204991456774,37.82912954690116],[-119.20503011962423,37.82906862436655],[-119.20507139035325,37.82900878782967],[-119.20511522053296,37.82895010749527],[-119.20516155873261,37.82889265221135],[-119.20521035057929,37.82883648938845],[-119.20526153882165,37.828781684920564],[-119.20531506339715,37.82872830310783],[-119.20537086150253,37.8286764065811],[-119.20542886766745,37.828626056228465],[-119.20548901383145,37.82857731112382],[-119.20555122942365,37.82853022845758],[-119.20561544144563,37.82848486346964],[-119.20568157455709,37.828441269384456],[-119.20574955116422,37.82839949734874],[-119.20581929151078,37.82835959637136],[-119.20589071377158,37.828321613265906],[-119.20596373414854,37.82828559259578],[-119.20603826696899,37.82825157662191],[-119.2061142247862,37.82821960525318],[-119.20725188958515,37.82787322540346],[-119.20840015900082,37.82754961986032],[-119.20955830872359,37.82724899271549],[-119.2098764877114,37.827180472369385],[-119.21019169839465,37.82710380580513],[-119.21050360933758,37.82701907363763],[-119.2108118925774,37.82692636496243],[-119.21111622396924,37.82682577726206],[-119.21141628352746,37.826717416303346],[-119.2117117557622,37.82660139602611],[-119.21200233001134,37.826477838423315],[-119.21259691410177,37.82610207157512],[-119.21318051550529,37.82571562671725],[-119.21328199174015,37.82564440010906],[-119.21338028706536,37.82557042020271],[-119.21347528281936,37.82549377631354],[-119.21356686432512,37.82541456097283],[-119.21365492102862,37.82533286981605],[-119.21373934663244,37.825248801467346],[-119.21382003922383,37.825162457420504],[-119.21389690139794,37.82507394191636],[-119.21396984037527,37.82498336181684],[-119.21419358034635,37.82468464460102],[-119.21440595907566,37.82438075438409],[-119.21460678677151,37.8240719629371],[-119.21672645356216,37.82052029454485],[-119.2170416197513,37.82006389294402],[-119.21733918847535,37.819600118397574],[-119.21761888623188,37.81912939768761],[-119.21788045597893,37.81865216398029],[-119.21790047245013,37.81861219214509],[-119.21791878107166,37.818571708362775],[-119.21793536108638,37.81853075853757],[-119.21795019369718,37.818489389102034],[-119.21796326208857,37.81844764696441],[-119.21797455144541,37.81840557945553],[-119.21798404896994,37.81836323427502],[-119.21799174389618,37.81832065943732],[-119.2179976275021,37.81827790321717],[-119.21800169311955,37.81823501409489],[-119.21800393614177,37.818192040701405],[-119.21800435402865,37.81814903176314],[-119.2180029463095,37.81810603604674],[-119.21799971458366,37.8180631023037],[-119.21799466251865,37.81802027921526],[-119.217987795846,37.817977615337064],[-119.21797912235465,37.81793515904414],[-119.2179680841506,37.81789066129156],[-119.2179551679257,37.817846482795375],[-119.21794038826208,37.81780267342052],[-119.21792376184494,37.81775928261529],[-119.21790530744401,37.81771635935535],[-119.21788504589207,37.817673952088604],[-119.21786300006154,37.81763210868044],[-119.21783919483866,37.8175908763598],[-119.21781365709542,37.817550301665726],[-119.21778641565912,37.817510430395],[-119.21775750127985,37.817471307550285],[-119.21772694659587,37.81743297728955],[-119.21769478609664,37.817395482876],[-119.21766105608394,37.81735886662938],[-119.21762579463089,37.817323169878215],[-119.21758904153899,37.817288432913166],[-119.21755083829312,37.81725469494147],[-119.21751122801477,37.817221994042825],[-119.21747025541336,37.81719036712627],[-119.21742796673577,37.81715984988872],[-119.21738440971414,37.81713047677443],[-119.217339633512,37.81710228093638],[-119.2172936886687,37.8170752941987],[-119.21724662704258,37.817049547020794],[-119.21574719678738,37.81626570551408],[-119.21116488339106,37.81392836319618],[-119.20903902123366,37.81288452475918],[-119.2068866636479,37.81187547757973],[-119.20679268493316,37.811842833672095],[-119.20670011117598,37.811807753961034],[-119.20660904264957,37.811770276444676],[-119.20651957799636,37.811730441718296],[-119.20643181412099,37.81168829293045],[-119.20634584608531,37.811643875736195],[-119.20626176700553,37.81159723824763],[-119.20617966795119,37.8115484309817],[-119.20609963784663,37.81149750680555],[-119.20602176337455,37.81144452087928],[-119.20594612888222,37.811389530595946],[-119.20587281629007,37.81133259551972],[-119.20580190500294,37.811273777321134],[-119.2057334718241,37.81121313971025],[-119.20553721661736,37.81102684044924],[-119.20534935622675,37.810835171682655],[-119.20517012381757,37.810638371369244],[-119.20499974183808,37.810436683836805],[-119.20483842174352,37.810230359478616],[-119.20468636373373,37.81001965444244],[-119.20460478188052,37.809896922583924],[-119.20452852776856,37.80977205305742],[-119.20445769023343,37.809645191379396],[-119.20439235179718,37.80951648538711],[-119.2043325885724,37.809386085066336],[-119.20427847017345,37.80925414237653],[-119.20423005963563,37.80912081107373],[-119.20418741334178,37.808986246531305],[-119.20415058095666,37.8088506055589],[-119.20411960536934,37.80871404621971],[-119.20391282725379,37.80777488021524],[-119.20367782291387,37.806839902763265],[-119.20345488295166,37.8060649614931],[-119.20320154338253,37.805295923805495],[-119.20318907225048,37.80526255505638],[-119.20317517884828,37.80522954190862],[-119.20315987923321,37.80519692251249],[-119.20314319108735,37.80516473456312],[-119.2031251336974,37.80513301525708],[-119.20310572793231,37.80510180124926],[-119.20308499621903,37.80507112861062],[-119.2030629625168,37.805041032786484],[-119.20303965228926,37.8050115485555],[-119.20301509247517,37.8049827099896],[-119.20298931145715,37.80495455041449],[-119.20296233902899,37.80492710237125],[-119.20293420636112,37.80490039757865],[-119.20290494596466,37.80487446689653],[-119.20287459165381,37.80484934029011],[-119.20284317850678,37.804825046795486],[-119.20281074282525,37.80480161448594],[-119.20277732209242,37.80477907043954],[-119.20266437411897,37.804702928576425],[-119.20255469187282,37.80462383833531],[-119.20244839754348,37.8045418878328],[-119.20234560954484,37.80445716837194],[-119.20224644238301,37.80436977434037],[-119.20215100652896,37.80427980310525],[-119.20205940829536,37.804187354904684],[-119.20197174971818,37.80409253273596],[-119.20188812844306,37.8039954422409],[-119.20180863761658,37.80389619158801],[-119.20173336578249,37.80379489135204],[-119.20166239678312,37.80369165439071],[-119.20159580966609,37.80358659571898],[-119.20153367859619,37.80347983238077],[-119.201476072773,37.80337148331879],[-119.20142305635368,37.80326166924172],[-119.20137468838165,37.80315051248992],[-119.20131431672733,37.80299528408467],[-119.20126040683265,37.80283856537355],[-119.20121301689063,37.80268052564595],[-119.20117219805039,37.802521335617136],[-119.20113799436199,37.802361167243866],[-119.20111044272905,37.80220019353857],[-119.20108957286907,37.8020385883825],[-119.20107540728152,37.80187652633792],[-119.20106796122376,37.80171418245937],[-119.20106724269463,37.801551732104805],[-119.20107322577431,37.8013923113017],[-119.20108597341864,37.80123314088409],[-119.20110547111537,37.8010744015138],[-119.20113169669112,37.80091627336227],[-119.20116462033683,37.80075893590606],[-119.20120420464171,37.80060256772318],[-119.20125040463599,37.800447346290404],[-119.20130316784207,37.80029344778182],[-119.20136243433424,37.80014104686902],[-119.20142813680691,37.799990316522724],[-119.20150020065127,37.79984142781662],[-119.20157854403985,37.79969454973315],[-119.20166307801985,37.799549848971836],[-119.20195457201946,37.799054208749794],[-119.20222809787744,37.79855216214587],[-119.20234079524668,37.79832829138043],[-119.20244570449539,37.798102050011465],[-119.20254274661136,37.79787360858613],[-119.20263184851498,37.79764313930853],[-119.20269045480568,37.79747262134508],[-119.20274142515888,37.797300565502354],[-119.20278469586744,37.797127187010375],[-119.20282021285715,37.79695270275214],[-119.20284793175405,37.79677733099239],[-119.20286781793979,37.79660129110457],[-119.20288008194302,37.79649229381839],[-119.20289709924488,37.79638369930116],[-119.20291884937703,37.796275638036825],[-119.20294530618473,37.79616823986799],[-119.20297643785818,37.796061633839955],[-119.20301220697097,37.795955948045716],[-119.20305257052505,37.79585130947195],[-119.20309748000251,37.795747843846556],[-119.20314688142405,37.79564567548759],[-119.20320141775126,37.79554332874466],[-119.20326013777145,37.7954424501727],[-119.20332297880259,37.79534314742796],[-119.20338987376553,37.79524552648452],[-119.20346075125562,37.79514969152129],[-119.20353553561915,37.79505574481082],[-119.20361414703386,37.7949637866102],[-119.20369650159444,37.794873915054026],[-119.2037344367129,37.79483241137945],[-119.20377051301406,37.79478987687481],[-119.20380468605887,37.79474636393817],[-119.20383691375315,37.79470192617285],[-119.20386715639938,37.79465661832133],[-119.20389537674563,37.79461049619789],[-119.20392154003142,37.79456361661977],[-119.20394561403047,37.79451603733719],[-119.20396756909055,37.79446781696222],[-119.20398737816974,37.79441901489661],[-119.20400501686994,37.7943696912585],[-119.20402046346682,37.7943199068085],[-119.2040336989366,37.79426972287469],[-119.20404470697932,37.79421920127719],[-119.20405347403911,37.79416840425187],[-119.20405918150075,37.794135266754175],[-119.20406632794945,37.79410230547043],[-119.20407490485444,37.79406955973784],[-119.20408490197786,37.794037068636335],[-119.20409630738698,37.79400487094182],[-119.20410910746837,37.793973005080055],[-119.20412328694431,37.79394150908069],[-119.2041388288908,37.793910420531965],[-119.20415571475802,37.79387977653579],[-119.2041739243923,37.793849613663475],[-119.20419343606018,37.793819967912135],[-119.2042142264745,37.793790874661646],[-119.2042362708221,37.79376236863255],[-119.2042595427933,37.79373448384448],[-119.20428401461359,37.79370725357566],[-119.20430965707659,37.79368071032316],[-119.20433643957895,37.79365488576411],[-119.20436433015686,37.79362981071796],[-119.20439329552427,37.79360551510953],[-119.2044233011125,37.793582027933574],[-119.20445431111162,37.7935593772199],[-119.20448628851307,37.793537590000106],[-119.20451919515395,37.79351669227527],[-119.20455299176241,37.793496708984875],[-119.2045876380047,37.793477663977136],[-119.20462309253315,37.79345957998049],[-119.2046593130356,37.793442478576466],[-119.20467377211978,37.79343565028605],[-119.20468792363317,37.793428427616746],[-119.20470175050104,37.79342081928325],[-119.20471523604034,37.79341283446562],[-119.20472836397984,37.7934044827981],[-119.20474111847984,37.79339577435763],[-119.20475348415121,37.793386719651586],[-119.20476544607399,37.79337732960511],[-119.20477698981543,37.79336761554801],[-119.20478810144729,37.79335758920099],[-119.20479876756278,37.793347262661555],[-119.20480897529264,37.79333664838945],[-119.20481871232073,37.79332575919152],[-119.20482796689885,37.79331460820636],[-119.20483672786085,37.793303208888425],[-119.20484498463635,37.7932915749918],[-119.20485272726316,37.79327972055356],[-119.20485994639951,37.79326765987691],[-119.2048666333353,37.793255407513875],[-119.20487278000253,37.79324297824777],[-119.20487837898514,37.79323038707531],[-119.20488342352783,37.793217649188605],[-119.20488790754436,37.79320477995677],[-119.20489182562471,37.7931917949073],[-119.20489381688657,37.79318518883774],[-119.20489609224305,37.793178640796235],[-119.20489864902152,37.793172158474114],[-119.20490148421867,37.79316574948545],[-119.20490459450423,37.79315942135824],[-119.20490797622485,37.79315318152545],[-119.20491162540829,37.79314703731638],[-119.20491553776814,37.79314099594794],[-119.20491970870896,37.79313506451631],[-119.20492413333147,37.79312924998852],[-119.20492880643853,37.793123559194235],[-119.20493372254104,37.79311799881788],[-119.20493887586458,37.79311257539057],[-119.204944260356,37.79310729528267],[-119.20494986969071,37.793102164696116],[-119.20495569727994,37.7930971896573],[-119.20496173627865,37.793092376009824],[-119.2049679795934,37.79308772940778],[-119.20497441989086,37.793083255309],[-119.20498104960623,37.79307895896873],[-119.20498786095233,37.79307484543342],[-119.20499484592854,37.793070919534806],[-119.20500199633038,37.793067185884176],[-119.205009303759,37.79306364886706],[-119.20501675963116,37.79306031263802],[-119.20502435518927,37.79305718111569],[-119.20503208151163,37.79305425797841],[-119.20503992952297,37.79305154665961],[-119.20504789000508,37.793049050344],[-119.20505595360767,37.79304677196372],[-119.2050641108593,37.793044714194934],[-119.20507235217853,37.79304287945468],[-119.20508066788521,37.793041269898],[-119.2050890482118,37.79303988741548],[-119.20509748331484,37.793038733630986],[-119.20510596328656,37.793037809899694],[-119.20511447816648,37.793037117306646],[-119.20512301795313,37.79303665666534],[-119.20513157261577,37.79303642851686],[-119.20514013210618,37.793036433129146],[-119.20514868637046,37.79303667049681],[-119.20515722536092,37.79303714034106],[-119.20516573904771,37.79303784210997],[-119.20517421743078,37.793038774979294],[-119.20518265055149,37.79303993785328],[-119.20519102850439,37.79304132936603],[-119.20521914460099,37.79304599150263],[-119.2052474487583,37.79304987143421],[-119.20527590643033,37.79305296442521],[-119.20530448288369,37.793055266700534],[-119.20533314323995,37.79305677545018],[-119.20536185251834,37.79305748883269],[-119.20539057567832,37.79305740597738],[-119.20541927766239,37.79305652698531],[-119.20544792343897,37.79305485292937],[-119.20547647804504,37.793052385852796],[-119.20550490662889,37.793049128766725],[-119.2055331744926,37.793045085646504],[-119.20564932840841,37.79302830275942],[-119.20576608859716,37.79301441975185],[-119.20588334012561,37.793003450289575],[-119.20600096757707,37.792995405170394],[-119.20611885516486,37.79299029231356],[-119.20623688684643,37.7929881167519],[-119.20709733873183,37.79299377739499],[-119.20795713416267,37.79302104241975],[-119.20825605735338,37.79303013653174],[-119.20855519839908,37.79303095019933],[-119.20885419313264,37.79302348243198],[-119.20915267756506,37.79300774232072],[-119.20945028832925,37.792983749027144],[-119.2097466631225,37.79295153175992],[-119.21004144114795,37.792911129739366],[-119.21033426355419,37.79286259214956],[-119.21062477387251,37.79280597807842],[-119.21091261845103,37.79274135644577],[-119.21119744688573,37.792668805919405],[-119.21147891244712,37.79258841481906],[-119.21175667250283,37.79250028100904],[-119.21203038893479,37.79240451177888],[-119.21223546870503,37.79232587191908],[-119.21243697229555,37.79224161145811],[-119.21263465518409,37.792151832650056],[-119.21282827748755,37.792056644445424],[-119.21301760425318,37.7919561623588],[-119.21320240574387,37.79185050832865],[-119.21338245771678,37.791739810569254],[-119.21355754169579,37.791624203415],[-119.21372744523646,37.7915038271573],[-119.21389196218382,37.791378827874325],[-119.21405089292276,37.79124935725358],[-119.21420404461998,37.79111557240777],[-119.21435123145811,37.79097763568406],[-119.21449227486112,37.79083571446701],[-119.21496199837976,37.79032904698015],[-119.21541094855102,37.78981065642726],[-119.21583866153718,37.789281078893545],[-119.21624469549135,37.78874086202175],[-119.21662863101295,37.78819056444485],[-119.21699007158006,37.78763075520795],[-119.21732864395779,37.78706201317897],[-119.21742695560121,37.78679627521894],[-119.2175351703049,37.78653297225238],[-119.21765319245327,37.78627233667226],[-119.21778091777774,37.78601459851489],[-119.2179182334492,37.78575998525699],[-119.21806501817798,37.785508721614995],[-119.21845617346396,37.784836999507505],[-119.2188199184749,37.78415564617161],[-119.21915587803001,37.78346536580072],[-119.21946370569503,37.78276687179499],[-119.21974308413752,37.78206088602343],[-119.21977811832872,37.78197264142346],[-119.2198169123276,37.78188539318825],[-119.21985942126697,37.781799242195106],[-119.21990559598495,37.78171428805233],[-119.21995538308174,37.78163062898411],[-119.22000872498151,37.78154836171697],[-119.22006555999899,37.78146758136787],[-119.22012582241075,37.78138838133428],[-119.22018944253146,37.781310853186326],[-119.22025634679417,37.78123508656075],[-119.22032645783567,37.78116116905743],[-119.22039969458581,37.78108918613805],[-119.22047597236133,37.78101922102736],[-119.22055520296378,37.780951354616896],[-119.22063729478153,37.780885665371564],[-119.22072215289556,37.780822229238915],[-119.22080967918941,37.78076111956128],[-119.22089977246254,37.78070240699114],[-119.2209923285473,37.78064615940931],[-119.22108724042934,37.780592441846565],[-119.22118439837146,37.78054131640851],[-119.22128369004037,37.78049284220364],[-119.22138500063654,37.78044707527521],[-119.22153843669435,37.78039688340475],[-119.22169399567986,37.780350992496935],[-119.2218514862849,37.780309458987944],[-119.22201071482684,37.78027233395514],[-119.22217148548668,37.78023966305434],[-119.22233360054979,37.78021148646368],[-119.22249686064897,37.78018783883424],[-119.22266106500945,37.7801687492474],[-119.2228260116958,37.780154241179176],[-119.22299149786015,37.78014433247124],[-119.22315731999133,37.78013903530913],[-119.2233232741654,37.78013835620721],[-119.22348915629595,37.780142296000584],[-119.22365476238522,37.780150849844176],[-119.22381988877471,37.7801640072187],[-119.22406093866566,37.7801832687618],[-119.22430268235709,37.78019591838454],[-119.22454483201402,37.78020194102548],[-119.22478709931772,37.78020132951375],[-119.22502919580937,37.78019408457741],[-119.2252708332337,37.780180214842744],[-119.22551172388226,37.780159736823876],[-119.22575158093649,37.78013267490315],[-119.22599011880922,37.780099061301975],[-119.22619293308173,37.78006469380396],[-119.22639412036945,37.78002475422436],[-119.22659343772531,37.779979290793335],[-119.22679064446156,37.77992835841142],[-119.22698550244057,37.7798720185832],[-119.22717777636258,37.77981033934306],[-119.22736723404988,37.779743395172844],[-119.22755364672739,37.779671266911976],[-119.22773678929902,37.779594041659806],[-119.22791644061948,37.77951181267029],[-119.22809238376158,37.779424679239426],[-119.2282644062781,37.779332746585155],[-119.22843230045845,37.7792361257204],[-119.22859586357956,37.779134933318865],[-119.2287548981507,37.77902929157403],[-119.22890921215193,37.77891932805167],[-119.22905861926606,37.77880517553563],[-119.22920293910354,37.77868697186748],[-119.22934199742035,37.77856485977996],[-119.22947562632828,37.778438986724595],[-119.22960366449769,37.77830950469358],[-119.23049623829885,37.777202272359666],[-119.23058219557116,37.77710341028583],[-119.23067239989149,37.777006961598616],[-119.23076674378662,37.77691304119369],[-119.23086511485336,37.77682176095437],[-119.23096739589242,37.7767332296186],[-119.23107346504798,37.77664755264913],[-119.23118319595312,37.776564832108214],[-119.23129645788,37.77648516653595],[-119.23141311589598,37.77640865083283],[-119.23153303102404,37.77633537614692],[-119.2316560604086,37.776265429765175],[-119.23178205748543,37.77619889500956],[-119.23191087215645,37.776135851137774],[-119.23204235096833,37.77607637324891],[-119.23217633729534,37.77602053219408],[-119.23231267152588,37.77596839449189],[-119.23245119125251,37.77592002224938],[-119.23259173146548,37.77587547308801],[-119.2327341247491,37.77583480007505],[-119.23287820148118,37.7757980516604],[-119.23302379003503,37.77576527161888],[-119.23317071698376,37.775736498998114],[-119.23331880730686,37.775711768072064],[-119.2334678845986,37.775691108300165],[-119.233617771278,37.775674544292286],[-119.23376828880045,37.77566209577941],[-119.23389325973197,37.77565183836097],[-119.23401773699563,37.77563831815002],[-119.2341415854133,37.77562154982902],[-119.23426467049003,37.77560155160786],[-119.23438685856016,37.77557834520386],[-119.23450801693238,37.7755519558184],[-119.23462801403413,37.775522412109375],[-119.23474671955432,37.77548974616011],[-119.23539170090432,37.77529240243341],[-119.23602746654507,37.775077043635896],[-119.23665321804556,37.77484394025378],[-119.23726816957392,37.774593385057535],[-119.23767125178942,37.77441483698736],[-119.23806643027017,37.77422548531536],[-119.23845324561401,37.774025550195006],[-119.23883124815306,37.773815264083055],[-119.23919999847675,37.77359487146894],[-119.23955906794296,37.773364628590244],[-119.23990803917656,37.773124803134465],[-119.2402465065545,37.77287567392748],[-119.24057407667765,37.77261753060912],[-119.240890368828,37.77235067329602],[-119.24119501541112,37.77207541223243],[-119.24148924861534,37.77176816183051],[-119.24177053346003,37.77145336369872],[-119.24203856304555,37.77113136148697],[-119.24229304495391,37.77080250670503],[-119.24253370156741,37.77046715833858],[-119.24276027037128,37.770125682456985],[-119.24297250423945,37.76977845181341],[-119.2431701717037,37.76942584543772],[-119.24335305720562,37.769068248222446],[-119.24352096133114,37.76870605050241],[-119.24367370102733,37.76833964762845],[-119.24527724365211,37.76498665290665],[-119.2456083528303,37.7643267340679],[-119.24596600202885,37.76367560321902],[-119.24634982114587,37.763033932904264],[-119.24675941307925,37.762402385879085],[-119.24719435413941,37.76178161442646],[-119.2476541944888,37.76117225968404],[-119.24782133590327,37.76094233578581],[-119.24799834751096,37.76071711608714],[-119.24818501940489,37.76049686754962],[-119.24838113023323,37.760281851239974],[-119.24858644746197,37.760072322020896],[-119.24880072765083,37.759868528248944],[-119.2490237167419,37.75967071148047],[-119.249255150361,37.759479106185445],[-119.24949475413119,37.759293939469586],[-119.24974224399801,37.75911543080558],[-119.2499973265663,37.758943791772865],[-119.25025969944797,37.75877922580727],[-119.2506358286075,37.75857770909733],[-119.25100377023168,37.75836688098584],[-119.2513631587782,37.758146950965916],[-119.25171363721309,37.757918137573114],[-119.25205485736558,37.75768066816802],[-119.25238648027407,37.757434778709985],[-119.25257687466744,37.75728456063819],[-119.25276140453136,37.75712979839533],[-119.25293989791578,37.75697063622399],[-119.25311218849998,37.756807222466705],[-119.2532781157476,37.756639709427546],[-119.25343752505619,37.75646825323017],[-119.25359026790113,37.75629301367225],[-119.253771831162,37.75607023716313],[-119.25394445253144,37.75584302432323],[-119.25410796027566,37.755611601305574],[-119.25426219173666,37.755376198451586],[-119.25440699349373,37.75513705006177],[-119.25454222151608,37.75489439416235],[-119.25456483228413,37.75484991000371],[-119.25458550047985,37.75480483408774],[-119.2546042015957,37.754759219871474],[-119.25462091345707,37.75471312145017],[-119.25463561624865,37.75466659349325],[-119.25464829253777,37.75461969117944],[-119.25465892729518,37.754572470131315],[-119.2546675079128,37.75452498634935],[-119.25467402421862,37.75447729614542],[-119.25467846848888,37.754429456076274],[-119.25468083545698,37.75438152287604],[-119.25468112232001,37.75433355338937],[-119.25467932874174,37.754285604503785],[-119.25467545685322,37.75423773308221],[-119.25466951125017,37.75418999589567],[-119.25466149898753,37.754142449555886],[-119.25465142957094,37.75409515044809],[-119.25463931494563,37.75404815466426],[-119.25462516948222,37.754001517936565],[-119.25460900995951,37.75395529557124],[-119.25459085554465,37.753909542383035],[-119.25449741899241,37.75370787695691],[-119.25441227219983,37.75350391083121],[-119.25433550474617,37.753297858754024],[-119.25426719738635,37.753089937667866],[-119.25420742196616,37.75288036648132],[-119.25415624134686,37.75266936583837],[-119.25411370933944,37.75245715788614],[-119.25407987064807,37.75224396604094],[-119.25405476082352,37.75203001475307],[-119.25401862187843,37.75171353437433],[-119.25399580994606,37.751396272440864],[-119.25398635028743,37.751078582651765],[-119.25399025327728,37.750760819178616],[-119.2540075143931,37.750443336270706],[-119.25403811422107,37.75012648786006],[-119.25406124602577,37.75005825469237],[-119.2540813620093,37.749989421595444],[-119.25409843762858,37.74992007258003],[-119.25411245205139,37.74985029228623],[-119.2541233881819,37.74978016588034],[-119.2541312326814,37.74970977895086],[-119.25413597598462,37.74963921740395],[-119.25413761231127,37.74956856735869],[-119.25413613967307,37.74949791504195],[-119.25413155987626,37.74942734668309],[-119.25412387851918,37.74935694840875],[-119.25411310498545,37.749286806137825],[-119.25409925243252,37.74921700547642],[-119.25408798081544,37.74916033552626],[-119.25407916004562,37.74910339230571],[-119.25407280046613,37.74904624262171],[-119.25406890953245,37.74898895352334],[-119.2540674918038,37.74893159222305],[-119.2540685489377,37.7488742260179],[-119.25407207968821,37.748816922210516],[-119.25407807990734,37.74875974803013],[-119.2540865425499,37.74870277055382],[-119.2540974576818,37.74864605662767],[-119.25411081249186,37.74858967278846],[-119.25412659130671,37.748533685185514],[-119.25413828267581,37.748492128934636],[-119.25414813592067,37.748450273342364],[-119.25415613898073,37.748408169654084],[-119.25416228206065,37.74836586941885],[-119.2541665576425,37.748323424426324],[-119.2541689604947,37.74828088664326],[-119.25416948767858,37.748238308149915],[-119.25416813855196,37.74819574107637],[-119.25416491476977,37.74815323753857],[-119.25415982028225,37.74811084957464],[-119.25415286132983,37.748068629081025],[-119.25414404643568,37.748026627749184],[-119.25413338639517,37.74798489700203],[-119.25412089426264,37.74794348793119],[-119.2541065853354,37.74790245123434],[-119.2540983351637,37.74788864439809],[-119.2540906781077,37.74787462379089],[-119.25408362293739,37.74786040547191],[-119.25407717773342,37.74784600572672],[-119.25407134987773,37.747831441048746],[-119.25406614604515,37.747816728120235],[-119.25406157219572,37.747801883793294],[-119.25405763356794,37.74778692507055],[-119.25405433467269,37.74777186908553],[-119.25405167928811,37.747756733083314],[-119.25404967045525,37.747741534400454],[-119.25404831047462,37.747726290445435],[-119.2540476009035,37.74771101867849],[-119.25404754255428,37.747695736591716],[-119.25404813549332,37.747680461689065],[-119.25404937904112,37.74766521146617],[-119.25405359030233,37.74763139109719],[-119.25405924461165,37.74759770369445],[-119.254066335453,37.74756418806847],[-119.25407485465522,37.74753088283178],[-119.25408479240164,37.74749782635444],[-119.25409613724139,37.747465056719946],[-119.25410887610253,37.74743261168124],[-119.25412299430724,37.74740052861724],[-119.25413847558859,37.74736884448982],[-119.25414656337716,37.74735379224619],[-119.25415526081038,37.7473389558737],[-119.25416455876409,37.74732435093601],[-119.25417444748415,37.747309992754055],[-119.2541849165968,37.74729589638984],[-119.25419595511936,37.747282076630704],[-119.25420755147194,37.7472685479739],[-119.25421969348942,37.7472553246112],[-119.25423236843432,37.74724242041416],[-119.25427169994289,37.74720496772859],[-119.25431256414326,37.747168564398976],[-119.25435491665948,37.74713324995499],[-119.25439871149972,37.747099062743956],[-119.25444390110614,37.74706603988901],[-119.25449043640658,37.747034217248945],[-119.25453826686777,37.74700362937925],[-119.25458734055029,37.74697430949447],[-119.25463760416488,37.7469462894323],[-119.25468900313045,37.746919599619],[-119.25469922883956,37.74691467100951],[-119.25470966107873,37.7469100233148],[-119.25472028761354,37.74690566198548],[-119.25473109598173,37.746901592136275],[-119.25474207350769,37.74689781854008],[-119.25475320731756,37.746894345622415],[-119.25476448435413,37.74689117745612],[-119.25477589139227,37.74688831775667],[-119.25478741505435,37.74688576987778],[-119.25479904182603,37.74688353680745],[-119.25481075807197,37.74688162116454],[-119.25482255005201,37.74688002519559],[-119.25483440393708,37.74687875077228],[-119.25484630582558,37.746877799389196],[-119.25485824175956,37.746877172162066],[-119.2548701977412,37.74687686982646],[-119.25488215974914,37.746876892736964],[-119.25489411375493,37.746877240866695],[-119.25490604573956,37.74687791380737],[-119.25491794170979,37.74687891076982],[-119.25492978771466,37.746880230584864],[-119.25494156986177,37.746881871704666],[-119.25495327433363,37.74688383220465],[-119.25496488740382,37.74688610978557],[-119.25498158818078,37.74688938067361],[-119.25499842247636,37.74689218700941],[-119.25501536980278,37.74689452537767],[-119.25503240953475,37.746896392932506],[-119.25504952093445,37.74689778740108],[-119.2550666831769,37.74689870708625],[-119.25508387537519,37.74689915086876],[-119.25510107660598,37.7468991182085],[-119.25511826593493,37.74689860914524],[-119.25513542244215,37.74689762429852],[-119.25515252524777,37.7468961648669],[-119.25516955353719,37.746894232626566],[-119.25518648658661,37.74689182992909],[-119.25520330378806,37.74688895969865],[-119.25521998467458,37.746885625428355],[-119.25523650894513,37.74688183117608],[-119.25525285648932,37.746877581559566],[-119.25526900741174,37.7468728817507],[-119.25528494205645,37.74686773746921],[-119.25530064103054,37.74686215497587],[-119.25531608522815,37.746856141064704],[-119.25533125585328,37.74684970305475],[-119.25534613444304,37.746842848781256],[-119.25536070288994,37.74683558658599],[-119.2553749434639,37.74682792530722],[-119.25538883883397,37.74681987426892],[-119.25540237208925,37.74681144326936],[-119.25541552675962,37.74680264256925],[-119.25542828683568,37.74679348287925],[-119.25544063678834,37.74678397534685],[-119.25545256158757,37.74677413154295],[-119.25546404672086,37.74676396344763],[-119.25547959415847,37.74674919193999],[-119.25549448160163,37.746733997774996],[-119.25550869084203,37.7467183995365],[-119.25552220450082,37.74670241630265],[-119.25553500605004,37.74668606762242],[-119.25554707983265,37.74666937349175],[-119.25555841108181,37.74665235432908],[-119.25556898593892,37.74663503095038],[-119.25557879147046,37.74661742454372],[-119.25558781568398,37.74659955664332],[-119.25559604754262,37.74658144910313],[-119.2556034769787,37.746563124070306],[-119.25561009490598,37.74654460395792],[-119.25561589323074,37.74652591141765],[-119.2556208648618,37.74650706931206],[-119.25562500371902,37.74648810068661],[-119.25562830474092,37.746469028741515],[-119.25563076389075,37.74644987680332],[-119.25563237816135,37.74643066829634],[-119.25563314557904,37.746411426714175],[-119.25563306520584,37.746392175590785],[-119.25563213714075,37.746372938471794],[-119.25563036251951,37.74635373888566],[-119.25562774351326,37.74633460031495],[-119.25562428332589,37.74631554616757],[-119.2556199861901,37.746296599748185],[-119.25561485736225,37.746277784229605],[-119.25560890311593,37.7462591226246],[-119.25560213073418,37.74624063775766],[-119.25559454850074,37.74622235223706],[-119.25558616568976,37.746204288427286],[-119.25557699255464,37.74618646842158],[-119.25556704031526,37.74616891401505],[-119.2555504791237,37.74613973683162],[-119.25553517986526,37.746110128402286],[-119.25552116031476,37.746080123129346],[-119.25550843675998,37.746049755876115],[-119.25549702398298,37.746019061926454],[-119.25548693524264,37.74598807694376],[-119.2554781822594,37.74595683692959],[-119.25547077520172,37.74592537818168],[-119.25546472267409,37.74589373725201],[-119.25546003170723,37.745861950904036],[-119.25545670774981,37.74583005607025],[-119.25545475466214,37.745798089809064],[-119.25545417471173,37.74576608926187],[-119.25545496857066,37.745734091609876],[-119.25545713531477,37.74570213403083],[-119.25546067242477,37.74567025365588],[-119.25546569880775,37.74563774864229],[-119.25547213496831,37.745605400743855],[-119.25547997323609,37.7455732485027],[-119.25548920427005,37.74554133022771],[-119.25549981706976,37.745509683949],[-119.25551179898859,37.74547834737255],[-119.25552513574851,37.74544735783525],[-119.25553981145744,37.74541675226049],[-119.2555558086279,37.74538656711414],[-119.2555731081981,37.74535683836104],[-119.25559168955446,37.74532760142228],[-119.25561153055632,37.74529889113289],[-119.25563260756228,37.745270741700345],[-119.25565489545822,37.745243186663885],[-119.25567836768757,37.745216258854484],[-119.25570299628261,37.745189990355755],[-119.25572875189803,37.745164412465726],[-119.2557556038457,37.74513955565961],[-119.2557835201315,37.745115449553346],[-119.25581035677273,37.74509382074468],[-119.25583811380632,37.745072937227704],[-119.25586675842598,37.745052823684226],[-119.25589625677655,37.74503350388605],[-119.2559265739939,37.74501500066686],[-119.25595767424615,37.7449973358952],[-119.25598952077611,37.74498053044865],[-119.25602207594463,37.74496460418918],[-119.25605530127513,37.74494957593965],[-119.25608915749905,37.74493546346157],[-119.25612360460222,37.74492228343413],[-119.25615860187224,37.74491005143444],[-119.25619410794657,37.744898781919176],[-119.25623008086134,37.74488848820746],[-119.25626647810095,37.744879182465155],[-119.25630325664848,37.744870875690445],[-119.25634037303625,37.74486357770089],[-119.25637778339747,37.74485729712173],[-119.25641943950846,37.744850332103134],[-119.25646078618297,37.74484228806359],[-119.25650177910734,37.7448331736244],[-119.25654237434696,37.74482299855408],[-119.2565825283936,37.744811773757874],[-119.25662219821184,37.74479951126607],[-119.25666134128541,37.74478622422114],[-119.2566999156626,37.744771926863635],[-119.25673788000122,37.74475663451683],[-119.25677519361304,37.74474036357048],[-119.25681181650734,37.744723131463104],[-119.25684770943367,37.74470495666332],[-119.25688283392414,37.7446858586501],[-119.25691715233441,37.744665857891874],[-119.25694724664471,37.74464833482994],[-119.2569780653607,37.7446316245505],[-119.25700957368433,37.74461574592122],[-119.257041736039,37.744600716870714],[-119.25707451610977,37.74458655436834],[-119.25710787688423,37.74457327440497],[-119.2571417806944,37.744560891975084],[-119.25717618925917,37.74454942105969],[-119.25721106372765,37.74453887461059],[-119.25724636472285,37.74452926453579],[-119.25727754640273,37.7445216622379],[-119.25730901112355,37.74451483479497],[-119.25734072835756,37.744508788831105],[-119.25737266733205,37.74450353021226],[-119.25740479705922,37.74449906404039],[-119.25743708636618,37.74449539464868],[-119.25746950392531,37.744492525597245],[-119.25750201828443,37.74449045966966],[-119.25751031949187,37.74448992165372],[-119.25751859254827,37.74448915767036],[-119.2575268277017,37.744488168620244],[-119.25753501524484,37.74448695566916],[-119.25754314552653,37.744485520246904],[-119.25755120896305,37.74448386404548],[-119.25755919604957,37.744481989017224],[-119.25756709737122,37.74447989737228],[-119.25757490361417,37.74447759157623],[-119.25758260557676,37.74447507434706],[-119.2575901941802,37.744472348651996],[-119.2575976604793,37.744469417703954],[-119.25760499567315,37.744466284957866],[-119.25761219111529,37.74446295410649],[-119.25761923832398,37.74445942907606],[-119.25762612899231,37.7444557140218],[-119.25763285499784,37.744451813322875],[-119.25763940841222,37.744447731577225],[-119.25764578151056,37.74444347359634],[-119.25765196678054,37.744439044399265],[-119.25765795693125,37.74443444920706],[-119.25766374490173,37.74442969343631],[-119.25766932386945,37.74442478269293],[-119.25767468725812,37.74441972276551],[-119.25767982874565,37.74441451961851],[-119.2576818002433,37.74441252425067],[-119.25768385656848,37.74441058362004],[-119.25768599531277,37.74440869999945],[-119.25768821397136,37.74440687559498],[-119.25769050994572,37.744405112543355],[-119.25769288054687,37.74440341290944],[-119.25769532299836,37.744401778683816],[-119.25769783443963,37.74440021178049],[-119.25770041192929,37.744398714034574],[-119.25770305244863,37.74439728720024],[-119.2577057529051,37.74439593294856],[-119.25770851013594,37.7443946528656],[-119.25771132091194,37.744393448450616],[-119.2577141819411,37.74439232111419],[-119.25771708987264,37.74439127217661],[-119.25772004130089,37.74439030286643],[-119.25772303276906,37.74438941431887],[-119.25772606077366,37.74438860757459],[-119.25772912176829,37.74438788357843],[-119.25773221216798,37.74438724317834],[-119.25773532835328,37.744386687124326],[-119.25773846667452,37.74438621606766],[-119.25774162345618,37.744385830560006],[-119.25774479500106,37.74438553105289],[-119.2577479775947,37.744385317897084],[-119.25775116750968,37.744385191342246],[-119.25775436101002,37.74438515153658],[-119.25775755435549,37.7443851985267],[-119.25776074380613,37.744385332257586],[-119.25776392562649,37.74438555257258],[-119.25776709609006,37.74438585921372],[-119.25777025148363,37.744386251821815],[-119.25777338811164,37.74438672993708],[-119.25777650230049,37.74438729299952],[-119.25777959040293,37.7443879403497],[-119.25778264880218,37.74438867122946],[-119.25778567391632,37.744389484782786],[-119.25778866220229,37.744390380056856],[-119.25779161016031,37.744391356003156],[-119.25779451433777,37.74439241147866],[-119.2577973713333,37.7443935452472],[-119.25780017780086,37.74439475598091],[-119.25780293045348,37.74439604226185],[-119.25780562606737,37.744397402583466],[-119.25780826148538,37.74439883535262],[-119.257810833621,37.744400338891246],[-119.2578147725136,37.74440264200358],[-119.25781880761177,37.744404837588526],[-119.25782293426239,37.74440692311424],[-119.25782714770676,37.7444088961758],[-119.25783144308606,37.74441075449788],[-119.25783581544705,37.74441249593756],[-119.25784025974765,37.74441411848668],[-119.25784477086286,37.74441562027416],[-119.25784934359065,37.74441699956819],[-119.25785397265784,37.7444182547782],[-119.25785865272643,37.74441938445676],[-119.25786337839948,37.74442038730113],[-119.25786814422753,37.74442126215489],[-119.25787294471476,37.744422008009174],[-119.25787777432546,37.744422624003896],[-119.25788262749025,37.744423109428716],[-119.25788749861263,37.744423463723834],[-119.2578923820754,37.74442368648071],[-119.25789727224712,37.744423777442464],[-119.25790216348861,37.74442373650422],[-119.25790705015945,37.744423563713134],[-119.25791192662447,37.74442325926853],[-119.25791678726036,37.744422823521425],[-119.25792162646195,37.74442225697436],[-119.25794399052009,37.744419621747554],[-119.257966449539,37.74441755766423],[-119.25798898039312,37.74441606684973],[-119.25801155988287,37.74441515083912],[-119.25803416475864,37.744414810575584],[-119.25805677174466,37.7444150464095],[-119.25807935756296,37.744415858098016],[-119.25810189895748,37.744417244805355],[-119.25812437271773,37.744419205103675],[-119.2581317857289,37.744419843882994],[-119.25813922219577,37.74442027794592],[-119.2581466731554,37.74442050676934],[-119.25815412962741,37.74442053007741],[-119.25816158262477,37.74442034784209],[-119.25816902316464,37.744419960282976],[-119.25817644227921,37.744419367867195],[-119.25818383102644,37.744418571308785],[-119.25819118050099,37.74441757156777],[-119.25819848184473,37.74441636984916],[-119.25820572625764,37.744414967601294],[-119.25821290500828,37.74441336651425],[-119.25822000944436,37.74441156851782],[-119.25822703100316,37.744409575779],[-119.25823396122182,37.744407390699614],[-119.25824079174761,37.74440501591322],[-119.25824751434796,37.7444024542821],[-119.25825412092037,37.74439970889372],[-119.25826060350218,37.744396783056935],[-119.25826695428016,37.744393680298174],[-119.2582731656,37.7443904043571],[-119.25827922997543,37.74438695918209],[-119.25828514009724,37.74438334892545],[-119.25829088884228,37.744379577938524],[-119.25829646928177,37.74437565076635],[-119.25830187468985,37.74437157214217],[-119.25830709855161,37.74436734698186],[-119.25831213457097,37.74436298037778],[-119.25831697667822,37.74435847759287],[-119.25832161903735,37.74435384405418],[-119.25836141866496,37.74431400005155],[-119.25840279254928,37.74427518040997],[-119.25844569890324,37.744237424334464],[-119.25849009439234,37.74420076995592],[-119.2585359341783,37.74416525429249],[-119.25858317196437,37.74413091321234],[-119.2586317600422,37.744097781397244],[-119.25868164933998,37.74406589230774],[-119.25873278947182,37.74403527814926],[-119.25878512878897,37.74400596983958],[-119.25881161572843,37.74399111218385],[-119.25883746268309,37.743975560030684],[-119.258862640787,37.74395933074899],[-119.25888712192129,37.74394244246387],[-119.25891087874552,37.74392491403647],[-119.25893388472826,37.74390676504275],[-119.25895611417666,37.743888015751786],[-119.25897754226514,37.743868687103024],[-119.25899814506319,37.74384880068294],[-119.259017899562,37.74382837870092],[-119.2590367837003,37.743807443964435],[-119.25905477638882,37.743786019853594],[-119.25907185753393,37.74376413029507],[-119.2590880080601,37.74374179973524],[-119.25910320993117,37.74371905311305],[-119.25911744617044,37.74369591583207],[-119.25913070087974,37.74367241373209],[-119.2592537950845,37.743443147782486],[-119.25925708594691,37.743437268620994],[-119.25926062059885,37.743431479384725],[-119.25926439514957,37.7434257864462],[-119.2592684054441,37.74342019607197],[-119.25927264706809,37.74341471441562],[-119.25927711535243,37.743409347511154],[-119.25928180537868,37.7434041012662],[-119.2592867119842,37.743398981455556],[-119.25929182976795,37.743393993714896],[-119.25929715309651,37.74338914353445],[-119.25930267611015,37.743384436253116],[-119.2593083927294,37.743379877052426],[-119.25931429666157,37.743375470950916],[-119.25932038140796,37.743371222798636],[-119.25937647134107,37.74333433771605],[-119.2594337460316,37.7432986191792],[-119.25949216701473,37.74326409117517],[-119.25950783594027,37.74325476973335],[-119.25952311897645,37.74324505268788],[-119.25953800029056,37.74323495010543],[-119.2595524644661,37.743224472452006],[-119.25956649651869,37.743213630582204],[-119.25958008191168,37.74320243572794],[-119.25959320657115,37.74319089948677],[-119.25960585690052,37.743179033809966],[-119.2596180197946,37.743166850990036],[-119.25962531532132,37.74315955727095],[-119.25963291906784,37.743152464844215],[-119.259640822233,37.743145581919165],[-119.25964901566888,37.74313891646263],[-119.25965748989175,37.743132476189714],[-119.25966623509282,37.74312626855487],[-119.25967524114965,37.74312030074331],[-119.25968449763789,37.74311457966263],[-119.25969399384333,37.743109111934835],[-119.25970371877428,37.743103903888695],[-119.25971366117432,37.743098961552384],[-119.25972380953534,37.743094290646546],[-119.25973415211085,37.74308989657764],[-119.2597446769295,37.74308578443166],[-119.25975537180909,37.74308195896835],[-119.25976622437055,37.743078424615575],[-119.25977722205228,37.74307518546424],[-119.25978835212472,37.74307224526358],[-119.25979960170513,37.74306960741681],[-119.25981095777239,37.74306727497719],[-119.25982240718211,37.743065250644406],[-119.25983645278605,37.74306276221416],[-119.2598503805303,37.743059886230256],[-119.25986417346215,37.743056626193315],[-119.25987781479303,37.74305298607143],[-119.25989128791886,37.7430489702953],[-119.25990457644033,37.7430445837529],[-119.25991766418285,37.74303983178346],[-119.25993053521623,37.743034720171046],[-119.25994317387399,37.74302925513742],[-119.25995556477258,37.743023443334586],[-119.25996769283003,37.74301729183658],[-119.25997954328426,37.74301080813094],[-119.25999110171117,37.74300400010954],[-119.26000235404202,37.742996876059024],[-119.26001328658073,37.74298944465067],[-119.2600196913063,37.7429847753588],[-119.26002588884698,37.7429799329675],[-119.26003187178806,37.742974923270246],[-119.2600376329716,37.742969752260635],[-119.26004316550492,37.74296442612528],[-119.26004846276895,37.74295895123639],[-119.26005351842605,37.742953334144126],[-119.26005832642772,37.74294758156882],[-119.26006288102171,37.74294170039281],[-119.26006717675891,37.742935697652385],[-119.26007120850002,37.742929580529214],[-119.2600749714215,37.74292335634185],[-119.26007846102144,37.74291703253688],[-119.26008167312496,37.74291061668014],[-119.26008460388918,37.742904116447555],[-119.26008724980781,37.74289753961599],[-119.26008960771533,37.742890894053964],[-119.26009167479084,37.74288418771223],[-119.26009344856139,37.74287742861425],[-119.26009492690488,37.742870624846574],[-119.26009610805271,37.74286378454925],[-119.26009699059188,37.74285691590599],[-119.26009757346657,37.742850027134416],[-119.26009785597951,37.74284312647623],[-119.2600978377928,37.74283622218735],[-119.26009751892828,37.742829322528074],[-119.26009689976753,37.74282243575309],[-119.26009598105138,37.742815570101754],[-119.26009476387907,37.74280873378806],[-119.26008569847237,37.742767815444346],[-119.26007494816676,37.74272715518274],[-119.26006252452903,37.74268679674129],[-119.26004844092597,37.742646783533274],[-119.26003271250978,37.74260715860059],[-119.26001535620202,37.74256796456733],[-119.25999639067516,37.74252924359412],[-119.25997583633274,37.74249103733252],[-119.25997170961242,37.74248335155958],[-119.25996791639324,37.74247555818359],[-119.25996446111519,37.742467666326945],[-119.2599613478227,37.74245968522742],[-119.25995858015992,37.742451624227165],[-119.25995616136638,37.742443492761886],[-119.25995409427323,37.74243530034978],[-119.25995238129995,37.74242705658037],[-119.25995102445157,37.74241877110326],[-119.25995002531619,37.74241045361694],[-119.25994938506318,37.742402113857295],[-119.2599491044419,37.74239376158632],[-119.2599491837807,37.74238540658065],[-119.25994962298658,37.742377058620086],[-119.25995042154531,37.74236872747621],[-119.25995157852203,37.74236042290092],[-119.25995309256237,37.74235215461498],[-119.25995496189391,37.742343932296706],[-119.25995718432848,37.74233576557059],[-119.25995975726453,37.742327663996036],[-119.25996267769021,37.7423196370562],[-119.25996594218697,37.74231169414689],[-119.25996954693352,37.74230384456548],[-119.25997348771025,37.74229609750021],[-119.2599777599043,37.74228846201921],[-119.25998235851483,37.74228094706004],[-119.2599872781589,37.74227356141921],[-119.25999251307785,37.742266313741816],[-119.25999805714399,37.742259212511456],[-119.26030550493451,37.741867282522165],[-119.26034444652858,37.741817459770814],[-119.26038504850392,37.74176847999014],[-119.26042728193873,37.7417203780658],[-119.26051534413804,37.741620134439984],[-119.26060007265885,37.741518095116454],[-119.26068140947986,37.74141432998744],[-119.26069517785406,37.74139692953415],[-119.2607096966802,37.74137991810102],[-119.26072494854537,37.74136331608983],[-119.26074091515765,37.741347143411254],[-119.2607575773679,37.74133141946111],[-119.2607749151928,37.74131616309699],[-119.26079290783883,37.741301392615775],[-119.26081153372716,37.74128712573159],[-119.2608307705196,37.74127337955456],[-119.26085059514533,37.74126017057034],[-119.2608709838285,37.74124751462036],[-119.26089191211697,37.74123542688275],[-119.26090303134782,37.7412294576434],[-119.26091440056078,37.741223793136086],[-119.26092600651809,37.74121843995628],[-119.26093783570639,37.74121340433692],[-119.26094987435236,37.74120869214117],[-119.2609621084389,37.74120430885569],[-119.26097452372122,37.74120025958409],[-119.2609871057437,37.74119654904115],[-119.26099983985647,37.7411931815472],[-119.26101271123265,37.74119016102317],[-119.26102570488554,37.741187490986],[-119.26103880568607,37.741185174544476],[-119.26105199838038,37.74118321439577],[-119.26106526760768,37.74118161282215],[-119.26107859791797,37.74118037168842],[-119.26109197379027,37.74117949243967],[-119.26110537965047,37.741178976099654],[-119.26111879988956,37.74117882326956],[-119.26113221888174,37.741179034127335],[-119.26114562100275,37.74117960842746],[-119.26115899064794,37.74118054550128],[-119.26117231225041,37.74118184425771],[-119.26118557029932,37.741183503184544],[-119.26121277496084,37.741186904395825],[-119.26124011075855,37.74118956107267],[-119.26126754539035,37.74119147007567],[-119.26129504643737,37.74119262914905],[-119.26132258140221,37.741193036923136],[-119.26135011774743,37.74119269291606],[-119.26137762293394,37.741191597534346],[-119.26140506445945,37.74118975207238],[-119.26143240989698,37.74118715871089],[-119.261459626933,37.74118382051443],[-119.26148668340579,37.741179741427615],[-119.26151354734336,37.74117492627066],[-119.26154018700122,37.74116938073349],[-119.26156657089999,37.74116311136914],[-119.26159266786252,37.74115612558598],[-119.26161844705067,37.74114843163895],[-119.26164387800196,37.741140038619776],[-119.26166893066532,37.74113095644627],[-119.26168499989085,37.74112512311958],[-119.26170130516788,37.741119718637215],[-119.26171782835422,37.74111474901248],[-119.26173455106525,37.74111021977485],[-119.26175145469428,37.741106135963825],[-119.26176852043335,37.74110250212328],[-119.26178572929423,37.74109932229641],[-119.26180306212933,37.741096600021294],[-119.26182049965317,37.74109433832685],[-119.26183802246382,37.74109253972958],[-119.26185561106445,37.74109120623072],[-119.261873245885,37.741090339313985],[-119.26189090730404,37.74108993994391],[-119.26190857567047,37.74109000856492],[-119.26192623132553,37.741090545100626],[-119.26194385462459,37.74109154895406],[-119.261961425959,37.74109301900825],[-119.26197892577791,37.741094953627595],[-119.26199633461007,37.74109735065949],[-119.2620099950296,37.741099230468144],[-119.26202372717592,37.74110074527881],[-119.26203751558847,37.74110189338604],[-119.26205134474341,37.74110267349719],[-119.262065199071,37.74110308473398],[-119.26207906297316,37.74110312663345],[-119.26209292084103,37.74110279914835],[-119.26210675707252,37.741102102647424],[-119.26212055608994,37.741101037914866],[-119.26213430235747,37.741099606149376],[-119.26214798039874,37.74109780896294],[-119.26216157481407,37.741095648378945],[-119.26217507029811,37.74109312682991],[-119.26218845165671,37.74109024715475],[-119.2622017038244,37.741087012595585],[-119.262214811881,37.74108342679411],[-119.26222776106869,37.741079493787396],[-119.26224053680849,37.74107521800352],[-119.26227258975864,37.74106450167331],[-119.26230508661996,37.74105466452754],[-119.2623379891654,37.74104571813791],[-119.26237125869062,37.74103767302832],[-119.26240485605976,37.741030538662415],[-119.26243874175127,37.74102432343257],[-119.26247287590445,37.741019034649874],[-119.26250721836642,37.741014678535706],[-119.26254172873928,37.741011260214265],[-119.26257636642758,37.74100878370658],[-119.26261109068615,37.74100725192586],[-119.26264586066799,37.74100666667394],[-119.26268063547234,37.74100702863929],[-119.26271537419275,37.74100833739612],[-119.2627500359652,37.741010591404915],[-119.2627730326687,37.741012092923576],[-119.2627960799548,37.74101297939473],[-119.26281915174626,37.74101324981533],[-119.26284222193814,37.741012903879465],[-119.26286526442733,37.741011941978506],[-119.26288825314205,37.74101036520082],[-119.26291116207136,37.741008175330485],[-119.26293396529464,37.741005374845244],[-119.26295663701083,37.74100196691376],[-119.26297915156769,37.740997955392],[-119.26300148349083,37.740993344818826],[-119.2630236075125,37.74098814041098],[-119.2630454986002,37.74098234805701],[-119.26306713198503,37.7409759743108],[-119.26308848318962,37.740969026384],[-119.26310952805598,37.7409615121379],[-119.26313024277273,37.74095344007464],[-119.26315060390199,37.74094481932746],[-119.26316733029827,37.74093774387009],[-119.26318435311761,37.740931129245375],[-119.26320165223432,37.74092498327357],[-119.26321920719613,37.7409193132209],[-119.26323699724827,37.74091412579089],[-119.26325500135803,37.74090942711651],[-119.26327319823965,37.74090522275285],[-119.26329156637951,37.74090151767056],[-119.26331008406147,37.740898316250096],[-119.2633287293926,37.740895622276405],[-119.26334748032914,37.74089343893446],[-119.26336631470238,37.74089176880556],[-119.26338521024506,37.740890613864266],[-119.26340414461754,37.74088997547604],[-119.2634230954343,37.74088985439559],[-119.26344204029039,37.7408902507661],[-119.26345080859541,37.74089043728592],[-119.26345957984734,37.74089039044121],[-119.26346834420012,37.74089011028452],[-119.26347709181546,37.740889597130376],[-119.26348581287385,37.74088885155475],[-119.26349449758563,37.74088787439464],[-119.26350313620186,37.7408866667469],[-119.26351171902543,37.7408852299672],[-119.26352023642181,37.74088356566833],[-119.26352867882996,37.74088167571855],[-119.26353703677295,37.74087956223937],[-119.2635453008687,37.74087722760328],[-119.26355346184053,37.740874674430955],[-119.26356151052744,37.74087190558844],[-119.26356943789457,37.74086892418384],[-119.26357723504313,37.7408657335639],[-119.2635848932206,37.740862337310205],[-119.26359240383044,37.74085873923512],[-119.26359975844179,37.74085494337764],[-119.2636069487988,37.74085095399875],[-119.26361396683012,37.74084677557665],[-119.26376596707398,37.74075369526569],[-119.26377854289515,37.74074631097419],[-119.26379142749099,37.74073927037509],[-119.26380460597326,37.74073258160376],[-119.26381806311423,37.740726252389024],[-119.26383178336422,37.740720290044294],[-119.26384575086946,37.74071470145898],[-119.26385994949058,37.74070949309068],[-119.2638743628211,37.740704670957626],[-119.26388897420647,37.740700240631746],[-119.2639037667633,37.740696207232276],[-119.2639187233989,37.740692575419764],[-119.26393382683095,37.74068934939073],[-119.26394905960754,37.74068653287285],[-119.2639644041273,37.740684129120574],[-119.26397984265977,37.74068214091142],[-119.26399535736581,37.74068057054278],[-119.26401093031832,37.740679419829156],[-119.26402654352286,37.7406786901002],[-119.26404217893852,37.74067838219913],[-119.26404678679216,37.74067829140789],[-119.2640513880903,37.74067807619983],[-119.26405597750741,37.74067773682401],[-119.26406054973181,37.740677273673256],[-119.26406509947165,37.74067668728358],[-119.26406962146105,37.740675978333684],[-119.26407411046635,37.7406751476441],[-119.26407856129202,37.74067419617624],[-119.26408296878675,37.74067312503135],[-119.26408732784932,37.740671935449136],[-119.26409163343459,37.7406706288064],[-119.26409588055938,37.74066920661547],[-119.26410006430808,37.740667670522356],[-119.26410417983847,37.74066602230493],[-119.2641082223873,37.74066426387078],[-119.26411218727576,37.74066239725513],[-119.26411606991495,37.74066042461836],[-119.26411986581114,37.74065834824362],[-119.26412357057106,37.74065617053404],[-119.2641271799068,37.74065389401007],[-119.26413068964102,37.74065152130658],[-119.26413409571158,37.74064905516967],[-119.26413739417636,37.74064649845361],[-119.26414058121773,37.740643854117536],[-119.26414365314714,37.740641125221956],[-119.2641466064091,37.74063831492528],[-119.26415421413235,37.740631082581416],[-119.26416213577147,37.74062406599242],[-119.26417036163066,37.74061727374622],[-119.26417888164174,37.74061071415624],[-119.26418768537658,37.74060439525111],[-119.26419676205977,37.740598324764846],[-119.26420610058176,37.74059251012746],[-119.26421568951264,37.74058695845577],[-119.26422551711596,37.74058167654475],[-119.26423557136313,37.74057667085922],[-119.26424583994823,37.740571947525886],[-119.26425631030298,37.740567512325875],[-119.26426696961212,37.74056337068767],[-119.2642778048292,37.74055952768042],[-119.26428880269238,37.74055598800775],[-119.26429994974085,37.74055275600207],[-119.26431123233111,37.74054983561919],[-119.26432263665387,37.74054723043352],[-119.26433414875078,37.74054494363366],[-119.2643457545316,37.74054297801853],[-119.26435743979144,37.74054133599396],[-119.26436919022815,37.740540019569735],[-119.26438099145979,37.74053903035703],[-119.26439282904221,37.74053836956662],[-119.26440468848686,37.74053803800727],[-119.26441655527836,37.74053803608483],[-119.26442841489234,37.74053836380159],[-119.26443606765503,37.740538578634535],[-119.26444372518979,37.740538587480245],[-119.26445137870712,37.74053839032854],[-119.2644590194222,37.74053798740572],[-119.26446663856485,37.74053737917427],[-119.26447422738968,37.74053656633233],[-119.26448177718603,37.7405355498129],[-119.2644892792882,37.74053433078277],[-119.26449672508502,37.74053291064116],[-119.26450410603013,37.740531291018115],[-119.26457838845336,37.740512873712966],[-119.26465188623447,37.74049256804706],[-119.2647245232726,37.74047039504545],[-119.26479622435838,37.74044637766655],[-119.26486691525173,37.74042054077855],[-119.26493652275873,37.74039291113349],[-119.26500497480752,37.74036351733971],[-119.26507220052284,37.740332389832126],[-119.26508356680549,37.740327142194374],[-119.26509515555671,37.74032221094944],[-119.26510695281655,37.74031760203758],[-119.26511894437388,37.7403133210107],[-119.26513111578353,37.74030937302578],[-119.26514345238367,37.74030576283862],[-119.26515593931349,37.740302494798016],[-119.26516856153111,37.740299572840776],[-119.26518130383168,37.74029700048662],[-119.26519415086574,37.74029478083432],[-119.26520708715756,37.74029291655762],[-119.26522009712406,37.74029140990228],[-119.26523316509325,37.74029026268322],[-119.26524627532336,37.74028947628237],[-119.26525941202172,37.74028905164706],[-119.26527255936377,37.74028898928881],[-119.26528570151204,37.7402892892827],[-119.26529882263547,37.740289951267414],[-119.26531564672041,37.74029126486351],[-119.26533240394238,37.740293037302074],[-119.26534907446403,37.74029526648488],[-119.2653656385506,37.74029794977303],[-119.26538207659333,37.74030108398997],[-119.26539836913261,37.74030466542543],[-119.26541449688123,37.74030868983963],[-119.26543044074687,37.74031315246841],[-119.265446181855,37.74031804802889],[-119.26546170157106,37.74032337072565],[-119.26547698152254,37.74032911425757],[-119.26549200362086,37.74033527182544],[-119.26550675008255,37.74034183613982],[-119.2655212034505,37.7403487994298],[-119.26553534661456,37.74035615345211],[-119.2655491628317,37.74036388950103],[-119.26556263574605,37.74037199841847],[-119.26557574940804,37.74038047060495],[-119.2655884882934,37.740389296031026],[-119.26560083732151,37.74039846424898],[-119.26561278187327,37.74040796440537],[-119.26562430780837,37.74041778525373],[-119.265635401482,37.740427915167984],[-119.2656370830764,37.7404294507491],[-119.26563883010664,37.74043093954849],[-119.26564064051036,37.740432379808595],[-119.26564251215035,37.74043376982921],[-119.26564444281713,37.740435107969375],[-119.26564643023157,37.740436392649464],[-119.26564847204752,37.74043762235286],[-119.26565056585461,37.74043879562791],[-119.26565270918107,37.74043991108955],[-119.26565489949672,37.740440967420994],[-119.26565713421586,37.740441963375225],[-119.26565941070042,37.740442897776504],[-119.265661726263,37.74044376952176],[-119.26566407817006,37.74044457758193],[-119.26566646364515,37.740445321003065],[-119.26566887987224,37.74044599890756],[-119.26567132399893,37.74044661049514],[-119.26567379313995,37.74044715504385],[-119.26567628438046,37.74044763191083],[-119.26567879477949,37.74044804053314],[-119.26568132137358,37.74044838042835],[-119.26568386118002,37.740448651195294],[-119.26568641120058,37.740448852514284],[-119.26568896842494,37.74044898414767],[-119.26569152983427,37.74044904594006],[-119.26569409240484,37.74044903781849],[-119.26569665311152,37.74044895979259],[-119.26569920893138,37.740448811954415],[-119.26570175684725,37.74044859447852],[-119.26570429385129,37.74044830762166],[-119.26570681694861,37.74044795172243],[-119.2657093231606,37.74044752720099],[-119.26571180952874,37.74044703455847],[-119.26571427311785,37.740446474376455],[-119.26571671101964,37.740445847316266],[-119.26571912035611,37.74044515411809],[-119.26572149828309,37.7404443956003],[-119.2657238419934,37.74044357265833],[-119.2657261487203,37.74044268626362],[-119.26572841574067,37.740441737462604],[-119.2657306403783,37.740440727375336],[-119.26573282000697,37.74043965719423],[-119.26573495205363,37.74043852818264],[-119.26573703400143,37.74043734167336],[-119.26573906339256,37.74043609906707],[-119.26574103783136,37.7404348018307],[-119.265742954987,37.74043345149561],[-119.26574481259628,37.740432049655894],[-119.26574660846624,37.74043059796642],[-119.26574834047692,37.74042909814089],[-119.26575410229466,37.74042410938079],[-119.2657600773183,37.74041928137406],[-119.26576625844041,37.740414619863714],[-119.26577263830835,37.74041013039471],[-119.2657792093332,37.7404058183073],[-119.26578596369856,37.74040168873082],[-119.26579289336996,37.74039774657748],[-119.26579999010445,37.74039399653648],[-119.26580724546032,37.740390443068584],[-119.26581465080722,37.74038709040068],[-119.2658221973363,37.74038394252083],[-119.2658298760709,37.74038100317348],[-119.265837677877,37.74037827585503],[-119.26584559347424,37.74037576380964],[-119.26585361344691,37.74037347002544],[-119.2658617282551,37.74037139723094],[-119.26586992824618,37.74036954789174],[-119.26587820366605,37.74036792420763],[-119.26588654467106,37.74036652811004],[-119.26590639304366,37.740363768717174],[-119.26592634904128,37.7403615522729],[-119.26594638911993,37.740359881392166],[-119.26596648963638,37.74035875804629],[-119.26598662687613,37.74035818356058],[-119.26600677708133,37.74035815861279],[-119.26602691647889,37.74035868323238],[-119.26604702130837,37.74035975680039],[-119.26606706785024,37.740361378050245],[-119.26608703245363,37.740363545069194],[-119.26610689156436,37.74036625530059],[-119.26612662175275,37.740369505546916],[-119.26614619974116,37.74037329197357],[-119.26616560243153,37.74037761011328],[-119.26618480693259,37.740382454871536],[-119.26625076972812,37.7403991101403],[-119.26631740436878,37.74041398357679],[-119.26638463455393,37.74042705814993],[-119.26645238330079,37.74043831888851],[-119.2665205730327,37.74044775289819],[-119.26658912566798,37.740455349376454],[-119.26659964522236,37.740456225799775],[-119.26661019650292,37.740456814478605],[-119.26662076703262,37.740457114716854],[-119.2666313443116,37.74045712615946],[-119.26664191583212,37.74045684879291],[-119.26665246909322,37.740456282945196],[-119.26666299161548,37.74045542928541],[-119.26667347095587,37.74045428882305],[-119.26668389472242,37.74045286290671],[-119.26669425058893,37.740451153222565],[-119.26670452630937,37.740449161792334],[-119.26671470973261,37.74044689097092],[-119.2667247888166,37.740444343443606],[-119.2667347516427,37.74044152222286],[-119.26674458642974,37.74043843064479],[-119.26675428154796,37.740435072365315],[-119.26676382553282,37.74043145135556],[-119.26677320709841,37.74042757189745],[-119.26678241515091,37.740423438578496],[-119.26679143880176,37.74041905628641],[-119.26681527569464,37.74040657648019],[-119.26683857090381,37.740393467476565],[-119.26686129810447,37.74037974408956],[-119.26688343161376,37.74036542182743],[-119.2669049464198,37.740350516875246],[-119.2669258182099,37.74033504607652],[-119.26694602339803,37.74031902691419],[-119.2669655391516,37.74030247749087],[-119.26698434341708,37.740285416508414],[-119.26700241494505,37.7402678632467],[-119.26701973331414,37.74024983754199],[-119.26703627895418,37.74023135976429],[-119.26705203316823,37.74021245079456],[-119.26706697815378,37.74019313200101],[-119.26708109702277,37.74017342521489],[-119.26709437382081,37.74015335270595],[-119.26710351381323,37.74013954844468],[-119.26711324717607,37.740126002406456],[-119.26712356235586,37.74011273067004],[-119.2671344471084,37.74009974898861],[-119.2671458885136,37.740087072771075],[-119.26715787299045,37.74007471706374],[-119.26717038631355,37.740062696532455],[-119.26718341362965,37.74005102544522],[-119.26719693947554,37.74003971765524],[-119.26721094779623,37.74002878658457],[-119.26722542196407,37.740018245207985],[-119.26724034479848,37.740008106037784],[-119.26725569858641,37.739998381108826],[-119.26727146510324,37.73998908196426],[-119.2672876256345,37.73998021964189],[-119.26730416099804,37.73997180466097],[-119.26732105156687,37.73996384700982],[-119.26733827729232,37.739956356133824],[-119.26735581772802,37.73994934092446],[-119.26737365205399,37.739942809708495],[-119.26739175910146,37.739936770238266],[-119.26741011737796,37.739931229682405],[-119.26742870509284,37.73992619461734],[-119.26744750018311,37.73992167101951],[-119.26746648033968,37.73991766425824],[-119.26748562303376,37.739914179089425],[-119.26752732702663,37.73990659809596],[-119.26756868480855,37.73989790289297],[-119.26760964919009,37.739888103401725],[-119.26765017343061,37.73987721080355],[-119.2676902112918,37.739865237526985],[-119.26772971709032,37.73985219723365],[-119.2677686457501,37.739838104802594],[-119.2678069528535,37.73982297631341],[-119.2678445946923,37.739806829027785],[-119.26788152831742,37.73978968136987],[-119.26791771158781,37.73977155290521],[-119.2679531032188,37.739752464318485],[-119.26798766282906,37.73973243738977],[-119.26802135098664,37.73971149496991],[-119.26805412925405,37.739689660954205],[-119.26807593481301,37.739672536424756],[-119.26809702711982,37.73965485747461],[-119.26811738383445,37.739636642828934],[-119.26813698339608,37.73961791178023],[-119.2681558050459,37.739598684168016],[-119.2681738288491,37.739578980357706],[-119.26819103571596,37.73955882121901],[-119.26820740742205,37.739538228104045],[-119.26822292662766,37.73951722282443],[-119.268237576896,37.739495827628396],[-119.26825134271061,37.73947406517708],[-119.26825760753286,37.739462981086554],[-119.26826338530398,37.73945173137333],[-119.2682686690948,37.73944032952959],[-119.26827345256845,37.73942878922998],[-119.2682777299882,37.73941712431522],[-119.26828149622419,37.73940534877543],[-119.26828474675973,37.739393476733426],[-119.26828747769657,37.73938152242778],[-119.26828968575967,37.73936950019565],[-119.26829136830102,37.739357424455726],[-119.26829252330305,37.73934530969084],[-119.26829314938071,37.73933317043062],[-119.2682932457834,37.739321021234026],[-119.26829281239577,37.73930887667201],[-119.26829184973788,37.73929675130987],[-119.26829035896449,37.73928465968994],[-119.26828834186381,37.73927261631404],[-119.26828580085524,37.73926063562613],[-119.26828273898657,37.73924873199499],[-119.2682791599302,37.73923691969698],[-119.26827506797885,37.73922521289889],[-119.26827046804034,37.73921362564099],[-119.26826536563172,37.739202171820175],[-119.26825976687267,37.739190865173306],[-119.26825367847816,37.73917971926072],[-119.26824710775037,37.73916874744999],[-119.2682400625699,37.73915796289982],[-119.26823255138645,37.73914737854442],[-119.26787782052429,37.73864433559977],[-119.26783982666198,37.738590754509325],[-119.26780405226751,37.73853621838754],[-119.26777053535646,37.73848078519464],[-119.26773931154503,37.738424513844116],[-119.267710414012,37.7383674641401],[-119.26768387346374,37.7383096967138],[-119.26765971810138,37.73825127295913],[-119.26763797359095,37.738192254967274],[-119.26761866303615,37.7381327054609],[-119.26759764521691,37.73806801604585],[-119.26757390811228,37.73800392262983],[-119.26754747842044,37.73794049728255],[-119.26751838586695,37.737877811322406],[-119.2674866631714,37.737815935236114],[-119.26745234601057,37.73775493859962],[-119.26741547297827,37.73769488999981],[-119.26737608554193,37.73763585695739],[-119.26733422799593,37.737577905851],[-119.26728994741183,37.7375211018425],[-119.2672727498844,37.737500641886626],[-119.26725466110848,37.73748067252546],[-119.26723570325424,37.737461218233314],[-119.26721589955693,37.73744230285317],[-119.2671952742884,37.73742394956754],[-119.26717385272735,37.73740618087004],[-119.26715166112835,37.73738901853773],[-119.26712872668968,37.7373724836046],[-119.26710507751996,37.73735659633564],[-119.26708074260368,37.73734137620204],[-119.26705575176582,37.737326841857374],[-119.26703013563511,37.737313011114736],[-119.26700392560659,37.73729990092484],[-119.26697715380311,37.73728752735532],[-119.26694985303604,37.737275905570996],[-119.26692205676488,37.73726504981534],[-119.26688008596881,37.73724868855452],[-119.26683882975318,37.737231218611086],[-119.26679833453733,37.73721265964148],[-119.26675864588424,37.737193032527486],[-119.26671980844925,37.737172359352705],[-119.2666818659299,37.73715066337771],[-119.2666448610166,37.73712796901386],[-119.26660883534478,37.73710430179582],[-119.26657382944795,37.73707968835285],[-119.266539882712,37.737054156378825],[-119.26650703333117,37.73702773460111],[-119.26647531826467,37.73700045274817],[-119.26644477319546,37.73697234151615],[-119.26641543248998,37.736943432534346],[-119.26638732915937,37.736913758329614],[-119.26636607479448,37.736891343405766],[-119.26634385341852,37.736869527969255],[-119.26632069182058,37.73684833831894],[-119.26629661792308,37.73682779999931],[-119.26627166074817,37.7368079377696],[-119.26624585038279,37.736788775573935],[-119.26621921794224,37.73677033651263],[-119.26619179553285,37.736752642814146],[-119.26616361621316,37.73673571580848],[-119.26613471395409,37.73671957590125],[-119.26610512359804,37.736704242549244],[-119.26607488081679,37.736689734237],[-119.26604402206867,37.73667606845437],[-119.26601258455435,37.73666326167552],[-119.26598060617223,37.736651329339125],[-119.26594812547272,37.7366402858297],[-119.26592068258944,37.73663095789903],[-119.26589366133412,37.73662088351089],[-119.26586709388808,37.736610074663574],[-119.26584101189212,37.73659854423007],[-119.2658154464089,37.73658630594278],[-119.26579042788578,37.73657337437709],[-119.26576598611875,37.73655976493407],[-119.26574215021682,37.73654549382214],[-119.26571894856738,37.736530578037694],[-119.26569640880241,37.736515035344915],[-119.26567455776554,37.73649888425458],[-119.26565342148015,37.73648214400208],[-119.26563302511826,37.736464834524426],[-119.26561339297065,37.73644697643657],[-119.26559454841792,37.73642859100678],[-119.26557651390257,37.73640970013138],[-119.26555931090239,37.73639032630866],[-119.26554295990478,37.73637049261204],[-119.26552748038236,37.73635022266258],[-119.26551289076994,37.73632954060097],[-119.26549920844228,37.73630847105861],[-119.26548644969367,37.736287039128364],[-119.26547462971841,37.7362652703347],[-119.26546376259267,37.73624319060317],[-119.26545386125784,37.736220826229726],[-119.26544493750504,37.736198203849234],[-119.26543700196112,37.736175350403784],[-119.26543006407597,37.73615229311067],[-119.26542413211135,37.73612905942993],[-119.265418341263,37.73610639810838],[-119.26541155971532,37.736083910784885],[-119.2654037957045,37.73606162476738],[-119.26539505865986,37.73603956711938],[-119.26538535919221,37.73601776462699],[-119.26537470908112,37.73599624376648],[-119.26536312126058,37.73597503067206],[-119.26535060980324,37.735954151104245],[-119.26533718990333,37.735933630418415],[-119.26532287785824,37.735913493534184],[-119.26530769104873,37.735893764905015],[-119.26529164791778,37.73587446848866],[-119.26527476794818,37.7358556277179],[-119.26525707163893,37.73583726547224],[-119.2652385804803,37.73581940405005],[-119.26521931692778,37.73580206514149],[-119.26519930437469,37.735785269802214],[-119.26517856712394,37.73576903842774],[-119.26515713035845,37.73575339072879],[-119.26513502011038,37.735738345707155],[-119.26511226322991,37.7357239216329],[-119.26508888735226,37.73571013602192],[-119.26506492086438,37.73569700561481],[-119.2650403928703,37.73568454635655],[-119.2650153331559,37.735672773377054],[-119.26498977215272,37.73566170097282],[-119.26496374090102,37.73565134258967],[-119.26493727101203,37.735641710806284],[-119.2649103946296,37.73563281731907],[-119.26488314439118,37.73562467292777],[-119.26485555338822,37.73561728752256],[-119.26482765512586,37.73561067007187],[-119.26482032639998,37.73560893164208],[-119.26481307843964,37.73560699136503],[-119.26480592005603,37.7356048515995],[-119.26479885995151,37.735602514946734],[-119.26479190670902,37.73559998424743],[-119.26478506878148,37.735597262578125],[-119.26477835448168,37.73559435324749],[-119.26477177197212,37.735591259792365],[-119.26476532925507,37.735587985973474],[-119.26475903416282,37.73558453577073],[-119.26475289434823,37.735580913378485],[-119.2647469172754,37.73557712320049],[-119.26474111021055,37.73557316984438],[-119.2647354802132,37.73556905811621],[-119.2647300341277,37.73556479301456],[-119.26472477857469,37.73556037972446],[-119.26471971994327,37.73555582361109],[-119.26471486438314,37.73555113021324],[-119.26471021779709,37.73554630523666],[-119.26470578583384,37.73554135454694],[-119.26470157388124,37.73553628416265],[-119.26469758705969,37.73553110024772],[-119.26469383021583,37.73552580910417],[-119.26469030791675,37.73552041716439],[-119.26468702444441,37.73551493098326],[-119.26438345584428,37.73500086910917],[-119.26406411066024,37.734492872680725],[-119.26390358426808,37.734254979266446],[-119.26373317634223,37.7340214614644],[-119.26328994569013,37.73341462232741],[-119.26310444626864,37.733141474777455],[-119.26292917037091,37.73286410151284],[-119.26276427034811,37.73258274381042],[-119.26267173677756,37.73242607766879],[-119.26257227317703,37.73227211343177],[-119.2624660044578,37.732121044389494],[-119.2623530640721,37.73197306019621],[-119.26223359384532,37.731828346632355],[-119.26199731442757,37.73154250054868],[-119.26177351140294,37.731250390031576],[-119.26156244767074,37.730952358413525],[-119.26136437114802,37.730648755982344],[-119.26117951447878,37.73033993956904],[-119.26100809476114,37.730026272128434],[-119.26085031329285,37.729708122312154],[-119.26070635533536,37.72938586403525],[-119.26057638989684,37.72905987603654],[-119.26037847076111,37.72863304039546],[-119.26019912347144,37.728201058441044],[-119.26003855925697,37.727764439730045],[-119.2598969671804,37.727323699279815],[-119.25977451391637,37.72687935696035],[-119.25967134355642,37.726431936881006],[-119.25956306220652,37.725980667108225],[-119.25947430096649,37.72552671675791],[-119.25940516360002,37.72507061833991],[-119.25935573084598,37.72461290687417],[-119.25932606032535,37.72415411926301],[-119.25932050872005,37.724060592364154],[-119.25931881060565,37.72396697128344],[-119.259320967784,37.723873356165],[-119.25932697793309,37.723779847146204],[-119.25933683460951,37.72368654425061],[-119.25935052725552,37.72359354728083],[-119.25936804121025,37.723500955711955],[-119.2593893577256,37.72340886858505],[-119.25941445398625,37.723317384401206],[-119.25944330313413,37.72322660101622],[-119.2594587376714,37.72317782589135],[-119.25947203230429,37.72312865475342],[-119.25948317102687,37.7230791468174],[-119.25949214042949,37.72302936170373],[-119.25949892971505,37.72297935936653],[-119.25950353071197,37.72292920002142],[-119.25950593788383,37.7228789440729],[-119.25950614833633,37.72282865204175],[-119.25950416182044,37.722778384492074],[-119.25949998073291,37.722728201958354],[-119.25949361011315,37.72267816487257],[-119.2594850576374,37.72262833349147],[-119.25947433360923,37.72257876782388],[-119.25946145094726,37.722529527558606],[-119.25944642516943,37.722480671992464],[-119.25942927437454,37.72243225995883],[-119.25941001922017,37.72238434975691],[-119.25927913495967,37.72207884023732],[-119.25927731518931,37.7220748424532],[-119.25927532241369,37.72207089706228],[-119.25927315901798,37.722067008786794],[-119.25927082759155,37.72206318228054],[-119.2592683309249,37.722059422123486],[-119.25926567200628,37.72205573281608],[-119.25926285401819,37.722052118774066],[-119.25925988033342,37.72204858432303],[-119.25925675451123,37.72204513369335],[-119.25925348029287,37.72204177101503],[-119.25925006159727,37.72203850031284],[-119.25924650251619,37.72203532550145],[-119.25924280730955,37.72203225038078],[-119.2592389804001,37.72202927863138],[-119.25923502636824,37.72202641381013],[-119.25923094994654,37.7220236593459],[-119.25922675601402,37.72202101853549],[-119.25922244959037,37.72201849453965],[-119.25921803582992,37.72201609037931],[-119.25921352001548,37.72201380893201],[-119.25920890755198,37.72201165292839],[-119.25920420396001,37.72200962494892],[-119.25919941486929,37.72200772742089],[-119.25919454601181,37.722005962615434],[-119.2591896032151,37.72200433264481],[-119.25918459239509,37.72200283945991],[-119.25917951954922,37.72200148484795],[-119.25917439074911,37.72200027043021],[-119.25916921213336,37.72199919766021],[-119.25916060011703,37.72199741443905],[-119.25915207035976,37.721995397124616],[-119.25914363294339,37.7219931481013],[-119.25913529784063,37.72199067002738],[-119.25912707490325,37.72198796583185],[-119.2591189738504,37.72198503871095],[-119.25911100425725,37.72198189212443],[-119.25910317554352,37.72197852979146],[-119.2590954969624,37.72197495568615],[-119.2590879775897,37.72197117403296],[-119.25908062631298,37.72196718930169],[-119.25907345182117,37.72196300620209],[-119.25906646259415,37.72195862967846],[-119.25905966689294,37.72195406490366],[-119.2590530727497,37.721949317273086],[-119.25904668795843,37.72194439239825],[-119.25904052006565,37.721939296100125],[-119.25903457636156,37.721934034402366],[-119.25902886387128,37.72192861352407],[-119.2590233893467,37.721923039872514],[-119.25901815925843,37.7219173200355],[-119.25901317978818,37.721911460773654],[-119.25900845682139,37.72190546901236],[-119.25900399594036,37.721899351833684],[-119.25899366147083,37.72188399462558],[-119.25898398794513,37.72186836812135],[-119.25897498646937,37.72185249026232],[-119.25896666737799,37.72183637927837],[-119.25895904022202,37.7218200536671],[-119.25895211375794,37.72180353217243],[-119.25894589593781,37.721786833763204],[-119.25894039389999,37.72176997761141],[-119.25893561396107,37.72175298307009],[-119.2589315616085,37.72173586965117],[-119.25892824149443,37.721718657003024],[-119.25892565743025,37.721701364888006],[-119.25892381238232,37.721684013159624],[-119.2589227084684,37.72166662173989],[-119.25892234695546,37.721649210596304],[-119.25892272825799,37.72163179971899],[-119.25892385193774,37.72161440909785],[-119.25892571670401,37.72159705869942],[-119.25892832041536,37.721579768444094],[-119.25893166008187,37.72156255818316],[-119.25893573186869,37.721545447676085],[-119.25894068706135,37.72152791815815],[-119.2589463943975,37.7215105335713],[-119.25895284719371,37.72149331427182],[-119.2589600378936,37.72147628042241],[-119.25896795807685,37.72145945196862],[-119.25897659846893,37.721442848615524],[-119.25898594895202,37.72142648980455],[-119.25899599857685,37.7214103946908],[-119.25900673557555,37.72139458212056],[-119.25901814737534,37.72137907060931],[-119.25903022061344,37.721363878319956],[-119.25904294115243,37.72134902304164],[-119.25905629409714,37.721334522168846],[-119.25907026381176,37.7213203926811],[-119.25908483393846,37.721306651123],[-119.25909998741633,37.72129331358498],[-119.25911570650142,37.72128039568429],[-119.25913197278754,37.721267912546864],[-119.25920552845623,37.72121483516683],[-119.25928087513009,37.72116336736305],[-119.25935795700396,37.72111354725248],[-119.25943671698784,37.72106541173172],[-119.25945936287084,37.72105147905359],[-119.25948140596645,37.721036949209925],[-119.25950282132939,37.721021838643765],[-119.25952358472479,37.72100616445541],[-119.2595436726557,37.7209899443829],[-119.25956306238955,37.720973196782076],[-119.25958173198401,37.72095594060574],[-119.25959966031171,37.72093819538221],[-119.2596168270842,37.72091998119327],[-119.25963321287497,37.720901318651336],[-119.25964879914125,37.72088222887629],[-119.2596635682452,37.7208627334714],[-119.25967750347375,37.720842854499],[-119.25969058905751,37.72082261445545],[-119.2597028101887,37.72080203624574],[-119.25971415303778,37.72078114315751],[-119.2597246047692,37.720759958834705],[-119.25973415355594,37.720738507250836],[-119.25974278859272,37.720716812681886],[-119.25975050010842,37.72069489967873],[-119.25975586165772,37.72067969984877],[-119.25976188674285,37.72066465765666],[-119.25976856804517,37.72064979137325],[-119.25977589744889,37.7206351190557],[-119.25978386605107,37.72062065852549],[-119.25979246417236,37.72060642734692],[-119.25980168136891,37.72059244280572],[-119.25981150644476,37.72057872188794],[-119.2598219274658,37.7205652812595],[-119.25983293177389,37.72055213724581],[-119.25984450600262,37.720539305812046],[-119.25985663609323,37.72052680254367],[-119.25986930731186,37.7205146426275],[-119.25988250426741,37.7205028408334],[-119.25989621093022,37.720491411496155],[-119.25991041065156,37.72048036849819],[-119.25992508618378,37.720469725252634],[-119.25994021970142,37.72045949468708],[-119.25995579282265,37.72044968922786],[-119.25997178663181,37.72044032078495],[-119.25998818170218,37.720431400737525],[-119.26000495811978,37.7204229399201],[-119.26002593395482,37.72041236064326],[-119.26004643226486,37.720401206383954],[-119.26006642808176,37.72038949072882],[-119.2600858970496,37.720377227948255],[-119.26010481545427,37.72036443297914],[-119.26012316025214,37.72035112140653],[-119.26014090909844,37.720337309444766],[-119.26015804037435,37.72032301391763],[-119.26017453321323,37.72030825223802],[-119.26019036752625,37.720293042386494],[-119.26020552402665,37.72027740288957],[-119.26021998425333,37.72026135279713],[-119.26023373059337,37.72024491165904],[-119.26024674630341,37.7202280995016],[-119.26025901553005,37.720210936802964],[-119.26027052332927,37.720193444468244],[-119.26028125568442,37.720175643804076],[-119.2602911995235,37.72015755649263],[-119.26030034273495,37.720139204565186],[-119.2603505385298,37.72002733906305],[-119.26039591976804,37.71991418323627],[-119.26043643405292,37.71979986778847],[-119.26047203461007,37.71968452476217],[-119.26050268034147,37.71956828738614],[-119.26052833587272,37.71945128992163],[-119.26054897159388,37.71933366750714],[-119.26056456369355,37.719215556002446],[-119.26057509418622,37.71909709183158],[-119.26058055093297,37.71897841182529],[-119.2605809276554,37.71885965306294],[-119.2605762239427,37.71874095271425],[-119.26056644525212,37.718622447880804],[-119.26055160290238,37.718504275437695],[-119.2605317140607,37.71838657187553],[-119.26050680172276,37.71826947314258],[-119.2604768946859,37.718153114488075],[-119.26044202751602,37.71803763030565],[-119.26040224050733,37.71792315397844],[-119.26035757963587,37.71780981772486],[-119.26027108571614,37.71769779242751],[-119.26018935647873,37.717583532026985],[-119.26011248333447,37.71746716434986],[-119.26004055226034,37.717348819579556],[-119.25997364370339,37.717228630110704],[-119.25991183249066,37.717106730401035],[-119.25985518774574,37.71698325682083],[-119.25980377281151,37.716858347500455],[-119.25975764517922,37.7167321421757],[-119.25971685642453,37.716604782031524],[-119.25968145214974,37.71647640954404],[-119.259651471933,37.71634716832113],[-119.25962781146816,37.71626173687397],[-119.2596078624254,37.71617570973257],[-119.25959164837892,37.716089188612834],[-119.2595791884866,37.716002275814354],[-119.25957049746732,37.71591507409942],[-119.2595655855837,37.71582768657164],[-119.25956445863002,37.71574021655391],[-119.25956711792536,37.71565276746635],[-119.25957356031216,37.715565442703905],[-119.25958377816002,37.715478345514214],[-119.25959775937476,37.71539157887549],[-119.25961548741277,37.71530524537476],[-119.25963694130073,37.71521944708655],[-119.25966209566029,37.71513428545228],[-119.2600300524977,37.71389637138167],[-119.26034863169072,37.712649847010695],[-119.2603369136444,37.7126185329305],[-119.26032652554211,37.712586923972715],[-119.26031747909401,37.71255505577424],[-119.26030978449762,37.71252296426414],[-119.26030345042622,37.712490685623266],[-119.26029848401927,37.71245825624336],[-119.2602948908742,37.71242571268606],[-119.2602926750402,37.71239309164171],[-119.26029183901365,37.71236042988794],[-119.26029238373525,37.71232776424824],[-119.26029430858907,37.71229513155044],[-119.26029761140317,37.71226256858515],[-119.26030228845215,37.712230112064375],[-119.26030833446119,37.71219779858001],[-119.2603157426122,37.71216566456269],[-119.26032450455136,37.71213374624061],[-119.26033461039869,37.712102079598786],[-119.26034604875906,37.712070700338415],[-119.26035880673507,37.7120396438367],[-119.26036431556932,37.712026230301376],[-119.26036925183939,37.71201267680204],[-119.26037360992959,37.711998998758595],[-119.26037738488195,37.71198521173267],[-119.26038057240207,37.71197133140986],[-119.26038316886377,37.7119573735819],[-119.26038517131342,37.71194335412867],[-119.26038657747313,37.71192928900018],[-119.26038738574341,37.71191519419836],[-119.2603875952051,37.71190108575896],[-119.2603872056202,37.71188697973317],[-119.2603862174323,37.71187289216946],[-119.26038463176597,37.71185883909526],[-119.26038245042557,37.71184483649877],[-119.26037967589319,37.711830900310744],[-119.26037631132569,37.7118170463864],[-119.26037236055133,37.71180329048733],[-119.2603674156936,37.71178603095938],[-119.26036322966526,37.711768645211286],[-119.26035980753386,37.711751154292315],[-119.26035715344214,37.711733579379086],[-119.2603552706029,37.711715941749915],[-119.2603541612952,37.71169826275896],[-119.2603538268615,37.711680563810525],[-119.26035426770618,37.71166286633298],[-119.26035548329494,37.711645191753],[-119.26035747215553,37.711627561469406],[-119.26036023187939,37.71160999682747],[-119.26036375912481,37.71159251909294],[-119.26036804962074,37.71157514942629],[-119.26037309817211,37.71155790885723],[-119.260378898666,37.71154081825906],[-119.26038544407928,37.71152389832357],[-119.26039272648676,37.71150716953587],[-119.26040073707112,37.71149065214963],[-119.2604094661334,37.7114743661626],[-119.26041890310479,37.7114583312923],[-119.26043439668504,37.71143202332101],[-119.26044874647795,37.71140530904352],[-119.26046193563204,37.711378219833705],[-119.2604739486589,37.71135078750573],[-119.26048477145157,37.7113230442767],[-119.2604943913008,37.711295022728834],[-119.2605027969103,37.71126675577111],[-119.26050997840973,37.711238276600746],[-119.2605159273664,37.71120961866412],[-119.26052063679528,37.71118081561755],[-119.26052410116695,37.71115190128765],[-119.26052631641429,37.71112290963181],[-119.2605272799371,37.7110938746981],[-119.26052699060531,37.71106483058539],[-119.2605254487602,37.71103581140334],[-119.260522656214,37.711006851232234],[-119.26051861624768,37.710977984083044],[-119.260507774168,37.71090059299754],[-119.26050025419795,37.710822953573086],[-119.2604960650421,37.710745155787286],[-119.2604952115449,37.71066728980104],[-119.26049769468501,37.71058944585403],[-119.2605035115742,37.71051171416007],[-119.2605050524636,37.710498668378946],[-119.26050715585676,37.7104856722795],[-119.26050981927649,37.71047274116499],[-119.26051303958636,37.71045989026208],[-119.26051681299407,37.710447134703],[-119.26052113505604,37.71043448950771],[-119.26052600068266,37.7104219695662],[-119.26053140414433,37.71040958962095],[-119.26053733907807,37.71039736424961],[-119.26054379849509,37.71038530784777],[-119.26055077478912,37.7103734346121],[-119.26055825974514,37.71036175852355],[-119.26056624454927,37.710350293330926],[-119.26057471979905,37.71033905253468],[-119.26058367551447,37.71032804937106],[-119.26059310114985,37.71031729679643],[-119.26060298560614,37.71030680747217],[-119.26061331724404,37.7102965937496],[-119.26062408389772,37.71028666765554],[-119.26063527288913,37.71027704087805],[-119.26064687104294,37.710267724752875],[-119.26065886470195,37.71025873024984],[-119.26067123974339,37.710250067960104],[-119.26068398159535,37.710241748083604],[-119.26069707525397,37.71023378041713],[-119.2607105053013,37.71022617434266],[-119.26072425592312,37.71021893881646],[-119.2607383109279,37.71021208235843],[-119.26075265376559,37.71020561304215],[-119.2607639025159,37.71020054338504],[-119.26077493036387,37.71019517614294],[-119.26078572484091,37.71018951738428],[-119.26079627374227,37.710183573507166],[-119.26080656514095,37.71017735123203],[-119.26081658740102,37.7101708575941],[-119.26082632919092,37.710164099935376],[-119.26083577949615,37.7101570858964],[-119.26084492763187,37.71014982340759],[-119.26085376325479,37.71014232068025],[-119.26086227637508,37.71013458619732],[-119.26087045736749,37.710126628703804],[-119.26087829698231,37.71011845719676],[-119.26088578635583,37.71011008091533],[-119.26089291702033,37.7101015093301],[-119.26089968091368,37.71009275213248],[-119.26090607038846,37.71008381922377],[-119.26091207822056,37.71007472070393],[-119.26091769761739,37.71006546686014],[-119.26092292222559,37.710056068155176],[-119.26095765635311,37.70998760389949],[-119.2609896294294,37.70991829588508],[-119.26101880905125,37.70984821436908],[-119.26104516564743,37.709777430392485],[-119.2610686725087,37.709706015708235],[-119.26108930581472,37.70963404270838],[-119.26110704465823,37.70956158435067],[-119.26112187106617,37.709488714084756],[-119.26113377001795,37.70941550577747],[-119.2611427294606,37.709342033638194],[-119.26116356766438,37.70916604268178],[-119.26119021695592,37.70899054726142],[-119.26122265890682,37.70881566846447],[-119.26124696245442,37.7086813976489],[-119.26126562891578,37.708546558710026],[-119.26127863764877,37.7084113009802],[-119.26128597427738,37.7082757742549],[-119.26128763070747,37.70814012862661],[-119.26128360513566,37.708004514318674],[-119.26127390205122,37.707869081519014],[-119.26125853223088,37.70773398021365],[-119.26123751272681,37.707599360020765],[-119.26121086684758,37.707465370024835],[-119.26117862413214,37.70733215861168],[-119.26114082031721,37.70719987330413],[-119.26109749729726,37.70706866059858],[-119.26103639552497,37.70690609597136],[-119.2609683698897,37.706745276482295],[-119.26089349914936,37.70658638821752],[-119.26081186998077,37.70642961502736],[-119.26072357687913,37.7062751383137],[-119.26062872204866,37.70612313682003],[-119.26052741528407,37.70597378642469],[-119.26041977384334,37.70582725993749],[-119.26030592231203,37.70568372689972],[-119.26018599245886,37.70554335338811],[-119.26017845676188,37.70553795700732],[-119.26017115914644,37.70553235788731],[-119.26016410824867,37.70552656265418],[-119.26015731241277,37.7055205781662],[-119.26015077968107,37.705514411505575],[-119.26014451778448,37.7055080699701],[-119.26013853413345,37.7055015610645],[-119.26013283580909,37.7054948924916],[-119.26012742955491,37.70548807214316],[-119.26012232176869,37.70548110809055],[-119.26011751849506,37.70547400857524],[-119.26011302541824,37.70546678199893],[-119.26010884785532,37.70545943691377],[-119.26010499075011,37.70545198201208],[-119.26010145866704,37.705444426116195],[-119.260098255786,37.70543677816793],[-119.26009538589722,37.70542904721804],[-119.26009285239692,37.70542124241553],[-119.26009065828318,37.70541337299675],[-119.26008880615245,37.705405448274576],[-119.26008729819647,37.705397477627265],[-119.26008613619969,37.70538947048751],[-119.26008532153715,37.70538143633108],[-119.26008485517278,37.70537338466577],[-119.2600847376584,37.7053653250201],[-119.26008496913296,37.70535726693198],[-119.26008554932243,37.70534921993758],[-119.26008647754003,37.70534119355982],[-119.26008775268724,37.70533319729726],[-119.26008937325491,37.70532524061284],[-119.26009133732512,37.70531733292265],[-119.2600936425734,37.705309483584806],[-119.2600962862716,37.70530170188829],[-119.26009926529106,37.70529399704218],[-119.26010257610616,37.705286378164445],[-119.26010621479884,37.70527885427143],[-119.26011017706281,37.705271434267026],[-119.26011445820903,37.70526412693219],[-119.26011905317101,37.70525694091449],[-119.26012395651095,37.705249884718],[-119.26012916242603,37.705242966693135],[-119.26013466475543,37.705236195026764],[-119.26014045698754,37.70522957773258],[-119.26014653226768,37.70522312264159],[-119.26026887852467,37.70509303740779],[-119.26038540900362,37.704959624173725],[-119.26049598045016,37.70482304698422],[-119.26060045693954,37.7046834737736],[-119.26069871004344,37.70454107615915],[-119.2607906189878,37.70439602923002],[-119.26087042802246,37.704258410549876],[-119.2609442684657,37.704118704451226],[-119.26101205401645,37.70397707427983],[-119.26107370545428,37.70383368563014],[-119.2611291507322,37.703688706151695],[-119.26116019289422,37.70360745367353],[-119.26119465589463,37.70352707638778],[-119.26123250075248,37.70344766518311],[-119.26127368466318,37.70336930985549],[-119.26131816104676,37.70329209900662],[-119.26136587960079,37.703216119943825],[-119.26141678635709,37.70314145858131],[-119.261470823743,37.703068199342965],[-119.26152793064638,37.70299642506703],[-119.26153704562527,37.702985765789705],[-119.26154659123091,37.70297534718162],[-119.26155655740499,37.70296518022085],[-119.26156693364602,37.70295527562025],[-119.26157770902043,37.70294564381625],[-119.26158887217417,37.702936294957816],[-119.26160041134455,37.70292723889577],[-119.26161231437267,37.702918485172425],[-119.26162456871627,37.70291004301155],[-119.26163716146294,37.702901921308516],[-119.2616500793437,37.702894128621146],[-119.261663308747,37.702886673160506],[-119.26169326550844,37.702869751135935],[-119.2617224656357,37.70285201386455],[-119.26175087400046,37.702833482684916],[-119.261778456427,37.70281417989078],[-119.26180517973337,37.70279412870401],[-119.26183101177118,37.70277335324693],[-119.26185592146439,37.70275187851309],[-119.26190094937147,37.70271029116813],[-119.26194418637887,37.70266752091086],[-119.26198558329668,37.70262361640319],[-119.26202509302894,37.70257862759743],[-119.26206267062695,37.702532605679465],[-119.26209827334063,37.702485603010516],[-119.26213186066701,37.70243767306752],[-119.26216339439632,37.70238887038234],[-119.26219283865551,37.702339250479675],[-119.26222015994897,37.702288869813856],[-119.26224532719665,37.70223778570472],[-119.26226831176947,37.70218605627226],[-119.26228908752175,37.70213374037058],[-119.26230763082104,37.7020808975209],[-119.26232199758398,37.70204004624941],[-119.262338147978,37.701999617743546],[-119.26235606236708,37.70195966114993],[-119.26237571897094,37.70192022504141],[-119.2623970938915,37.70188135735814],[-119.26242016114195,37.70184310534908],[-119.26244489267833,37.701805515514714],[-119.26247125843364,37.70176863355053],[-119.26249922635448,37.70173250429141],[-119.26252876243986,37.70169717165715],[-119.26255983078272,37.701662678599135],[-119.26259239361342,37.70162906704802],[-119.2626264113458,37.70159637786285],[-119.26266184262529,37.70156465078136],[-119.26269864437903,37.70153392437166],[-119.2627367718684,37.70150423598544],[-119.26277617874341,37.701475621712426],[-119.26281681709892,37.70144811633664],[-119.26285863753301,37.70142175329405],[-119.26290158920689,37.70139656463198],[-119.26291301711828,37.7013892265472],[-119.26292411472494,37.701381575105565],[-119.26293486842354,37.701373619686194],[-119.2629452650324,37.70136537004078],[-119.26295529180749,37.70135683628172],[-119.2629649364582,37.70134802886964],[-119.2629741871623,37.70133895860061],[-119.26298303258048,37.70132963659291],[-119.26299146187026,37.70132007427336],[-119.26299946469923,37.70131028336344],[-119.26300703125774,37.70130027586474],[-119.26301415227098,37.70129006404436],[-119.26302081901021,37.70127966041987],[-119.26302702330364,37.70126907774393],[-119.26303275754626,37.70125832898869],[-119.26303801470934,37.70124742732987],[-119.2630427883489,37.701236386130574],[-119.26304707261369,37.70122521892501],[-119.26305086225233,37.701213939401796],[-119.26305415261973,37.7012025613872],[-119.26305708452696,37.70119241547294],[-119.26306045758545,37.70118235646568],[-119.26306426773574,37.70117239647106],[-119.26306851039227,37.701162547475484],[-119.26307318044897,37.70115282133182],[-119.2630782722855,37.701143229745135],[-119.26308377977385,37.701133784258474],[-119.26308969628587,37.70112449623907],[-119.26309601470112,37.701115376864664],[-119.26310272741549,37.70110643711007],[-119.26310982635043,37.70109768773382],[-119.26311730296251,37.70108913926546],[-119.26312514825385,37.70108080199269],[-119.26313335278283,37.70107268594901],[-119.26314190667563,37.701064800901754],[-119.26315079963786,37.701057156340184],[-119.26316002096715,37.70104976146422],[-119.263169559566,37.70104262517321],[-119.26317940395501,37.70103575605536],[-119.2631895422869,37.701029162377345],[-119.26319996236052,37.70102285207436],[-119.26321065163579,37.70101683274051],[-119.2632215972486,37.70101111161979],[-119.26323278602638,37.70100569559731],[-119.2632442045039,37.70100059119099],[-119.26325583893957,37.70099580454372],[-119.26326767533186,37.70099134141601],[-119.26327969943621,37.700987207179],[-119.26329189678219,37.70098340680806],[-119.26330425269089,37.70097994487672],[-119.26355726108942,37.700909022044144],[-119.26380699157474,37.70083110971679],[-119.26385575742815,37.70081588929217],[-119.26390515877236,37.700802022908896],[-119.26395513607564,37.700789527276726],[-119.26400562911213,37.70077841745367],[-119.26405657703475,37.70076870682767],[-119.2641079184482,37.70076040710058],[-119.26415959148312,37.70075352827405],[-119.26421153387058,37.700748078637424],[-119.26426368301709,37.70074406475785],[-119.2643159760801,37.700741491472236],[-119.26436835004358,37.70074036188155],[-119.26442074179408,37.700740677347014],[-119.2644730881967,37.70074243748848],[-119.2645253261712,37.70074564018487],[-119.26457739276789,37.700750281576745],[-119.26461218730896,37.700753392982506],[-119.26464709491944,37.70075556217284],[-119.26468207519572,37.700756786637],[-119.26471708765,37.700757064957756],[-119.26475209175727,37.70075639681298],[-119.26478704700217,37.700754782975984],[-119.2648219129259,37.70075222531474],[-119.2648566491731,37.70074872678954],[-119.2648912155384,37.70074429144978],[-119.26492557201321,37.70073892442912],[-119.26495967883181,37.700732631939566],[-119.26499349651758,37.70072542126436],[-119.26502698592843,37.70071730074941],[-119.26506010830236,37.7007082797938],[-119.26509282530228,37.70069836883874],[-119.26512509906023,37.70068757935562],[-119.2651568922214,37.700675923832634],[-119.26518816798729,37.700663415760374],[-119.26521889015828,37.7006500696162],[-119.26524902317556,37.70063590084748],[-119.26527853216231,37.70062092585372],[-119.26529815542632,37.70061097417846],[-119.26531820048955,37.700601568195246],[-119.26533864332512,37.70059271917848],[-119.26535945942948,37.700584437734804],[-119.26538062385161,37.70057673379072],[-119.26540211122308,37.700569616580374],[-119.26542389578829,37.70056309463468],[-119.26544595143557,37.70055717577107],[-119.26546825172818,37.70055186708408],[-119.26549076993632,37.70054717493685],[-119.26551347906891,37.70054310495356],[-119.26553635190605,37.700539662012595],[-119.26555936103163,37.70053685024081],[-119.26558247886622,37.70053467300842],[-119.26560567770007,37.70053313292517],[-119.26562892972633,37.700532231837045],[-119.26565220707445,37.70053197082409],[-119.2656754818435,37.700532350199175],[-119.26569872613564,37.700533369507596],[-119.26572191208956,37.70053502752754],[-119.26574501191385,37.70053732227168],[-119.26576799792036,37.70054025098946],[-119.2657908425574,37.700543810170416],[-119.26581351844257,37.70054799554843],[-119.26583599839591,37.70055280210675],[-119.2658582554722,37.700558224084084],[-119.26588026299333,37.70056425498152],[-119.26590199458035,37.700570887570194],[-119.265923424185,37.70057811390008],[-119.265944526121,37.70058592530946],[-119.26596527509476,37.70059431243534],[-119.26598564623575,37.70060326522463],[-119.26600561512632,37.70061277294623],[-119.2660251578309,37.700622824203805],[-119.26605737664201,37.70063940191916],[-119.26609029094323,37.70065509340122],[-119.2661238621368,37.700669880248796],[-119.26615805085464,37.700683745121566],[-119.26619281700437,37.70069667176039],[-119.26622811981643,37.70070864500631],[-119.26626391789192,37.7007196508185],[-119.26630016925094,37.70072967629053],[-119.26633683138213,37.700738709665636],[-119.26639889165743,37.70075219378072],[-119.26646148254316,37.70076402873826],[-119.26652453464193,37.70077420141622],[-119.2665879780449,37.70078270053567],[-119.26665174240927,37.70078951667322],[-119.26671575703631,37.70079464227146],[-119.26677995094981,37.700798071647384],[-119.26684425297468,37.700799800998674],[-119.26690859181593,37.70079982840791],[-119.26697289613782,37.70079815384471],[-119.26703709464283,37.70079477916575],[-119.26710111615076,37.70078970811269],[-119.26716488967777,37.700782946308045],[-119.26731272408588,37.70076335534829],[-119.26745969659373,37.700740027010454],[-119.26760565757205,37.70071298504468],[-119.26775045842186,37.700682256981864],[-119.26789395172577,37.70064787410554],[-119.26803599139824,37.700609871420205],[-119.26817643283411,37.70056828761542],[-119.2685041639469,37.700470991741994],[-119.268835440161,37.700381597142965],[-119.2691699598414,37.70030018521128],[-119.26950741840324,37.70022683007156],[-119.26959455737726,37.70021027812456],[-119.2696823647749,37.70019613107868],[-119.26977073550106,37.70018440586618],[-119.26985956378658,37.70017511652072],[-119.26994874331483,37.70016827416052],[-119.27003816734882,37.70016388697505],[-119.27012772885907,37.70016196021523],[-119.27021732065151,37.700162496187154],[-119.27030683549594,37.700165494249326],[-119.27039616625413,37.70017095081342],[-119.27048520600822,37.70017885934863],[-119.27057384818848,37.7001892103894],[-119.27066198670094,37.700201991546756],[-119.27074951605431,37.70021718752325],[-119.27083633148622,37.70023478013112],[-119.27137196797496,37.70035298938462],[-119.27138199800686,37.70035508786871],[-119.27139211365972,37.70035690849368],[-119.27140230274479,37.700358449065824],[-119.2714125529849,37.70035970772884],[-119.27142285202913,37.700360682966135],[-119.27143318746782,37.700361373602604],[-119.27144354684737,37.700361778806034],[-119.27145391768538,37.70036189808822],[-119.27146428748563,37.700361731305435],[-119.27147464375318,37.700361278658626],[-119.27148497400938,37.7003605406932],[-119.27149526580689,37.700359518298384],[-119.27150550674473,37.70035821270606],[-119.27151568448325,37.70035662548943],[-119.27152578675889,37.70035475856095],[-119.27153580139904,37.70035261417019],[-119.27154571633675,37.70035019490098],[-119.27155551962508,37.70034750366839],[-119.27156519945173,37.700344543715204],[-119.27157474415316,37.700341318607954],[-119.27158414222859,37.7003378322327],[-119.271593382354,37.70033408879029],[-119.27160245339559,37.70033009279136],[-119.27161134442338,37.70032584905083],[-119.27162242175474,37.70032055974994],[-119.27163372133303,37.70031557607687],[-119.27164522980688,37.70031090392023],[-119.271656933578,37.70030654880056],[-119.2716688188174,37.700302515863775],[-119.27168087148169,37.70029880987515],[-119.27169307732963,37.70029543521357],[-119.27170542193899,37.70029239586653],[-119.27171789072358,37.700289695425205],[-119.27173046895054,37.70028733708043],[-119.27174314175764,37.70028532361878],[-119.27175589417092,37.7002836574193],[-119.27176871112239,37.70028234045076],[-119.27178157746775,37.70028137426925],[-119.27179447800442,37.7002807600164],[-119.27180739748934,37.700280498418],[-119.27182032065711,37.70028058978315],[-119.27183323223795,37.70028103400388],[-119.2718461169758,37.700281830555326],[-119.2718589596463,37.7002829784963],[-119.27187174507479,37.700284476470394],[-119.27188445815422,37.70028632270764],[-119.27189708386311,37.70028851502657],[-119.27190960728313,37.700291050836775],[-119.2719220136168,37.700293927141985],[-119.27193428820505,37.700297140543626],[-119.27194641654442,37.70030068724479],[-119.27195838430428,37.70030456305474],[-119.2719701773437,37.70030876339392],[-119.27198178172824,37.70031328329927],[-119.27199318374628,37.70031811743018],[-119.27200436992537,37.70032326007468],[-119.27201532704811,37.70032870515632],[-119.27202604216767,37.7003344462413],[-119.27203650262318,37.700340476546046],[-119.27204669605469,37.70034678894524],[-119.27205661041772,37.700353375980264],[-119.27206623399759,37.700360229867975],[-119.27206937916148,37.70036247081669],[-119.27207261823234,37.70036462566209],[-119.27207594747829,37.700366691921445],[-119.27207936306354,37.70036866721416],[-119.27208286105292,37.70037054926441],[-119.2720864374162,37.70037233590379],[-119.27209008803293,37.70037402507385],[-119.27209380869706,37.70037561482842],[-119.27209759512186,37.70037710333586],[-119.27210144294486,37.7003784888812],[-119.27210534773275,37.700379769868114],[-119.27210930498673,37.7003809448207],[-119.2721133101474,37.70038201238526],[-119.2721173586003,37.70038297133178],[-119.27212144568102,37.700383820555444],[-119.27212556668064,37.70038455907781],[-119.27214023755631,37.700386773213665],[-119.27215499538934,37.70038858617408],[-119.27216982280846,37.700389995825034],[-119.2721847023604,37.70039100050726],[-119.27219961653066,37.7003915990381],[-119.27221454776387,37.700391790713105],[-119.27222947848465,37.700391575306625],[-119.2722443911182,37.70039095307219],[-119.272259268111,37.700389924742254],[-119.27227409195149,37.70038849152724],[-119.27228884519067,37.700386655114166],[-119.27230351046268,37.70038441766468],[-119.27231807050518,37.700381781812446],[-119.27233250817972,37.70037875066008],[-119.27234680649183,37.70037532777555],[-119.2723609486112,37.700371517187854],[-119.2723749178913,37.70036732338246],[-119.27238869788906,37.70036275129578],[-119.27240227238424,37.700357806309604],[-119.27240422944331,37.700357027314354],[-119.27240615124212,37.70035619474052],[-119.27240803545821,37.70035530959433],[-119.27240987981442,37.70035437294544],[-119.27241168208184,37.70035338592584],[-119.27241344008239,37.70035234972834],[-119.2724151516915,37.70035126560522],[-119.27241681484072,37.70035013486665],[-119.27241842752004,37.70034895887914],[-119.27241998778055,37.70034773906388],[-119.27242149373666,37.700346476895064],[-119.27242294356836,37.70034517389803],[-119.27242433552357,37.70034383164745],[-119.27242566792005,37.70034245176549],[-119.2724269391476,37.70034103591972],[-119.27242814766991,37.70033958582123],[-119.27242929202649,37.7003381032225],[-119.27243037083436,37.70033658991522],[-119.27243138278979,37.70033504772832],[-119.27243232666977,37.7003334785255],[-119.27243320133368,37.700331884203166],[-119.2724340057244,37.700330266688105],[-119.27243473886989,37.70032862793511],[-119.27243539988412,37.70032696992459],[-119.27243598796822,37.70032529466033],[-119.27243650241148,37.70032360416687],[-119.27243694259226,37.700321900487225],[-119.27243730797854,37.70032018568028],[-119.27243759812877,37.70031846181846],[-119.2724378126923,37.70031673098502],[-119.27243795140986,37.70031499527173],[-119.27243801411379,37.70031325677619],[-119.2724380007283,37.70031151759943],[-119.2724379112696,37.70030977984325],[-119.27243774584578,37.70030804560776],[-119.2724375046568,37.700306316988794],[-119.27243718799411,37.70030459607541],[-119.27243679624044,37.7003028849474],[-119.2724363298692,37.700301185672615],[-119.27243578944402,37.70029950030468],[-119.27243517561801,37.7002978308804],[-119.27243448913305,37.700296179417265],[-119.27243373081868,37.700294547911135],[-119.27243290159139,37.700292938333654],[-119.27243200245331,37.70029135263005],[-119.27243103449106,37.70028979271666],[-119.27242999887444,37.70028826047864],[-119.27242889685502,37.70028675776774],[-119.27242772976457,37.700285286399996],[-119.27242649901359,37.70028384815358],[-119.27242520608942,37.700282444766614],[-119.2724238525546,37.70028107793512],[-119.27242244004488,37.70027974931094],[-119.27242097026732,37.700278460499696],[-119.27241944499816,37.70027721305897],[-119.27241786608066,37.700276008496296],[-119.27241623542305,37.700274848267426],[-119.27241455499595,37.700273733774445],[-119.27241282683016,37.70027266636429],[-119.2724110530142,37.70027164732692],[-119.2724092356918,37.70027067789385],[-119.27240737705917,37.70026975923665],[-119.27240547936249,37.70026889246552],[-119.27240354489514,37.700268078628014],[-119.272401575995,37.70026731870759],[-119.27239957504146,37.70026661362267],[-119.27239754445269,37.700265964225316],[-119.27239548668274,37.70026537130038],[-119.27239340421838,37.700264835564404],[-119.27239129957631,37.70026435766479],[-119.27238917530005,37.700263938179155],[-119.27238703395676,37.7002635776144],[-119.27238487813433,37.700263276406275],[-119.27238271043805,37.70026303491882],[-119.27238053348759,37.70026285344385],[-119.27237834991391,37.7002627322007],[-119.27237616235578,37.700262671335885],[-119.27237397345695,37.70026267092294],[-119.27236942494709,37.7002626708915],[-119.27236487911516,37.70026254689344],[-119.27236034131133,37.70026229907469],[-119.27235581687617,37.7002619277269],[-119.27235131113466,37.70026143328714],[-119.27234682938963,37.7002608163373],[-119.27234237691579,37.70026007760351],[-119.27233795895333,37.70025921795519],[-119.27233358070185,37.70025823840407],[-119.27232924731422,37.700257140103005],[-119.27232496389047,37.70025592434463],[-119.27232073547185,37.70025459255976],[-119.27231656703489,37.700253146315845],[-119.2723124634855,37.70025158731497],[-119.27230842965325,37.70024991739197],[-119.2723044702856,37.70024813851221],[-119.27230059004243,37.70024625276927],[-119.27229679349048,37.700244262382554],[-119.27229308509797,37.70024216969457],[-119.27228946922938,37.70023997716822],[-119.27228595014029,37.70023768738401],[-119.27228253197238,37.70023530303675],[-119.27227921874854,37.70023282693268],[-119.2722760143682,37.70023026198597],[-119.2722729226026,37.700227611215325],[-119.2722699470905,37.700224877740524],[-119.27226709133384,37.70022206477863],[-119.27226435869362,37.70021917564029],[-119.27226175238587,37.70021621372575],[-119.27225927547805,37.700213182521],[-119.27225693088523,37.70021008559348],[-119.27225472136679,37.70020692658806],[-119.27225264952314,37.70020370922258],[-119.27225071779264,37.70020043728367],[-119.27224892844879,37.700197114622114],[-119.27224728359748,37.70019374514842],[-119.27224578517453,37.70019033282817],[-119.27224443494345,37.70018688167741],[-119.27224323449332,37.70018339575785],[-119.27224218523695,37.70017987917208],[-119.27224128840923,37.700176336058945],[-119.27224054506561,37.70017277058831],[-119.27223995608092,37.70016918695645],[-119.27223952214834,37.70016558938103],[-119.27223924377853,37.70016198209608],[-119.27223912129911,37.700158369347086],[-119.27223915485419,37.700154755385945],[-119.27223934440426,37.70015114446599],[-119.27223968972622,37.700147540836966],[-119.27224019041358,37.700143948740035],[-119.27224084587714,37.700140372402835],[-119.2722416553454,37.700136816034366],[-119.27224277078972,37.70013272596121],[-119.27224406386809,37.7001286690419],[-119.27224553302858,37.70012465014539],[-119.2722471765079,37.70012067409501],[-119.27224899233362,37.700116745662704],[-119.27225097832635,37.70011286956323],[-119.27225313210265,37.70010905044853],[-119.27225545107748,37.70010529290222],[-119.27225793246778,37.70010160143394],[-119.27226057329536,37.700097980474084],[-119.27226337039082,37.70009443436837],[-119.27226632039711,37.70009096737273],[-119.27226941977378,37.70008758364815],[-119.27227266480102,37.700084287255585],[-119.27227605158424,37.70008108215133],[-119.27227957605872,37.700077972182],[-119.27228323399453,37.70007496108005],[-119.2722870210015,37.70007205245933],[-119.27229093253459,37.70006924981064],[-119.27229496389933,37.70006655649759],[-119.2722991102574,37.70006397575266],[-119.27230336663247,37.700061510673116],[-119.2723077279162,37.70005916421748],[-119.27231218887434,37.70005693920186],[-119.27231674415296,37.700054838296644],[-119.27232138828502,37.70005286402328],[-119.27232611569677,37.70005101875118],[-119.27233092071457,37.700049304695014],[-119.2723357975716,37.700047723911894],[-119.27234074041483,37.700046278299034],[-119.27234574331206,37.7000449695914],[-119.27235080025899,37.70004379935965],[-119.27235590518646,37.70004276900825],[-119.2723610519677,37.70004187977379],[-119.27236623442579,37.7000411327235],[-119.27237144634093,37.70004052875396],[-119.27237668145793,37.70004006859003],[-119.27238193349383,37.70003975278398],[-119.27238719614535,37.700039581714826],[-119.27239246309645,37.7000395555879],[-119.27239772802594,37.70003967443453],[-119.27240298461501,37.70003993811209],[-119.27240822655497,37.700040346304135],[-119.27241344755458,37.70004089852075],[-119.27241864134787,37.7000415940992],[-119.27242380170135,37.70004243220466],[-119.27242892242181,37.7000434118313],[-119.27243399736359,37.70004453180339],[-119.27243902043587,37.70004579077677],[-119.27244398561015,37.7000471872405],[-119.27244888692749,37.70004871951857],[-119.2724537185054,37.70005038577198],[-119.27245847454529,37.70005218400101],[-119.27246314933909,37.70005411204745],[-119.27246773727626,37.700056167597346],[-119.27247223285056,37.70005834818368],[-119.27247663066655,37.700060651189446],[-119.27248092544612,37.70006307385062],[-119.27248511203483,37.70006561325961],[-119.27248918540808,37.700068266368746],[-119.27249278245812,37.70007061049714],[-119.27249647804727,37.70007285577222],[-119.2725002678745,37.70007499958085],[-119.27250414752905,37.70007703942799],[-119.27250811249566,37.70007897293956],[-119.27251215815971,37.700080797865276],[-119.27251627981275,37.70008251208123],[-119.27252047265783,37.700084113592354],[-119.27252473181517,37.700085600534734],[-119.27252905232777,37.70008697117781],[-119.27253342916725,37.70008822392638],[-119.27253785723975,37.70008935732244],[-119.27254233139165,37.70009037004691],[-119.27254684641575,37.700091260921134],[-119.27255139705731,37.70009202890826],[-119.27255597802012,37.70009267311451],[-119.27256070140928,37.70009320468628],[-119.27256544522771,37.70009360526715],[-119.27257020372309,37.70009387437136],[-119.27257497112537,37.7000940116726],[-119.2725797416536,37.70009401700436],[-119.2725845095231,37.70009389036023],[-119.27258926895249,37.70009363189374],[-119.27259401417045,37.70009324191832],[-119.27259873942302,37.7000927209068],[-119.27260343898044,37.70009206949102],[-119.27260810714402,37.70009128846085],[-119.27261273825329,37.70009037876335],[-119.27261732669255,37.7000893415016],[-119.27262186689798,37.700088177933424],[-119.27262635336415,37.70008688946969],[-119.27263078065084,37.700085477672786],[-119.27263514338955,37.70008394425465],[-119.27263943629013,37.7000822910747],[-119.27264365414703,37.70008052013753],[-119.27264779184577,37.70007863359058],[-119.27265184436901,37.70007663372144],[-119.27265580680273,37.70007452295513],[-119.27265967434214,37.70007230385112],[-119.27266344229751,37.70006997910029],[-119.27266710609992,37.70006755152161],[-119.27267066130663,37.700065024058695],[-119.27267410360672,37.700062399776336],[-119.27267742882611,37.70005968185669],[-119.27268063293266,37.7000568735955],[-119.27268371204114,37.70005397839797],[-119.27268666241791,37.70005099977481],[-119.27268948048538,37.70004794133785],[-119.27269216282643,37.70004480679572],[-119.27269470618847,37.7000415999493],[-119.27269710748752,37.70003832468717],[-119.27269936381181,37.700034984980874],[-119.27270147242537,37.70003158488007],[-119.27270343077133,37.70002812850771],[-119.27270523647508,37.70002462005488],[-119.27270688734704,37.700021063775914],[-119.27270838138546,37.70001746398311],[-119.27270971677866,37.70001382504149],[-119.27271089190744,37.70001015136359],[-119.27271190534684,37.70000644740405],[-119.272712755868,37.70000271765422],[-119.27271344243967,37.69999896663675],[-119.2727139642293,37.69999519890006],[-119.2727143206042,37.69999141901285],[-119.27271451113229,37.699987631558514],[-119.27271459676923,37.69998591787232],[-119.27271475630995,37.699984207527024],[-119.27271498956682,37.699982502534205],[-119.2727152962655,37.699980804899084],[-119.27271567604525,37.699979116618266],[-119.27271612845944,37.699977439677326],[-119.27271665297599,37.699975776048575],[-119.27271724897795,37.69997412768855],[-119.2727179157644,37.699972496535935],[-119.27271865255112,37.6999708845091],[-119.27271945847156,37.699969293504],[-119.27272033257789,37.69996772539177],[-119.27272127384205,37.6999661820167],[-119.272722281157,37.699964665193974],[-119.27272335333804,37.6999631767075],[-119.27272448912419,37.699961718307904],[-119.27272568717963,37.699960291710426],[-119.2727269460953,37.69995889859286],[-119.2727282643906,37.6999575405937],[-119.27272964051508,37.69995621931007],[-119.27273107285026,37.699954936295924],[-119.2727325597116,37.699953693060216],[-119.27273409935036,37.69995249106515],[-119.27273568995578,37.69995133172437],[-119.27273732965713,37.69995021640139],[-119.27273901652596,37.69994914640794],[-119.2727407485783,37.699948123002436],[-119.27274252377717,37.69994714738852],[-119.27274434003468,37.69994622071359],[-119.27274619521471,37.699945344067544],[-119.27274808713543,37.6999445184814],[-119.27275001357172,37.69994374492611],[-119.27275197225791,37.699943024311466],[-119.27275396089036,37.69994235748499],[-119.27275597713023,37.69994174523094],[-119.27275801860624,37.699941188269364],[-119.27276008291743,37.69994068725534],[-119.27277444274834,37.699937626027186],[-119.27278892645732,37.69993495857232],[-119.27280351694624,37.69993268803976],[-119.27281819699084,37.69993081710983],[-119.27283294926126,37.69992934799123],[-119.27284775634229,37.699928282418256],[-119.27286260075404,37.69992762164878],[-119.27287746497255,37.699927366462916],[-119.2728923314505,37.699927517161875],[-119.27290718263794,37.69992807356773],[-119.27292200100283,37.6999290350237],[-119.27293676905204,37.69993040039472],[-119.27295146935171,37.69993216806901],[-119.27296608454803,37.699934335959775],[-119.27298059738764,37.699936901507826],[-119.272994990738,37.699939861684484],[-119.27300924760758,37.69994321299527],[-119.27302335116605,37.699946951483895],[-119.27303728476397,37.69995107273707],[-119.27305103195258,37.69995557188959],[-119.27307257885869,37.69996262015625],[-119.27309442067492,37.69996906994465],[-119.2731165310801,37.699974913482265],[-119.27313888342921,37.69998014372706],[-119.27316145078574,37.69998475437615],[-119.273184205954,37.69998873987328],[-119.27320712151199,37.69999209541556],[-119.27323016984442,37.699994816959276],[-119.27325332317598,37.69999690122471],[-119.27327655360479,37.69999834570013],[-119.27329983313608,37.699999148644835],[-119.2733231337159,37.69999930909118],[-119.27334642726494,37.69999882684583],[-119.27336968571235,37.699997702489895],[-119.27339288102957,37.69999593737839],[-119.27341598526417,37.69999353363839],[-119.27343897057345,37.69999049416662],[-119.27346180925805,37.69998682262593],[-119.27348447379529,37.699982523440845],[-119.27350693687241,37.69997760179229],[-119.27352917141943,37.69997206361128],[-119.27355115064177,37.69996591557183],[-119.27357284805255,37.69995916508285],[-119.27359423750455,37.699951820279324],[-119.27361529322168,37.69994389001234],[-119.27363598983005,37.699935383838586],[-119.27365630238853,37.699926312008785],[-119.27366855763992,37.69992083131876],[-119.27368103749549,37.699915680539405],[-119.27369372789298,37.69991086547456],[-119.27370661453284,37.69990639154987],[-119.2737196828945,37.69990226380652],[-119.27373291825253,37.69989848689556],[-119.27374630569341,37.69989506507287],[-119.27375983013224,37.69989200219407],[-119.27377347632977,37.699889301710456],[-119.27378722890951,37.69988696666487],[-119.27380107237515,37.699884999688436],[-119.27381499112799,37.69988340299755],[-119.27382896948447,37.69988217839133],[-119.27384299169385,37.69988132724965],[-119.27385704195603,37.699880850531564],[-119.27387110443927,37.69988074877428],[-119.27388516329805,37.699881022092406],[-119.27394447130817,37.699883750919746],[-119.27400363268652,37.69988804204858],[-119.27406258226559,37.69989389075212],[-119.2741212551111,37.699901290587874],[-119.27417958659353,37.6999102334048],[-119.27423751245941,37.69992070935215],[-119.27429496890188,37.69993270689045],[-119.27432176210243,37.69993829753953],[-119.27434877623486,37.69994317097061],[-119.27437598089763,37.699947321699135],[-119.27440334547482,37.699950745053926],[-119.27443083917042,37.69995343718235],[-119.27445843104323,37.69995539505472],[-119.27448609004146,37.699956616467595],[-119.27451378503784,37.69995710004646],[-119.27454148486451,37.69995684524709],[-119.27456915834823,37.69995585235622],[-119.2745967743454,37.699954122491235],[-119.27462430177708,37.699951657598945],[-119.2746517096641,37.699948460453314],[-119.27467896716173,37.699944534652374],[-119.27470604359453,37.69993988461423],[-119.2747329084909,37.699934515572],[-119.27475953161728,37.69992843356797],[-119.2747858830122,37.69992164544678],[-119.27481193302005,37.699914158847754],[-119.27483765232441,37.699905982196256],[-119.27486301198105,37.699897124694225],[-119.27489008446557,37.69988767441844],[-119.27491754533365,37.69987896028573],[-119.27494536289032,37.6998709923538],[-119.27497350502901,37.69986377981909],[-119.27500193926848,37.69985733100616],[-119.27503063279042,37.69985165335811],[-119.27505955247722,37.699846753427984],[-119.27508866495037,37.69984263687118],[-119.2751179366088,37.69983930843895],[-119.2751473336677,37.69983677197289],[-119.27517682219761,37.69983503040057],[-119.27520636816341,37.69983408573205],[-119.2752359374638,37.69983393905767],[-119.2752654959705,37.69983459054669],[-119.27529500956767,37.69983603944719],[-119.2753244441913,37.69983828408689],[-119.27535376586857,37.69984132187504],[-119.27538294075696,37.699845149305524],[-119.27541193518336,37.699849761960756],[-119.27544071568296,37.69985515451694],[-119.27546924903783,37.69986132075009],[-119.27549750231525,37.6998682535432],[-119.27552544290573,37.699875944894636],[-119.27555303856067,37.69988438592715],[-119.27558025742955,37.69989356689824],[-119.27560706809672,37.699903477211436],[-119.27563343961756,37.69991410542839],[-119.27565934155437,37.6999254392822],[-119.2756847440113,37.699937465691505],[-119.27570961766898,37.699950170775644],[-119.27573393381837,37.699963539870566],[-119.27575766439381,37.699977557545864],[-119.27576717766638,37.69998358855899],[-119.2757764247146,37.699989875551225],[-119.27578539463384,37.69999641110863],[-119.27579407684637,37.70000318752422],[-119.27580246111361,37.70001019680696],[-119.27581053754838,37.70001743069117],[-119.27581829662648,37.700024880646296],[-119.27582572919798,37.700032537887054],[-119.27583282649792,37.700040393383645],[-119.27583958015676,37.700048437872525],[-119.27584598221011,37.70005666186724],[-119.2758520251083,37.7000650556697],[-119.27585770172513,37.70007360938147],[-119.27586300536629,37.70008231291566],[-119.2758679297774,37.70009115600865],[-119.27587246915118,37.70010012823218],[-119.27587661813443,37.700109219005796],[-119.27588037183435,37.70011841760921],[-119.27588372582422,37.700127713194966],[-119.2758866761487,37.70013709480123],[-119.27588921932848,37.70014655136475],[-119.27589135236431,37.700156071733836],[-119.27589307274069,37.700165644681604],[-119.27589437842869,37.700175258919124],[-119.27589526788844,37.70018490310878],[-119.27589574007081,37.70019456587763],[-119.27589579441889,37.700204235830796],[-119.27589581486754,37.70020762680506],[-119.27589598461635,37.70021101513487],[-119.27589630345753,37.70021439667153],[-119.27589677100069,37.70021776727457],[-119.2758973866734,37.70022112281698],[-119.27589814972181,37.70022445919015],[-119.27589905921168,37.70022777230899],[-119.27590011402938,37.700231058116835],[-119.27590131288343,37.70023431259043],[-119.27590265430597,37.70023753174498],[-119.27590413665446,37.70024071163886],[-119.27590575811399,37.700243848378534],[-119.2759075166992,37.700246938123335],[-119.27590941025684,37.700249977090095],[-119.2759114364684,37.70025296155785],[-119.27591359285303,37.70025588787234],[-119.27591587677034,37.700258752450495],[-119.2759182854239,37.700261551784905],[-119.2759208158645,37.70026428244797],[-119.27592346499387,37.700266941096224],[-119.27592622956827,37.70026952447436],[-119.27592910620281,37.700272029419224],[-119.27593209137522,37.70027445286368],[-119.27593518143044,37.70027679184044],[-119.27593837258489,37.7002790434856],[-119.2759416609313,37.700281205042195],[-119.27594504244331,37.700283273863526],[-119.27594851298056,37.70028524741653],[-119.27595206829365,37.70028712328471],[-119.27595570402934,37.700288899171234],[-119.27595941573597,37.700290572901636],[-119.27596319886887,37.700292142426576],[-119.27596704879583,37.700293605824314],[-119.27597096080298,37.70029496130296],[-119.27597493010029,37.7002962072029],[-119.27597895182771,37.700297341998606],[-119.27598302106095,37.700298364300586],[-119.27598713281749,37.70029927285714],[-119.27599128206285,37.70030006655579],[-119.27600810909807,37.700302794324145],[-119.27602504593689,37.70030505267916],[-119.27604207184375,37.70030683885596],[-119.27605916597403,37.700308150667745],[-119.27607630739958,37.70030898650849],[-119.27609347513435,37.70030934535485],[-119.27611064816004,37.70030922676755],[-119.27612780545195,37.70030863089175],[-119.27614492600458,37.70030755845695],[-119.27616198885745,37.70030601077614],[-119.27617897312066,37.700303989744135],[-119.27619585800066,37.70030149783523],[-119.2762126228254,37.700298538100284],[-119.27622924706998,37.70029511416283],[-119.27624571038154,37.70029123021477],[-119.27626199260426,37.70028689101118],[-119.27627807380406,37.70028210186448],[-119.27629393429297,37.700276868637964],[-119.27630955465321,37.7002711977386],[-119.27632491576108,37.700265096109206],[-119.27633999881022,37.70025857121993],[-119.27635478533469,37.700251631059096],[-119.27636925723172,37.70024428412344],[-119.27638339678361,37.70023653940771],[-119.27639718667967,37.70022840639364],[-119.27641061003719,37.7002198950384],[-119.27642365042233,37.700211015762264],[-119.27643629187008,37.70020177943597],[-119.27644851890389,37.70019219736747],[-119.27645082688569,37.7001903882213],[-119.27645321259004,37.700188643887955],[-119.27645567313569,37.70018696647408],[-119.27645820555095,37.70018535800557],[-119.27646080677737,37.70018382042497],[-119.27646347367333,37.70018235558933],[-119.27646620301796,37.70018096526769],[-119.27646899151499,37.700179651139266],[-119.27647183579661,37.70017841479107],[-119.27647473242776,37.70017725771635],[-119.2764776779101,37.70017618131251],[-119.27648066868622,37.700175186879555],[-119.27648370114412,37.700174275618465],[-119.27648677162144,37.70017344862984],[-119.27648987640983,37.700172706912426],[-119.27649301175958,37.70017205136201],[-119.27649617388408,37.70017148277033],[-119.27649935896429,37.70017100182409],[-119.27650256315354,37.70017060910415],[-119.276505782582,37.70017030508477],[-119.27650901336153,37.700170090133184],[-119.2765122515902,37.70016996450893],[-119.27651549335715,37.70016992836378],[-119.27651873474717,37.70016998174134],[-119.27652197184558,37.7001701245772],[-119.27652520074282,37.70017035669882],[-119.2765284175393,37.70017067782584],[-119.27653161834996,37.700171087570475],[-119.27653479930916,37.70017158543783],[-119.27653795657511,37.70017217082665],[-119.27654108633473,37.7001728430299],[-119.2765441848081,37.700173601235775],[-119.27654724825312,37.70017444452855],[-119.27655027297001,37.70017537188976],[-119.27655325530571,37.70017638219942],[-119.27655619165837,37.70017747423736],[-119.27655907848171,37.70017864668467],[-119.27656191228915,37.70017989812537],[-119.27656468965831,37.70018122704805],[-119.27656740723486,37.700182631847746],[-119.27657006173666,37.70018411082784],[-119.27657264995784,37.700185662202124],[-119.27657516877252,37.700187284096955],[-119.27657761513865,37.70018897455355],[-119.27657998610168,37.70019073153026],[-119.27658227879814,37.700192552905165],[-119.27658449045906,37.70019443647853],[-119.2765866184133,37.70019637997552],[-119.27658866009098,37.700198381048914],[-119.2765906130262,37.70020043728193],[-119.27659247486037,37.70020254619126],[-119.2765942433449,37.70020470522986],[-119.27659591634392,37.70020691179023],[-119.2765974918369,37.70020916320742],[-119.27659896792107,37.70021145676235],[-119.27660034281372,37.70021378968502],[-119.2766016148543,37.70021615915788],[-119.27660278250656,37.700218562319286],[-119.27660384436028,37.70022099626682],[-119.27660479913301,37.700223458060975],[-119.27663585864258,37.70030375588975],[-119.27667026117058,37.70038318877535],[-119.27670796868436,37.70046166887847],[-119.27674893949603,37.70053910941319],[-119.27675096190697,37.70054259581245],[-119.27675313507454,37.700546024465744],[-119.27675545639123,37.7005493912591],[-119.27675792307171,37.70055269215273],[-119.27676053215629,37.70055592318595],[-119.27676328051437,37.70055908048186],[-119.27676616484824,37.70056216025208],[-119.27676918169706,37.70056515880122],[-119.27677232744095,37.70056807253137],[-119.27677559830536,37.700570897946356],[-119.27677899036567,37.70057363165603],[-119.2767824995518,37.7005762703802],[-119.27678612165309,37.70057881095275],[-119.27678985232347,37.70058125032522],[-119.27679368708655,37.70058358557066],[-119.27679762134105,37.70058581388703],[-119.27680165036632,37.70058793260061],[-119.27680576932796,37.700589939169156],[-119.27680997328369,37.70059183118504],[-119.27681425718923,37.700593606378014],[-119.27681861590442,37.70059526261809],[-119.27682304419922,37.70059679791792],[-119.27682753676018,37.70059821043532],[-119.27683208819678,37.70059949847545],[-119.27683669304774,37.700600660492775],[-119.2768413457878,37.700601695093034],[-119.27684604083416,37.70060260103479],[-119.27685077255327,37.70060337723102],[-119.2768555352676,37.70060402275039],[-119.27686032326243,37.700604536818346],[-119.27686513079269,37.70060491881804],[-119.27686995208983,37.700605168291126],[-119.27687478136889,37.70060528493828],[-119.27687961283524,37.70060526861952],[-119.27688444069166,37.70060511935443],[-119.27688925914524,37.70060483732212],[-119.27689406241433,37.70060442286098],[-119.27689884473561,37.70060387646832],[-119.27690360037079,37.70060319879979],[-119.27690832361363,37.70060239066848],[-119.27691300879673,37.70060145304405],[-119.27691765029843,37.700600387051566],[-119.27692224254943,37.700599193970106],[-119.27692678003953,37.70059787523121],[-119.27693125732426,37.70059643241726],[-119.27693566903136,37.700594867259426],[-119.27694000986727,37.70059318163577],[-119.2769442746235,37.70059137756881],[-119.2769484581828,37.700589457223266],[-119.27695255552534,37.70058742290333],[-119.27695656173485,37.70058527704993],[-119.27696047200423,37.70058302223791],[-119.2769642816417,37.70058066117274],[-119.27696798607604,37.70057819668746],[-119.27697158086241,37.700575631739156],[-119.27697506168745,37.70057296940551],[-119.27697842437459,37.70057021288102],[-119.27698166488898,37.70056736547318],[-119.27698477934237,37.7005644305986],[-119.27698776399781,37.70056141177879],[-119.27699061527404,37.700558312635955],[-119.27699332974986,37.700555136888774],[-119.27699590416825,37.70055188834777],[-119.2769983354402,37.7005485709108],[-119.27700062064847,37.700545188558465],[-119.27700275705108,37.70054174534915],[-119.2770177640159,37.70051742372375],[-119.27703368932443,37.7004934736128],[-119.27705051842375,37.70046991690126],[-119.27706823593512,37.700446775114465],[-119.27708682566796,37.700424069398714],[-119.2771201190503,37.70038318973888],[-119.27715158960488,37.700341408455564],[-119.27718119870102,37.700298776840214],[-119.27720890999329,37.70025534722807],[-119.27723468946631,37.700211172933976],[-119.2772585054763,37.700166308186795],[-119.27728032879014,37.70012080806291],[-119.27730013262098,37.700074728418606],[-119.27731789266136,37.70002812582154],[-119.27733358711279,37.699981057481146],[-119.27734719671275,37.69993358117858],[-119.27735870475809,37.699885755195666],[-119.27736809712565,37.69983763824337],[-119.27736977559616,37.69982903321044],[-119.27737183005551,37.69982047981974],[-119.27737425801311,37.69981198843985],[-119.27737705652568,37.6998035693642],[-119.27738022220066,37.69979523279853],[-119.27738375120039,37.69978698884856],[-119.2773876392469,37.69977884750777],[-119.27739188162685,37.699770818645234],[-119.27739647319753,37.69976291199366],[-119.27740140839278,37.69975513713765],[-119.27740668122999,37.69974750350197],[-119.27741228531727,37.69974002034026],[-119.27741821386111,37.699732696723714],[-119.2774244596748,37.6997255415301],[-119.27743101518695,37.69971856343311],[-119.2774378724508,37.69971177089166],[-119.27744502315382,37.69970517213972],[-119.2774524586277,37.69969877517646],[-119.27746016985904,37.69969258775632],[-119.2774681475001,37.69968661737976],[-119.27747638188022,37.699680871284215],[-119.27748486301752,37.69967535643509],[-119.27749358063102,37.699670079517574],[-119.27750252415308,37.69966504692844],[-119.27751168274222,37.69966026476824],[-119.27752104529621,37.69965573883393],[-119.27753060046571,37.69965147461193],[-119.27754033666773,37.69964747727137],[-119.27755024209995,37.69964375165787],[-119.27756030475486,37.69964030228765],[-119.2775705124344,37.69963713334209],[-119.2775808527647,37.699634248662576],[-119.2775913132111,37.699631651745996],[-119.27760188109333,37.699629345740334],[-119.27761254360087,37.69962733344093],[-119.27762328780855,37.69962561728716],[-119.27763410069211,37.69962419935934],[-119.2776449691441,37.69962308137629],[-119.27765587998964,37.69962226469324],[-119.27766682000254,37.69962175030018],[-119.27767777592119,37.699621538820686],[-119.27768641632288,37.699621371225696],[-119.27769504402377,37.69962096311869],[-119.27770364842283,37.69962031500102],[-119.2777122189477,37.6996194276691],[-119.27772074506761,37.699618302213196],[-119.27772921630635,37.69961694001615],[-119.27773762225519,37.69961534275179],[-119.27774595258556,37.69961351238261],[-119.27775419706185,37.69961145115768],[-119.27776234555395,37.69960916160965],[-119.27777038804965,37.699606646551736],[-119.277778314667,37.6996039090742],[-119.27778611566647,37.69960095254067],[-119.27779378146283,37.69959778058388],[-119.277801302637,37.69959439710123],[-119.2778086699476,37.69959080625011],[-119.27781587434234,37.69958701244262],[-119.27782290696906,37.69958302034033],[-119.27782975918667,37.699578834848346],[-119.27783642257583,37.69957446110948],[-119.27784288894911,37.6995699044978],[-119.27791491327666,37.69951910425676],[-119.27798907718119,37.699470286330914],[-119.27806529428604,37.69942350757442],[-119.27814347582388,37.69937882246654],[-119.27822353074016,37.69933628304809],[-119.278305365799,37.69929593886098],[-119.27838888569184,37.69925783689036],[-119.27847399314835,37.6992220215101],[-119.27856058904983,37.69918853443095],[-119.27864857254455,37.6991574146521],[-119.27868709161052,37.69914380566306],[-119.27872501910565,37.69912918527256],[-119.27876231298045,37.699113569690105],[-119.27879893188798,37.69909697622851],[-119.27883483522967,37.699079423284786],[-119.27886998320045,37.69906093031966],[-119.27890433683275,37.69904151783607],[-119.27906973237718,37.69894157015222],[-119.27923118324853,37.69883763031233],[-119.27938853688954,37.69872979654132],[-119.27954164461686,37.698618170743444],[-119.27954814674443,37.698613112589705],[-119.27955442861736,37.69860788165889],[-119.27956048296802,37.698602484002734],[-119.27956630279209,37.698596925865886],[-119.2795718813566,37.69859121367867],[-119.2795772122077,37.69858535404956],[-119.27958228917805,37.69857935375768],[-119.27958710639415,37.69857321974485],[-119.27959165828285,37.69856695910761],[-119.27959593957817,37.69856057908898],[-119.27959994532709,37.69855408707008],[-119.27960367089531,37.69854749056166],[-119.27960711197277,37.698540797195264],[-119.27961026457851,37.69853401471454],[-119.27961312506534,37.698527150966264],[-119.27961569012402,37.698520213891186],[-119.27961795678705,37.69851321151488],[-119.27961992243219,37.69850615193849],[-119.27962158478545,37.698499043329306],[-119.27962294192373,37.6984918939114],[-119.27962399227702,37.698484711956],[-119.27962473463025,37.69847750577194],[-119.27962516812468,37.6984702836962],[-119.27962529225888,37.698463054084044],[-119.27962510688931,37.69845582529946],[-119.27962461223055,37.69844860570555],[-119.27962380885492,37.698441403654684],[-119.27962269769199,37.698434227479],[-119.27962128002734,37.698427085480674],[-119.27961955750116,37.69841998592233],[-119.27961777665244,37.69841262968463],[-119.27961631935636,37.698405228623194],[-119.27961518738138,37.69839779171996],[-119.27961438210116,37.69839032800045],[-119.27961390449295,37.69838284652261],[-119.27961375513621,37.69837535636607],[-119.27961393421216,37.69836786662092],[-119.27961444150337,37.69836038637672],[-119.27961527639404,37.698352924711564],[-119.2796164378709,37.698345490680964],[-119.27961792452425,37.69833809330687],[-119.27961973454977,37.698330741566785],[-119.27962186575074,37.69832344438279],[-119.27962431554064,37.69831621061079],[-119.27962708094627,37.69830904902969],[-119.27963015861145,37.69830196833084],[-119.27963354480106,37.698294977107345],[-119.2796372354055,37.6982880838438],[-119.27964122594578,37.69828129690587],[-119.27964551157885,37.6982746245302],[-119.27965008710363,37.69826807481436],[-119.27965494696717,37.698261655707114],[-119.27966008527144,37.6982553749987],[-119.27966549578059,37.69824924031139],[-119.2796711719283,37.698243259090184],[-119.27967710682599,37.69823743859395],[-119.27968329327093,37.698231785886406],[-119.2796897237553,37.69822630782767],[-119.27969639047495,37.69822101106594],[-119.27970328533914,37.698215902029325],[-119.27971039998026,37.69821098691814],[-119.27971772576389,37.69820627169737],[-119.2797252537995,37.69820176208937],[-119.27973297495102,37.69819746356701],[-119.27974087984803,37.69819338134697],[-119.27974895889719,37.698189520383394],[-119.27975720229375,37.69818588536196],[-119.27976560003351,37.69818248069409],[-119.27977414192503,37.69817931051171],[-119.27978281760184,37.698176378662104],[-119.27979161653518,37.69817368870339],[-119.27980052804666,37.69817124390008],[-119.27980954132134,37.69816904721917],[-119.27981864542073,37.69816710132652],[-119.27982782929611,37.6981654085837],[-119.27983708180199,37.698163971044984],[-119.27997300649292,37.69814664712879],[-119.28010958104002,37.69813292457285],[-119.28012824448072,37.69813154894568],[-119.2801469552281,37.698130667999365],[-119.2801656925208,37.69813028271136],[-119.28018443556786,37.698130393509224],[-119.28020316357205,37.698131000269974],[-119.28022185575284,37.69813210232039],[-119.28024049136933,37.6981336984376],[-119.28025904974348,37.698135786850585],[-119.28027751028294,37.698138365242016],[-119.2802958525039,37.69814143075091],[-119.2803140560538,37.69814497997582],[-119.28033210073397,37.6981490089785],[-119.28034996652204,37.698153513288354],[-119.28036763359408,37.69815848790742],[-119.28038508234665,37.69816392731587],[-119.2804022934186,37.69816982547809],[-119.28040909254251,37.698172151436765],[-119.2804159888172,37.69817428920415],[-119.28042297399523,37.698176236223624],[-119.28043003972292,37.69817799016673],[-119.28043717755014,37.69817954893585],[-119.28044437894063,37.69818091066683],[-119.28045163528205,37.698182073731154],[-119.28045893789638,37.69818303673785],[-119.28046627805021,37.698183798535275],[-119.28047364696533,37.69818435821234],[-119.280481035829,37.69818471509974],[-119.28048843580473,37.698184868770646],[-119.28049583804268,37.69818481904129],[-119.28050323369038,37.69818456597114],[-119.28051061390312,37.698184109862865],[-119.2805179698548,37.6981834512619],[-119.28052529274818,37.698182590955916],[-119.28053257382565,37.698181529973766],[-119.28053980437961,37.69818026958429],[-119.28054697576286,37.69817881129484],[-119.28055407939895,37.69817715684939],[-119.28056110679248,37.69817530822659],[-119.28056804953924,37.6981732676372],[-119.28057489933623,37.698171037521625],[-119.28058164799157,37.698168620546916],[-119.28058828743445,37.69816601960358],[-119.2805948097246,37.69816323780219],[-119.28060120706186,37.698160278469516],[-119.2806074717955,37.698157145144734],[-119.28061359643345,37.69815384157502],[-119.28061957365107,37.69815037171124],[-119.28062539630008,37.69814673970305],[-119.28063105741711,37.69814294989406],[-119.28063655023189,37.69813900681661],[-119.28064186817551,37.69813491518629],[-119.28064700488808,37.69813067989638],[-119.28065195422657,37.698126306011964],[-119.28065671027198,37.69812179876388],[-119.28066126733648,37.69811716354242],[-119.28066561997022,37.69811240589095],[-119.28066976296783,37.698107531499275],[-119.28067369137464,37.69810254619675],[-119.28067740049264,37.69809745594544],[-119.28068088588606,37.698092266832845],[-119.28075213048885,37.6979850066534],[-119.28082677299756,37.697879215522384],[-119.28090476545503,37.6977749613892],[-119.2809100891359,37.69776776663444],[-119.28091509313502,37.697760428446976],[-119.28091977133947,37.6977529557913],[-119.28092411803438,37.69774535779619],[-119.28092812790982,37.69773764374348],[-119.28093179606732,37.69772982305683],[-119.28093511802592,37.6977219052902],[-119.28093808972757,37.69771390011606],[-119.28094070754209,37.69770581731368],[-119.2809429682716,37.69769766675718],[-119.28094486915448,37.69768945840343],[-119.28094640786867,37.69768120227995],[-119.28094758253464,37.69767290847255],[-119.28094839171744,37.69766458711306],[-119.28094883442868,37.697656248367025],[-119.28094891012775,37.697647902421224],[-119.28094861872222,37.697639559471156],[-119.28094796056821,37.69763122970875],[-119.28094693646989,37.697622923309765],[-119.2809455476784,37.69761465042141],[-119.28094379589042,37.697606421149985],[-119.28094168324611,37.6975982455485],[-119.28093921232643,37.69759013360436],[-119.28093638614997,37.69758209522727],[-119.28093320816937,37.69757414023698],[-119.28092968226701,37.69756627835144],[-119.28092581275027,37.6975585191748],[-119.28092160434632,37.6975508721858],[-119.28091706219631,37.697543346726064],[-119.28091219184903,37.69753595198882],[-119.28090699925428,37.697528697007535],[-119.28090149075553,37.69752159064496],[-119.28089567308203,37.697514641582316],[-119.28088955334086,37.69750785830868],[-119.28088313900798,37.69750124911056],[-119.28087643791935,37.69749482206176],[-119.28086945826107,37.69748858501369],[-119.2808622085597,37.69748254558552],[-119.28085469767154,37.69747671115513],[-119.28084693477207,37.697471088849866],[-119.28083892934453,37.69746568553802],[-119.28083069116846,37.697460507820274],[-119.28082223030776,37.69745556202181],[-119.2807977857484,37.697441296011476],[-119.28077395459165,37.697426389120736],[-119.28075076343805,37.69741085798908],[-119.28072823817386,37.69739471995276],[-119.28070640394189,37.697377993025476],[-119.28068528511365,37.69736069587825],[-119.28066490526193,37.69734284781859],[-119.28064528713472,37.69732446876895],[-119.28062645262963,37.697305579244414],[-119.2806084227696,37.69728620032992],[-119.28059121767929,37.69726635365661],[-119.28057485656268,37.69724606137774],[-119.2805593576817,37.697225346144],[-119.28054473833576,37.697204231078054],[-119.28053101484252,37.69718273974896],[-119.28051820251957,37.69716089614571],[-119.28050631566741,37.69713872465045],[-119.28049536755348,37.697116250011355],[-119.28048537039739,37.69709349731493],[-119.28047633535724,37.69707049195801],[-119.28046972488954,37.69705368252337],[-119.28046239559147,37.69703706234118],[-119.28045435601966,37.69702065081362],[-119.28044561555986,37.69700446709924],[-119.28043618441595,37.69698853009065],[-119.28042607359812,37.69697285839245],[-119.28041529491006,37.696957470299516],[-119.28040386093495,37.696942383775614],[-119.28039178502102,37.69692761643247],[-119.28037908126582,37.69691318550918],[-119.28036576449983,37.69689910785214],[-119.28035185026908,37.69688539989528],[-119.2803373548171,37.696872077640975],[-119.28032229506582,37.69685915664131],[-119.28030668859597,37.696846651980024],[-119.28029055362641,37.696834578254716],[-119.28027390899301,37.69682294955997],[-119.28025677412649,37.69681177947085],[-119.28023916902991,37.69680108102702],[-119.28022111425518,37.696790866717585],[-119.28020263087915,37.69678114846648],[-119.280183740479,37.69677193761847],[-119.280164465107,37.6967632449261],[-119.2801448272648,37.696755080536974],[-119.28012484987723,37.696747453981956],[-119.28010455626539,37.6967403741641],[-119.28008397011953,37.69673384934816],[-119.28006311547142,37.696727887151006],[-119.2800420166662,37.69672249453277],[-119.28002069833406,37.696717677788605],[-119.2799991853614,37.69671344254145],[-119.27997750286187,37.69670979373542],[-119.27995567614698,37.696706735629974],[-119.27993324473407,37.69670359536213],[-119.27991096011036,37.696699852962084],[-119.27988884786794,37.69669551272771],[-119.27986693340094,37.696690579643374],[-119.2798452418763,37.69668505937438],[-119.27982379820503,37.69667895826027],[-119.27980262701334,37.69667228330773],[-119.27978175261461,37.69666504218237],[-119.27976119898128,37.69665724320005],[-119.27974098971742,37.69664889531726],[-119.27972114803164,37.69664000812086],[-119.27970169671035,37.69663059181709],[-119.2796826580916,37.69662065721976],[-119.27966405403954,37.69661021573798],[-119.27964590591918,37.69659927936288],[-119.2796282345719,37.69658786065396],[-119.27961106029156,37.69657597272467],[-119.27959440280108,37.6965636292273],[-119.27956461811604,37.69654000353383],[-119.2795358651989,37.696515584133316],[-119.27950817752767,37.69649039945901],[-119.27948158733997,37.69646447883518],[-119.27945612559547,37.696437852443005],[-119.27943182193972,37.69641055128537],[-119.27940870466983,37.696382607150845],[-119.2793868007014,37.69635405257658],[-119.2793661355372,37.69632492081049],[-119.27934673323746,37.696295245772546],[-119.27932861639204,37.69626506201517],[-119.2793118060938,37.69623440468308],[-119.27929632191437,37.696203309472466],[-119.27928218188119,37.69617181258918],[-119.27926940245652,37.69613995070684],[-119.27925799851842,37.696107760923894],[-119.27924798334332,37.69607528072066],[-119.27923936859051,37.69604254791543],[-119.27923216428879,37.69600960062067],[-119.27922637882452,37.69597647719846],[-119.27922201893215,37.69594321621593],[-119.27921908968612,37.69590985640035],[-119.27921759449521,37.695876436594006],[-119.27921753509834,37.69584299570894],[-119.27921890030818,37.695809583327474],[-119.27922167775097,37.695776226269714],[-119.27922586428754,37.695742962213565],[-119.27923145518722,37.69570982873187],[-119.27923844413304,37.69567686324996],[-119.27924682322887,37.695644103003296],[-119.27925658300855,37.69561158499552],[-119.27926771244624,37.69557934595664],[-119.27928019896926,37.69554742230142],[-119.27929402847201,37.69551585008842],[-119.27930918533207,37.69548466497916],[-119.2793256524278,37.69545390219789],[-119.27934341115764,37.695423596491786],[-119.27936244146125,37.695393782091685],[-119.27938272184205,37.69536449267347],[-119.27940422939157,37.69533576132],[-119.27942693981534,37.69530762048375],[-119.27946113162844,37.69526529111489],[-119.27949355868313,37.69522209381004],[-119.27952418612266,37.695178075007185],[-119.27955298102525,37.69513328202738],[-119.2795799124392,37.69508776302378],[-119.27960495141629,37.69504156693002],[-119.27962807104285,37.69499474340747],[-119.27964924646867,37.69494734279194],[-119.27966845493368,37.6948994160395],[-119.27968567579252,37.69485101467172],[-119.27970089053655,37.69480219072032],[-119.27971408281385,37.694752996671156],[-119.27972523844676,37.694703485407835],[-119.27972822935205,37.69469029270095],[-119.2797317983208,37.694677191053934],[-119.27973594099744,37.694664196454895],[-119.2797406523263,37.69465132476134],[-119.27974592655778,37.6946385916808],[-119.27975175725543,37.69462601275157],[-119.27975813730363,37.69461360332394],[-119.2797650589165,37.69460137854123],[-119.27977251364722,37.69458935332151],[-119.27978049239847,37.69457754233925],[-119.27978898543346,37.69456596000756],[-119.27979798238779,37.69455462046045],[-119.2798074722822,37.69454353753565],[-119.27981744353586,37.694532724757785],[-119.27982788398056,37.69452219532175],[-119.27983878087556,37.69451196207671],[-119.27985012092311,37.69450203751034],[-119.27986189028474,37.694492433733686],[-119.279874074598,37.69448316246624],[-119.27988665899419,37.69447423502185],[-119.27989962811638,37.69446566229468],[-119.27991296613816,37.694457454746086],[-119.27992665678293,37.69444962239175],[-119.27994068334388,37.69444217478957],[-119.27995502870424,37.69443512102783],[-119.27996967535823,37.694428469714275],[-119.27998460543242,37.69442222896552],[-119.27999980070754,37.69441640639721],[-119.28001524264074,37.69441100911455],[-119.28003091238809,37.694406043703935],[-119.28003498338549,37.69440475385637],[-119.28003899535922,37.69440335208945],[-119.28004294343813,37.694401840105094],[-119.28004682282862,37.694400219739144],[-119.28005062882048,37.694398492958975],[-119.28005435679266,37.69439666186112],[-119.2800580022188,37.694394728668875],[-119.28006156067276,37.694392695729434],[-119.28006502783407,37.69439056551111],[-119.28006839949303,37.694388340600305],[-119.28007167155592,37.694386023698414],[-119.2800748400499,37.694383617618556],[-119.28007790112802,37.69438112528207],[-119.2800808510736,37.69437854971503],[-119.28008368630496,37.69437589404461],[-119.28008640337967,37.694373161495214],[-119.28008899899885,37.69437035538457],[-119.28009147001096,37.69436747911973],[-119.28009381341585,37.694364536192964],[-119.28009602636823,37.694361530177446],[-119.28009810618131,37.694358464722924],[-119.28010005032984,37.69435534355134],[-119.28010185645336,37.69435217045232],[-119.28010352235894,37.694348949278485],[-119.28010504602395,37.694345683940846],[-119.28010642559845,37.69434237840403],[-119.28010765940743,37.69433903668148],[-119.28010874595287,37.694335662830554],[-119.28010968391554,37.69433226094766],[-119.28011047215666,37.6943288351632],[-119.28011110971917,37.69432538963661],[-119.28011159582903,37.694321928551304],[-119.28011192989601,37.69431845610955],[-119.28011211151457,37.694314976527465],[-119.28011214046415,37.69431149402976],[-119.28011201670967,37.69430801284477],[-119.2801117404014,37.69430453719918],[-119.28011131187485,37.69430107131294],[-119.28011073165031,37.69429761939419],[-119.28011000043232,37.69429418563409],[-119.28010911910867,37.69429077420174],[-119.28010808874946,37.69428738923918],[-119.28010584765123,37.69428003301871],[-119.28010392679151,37.6942726198172],[-119.28010232845037,37.69426515843455],[-119.28010105452506,37.69425765772793],[-119.28010010652774,37.694250126601105],[-119.2800994855836,37.69424257399403],[-119.28009919242966,37.694235008872084],[-119.2800992274138,37.69422744021557],[-119.2800995904944,37.69421987700892],[-119.28010028124037,37.69421232823009],[-119.28010129883164,37.694204802840005],[-119.28010264206019,37.6941973097717],[-119.28010430933138,37.694189857919895],[-119.28010629866601,37.694182456130406],[-119.2801086077025,37.69417511318959],[-119.28011123369983,37.69416783781393],[-119.28011417354065,37.69416063863974],[-119.28011742373516,37.69415352421284],[-119.28012098042507,37.69414650297847],[-119.28012483938826,37.694139583271244],[-119.28012899604394,37.69413277330522],[-119.28013344545775,37.69412608116426],[-119.28013818234797,37.69411951479226],[-119.28014320109153,37.694113081983915],[-119.28014849573083,37.69410679037531],[-119.28015405998079,37.694100647434915],[-119.2801598872363,37.694094660454766],[-119.28016597057997,37.6940888365417],[-119.28017230279052,37.69408318260905],[-119.28017887635121,37.69407770536834],[-119.28018568345878,37.694072411321336],[-119.28019271603286,37.694067306752366],[-119.28019996572529,37.694062397720835],[-119.28020742393029,37.69405769005399],[-119.28021508179452,37.694053189340096],[-119.2802229302277,37.694048900921764],[-119.28023095991324,37.69404482988954],[-119.2802391613195,37.69404098107597],[-119.28024752471093,37.69403735904978],[-119.28025604015973,37.694033968110524],[-119.28026469755761,37.694030812283394],[-119.28027348662779,37.69402789531454],[-119.28028239693715,37.69402522066658],[-119.2802914179087,37.694022791514406],[-119.28030053883406,37.69402061074157],[-119.2803125188537,37.69401774598791],[-119.28032436727294,37.69401455430043],[-119.28033606996652,37.6940110394841],[-119.28034761298302,37.694007205729164],[-119.28035898256135,37.69400305760605],[-119.28037016514718,37.69399860005997],[-119.28038114740909,37.693993838405085],[-119.28039191625453,37.69398877831801],[-119.28040245884539,37.69398342583114],[-119.28041276261328,37.69397778732556],[-119.2804228152745,37.69397186952322],[-119.28043260484478,37.69396567947906],[-119.28044211965346,37.69395922457262],[-119.28045134835746,37.69395251249916],[-119.28046027995478,37.693945551260505],[-119.2804689037977,37.69393834915556],[-119.28047720960527,37.693930914770355],[-119.2804849390095,37.693923498520974],[-119.28049234549002,37.693915877036524],[-119.28049942042291,37.693908059191294],[-119.2805061555704,37.69390005408825],[-119.28051254309032,37.69389187104834],[-119.28051857554526,37.69388351959974],[-119.28052424591135,37.69387500946673],[-119.2805295475862,37.69386635055827],[-119.28053447439682,37.693857552956615],[-119.28053902060664,37.69384862690552],[-119.28054318092234,37.69383958279825],[-119.28054695049984,37.69383043116556],[-119.28055032495014,37.69382118266339],[-119.28055330034421,37.69381184806049],[-119.28055587321774,37.693802438225816],[-119.2805580405751,37.69379296411596],[-119.28055979989281,37.69378343676236],[-119.28056114912256,37.69377386725833],[-119.28056208669344,37.69376426674643],[-119.280562611514,37.69375464640522],[-119.28056272297327,37.69374501743637],[-119.28056242094162,37.69373539105157],[-119.28056170577092,37.6937257784595],[-119.28056057829406,37.693716190852804],[-119.28055903982396,37.69370663939503],[-119.28055709215214,37.69369713520756],[-119.2805547375466,37.693687689356835],[-119.28055197874909,37.6936783128413],[-119.28054881897204,37.69366901657869],[-119.28054526189472,37.69365981139326],[-119.28054131165905,37.693650708003254],[-119.2805369728647,37.69364171700836],[-119.28053225056374,37.69363284887743],[-119.28053022687578,37.69362904557461],[-119.28052837038021,37.69362518879495],[-119.28052668331017,37.69362128317774],[-119.28052516769498,37.693617333421],[-119.28052382535772,37.693613344275846],[-119.2805226579131,37.69360932054078],[-119.28052166676531,37.693605267055894],[-119.28052085310665,37.693601188697095],[-119.28052021791576,37.69359709037021],[-119.28051976195671,37.693592977005025],[-119.28051948577794,37.69358885354953],[-119.28051938971161,37.69358472496369],[-119.28051947387328,37.69358059621379],[-119.28051973816166,37.69357647226625],[-119.28052018225881,37.69357235808171],[-119.28052080563052,37.693568258609055],[-119.2805216075269,37.69356417877948],[-119.28052258698331,37.6935601235006],[-119.28052374282159,37.693556097650436],[-119.28052507365135,37.6935521060716],[-119.2805265778717,37.69354815356556],[-119.28052825367324,37.69354424488667],[-119.28053009904015,37.69354038473667],[-119.2805321117526,37.69353657775888],[-119.28053428938952,37.693532828532646],[-119.28053662933146,37.69352914156785],[-119.28053912876369,37.69352552129949],[-119.28054178467967,37.69352197208233],[-119.2805445938846,37.69351849818569],[-119.28054755299931,37.693515103788265],[-119.28055065846435,37.69351179297307],[-119.28055390654411,37.69350856972271],[-119.2805572933316,37.69350543791433],[-119.2805608147528,37.69350240131518],[-119.2805644665719,37.693499463577865],[-119.28056824439614,37.6934966282362],[-119.28057214368121,37.693493898700744],[-119.28058392829664,37.69348564899186],[-119.28059534533065,37.69347707910777],[-119.28060638101486,37.693468199383474],[-119.28061702204069,37.693459020527605],[-119.28062725557555,37.69344955360959],[-119.28063706927831,37.693439810046186],[-119.28064645131414,37.693429801587854],[-119.28065539036879,37.693419540304426],[-119.28066387566228,37.69340903857062],[-119.2806718969618,37.69339830905122],[-119.28067944459421,37.693387364685584],[-119.28068650945751,37.69337621867226],[-119.28069308303195,37.6933648844529],[-119.28069915739026,37.69335337569618],[-119.28070472520727,37.6933417062812],[-119.28070977976861,37.69332989028082],[-119.28071431497894,37.693317941944706],[-119.28071832536922,37.69330587568206],[-119.28072180610333,37.69329370604431],[-119.28072475298393,37.69328144770755],[-119.28072716245745,37.69326911545481],[-119.28072903161842,37.693256724158296],[-119.28073035821302,37.69324428876137],[-119.28073114064169,37.693231824260586],[-119.28073137796112,37.693219345687574],[-119.28073106988536,37.69320686809096],[-119.28073021678627,37.69319440651817],[-119.2807288196929,37.69318197599728],[-119.28072688029035,37.69316959151891],[-119.28072440091769,37.69315726801819],[-119.28072138456525,37.69314502035667],[-119.28071783487081,37.69313286330443],[-119.28071375611546,37.6931208115223],[-119.28070915321817,37.693108879544134],[-119.28070403173007,37.69309708175932],[-119.2807012880594,37.69309075861154],[-119.2806988245831,37.69308436302815],[-119.28069664431996,37.69307790284659],[-119.2806947499417,37.69307138598347],[-119.28069314376967,37.69306482042489],[-119.28069182777215,37.693058214216556],[-119.28069080356168,37.69305157545404],[-119.28069007239331,37.693044912272775],[-119.28068963516299,37.69303823283814],[-119.28068949240644,37.693031545335444],[-119.28068964429849,37.69302485795978],[-119.28069009065295,37.69301817890621],[-119.28069083092275,37.69301151635955],[-119.28069186420068,37.69300487848437],[-119.28069318922039,37.69299827341498],[-119.28069480435809,37.69299170924555],[-119.28069670763445,37.69298519402008],[-119.28069889671704,37.69297873572262],[-119.28070136892316,37.69297234226745],[-119.28070412122322,37.692966021489354],[-119.28070715024437,37.692959781134086],[-119.28071045227465,37.692953628848855],[-119.28071402326752,37.69294757217291],[-119.28071785884691,37.69294161852832],[-119.28072195431247,37.692935775211],[-119.28072630464538,37.69293004938151],[-119.28073090451453,37.69292444805655],[-119.28073574828298,37.692918978100195],[-119.28074083001496,37.692913646215565],[-119.28074614348303,37.69290845893653],[-119.28075168217585,37.69290342261978],[-119.280757439306,37.692898543437046],[-119.28079656823971,37.69286550023575],[-119.28083437110885,37.69283149625409],[-119.28087081057484,37.69279656508006],[-119.28090585064592,37.692760741217484],[-119.28093945671286,37.69272406005187],[-119.28097159558291,37.69268655781555],[-119.2810022355128,37.69264827155176],[-119.28117154779878,37.692397184507456],[-119.28126093205677,37.69228187231494],[-119.28135451952177,37.69216868552491],[-119.28137726316282,37.6921305480038],[-119.28139835413107,37.69209181538012],[-119.28141776781226,37.69205253286158],[-119.28143548154988,37.692012746297806],[-119.28145147467168,37.69197250212658],[-119.28146572851377,37.691931847319744],[-119.28147822644236,37.69189082932831],[-119.2815833100332,37.69161901195062],[-119.2815895427165,37.69160938738714],[-119.28159618455788,37.69159993721268],[-119.2816032278403,37.691590672407],[-119.28161066438025,37.69158160373454],[-119.28161848553742,37.69157274173183],[-119.28162668222456,37.69156409669528],[-119.28163524491814,37.6915556786692],[-119.28164416366941,37.69154749743414],[-119.2816534281159,37.69153956249554],[-119.28166302749358,37.69153188307271],[-119.28167295064918,37.691524468088026],[-119.28168318605331,37.691517326156635],[-119.28169372181384,37.69151046557645],[-119.28170454568964,37.69150389431851],[-119.28171564510481,37.691497620017614],[-119.2817270071634,37.691491649963666],[-119.2817386186642,37.69148599109297],[-119.28175046611635,37.691480649980306],[-119.28176253575475,37.69147563283134],[-119.28177481355617,37.69147094547521],[-119.28178728525553,37.69146659335797],[-119.28179993636255,37.69146258153616],[-119.28181275217838,37.69145891467088],[-119.28182571781295,37.69145559702255],[-119.28183881820205,37.69145263244579],[-119.28185203812488,37.691450024384984],[-119.28186536222185,37.69144777587032],[-119.2818787750123,37.69144588951426],[-119.28189226091249,37.691444367508474],[-119.28190580425382,37.691443211621284],[-119.28191938930088,37.69144242319569],[-119.2819330002698,37.691442003147735],[-119.28194662134669,37.69144195196541],[-119.28196023670584,37.69144226970821],[-119.28197383052817,37.69144295600699],[-119.28198738701967,37.691444010064316],[-119.28204535669416,37.69144849721163],[-119.28210348829883,37.691451371715345],[-119.28216171081164,37.691452630063516],[-119.28221995309931,37.691452270718834],[-119.28227814400451,37.69145029412028],[-119.28233621243267,37.69144670268275],[-119.28239408743883,37.69144150079407],[-119.28245169831445,37.691434694809665],[-119.28250897467369,37.69142629304469],[-119.28256584653951,37.69141630576396],[-119.28262224442908,37.69140474516938],[-119.28267809943881,37.69139162538509],[-119.28273334332842,37.69137696244005],[-119.28278790860439,37.6913607742487],[-119.28284172860243,37.69134308058874],[-119.28289473756891,37.69132390307733],[-119.28294687074123,37.691303265144406],[-119.2829980644269,37.69128119200414],[-119.28304825608144,37.69125771062416],[-119.28309738438479,37.691232849692554],[-119.28314538931613,37.69120663958282],[-119.28319221222733,37.6911791123168],[-119.28323779591459,37.69115030152548],[-119.28328208468821,37.69112024240795],[-119.28332502444084,37.69108897168838],[-119.28336656271337,37.691056527571135],[-119.28340664875921,37.6910229496941],[-119.28344523360613,37.690988279080294],[-119.28348227011615,37.69095255808764],[-119.28351771304318,37.69091583035732],[-119.2835515190882,37.69087814076039],[-119.28358364695221,37.69083953534296],[-119.28358677441489,37.69083095311246],[-119.28359027692264,37.6908224628554],[-119.28359415020711,37.69081407491807],[-119.28359838954822,37.690805799522124],[-119.2836029897797,37.69079764675202],[-119.28360794529556,37.69078962654283],[-119.28361325005683,37.69078174866803],[-119.28361889759898,37.690774022727695],[-119.2836248810398,37.6907664581367],[-119.28363119308764,37.69075906411334],[-119.28363782605055,37.690751849668],[-119.28364477184545,37.69074482359227],[-119.28365202200806,37.69073799444819],[-119.28365956770318,37.69073137055777],[-119.28366739973553,37.69072495999298],[-119.28367550856083,37.69071877056572],[-119.28368388429763,37.69071280981849],[-119.28369251673905,37.6907070850151],[-119.28370139536555,37.690701603131764],[-119.28371050935756,37.690696370848805],[-119.28371984760862,37.69069139454228],[-119.28372939873911,37.69068668027634],[-119.2837391511099,37.690682233795805],[-119.2837490928367,37.690678060519176],[-119.28375921180442,37.690674165532016],[-119.2837694956821,37.69067055358081],[-119.28377993193766,37.69066722906703],[-119.28379050785348,37.69066419604199],[-119.28380121054168,37.690661458201724],[-119.28381202695992,37.6906590188826],[-119.28382294392729,37.690656881057116],[-119.28383394814036,37.6906550473305],[-119.28384502618927,37.69065351993729],[-119.28385616457439,37.690652300738805],[-119.28386734972236,37.690651391220726],[-119.283878568003,37.690650792491425],[-119.28388980574563,37.69065050528053],[-119.28390104925597,37.69065052993798],[-119.2839122848326,37.69065086643377],[-119.28392349878388,37.69065151435784],[-119.2839346774444,37.69065247292062],[-119.28394580719184,37.690653740954],[-119.28395687446347,37.69065531691277],[-119.28396786577268,37.69065719887643],[-119.2839787677254,37.690659384551644],[-119.28398956703653,37.69066187127493],[-119.28400025054593,37.690664656015976],[-119.28401236758131,37.69066782016145],[-119.28402461237229,37.69067065677983],[-119.28403697090371,37.690673162624364],[-119.28404942903028,37.69067533482692],[-119.28406197249265,37.69067717090123],[-119.28407458693383,37.690678668745775],[-119.28408725791552,37.69067982664612],[-119.2840999709348,37.690680643276956],[-119.28411271144056,37.690681117703605],[-119.28412546485026,37.69068124938305],[-119.28413821656657,37.69068103816456],[-119.28415095199415,37.69068048428987],[-119.28416365655623,37.69067958839296],[-119.2841763157114,37.69067835149927],[-119.28418891497024,37.69067677502451],[-119.28420143991188,37.69067486077305],[-119.2842138762005,37.69067261093596],[-119.28422620960177,37.69067002808834],[-119.28423842599912,37.690667115186486],[-119.28429215204753,37.69065427955094],[-119.28434637824489,37.690642849001726],[-119.28440104641798,37.69063283580136],[-119.28445609791947,37.690624250691826],[-119.28451147369086,37.69061710288312],[-119.28456711432585,37.69061140004328],[-119.28462296013403,37.69060714829024],[-119.28467895120497,37.69060435218521],[-119.28473502747231,37.6906030147278],[-119.2847911287785,37.690603137352824],[-119.28521111961717,37.69061347443186],[-119.28563068504324,37.69063170735407],[-119.285648575833,37.69063240816459],[-119.28566648637602,37.69063261924057],[-119.28568439544962,37.6906323403318],[-119.28570228183293,37.690631571768854],[-119.28572012433193,37.69063031446236],[-119.28573790180458,37.69062856990218],[-119.28575559318594,37.690626340155475],[-119.28577317751305,37.69062362786431],[-119.28579063394984,37.69062043624255],[-119.28580794181173,37.69061676907202],[-119.28582508059029,37.69061263069805],[-119.28584202997735,37.690608026024314],[-119.28585876988923,37.69060296050695],[-119.28587528049049,37.69059744014825],[-119.28589154221734,37.6905914714894],[-119.28590753580096,37.6905850616028],[-119.28592324229028,37.69057821808368],[-119.28593864307437,37.69057094904108],[-119.28595371990464,37.69056326308823],[-119.28596845491629,37.690555169332384],[-119.28598283064962,37.69054667736402],[-119.28599683007063,37.69053779724543],[-119.28601043659128,37.69052853949888],[-119.28602363408908,37.69051891509401],[-119.2860364069262,37.69050893543502],[-119.28604873996804,37.690498612346964],[-119.28606061860113,37.69048795806187],[-119.28607202875044,37.69047698520418],[-119.28609664641982,37.69045330495093],[-119.28612226784809,37.690430306923126],[-119.286148863116,37.69040801797568],[-119.28617640116725,37.69038646413555],[-119.28620484984475,37.690365670571246],[-119.28623417592814,37.690345661563505],[-119.28626434517257,37.690326460476875],[-119.28629532234875,37.690308089732504],[-119.286327071284,37.690290570781926],[-119.28635955490459,37.69027392408204],[-119.28639273527897,37.69025816907116],[-119.28642657366201,37.69024332414641],[-119.28646103054038,37.69022940664217],[-119.28649606567853,37.69021643280984],[-119.28653163816575,37.69020441779895],[-119.28656770646404,37.69019337563939],[-119.28660422845633,37.69018331922499],[-119.28664116149598,37.69017426029864],[-119.28674891408299,37.69015091005985],[-119.28685755525645,37.690130323607086],[-119.28696697279469,37.690112522205155],[-119.28707705367428,37.690097524242],[-119.28718768418693,37.69008534520983],[-119.28729875005673,37.69007599768894],[-119.28741013655821,37.6900694913349],[-119.28752172863486,37.6900658328684],[-119.28763341101781,37.690065026068446],[-119.28833539656573,37.690072251111516],[-119.28865516513767,37.69008127929261],[-119.28897438078452,37.690098733406934],[-119.28898219997738,37.690099156922145],[-119.28899003289325,37.69009936602277],[-119.2889978702244,37.690099360460295],[-119.28900570265778,37.690099140241365],[-119.28901352088619,37.69009870562763],[-119.28902131561927,37.690098057135565],[-119.28902907759463,37.690097195535785],[-119.28903679758884,37.69009612185208],[-119.28904446642824,37.690094837360284],[-119.28905207500003,37.69009334358678],[-119.28905961426305,37.69009164230664],[-119.28906707525847,37.69008973554141],[-119.28907444912046,37.69008762555691],[-119.28908172708672,37.690085314860426],[-119.28908890050896,37.6900828061977],[-119.28909596086307,37.69008010254977],[-119.28910289975933,37.690077207129384],[-119.28910970895231,37.69007412337707],[-119.28911638035073,37.690070854957305],[-119.28912290602707,37.690067405753844],[-119.28912927822698,37.690063779865376],[-119.28913548937847,37.69005998160047],[-119.28914153210087,37.69005601547261],[-119.28914739921376,37.69005188619465],[-119.28915308374532,37.6900475986734],[-119.28915857894073,37.69004315800369],[-119.28916387827016,37.69003856946225],[-119.28916897543648,37.69003383850162],[-119.28917386438287,37.69002897074355],[-119.28917853929991,37.69002397197233],[-119.28918299463245,37.69001884812794],[-119.28918722508635,37.69001360529896],[-119.28919122563467,37.69000824971539],[-119.28919499152366,37.69000278774119],[-119.2891985182784,37.68999722586675],[-119.28920180170817,37.68999157070115],[-119.28932405180672,37.68976105032088],[-119.28943683735486,37.68952750293656],[-119.28954003997613,37.6892911738581],[-119.28963355136293,37.689052311314896],[-119.28971727338978,37.68881116619494],[-119.28979111821604,37.6885679917813],[-119.28996631676829,37.68790592442405],[-119.29011926620583,37.68724038418007],[-119.29024985863951,37.68657184311929],[-119.29035974646644,37.686025363138036],[-119.29049399963336,37.685482331514116],[-119.29065244803422,37.684943434148494],[-119.29066688475874,37.68490105452673],[-119.29068313307134,37.68485909117271],[-119.29070117403685,37.68481759298093],[-119.29072098663153,37.68477660830387],[-119.29074254776744,37.68473618489557],[-119.2907658323195,37.68469636985599],[-119.29079081315456,37.68465720957624],[-119.29081746116331,37.684618749684375],[-119.29084574529395,37.684581034992405],[-119.29087563258854,37.68454410944388],[-119.29090708822129,37.68450801606293],[-119.29094007553928,37.68447279690393],[-119.29097455610507,37.684438493002645],[-119.29101048974151,37.684405144328295],[-119.29104783457859,37.68437278973719],[-119.2910865471022,37.68434146692718],[-119.29112658220487,37.68431121239403],[-119.29119526749712,37.684259374386286],[-119.29126177428189,37.68420577222625],[-119.29132603085958,37.68415046370515],[-119.29138796795704,37.68409350845383],[-119.29144751880231,37.68403496787844],[-119.2915046191967,37.68397490509413],[-119.2915592075838,37.68391338485715],[-119.29160638149283,37.683860337788225],[-119.29165585671552,37.68380863181402],[-119.29170757293768,37.683758329963325],[-119.29176146711372,37.683709493553174],[-119.29181747354349,37.683662182114176],[-119.29187552395256,37.683616453317875],[-119.29193554757526,37.683572362906574],[-119.291997471241,37.68352996462524],[-119.2920612194635,37.68348931015618],[-119.29212671453286,37.6834504490559],[-119.29219387661009,37.68341342869477],[-119.2922626238246,37.683378294199336],[-119.29233287237396,37.68334508839726],[-119.29240453662598,37.68331385176513],[-119.29250070651618,37.683272009416235],[-119.29259506498836,37.68322763867255],[-119.29268750683757,37.683180789006734],[-119.29277792899633,37.683131512655315],[-119.29286623064979,37.68307986456045],[-119.292952313348,37.68302590230865],[-119.29303608111564,37.68296968606648],[-119.29311744055923,37.682911278513544],[-119.29319630097103,37.68285074477256],[-119.29327257443039,37.682788152336684],[-119.2933461759016,37.68272357099434],[-119.29341702332879,37.682657072751255],[-119.29348503772738,37.68258873175029],[-119.29355014327216,37.68251862418869],[-119.29361226738172,37.682446828233104],[-119.29367134079948,37.68237342393246],[-119.2937272976708,37.68229849312866],[-119.29378007561635,37.68222211936533],[-119.2938050222131,37.68218289933839],[-119.29382822758933,37.68214300988612],[-119.29384966335367,37.68210249981728],[-119.29386930328027,37.68206141869996],[-119.2938871233408,37.68201981680092],[-119.29390310173375,37.68197774502401],[-119.29391721891122,37.68193525484796],[-119.29392945760276,37.6818923982634],[-119.29393980283649,37.68184922770913],[-119.29394824195744,37.681805796008106],[-119.29395476464298,37.68176215630265],[-119.2939593629154,37.68171836198958],[-119.2939620311518,37.68167446665474],[-119.2939627660908,37.68163052400753],[-119.29396156683651,37.68158658781511],[-119.29395843485982,37.68154271183665],[-119.2939533739963,37.68149894975759],[-119.29394639044165,37.681455355123845],[-119.2939374927441,37.68141198127644],[-119.29392669179394,37.68136888128608],[-119.29391400081006,37.68132610788837],[-119.29389943532392,37.681283713419134],[-119.29388301316047,37.681241749750555],[-119.29379585322805,37.68104249855353],[-119.29370093622595,37.680845498867946],[-119.29359835410052,37.680650941400934],[-119.29348820621605,37.680459014493955],[-119.29343182001321,37.68036857652662],[-119.29337169482294,37.6802796729522],[-119.29330789667284,37.68019240138225],[-119.29324049562247,37.680106857636126],[-119.29316956568645,37.68002313563572],[-119.29309518475311,37.67994132730259],[-119.2930174344989,37.67986152245679],[-119.29293640029883,37.67978380871842],[-119.29285217113254,37.67970827141148],[-119.29276483948662,37.67963499347011],[-119.29267450125323,37.679564055347605],[-119.2925812556245,37.679495534928094],[-119.29239622611318,37.67935952667524],[-119.29221702177446,37.67921867773035],[-119.29204384295994,37.67907314558957],[-119.29187688328008,37.67892309298486],[-119.29171632938791,37.678768687701904],[-119.29156236077014,37.67861010239242],[-119.2914151495468,37.67844751438098],[-119.2912748602787,37.67828110546671],[-119.29124620924703,37.67824449158275],[-119.29121916139295,37.67820711533366],[-119.29119374879058,37.6781690210446],[-119.29117000157463,37.67813025389227],[-119.29114794790469,37.678090859851224],[-119.29112761393179,37.67805088563937],[-119.29110902376743,37.67801037866262],[-119.29109219945502,37.677969386958544],[-119.29107716094371,37.677927959139595],[-119.29106392606477,37.67788614433519],[-119.29105251051043,37.677843992133724],[-119.29104292781531,37.677801552523555],[-119.29103518934039,37.6777588758338],[-119.2910293042595,37.677716012674665],[-119.29102527954859,37.67767301387738],[-119.29102311997727,37.677629930433966],[-119.29102282810332,37.67758681343673],[-119.29102440426963,37.67754371401765],[-119.29102784660378,37.677500683287825],[-119.29103315102034,37.67745777227677],[-119.2910403112257,37.677415031871945],[-119.29104931872543,37.67737251275843],[-119.29106016283465,37.67733026535876],[-119.29109195193844,37.67722476251582],[-119.29112812634476,37.677120155775725],[-119.29116864622657,37.6770165602546],[-119.29121346697532,37.676914089955154],[-119.29126253925008,37.67681285764149],[-119.29131580903199,37.67671297471487],[-119.29137321768373,37.67661455109114],[-119.29143470201404,37.67651769507992],[-119.29150019434752,37.67642251326524],[-119.29156962259896,37.67632911038847],[-119.2917816449607,37.67604559177907],[-119.29198364320074,37.67575748686228],[-119.29217546050964,37.67546501945815],[-119.29227052095688,37.67530851982123],[-119.29235890730334,37.675149568267685],[-119.29244051964355,37.674988344542044],[-119.29251526573402,37.67482503095708],[-119.29258306109737,37.67465981218763],[-119.29275339622875,37.67423783709046],[-119.29293643438287,37.673819236064254],[-119.29301553805202,37.67363544007695],[-119.29308678518687,37.67344962502922],[-119.29315009452041,37.67326200302248],[-119.29320539384804,37.67307278821912],[-119.29325262010977,37.67288219659807],[-119.29329171946185,37.67269044570809],[-119.29332264733809,37.672497754419595],[-119.29334536850031,37.67230434267465],[-119.2933540778704,37.67223008643297],[-119.29336591050406,37.67215610363782],[-119.29338085312123,37.67208247726378],[-119.2933988889541,37.67200928988547],[-119.29341999776572,37.67193662358498],[-119.29344415587299,37.671864559859614],[-119.29347133617317,37.6717931795308],[-119.29350150817427,37.67172256265318],[-119.29353463802933,37.671652788425],[-119.29357068857445,37.67158393509922],[-119.29360961937036,37.67151607989575],[-119.29365138674798,37.671449298914936],[-119.29369594385734,37.67138366705217],[-119.29374324072018,37.67131925791385],[-119.29379322428592,37.671256143734915],[-119.29384583849134,37.6711943952979],[-119.29390102432338,37.67113408185335],[-119.29395871988534,37.67107527104244],[-119.29401886046637,37.671018028820946],[-119.29408137861404,37.6709624193853],[-119.29414620420987,37.670908505100705],[-119.2941735464656,37.670894857136346],[-119.29420028914075,37.670880478128744],[-119.294226401313,37.6708653847044],[-119.29425185278913,37.670849594315925],[-119.29427661413995,37.67083312522177],[-119.29430065673428,37.670815996465215],[-119.29432395277213,37.67079822785224],[-119.29434647531679,37.670779839928755],[-119.29436819832605,37.67076085395669],[-119.29438909668218,37.67074129188952],[-119.29440914622116,37.670721176346866],[-119.29442832376037,37.67070053058821],[-119.29444660712566,37.67067937848625],[-119.29446397517681,37.670657744499],[-119.29448040783208,37.670635653641796],[-119.29449588609125,37.670613131458104],[-119.2945103920579,37.670590203990166],[-119.29452390895972,37.670566897748834],[-119.29453642116819,37.670543239682914],[-119.29454791421658,37.67051925714792],[-119.29455837481656,37.67049497787463],[-119.29457031747863,37.67046727606476],[-119.29458345134543,37.67043991703585],[-119.29459776088405,37.670412933141705],[-119.29461322917123,37.67038635629244],[-119.29462983791362,37.67036021791681],[-119.29464756746918,37.670334548924984],[-119.29466639687054,37.670309379672055],[-119.29468630384973,37.67028473992209],[-119.29470726486463,37.67026065881297],[-119.29472925512663,37.670237164821934],[-119.29475224863016,37.67021428573189],[-119.29477621818324,37.67019204859854],[-119.29480113543981,37.670170479718486],[-119.29482697093317,37.67014960459797],[-119.29485402230866,37.67012775737679],[-119.29488012609858,37.670105193554505],[-119.29490525227784,37.67008193908526],[-119.29492937194586,37.67005802071759],[-119.2949524573599,37.67003346596367],[-119.29497448196689,37.670008303067675],[-119.29499542043415,37.66998256097322],[-119.29501524867835,37.669956269290125],[-119.29503394389327,37.66992945826041],[-119.29505148457599,37.669902158723346],[-119.29506785055172,37.66987440208012],[-119.29508302299689,37.669846220257675],[-119.29509698446087,37.66981764567193],[-119.295109718886,37.66978871119065],[-119.29512121162603,37.66975945009536],[-119.29513144946309,37.66972989604341],[-119.29514042062266,37.66970008302895],[-119.29514811478735,37.669670045344],[-119.29515452310861,37.669639817538986],[-119.29515963821694,37.669609434382956],[-119.29516345423038,37.669578930823604],[-119.29516596676118,37.66954834194707],[-119.29516717292098,37.66951770293759],[-119.2951670713241,37.66948704903704],[-119.29516566208895,37.66945641550432],[-119.29516294683809,37.66942583757495],[-119.29515892869627,37.66939535042038],[-119.29515361228685,37.66936498910762],[-119.2951470037265,37.66933478855894],[-119.29514338502106,37.66933212828537],[-119.29513988323467,37.669329370915676],[-119.29513650248813,37.669326519694714],[-119.29513324675993,37.66932357797776],[-119.29513011988128,37.66932054922661],[-119.29512712553189,37.669317437005446],[-119.29512426723547,37.669314244976725],[-119.29512154835554,37.669310976896746],[-119.29511897209173,37.66930763661139],[-119.29511654147568,37.66930422805145],[-119.2951142593677,37.669300755228086],[-119.29511212845331,37.669297222228074],[-119.29511015124017,37.669293633209],[-119.29510833005497,37.669289992394376],[-119.29510666704086,37.66928630406867],[-119.29510516415483,37.6692825725723],[-119.29510382316545,37.66927880229638],[-119.2951026456507,37.669274997677746],[-119.29510163299628,37.66927116319363],[-119.29510078639385,37.66926730335643],[-119.29510010683964,37.66926342270828],[-119.2950995951333,37.66925952581594],[-119.295099251877,37.66925561726519],[-119.29509907747462,37.66925170165557],[-119.2950990721314,37.669247783594905],[-119.2950992358536,37.66924386769392],[-119.29509956844849,37.66923995856079],[-119.29510006952471,37.66923606079572],[-119.29510073849254,37.66923217898555],[-119.29510157456468,37.669228317698334],[-119.29510257675732,37.669224481477976],[-119.29510374389099,37.669220674838876],[-119.29510507459224,37.66921690226064],[-119.29510656729508,37.66921316818277],[-119.29510822024291,37.66920947699947],[-119.29511003149054,37.66920583305447],[-119.29511199890646,37.66920224063591],[-119.29511412017551,37.669198703971276],[-119.29511639280133,37.66919522722247],[-119.29518575315001,37.669090797777756],[-119.29525231532408,37.66898522401585],[-119.29528721170082,37.66893081305115],[-119.29532447818359,37.668877404416335],[-119.29536406926724,37.668825063320185],[-119.29540593660866,37.66877385366785],[-119.29545002908596,37.66872383798303],[-119.29549629286078,37.66867507733145],[-119.29554467144412,37.66862763124647],[-119.29559510576527,37.66858155765632],[-119.29564753424395,37.668536912813416],[-119.29570189286552,37.66849375122569],[-119.29575811525916,37.66845212559001],[-119.29581613277882,37.66841208672792],[-119.29587587458713,37.66837368352353],[-119.29589816137786,37.66836567662656],[-119.29592008644977,37.66835706179113],[-119.29594162356766,37.66834784932567],[-119.2959627469606,37.66833805025375],[-119.29598343135271,37.66832767630083],[-119.29600365199343,37.668316739880204],[-119.29602338468723,37.668305254078355],[-119.29604260582242,37.668293232639016],[-119.29606129239947,37.668280689946876],[-119.29607942205854,37.66826764101038],[-119.29609697310622,37.668254101443694],[-119.2961229795647,37.66823260739017],[-119.29614804285393,37.66821041662996],[-119.29617213345479,37.66818755529967],[-119.29619522299396,37.6681640503257],[-119.2962172842772,37.6681399293925],[-119.2962382913215,37.66811522091004],[-119.2962582193856,37.668089953980186],[-119.29627704499909,37.668064158362604],[-119.29629474599024,37.66803786443959],[-119.29631130151182,37.6680111031803],[-119.29632669206592,37.66798390610433],[-119.2963408995267,37.66795630524448],[-119.29635390716197,37.667928333109195],[-119.29636569965263,37.6679000226441],[-119.29637744430286,37.66787182156604],[-119.29639039534764,37.66784395625993],[-119.29640453763436,37.667816459324904],[-119.29641985461694,37.66778936292916],[-119.29643632837504,37.667762698772314],[-119.29645393963507,37.66773649804819],[-119.29647266779283,37.66771079140847],[-119.29649249093752,37.66768560892681],[-119.29651338587742,37.667660980063594],[-119.29653532816698,37.66763693363152],[-119.29655829213551,37.66761349776189],[-119.2965822509171,37.667590699871695],[-119.29660717648217,37.66756856663159],[-119.29663303967014,37.66754712393458],[-119.29665981022369,37.66752639686584],[-119.29668745682402,37.667506409673315],[-119.29671594712758,37.66748718573943],[-119.29674524780384,37.66746874755362],[-119.29675659075964,37.667458860356554],[-119.29676835647173,37.667449290428415],[-119.29678053090498,37.66744004918491],[-119.29679309953666,37.66743114764969],[-119.29680604737388,37.6674225964411],[-119.29681935897135,37.6674144057597],[-119.29683301844997,37.6674065853759],[-119.29684700951559,37.667399144618415],[-119.29686131547862,37.6673920923631],[-119.29687591927376,37.667385437022396],[-119.29689080348052,37.66737918653528],[-119.29690595034393,37.66737334835776],[-119.29692134179564,37.667367929453995],[-119.29693695947564,37.667362936288086],[-119.29695278475403,37.667358374816196],[-119.29696879875326,37.66735425047955],[-119.29698498237074,37.66735056819799],[-119.29712036983491,37.66732342927624],[-119.29712528335108,37.66732217422495],[-119.29713024754808,37.667321052252426],[-119.29713525672369,37.667320064647456],[-119.29714030512396,37.66731921254445],[-119.29714538694991,37.667318496922235],[-119.29715049636417,37.66731791860282],[-119.29715562749767,37.66731747825051],[-119.29716077445639,37.66731717637111],[-119.29716593132814,37.66731701331141],[-119.29717109218934,37.66731698925868],[-119.29717625111182,37.667317104240574],[-119.29718140216967,37.66731735812501],[-119.29718653944597,37.66731775062035],[-119.29719165703962,37.66731828127577],[-119.2971967490722,37.667318949481675],[-119.2972018096946,37.66731975447052],[-119.29720683309378,37.667320695317656],[-119.2972118134995,37.667321770942344],[-119.29721569946513,37.66732236739498],[-119.29721955774792,37.66732306826741],[-119.2972233839088,37.66732387275326],[-119.29722717354561,37.66732477992695],[-119.29723092229821,37.667325788744705],[-119.29723462585353,37.66732689804589],[-119.29723827995055,37.667328106554194],[-119.297241880385,37.66732941287918],[-119.29724542301452,37.66733081551786],[-119.29724890376315,37.66733231285649],[-119.29725231862615,37.66733390317226],[-119.2972556636746,37.66733558463553],[-119.2972589350599,37.66733735531166],[-119.29726212901818,37.66733921316344],[-119.29726524187468,37.66734115605335],[-119.29726827004792,37.66734318174599],[-119.29727121005386,37.66734528791076],[-119.29727405850996,37.66734747212442],[-119.29727681213889,37.66734973187396],[-119.29727946777251,37.66735206455944],[-119.2972820223554,37.66735446749703],[-119.29729341392455,37.66736376348211],[-119.29730520168827,37.667372741922435],[-119.2973173716466,37.66738139215446],[-119.29732990934565,37.66738970390445],[-119.29734279989472,37.667397667300726],[-119.29735602798407,37.667405272885276],[-119.29736957790298,37.6674125116251],[-119.29738343355858,37.667419374922844],[-119.29739107632845,37.667420406152615],[-119.29739875959416,37.66742122545733],[-119.2974064740588,37.66742183184562],[-119.29741421038767,37.66742222458374],[-119.29742195921958,37.66742240319646],[-119.29742971117825,37.66742236746765],[-119.29743745688366,37.66742211744057],[-119.29744518696324,37.66742165341774],[-119.29745289206346,37.66742097596063],[-119.29746056286095,37.66742008588901],[-119.29746819007381,37.667418984279855],[-119.29747576447298,37.66741767246615],[-119.29748327689319,37.66741615203526],[-119.29749071824426,37.66741442482687],[-119.297498079522,37.66741249293101],[-119.29750535181903,37.667410358685295],[-119.29751252633574,37.667408024672206],[-119.29751959439075,37.667405493715975],[-119.29752654743163,37.66740276887913],[-119.29753337704499,37.66739985345876],[-119.29754007496682,37.66739675098261],[-119.29754663309257,37.66739346520476],[-119.29755304348672,37.66739000010106],[-119.29755929839254,37.66738635986437],[-119.29765008242263,37.66733339131096],[-119.29774297556038,37.66728278627671],[-119.29783788046342,37.66723459778818],[-119.29793469768192,37.66718887633967],[-119.29803332576289,37.667145669840345],[-119.29813366135625,37.667105023563906],[-119.29814627981933,37.667104073534865],[-119.29815885047185,37.66710278375002],[-119.29817135884082,37.66710115569433],[-119.29818379052493,37.66709919124224],[-119.29819613121124,37.667096892655486],[-119.29820836669147,37.66709426258049],[-119.29822048287855,37.66709130404534],[-119.29823246582275,37.66708802045634],[-119.29824430172776,37.667084415593926],[-119.2982559769665,37.667080493608545],[-119.29826747809696,37.66707625901565],[-119.29827879187755,37.667071716690714],[-119.29828990528242,37.66706687186341],[-119.29830080551635,37.66706173011176],[-119.29831148002964,37.66705629735562],[-119.29832191653246,37.66705057984989],[-119.29833210300902,37.667044584177276],[-119.29834202773132,37.66703831724083],[-119.29835167927287,37.667031786255805],[-119.2983610465216,37.66702499874156],[-119.29837011869283,37.66701796251271],[-119.29837888534158,37.66701068567032],[-119.29838733637465,37.66700317659238],[-119.29849705427135,37.66689950192224],[-119.2986032160585,37.66679351362609],[-119.29862327050033,37.66677363772497],[-119.29864416550778,37.666754316728664],[-119.29866587679923,37.666735573089056],[-119.29868837914447,37.666717428587184],[-119.29871164639422,37.66669990430778],[-119.29873565151036,37.66668302061485],[-119.29876036659734,37.66666679712802],[-119.2987857629347,37.66665125269968],[-119.29881181101041,37.66663640539313],[-119.29883848055515,37.66662227246158],[-119.29886574057737,37.66660887032807],[-119.29889355939957,37.66659621456646],[-119.29892190469488,37.666584319883235],[-119.29895074352463,37.6665732001005],[-119.29898004237684,37.6665628681399],[-119.29900976720488,37.66655333600757],[-119.2990398834672,37.66654461478019],[-119.29907035616746,37.666536714592155],[-119.29910114989514,37.66652964462384],[-119.29913222886664,37.66652341309077],[-119.29916355696704,37.666518027234204],[-119.29919509779188,37.66651349331274],[-119.29922681468956,37.666509816594946],[-119.29925867080384,37.6665070013533],[-119.2992906291168,37.666505050859215],[-119.29932265249171,37.66650396737925],[-119.29935470371625,37.66650375217243],[-119.29938674554576,37.666504405488844],[-119.2994187407465,37.666505926569286],[-119.29947507063326,37.6664970307836],[-119.2995309740475,37.666486572284796],[-119.29958638240323,37.666474563904046],[-119.29964122772195,37.66646102037411],[-119.29969544271611,37.66644595831103],[-119.29974896087143,37.66642939619398],[-119.29980171652886,37.66641135434245],[-119.29985364496486,37.66639185489134],[-119.29990468247097,37.66637092176383],[-119.29995476643188,37.66634858064196],[-119.30000383540242,37.66632485893526],[-119.30005182918272,37.66629978574688],[-119.30009868889228,37.666273391838175],[-119.30014435704209,37.666245709590676],[-119.3001887776052,37.666216772966536],[-119.30023189608546,37.66618661746682],[-119.30027365958439,37.666155280087935],[-119.30031401686608,37.666122799276195],[-119.30035291842,37.66608921488075],[-119.30039031652178,37.66605456810456],[-119.30050470486185,37.66596670625211],[-119.30061514345675,37.665875707182906],[-119.30072149624074,37.665781683024356],[-119.30082363218395,37.66568474963078],[-119.30082990664246,37.665678788465364],[-119.30083643283632,37.665673000615016],[-119.30084320319463,37.66566739279398],[-119.30085020986337,37.66566197150767],[-119.30085744471428,37.665656743045126],[-119.30086489935447,37.665651713471675],[-119.30087256513609,37.66564688862188],[-119.30088043316628,37.66564227409291],[-119.30088849431768,37.66563787523787],[-119.30089673923878,37.66563369715972],[-119.30090515836501,37.66562974470524],[-119.3009137419296,37.66562602245953],[-119.30092247997516,37.66562253474062],[-119.30093136236498,37.66561928559445],[-119.30094037879492,37.66561627879025],[-119.30094951880544,37.66561351781605],[-119.30095877179356,37.66561100587478],[-119.30096812702527,37.665608745880384],[-119.30097757364793,37.665606740454656],[-119.30098710070293,37.66560499192397],[-119.30099669713827,37.66560350231671],[-119.30100635182163,37.66560227336093],[-119.30101605355294,37.66560130648229],[-119.30102579107765,37.6656006028024],[-119.30103555309968,37.6656001631376],[-119.30104532829453,37.66559998799789],[-119.30105510532239,37.66560007758649],[-119.30107937285796,37.66560029729016],[-119.30110363557675,37.66559985458791],[-119.30112786487415,37.66559875000163],[-119.30115203218493,37.665596984833584],[-119.30117610901692,37.66559456116485],[-119.30120006698466,37.6655914818528],[-119.30122387784282,37.665587750527806],[-119.30124751351957,37.6655833715889],[-119.30127094614951,37.66557835019869],[-119.30129414810676,37.665572692277145],[-119.30131709203731,37.665566404494655],[-119.30133975089147,37.66555949426427],[-119.30136209795556,37.66555196973278],[-119.30138410688359,37.66554383977126],[-119.30140575172818,37.66553511396456],[-119.3014270069713,37.66552580259994],[-119.30144784755417,37.665515916655075],[-119.30146824890694,37.66550546778497],[-119.30148818697765,37.66549446830835],[-119.3015076382605,37.66548293119304],[-119.30152657982369,37.66547087004066],[-119.30154498933629,37.66545829907074],[-119.30156284509478,37.665445233103775],[-119.30158012604844,37.66543168754384],[-119.30159681182425,37.66541767836043],[-119.30161288275096,37.665403222069614],[-119.30162831988216,37.66538833571454],[-119.3016468448251,37.6653704555303],[-119.30166611160783,37.66535307782449],[-119.30168609867619,37.66533622203752],[-119.30170678367016,37.66531990702593],[-119.3017281434491,37.665304151041276],[-119.30175015411747,37.66528897170972],[-119.30177279105165,37.66527438601233],[-119.30179602892746,37.66526041026598],[-119.30181984174851,37.66524706010533],[-119.30184420287526,37.665234350465084],[-119.30188363279939,37.665215272554846],[-119.30192386967411,37.665197290857535],[-119.30196486529096,37.665180426917054],[-119.30200657053264,37.665164700938135],[-119.30204893543163,37.66515013176206],[-119.30209190923031,37.66513673684412],[-119.30213544044146,37.66512453223278],[-119.30217947691025,37.66511353255033],[-119.30222396587652,37.66510375097547],[-119.30226885403799,37.6650951992275],[-119.30231408761425,37.665087887552204],[-119.30235961241104,37.665081824709674],[-119.30240537388529,37.66507701796376],[-119.30245131721034,37.66507347307348],[-119.30249738734175,37.66507119428585],[-119.3025435290831,37.665070184331135],[-119.30258968715226,37.66507044441934],[-119.30263580624748,37.66507197423885],[-119.30268183111374,37.66507477195681],[-119.30272770660888,37.66507883422127],[-119.30277337776965,37.66508415616525],[-119.30281878987766,37.66509073141258],[-119.3028638885248,37.66509855208545],[-119.30290861967845,37.66510760881398],[-119.30295292974624,37.6651178907473],[-119.30299676564027,37.66512938556667],[-119.30304007484067,37.66514207950018],[-119.30308446305115,37.66515510745349],[-119.30312937869415,37.665166938054526],[-119.30317477067513,37.66517755784511],[-119.30322058735747,37.66518695474442],[-119.3032667766215,37.66519511806282],[-119.30331328592362,37.665202038513904],[-119.30336006235606,37.665207708225196],[-119.30340705270716,37.665212120746915],[-119.3034542035219,37.665215271059516],[-119.30350146116268,37.66521715557928],[-119.30354877187037,37.66521777216244],[-119.30359608182539,37.66521712010754],[-119.30364333720918,37.66521520015641],[-119.30369048426512,37.665212014493065],[-119.30373746935987,37.665207566741486],[-119.30378423904442,37.6652018619613],[-119.30382559610352,37.66519683935144],[-119.30386714909345,37.6651929713969],[-119.30390884701677,37.66519026284477],[-119.30395063869831,37.6651887170192],[-119.30399247284777,37.66518833581737],[-119.30403429812279,37.66518911970711],[-119.30407606319184,37.665191067726376],[-119.30411771679731,37.66519417748441],[-119.30415920781837,37.66519844516462],[-119.30420048533374,37.665203865529364],[-119.30424149868404,37.665210431926305],[-119.30428219753415,37.66521813629659],[-119.30432253193484,37.665226969184765],[-119.3043624523842,37.66523691975035],[-119.30440190988813,37.66524797578116],[-119.3044408560208,37.66526012370822],[-119.30447924298386,37.665273348622584],[-119.30451702366511,37.66528763429344],[-119.30460667354426,37.66532462735718],[-119.30469466068871,37.6653640626077],[-119.30478087985988,37.66540589287898],[-119.30486522793319,37.665450068140316],[-119.30494760402148,37.66549653555627],[-119.30502790959565,37.665545239549786],[-119.30510604860241,37.66559612186856],[-119.30518192757924,37.66564912165492],[-119.30525545576613,37.665704175518385],[-119.30528814565415,37.665728642249825],[-119.30532189195151,37.66575218521162],[-119.30535665337194,37.6657747755999],[-119.30539238738716,37.6657963857762],[-119.30542905027878,37.66581698930136],[-119.30546659719184,37.66583656096771],[-119.30550498218976,37.66585507683003],[-119.30554415831043,37.66587251423483],[-119.30558407762378,37.665888851848045],[-119.30562469129033,37.66590406968118],[-119.305665949621,37.66591814911571],[-119.3057078021379,37.665931072925915],[-119.3057501976361,37.66594282529991],[-119.30579308424622,37.66595339185904],[-119.30583640949803,37.665962759675445],[-119.30588012038449,37.66597091728788],[-119.30592416342674,37.665977854715756],[-119.30596848473951,37.66598356347135],[-119.30601303009695,37.66598803657012],[-119.30605774499915,37.66599126853941],[-119.30610257473869,37.66599325542497],[-119.30614746446764,37.665993994795905],[-119.30619235926468,37.66599348574763],[-119.30623720420232,37.665991728902924],[-119.30628194441397,37.66598872641127],[-119.3063265251613,37.6659844819461],[-119.30637089190105,37.6659790007004],[-119.30641499035185,37.66597228938035],[-119.30645876656057,37.665964356197],[-119.30650216696846,37.66595521085639],[-119.30654513847648,37.66594486454758],[-119.30658762851053,37.66593332992894],[-119.30662958508559,37.665920621112726],[-119.30667095686937,37.66590675364778],[-119.30671169324515,37.66589174450047],[-119.30675174437373,37.665875612034014],[-119.30679106125432,37.66585837598595],[-119.30682959578462,37.66584005744394],[-119.30686730081958,37.665820678820104],[-119.30690413022906,37.66580026382347],[-119.30694003895447,37.66577883743102],[-119.30697498306358,37.665756425857126],[-119.30783058268014,37.66517156223796],[-119.3086654667564,37.664568082395284],[-119.30872772462733,37.66452333464755],[-119.30879182451667,37.664480261774784],[-119.30885769515663,37.664438911664426],[-119.30892526331111,37.66439933028837],[-119.30899445385714,37.664361561652115],[-119.30906518986832,37.66432564774571],[-119.30913739270052,37.664291628497125],[-119.30921098207907,37.66425954172782],[-119.30928587618811,37.66422942311079],[-119.30936199176163,37.66420130613081],[-119.30943924417582,37.66417522204734],[-119.30951754754338,37.6641511998596],[-119.30959681480874,37.664129266274585],[-119.30967695784503,37.66410944567713],[-119.30975788755197,37.664091760102984],[-119.3101056181211,37.66401633017145],[-119.31045039008178,37.66393275821175],[-119.31079190180193,37.663841117341065],[-119.31276199868618,37.66329530434583],[-119.312843551054,37.66327185167772],[-119.31292406966219,37.663246241037335],[-119.31300346418061,37.66321850115636],[-119.31308164554068,37.663188663155196],[-119.313158526035,37.663156760508],[-119.31323401941593,37.66312282900516],[-119.3133080409923,37.66308690671308],[-119.31338050772447,37.663049033931486],[-119.31345133831752,37.66300925314827],[-119.31352045331234,37.6629676089917],[-119.31358777517491,37.66292414818043],[-119.31365322838322,37.66287891947107],[-119.31371673951203,37.662831973603446],[-119.31377823731525,37.66278336324367],[-119.31383415861971,37.66273604698662],[-119.31388799130826,37.662687223894075],[-119.3139396711786,37.66263695219753],[-119.31398913659643,37.662585291856104],[-119.31403632856902,37.66253230448507],[-119.31408119081559,37.662478053282214],[-119.3141236698343,37.66242260295273],[-119.31416371496616,37.662366019631676],[-119.31420127845537,37.66230837080537],[-119.31423631550634,37.66224972523076],[-119.31426878433686,37.662190152853455],[-119.31429864622827,37.66212972472426],[-119.31432586557132,37.66206851291446],[-119.31435040990873,37.66200659042984],[-119.31437224997389,37.6619440311236],[-119.31439135972566,37.66188090960827],[-119.31440771637946,37.661817301166764],[-119.31442130043439,37.661753281662456],[-119.3144320956965,37.661688927448864],[-119.31444008929797,37.66162431527849],[-119.31444527171253,37.66155952221126],[-119.31445440944289,37.66144454221354],[-119.31446841895134,37.66132987255067],[-119.31448728428178,37.66121564364128],[-119.31451098395566,37.66110198540211],[-119.3145394909965,37.6609890271003],[-119.31457277296069,37.660876897206386],[-119.31461079197445,37.66076572324807],[-119.31465350477701,37.66065563166532],[-119.31470086276993,37.660546747666594],[-119.3147528120724,37.66043919508633],[-119.31532660116048,37.65936117608267],[-119.31594563061775,37.658299096772815],[-119.31598264914126,37.65824088356724],[-119.3160221875789,37.65818372725877],[-119.31606419824986,37.65812769676592],[-119.31610863049274,37.65807285964949],[-119.31615543072658,37.65801928203126],[-119.31620454251544,37.65796702851413],[-119.31625590663658,37.65791616210431],[-119.31630946115185,37.65786674413534],[-119.31636514148228,37.65781883419411],[-119.31642288048606,37.657772490049155],[-119.31648260853956,37.65772776758076],[-119.31654425362113,37.6576847207139],[-119.31660774139802,37.65764340135295],[-119.31667299531604,37.65760385931933],[-119.31673993669186,37.657566142291266],[-119.31680848480778,37.65753029574643],[-119.31687855700918,37.65749636290711],[-119.3169830809621,37.6574457335018],[-119.3170853153445,37.65739223082513],[-119.31718513524868,37.65733592024807],[-119.31728241871781,37.6572768705722],[-119.31737704689498,37.65721515394563],[-119.31746890416846,37.65715084577485],[-119.31755787831291,37.65708402463254],[-119.31764386062652,37.65701477216154],[-119.31772674606376,37.65694317297509],[-119.31780643336384,37.656869314553404],[-119.31788282517428,37.65679328713682],[-119.31846002719179,37.656216639522654],[-119.31905959475138,37.65565460447498],[-119.31925899421742,37.65546755981661],[-119.31945078748369,37.655275553644564],[-119.31963477941221,37.65507878137275],[-119.31981078280936,37.65487744326414],[-119.31997861861602,37.65467174422697],[-119.32013811608996,37.65446189360596],[-119.32028911297903,37.6542481049693],[-119.32043145568642,37.65403059589108],[-119.32045434628321,37.65396693378884],[-119.32047971339594,37.65390386781118],[-119.32050753252972,37.65384145884007],[-119.32053777682275,37.65377976712312],[-119.32057041707222,37.6537188522153],[-119.32060542176265,37.65365877292167],[-119.32064275709624,37.653599587240336],[-119.32065682639966,37.65357899835378],[-119.32067178169459,37.653558808090736],[-119.32068760513546,37.65353904054253],[-119.32070427784086,37.65351971929608],[-119.32072177991604,37.65350086740571],[-119.32074009047672,37.65348250736571],[-119.32075918767393,37.653464661083504],[-119.32077904872018,37.653447349853444],[-119.32079964991654,37.65343059433144],[-119.32082096668104,37.65341441451031],[-119.3208429735779,37.65339882969596],[-119.3208656443479,37.65338385848427],[-119.32088895193979,37.65336951873898],[-119.32091286854246,37.653355827570365],[-119.32093736561819,37.65334280131478],[-119.32096241393667,37.65333045551521],[-119.32098798360994,37.65331880490271],[-119.32183542514302,37.65293656852484],[-119.3226701676301,37.65253706413724],[-119.32270458587922,37.652519440310805],[-119.32273821205911,37.65250087505114],[-119.32277100545215,37.652481390839064],[-119.3228029263493,37.652461011268095],[-119.32283393609812,37.652439761015984],[-119.3228639971496,37.65241766581473],[-119.32289307310351,37.652394752419454],[-119.32292112875275,37.65237104857605],[-119.32294813012561,37.652346582987484],[-119.32297404452724,37.652321385279144],[-119.32299884057906,37.652295485962895],[-119.32302248825671,37.65226891640011],[-119.32304495892666,37.65224170876378],[-119.32306622538053,37.652213895999466],[-119.32308626186833,37.65218551178548],[-119.3231050441294,37.65215659049197],[-119.32312254942201,37.65212716713948],[-119.3231387565507,37.652097277356454],[-119.32315364589202,37.65206695733602],[-119.3231671994183,37.65203624379224],[-119.32317940071947,37.65200517391574],[-119.32319023502284,37.65197378532842],[-119.32323097106156,37.651855378148255],[-119.32327661667155,37.65173810853593],[-119.32332712175459,37.65162210514117],[-119.32338243088218,37.651507495224024],[-119.32344248335643,37.65139440451521],[-119.32350721327671,37.651282957078315],[-119.32357654961204,37.65117327517366],[-119.32365041627912,37.65106547912417],[-119.32369987719666,37.65099859580674],[-119.3237520215059,37.650933013672535],[-119.32380679510472,37.65086880075724],[-119.32386414116382,37.650806023675905],[-119.32392400018564,37.65074474755384],[-119.32398631006613,37.650685035959135],[-119.32405100615918,37.65062695083666],[-119.32411802134364,37.65057055244385],[-119.3241872860931,37.65051589928817],[-119.32438387158552,37.650360635551785],[-119.32457387325327,37.650200274179994],[-119.32475708215019,37.65003499155945],[-119.32493329680564,37.64986496948879],[-119.32510232344623,37.64969039497831],[-119.32526397620865,37.64951146004441],[-119.32541807734407,37.649328361498085],[-119.32547810985332,37.64925152469645],[-119.32553476594704,37.64917308382899],[-119.32558797791607,37.64909313265454],[-119.32563768216858,37.64901176673687],[-119.32568381930601,37.64892908333039],[-119.32572633419404,37.648845181263965],[-119.32576517602847,37.648760160822775],[-119.32580029839582,37.6486741236284],[-119.32583165932877,37.64858717251736],[-119.3258592213564,37.64849941141813],[-119.32588295154866,37.64841094522707],[-119.32590282155596,37.64832187968282],[-119.32591880764271,37.64823232124008],[-119.32593089071584,37.64814237694225],[-119.32596520256011,37.64788015523482],[-119.32600909086202,37.64761883787576],[-119.32606251839272,37.647358645931455],[-119.32616703681767,37.646932192208304],[-119.32628874428383,37.64650863090825],[-119.32642751466156,37.646088399965734],[-119.32658320418632,37.645671933864485],[-119.32659620758707,37.6456370253215],[-119.32660770634367,37.645601784494055],[-119.326617687083,37.64556625237379],[-119.32662613819787,37.645530470291085],[-119.3266330498603,37.64549447986698],[-119.326638414033,37.64545832296485],[-119.32664222447877,37.64542204164158],[-119.32664447676764,37.6453856780988],[-119.32664516828208,37.645349274633666],[-119.32664429822005,37.64531287358973],[-119.32664186759587,37.6452765173076],[-119.32663787923902,37.64524024807587],[-119.32663233779095,37.645204108081735],[-119.32662524969955,37.64516813936207],[-119.3266166232116,37.64513238375438],[-119.32660646836341,37.64509688284828],[-119.32659479696883,37.64506167793708],[-119.32658162260574,37.64502680996972],[-119.3265669606001,37.644992319503146],[-119.32655082800812,37.64495824665523],[-119.32653324359659,37.644924631057926],[-119.32651422782078,37.64489151181136],[-119.32649380280084,37.644858927438264],[-119.3263745210382,37.64466836802091],[-119.32626375362038,37.64447458642783],[-119.32616163791555,37.64427782309418],[-119.32606830055416,37.644078322152836],[-119.3259838572721,37.6438763311314],[-119.32590841276746,37.64367210064501],[-119.32584206057089,37.64346588408527],[-119.32578488293,37.64325793730588],[-119.32561540710654,37.64251617652792],[-119.32547947200864,37.64177006251523],[-119.32537725127656,37.64102055388435],[-119.32535734910539,37.64080554517143],[-119.32534645034126,37.640590129048256],[-119.32534456696425,37.640374543849525],[-119.32535170097977,37.640159028094814],[-119.32536784441665,37.63994382022493],[-119.32539297933633,37.63972915833798],[-119.32542707785308,37.63951527992591],[-119.32547010216507,37.639302421611895],[-119.3255220045967,37.63909081888853],[-119.32558272765156,37.63888070585733],[-119.32565220407636,37.63867231496973],[-119.32571979865247,37.63847042164077],[-119.32577944828314,37.63826695121759],[-119.32583109508765,37.63806210135978],[-119.32587468896077,37.63785607106533],[-119.32591018762135,37.63764906047736],[-119.32593755665299,37.637441270689514],[-119.32595676953737,37.637232903550796],[-119.32596780767962,37.63702416146932],[-119.32598013418205,37.636807050024366],[-119.32600072810602,37.63659033532922],[-119.32602957046429,37.63637421643253],[-119.32606663469416,37.63615889183403],[-119.32610628243667,37.63597316403313],[-119.32615382989556,37.63578861272754],[-119.3262092222802,37.63560545035529],[-119.32627239577093,37.63542388775404],[-119.32634327759283,37.635244133918484],[-119.32642178609979,37.635066395759715],[-119.32650783086858,37.63489087786719],[-119.32660131280328,37.63471778227328],[-119.32670212424956,37.634547308220704],[-119.32681014911877,37.634379651933344],[-119.32704003048609,37.63413852459774],[-119.32728034146982,37.63390391718483],[-119.32753078984659,37.63367611488793],[-119.32779107107832,37.633455394625535],[-119.32806086868248,37.633242024704636],[-119.32833985461696,37.63303626449494],[-119.32862768967904,37.63283836411385],[-119.32892402391757,37.63264856412257],[-119.32933381962403,37.63238696742554],[-119.3297330149544,37.632115202677866],[-119.32974730332728,37.63210550085594],[-119.3297620003946,37.63209619318871],[-119.32977708897397,37.63208729055772],[-119.32979255142536,37.632078803370916],[-119.32980836967168,37.63207074155057],[-119.32982452521985,37.632063114521685],[-119.32984099918251,37.63205593120097],[-119.32985777230004,37.632049199986284],[-119.32987482496316,37.632042928747104],[-119.32989213723567,37.63203712481497],[-119.32990968887802,37.63203179497527],[-119.32992745937072,37.63202694545899],[-119.32994542793848,37.63202258193565],[-119.32996357357447,37.6320187095066],[-119.32998187506485,37.63201533269905],[-119.33000031101358,37.632012455460774],[-119.3300188598674,37.6320100811555],[-119.33003749994111,37.63200821255902],[-119.33005620944286,37.63200685185585],[-119.33007496649962,37.63200600063681],[-119.33009374918281,37.63200565989702],[-119.33011253553383,37.632005830034835],[-119.33013130358984,37.63200651085136],[-119.33015003140936,37.63200770155065],[-119.33016869709796,37.632009400740706],[-119.33018727883388,37.63201160643498],[-119.33020575489338,37.632014316054864],[-119.33022410367641,37.63201752643257],[-119.33024230373162,37.63202123381488],[-119.33026033378157,37.63202543386753],[-119.33027817274748,37.63203012168034],[-119.33029579977409,37.632035291772794],[-119.33031319425378,37.632040938100644],[-119.33033033585082,37.63204705406282],[-119.33034720452514,37.63205363250922],[-119.33053199054304,37.63212569406262],[-119.33071976757299,37.632192687306414],[-119.33082352246954,37.6322264063513],[-119.33092863191946,37.63225735851763],[-119.33103497929909,37.63228550946216],[-119.33114244661094,37.632310827949745],[-119.33125091461442,37.63233328588796],[-119.3313602629582,37.632352858358345],[-119.33147037031398,37.632369523644016],[-119.33158111451095,37.63238326325376],[-119.3316923726715,37.63239406194259],[-119.33180402134747,37.632401907728664],[-119.33191593665734,37.63240679190658],[-119.33202799442364,37.63240870905703],[-119.33231850823138,37.63240603475324],[-119.33260875476037,37.63239577216625],[-119.33289842068888,37.632377932374546],[-119.33318719332242,37.632352534636155],[-119.33326683177245,37.63234553499374],[-119.33334671724587,37.63234062883925],[-119.3334267627598,37.63233782151473],[-119.33350688115708,37.63233711607693],[-119.33358698520121,37.63233851329396],[-119.33366698767131,37.632342011644475],[-119.33374680145714,37.63234760731929],[-119.3338263396538,37.6323552942256],[-119.33390551565635,37.63236506399353],[-119.33398424325428,37.632376905985325],[-119.33406243672508,37.63239080730684],[-119.33414001092768,37.63240675282168],[-119.33421688139528,37.63242472516759],[-119.33429296442704,37.6324447047754],[-119.3347614548596,37.63257994326056],[-119.33522545452924,37.63272464487784],[-119.3352594056226,37.632735089696034],[-119.33529379216479,37.63274459092075],[-119.33532857270608,37.63275313709912],[-119.33536370532181,37.63276071792947],[-119.33539914766288,37.63276732427385],[-119.33543485700676,37.63277294816887],[-119.33547079030915,37.63277758283544],[-119.33550690425561,37.63278122268687],[-119.33554315531408,37.63278386333565],[-119.3355794997871,37.63278550159872],[-119.33561589386461,37.63278613550131],[-119.33565229367683,37.63278576427929],[-119.33568865534698,37.63278438838015],[-119.33572493504427,37.63278200946236],[-119.3357610890368,37.632778630393574],[-119.33579707374409,37.63277425524689],[-119.33583284578988,37.632768889296216],[-119.33586836205417,37.632762539009676],[-119.3359035797254,37.63275521204199],[-119.33593845635187,37.632746917225155],[-119.33597294989309,37.632737664557844],[-119.33600701877037,37.63272746519325],[-119.33604062191701,37.632716331425826],[-119.33607371882768,37.632704276676264],[-119.33610626960733,37.6326913154755],[-119.33613823501936,37.632677463446996],[-119.33676760618737,37.63240234618019],[-119.33740621462923,37.63214104263327],[-119.33805358112639,37.63189374885388],[-119.33870921990433,37.631660650376745],[-119.34059256742022,37.631043065632944],[-119.3413068723166,37.630830530590764],[-119.34203007539018,37.63063797221619],[-119.342761293811,37.630465625553605],[-119.34349963498497,37.63031370097463],[-119.34360427698304,37.63029519886525],[-119.3437096468414,37.63027952603941],[-119.34381562366016,37.63026670047984],[-119.34392208584306,37.63025673690236],[-119.34402891123725,37.630249646739024],[-119.34413597727318,37.63024543812495],[-119.34424316110534,37.63024411588903],[-119.34435033975306,37.63024568154838],[-119.34445739024164,37.630250133306575],[-119.34456418974335,37.63025746605574],[-119.34467061571841,37.63026767138244],[-119.3447765460554,37.63028073757723],[-119.3448818592115,37.63029664964821],[-119.34580662082436,37.63045307579374],[-119.34600832427503,37.63048518445108],[-119.34621127713329,37.630511852697325],[-119.34641524746118,37.63053305005541],[-119.34662000215728,37.63054875230052],[-119.34682530722323,37.63055894148781],[-119.34703092803134,37.63056360597282],[-119.34723662959289,37.630562740424864],[-119.34744217682675,37.630556345833114],[-119.34764733482832,37.63054442950546],[-119.34785186913813,37.630527005060166],[-119.34805554600979,37.63050409241025],[-119.34825813267744,37.63047571774083],[-119.34845939762185,37.630441913479025],[-119.34865911083513,37.63040271825698],[-119.34885704408374,37.630358176867695],[-119.34905297116954,37.630308340213766],[-119.34924666818831,37.63025326524913],[-119.34943791378569,37.63019301491412],[-119.34962648941055,37.63012765806328],[-119.34981217956455,37.63005726938677],[-119.34999477204866,37.62998192932494],[-119.35017405820577,37.62990172397636],[-119.35034983315911,37.62981674499928],[-119.35052189604659,37.62972708950701],[-119.35069005025031,37.629632859956715],[-119.35085410362133,37.62953416403237],[-119.35300352856717,37.62757640795657],[-119.35303663933261,37.62754819507638],[-119.35307094795785,37.627520902583505],[-119.35310641402198,37.627494562631675],[-119.3531429957407,37.62746920625248],[-119.35318065001536,37.627444863318594],[-119.35321933248393,37.62742156250886],[-119.35325899757318,37.62739933127417],[-119.3532995985523,37.62737819580549],[-119.3533410875881,37.6273581810027],[-119.35338341580126,37.62733931044548],[-119.3534265333239,37.627321606365385],[-119.35347038935838,37.627305089619725],[-119.35351493223715,37.62728977966703],[-119.35356010948354,37.62727569454404],[-119.35360586787361,37.62726285084453],[-119.35365215349896,37.62725126369976],[-119.35369891183,37.62724094676055],[-119.3537460877804,37.62723191218137],[-119.35379362577183,37.627224170605885],[-119.3538414697996,37.627217731154445],[-119.35388956349843,37.62721260141342],[-119.35393785020896,37.62720878742616],[-119.3539862730445,37.62720629368594],[-119.35403477495802,37.62720512313062],[-119.35408329880929,37.627205277139275],[-119.35413178743227,37.62720675553045],[-119.35418018370243,37.62720955656243],[-119.35422843060398,37.62721367693533],[-119.35427647129715,37.62721911179493],[-119.35432424918501,37.62722585473837],[-119.35437170798023,37.627233897821824],[-119.35441879177135,37.62724323156965],[-119.35446544508861,37.62725384498576],[-119.3545257043245,37.62726933602831],[-119.35458527243259,37.62728643459319],[-119.35464408164344,37.627305121227764],[-119.35470206505082,37.62732537467283],[-119.35475915668783,37.62734717188651],[-119.35481529160202,37.6273704880707],[-119.35487040592913,37.62739529669914],[-119.3549244369658,37.6274215695476],[-119.35497732324103,37.62744927672604],[-119.35502900458584,37.6274783867126],[-119.35507942220201,37.62750886638937],[-119.35512851872868,37.6275406810802],[-119.3551762383079,37.62757379459002],[-119.35522252664796,37.627608169246116],[-119.35526733108527,37.62764376594086],[-119.35531060064417,37.627680544176364],[-119.35535228609507,37.6277184621104],[-119.35539234001033,37.627757476604046],[-119.3554307168183,37.62779754327079],[-119.3554673728552,37.62783861652699],[-119.35550226641466,37.627880649643714],[-119.3555982393199,37.628005338602165],[-119.35568871293717,37.62813260186325],[-119.3557735782079,37.62826228606154],[-119.35585273283068,37.62839423491325],[-119.3559260813844,37.62852828940465],[-119.35599353544345,37.62866428798362],[-119.35601615220807,37.62870988940144],[-119.35604074354396,37.6287548396611],[-119.35606727987744,37.628799084698606],[-119.35609572929525,37.628842571298115],[-119.35612605758301,37.62888524715585],[-119.35615822826632,37.628927060943134],[-119.35619220265468,37.628967962368],[-119.35622793988793,37.62900790223586],[-119.35626539698538,37.62904683250844],[-119.3563045288976,37.62908470636178],[-119.35634528856053,37.62912147824245],[-119.35638762695206,37.62915710392237],[-119.35643149315099,37.62919154055202],[-119.3564768343984,37.62922474671197],[-119.35652359616088,37.62925668246272],[-119.35657172219629,37.629287309392716],[-119.3566211546214,37.62931659066463],[-119.35667183398138,37.62934449105952],[-119.35669310828838,37.629355357576166],[-119.35671484097013,37.629365634335116],[-119.35673700619068,37.62937530911924],[-119.35675957759992,37.629384370427026],[-119.35678252836469,37.629392807486234],[-119.35680583120094,37.62940061026678],[-119.35682945840595,37.62940776949257],[-119.35685338189147,37.629414276652625],[-119.35687757321686,37.62942012401113],[-119.35690200362316,37.629425304616625],[-119.35692664406714,37.629429812310335],[-119.35695146525585,37.62943364173344],[-119.35697643768142,37.62943678833344],[-119.35700153165624,37.62943924836961],[-119.35702671734813,37.62944101891742],[-119.35705196481592,37.629442097872],[-119.35707724404493,37.629442483950676],[-119.35710252498278,37.629442176694496],[-119.35712777757503,37.62944117646869],[-119.35715297180094,37.62943948446235],[-119.35717807770916,37.629437102686985],[-119.35720306545339,37.62943403397409],[-119.35722790532769,37.6294302819718],[-119.35725256780209,37.629425851140546],[-119.35727702355743,37.62942074674778],[-119.35730124352028,37.6294149748617],[-119.35732519889763,37.62940854234402],[-119.35734886121104,37.62940145684183],[-119.35737220233037,37.62939372677846],[-119.35739519450749,37.62938536134356],[-119.35741781040907,37.62937637048206],[-119.35744002314911,37.62936676488246],[-119.35746180632091,37.629356555964016],[-119.35748313402856,37.629345755863255],[-119.35750398091754,37.62933437741943],[-119.35752432220507,37.629322434159455],[-119.35754413370938,37.629309940281566],[-119.35756339187863,37.62929691063864],[-119.35758207381873,37.629283360720514],[-119.35760015732075,37.62926930663541],[-119.35761655894821,37.62925656143716],[-119.3576335054228,37.62924427539008],[-119.35765097643532,37.629232463217974],[-119.35766895104811,37.62922113907668],[-119.35768740771991,37.629210316537176],[-119.35770632433184,37.62920000856933],[-119.35772567821384,37.629190227526344],[-119.35774544617188,37.62918098512989],[-119.3577656045156,37.62917229245619],[-119.35778612908705,37.62916415992259],[-119.35780699528915,37.62915659727524],[-119.35782817811565,37.629149613577226],[-119.35784965218075,37.62914321719792],[-119.35787139174967,37.62913741580278],[-119.35789337076949,37.629132216344225],[-119.35791556290037,37.62912762505335],[-119.35793794154705,37.629123647432415],[-119.35796047989075,37.629120288248174],[-119.35798315092136,37.62911755152635],[-119.35800592746975,37.629115440546606],[-119.35802878224032,37.62911395783881],[-119.35805168784378,37.629113105179776],[-119.35807461682992,37.6291128835914],[-119.35809754172048,37.62911329333919],[-119.35812043504212,37.62911433393212],[-119.35814326935933,37.629116004123155],[-119.35816601730731,37.629118301910715],[-119.35818865162476,37.62912122454109],[-119.35821114518653,37.62912476851181],[-119.35823347103617,37.62912892957574],[-119.3582556024182,37.629133702746245],[-119.35827751281016,37.629139082303084],[-119.35829917595441,37.6291450617994],[-119.35832056588964,37.629151634069295],[-119.35834165698185,37.62915879123649],[-119.35836242395521,37.62916652472382],[-119.35838284192234,37.62917482526334],[-119.358402886414,37.62918368290765],[-119.35842253340853,37.62919308704166],[-119.35849368451687,37.62922985766525],[-119.35856320819845,37.62926854739442],[-119.35863102265495,37.62930911071003],[-119.3586970480986,37.62935149988862],[-119.35876120684604,37.62939566505842],[-119.3588234234097,37.62944155425812],[-119.35888362458664,37.62948911349797],[-119.35894173954468,37.629538286823205],[-119.3589976999057,37.62958901638002],[-119.35905143982615,37.62964124248343],[-119.35906738537011,37.629656740292035],[-119.35908398810157,37.62967179525748],[-119.3591012285909,37.62968638976108],[-119.35911908666213,37.62970050672306],[-119.35913754141643,37.629714129622414],[-119.35915657125663,37.6297272425164],[-119.35917615391259,37.629739830059094],[-119.35919626646708,37.62975187751935],[-119.35921688538279,37.629763370798116],[-119.3592379865297,37.62977429644487],[-119.35925954521349,37.62978464167341],[-119.35928153620425,37.629794394376695],[-119.35930393376623,37.62980354314122],[-119.35932671168774,37.629812077260226],[-119.35934984331199,37.62981998674624],[-119.35937330156821,37.62982726234282],[-119.35939705900333,37.62983389553535],[-119.35942108781416,37.62983987856102],[-119.35944535987986,37.62984520441789],[-119.35946984679494,37.629849866873165],[-119.35949451990238,37.62985386047032],[-119.35951935032735,37.62985718053569],[-119.3595443090108,37.629859823183786],[-119.35956936674361,37.62986178532196],[-119.35959449420075,37.62986306465385],[-119.35961966197554,37.629863659682314],[-119.35964484061417,37.629863569710984],[-119.35967000065006,37.62986279484514],[-119.35969511263845,37.62986133599161],[-119.35972014719077,37.629859194857666],[-119.35974507500912,37.62985637394913],[-119.35976986692049,37.629852876567256],[-119.35979449391094,37.62984870680505],[-119.35981892715958,37.62984386954239],[-119.35984313807222,37.629838370440304],[-119.35987180031866,37.62983186455581],[-119.35990072807822,37.629826150149356],[-119.35992988680938,37.62982123404433],[-119.35995924169477,37.62981712211081],[-119.35998875768287,37.62981381925874],[-119.36001839952975,37.62981132943193],[-119.36004813184131,37.629809655603346],[-119.36007791911534,37.62980879977165],[-119.36010772578405,37.629808762958774],[-119.36013751625647,37.629809545208666],[-119.36016725496103,37.6298111455873],[-119.3601969063879,37.62981356218367],[-119.36022643513147,37.62981679211225],[-119.36025580593262,37.62982083151629],[-119.36028498372085,37.62982567557253],[-119.360313933656,37.629831318496855],[-119.36034262117008,37.629837753551236],[-119.36037101200832,37.629844973051874],[-119.36039907227027,37.6298529683782],[-119.36042676845011,37.62986172998329],[-119.36045406747671,37.629871247405276],[-119.36048093675319,37.629881509279755],[-119.36050734419574,37.629892503353354],[-119.36053325827199,37.62990421649847],[-119.3605586480386,37.629916634728865],[-119.36058348317829,37.629929743216316],[-119.36084347541336,37.63006766230709],[-119.36110854126207,37.6301993316338],[-119.36137844329099,37.63032463324061],[-119.36165293973045,37.63044345487554],[-119.3619317846913,37.630555690091306],[-119.36221472838523,37.6306612383406],[-119.36223748743475,37.63066978458243],[-119.36225985625214,37.63067895939594],[-119.36228180740163,37.6306887515282],[-119.36230331395981,37.63069914896901],[-119.36232434954849,37.63071013896586],[-119.3623448883671,37.630721708039395],[-119.36236490522437,37.63073384200001],[-119.36238437556909,37.630746525965286],[-119.36240327552042,37.63075974437821],[-119.36242158189702,37.63077348102619],[-119.36243927224557,37.63078771906111],[-119.36245632486822,37.63080244101978],[-119.36247271884933,37.63081762884552],[-119.36248843408106,37.63083326391025],[-119.36250345128792,37.630849327037296],[-119.36251775205069,37.63086579852499],[-119.36253131882872,37.63088265817075],[-119.36254413498159,37.630899885295904],[-119.36255618478953,37.630917458771094],[-119.36256745347268,37.63093535704208],[-119.36257792720922,37.63095355815624],[-119.36258759315226,37.63097203978957],[-119.36259643944571,37.6309907792739],[-119.36260445523877,37.6310097536248],[-119.36261163069923,37.63102893956979],[-119.36261795702556,37.63104831357682],[-119.3626234264577,37.63106785188315],[-119.36262803228654,37.63108753052455],[-119.36263176886223,37.6311073253646],[-119.36272935499001,37.63165557616678],[-119.36273970006222,37.63170432362893],[-119.36275217765039,37.63175275431662],[-119.36276677256141,37.63180080924289],[-119.3627834670232,37.63184842987833],[-119.36280224070643,37.63189555822243],[-119.36282307074912,37.63194213687411],[-119.36284593178468,37.6319881091017],[-119.36287079597257,37.63203341891207],[-119.36289763303232,37.63207801111876],[-119.36292641028041,37.63212183140925],[-119.36295709266996,37.63216482641114],[-119.3629896428335,37.63220694375709],[-119.36302402112845,37.63224813214864],[-119.36306018568533,37.63228834141874],[-119.36309809245884,37.6323275225928],[-119.36313769528144,37.63236562794836],[-119.36317894591959,37.63240261107323],[-119.36322179413249,37.63243842692205],[-119.36326618773325,37.63247303187112],[-119.36331207265249,37.632506383771556],[-119.3633593930042,37.63253844200061],[-119.36340809115373,37.63256916751123],[-119.36345810778808,37.63259852287955],[-119.36350938198807,37.63262647235046],[-119.3635618513026,37.6326529818813],[-119.36358659579683,37.63266454419285],[-119.36361182848194,37.63267541872964],[-119.363637519145,37.63268559247068],[-119.36366363702469,37.63269505323416],[-119.36369015084804,37.632703789691924],[-119.36371702886805,37.63271179138306],[-119.36374423890153,37.63271904872653],[-119.36377174836772,37.63272555303249],[-119.36379952432735,37.6327312965128],[-119.36382753352197,37.63273627229031],[-119.36385574241386,37.6327404744071],[-119.36388411722615,37.632743897831645],[-119.36391262398331,37.63274653846476],[-119.36394122855182,37.632748393144595],[-119.36396989668101,37.6327494596504],[-119.36399859404406,37.632749736705165],[-119.36402728627921,37.63274922397713],[-119.36405593903083,37.63274792208021],[-119.36408451799052,37.63274583257333],[-119.36411298893829,37.63274295795839],[-119.3641413177835,37.632739301677425],[-119.36416947060563,37.63273486810841],[-119.36419741369498,37.63272966256],[-119.36422511359297,37.632723691265305],[-119.3642525371323,37.632716961374165],[-119.36427965147651,37.63270948094489],[-119.36430642415944,37.632701258934425],[-119.3643328231241,37.63269230518763],[-119.36435881676096,37.63268263042558],[-119.36438437394587,37.63267224623263],[-119.36440946407731,37.63266116504266],[-119.36444277018973,37.632646459793605],[-119.36447670065975,37.63263268690123],[-119.36451121423782,37.63261986310924],[-119.36454626896551,37.63260800400751],[-119.36458182222664,37.63259712401311],[-119.36461783079899,37.632587236352826],[-119.36465425090687,37.63257835304708],[-119.36469103827439,37.63257048489523],[-119.36472814817911,37.63256364146263],[-119.3647655355067,37.63255783106876],[-119.36480315480544,37.63255306077731],[-119.3648409603417,37.632549336387484],[-119.36487890615551,37.63254666242702],[-119.36491694611627,37.63254504214663],[-119.36495503397904,37.632544477516106],[-119.36499312344064,37.63254496922185],[-119.36503116819587,37.63254651666606],[-119.36506912199397,37.63254911796758],[-119.36510693869468,37.63255276996398],[-119.36514457232441,37.632557468215566],[-119.36518197713212,37.63256320701067],[-119.36521910764489,37.6325699793727],[-119.36525591872326,37.63257777706849],[-119.36529236561604,37.63258659061843],[-119.36532840401472,37.632596409307915],[-119.3653639901074,37.63260722120038],[-119.36561660159342,37.632685036111006],[-119.36587163764133,37.63275767746536],[-119.36612893074799,37.632825097552086],[-119.3661615521097,37.63283279443989],[-119.36619448466664,37.63283960175542],[-119.36622769007631,37.63284551157304],[-119.36626112967862,37.632850517012116],[-119.3662947645407,37.63285461224495],[-119.36632855550234,37.632857792503565],[-119.36636246322163,37.63286005408527],[-119.36639644822061,37.632861394356965],[-119.36643047093143,37.63286181175819],[-119.36646449174226,37.63286130580299],[-119.36649847104356,37.63285987708042],[-119.36653236927404,37.63285752725392],[-119.3665661469668,37.632854259059336],[-119.36659976479544,37.63285007630173],[-119.36663318361947,37.632844983850994],[-119.36666636453037,37.63283898763612],[-119.36669926889644,37.63283209463837],[-119.36673185840807,37.632824312883066],[-119.36676409512228,37.63281565143029],[-119.36679594150687,37.63280612036435],[-119.36682736048404,37.63279573078201],[-119.36685831547378,37.63278449477954],[-119.36688877043629,37.63277242543873],[-119.36691868991394,37.63275953681156],[-119.36694803907271,37.63274584390388],[-119.3669767837425,37.6327313626579],[-119.36700489045717,37.63271610993372],[-119.36703232649333,37.63270010348958],[-119.36705905990853,37.632683361961305],[-119.36708505957843,37.632665904840486],[-119.36712319459548,37.632640307912105],[-119.36716241533146,37.63261577055628],[-119.36720267526238,37.63259232187876],[-119.36724392663164,37.63256998969403],[-119.36728612050685,37.63254880049204],[-119.36732920683765,37.632528779407046],[-119.3673731345153,37.632509950187625],[-119.36741785143313,37.63249233516858],[-119.36746330454841,37.63247595524444],[-119.3675094399453,37.632460829844696],[-119.36755620289871,37.63244697691075],[-119.36760353793929,37.6324344128746],[-119.36765138891917,37.63242315263937],[-119.36769969907859,37.63241320956166],[-119.36774841111311,37.6324045954357],[-119.36779746724177,37.63239732047932],[-119.36784680927549,37.632391393321875],[-119.36789637868603,37.63238682099401],[-119.36794611667557,37.63238360891927],[-119.3679959642463,37.63238176090775],[-119.36804586227045,37.63238127915148],[-119.36809575156045,37.63238216422195],[-119.36814557293901,37.632384415069275],[-119.3681952673095,37.63238802902359],[-119.3682447757258,37.63239300179809],[-119.36829403946241,37.632399327494234],[-119.36834300008404,37.63240699860868],[-119.3683915995148,37.6324160060421],[-119.36843978010725,37.632426339110154],[-119.36852047087385,37.632443669575856],[-119.36860185033512,37.63245882709696],[-119.3686838260002,37.63247179444632],[-119.36876630470033,37.63248255688599],[-119.36884919269505,37.63249110218398],[-119.36893239577856,37.63249742062818],[-119.36901581938679,37.632501505037375],[-119.3690993687051,37.632503350769504],[-119.36918294877583,37.63250295572678],[-119.36926646460637,37.63250032035816],[-119.36934982127725,37.632495447658904],[-119.3694329240498,37.63248834316703],[-119.36951567847409,37.63247901495711],[-119.36959799049612,37.63246747363106],[-119.36967976656483,37.63245373230609],[-119.36976091373847,37.63243780659986],[-119.36984133979023,37.63241971461256],[-119.36992095331301,37.632399476906485],[-119.36999966382349,37.63237711648261],[-119.3700773818648,37.63235265875448],[-119.37015401910834,37.63232613151922],[-119.37022948845416,37.63229756492602],[-119.37030370412995,37.63226699144185],[-119.37037658178855,37.63223444581455],[-119.37040487247192,37.63222244481541],[-119.37043262310858,37.63220967116474],[-119.37045980034833,37.63219614021375],[-119.3704863715302,37.63218186822382],[-119.37051230472163,37.63216687234682],[-119.3705375687568,37.63215117060466],[-119.37056213327416,37.632134781867435],[-119.37058596875286,37.632117725830916],[-119.37060904654832,37.63210002299282],[-119.37063133892653,37.63208169462809],[-119.37065281909747,37.63206276276348],[-119.37067346124724,37.63204325015101],[-119.3706932405692,37.63202318024052],[-119.37071213329358,37.632002577151674],[-119.37073011671627,37.631981465644834],[-119.37074716922598,37.631959871091375],[-119.37076327033012,37.63193781944315],[-119.3707784006797,37.6319153372013],[-119.37079254209225,37.63189245138443],[-119.37080567757393,37.63186918949615],[-119.37081779133979,37.63184557949197],[-119.37082886883286,37.63182164974575],[-119.3708388967415,37.63179742901555],[-119.37084786301551,37.63177294640912],[-119.37085575688057,37.63174823134892],[-119.37086256885114,37.63172331353668],[-119.37086829074191,37.6316982229178],[-119.37087291567764,37.6316729896453],[-119.37087643810132,37.63164764404366],[-119.37087885378102,37.63162221657225],[-119.37088015981476,37.63159673778883],[-119.37088035463414,37.63157123831279],[-119.37087943800618,37.63154574878837],[-119.3708774110336,37.631520299847814],[-119.37087427615349,37.63149492207454],[-119.37087003713428,37.631469645966455],[-119.3708646990714,37.63144450189919],[-119.37085826838097,37.631419520089736],[-119.37085075279217,37.631394730560054],[-119.37084216133796,37.63137016310091],[-119.37083250434418,37.6313458472363],[-119.37082179341712,37.63132181218772],[-119.37081004142965,37.631298086839266],[-119.37079726250566,37.631274699702765],[-119.37078347200307,37.6312516788836],[-119.37076868649551,37.631229052046876],[-119.37075292375224,37.63120684638423],[-119.37073620271684,37.63118508858116],[-119.37071854348453,37.63116380478487],[-119.37069996727787,37.631143020572964],[-119.37068049642136,37.63112276092261],[-119.37066015431458,37.63110305018063],[-119.37063896540407,37.63108391203408],[-119.37061695515392,37.63106536948199],[-119.37059415001522,37.631047444807606],[-119.37057057739425,37.63103015955158],[-119.37054626561952,37.6310135344862],[-119.37052124390773,37.63099758959033],[-119.37049554232873,37.63098234402545],[-119.37046919176926,37.63096781611265],[-119.37044222389596,37.63095402331054],[-119.37034885975875,37.63090083429462],[-119.37025779934854,37.630845176444176],[-119.37016914583027,37.63078711281871],[-119.37008299964124,37.63072670920339],[-119.36999945837722,37.63066403403427],[-119.36991861668196,37.63059915832091],[-119.36984056613994,37.63053215556587],[-119.3697653951726,37.63046310168137],[-119.3696931889383,37.63039207490329],[-119.36962402923558,37.63031915570251],[-119.36955799441078,37.63024442669373],[-119.36949515926919,37.63016797254184],[-119.36943559499024,37.630089879865984],[-119.36937936904711,37.63001023714141],[-119.36932654513004,37.62992913459921],[-119.36927718307446,37.629846664124116],[-119.36923133879309,37.62976291915025],[-119.3691890642127,37.62967799455547],[-119.3691535423738,37.62959895598546],[-119.36912139003678,37.62951901018808],[-119.36909264372099,37.629438247994635],[-119.3690673360756,37.629356761163635],[-119.3690454958427,37.62927464227666],[-119.36902714782455,37.62919198463309],[-119.36901231285547,37.62910888214406],[-119.3690010077784,37.62902542922586],[-119.36899324542549,37.62894172069257],[-119.3689890346039,37.62885785164835],[-119.36898838008567,37.62877391737943],[-119.3689912826024,37.62869001324583],[-119.36899773884444,37.628606234573],[-119.36900774146471,37.62852267654354],[-119.3690212790872,37.62843943408904],[-119.36903833631983,37.628356601782244],[-119.36905889377199,37.62827427372966],[-119.36908292807674,37.62819254346455],[-119.36911041191725,37.62811150384072],[-119.36914131405801,37.62803124692707],[-119.36917559938034,37.62795186390296],[-119.36921322892225,37.62787344495461],[-119.36925415992287,37.627796079172775],[-119.369298345871,37.627719854451314],[-119.36941173144503,37.627524047453555],[-119.36951655505878,37.62732524559879],[-119.36961269195763,37.62712368561943],[-119.36970002773407,37.62691960753032],[-119.36977845846336,37.626713254342796],[-119.36984789082717,37.62650487177547],[-119.36990824222427,37.62629470796129],[-119.36995944086856,37.626083013152154],[-119.37005293654238,37.625692917017865],[-119.37016167063845,37.62530532771416],[-119.37028553730208,37.62492062172173],[-119.37042441598508,37.624539172714826],[-119.37044264892555,37.624497155032685],[-119.37046264635235,37.62445564828119],[-119.37048438568539,37.624414699321626],[-119.3705078423781,37.62437435438551],[-119.37053298994505,37.62433465902226],[-119.37055979999202,37.62429565804789],[-119.37058824224795,37.624257395494375],[-119.37061828459922,37.624219914559966],[-119.37064989312582,37.624183257560404],[-119.37068303213967,37.62414746588111],[-119.37078347135461,37.62403562073501],[-119.37088860363629,37.62392653829867],[-119.37099830894515,37.623820343100824],[-119.37111246202272,37.623717156373694],[-119.3712309325346,37.62361709591448],[-119.37135358521925,37.62352027595102],[-119.3713898598693,37.62348991381218],[-119.37142485193205,37.62345861387656],[-119.3714585231089,37.62342641040318],[-119.37149083654722,37.62339333863997],[-119.37152175688058,37.62335943478519],[-119.37155125026747,37.62332473594781],[-119.37157928442842,37.62328928010689],[-119.37160582868123,37.62325310606996],[-119.37163085397457,37.623216253430655],[-119.3716543329198,37.62317876252523],[-119.37167623982094,37.62314067438856],[-119.37169655070271,37.62310203070905],[-119.37171524333688,37.62306287378314],[-119.3717322972665,37.623023246469],[-119.3717476938283,37.62298319213953],[-119.37176141617319,37.62294275463495],[-119.37177821463122,37.62289341253274],[-119.37179715627919,37.622844563960506],[-119.37181821828342,37.62279626779298],[-119.37184137525493,37.62274858223901],[-119.37186659927988,37.62270156477142],[-119.37189385995329,37.62265527205762],[-119.37192312441577,37.622609759891525],[-119.37195435739297,37.62256508312618],[-119.37198752123831,37.62252129560761],[-119.37202257597818,37.62247845011004],[-119.37205947936033,37.622436598272266],[-119.37209818690457,37.62239579053538],[-119.3721386519566,37.62235607608199],[-119.37218082574408,37.62231750277704],[-119.37222465743555,37.622280117109995],[-119.37227009420167,37.62224396413891],[-119.37231708127878,37.622209087436104],[-119.37236556203504,37.62217552903563],[-119.37241547803868,37.62214332938269],[-119.37246676912834,37.622112527284784],[-119.37251937348556,37.62208315986505],[-119.37253019641969,37.62208000205101],[-119.37254087399634,37.622076545314115],[-119.37255139317044,37.62207279387757],[-119.37256174109044,37.62206875232458],[-119.37257190511403,37.62206442559287],[-119.37258187282357,37.622059818968474],[-119.37259163204128,37.62205493807948],[-119.37260117084406,37.62204978888898],[-119.37261047757822,37.62204437768787],[-119.37261954087346,37.62203871108718],[-119.37262834965699,37.622032796009925],[-119.37263689316696,37.62202663968274],[-119.37264516096559,37.62202024962693],[-119.37265314295198,37.62201363364941],[-119.37266082937441,37.62200679983309],[-119.37266821084228,37.621999756527],[-119.37267527833757,37.62199251233614],[-119.37268202322578,37.62198507611088],[-119.37268843726667,37.621977456936285],[-119.37269451262416,37.621969664120826],[-119.37270024187593,37.621961707185186],[-119.37270561802255,37.62195359585054],[-119.37271063449599,37.621945340026706],[-119.37271528516759,37.621936949799974],[-119.37271956435568,37.621928435420855],[-119.37272346683241,37.621919807291555],[-119.37272698783015,37.62191107595327],[-119.37273012304743,37.62190225207322],[-119.37273286865396,37.62189334643173],[-119.37273522129554,37.62188436990898],[-119.37274412566317,37.62185038537349],[-119.37275451286132,37.6218166681618],[-119.37276637028171,37.62178325919447],[-119.37277968353169,37.62175019901794],[-119.37279443645191,37.62171752775524],[-119.37281061113585,37.621685285057374],[-119.37282818795146,37.62165351005516],[-119.37284714556525,37.62162224131184],[-119.37286746096791,37.62159151677601],[-119.37288910950242,37.62156137373595],[-119.37291206489394,37.621531848774104],[-119.37293629928163,37.62150297772268],[-119.37296178325262,37.62147479562035],[-119.3729884858775,37.62144733666956],[-119.37301637474809,37.62142063419509],[-119.37304541601661,37.62139472060368],[-119.37307557443685,37.6213696273445],[-119.37328887812484,37.62119317205456],[-119.37349564586084,37.62101186180603],[-119.37369570310231,37.62082584969376],[-119.37384830420172,37.62068400253145],[-119.37400607118417,37.62054577752476],[-119.3741688682067,37.620411293665576],[-119.37418001731083,37.620402036898746],[-119.37419075965146,37.62039248066327],[-119.37420108252319,37.62038263626173],[-119.37421097371686,37.62037251533757],[-119.37422042153389,37.620362129861334],[-119.37422941480008,37.620351492116335],[-119.37423794287889,37.6203406146844],[-119.37424599568394,37.62032951043071],[-119.37425356369103,37.6203181924888],[-119.3742606379494,37.62030667424489],[-119.37426721009223,37.62029496932212],[-119.37427327234657,37.62028309156443],[-119.3742788175426,37.62027105502012],[-119.37428383912201,37.62025887392535],[-119.37428833114586,37.620246562687214],[-119.37429228830149,37.62023413586672],[-119.37429570590889,37.62022160816156],[-119.37429857992616,37.62020899438877],[-119.37430090695439,37.62019630946715],[-119.3743026842416,37.62018356839964],[-119.374303909686,37.62017078625562],[-119.37430458183849,37.62015797815299],[-119.37430469990439,37.62014515924038],[-119.37430426374432,37.62013234467919],[-119.37430327387443,37.620119549625684],[-119.37430173146579,37.620106789212954],[-119.37429963834293,37.620094078533256],[-119.3742969969817,37.62008143261993],[-119.37429381050649,37.62006886642968],[-119.37429008268623,37.62005639482501],[-119.37428581793027,37.62004403255645],[-119.37428102128291,37.62003179424529],[-119.37426853844397,37.61999995155553],[-119.37425743490543,37.61996778728453],[-119.37424772371077,37.61993533922137],[-119.37423941626761,37.61990264548857],[-119.37423252233432,37.619869744497194],[-119.37422705000854,37.61983667490176],[-119.37422300571765,37.61980347555483],[-119.37422039421125,37.61977018546139],[-119.3742192185556,37.6197368437329],[-119.37421948013002,37.61970348954151],[-119.37422215798897,37.61965125068512],[-119.37422711601643,37.61959911737533],[-119.37423434822071,37.61954715256447],[-119.37424384586396,37.619495419001346],[-119.37425559747288,37.619443979155406],[-119.37426958885251,37.61939289514116],[-119.37428580310345,37.61934222864352],[-119.3743042206422,37.61929204084296],[-119.374324819225,37.619242392341874],[-119.37434757397445,37.6191933430913],[-119.37437245740986,37.61914495231855],[-119.37439943948021,37.61909727845575],[-119.37442848760061,37.6190503790692],[-119.37445956669157,37.619004310789926],[-119.37449263922144,37.61895912924526],[-119.37452766525168,37.618914888991775],[-119.37456460248515,37.618871643449275],[-119.37475283770614,37.61866594344366],[-119.37494877622977,37.61846484675933],[-119.37515224019785,37.61826853587374],[-119.37536304492795,37.61807718892018],[-119.37558099908098,37.617890979526386],[-119.37580590483502,37.61771007665691],[-119.37582604704399,37.617696031393486],[-119.37584556803972,37.617681441683246],[-119.37586444457685,37.61766632489974],[-119.37588265417743,37.61765069904415],[-119.37590017515772,37.617634582723866],[-119.37591698665413,37.617617995130345],[-119.37593306864788,37.617600956016126],[-119.37594840198895,37.61758348567151],[-119.37596296841888,37.61756560490027],[-119.37597675059243,37.61754733499485],[-119.37598973209842,37.617528697711116],[-119.37600189747896,37.61750971524238],[-119.37601323224821,37.61749041019298],[-119.37602372290935,37.61747080555133],[-119.3760333569708,37.61745092466267],[-119.37604212296098,37.61743079120109],[-119.37605001044213,37.61741042914144],[-119.37605701002258,37.61738986273082],[-119.376063113368,37.617369116459564],[-119.37606831321133,37.61734821503224],[-119.37607260336137,37.61732718333811],[-119.37607597871025,37.617306046421554],[-119.37607843523936,37.61728482945223],[-119.37607997002432,37.61726355769509],[-119.37608169557413,37.617239657064005],[-119.37608445894375,37.61721581818013],[-119.37608825682776,37.61719206954941],[-119.3760930846838,37.61716843956991],[-119.37609893673785,37.61714495649774],[-119.3761058059912,37.617121648413274],[-119.37611368422888,37.6170985431877],[-119.37612256202937,37.61707566844957],[-119.37613242877595,37.617053051551764],[-119.37614327266938,37.61703071953888],[-119.37615508074204,37.61700869911483],[-119.37616783887334,37.61698701661085],[-119.37618153180678,37.61696569795415],[-119.37619614316802,37.6169447686368],[-119.37621165548454,37.616924253685326],[-119.3762280502066,37.61690417763074],[-119.37624530772932,37.61688456447917],[-119.37626622772767,37.61686081520625],[-119.37628613470562,37.61683652122198],[-119.37630500626943,37.61681170985646],[-119.3763228211901,37.6167864090218],[-119.37633955942746,37.61676064718072],[-119.3763552021526,37.61673445331452],[-119.37636973176907,37.61670785689053],[-119.37638313193271,37.616680887828814],[-119.3763953875701,37.61665357646875],[-119.37640648489524,37.61662595353462],[-119.3764164114254,37.616598050101274],[-119.37642515599485,37.61656989755904],[-119.37643270876767,37.616541527578455],[-119.37643906124865,37.61651297207461],[-119.37644420629287,37.61648426317133],[-119.37644813811382,37.61645543316489],[-119.37645085228974,37.61642651448783],[-119.37645234576871,37.616397539672334],[-119.37645261687211,37.61636854131381],[-119.37645325059806,37.61630068220245],[-119.37645674343429,37.61623287812063],[-119.3764630914475,37.6161652052717],[-119.37647228749555,37.61609773971132],[-119.37648432123558,37.616030557261986],[-119.37649850722158,37.61596704752027],[-119.37651548650219,37.61590397294565],[-119.37653523815005,37.61584141125268],[-119.37655773782213,37.61577943952381],[-119.37658295778976,37.61571813411447],[-119.37661086697285,37.61565757055887],[-119.37664143097808,37.61559782347698],[-119.37667461214154,37.615538966482724],[-119.37671036957494,37.61548107209309],[-119.37674865921606,37.6154242116389],[-119.37678943388326,37.61536845517696],[-119.37683264333332,37.61531387140368],[-119.3768782343236,37.61526052757046],[-119.37692615067756,37.61520848940092],[-119.37697633335407,37.61515782100982],[-119.37702066430002,37.615113109709924],[-119.37706305644001,37.61506722403612],[-119.37710346065161,37.61502021716282],[-119.3771418301165,37.61497214356366],[-119.37717812037444,37.61492305894836],[-119.37721228937502,37.61487302019811],[-119.37724429752623,37.61482208529968],[-119.37727410774033,37.61477031327822],[-119.37730168547694,37.61471776412885],[-119.3773269987828,37.61466449874713],[-119.37735001832911,37.61461057885842],[-119.37737071744522,37.61455606694649],[-119.37738907214963,37.61450102618098],[-119.37740506117777,37.614445520344255],[-119.37741866600655,37.61438961375745],[-119.37742987087589,37.614333371205994],[-119.37743866280688,37.614276857864425],[-119.37744503161687,37.614220139221],[-119.37744896993118,37.614163281001666],[-119.37745047319166,37.61410634909404],[-119.37744953966185,37.61404940947091],[-119.3774461704292,37.61399252811389],[-119.37744036940347,37.61393577093691],[-119.37743214331242,37.61387920370987],[-119.37742150169392,37.61382289198238],[-119.37740182010329,37.6137383485886],[-119.37737856217987,37.613654381887486],[-119.37735175444554,37.61357108758582],[-119.37732142746795,37.613488560623615],[-119.37728761582575,37.61340689506599],[-119.37725035806908,37.61332618399591],[-119.37720969667555,37.61324651940808],[-119.37716567800186,37.61316799210418],[-119.3771183522308,37.61309069158928],[-119.3770677733141,37.613014705969924],[-119.37701399891091,37.612940121853676],[-119.37695709032198,37.61286702425043],[-119.37691734858457,37.61281600208813],[-119.37687976575556,37.61276395497948],[-119.37684438355738,37.612710940710585],[-119.37681124126888,37.612657018141334],[-119.37678037568179,37.612602247139904],[-119.3767518210599,37.61254668851635],[-119.37672560910096,37.612490403955015],[-119.37670176890157,37.61243345594611],[-119.37668032692494,37.6123759077163],[-119.37666130697144,37.612317823158484],[-119.37664473015222,37.61225926676087],[-119.37663061486579,37.61220030353542],[-119.37661897677769,37.61214099894552],[-119.3766098288031,37.612081418833505],[-119.37660457966696,37.612034173404986],[-119.37660131973436,37.61198681475079],[-119.37660005264887,37.61193939585782],[-119.37660077982427,37.611891969780295],[-119.37660350044324,37.61184458958034],[-119.376608211458,37.611797308268734],[-119.37661490759398,37.61175017874538],[-119.3766235813555,37.61170325374037],[-119.37663422303439,37.61165658575484],[-119.37664682072071,37.61161022700223],[-119.37666136031626,37.611564229349966],[-119.37667782555016,37.61151864426134],[-119.37669619799726,37.61147352273798],[-119.3767164570986,37.611428915262735],[-119.37673858018461,37.61138487174329],[-119.37676254250029,37.61134144145624],[-119.3767883172331,37.61129867299202],[-119.37681587554287,37.61125661420052],[-119.37684518659402,37.611215312137574],[-119.3768762175903,37.61117481301225],[-119.37689574422058,37.61114928481042],[-119.37691413695286,37.61112322910931],[-119.37693137329809,37.6110966777692],[-119.37694743218134,37.61106966325647],[-119.37696229396752,37.6110422186038],[-119.37697594048531,37.61101437736975],[-119.37698835504952,37.61098617359788],[-119.37699952248137,37.61095764177488],[-119.37700942912714,37.610928816788636],[-119.37701806287473,37.61089973388541],[-119.37702541316858,37.61087042862683],[-119.37703147102256,37.61084093684633],[-119.37703622903084,37.610811294605426],[-119.37703968137707,37.61078153814951],[-119.37704182384145,37.610751703863635],[-119.3770426538058,37.61072182822795],[-119.37704155035881,37.61064642875159],[-119.3770373670516,37.610571097638704],[-119.37703010831363,37.61049591448471],[-119.3770197818238,37.61042095872838],[-119.37700639850236,37.61034630956816],[-119.37698997249926,37.610272045878126],[-119.3769705211792,37.610198246124895],[-119.37694806510325,37.61012498828469],[-119.37692262800705,37.6100523497609],[-119.37689423677577,37.60998040730235],[-119.37688589123755,37.60995917487739],[-119.37687847930937,37.609937724323245],[-119.37687200996463,37.60991608161187],[-119.37686649103549,37.60989427294789],[-119.37686192920332,37.609872324736834],[-119.37685832999067,37.609850263553135],[-119.3768556977545,37.609828116108005],[-119.37685403568102,37.609805909217094],[-119.37685334578177,37.60978366976799],[-119.37685362889115,37.60976142468768],[-119.37685488466556,37.60973920090992],[-119.37685711158365,37.6097170253427],[-119.37686030694826,37.60969492483555],[-119.37686446688964,37.60967292614715],[-119.37686958637028,37.60965105591288],[-119.37687565919079,37.60962934061252],[-119.37688267799753,37.60960780653829],[-119.37689063429158,37.60958647976292],[-119.37689951843892,37.609565386108144],[-119.37690931968216,37.60954455111344],[-119.37692002615351,37.609524000005045],[-119.37693162488925,37.60950375766552],[-119.37694410184537,37.609483848603475],[-119.37695744191454,37.60946429692409],[-119.37697162894445,37.60944512629972],[-119.3769866457574,37.60942635994137],[-119.37700247417102,37.609408020570584],[-119.37701909502037,37.609390130391894],[-119.37703648818109,37.60937271106593],[-119.37705463259375,37.60935578368324],[-119.37707350628945,37.609339368738766],[-119.37709811146335,37.6093179764654],[-119.37712177587521,37.60929592269936],[-119.37714447144523,37.6092732336101],[-119.37716617124325,37.609249936120925],[-119.37718684952085,37.609226057877095],[-119.37720648174185,37.609201627212926],[-119.37722504461132,37.60917667311825],[-119.37724251610341,37.609151225203945],[-119.37725887548731,37.60912531366689],[-119.37727410335194,37.60909896925402],[-119.37728818162896,37.60907222322592],[-119.37730109361415,37.6090451073197],[-119.37741509023746,37.60877820518295],[-119.37751738198432,37.6085083182505],[-119.37760784589601,37.60823577127431],[-119.37768637324982,37.60796089220356],[-119.37775286968932,37.60768401179001],[-119.3778072553373,37.607405463189885],[-119.37803489449347,37.60611480757908],[-119.37804025729827,37.606080846015935],[-119.37804415828494,37.60604675849563],[-119.37804659289922,37.60601258483191],[-119.37804755829954,37.60597836493905],[-119.37804705336036,37.605944138785276],[-119.37804507867345,37.60590994634613],[-119.37804163654722,37.605875827557625],[-119.37803673100406,37.605841822269774],[-119.37803036777548,37.60580797019993],[-119.37802255429557,37.60577431088648],[-119.3780132996922,37.60574088364256],[-119.37800261477643,37.60570772751026],[-119.37799051202984,37.60567488121492],[-119.37797700558991,37.605642383119985],[-119.37794065754831,37.60556400882396],[-119.37790097150159,37.60548666618093],[-119.37785799361819,37.60541044514658],[-119.37781177389462,37.605335434371916],[-119.3777623660976,37.60526172110001],[-119.37770982770122,37.605189391064556],[-119.37765421982013,37.60511852839024],[-119.37759560713849,37.605049215494866],[-119.37739913114795,37.604817183184245],[-119.37721234334083,37.60458014073542],[-119.37719757953303,37.604559950882276],[-119.37718366818302,37.60453938142491],[-119.37717062469223,37.604518455137026],[-119.37715846350108,37.60449719518733],[-119.37714719807323,37.60447562511399],[-119.37713684088052,37.604453768798514],[-119.37712740338918,37.60443165043926],[-119.37711889604715,37.604409294524686],[-119.37711132827253,37.60438672580631],[-119.37710470844318,37.60436396927114],[-119.37709904388741,37.60434105011417],[-119.37709434087581,37.60431799371038],[-119.37709060461447,37.60429482558672],[-119.37708783923904,37.60427157139375],[-119.37708604781037,37.604248256877376],[-119.37708523231085,37.60422490785018],[-119.37708539364247,37.60420155016299],[-119.37708653162571,37.604178209676185],[-119.37708864499969,37.604154912231046],[-119.37712020192176,37.60391584407461],[-119.37716132761163,37.60367769841365],[-119.37721198012342,37.603440717613374],[-119.37727210781694,37.603205142851166],[-119.3772883815709,37.60315061851417],[-119.37730695495245,37.60309656134022],[-119.37732780686875,37.60304303270451],[-119.37735091364024,37.602990093382054],[-119.37737624902742,37.6029378034786],[-119.37740378426061,37.60288622236249],[-119.37743348807265,37.602835408597166],[-119.3774653267346,37.60278541987474],[-119.37749926409376,37.60273631295049],[-119.37753526161492,37.60268814357844],[-119.37757327842412,37.60264096644804],[-119.377613271355,37.60259483512204],[-119.37765519499784,37.60254980197581],[-119.37769900175118,37.60250591813778],[-119.37798129207637,37.602225780789],[-119.3782548655638,37.60194022216969],[-119.37851955788736,37.60164941391013],[-119.37859821754608,37.60155737262157],[-119.37867281287471,37.60146321380038],[-119.37874325392569,37.60136705100337],[-119.37880945576272,37.601269000203786],[-119.37887133856294,37.60116917965129],[-119.37892882771318,37.6010677097295],[-119.37898185389987,37.60096471281057],[-119.37903035319256,37.600860313107766],[-119.37907426712103,37.60075463652558],[-119.3791135427455,37.60064781050782],[-119.37914813272062,37.600539963884],[-119.37917799535238,37.600431226713866],[-119.37920309464828,37.600321730130574],[-119.37928356033724,37.59997067040021],[-119.37937928654746,37.59962204341139],[-119.37949015779037,37.59927626898685],[-119.37961604034491,37.59893376350842],[-119.37962414936172,37.59891423862524],[-119.37963310257284,37.598894948666945],[-119.37964288925633,37.598875916732794],[-119.37965349769229,37.598857165613175],[-119.37966491517668,37.598838717762085],[-119.37967712803673,37.59882059527038],[-119.37969012164734,37.598802819839285],[-119.37970388044842,37.59878541275443],[-119.3797183879636,37.598768394860336],[-119.3797336268201,37.59875178653547],[-119.37974957876928,37.59873560766783],[-119.37976622470873,37.59871987763111],[-119.37978354470496,37.5987046152616],[-119.37980151801743,37.59868983883552],[-119.37982012312325,37.59867556604714],[-119.37983933774308,37.59866181398769],[-119.3798591388677,37.59864859912483],[-119.37987950278566,37.59863593728288],[-119.37990040511148,37.598623843624004],[-119.37992182081521,37.598612332629926],[-119.379943724252,37.59860141808465],[-119.37996608919308,37.59859111305796],[-119.37998888885706,37.59858142988976],[-119.38001209594199,37.59857238017528],[-119.38003568265815,37.59856397475123],[-119.3800596207612,37.59855622368278],[-119.38008388158605,37.59854913625155],[-119.38010843608122,37.59854272094446],[-119.3801332548436,37.5985369854436],[-119.38015830815358,37.59853193661701],[-119.38018356601081,37.59852758051044],[-119.38020899816998,37.5985239223402],[-119.38023457417702,37.59852096648675],[-119.38026026340569,37.598518716489664],[-119.38028603509416,37.59851717504319],[-119.38031185838187,37.59851634399316],[-119.38032944417564,37.598515777021305],[-119.38034699459227,37.598514724228956],[-119.380364488438,37.59851318688745],[-119.38038190458737,37.59851116685327],[-119.38039922200872,37.598508666565785],[-119.38041641978975,37.59850568904437],[-119.3804334771625,37.5985022378846],[-119.38045037352862,37.598498317254105],[-119.38046708848425,37.59849393188742],[-119.38048360184452,37.598489087080225],[-119.38049989366807,37.598483788683126],[-119.38051594428111,37.5984780430944],[-119.38053173430112,37.5984718572524],[-119.3805472446602,37.59846523862706],[-119.38056245662833,37.598458195210966],[-119.3805773518357,37.59845073550973],[-119.38059191229515,37.598442868531556],[-119.38060612042369,37.59843460377659],[-119.38061995906385,37.59842595122521],[-119.3806334115044,37.59841692132617],[-119.38064646150043,37.59840752498388],[-119.38065909329309,37.59839777354523],[-119.38067129162853,37.59838767878596],[-119.3806830417764,37.59837725289636],[-119.38069432954752,37.598366508466604],[-119.38070514131117,37.59835545847153],[-119.38071546401143,37.598344116254935],[-119.38072528518298,37.598332495513525],[-119.38073459296614,37.59832061028032],[-119.38074337612125,37.59830847490776],[-119.38075162404215,37.5982961040503],[-119.3807593267691,37.59828351264679],[-119.38076647500066,37.59827071590236],[-119.38077306010506,37.59825772927018],[-119.38077907413054,37.598244568432605],[-119.38078450981497,37.59823124928246],[-119.38085805419232,37.598027107263206],[-119.38092260654456,37.59782104880613],[-119.38097808842139,37.59761332457289],[-119.381024432408,37.59740418724933],[-119.381061582207,37.59719389123821],[-119.38108949270635,37.59698269234958],[-119.38109620359015,37.59693182753663],[-119.381105117902,37.59688117744043],[-119.38111622500513,37.596830802472546],[-119.3811295116474,37.59678076271632],[-119.38114496197723,37.59673111785517],[-119.3811625575624,37.596681927101365],[-119.3811822774122,37.596633249125475],[-119.38120409800236,37.596585141986324],[-119.38122799330317,37.59653766306179],[-119.38125393481064,37.59649086898037],[-119.38128189158031,37.596444815553625],[-119.38131183026438,37.59639955770967],[-119.38134371515133,37.59635514942758],[-119.38137750820867,37.59631164367308],[-119.38141316912821,37.59626909233538],[-119.3814506553742,37.59622754616526],[-119.38148992223402,37.59618705471451],[-119.38153092287163,37.59614766627697],[-119.38157360838326,37.59610942783078],[-119.38161792785593,37.59607238498248],[-119.38166382842807,37.59603658191252],[-119.38171125535257,37.59600206132265],[-119.38176015206213,37.595968864384986],[-119.38181046023668,37.59593703069285],[-119.38186211987296,37.59590659821364],[-119.38191506935611,37.59587760324347],[-119.38221149914565,37.59572575907869],[-119.38251297667342,37.59558034373277],[-119.38281928177356,37.595441463387495],[-119.38286871026422,37.59541888125173],[-119.38291715817164,37.595394991576455],[-119.38296457088533,37.59536982129052],[-119.3830108949618,37.59534339876643],[-119.38305607818485,37.59531575378813],[-119.38310006962448,37.59528691751748],[-119.38314281969424,37.595256922459185],[-119.38318428020712,37.595225802424125],[-119.38322440442995,37.59519359249119],[-119.38326314713595,37.59516032896782],[-119.38330046465583,37.59512604934896],[-119.38333631492696,37.59509079227493],[-119.38337065754075,37.59505459748774],[-119.3834034537882,37.59501750578633],[-119.38343466670362,37.59497955898064],[-119.38346426110614,37.59494079984439],[-119.38348034159155,37.59491975887275],[-119.38349732174605,37.59489917026593],[-119.38351518149042,37.59487905836938],[-119.38353389970537,37.594859446964726],[-119.38355345425657,37.59484035924186],[-119.38357382202075,37.59482181777135],[-119.38359497891317,37.59480384447785],[-119.38361689991599,37.59478646061413],[-119.38363955910786,37.59476968673604],[-119.38366292969467,37.59475354267802],[-119.3836869840411,37.59473804752984],[-119.38371169370342,37.594723219613904],[-119.38373702946305,37.59470907646364],[-119.38376296136111,37.59469563480276],[-119.38378945873384,37.594682910525506],[-119.38381649024895,37.59467091867781],[-119.38384402394254,37.594659673439516],[-119.38387202725697,37.594649188107645],[-119.38390046707931,37.59463947508067],[-119.38392930978057,37.59463054584382],[-119.3839585212554,37.59462241095553],[-119.38398806696233,37.59461508003495],[-119.38401791196483,37.594608561750555],[-119.38404802097249,37.59460286380993],[-119.38407835838265,37.59459799295063],[-119.38410888832273,37.59459395493226],[-119.3841395746924,37.59459075452957],[-119.3841703812064,37.59458839552686],[-119.38420127143746,37.5945868807136],[-119.38423220885933,37.594586211880944],[-119.38426315688992,37.59458638981975],[-119.38427923443248,37.59458648656168],[-119.38429530693607,37.59458615200387],[-119.38431135613152,37.594585386526624],[-119.38432736377614,37.59458419100001],[-119.38434331167448,37.59458256678296],[-119.38435918169903,37.59458051572166],[-119.38437495581073,37.59457804014754],[-119.38439061607961,37.59457514287449],[-119.38440614470511,37.59457182719574],[-119.38442152403628,37.59456809688016],[-119.38443673659192,37.59456395616788],[-119.38445176508031,37.59455940976553],[-119.3844665924191,37.59455446284088],[-119.38448120175448,37.59454912101696],[-119.38449557648052,37.59454339036566],[-119.38450970025791,37.59453727740084],[-119.38452355703265,37.594530789070916],[-119.38453713105423,37.59452393275104],[-119.38455040689352,37.594516716234494],[-119.38464202170641,37.594463264906025],[-119.38473137030456,37.594407437591606],[-119.38481835540777,37.59434929507764],[-119.38490288230989,37.594288900671245],[-119.38498485898204,37.59422632013129],[-119.38506419617269,37.59416162159684],[-119.38514080750505,37.59409487551282],[-119.38521460957082,37.59402615455347],[-119.38528552202119,37.593955533543],[-119.38535346765428,37.59388308937428],[-119.38547431558469,37.59374490147814],[-119.38558930214582,37.593603582415575],[-119.38569829934787,37.593459289528056],[-119.38580118587156,37.593312183467084],[-119.3858978472031,37.59316242801537],[-119.38598817576161,37.59301018990428],[-119.38607207101875,37.59285563862836],[-119.38614943961046,37.592698946256355],[-119.38622019544079,37.59254028723979],[-119.38638580470938,37.592125857977855],[-119.38653419440368,37.59170731883142],[-119.38666520425588,37.591285122664154],[-119.38677869281088,37.59085972628906],[-119.38680794834566,37.590728504299214],[-119.38683152961879,37.59059656093814],[-119.38684940890174,37.59046405152325],[-119.38686156517846,37.59033113203747],[-119.38686798417001,37.59019795894561],[-119.38686865835115,37.59006468901013],[-119.3868635869591,37.58993147910675],[-119.3868527759943,37.589798486039584],[-119.38683623821325,37.58966586635674],[-119.38681399311318,37.58953377616596],[-119.3867860669092,37.58940237095091],[-119.38675249250302,37.58927180538816],[-119.38671330944436,37.58914223316505],[-119.38658782870041,37.5887782804546],[-119.3864491738564,37.58841736776359],[-119.3862974610919,37.58805979700656],[-119.38624567270932,37.587949367517275],[-119.38618916745426,37.587840412493705],[-119.38612801149293,37.58773305947975],[-119.38606227643471,37.58762743414348],[-119.3859920392484,37.58752366012992],[-119.38591738217193,37.58742185891651],[-119.38583839261608,37.58732214967081],[-119.38575516306204,37.5872246491111],[-119.38566779095324,37.58712947136973],[-119.38557637858104,37.587036727859555],[-119.38548103296505,37.58694652714364],[-119.38538186572784,37.58685897480806],[-119.38527899296422,37.58677417333844],[-119.3851725351053,37.58669222200002],[-119.3851332113227,37.58666195324021],[-119.38509520819402,37.5866306344227],[-119.3850585699694,37.58659830201591],[-119.38502333930948,37.58656499366844],[-119.38498955723568,37.586530748165266],[-119.38495726308254,37.58649560538255],[-119.38492649445185,37.58645960624122],[-119.3848972871689,37.58642279265928],[-119.38486967524076,37.586385207503035],[-119.38484369081672,37.58634689453716],[-119.38481936415084,37.58630789837371],[-119.38479672356668,37.58626826442024],[-119.38477579542445,37.58622803882683],[-119.38475660409019,37.58618726843245],[-119.38473917190753,37.586146000710315],[-119.38472351917162,37.58610428371265],[-119.38470966410551,37.58606216601479],[-119.38469762283897,37.58601969665854],[-119.38468740938967,37.58597692509504],[-119.38467903564698,37.585933901127326],[-119.384672511358,37.58589067485215],[-119.38466784411635,37.58584729660184],[-119.38466503935327,37.585803816885516],[-119.38466410033128,37.585760286330384],[-119.38466502814053,37.58571675562278],[-119.38466782169743,37.5856732754491],[-119.38467247774594,37.5856298964368],[-119.38467899086139,37.58558666909551],[-119.38468735345685,37.58554364375816],[-119.38469755579196,37.58550087052232],[-119.384844437103,37.584980605969605],[-119.38501262006292,37.58446444255005],[-119.38520192430099,37.58395293248005],[-119.38569392431097,37.5828943736254],[-119.38614987493119,37.581825642517366],[-119.38619230685947,37.581709847880724],[-119.38622968908292,37.58159295620931],[-119.38626197703623,37.58147510693051],[-119.38628913223101,37.58135644061319],[-119.38631112230173,37.581237098800095],[-119.38632792104409,37.581117223839136],[-119.38633950844617,37.58099695871328],[-119.38634587071219,37.58087644687037],[-119.3863470002789,37.580755832051686],[-119.38634289582447,37.58063525812071],[-119.38633356226978,37.580514868891456],[-119.38631901077272,37.58039480795696],[-119.38629925871449,37.58027521851796],[-119.38627432967895,37.580156243212194],[-119.38624425342422,37.58003802394418],[-119.38620906584718,37.579920701716055],[-119.38616880894047,37.57980441645936],[-119.38612353074235,37.57968930686822],[-119.38608657814271,37.57950531891487],[-119.38604202038408,37.579322401116706],[-119.38598990601243,37.579140752534414],[-119.38593029179592,37.57896057084613],[-119.38586324266309,37.57878205213213],[-119.38578883163188,37.57860539066167],[-119.38570713973002,37.578430778681515],[-119.3856182559065,37.57825840620679],[-119.38552227693475,37.578088460814264],[-119.38541930730709,37.577921127438266],[-119.38530945912076,37.57775658816952],[-119.38519285195586,37.577595022057054],[-119.38502831694514,37.577403057842844],[-119.38485680271489,37.577215003221994],[-119.38467845587107,37.57703101888161],[-119.38449342885447,37.57685126202975],[-119.38430187981042,37.576675886261114],[-119.38426871469515,37.576645348626585],[-119.38423690655794,37.57661390986406],[-119.38420649402174,37.57658160814961],[-119.38417751401458,37.57654848270718],[-119.3841500017249,37.57651457376091],[-119.38412399055873,37.57647992248626],[-119.38409951209918,37.57644457096006],[-119.384076596068,37.576408562109386],[-119.38405527028968,37.576371939659474],[-119.38403556065747,37.57633474808052],[-119.3840174911021,37.576297032533766],[-119.38400108356267,37.57625883881665],[-119.38398635796,37.57622021330716],[-119.38397333217246,37.57618120290753],[-119.38396202201437,37.57614185498728],[-119.38395244121664,37.57610221732572],[-119.38394460141025,37.57606233805389],[-119.38393760633687,37.57602676394687],[-119.38392905509558,37.575991405891905],[-119.38391895811411,37.57595630699723],[-119.38390732770479,37.57592151005501],[-119.38389417804945,37.575887057489304],[-119.383879525182,37.575852991304174],[-119.38386338696907,37.57581935303256],[-119.38384578308808,37.57578618368569],[-119.38382673500328,37.57575352370303],[-119.38380626593958,37.5757214129029],[-119.38378440085427,37.575689890434134],[-119.38376116640646,37.575658994728144],[-119.38373659092468,37.57562876345224],[-119.38371070437235,37.57559923346357],[-119.3836835383111,37.575570440764224],[-119.38365512586255,37.5755424204575],[-119.38362550166755,37.575515206704836],[-119.38359470184432,37.57548883268438],[-119.38356276394418,37.575463330550434],[-119.38352377551998,37.575432212960976],[-119.38348615718823,37.57540004479005],[-119.383449953609,37.575366864228826],[-119.38341520776252,37.57533271067043],[-119.3833819608982,37.575297624663115],[-119.38335025248563,37.575261647862106],[-119.38332012016772,37.57522482298007],[-119.38329159971609,37.57518719373661],[-119.38326472498844,37.57514880480613],[-119.38323952788863,37.575109701764916],[-119.38321603832851,37.57506993103697],[-119.38319428419265,37.575029539838916],[-119.38317429130511,37.574988576124],[-119.38315608339889,37.574947088524986],[-119.38313968208766,37.57490512629661],[-119.38312510684024,37.574862739256965],[-119.38311237495739,37.5748199777284],[-119.38310150155134,37.57477689247783],[-119.3830924995278,37.57473353465632],[-119.3830853795708,37.57468995573852],[-119.38308015012981,37.57464620746144],[-119.38307681740991,37.57460234176306],[-119.38307538536435,37.574558410720705],[-119.3830758556899,37.574514466489134],[-119.38307822782483,37.574470561238726],[-119.3831075329673,37.57394778388293],[-119.38311631148623,37.57342453307105],[-119.38310455525054,37.57290131924488],[-119.38307227616086,37.57237865279944],[-119.38301950613634,37.57185704358521],[-119.38301846790405,37.57184502980281],[-119.38301795475567,37.5718329945611],[-119.38301796731066,37.571820952394965],[-119.38301850555362,37.571808917847676],[-119.38301956883423,37.571796905453255],[-119.38302115586814,37.571784929719016],[-119.38302326473845,37.57177300510795],[-119.38302589289806,37.571761146021316],[-119.38302903717269,37.57174936678122],[-119.38303269376479,37.57173768161337],[-119.38303685825808,37.57172610462981],[-119.38304152562291,37.57171464981195],[-119.38304669022236,37.57170333099365],[-119.38305234581895,37.57169216184451],[-119.38305848558227,37.5716811558534],[-119.38306510209716,37.57167032631209],[-119.3830721873728,37.57165968629929],[-119.38307973285215,37.5716492486648],[-119.38308772942246,37.57163902601401],[-119.38309616742619,37.57162903069264],[-119.38310503667276,37.57161927477195],[-119.38311432645071,37.57160977003398],[-119.38312402554078,37.5716005279574],[-119.38313412222938,37.5715915597038],[-119.38314460432278,37.57158287610394],[-119.3831554591618,37.57157448764486],[-119.3831666736371,37.57156640445716],[-119.38322031777257,37.57152802871816],[-119.38327262753832,37.571488503212784],[-119.38332356405115,37.57144785732295],[-119.38337308944894,37.57140612126342],[-119.3835685859185,37.57123069356819],[-119.38375618556697,37.571049886005376],[-119.38393565492724,37.57086392364523],[-119.38410677065787,37.57067303797307],[-119.38426931982092,37.57047746660095],[-119.38442310014682,37.570277452971716],[-119.38456792028592,37.57007324605589],[-119.38470360004642,37.56986510004159],[-119.3847177001388,37.569839638877184],[-119.38473287682761,37.56981457293693],[-119.3847491126552,37.569789931052355],[-119.38476638894562,37.569765741567196],[-119.38478468582628,37.56974203230483],[-119.38480398225065,37.569718830536196],[-119.38482425602267,37.56969616294851],[-119.38484548382212,37.56967405561453],[-119.3848676412315,37.56965253396257],[-119.38489070276411,37.569631622747245],[-119.38491919047165,37.569607504826244],[-119.38494870321703,37.56958418087835],[-119.38497920609383,37.56956167848933],[-119.38501066302466,37.5695400242734],[-119.38504303680388,37.569519243841455],[-119.38507628914155,37.569499361770994],[-119.38511038070874,37.56948040157696],[-119.385145271184,37.56946238568397],[-119.38518091930119,37.569445335399784],[-119.38521728289807,37.569429270890076],[-119.38525431896635,37.56941421115466],[-119.38529198370239,37.56940017400494],[-119.3853347013882,37.56938424133884],[-119.3853766927208,37.569367129001094],[-119.38541790630104,37.569348857938074],[-119.38545829168193,37.569329450514566],[-119.38549779943031,37.569308930486194],[-119.38553638118748,37.56928732297056],[-119.38557398972821,37.5692646544163],[-119.38561057901876,37.56924095257085],[-119.38618778055516,37.56884081487688],[-119.38621702353115,37.56881918059309],[-119.38624535881404,37.56879679410205],[-119.38627275588141,37.56877367951879],[-119.38629918522156,37.56874986174275],[-119.38632461836539,37.56872536643076],[-119.38634902791695,37.568700219969514],[-119.386372387583,37.568674449447094],[-119.38639467220132,37.568648082623795],[-119.38681737628814,37.56818746690594],[-119.38684701888683,37.568132348977585],[-119.38687442298765,37.568076501915705],[-119.38689956033974,37.56801998330336],[-119.38692240502957,37.5679628514159],[-119.38694293350771,37.567905165160916],[-119.38696112461308,37.56784698401742],[-119.38696563184786,37.567795638626954],[-119.38697227674695,37.56774444053657],[-119.38698105198945,37.567693446119314],[-119.3869919479088,37.56764271152382],[-119.38700495250347,37.56759229261248],[-119.38702005145025,37.56754224490007],[-119.38703722811998,37.56749262349247],[-119.38705646359588,37.56744348302609],[-119.38707773669448,37.56739487760768],[-119.38710102398878,37.56734686075478],[-119.38712629983426,37.56729948533676],[-119.38715353639702,37.567252803516624],[-119.3871827036845,37.56720686669362],[-119.3872186269071,37.56716271115876],[-119.3872525962508,37.56711758647612],[-119.38728457049847,37.56707154740319],[-119.38731451085404,37.56702464980683],[-119.38734238098985,37.56697695059572],[-119.38736814709046,37.56692850765106],[-119.3873917778939,37.56687937975649],[-119.38741324472936,37.56682962652665],[-119.38743252155217,37.56677930833492],[-119.38744958497527,37.56672848624008],[-119.38746441429753,37.56667722191227],[-119.38747699152897,37.566625577558106],[-119.38752589099114,37.56637829200953],[-119.38756361677086,37.56612976950463],[-119.38759012043495,37.56588032984012],[-119.38760034032124,37.56578359438341],[-119.38761479645602,37.56568720189118],[-119.38763347119949,37.56559126987531],[-119.38765634176914,37.5654959152858],[-119.3876833802677,37.56540125436831],[-119.38771455371713,37.56530740252244],[-119.38774982409906,37.56521447416096],[-119.38778914840098,37.56512258257048],[-119.38783247866895,37.56503183977323],[-119.387879762066,37.5649423563907],[-119.38793094093668,37.564854241508556],[-119.38798595287734,37.564767602543824],[-119.38807784453546,37.56462341125058],[-119.38816390114093,37.564476956291244],[-119.38824403484024,37.564328387237616],[-119.38831816383039,37.56417785581976],[-119.38838621244221,37.56402551577085],[-119.38844811121761,37.5638715226703],[-119.38849097798509,37.56376430721951],[-119.38853771447441,37.56365812138236],[-119.38858828172347,37.563553053643794],[-119.38864263757863,37.56344919155662],[-119.38870073672959,37.56334662166858],[-119.38872843253135,37.56330148669914],[-119.3887579660643,37.5632570961606],[-119.38878930578964,37.563213497452615],[-119.38882241824017,37.56317073712925],[-119.38885726805592,37.563128860849275],[-119.38889381802197,37.56308791332741],[-119.38893202910829,37.56304793828664],[-119.38897186051126,37.5630089784114],[-119.38901326969737,37.56297107530217],[-119.38905621244852,37.56293426943094],[-119.38910064290937,37.56289860009804],[-119.38914651363629,37.56286410539017],[-119.38916407825229,37.56285089076643],[-119.38918108324783,37.56283722016473],[-119.38919750995312,37.56282310859424],[-119.38921334033334,37.562808571548295],[-119.38922855700838,37.562793624987385],[-119.389243143272,37.562778285321535],[-119.3892570831101,37.56276256939245],[-119.38927036121837,37.56274649445482],[-119.38928296301897,37.56273007815759],[-119.3892948746767,37.562713338524404],[-119.38930608311406,37.56269629393393],[-119.38931657602568,37.562678963099614],[-119.38932634189173,37.5626613650492],[-119.38933536999075,37.562643519103716],[-119.38934365041116,37.56262544485643],[-119.38938211726817,37.562531789620664],[-119.38941653032381,37.56243714016996],[-119.38944684917999,37.56234160765773],[-119.38947303824702,37.56224530427412],[-119.38949506678559,37.56214834311401],[-119.38951290894263,37.56205083804435],[-119.38952654378163,37.56195290357044],[-119.38953595530721,37.56185465470129],[-119.38954113248369,37.56175620681479],[-119.38954206924814,37.561657675521985],[-119.38953876451727,37.561559176531475],[-119.38953122218875,37.561460825513485],[-119.38951945113648,37.56136273796396],[-119.38950346520011,37.56126502906901],[-119.3894832831687,37.561167813569696],[-119.38945892875859,37.56107120562716],[-119.38943043058543,37.56097531868865],[-119.38939782213065,37.56088026535439],[-119.38936114170185,37.560786157245154],[-119.38932043238795,37.56069310487141],[-119.38927574200835,37.56060121750342],[-119.38922712305688,37.560510603043056],[-119.38917463263995,37.560421367896964],[-119.38911833240957,37.56033361685183],[-119.3890582884907,37.5602474529511],[-119.38899457140387,37.56016297737425],[-119.38892725598191,37.5600802893178],[-119.38885642128247,37.55999948587894],[-119.38878215049473,37.55992066194155],[-119.38870453084208,37.55984391006474],[-119.38862365347931,37.559769320374244],[-119.38853961338583,37.55969698045657],[-119.3884525092539,37.55962697525623],[-119.38839976419646,37.55958456454816],[-119.38834890105645,37.55954072126017],[-119.3882999811894,37.559495498282715],[-119.38825306360627,37.55944895017061],[-119.38820820490228,37.55940113307707],[-119.38816545918856,37.55935210468611],[-119.38812487802694,37.55930192414285],[-119.38808651036777,37.55925065198216],[-119.38805040249088,37.559198350055674],[-119.38801659794971,37.55914508145713],[-119.3879851375189,37.55909091044628],[-119.387956059145,37.559035902371335],[-119.38792939790078,37.5589801235901],[-119.387905185943,37.55892364139004],[-119.3878834524735,37.55886652390695],[-119.38786422370407,37.558808840042865],[-119.38784752282491,37.55875065938286],[-119.3878333699766,37.55869205211118],[-119.38782178222588,37.55863308892651],[-119.38781277354508,37.55857384095675],[-119.38780635479523,37.558514379673106],[-119.3878025337131,37.55845477680394],[-119.38780131490185,37.55839510424834],[-119.38780269982546,37.55833543398915],[-119.38780668680705,37.558275838006395],[-119.3877454851919,37.55724270546052],[-119.38764982969259,37.55621123183809],[-119.38751978925914,37.555182145231534],[-119.3874599614922,37.55493326562561],[-119.38741113606413,37.55468286845986],[-119.38737337295555,37.554431261910075],[-119.38737181103029,37.55441648833561],[-119.38737089612083,37.55440168042407],[-119.38737062933622,37.55438685613038],[-119.38737101099947,37.55437203342924],[-119.38737204064748,37.55435723029349],[-119.38737371703137,37.55434246467216],[-119.38737603811809,37.55432775446883],[-119.38737900109297,37.55431311751988],[-119.38738260236292,37.55429857157283],[-119.38738683756098,37.554284134264854],[-119.38739170155158,37.55426982310139],[-119.38739718843668,37.554255655434915],[-119.38740329156302,37.554241648443934],[-119.3874100035301,37.55422781911208],[-119.38741731619932,37.55421418420755],[-119.3874252207036,37.554200760262844],[-119.38743370745834,37.554187563554635],[-119.387442766173,37.554174610084054],[-119.38745238586347,37.55416191555728],[-119.38746255486552,37.55414949536656],[-119.3874732608489,37.554137364571446],[-119.38748449083229,37.55412553788062],[-119.38749623119897,37.55411402963406],[-119.38750846771349,37.554102853785515],[-119.38752118553874,37.55409202388579],[-119.38757914160622,37.5540459052058],[-119.38763897177607,37.554001329255726],[-119.3877006112906,37.55395834428031],[-119.38776399343413,37.55391699680235],[-119.38782904960534,37.55387733157218],[-119.38789570939143,37.553839391519496],[-119.3879639006443,37.55380321770669],[-119.38803354955874,37.55376884928452],[-119.38835761666869,37.55362042097126],[-119.38868760466171,37.55348050635451],[-119.38902316079206,37.55334925498489],[-119.38910081200669,37.55332137515268],[-119.3891795862525,37.55329556945424],[-119.38925939615328,37.55327186651284],[-119.3893401531844,37.553250292619346],[-119.38942176777091,37.55323087170316],[-119.38950414938694,37.55321362530557],[-119.389587206656,37.55319857255595],[-119.38967084745235,37.55318573015046],[-119.38975497900326,37.55317511233364],[-119.38983950799164,37.553166730882566],[-119.38992434065983,37.55316059509372],[-119.39000938291335,37.553156711772786],[-119.39007676688585,37.55315544808832],[-119.39014416574403,37.55315601831561],[-119.3902115007691,37.553158421788694],[-119.39027869331676,37.553162655700405],[-119.39034566490918,37.55316871510573],[-119.39041233732645,37.55317659292752],[-119.39047863269809,37.553186279964876],[-119.39054447359385,37.553197764903736],[-119.39060978311426,37.5532110343302],[-119.39067448498028,37.553226072746114],[-119.3907751031839,37.55324943389842],[-119.39087668029183,37.55326999729155],[-119.39097909360831,37.55328773808665],[-119.39108221942732,37.55330263485441],[-119.39118593318184,37.553314669600766],[-119.39129010959455,37.55332382778879],[-119.39139462282904,37.55333009835608],[-119.391499346642,37.55333347372835],[-119.39160415453563,37.55333394982846],[-119.3917089199106,37.553331526081315],[-119.39185153787314,37.55332439484117],[-119.39199378823646,37.55331356773673],[-119.39213551993082,37.553299056266404],[-119.39227658243752,37.553280875841345],[-119.39241682594884,37.553259045769096],[-119.39255610152718,37.55323358923317],[-119.39269426126333,37.553204533268286],[-119.39283115843355,37.553171908731755],[-119.39296664765556,37.55313575027059],[-119.39310058504277,37.55309609628483],[-119.39323282835744,37.55305298888664],[-119.39336323716154,37.55300647385557],[-119.39345004987268,37.55297266945819],[-119.39353533344486,37.55293648193444],[-119.39361898470682,37.55289795506284],[-119.3937009024625,37.55285713545198],[-119.39378098761348,37.55281407248401],[-119.39385914327887,37.55276881825497],[-119.39393527491245,37.552721427511656],[-119.39400929041719,37.55267195758552],[-119.39408110025651,37.55262046832311],[-119.3941506175628,37.55256702201381],[-119.39421775824232,37.55251168331441],[-119.39428244107697,37.55245451917086],[-119.39434458782267,37.552395598737306],[-119.39440412330379,37.5523349932924],[-119.39449566561083,37.55223481112234],[-119.39458277490623,37.55213215415867],[-119.3946653457525,37.55202714667952],[-119.39474327820788,37.5519199158081],[-119.394816477947,37.551810591358674],[-119.39488485637521,37.551699305679534],[-119.39494833073567,37.55158619349254],[-119.39500682420943,37.551471391730175],[-119.39506026600834,37.55135503936961],[-119.39510859146073,37.551237277264555],[-119.39515174208942,37.55111824797461],[-119.39519655953244,37.55097683105205],[-119.39523551603685,37.550834317976296],[-119.39526856955999,37.55069086267386],[-119.39529568443554,37.55054662008804],[-119.39531683141202,37.5504017460115],[-119.39533198768407,37.55025639691821],[-119.39534113691711,37.55011072979411],[-119.39534199713084,37.550069456627305],[-119.39534110083405,37.550028183947035],[-119.39533844905839,37.54998695912632],[-119.3953340448505,37.54994582948312],[-119.39532789326847,37.54990484222612],[-119.39532000137594,37.54986404440042],[-119.39531037823402,37.54982348283373],[-119.39529903489093,37.5497832040824],[-119.39528598436932,37.54974325437816],[-119.39527124165117,37.549703679574954],[-119.39525482366074,37.54966452509633],[-119.39523674924497,37.54962583588339],[-119.39521703915204,37.54958765634308],[-119.39519571600736,37.5495500302973],[-119.39517280428775,37.54951300093258],[-119.39514833029315,37.54947661075053],[-119.39512232211658,37.549440901519084],[-119.39509480961186,37.54940591422449],[-119.39506582435928,37.54937168902438],[-119.39503539962935,37.5493382652016],[-119.39503114292567,37.54933358545503],[-119.39502709197382,37.54932879133507],[-119.39502325161716,37.54932388857361],[-119.39501962644727,37.549318883032505],[-119.3950162207984,37.54931378069647],[-119.39501303874239,37.54930858766599],[-119.39501008408374,37.54930331014991],[-119.39500736035497,37.549297954458176],[-119.39500487081266,37.54929252699409],[-119.39500261843325,37.54928703424685],[-119.39500060590969,37.549281482783734],[-119.39499883564812,37.549275879242124],[-119.39499730976505,37.549270230321696],[-119.3949960300848,37.54926454277645],[-119.39499499813735,37.54925882340646],[-119.39499421515639,37.54925307904995],[-119.39499368207804,37.549247316574935],[-119.39499339953963,37.549241542871115],[-119.39499336787885,37.54923576484164],[-119.39499358713356,37.549229989394824],[-119.3949940570415,37.54922422343585],[-119.39499477704084,37.54921847385862],[-119.3949957462706,37.54921274753739],[-119.39499696357198,37.549207051318646],[-119.39499842748944,37.54920139201285],[-119.3950001362727,37.54919577638638],[-119.39500208787861,37.54919021115331],[-119.39500427997376,37.549184702967544],[-119.39500670993723,37.549179258414725],[-119.39500937486362,37.54917388400446],[-119.39501227156673,37.54916858616243],[-119.39501539658312,37.549163371222804],[-119.39501874617645,37.54915824542064],[-119.39502231634185,37.5491532148844],[-119.39502610281077,37.54914828562866],[-119.395030101056,37.549143463546905],[-119.39503430629718,37.54913875440444],[-119.39503871350638,37.549134163831575],[-119.39504331741432,37.549129697316864],[-119.39504811251646,37.54912536020051],[-119.39505309307971,37.549121157668026],[-119.39505825314917,37.549117094743984],[-119.39506358655545,37.54911317628607],[-119.39506908692181,37.54910940697923],[-119.39507474767196,37.54910579133007],[-119.39508056203782,37.549102333661494],[-119.39508652306762,37.549099038107556],[-119.39515763418068,37.54906235185227],[-119.39523006957403,37.54902734652692],[-119.39530376658655,37.54899405241243],[-119.39537866146611,37.548962498309386],[-119.39545468942455,37.54893271151321],[-119.39548031340657,37.54892346562994],[-119.39550631895432,37.54891492174537],[-119.39553267574018,37.5489070898234],[-119.39555935302697,37.548899978997525],[-119.39558631970371,37.54889359756036],[-119.39561354432205,37.54888795295384],[-119.39564099513275,37.54888305176071],[-119.3956686401229,37.548878899696696],[-119.39569644705313,37.5488755016039],[-119.39572438349516,37.548872861445126],[-119.39575241686981,37.54887098229932],[-119.39578051448473,37.54886986635793],[-119.39580864357279,37.548869514922345],[-119.39583677133011,37.548869928402425],[-119.3958648649543,37.54887110631594],[-119.39589289168288,37.54887304728926],[-119.39592081883126,37.5488757490588],[-119.39594861383108,37.54887920847383],[-119.39597624426804,37.54888342149995],[-119.39600367791971,37.548888383224],[-119.39603088279311,37.548894087859644],[-119.39605782716215,37.548900528754174],[-119.39607002698207,37.548903443747044],[-119.39608234549586,37.54890602296523],[-119.39609476812979,37.54890826335734],[-119.39610728018702,37.548910162272804],[-119.39611986686484,37.54891171746508],[-119.39613251327235,37.54891292709427],[-119.39614520444789,37.54891378972928],[-119.39615792537691,37.54891430434958],[-119.39617066100956,37.548914470346304],[-119.39618339627874,37.54891428752306],[-119.39619611611765,37.54891375609618],[-119.39620880547778,37.548912876694345],[-119.39622144934673,37.54891165035797],[-119.39623403276586,37.548910078537894],[-119.39624654084808,37.5489081630937],[-119.39625895879543,37.54890590629149],[-119.39627127191655,37.54890331080123],[-119.39628346564419,37.54890037969356],[-119.39629552555228,37.54889711643621],[-119.39630743737307,37.54889352488985],[-119.39631918701404,37.548889609303515],[-119.39633076057461,37.54888537430966],[-119.39634214436242,37.54888082491854],[-119.39635332490963,37.548875966512455],[-119.39636428898896,37.54887080483921],[-119.39637502362912,37.54886534600547],[-119.39638551613037,37.54885959646938],[-119.39639575407939,37.54885356303307],[-119.39640572536398,37.54884725283451],[-119.39641541818754,37.548840673339114],[-119.39642482108282,37.54883383233087],[-119.39643392292567,37.54882673790318],[-119.39644271294803,37.54881939844923],[-119.39645118075079,37.5488118226521],[-119.39645931631608,37.54880401947447],[-119.39646711001907,37.54879599814805],[-119.39647455263942,37.54878776816259],[-119.39648163537208,37.54877933925471],[-119.39648834983787,37.54877072139638],[-119.39649468809324,37.548761924783086],[-119.39650064263978,37.54875295982184],[-119.39650620643296,37.548743837118735],[-119.39651137289061,37.54873456746655],[-119.39651613590067,37.54872516183186],[-119.3965204898283,37.54871563134216],[-119.39652592811868,37.54870373025666],[-119.39653187964149,37.548691985890244],[-119.39653833728872,37.5486804122689],[-119.39654529334801,37.54866902321457],[-119.39655273951172,37.54865783232887],[-119.39656066688697,37.548646852976674],[-119.39656906600608,37.548636098270265],[-119.39657792683815,37.54862558105368],[-119.39658723880069,37.54861531388719],[-119.39659699077268,37.548605309032546],[-119.39660717110745,37.54859557843819],[-119.39661776764683,37.548586133725024],[-119.39662876773562,37.54857698617249],[-119.39664015823669,37.54856814670524],[-119.39665192554659,37.54855962587987],[-119.39666405561202,37.5485514338725],[-119.39667653394632,37.54854358046653],[-119.39668934564705,37.54853607504096],[-119.39670247541353,37.54852892655926],[-119.39671590756537,37.548522143558564],[-119.39672962606096,37.54851573413955],[-119.39689053179859,37.54844609356318],[-119.39705406639999,37.54838044986636],[-119.39722007330154,37.548318865891964],[-119.39738839357398,37.54826140059624],[-119.39755886607468,37.54820810899235],[-119.39763131838438,37.54818762394111],[-119.39770462406543,37.54816916362649],[-119.3977786938928,37.548152750517566],[-119.39785343771156,37.548138404591676],[-119.39792876454665,37.54812614331],[-119.39800458271347,37.54811598159643],[-119.39808079992952,37.548107931819295],[-119.39815732342679,37.548102003776435],[-119.39823406006441,37.54809820468318],[-119.39831091644228,37.548096539163595],[-119.39838779901453,37.54809700924487],[-119.39846461420339,37.54809961435488],[-119.3985412685131,37.54810435132276],[-119.39861766864371,37.548111214382935],[-119.39869372160457,37.54812019518197],[-119.39876933482745,37.54813128278891],[-119.3988444162793,37.54814446370839],[-119.39888199011088,37.54815109322961],[-119.39891981658543,37.548156738993306],[-119.39895785508394,37.54816139493691],[-119.39899606475971,37.54816505606072],[-119.39903440458218,37.54816771843334],[-119.39907283338104,37.54816937919587],[-119.3991113098904,37.548170036564905],[-119.39914979279315,37.54816968983454],[-119.39918824076531,37.54816833937713],[-119.39922661252045,37.54816598664281],[-119.39926486685391,37.54816263415802],[-119.39930296268717,37.54815828552275],[-119.39935859350236,37.5481504079609],[-119.39941385048955,37.54814100934353],[-119.39946866806407,37.54813010082595],[-119.39952298116285,37.54811769535552],[-119.39957672532164,37.548103807656354],[-119.39962983675159,37.5480884542118],[-119.39968225241498,37.54807165324494],[-119.39973391009997,37.54805342469685],[-119.39978474849448,37.548033790203064],[-119.39983470725909,37.54801277306777],[-119.39988372709846,37.54799039823617],[-119.39993174983185,37.54796669226497],[-119.39997871846218,37.5479416832907],[-119.40002457724357,37.54791540099648],[-119.40006927174763,37.54788787657658],[-119.40011274892802,37.5478591426996],[-119.4001549571834,37.54782923346956],[-119.40019584641874,37.5477981843855],[-119.40023536810465,37.54776603229924],[-119.40027347533506,37.547732815371724],[-119.40031012288293,37.54769857302769],[-119.40034526725385,37.54766334590888],[-119.40037886673771,37.54762717582577],[-119.40041088145813,37.547590105708004],[-119.40044127341986,37.54755217955333],[-119.40047000655386,37.547513442375525],[-119.40049704676,37.54747394015084],[-119.40052236194767,37.547433719763454],[-119.40054592207376,37.54739282894984],[-119.4005619609099,37.5473649725928],[-119.40057917714502,37.547337565393406],[-119.40059755096715,37.547310638889016],[-119.40061706123245,37.54728422406378],[-119.40063768548933,37.547258351313154],[-119.40065940000449,37.54723305040865],[-119.40068217979014,37.54720835046381],[-119.40070599863274,37.54718427990064],[-119.40073082912325,37.547160866416846],[-119.40075664268856,37.547138136954075],[-119.40078340962447,37.547116117666775],[-119.40081109912983,37.54709483389229],[-119.40083967934198,37.54707431012147],[-119.40086911737339,37.547054569970754],[-119.40089937934958,37.547035636154746],[-119.40093043044801,37.54701753046025],[-119.40096223493822,37.5470002737212],[-119.40099475622291,37.546983885794546],[-119.40102795688007,37.54696838553755],[-119.40166246379803,37.54669104346323],[-119.40230468708614,37.546425203003224],[-119.4023495795554,37.546407908455144],[-119.40239520353511,37.54639187337973],[-119.40244150330982,37.54637711735867],[-119.40248842233895,37.546363658411664],[-119.40253590332587,37.54635151297446],[-119.4025838882877,37.54634069587877],[-119.40263231862622,37.54633122033414],[-119.40268113519942,37.546323097911866],[-119.40273027839368,37.54631633853086],[-119.40277968819659,37.54631095044547],[-119.40282930427017,37.546306940235496],[-119.40287906602461,37.54630431279809],[-119.40292891269226,37.54630307134183],[-119.40297878340168,37.54630321738272],[-119.4030286172522,37.546304750742436],[-119.40307835338805,37.54630766954847],[-119.4031279310729,37.546311970236474],[-119.40317728976375,37.54631764755453],[-119.40322636918503,37.546324694569684],[-119.40327510940226,37.54633310267631],[-119.40332345089499,37.5463428616066],[-119.4033713346297,37.54635395944324],[-119.40341870213175,37.546366382633835],[-119.40346549555692,37.54638011600746],[-119.40351165776185,37.54639514279326],[-119.40355713237395,37.54641144464088],[-119.40360186386019,37.54642900164285],[-119.40364579759493,37.54644779235897],[-119.40368887992659,37.54646779384239],[-119.40373105824318,37.54648898166767],[-119.40377691504555,37.546512018877365],[-119.40382375314798,37.546533768535106],[-119.40387151554964,37.54655420417175],[-119.40392014412468,37.546573300917274],[-119.40396957969305,37.546591035531044],[-119.40401976209245,37.546607386430075],[-119.40407063025148,37.546622333715455],[-119.40412212226418,37.54663585919634],[-119.40417417546516,37.54664794641227],[-119.40422672650604,37.54665858065313],[-119.4042797114324,37.546667748977036],[-119.40433306576178,37.546675440226146],[-119.404386724562,37.546681645040245],[-119.40444062253043,37.54668635586805],[-119.40449469407318,37.546689566976475],[-119.40454887338517,37.546691274457636],[-119.40460309453015,37.5466914762335],[-119.40465729152086,37.5466901720585],[-119.4047113983996,37.54668736351982],[-119.4047753138136,37.54668401308179],[-119.40483933452043,37.54668237438032],[-119.40490338823066,37.54668244926575],[-119.40496740261764,37.546684237653565],[-119.40503130539908,37.54668773752437],[-119.4050950244187,37.54669294492622],[-119.40515848772772,37.546699853979206],[-119.405221623666,37.54670845688186],[-119.40528436094299,37.5467187439202],[-119.4053466287182,37.54673070347849],[-119.40540835668128,37.5467443220525],[-119.40562509444233,37.5467982278664],[-119.40583960632017,37.5468575104527],[-119.40605168198043,37.54692211168476],[-119.40626111347585,37.54699196822081],[-119.40633672630996,37.54701953963755],[-119.4064111117428,37.547049152166096],[-119.40648418289395,37.5470807712203],[-119.40655585441772,37.54711435987042],[-119.40662604260278,37.547149878886295],[-119.40669466546991,37.54718728678311],[-119.40676164286775,37.54722653986977],[-119.4068268965665,37.54726759230013],[-119.40689035034913,37.547310396126285],[-119.40695193010048,37.54735490135476],[-119.40701156389386,37.547401056004695],[-119.40706918207499,37.54744880616878],[-119.40712471734335,37.547498096076026],[-119.40717810483089,37.54754886815693],[-119.40722928217765,37.54760106311077],[-119.4072781896048,37.547654619974765],[-119.40732476998426,37.54770947619537],[-119.4073689689056,37.54776556770126],[-119.40741073473954,37.547822828978106],[-119.40745001869827,37.547881193145244],[-119.40748677489246,37.547940592033584],[-119.40752096038491,37.54800095626543],[-119.40755253524063,37.548062215335335],[-119.40758146257367,37.54812429769251],[-119.40760770859004,37.548187130824374],[-119.40763124262736,37.548250641341305],[-119.40765203719066,37.548314755062265],[-119.40767006798445,37.54837939710147],[-119.40768531394129,37.548444491955905],[-119.40769775724618,37.54850996359336],[-119.40770738335772,37.54857573554146],[-119.40772261664301,37.54871058320796],[-119.40774373134157,37.54884492744652],[-119.40777070193515,37.54897860569337],[-119.40780349581915,37.54911145618972],[-119.40784207334178,37.54924331817761],[-119.40788638785195,37.54937403209438],[-119.40793638575559,37.54950343976573],[-119.40799200658041,37.5496313845973],[-119.40805318304882,37.54975771176405],[-119.40811984115928,37.5498822683977],[-119.40819190027577,37.55000490377167],[-119.40826927322522,37.5501254694837],[-119.40835186640287,37.550243819635256],[-119.40843957988544,37.55035981100818],[-119.40853230755205,37.55047330323816],[-119.40862993721242,37.550584158984435],[-119.40873235074267,37.55069224409623],[-119.40883942422812,37.55079742777502],[-119.40895102811325,37.55089958273281],[-119.40906702735842,37.55099858534643],[-119.40918728160322,37.551094315806964],[-119.40931164533635,37.5511866582649],[-119.40943996807158,37.551275500970355],[-119.40957209453002,37.55136073640829],[-119.40970786482795,37.551442261428804],[-119.40984711467026,37.551519977371875],[-119.40998967554937,37.55159379018684],[-119.4101353749492,37.55166361054633],[-119.41028403655392,37.55172935395431],[-119.4104354804614,37.55179094084845],[-119.410589523401,37.551848296696384],[-119.41074597895533,37.551901352086034],[-119.4109046577861,37.551950042809565],[-119.4110653678631,37.55199430994117],[-119.41122791469694,37.55203409990842],[-119.41139210157425,37.55206936455706],[-119.41155772979606,37.552100061209394],[-119.41172459891821,37.5521261527159],[-119.4118925069941,37.552147607500245],[-119.41214450887801,37.55217982957876],[-119.41239494014911,37.55221905331996],[-119.41264349402184,37.55226523067394],[-119.41288986600885,37.55231830507241],[-119.41313375429391,37.552378211497896],[-119.4133748601013,37.55244487656339],[-119.41361288806164,37.55251821860211],[-119.41384754657354,37.552598147767576],[-119.41407854816063,37.5526845661435],[-119.41430560982347,37.552777367863705],[-119.41452845338628,37.55287643924183],[-119.41474680583735,37.552981658910355],[-119.41496039966354,37.55309289796924],[-119.41516897317783,37.55321002014386],[-119.41537227083977,37.553332881951654],[-119.41557004356868,37.55346133287801],[-119.41576204904841,37.55359521556033],[-119.41594805202452,37.55373436598093],[-119.4161278245923,37.553878613667706],[-119.416301146476,37.55402778190296],[-119.41646780529884,37.55418168793977],[-119.41662759684317,37.554340143225716],[-119.41668834317089,37.55440038290178],[-119.41675169870939,37.55445889430225],[-119.41681758594396,37.55451560583352],[-119.41688592426145,37.554570448104144],[-119.41695663004916,37.55462335400971],[-119.41702961679694,37.554674258814984],[-119.4171047952032,37.55472310023316],[-119.41718207328402,37.55476981850202],[-119.41726135648584,37.55481435645714],[-119.41734254780108,37.554856659601825],[-119.41742554788688,37.55489667617381],[-119.41751025518661,37.55493435720858],[-119.41759656605431,37.55496965659936],[-119.41768437488135,37.555002531153505],[-119.41777357422572,37.55503294064534],[-119.41786405494355,37.55506084786545],[-119.4179557063227,37.55508621866617],[-119.41804841621827,37.5551090220034],[-119.41814207118975,37.555129229974646],[-119.41823655663991,37.555146817853014],[-119.41833175695517,37.55516176411772],[-119.41842755564686,37.55517405048022],[-119.41852383549404,37.55518366190666],[-119.41862047868685,37.55519058663632],[-119.41871736697064,37.55519481619596],[-119.41881438179088,37.555196345410195],[-119.41891140443806,37.55519517240783],[-119.41900831619321,37.55519129862421],[-119.41910499847297,37.55518472879937],[-119.41920133297496,37.55517547097224],[-119.41929720182237,37.55516353647094],[-119.41939248770835,37.55514893989874],[-119.41948707403958,37.5551316991163],[-119.41958084507894,37.55511183521972],[-119.41967368608718,37.555089372514836],[-119.41976548346331,37.55506433848736],[-119.41985612488374,37.555036763769316],[-119.41994549943959,37.55500668210153],[-119.42003349777261,37.5549741302923],[-119.42012001220884,37.554939148172366],[-119.42020493689054,37.554901778546174],[-119.42028816790562,37.55486206713948],[-119.42036960341487,37.55482006254339],[-119.42044914377657,37.554775816154894],[-119.42052669166836,37.55472938211393],[-119.4206021522065,37.554680817237134],[-119.4206754330618,37.55463018094839],[-119.42085070589096,37.55450056835528],[-119.42102060408175,37.554366496685816],[-119.42118494876435,37.554228107114554],[-119.42134356691955,37.55408554536187],[-119.4214962915609,37.55393896154051],[-119.42164296191042,37.553788509997425],[-119.42178342356793,37.55363434915118],[-119.4219175286735,37.553476641325084],[-119.42204513606293,37.553315552576194],[-119.42213977178776,37.553196311652776],[-119.42223946654208,37.55307971307667],[-119.42234410402257,37.55296589284373],[-119.42245356216259,37.55285498370869],[-119.42256771327455,37.55274711503038],[-119.42268642419906,37.552642412620756],[-119.4228095564601,37.552540998598325],[-119.42293696642666,37.55244299124579],[-119.42306850548032,37.552348504872],[-119.42320402018845,37.55225764967881],[-119.42334335248336,37.55217053163251],[-119.4234863398465,37.55208725234039],[-119.42363281549815,37.55200790893209],[-119.42378260859171,37.551932593946596],[-119.42393554441311,37.55186139522415],[-119.42409144458446,37.55179439580399],[-119.42425012727205,37.55173167382743],[-119.42441140739832,37.55167330244686],[-119.42457509685784,37.55161934974042],[-119.42474100473632,37.55156987863261],[-119.42490893753344,37.551524946821],[-119.42507869938835,37.551484606708904],[-119.42525009230803,37.551448905344365],[-119.42655498204195,37.550920935630565],[-119.42783619044242,37.55035741346869],[-119.42909218995219,37.54975901097168],[-119.43032148318669,37.549126441837615],[-119.43152260472317,37.548460460495754],[-119.43269412285117,37.54776186120355],[-119.43383464128198,37.547031477096404],[-119.43494280081507,37.54627017919076],[-119.43601728095994,37.545478875342205],[-119.4370568015107,37.544658509159476],[-119.43806012407208,37.5438100588759],[-119.43902605353476,37.542934536179644],[-119.43995343949851,37.54203298500393],[-119.44084117764102,37.541106480279055],[-119.44168821103146,37.540156126647446],[-119.4424935313864,37.53918305714342],[-119.4432561802673,37.538188431839146],[-119.44335404126309,37.53806070023503],[-119.44345726794171,37.5379356756126],[-119.44356574231233,37.53781350084612],[-119.44367934038898,37.537694315552415],[-119.44379793233249,37.537578255931386],[-119.4439213825987,37.537465454610484],[-119.44404955009358,37.53735604049307],[-119.44418228833446,37.53725013861124],[-119.4443194456174,37.53714786998302],[-119.44446086519059,37.5370493514741],[-119.4446063854336,37.53695469566432],[-119.44475584004189,37.536864010719086],[-119.44490905821695,37.53677740026582],[-119.44506586486145,37.53669496327559],[-119.44522608077922,37.53661679395012],[-119.44538952288018,37.53654298161405],[-119.4455560043892,37.53647361061304],[-119.44572533505978,37.53640876021743],[-119.44589732139117,37.5363485045316],[-119.4460717668495,37.53629291240946],[-119.44624847209228,37.53624204737562],[-119.44642723519601,37.53619596755312],[-119.44660785188698,37.53615472559679],[-119.44679011577446,37.536118368633204],[-119.44697381858643,37.536086938206864],[-119.44715875040751,37.536060470232805],[-119.44734469991874,37.53603899495546],[-119.46551696996517,37.5358063330894],[-119.48420693226797,37.536093876675615],[-119.50518063169882,37.53593828352632],[-119.50762084292157,37.53599769843372],[-119.52123067282369,37.5363283818418],[-119.52296012615726,37.5362288677008],[-119.52301419138922,37.53621744957004],[-119.52306773295085,37.53620456131238],[-119.5231206878228,37.536190218097595],[-119.52317299367643,37.536174436807975],[-119.52322458894702,37.53615723601839],[-119.52327541290641,37.53613863597453],[-119.52332540573447,37.53611865856899],[-119.52337450858934,37.53609732731554],[-119.52342266367694,37.53607466732142],[-119.52346981431882,37.53605070525785],[-119.5235159050189,37.53602546932851],[-119.5235608815289,37.535998989236404],[-119.5236046909121,37.535971296148986],[-119.52364728160569,37.535942422661314],[-119.52368860348139,37.5359124027578],[-119.52372860790456,37.535881271772055],[-119.5237672477914,37.535849066345556],[-119.52380447766427,37.53581582438421],[-119.5238402537054,37.535781585014],[-119.52387453380831,37.53574638853472],[-119.52390727762742,37.535710276372654],[-119.52393844662555,37.53567329103182],[-119.52396800411915,37.53563547604385],[-119.52399591532175,37.535596875916845],[-119.52402214738456,37.535557536082905],[-119.52404666943532,37.53551750284471],[-119.52406945261458,37.535476823321],[-119.52409047010968,37.535435545391096],[-119.52410969718628,37.53539371763857],[-119.52412711121738,37.53535138929404],[-119.52414269171015,37.53530861017724],[-119.52415642032973,37.535265430638326],[-119.52416828092116,37.5352219014987],[-119.524178259528,37.53517807399118],[-119.52418634440907,37.535133999699575],[-119.52419252605202,37.53508973049811],[-119.52419679718469,37.53504531849034],[-119.52419915278342,37.53500081594779],[-119.52419959007926,37.53495627524843],[-119.52422365242278,37.534917131964775],[-119.52424940512621,37.53487867684246],[-119.52427681719789,37.53484095615577],[-119.52430585564959,37.53480401529513],[-119.52433648553614,37.534767898712495],[-119.52436866999754,37.534732649867884],[-119.52440237030328,37.53469831117712],[-119.52443754589893,37.53466492396068],[-119.52447415445502,37.53463252839417],[-119.52451215191795,37.53460116345977],[-119.52455149256294,37.53457086689948],[-119.52459212904918,37.53454167516963],[-119.52463401247671,37.53451362339708],[-119.5246770924452,37.53448674533693],[-119.5247213171148,37.53446107333185],[-119.52476663326831,37.534436638273284],[-119.52481298637534,37.53441346956417],[-119.52486032065788,37.53439159508362],[-119.52490857915734,37.53437104115332],[-119.5249577038033,37.53435183250602],[-119.52500763548312,37.534333992255554],[-119.52505831411325,37.53431754186921],[-119.52510967871143,37.53430250114175],[-119.5265036987874,37.53387442563822],[-119.52654246611345,37.533857248835275],[-119.52658194464667,37.53384113205414],[-119.52662208870038,37.533826093945805],[-119.52666285181805,37.53381215191291],[-119.52670418682663,37.53379932208974],[-119.52674604589151,37.53378761932344],[-119.52678838057155,37.5337770571569],[-119.52683114187536,37.533767647813015],[-119.52687428031788,37.53375940218065],[-119.52691774597764,37.53375232980192],[-119.5269614885546,37.533746438861236],[-119.5270054574283,37.53374173617581],[-119.52704960171634,37.53373822718774],[-119.52709387033347,37.53373591595776],[-119.5271382120505,37.5337348051605],[-119.52718257555374,37.53373489608141],[-119.52722690950417,37.53373618861527],[-119.52727116259705,37.53373868126635],[-119.52731528362122,37.533742371150026],[-119.52735922151824,37.53374725399623],[-119.52740292544168,37.533753324154425],[-119.52744634481574,37.533760574599945],[-119.52748942939392,37.53376899694234],[-119.52753212931711,37.53377858143498],[-119.52757439517127,37.53378931698636],[-119.52761617804464,37.53380119117287],[-119.52765742958425,37.53381419025327],[-119.52769810205204,37.533828299184556],[-119.52773814837991,37.5338435016393],[-119.52777752222431,37.53385978002466],[-119.52781542566275,37.533871537601705],[-119.52785380502812,37.53388227151859],[-119.52789261674076,37.53389196958701],[-119.52793181673002,37.53390062079473],[-119.52797136048439,37.533908215318334],[-119.52801120310184,37.53391474453418],[-119.52805129934106,37.53392020102835],[-119.52809160367264,37.533924578604946],[-119.52813207033088,37.533927872293226],[-119.52817265336577,37.533930078353215],[-119.52821330669506,37.533931194279894],[-119.52825398415675,37.53393121880614],[-119.52829463956142,37.53393015190411],[-119.52833522674462,37.53392799478526],[-119.5283756996195,37.53392474989899],[-119.52841601222892,37.53392042092993],[-119.52845611879779,37.5339150127936],[-119.52849597378498,37.53390853163098],[-119.52853553193513,37.53390098480143],[-119.52857474832987,37.533892380874406],[-119.52861357843906,37.533882729619705],[-119.52867398370267,37.53386768463622],[-119.52873497122957,37.53385421150837],[-119.52879647654255,37.53384232448017],[-119.528858434617,37.53383203611876],[-119.52892077994977,37.533823357301145],[-119.52898344662842,37.53381629720272],[-119.52904636840074,37.533810863287485],[-119.52910947874499,37.53380706130027],[-119.52917271094003,37.53380489526058],[-119.52923599813597,37.533804367458394],[-119.5292992734247,37.53380547845171],[-119.52936246991084,37.533808227066],[-119.5296607180145,37.53382868303235],[-119.52995805494061,37.53385629901087],[-119.53025420973653,37.53389104983615],[-119.53054891252592,37.53393290384099],[-119.53084189475426,37.53398182288532],[-119.53113288943358,37.53403776239083],[-119.53133503131292,37.5340763343149],[-119.53153868464342,37.53410948326627],[-119.53174362007175,37.53413717191249],[-119.53194960679983,37.534159369070544],[-119.53215641284497,37.53417604974184],[-119.53236380530117,37.53418719514056],[-119.53257155060163,37.53419279271466],[-119.53262129585275,37.53419479446077],[-119.53267109765702,37.53419545539479],[-119.53272089904287,37.534194774760614],[-119.53277064303923,37.534192753336896],[-119.53282027274071,37.534189393436066],[-119.53286973137261,37.5341846989017],[-119.53291896235606,37.53417867510422],[-119.53296790937256,37.534171328934626],[-119.53301651642856,37.53416266879667],[-119.53306472791945,37.53415270459723],[-119.5331124886932,37.534141447735024],[-119.53315974411343,37.534128911087436],[-119.53320644012194,37.534115108995934],[-119.53325252330066,37.53410005724962],[-119.5332979409325,37.53408377306706],[-119.53334264106196,37.53406627507676],[-119.53338657255442,37.53404758329569],[-119.5334296851546,37.53402771910648],[-119.53347192954416,37.53400670523293],[-119.53350590627296,37.53398507064704],[-119.53354078170909,37.533964362840294],[-119.53357651600834,37.533944605470346],[-119.53361306834545,37.533925821109],[-119.5336503969606,37.53390803121644],[-119.53368845920731,37.533891256116654],[-119.533727211601,37.53387551497435],[-119.53376660986869,37.5338608257729],[-119.5338066089997,37.53384720529394],[-119.53384716329684,37.53383466909814],[-119.5338882264289,37.53382323150737],[-119.5339297514833,37.53381290558847],[-119.53397169101987,37.533803703138176],[-119.53401399712492,37.53379563466978],[-119.53405662146609,37.53378870940109],[-119.53409951534746,37.533782935243764],[-119.53414262976519,37.53377831879447],[-119.53418591546357,37.53377486532722],[-119.53422932299124,37.53377257878739],[-119.53427280275758,37.53377146178726],[-119.53433806142088,37.533762771921914],[-119.53440365837177,37.5337558842531],[-119.53446951515691,37.533750807018386],[-119.53453555301229,37.53374754629009],[-119.5346016929574,37.53374610596802],[-119.53466785588958,37.53374648777477],[-119.53473396267877,37.53374869125372],[-119.534799934262,37.5337527137695],[-119.53486569173799,37.53375855051126],[-119.53493115646145,37.533766194498305],[-119.53499625013723,37.53377563658851],[-119.53506089491377,37.53378686548923],[-119.53512501347637,37.53379986777079],[-119.53518852913952,37.53381462788259],[-119.53525136593866,37.533831128171634],[-119.53531344872101,37.533849348903765],[-119.53537470323542,37.53386926828703],[-119.53543505622117,37.533890862497984],[-119.53549443549561,37.53391410571008],[-119.53555277004043,37.53393897012447],[-119.53560999008656,37.53396542600344],[-119.53566602719775,37.53399344170572],[-119.53572081435225,37.53402298372458],[-119.53577428602304,37.53405401672771],[-119.53582637825622,37.53408650359956],[-119.53584999085692,37.53410220597285],[-119.53587426765422,37.53411725232882],[-119.53589917992292,37.53413162486383],[-119.53592469818588,37.53414530657156],[-119.53595079224891,37.534158281263075],[-119.53597743123636,37.53417053358605],[-119.53600458362786,37.53418204904287],[-119.5360322172954,37.534192814007845],[-119.53606029954155,37.534202815743235],[-119.53608879713796,37.53421204241446],[-119.53611767636488,37.53422048310401],[-119.53614690305086,37.53422812782437],[-119.53617644261335,37.53423496752987],[-119.53620626009953,37.53424099412742],[-119.53623632022769,37.53424620048598],[-119.536266587429,37.53425058044507],[-119.5362970258896,37.534254128822106],[-119.5363275995929,37.534256841418426],[-119.53635827236242,37.53425871502431],[-119.53638900790428,37.53425974742282],[-119.53641976985041,37.53425993739235],[-119.53645052180147,37.534259284708135],[-119.53648122736999,37.534257790142455],[-119.53651185022329,37.53425545546379],[-119.53656702546819,37.53425482584469],[-119.53662219487477,37.53425572305083],[-119.53667729184092,37.53425814599909],[-119.53673224985194,37.5342620917644],[-119.5367870025609,37.53426755558332],[-119.53684148386861,37.53427453085976],[-119.53689562800358,37.53428300917297],[-119.53694936960119,37.53429298028763],[-119.53700264378278,37.53430443216633],[-119.53705538623387,37.53431735098401],[-119.53710753328176,37.53433172114462],[-119.5371590219725,37.534347525300056],[-119.5372097901468,37.534364744371],[-119.53725977651504,37.534383357569986],[-119.53730892073136,37.53440334242652],[-119.53735716346637,37.53442467481413],[-119.53740444647885,37.534447328979596],[-119.53745071268608,37.534471277573914],[-119.53749590623266,37.534496491685395],[-119.53753997255801,37.534522940874545],[-119.53758285846222,37.53455059321081],[-119.53762451217021,37.53457941531107],[-119.53766488339436,37.53460937238002],[-119.53770392339507,37.534640428252075],[-119.53779894974718,37.534716479602636],[-119.53789667693192,37.53479032861318],[-119.53799702450029,37.53486191448529],[-119.53809990984516,37.53493117828357],[-119.53813681524474,37.53495448373161],[-119.53817469461319,37.534976776182994],[-119.53821350412532,37.534998029845596],[-119.53825319887966,37.53501822012914],[-119.5382937329504,37.5350373236736],[-119.53833505944047,37.53505531837636],[-119.538377130536,37.53507218341764],[-119.53841989756144,37.535087899284676],[-119.53846331103593,37.535102447794316],[-119.53850732073064,37.53511581211397],[-119.53855187572681,37.53512797678119],[-119.53859692447467,37.535138927721476],[-119.5386424148531,37.53514865226464],[-119.53868829423001,37.535157139159374],[-119.53873450952311,37.535164378586394],[-119.5389344433645,37.535195298113436],[-119.539133159123,37.53523085059365],[-119.53933048755607,37.535271005747916],[-119.53952626060193,37.53531572937711],[-119.53972031152264,37.53536498339113],[-119.5398516263356,37.53540203639258],[-119.5399812445146,37.53544270186766],[-119.5401090094052,37.53548693066962],[-119.54023476659202,37.53553466934509],[-119.54035836408524,37.535585860198694],[-119.54047965250423,37.53564044136274],[-119.54059848525822,37.53569834687198],[-119.54071471872317,37.53575950674332],[-119.54082821241549,37.5358238470603],[-119.54103307854281,37.53594796132905],[-119.54123339986036,37.536076694448305],[-119.54142901219659,37.536209940931215],[-119.54161975523593,37.53634759159192],[-119.54177118890487,37.53646387614492],[-119.54191767345293,37.53658411395847],[-119.54205904620856,37.53670817152791],[-119.54207664832684,37.536723594500096],[-119.54209491408369,37.536738520107015],[-119.54211382133177,37.53675293025098],[-119.54213334714586,37.536766807459266],[-119.54215346785075,37.53678013490539],[-119.54217415904976,37.536792896429446],[-119.54219539565452,37.53680507655767],[-119.54221715191521,37.53681666052131],[-119.54223940145195,37.53682763427443],[-119.54226211728668,37.53683798451107],[-119.54228527187593,37.53684769868115],[-119.54230883714413,37.53685676500599],[-119.54233278451778,37.53686517249235],[-119.54235708496002,37.53687291094587],[-119.54238170900584,37.53687997098342],[-119.5424066267978,37.53688634404446],[-119.54243180812234,37.53689202240144],[-119.54245722244623,37.536896999169144],[-119.54248283895377,37.53690126831308],[-119.54250862658407,37.536904824656744],[-119.54253455406875,37.53690766388797],[-119.54256058996978,37.53690978256407],[-119.54258670271774,37.536911178116064],[-119.54261286064997,37.536911848851815],[-119.54263903204907,37.53691179395803],[-119.54266518518124,37.53691101350125],[-119.54267331551208,37.53691054727581],[-119.54268142121,37.53690986099661],[-119.54268949288539,37.536908955458664],[-119.54269752118807,37.53690783171092],[-119.54270549681812,37.53690649105511],[-119.54271341053659,37.53690493504426],[-119.5427212531763,37.536903165480865],[-119.54272901565234,37.536901184414724],[-119.5427366889728,37.536898994140735],[-119.54274426424888,37.53689659719607],[-119.54275173270548,37.536893996357385],[-119.54275908569116,37.53689119463741],[-119.54276631468832,37.536888195281676],[-119.54277341132291,37.536885001764624],[-119.54278036737429,37.53688161778558],[-119.54278717478464,37.53687804726453],[-119.54279382566827,37.53687429433755],[-119.54280031232092,37.536870363351994],[-119.5428066272285,37.5368662588615],[-119.54281276307593,37.536861985620654],[-119.5428187127555,37.53685754857957],[-119.54282446937516,37.53685295287807],[-119.54284853881984,37.53683375127454],[-119.54287343164975,37.536815227328006],[-119.54289911779526,37.53679740341422],[-119.5429255662286,37.53678030106339],[-119.54295274500126,37.53676394093403],[-119.54298062128255,37.53674834278812],[-119.54300916139931,37.53673352546721],[-119.54303833087664,37.53671950686963],[-119.54306809447941,37.536706303928916],[-119.54309841625486,37.53669393259334],[-119.54312925957616,37.5366824078066],[-119.54316058718642,37.5366717434899],[-119.54319236124388,37.536661952524916],[-119.54322454336753,37.53665304673853],[-119.54325709468354,37.53664503688826],[-119.54328997587203,37.53663793264945],[-119.54332314721485,37.536631742603525],[-119.54335656864332,37.53662647422763],[-119.54339019978669,37.536622133885515],[-119.54342400002093,37.536618726820116],[-119.54345792851778,37.536616257146804],[-119.5434919442941,37.53661472784885],[-119.54352600626123,37.53661414077351],[-119.54356007327483,37.53661449662992],[-119.54359410418442,37.53661579498825],[-119.54362805788311,37.53661803428016],[-119.54366189335732,37.53662121180075],[-119.54369556973617,37.53662532371182],[-119.54372904634104,37.53663036504645],[-119.54376228273455,37.53663632971506],[-119.54379523876945,37.53664321051281],[-119.54382787463713,37.53665099912814],[-119.54386015091563,37.53665968615298],[-119.54389202861742,37.53666926109399],[-119.54392346923625,37.53667971238532],[-119.54395443479389,37.536691027402554],[-119.54398488788586,37.536703192477894],[-119.54401479172664,37.53671619291679],[-119.54404411019411,37.53673001301561],[-119.54405275320126,37.53673408946902],[-119.54406156646834,37.5367379277988],[-119.54407053965355,37.536741523500936],[-119.54407966222757,37.53674487235616],[-119.5440889234857,37.536747970434796],[-119.54409831256055,37.53675081410147],[-119.54410781843468,37.53675340001934],[-119.54411742995366,37.53675572515402],[-119.544127135839,37.536757786777144],[-119.54413692470158,37.536759582469514],[-119.54414678505483,37.536761110124004],[-119.54415670532835,37.53676236794805],[-119.54416667388138,37.536763354465656],[-119.54417667901649,37.536764068519226],[-119.54418670899338,37.536764509270846],[-119.54419675204255,37.53676467620338],[-119.5442067963792,37.53676456912089],[-119.54421683021701,37.536764188149036],[-119.54422684178195,37.536763533734884],[-119.54423681932613,37.53676260664632],[-119.54424675114161,37.53676140797125],[-119.54425662557412,37.536759939116195],[-119.5442664310367,37.536758201804794],[-119.54427615602332,37.53675619807563],[-119.54428578912237,37.53675393027997],[-119.54429531903013,37.53675140107887],[-119.54430473456392,37.5367486134402],[-119.54431402467529,37.53674557063506],[-119.54432317846295,37.53674227623394],[-119.54433218518561,37.53673873410263],[-119.54434103427454,37.53673494839752],[-119.54434971534594,37.53673092356091],[-119.5443582182133,37.53672666431563],[-119.54436653289909,37.536722175659634],[-119.54437464964666,37.53671746285999],[-119.54438255893162,37.5367125314469],[-119.54439025147305,37.53670738720695],[-119.54439771824435,37.536702036176564],[-119.54440495048387,37.5366964846348],[-119.54441193970511,37.53669073909596],[-119.54441867770683,37.53668480630204],[-119.54451132297443,37.53659815253351],[-119.5446011487895,37.53650963640591],[-119.54468809614706,37.53641931607389],[-119.54470726642093,37.53639959326244],[-119.54472729061594,37.536380416055586],[-119.54474814426318,37.53636180788669],[-119.54476980188022,37.536343791493664],[-119.54479223700233,37.53632638889139],[-119.54481542221474,37.536309621344685],[-119.54483932918617,37.53629350934235],[-119.54486392870356,37.53627807257215],[-119.54488919070752,37.536263329896755],[-119.54491508432929,37.536249299330684],[-119.54494157792836,37.536235998018306],[-119.54496863913111,37.53622344221286],[-119.54499623487042,37.536211647256636],[-119.5450243314261,37.53620062756222],[-119.54505289446597,37.5361903965949],[-119.54508188908788,37.53618096685613],[-119.5451112798625,37.53617234986836],[-119.54514103087628,37.53616455616094],[-119.54517110577567,37.536157595257144],[-119.54520146781127,37.53615147566271],[-119.54523207988296,37.53614620485531],[-119.54526290458503,37.536141789275455],[-119.54529390425203,37.5361382343187],[-119.54532504100473,37.53613554432885],[-119.54535627679637,37.536133722592936],[-119.54538757345925,37.53613277133695],[-119.54541889275119,37.53613269172326],[-119.54545019640243,37.53613348384915],[-119.54548144616237,37.53613514674671],[-119.54551260384615,37.53613767838396],[-119.54554363138145,37.536141075667494],[-119.54557449085503,37.53614533444606],[-119.5456051445589,37.53615044951575],[-119.54563555503655,37.53615641462637],[-119.54566568512858,37.53616322248897],[-119.54569549801825,37.53617086478487],[-119.5457249572763,37.53617933217577],[-119.54575402690566,37.53618861431512],[-119.54584549978878,37.536220635839754],[-119.54593569559647,37.53625487771447],[-119.54602452936415,37.53629130768397],[-119.54611191740989,37.5363298914319],[-119.54619777741328,37.53637059261292],[-119.54628202849284,37.53641337288709],[-119.54636459128231,37.536458191955944],[-119.54645092902399,37.536504882210906],[-119.54653922300281,37.5365491919395],[-119.54662936975693,37.53659106921843],[-119.54672126365296,37.53663046497475],[-119.54681479700949,37.53666733304338],[-119.54690986022356,37.53670163022118],[-119.54700634189894,37.53673331631757],[-119.54710412897673,37.536762354201734],[-119.54720310686797,37.536788709846014],[-119.54730315958781,37.53681235236591],[-119.5473843127246,37.53682919874597],[-119.54746611373974,37.53684392472527],[-119.54754847528781,37.53685651457965],[-119.54763130942473,37.5368669548659],[-119.54771452770169,37.53687523443603],[-119.54779804125963,37.53688134444927],[-119.54788176092406,37.536885278381405],[-119.54796559730038,37.5368870320319],[-119.54804946086931,37.53688660352819],[-119.54813326208263,37.536883993327855],[-119.54821691145857,37.536879204217996],[-119.54830031967767,37.536872241312366],[-119.54838339767792,37.53686311204584],[-119.54846605675006,37.536851826166505],[-119.54857174250924,37.53683744418601],[-119.54867797796683,37.53682591303446],[-119.54878464189362,37.53681724587044],[-119.54889161257141,37.5368114525844],[-119.54899876793226,37.536808539787245],[-119.54910598569737,37.53680851080287],[-119.5492131435169,37.53681136566435],[-119.54932011910928,37.53681710111391],[-119.5494267904009,37.53682571060659],[-119.54953303566526,37.53683718431785],[-119.54963873366187,37.53685150915458],[-119.54974376377453,37.53686866877018],[-119.549848006149,37.53688864358315],[-119.54995134182971,37.53691141079947],[-119.54997383694423,37.536916361870354],[-119.54999653211894,37.536920695475835],[-119.55001940063444,37.53692440651389],[-119.55004241556726,37.53692749061544],[-119.55006554982154,37.53692994414951],[-119.55008877616088,37.53693176422753],[-119.55011206724049,37.53693294870672],[-119.55013539563942,37.536933496192496],[-119.55015873389267,37.536933406040326],[-119.55018205452372,37.536932678356386],[-119.55020533007674,37.53693131399734],[-119.55022853314901,37.53692931456952],[-119.55025163642316,37.53692668242684],[-119.55027461269927,37.536923420668174],[-119.550297434927,37.536919533133684],[-119.55032007623737,37.536915024400216],[-119.55034250997441,37.53690989977595],[-119.55036470972651,37.536904165294246],[-119.55142116232977,37.53662435335141],[-119.55248425278957,37.53636097570474],[-119.5526955819767,37.53631328901106],[-119.5529086930426,37.53627092880459],[-119.55312337434745,37.53623393715255],[-119.55333941269302,37.536202350790774],[-119.55355659353444,37.53617620108707],[-119.55377470119288,37.53615551401021],[-119.5539935190698,37.53614031010409],[-119.55421282986181,37.5361306044674],[-119.55443241577635,37.5361264067386],[-119.554456085664,37.53612657698405],[-119.55447973404041,37.53612739824172],[-119.5545033326787,37.53612886953129],[-119.55452685341129,37.53613098909667],[-119.55455026816365,37.53613375440793],[-119.55457354898772,37.53613716216433],[-119.55459666809523,37.53614120829835],[-119.55461959789102,37.53614588798051],[-119.55464231100581,37.53615119562508],[-119.55466223706753,37.536155854496855],[-119.55468235182923,37.53615996712839],[-119.5547026316847,37.53616352869323],[-119.55472305283409,37.536166535011574],[-119.55474359131162,37.53616898255532],[-119.5547642230138,37.536170868452054],[-119.55478492372781,37.53617219048854],[-119.55480566915976,37.53617294711329],[-119.55482643496329,37.536173137438325],[-119.55484719676816,37.536172761240294],[-119.55486793020884,37.536171818960696],[-119.55488861095299,37.536170311705355],[-119.55490921473023,37.53616824124317],[-119.55492971736047,37.53616561000396],[-119.55495009478228,37.536162421075694],[-119.55497032308128,37.536158678200856],[-119.55499037851803,37.53615438577193],[-119.55501023755596,37.536149548826444],[-119.55502987688911,37.53614417304092],[-119.55504927346924,37.53613826472421],[-119.55506840453307,37.53613183081022],[-119.55508724762896,37.53612487884958],[-119.55509282869133,37.53612263224127],[-119.5550983103475,37.53612023544869],[-119.55510368622683,37.53611769125737],[-119.55510895008152,37.53611500262411],[-119.5551140957941,37.53611217267359],[-119.55511911738428,37.53610920469472],[-119.55512400901614,37.536106102136834],[-119.55512876500468,37.53610286860563],[-119.55513337982266,37.5360995078591],[-119.55513784810681,37.536096023803],[-119.55514216466426,37.53609242048645],[-119.55514632447834,37.53608870209714],[-119.55515032271468,37.53608487295649],[-119.5551541547266,37.53608093751466],[-119.5551578160607,37.53607690034537],[-119.55516130246184,37.53607276614048],[-119.5551646098782,37.536068539704694],[-119.5551677344661,37.536064225949886],[-119.55517067259417,37.5360598298894],[-119.55521084364496,37.53599954521727],[-119.55525338719482,37.535940301690026],[-119.55529826073219,37.53588215849884],[-119.55534541941788,37.53582517373534],[-119.55539481612995,37.53576940433372],[-119.55544640151078,37.53571490601363],[-119.5555001240163,37.53566173322478],[-119.5555559299676,37.53560993909232],[-119.55557145395758,37.53559645469419],[-119.55558754710988,37.53558340029944],[-119.55560419065358,37.535570791134354],[-119.55562136517585,37.535558641905915],[-119.55563905064453,37.53554696678464],[-119.55565722643159,37.535535779388084],[-119.55567587133709,37.53552509276487],[-119.55569496361399,37.53551491937958],[-119.55571448099344,37.535505271098124],[-119.5557344007108,37.53549615917398],[-119.55575469953222,37.535487594235],[-119.55577535378163,37.53547958627108],[-119.55579633936848,37.535472144622425],[-119.55581763181578,37.535465277968754],[-119.55583920628861,37.535458994319114],[-119.5558610376232,37.53545330100255],[-119.5558831003561,37.53544820465952],[-119.55590536875403,37.53544371123426],[-119.55592781684386,37.53543982596776],[-119.55595041844289,37.53543655339165],[-119.55597314718935,37.53543389732294],[-119.55599597657319,37.53543186085958],[-119.55601887996704,37.53543044637688],[-119.55604183065711,37.53542965552456],[-119.55606480187453,37.53542948922512],[-119.55608776682645,37.53542994767248],[-119.55611069872737,37.53543103033196],[-119.55613357083027,37.53543273594073],[-119.55615635645798,37.53543506250946],[-119.55617902903404,37.53543800732453],[-119.55620156211397,37.535441566951185],[-119.55625363831024,37.535449773390766],[-119.55630604400618,37.5354565198106],[-119.55635871467312,37.535461797903686],[-119.55641158545608,37.53546560117085],[-119.5564645912536,37.53546792492906],[-119.55651766679802,37.53546876631703],[-119.55657074673572,37.535468124298674],[-119.55662376570773,37.53546599966458],[-119.55667665843009,37.53546239503086],[-119.55672935977435,37.53545731483599],[-119.55740605746259,37.53537243861751],[-119.55745236875737,37.53536530750013],[-119.55749835787425,37.53535695821897],[-119.55754397429936,37.53534739994479],[-119.55758916792827,37.53533664317626],[-119.55763388912104,37.53532469972854],[-119.55767808875666,37.53531158272013],[-119.55772171828707,37.53529730655858],[-119.55776472979056,37.53528188692466],[-119.55780707602426,37.53526534075503],[-119.55784871047612,37.53524768622383],[-119.55788958741606,37.53522894272246],[-119.55792966194602,37.53520913083849],[-119.55796889004955,37.535188272332974],[-119.55808965306919,37.53512394864766],[-119.55821290356377,37.535062690172325],[-119.55833851889156,37.53500455785992],[-119.55846637405861,37.5349496095528],[-119.55859634184323,37.534897899924985],[-119.55872829292242,37.53484948042794],[-119.55886209600064,37.53480439923927],[-119.55899761794032,37.53476270121493],[-119.55911449255484,37.534730229922474],[-119.55923270416005,37.534700988609615],[-119.5593521120468,37.534675012082396],[-119.55947257408248,37.534652331260766],[-119.55959394688013,37.534632973141754],[-119.55971608596914,37.5346169607673],[-119.55983884596701,37.534604313197],[-119.55996208075244,37.534595045485176],[-119.56008564363925,37.534589168663224],[-119.56022058933645,37.53458641257953],[-119.56035557521298,37.534587259769694],[-119.56049044960191,37.53459170928187],[-119.56062506096158,37.53459975611668],[-119.56075925804572,37.53461139123285],[-119.56089289007335,37.534626601557456],[-119.56102580689814,37.534645370000476],[-119.56115785917704,37.53466767547409],[-119.561288898538,37.53469349291631],[-119.56141877774664,37.534722793319126],[-119.56154735087165,37.53475554376111],[-119.56162657742098,37.5347780577712],[-119.56170483300698,37.5348026311876],[-119.5617820332433,37.53482923751208],[-119.5618580948813,37.53485784805412],[-119.56193293589989,37.5348884319621],[-119.56200647559395,37.53492095625628],[-119.56207863466128,37.534955385864606],[-119.56214933528817,37.53499168366032],[-119.56221850123319,37.53502981050208],[-119.5622860579096,37.53506972527625],[-119.5623519324656,37.535111384941],[-119.5624160538629,37.53515474457291],[-119.56247835295342,37.535199757415285],[-119.56253876255376,37.53524637492867],[-119.56259721751766,37.535294546843105],[-119.56262380088367,37.53531642351584],[-119.56265130867135,37.53533756303806],[-119.56267970866656,37.535357940652915],[-119.56270896761022,37.53537753249577],[-119.56273905123722,37.53539631562219],[-119.56276992431663,37.53541426803488],[-119.56280155069277,37.53543136870935],[-119.56283389332779,37.535447597618585],[-119.56286691434492,37.53546293575657],[-119.56290057507279,37.53547736516038],[-119.56293483609088,37.53549086893142],[-119.56296965727545,37.53550343125505],[-119.56300499784678,37.535515037419195],[-119.56304081641679,37.535525673831565],[-119.56305997313753,37.53553077801187],[-119.56307933594938,37.53553536260083],[-119.56309888263588,37.53553942233816],[-119.56311859076962,37.535542952565805],[-119.56313843773785,37.53554594923325],[-119.56315840076863,37.535548408902194],[-119.56317845695676,37.53555032875045],[-119.56319858329022,37.535551706575205],[-119.56321875667639,37.53555254079561],[-119.56323895396878,37.53555283045447],[-119.56325915199339,37.53555257521944],[-119.56327932757546,37.53555177538339],[-119.56329945756585,37.53555043186401],[-119.56331951886789,37.535548546202854],[-119.5633394884636,37.53554612056346],[-119.56335934344028,37.53554315772899],[-119.56337906101678,37.53553966109892],[-119.56339861856954,37.5355356346852],[-119.56341799365869,37.53553108310768],[-119.56343716405364,37.53552601158872],[-119.56345610775877,37.5355204259473],[-119.5634748030385,37.53551433259224],[-119.56349322844234,37.535507738514966],[-119.56351136282944,37.53550065128132],[-119.56352918539295,37.53549307902307],[-119.5635466756837,37.535485030428454],[-119.56382969659185,37.535346559480786],[-119.56410917925577,37.535203604395534],[-119.56413265106056,37.535190867519304],[-119.56415555928963,37.535177495761175],[-119.56417787687556,37.535163504920924],[-119.56419957744875,37.53514891152971],[-119.56422063536871,37.535133732830744],[-119.5642410257544,37.53511798675877],[-119.5642607245135,37.5351016919189],[-119.56427970837096,37.53508486756468],[-119.56429795489652,37.53506753357529],[-119.56431544253111,37.53504971043201],[-119.56433215061247,37.535031419194176],[-119.56434805939939,37.5350126814741],[-119.56436315009518,37.534993519411714],[-119.5643774048698,37.53497395564824],[-119.564390806881,37.534954013299576],[-119.56440334029406,37.53493371592887],[-119.5644149903007,37.53491308751882],[-119.56442574313641,37.53489215244314],[-119.56443558609683,37.534870935437965],[-119.56445065475364,37.53483845791442],[-119.56446711919111,37.53480641298036],[-119.56448495986888,37.534774838663985],[-119.5645041556134,37.53474377243497],[-119.5645246836432,37.53471325116002],[-119.56454651959582,37.53468331105906],[-119.56456963755676,37.534653987662296],[-119.56459401009023,37.53462531576807],[-119.56461960827178,37.534597329401464],[-119.56464640172254,37.53457006177409],[-119.56467435864535,37.53454354524458],[-119.56470344586236,37.534517811280125],[-119.56473362885464,37.534492890419294],[-119.56476487180291,37.53446881223568],[-119.5647971376302,37.534445605302864],[-119.56483038804575,37.53442329716045],[-119.56486458359055,37.53440191428147],[-119.56489968368412,37.53438148204088],[-119.56493564667261,37.534362024685535],[-119.56497242987825,37.53434356530536],[-119.56500998965018,37.53432612580597],[-119.56504828141591,37.53430972688271],[-119.56508725973448,37.534294387996034],[-119.56512687835028,37.53428012734846],[-119.56517935781199,37.534262936001376],[-119.56523254204585,37.53424717797151],[-119.56528636934436,37.53423287154212],[-119.56534077725405,37.53422003331229],[-119.56539570264786,37.5342086781775],[-119.56545108179847,37.53419881931259],[-119.56550685045214,37.534190468156304],[-119.56556294390322,37.53418363439803],[-119.5656192970694,37.53417832596666],[-119.56567584456695,37.534174549021266],[-119.56573252078684,37.534172307944026],[-119.56578925997056,37.53417160533518],[-119.56584599628673,37.534172442009904],[-119.56590266390712,37.53417481699747],[-119.56595919708332,37.53417872754226],[-119.56601553022286,37.53418416910713],[-119.56607159796528,37.53419113537847],[-119.56612733525802,37.53419961827369],[-119.5661826774319,37.53420960795054],[-119.56664930014195,37.534296661444074],[-119.567117979038,37.53437640484203],[-119.56713764653328,37.534379311007825],[-119.56715742797172,37.5343816764377],[-119.56717729991722,37.534383498329206],[-119.56719723882648,37.534384774523865],[-119.56721722107683,37.534385503509704],[-119.56723722299422,37.53438568442306],[-119.56725722088137,37.53438531704956],[-119.5672771910457,37.53438440182448],[-119.56729710982758,37.534382939832156],[-119.56731695362812,37.53438093280463],[-119.5673366989374,37.53437838311979],[-119.56735632236209,37.53437529379832],[-119.56737580065334,37.534371668500356],[-119.56739511073427,37.53436751152092],[-119.56741422972719,37.53436282778505],[-119.56743313498093,37.53435762284181],[-119.56745180409749,37.5343519028577],[-119.56747021495872,37.534345674609526],[-119.56748834575235,37.5343389454762],[-119.56750617499807,37.53433172343006],[-119.56752368157271,37.5343240170274],[-119.56754084473552,37.53431583539841],[-119.56755764415253,37.534307188236255],[-119.56757405992077,37.53429808578565],[-119.5675900725919,37.534288538830694],[-119.56760566319502,37.53427855868212],[-119.56762081325945,37.534268157163915],[-119.56763550483632,37.534257346599226],[-119.5676497205201,37.534246139795805],[-119.56766344346897,37.534234550030895],[-119.56767665742501,37.5342225910354],[-119.5676893467333,37.53421027697769],[-119.5677014963605,37.53419762244675],[-119.56771309191272,37.53418464243498],[-119.5677241196525,37.534171352320335],[-119.56773456651507,37.53415776784819],[-119.56774442012397,37.534143905112636],[-119.56775366880552,37.534129780537405],[-119.5678044051265,37.53405234352936],[-119.56785850580567,37.53397636454049],[-119.56791590485327,37.53390193623267],[-119.56797653225743,37.53382914937632],[-119.56804031406983,37.53375809273971],[-119.568122954145,37.53367250384795],[-119.56820929013794,37.53358926090764],[-119.56829921711096,37.533508465085305],[-119.56839262576321,37.53343021457318],[-119.56848940256364,37.53335460446975],[-119.56858942988892,37.53328172666442],[-119.56867421821589,37.533220115519924],[-119.56875647037104,37.53315636133153],[-119.56883610099115,37.53309053026994],[-119.56891302743455,37.533022690661255],[-119.56898716986689,37.53295291291607],[-119.56905845134398,37.53288126945637],[-119.56912679789166,37.53280783464033],[-119.5691921385825,37.53273268468515],[-119.56925440560951,37.53265589758788],[-119.56931353435637,37.53257755304462],[-119.56932214588345,37.5325661720914],[-119.56933124494094,37.53255503431356],[-119.5693408207125,37.53254415295067],[-119.5693508618151,37.53253354093747],[-119.56936135631261,37.53252321088857],[-119.56937229173002,37.53251317508333],[-119.56938365506811,37.53250344545142],[-119.56939543281904,37.532494033558464],[-119.56940761098241,37.53248495059249],[-119.56942017508179,37.53247620735042],[-119.56943311018209,37.532467814225406],[-119.56944640090715,37.532459781194376],[-119.56946003145818,37.532452117806244],[-119.56947398563231,37.5324448331705],[-119.56948824684211,37.53243793594638],[-119.56950279813522,37.5324314343327],[-119.56951762221432,37.53242533605788],[-119.569532701458,37.53241964837098],[-119.56954801794144,37.532414378032975],[-119.56956355345788,37.5324095313087],[-119.5695792895402,37.5324051139595],[-119.56959520748285,37.53240113123624],[-119.56961128836413,37.5323975878732],[-119.56962751306871,37.532394488082396],[-119.56964386231019,37.53239183554852],[-119.56966031665424,37.53238963342467],[-119.5696768565416,37.53238788432851],[-119.56969346231125,37.53238659033916],[-119.56971011422394,37.53238575299483],[-119.56972679248551,37.532385373290836],[-119.56974347727055,37.53238545167855],[-119.5697601487458,37.53238598806479],[-119.56977678709396,37.53238698181193],[-119.56979337253694,37.532388431738745],[-119.56980988535966,37.53239033612167],[-119.56982630593332,37.532392692696995],[-119.56984261473876,37.53239549866343],[-119.56985879238967,37.53239875068553],[-119.56987481965568,37.53240244489763],[-119.56989067748513,37.532406576908386],[-119.56990634702778,37.53241114180612],[-119.56992180965717,37.5324161341645],[-119.56993704699285,37.532421548049086],[-119.56995204092206,37.53242737702442],[-119.56996677362149,37.53243361416154],[-119.56998122757825,37.53244025204641],[-119.56999538561082,37.53244728278854],[-119.57000923088941,37.53245469803043],[-119.57002274695601,37.532462488957584],[-119.57018131197397,37.53255397551507],[-119.57034364466607,37.532641171010184],[-119.57050956200996,37.53272397712735],[-119.57067887693951,37.53280230049982],[-119.57085139855589,37.532876052815006],[-119.57102693234276,37.53294515091411],[-119.57120528038581,37.53300951688594],[-119.5713862415959,37.5330690781548],[-119.57156961193583,37.53312376756236],[-119.57161820082528,37.53313677963609],[-119.5716673215441,37.53314845691558],[-119.57171691629138,37.533158785659985],[-119.57176692670828,37.53316775371533],[-119.57181729394676,37.5331753505287],[-119.57186795873895,37.53318156716081],[-119.57191886146664,37.53318639629641],[-119.57196994223173,37.53318983225301],[-119.57202114092651,37.533191870987416],[-119.57207239730448,37.53319251010065],[-119.57212365105131,37.53319174884062],[-119.57217484185571,37.53318958810315],[-119.57222590948054,37.5331860304308],[-119.57227679383351,37.53318108000994],[-119.5723681292131,37.53317196055785],[-119.57245974917657,37.53316487936197],[-119.57255158201764,37.53315984196436],[-119.5726435558635,37.53315685230755],[-119.57268714633771,37.53315534773665],[-119.57273065068345,37.53315269802735],[-119.57277402147754,37.53314890606803],[-119.57281721144237,37.53314397599224],[-119.57286017349753,37.53313791317414],[-119.57290286081101,37.533130724222666],[-119.57294522685038,37.533122416974365],[-119.57298722543347,37.53311300048478],[-119.57302881077867,37.5331024850186],[-119.57306993755492,37.53309088203853],[-119.57311056093107,37.53307820419266],[-119.57315063662485,37.53306446530085],[-119.57317206318947,37.533057133860304],[-119.57319379380185,37.533050393817724],[-119.57321580273236,37.533044253153484],[-119.57323806392185,37.53303871913825],[-119.57326055101255,37.53303379832444],[-119.5732832373792,37.53302949653838],[-119.5733060961606,37.5330258188735],[-119.57332910029145,37.53302276968422],[-119.57335222253434,37.533020352580856],[-119.57337543551203,37.53301857042532],[-119.57339871173988,37.53301742532772],[-119.57342202365832,37.53301691864386],[-119.57344534366555,37.53301705097367],[-119.57346864415022,37.533017822160474],[-119.57349189752401,37.53301923129116],[-119.57351507625445,37.533021276697305],[-119.57353815289744,37.5330239559571],[-119.57356110012974,37.53302726589822],[-119.57358389078126,37.53303120260167],[-119.57360649786742,37.533035761406246],[-119.57362889462084,37.533040936914276],[-119.57365105452325,37.5330467229978],[-119.57367295133676,37.53305311280601],[-119.57369455913499,37.53306009877319],[-119.5743367507185,37.53327681940185],[-119.57434518737614,37.533279514286875],[-119.57435373624206,37.53328197471276],[-119.57436238704565,37.53328419772354],[-119.57437112939381,37.5332861806485],[-119.57437995278356,37.533287921105334],[-119.57438884661441,37.53328941700309],[-119.57439780020133,37.533290666544566],[-119.57440680278745,37.53329166822857],[-119.57441584355712,37.53329242085168],[-119.57442491164868,37.5332929235097],[-119.57443399616776,37.533293175598715],[-119.57444308620019,37.533293176815896],[-119.57445217082518,37.53329292715975],[-119.5744612391285,37.53329242693023],[-119.57447028021548,37.53329167672832],[-119.5744792832241,37.53329067745529],[-119.57448823733813,37.53328943031168],[-119.57449713180016,37.533287936795816],[-119.57450595592435,37.53328619870201],[-119.57451469910939,37.53328421811838],[-119.57452335085122,37.53328199742446],[-119.57453190075563,37.53327953928814],[-119.57454033855079,37.53327684666262],[-119.57454865409953,37.53327392278287],[-119.57455683741156,37.53327077116158],[-119.57456487865551,37.53326739558517],[-119.57457276817057,37.53326380010902],[-119.57458049647836,37.53325998905273],[-119.57458805429413,37.53325596699492],[-119.5745954325379,37.53325173876769],[-119.57460262234552,37.53324730945079],[-119.5746096150792,37.53324268436564],[-119.57461640233791,37.5332378690688],[-119.57462297596747,37.53323286934535],[-119.5746293280704,37.53322769120195],[-119.57463545101533,37.53322234085961],[-119.57464133744624,37.533216824746226],[-119.57464698029122,37.53321114948885],[-119.57465237277103,37.5332053219057],[-119.5746575084072,37.533199348998025],[-119.5746623810299,37.53319323794167],[-119.57466698478521,37.533186996078435],[-119.57468131858313,37.533167553461745],[-119.5746964806691,37.533148513470245],[-119.57471245322907,37.53312989847342],[-119.57472921749682,37.533111730341375],[-119.574746753776,37.53309403041924],[-119.57476504146334,37.53307681950197],[-119.57478405907277,37.53306011781011],[-119.57480378426074,37.53304394496585],[-119.57482419385245,37.533028319970015],[-119.57484526386895,37.53301326117987],[-119.57486696955563,37.532998786287315],[-119.5748892854109,37.53298491229841],[-119.57491218521648,37.53297165551308],[-119.574935642068,37.53295903150622],[-119.57495962840675,37.532947055109204],[-119.57498411605195,37.53293574039261],[-119.57500907623393,37.53292510064961],[-119.5750344796278,37.53291514838038],[-119.5750602963881,37.532905895277416],[-119.57508649618373,37.532897352211734],[-119.5751130482336,37.53288952922025],[-119.57513992134281,37.5328824354938],[-119.57516708393928,37.53287607936651],[-119.5751945041109,37.53287046830589],[-119.57522214964284,37.53286560890411],[-119.5752499880557,37.532861506870276],[-119.57527798664337,37.53285816702366],[-119.5753061125116,37.53285559328808],[-119.57533433261665,37.53285378868733],[-119.575362613804,37.53285275534152],[-119.57539092284749,37.5328524944647],[-119.57541922648811,37.53285300636333],[-119.57544749147328,37.53285429043605],[-119.5754756845958,37.53285634517421],[-119.5755037727329,37.53285916816387],[-119.57553172288515,37.53286275608835],[-119.57555950221517,37.532867104732425],[-119.5755870780863,37.53287220898703],[-119.57561441810094,37.53287806285547],[-119.57564149013847,37.53288465946025],[-119.57566826239312,37.532891991051336],[-119.57570858800122,37.53290303556974],[-119.57574936429326,37.532912975437085],[-119.57579054357019,37.53292179902597],[-119.57583207766162,37.53292949601474],[-119.57587391798201,37.53293605739966],[-119.57591601558754,37.53294147550537],[-119.57595832123344,37.532945743993885],[-119.57600078543149,37.532948857872],[-119.576043358508,37.53295081349721],[-119.57608599066191,37.532951608581826],[-119.57612863202306,37.53295124219581],[-119.57617123271046,37.532949714767724],[-119.57621374289079,37.53294702808435],[-119.57625611283653,37.53294318528849],[-119.57629829298426,37.53293819087534],[-119.57634023399264,37.532932050687315],[-119.57638188680008,37.532924771907034],[-119.5764232026821,37.53291636304901],[-119.57646413330848,37.532906833949795],[-119.57649163273709,37.53290303908256],[-119.57651895285166,37.532898496499676],[-119.57654606160452,37.532893211529725],[-119.57657292719597,37.532887190372264],[-119.57659951811146,37.532880440090366],[-119.57662580315883,37.53287296860239],[-119.57665175150463,37.53286478467273],[-119.57667733271043,37.53285589790147],[-119.57670251676853,37.53284631871322],[-119.57672727413713,37.532836058344735],[-119.57675157577492,37.53282512883188],[-119.57677539317532,37.53281354299539],[-119.57679869839976,37.53280131442596],[-119.57682146411052,37.532788457468186],[-119.57684366360282,37.532774987203794],[-119.57686527083605,37.53276091943393],[-119.57688626046448,37.53274627066061],[-119.57690660786682,37.53273105806745],[-119.57692628917522,37.53271529949931],[-119.57694528130321,37.532699013441636],[-119.57696356197283,37.53268221899852],[-119.57698110974066,37.53266493587043],[-119.5769979040231,37.53264718433107],[-119.57701392512044,37.53262898520359],[-119.57702915424001,37.53261035983616],[-119.57704357351814,37.53259133007689],[-119.5770571660412,37.532571918248316],[-119.57707103417599,37.532551466684126],[-119.57708579165458,37.532531413732364],[-119.57710142043358,37.53251178391001],[-119.57711790140435,37.53249260121674],[-119.57713521441639,37.53247388910558],[-119.57715333830204,37.53245567045416],[-119.57717225090224,37.532437967536765],[-119.57719192909371,37.53242080199717],[-119.57721234881724,37.53240419482209],[-119.577233485107,37.53238816631562],[-119.57725531212117,37.532372736074294],[-119.5772778031735,37.53235792296324],[-119.57730093076594,37.53234374509304],[-119.57732466662222,37.53233021979763],[-119.57734898172244,37.53231736361307],[-119.57737384633865,37.532305192257425],[-119.57739923007095,37.532293720611364],[-119.57742510188501,37.53228296270018],[-119.57745143014962,37.53227293167652],[-119.5774781826757,37.53226363980433],[-119.57750532675543,37.53225509844385],[-119.57753282920234,37.53224731803772],[-119.5775606563918,37.53224030809832],[-119.57758877430224,37.53223407719595],[-119.57761714855667,37.53222863294854],[-119.57764574446472,37.5322239820122],[-119.57767452706504,37.53222013007317],[-119.57770346116803,37.532217081840805],[-119.57772147794141,37.53221879990018],[-119.57773955905427,37.53222001594905],[-119.57775768245783,37.53222072850456],[-119.5777758260517,37.532220936697826],[-119.57779396771085,37.53222064027491],[-119.57781208531264,37.5322198395973],[-119.57783015676375,37.53221853564142],[-119.57784816002714,37.53221672999729],[-119.57786607314897,37.53221442486683],[-119.57788387428523,37.53221162306101],[-119.5779015417286,37.532208327996415],[-119.57791905393468,37.53220454369122],[-119.57793638954848,37.53220027476013],[-119.57795352743031,37.53219552640887],[-119.57797044668159,37.53219030442772],[-119.5779871266704,37.53218461518459],[-119.57800354705661,37.53217846561712],[-119.57801968781665,37.532171863224384],[-119.57803552926796,37.53216481605752],[-119.57805105209297,37.53215733271015],[-119.57806623736272,37.532149422307704],[-119.57808106655979,37.53214109449642],[-119.57809552160109,37.53213235943154],[-119.57810958485977,37.53212322776488],[-119.57812323918674,37.53211371063191],[-119.57813646793163,37.5321038196382],[-119.57814925496301,37.53209356684511],[-119.57816158468813,37.532082964755254],[-119.57817344207193,37.53207202629716],[-119.57818481265537,37.53206076480956],[-119.57819568257297,37.532049194025],[-119.57820603856987,37.53203732805333],[-119.57821586801794,37.532025181364254],[-119.57822515893105,37.53201276876978],[-119.5782338999799,37.53200010540622],[-119.5782420805057,37.53198720671563],[-119.57824969053314,37.531974088427035],[-119.57825672078266,37.53196076653725],[-119.57826351169695,37.53169717716747],[-119.5783137528844,37.521676041690505],[-119.57833489170962,37.51756619861773],[-119.57823327070983,37.50310990012311],[-119.57823397438125,37.50096768706894],[-119.578032270322,37.496919533027665],[-119.57792170163452,37.494700257593124],[-119.58370739754731,37.49471155053842],[-119.5838319499282,37.49471179051515],[-119.58912342012042,37.49472723938196],[-119.59183495401813,37.49473848976147],[-119.59509388278722,37.494751431690254],[-119.60042310406676,37.494756042267],[-119.60783421134633,37.494786915734146],[-119.61172458659397,37.49478826262425],[-119.61601503743519,37.494807681858354],[-119.61602474829184,37.49804937798128],[-119.66065358165679,37.497540168309634],[-119.6609256304949,37.50408826656874],[-119.66274957843454,37.50405915061321],[-119.66566570438314,37.50407227013848],[-119.66597859582907,37.51175938654145],[-119.67222669184663,37.51243470757754],[-119.67264146156667,37.51853554202848],[-119.67305029028854,37.52600975892665],[-119.6759341837822,37.52602504406251],[-119.67626705913266,37.53724376428861],[-119.67807132186762,37.53728506759206],[-119.68516300414568,37.53713599105986],[-119.6850010182885,37.54816057143576],[-119.68815290128259,37.54818228236702],[-119.68805719056729,37.550875408834514],[-119.70259307508,37.55125256206165],[-119.7030462267688,37.56451539748515],[-119.70314205605777,37.567264119873016],[-119.70318441026375,37.56847892312067],[-119.70355688487562,37.57916052506468],[-119.6948389652777,37.579085905108116],[-119.6958770217986,37.60988100501796]]]},"properties":{"UNIT_TYPE":"National Park","STATE":"CA","REGION":"PW","UNIT_CODE":"YOSE","UNIT_NAME":"Yosemite National Park","DATE_EDIT":"20121113","GIS_NOTES":"Lands - http://landsnet.nps.gov/tractsnet/documents/YOSE/Metadata/yose_metadata.xml","CREATED_BY":"Lands","METADATA":"http://nrdata.nps.gov/programs/Lands/YOSE_metadata.xml","PARKNAME":"Yosemite","GNIS_ID":""}} \ No newline at end of file From 7c8fbc82323f6a7cb8462c6843cf6d43b0eaf46a Mon Sep 17 00:00:00 2001 From: Tobrun Date: Thu, 23 Nov 2017 08:49:01 +0100 Subject: [PATCH 21/92] [android] - bump okhttp, remove workaround for Android Oreo (#10515) --- .../main/java/com/mapbox/mapboxsdk/http/HTTPRequest.java | 9 +-------- platform/android/dependencies.gradle | 2 +- 2 files changed, 2 insertions(+), 9 deletions(-) diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/http/HTTPRequest.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/http/HTTPRequest.java index 9f887ab7c..f25ecd4d4 100644 --- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/http/HTTPRequest.java +++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/http/HTTPRequest.java @@ -86,14 +86,7 @@ class HTTPRequest implements Callback { } mRequest = builder.build(); mCall = mClient.newCall(mRequest); - - // TODO remove code block for workaround in #10303 - if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.N_MR1) { - mCall.enqueue(this); - } else { - // Calling execute instead of enqueue is a workaround for #10303 - onResponse(mCall, mCall.execute()); - } + mCall.enqueue(this); } catch (Exception exception) { onFailure(exception); } diff --git a/platform/android/dependencies.gradle b/platform/android/dependencies.gradle index 0094b7928..541b3c523 100644 --- a/platform/android/dependencies.gradle +++ b/platform/android/dependencies.gradle @@ -42,7 +42,7 @@ ext { // square crew timber : 'com.jakewharton.timber:timber:4.5.1', - okhttp3 : 'com.squareup.okhttp3:okhttp:3.9.0', + okhttp3 : 'com.squareup.okhttp3:okhttp:3.9.1', leakCanaryDebug : "com.squareup.leakcanary:leakcanary-android:${leakCanaryVersion}", leakCanaryRelease : "com.squareup.leakcanary:leakcanary-android-no-op:${leakCanaryVersion}" ] From 85bc035be333b166ace6c3029dcbf89bb1e831e9 Mon Sep 17 00:00:00 2001 From: Antonio Zugaldia Date: Mon, 27 Nov 2017 10:33:14 -0500 Subject: [PATCH 22/92] [android] Set a larger limit for the HTTP dispatcher (#10567) --- .../java/com/mapbox/mapboxsdk/http/HTTPRequest.java | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/http/HTTPRequest.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/http/HTTPRequest.java index f25ecd4d4..9c7fe4ee6 100644 --- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/http/HTTPRequest.java +++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/http/HTTPRequest.java @@ -22,6 +22,7 @@ import javax.net.ssl.SSLException; import okhttp3.Call; import okhttp3.Callback; +import okhttp3.Dispatcher; import okhttp3.HttpUrl; import okhttp3.OkHttpClient; import okhttp3.Request; @@ -31,7 +32,7 @@ import timber.log.Timber; class HTTPRequest implements Callback { - private static OkHttpClient mClient = new OkHttpClient(); + private static OkHttpClient mClient = new OkHttpClient.Builder().dispatcher(getDispatcher()).build(); private String USER_AGENT_STRING = null; private static final int CONNECTION_ERROR = 0; @@ -47,6 +48,14 @@ class HTTPRequest implements Callback { private Call mCall; private Request mRequest; + private static Dispatcher getDispatcher() { + Dispatcher dispatcher = new Dispatcher(); + // Matches core limit set on + // https://github.com/mapbox/mapbox-gl-native/blob/master/platform/android/src/http_file_source.cpp#L192 + dispatcher.setMaxRequestsPerHost(20); + return dispatcher; + } + private native void nativeOnFailure(int type, String message); private native void nativeOnResponse(int code, String etag, String modified, String cacheControl, String expires, @@ -55,7 +64,6 @@ class HTTPRequest implements Callback { private HTTPRequest(long nativePtr, String resourceUrl, String etag, String modified) { mNativePtr = nativePtr; - Timber.e("requesting: %s",resourceUrl); try { HttpUrl httpUrl = HttpUrl.parse(resourceUrl); final String host = httpUrl.host().toLowerCase(MapboxConstants.MAPBOX_LOCALE); From 3f962574ed855c0edc92c88a24cca47dd6943bc4 Mon Sep 17 00:00:00 2001 From: Bruno de Oliveira Abinader Date: Thu, 23 Nov 2017 12:19:55 +0200 Subject: [PATCH 23/92] [build] Added CircleCI macos-release-node{4,6} jobs --- circle.yml | 81 +++++++++++++++++++++++++-- platform/node/bitrise.yml | 71 ++--------------------- platform/node/scripts/after_script.sh | 14 ----- 3 files changed, 81 insertions(+), 85 deletions(-) delete mode 100755 platform/node/scripts/after_script.sh diff --git a/circle.yml b/circle.yml index 09421bec9..4c562bd93 100644 --- a/circle.yml +++ b/circle.yml @@ -35,6 +35,14 @@ workflows: - ios-sanitize-thread - macos-debug - macos-debug-qt5 + - macos-release-node4: + filters: + tags: + only: /node-.*/ + - macos-release-node6: + filters: + tags: + only: /node-.*/ step-library: - &generate-cache-key @@ -125,6 +133,20 @@ step-library: brew install cmake brew install ccache + - &install-macos-node4-dependencies + run: + name: Install macOS Node@4 dependencies + command: | + brew install node@4 + brew link node@4 --force --overwrite + + - &install-macos-node6-dependencies + run: + name: Install macOS Node@6 dependencies + command: | + brew install node@6 + brew link node@6 --force --overwrite + - &install-macos-qt-dependencies run: name: Install macOS Qt dependencies @@ -138,18 +160,25 @@ step-library: ln -s $HOMEBREW_QT5_CELLAR/$HOMEBREW_QT5_VERSION/mkspecs /usr/local/mkspecs ln -s $HOMEBREW_QT5_CELLAR/$HOMEBREW_QT5_VERSION/plugins /usr/local/plugins - - &run-node-tests + - &run-node-macos-tests + run: + name: Run node tests + command: make test-node + + - &run-node-linux-tests run: name: Run node tests command: | xvfb-run --server-args="-screen 0 1024x768x24" \ logbt -- apitrace trace --api=egl -v make test-node - - &run-node-tests-recycle-map + + - &run-node-linux-tests-recycle-map run: name: Run node tests (recycling the map object) command: | xvfb-run --server-args="-screen 0 1024x768x24" \ logbt -- apitrace trace --api=egl -v make test-node-recycle-map + - &run-unit-tests run: name: Run tests @@ -356,7 +385,7 @@ jobs: - *build-node - *show-ccache-stats - *save-cache - - *run-node-tests + - *run-node-linux-tests - *publish-node-package - *upload-render-tests @@ -379,7 +408,7 @@ jobs: - *build-node - *show-ccache-stats - *save-cache - - *run-node-tests + - *run-node-linux-tests - *publish-node-package - *upload-render-tests @@ -402,7 +431,7 @@ jobs: - *build-node - *show-ccache-stats - *save-cache - - *run-node-tests-recycle-map + - *run-node-linux-tests-recycle-map - *publish-node-package - *upload-render-tests-recycle-map @@ -731,3 +760,45 @@ jobs: - store_artifacts: path: test/fixtures destination: test/fixtures + +# ------------------------------------------------------------------------------ + macos-release-node4: + macos: + xcode: "9.0" + environment: + BUILDTYPE: RelWithDebInfo + HOMEBREW_NO_AUTO_UPDATE: 1 + steps: + - checkout + - *install-macos-dependencies + - *install-macos-node4-dependencies + - *generate-cache-key + - *restore-cache + - *reset-ccache-stats + - *build-node + - *show-ccache-stats + - *save-cache + - *run-node-macos-tests + - *publish-node-package + - *upload-render-tests + +# ------------------------------------------------------------------------------ + macos-release-node6: + macos: + xcode: "9.0" + environment: + BUILDTYPE: RelWithDebInfo + HOMEBREW_NO_AUTO_UPDATE: 1 + steps: + - checkout + - *install-macos-dependencies + - *install-macos-node6-dependencies + - *generate-cache-key + - *restore-cache + - *reset-ccache-stats + - *build-node + - *show-ccache-stats + - *save-cache + - *run-node-macos-tests + - *publish-node-package + - *upload-render-tests diff --git a/platform/node/bitrise.yml b/platform/node/bitrise.yml index 3cc27008e..4a013ea8b 100644 --- a/platform/node/bitrise.yml +++ b/platform/node/bitrise.yml @@ -1,76 +1,15 @@ -format_version: 1.3.0 +format_version: 1.1.0 default_step_lib_source: https://github.com/bitrise-io/bitrise-steplib.git trigger_map: -- tag: "node-v*" - workflow: publish -- tag: "*" +- pattern: "*" + is_pull_request_allowed: true workflow: primary -- push_branch: "*" - workflow: primary -- pull_request_target_branch: "*" - workflow: primary - -shortcuts: - slack: &slack - title: Post to Slack - inputs: - - webhook_url: "$SLACK_HOOK_URL" - - channel: "#gl-bots" - - from_username: 'Bitrise Node macOS' - - from_username_on_error: 'Bitrise Node macOS' - - message: '<${BITRISE_BUILD_URL}|Build #${BITRISE_BUILD_NUMBER}> - for - by ${GIT_CLONE_COMMIT_COMMITER_NAME} - passed' - - message_on_error: '<${BITRISE_BUILD_URL}|Build #${BITRISE_BUILD_NUMBER}> - for - by ${GIT_CLONE_COMMIT_COMMITER_NAME} - failed' - - icon_url: https://bitrise-public-content-production.s3.amazonaws.com/slack/bitrise-slack-icon-128.png - - icon_url_on_error: https://bitrise-public-content-production.s3.amazonaws.com/slack/bitrise-slack-error-icon-128.png workflows: primary: steps: - script: - title: Test + title: Skip Workflow inputs: - - content: |- - #!/bin/bash - set -eu -o pipefail - brew update - brew unlink node - brew install cmake awscli node@4 node@6 - brew link node@4 --force - gem install xcpretty --no-rdoc --no-ri - make test-node || RESULT=$? - brew unlink node@4 - brew link --overwrite node@6 --force - make clean - make test-node || RESULT=$? - ./platform/node/scripts/after_script.sh ${BITRISE_BUILD_NUMBER} - exit ${RESULT:-0} - - slack: *slack - - publish: - steps: - - script: - title: Publish - inputs: - - content: |- - #!/bin/bash - set -eu -o pipefail - brew update - brew unlink node - brew install cmake awscli node@4 node@6 - brew link node@4 --force - gem install xcpretty --no-rdoc --no-ri - export BUILDTYPE=RelWithDebInfo - export PUBLISH=true - make test-node && ./platform/node/scripts/after_success.sh - brew unlink node@4 - brew link --overwrite node@6 --force - make clean - make test-node && ./platform/node/scripts/after_success.sh - - slack: *slack + - content: echo "This workflow is obsolete — see CircleCi." diff --git a/platform/node/scripts/after_script.sh b/platform/node/scripts/after_script.sh deleted file mode 100755 index beb8d6966..000000000 --- a/platform/node/scripts/after_script.sh +++ /dev/null @@ -1,14 +0,0 @@ -#!/bin/bash - -set -e -set -o pipefail - -JOB=$1 - -if [ ! -z "${AWS_ACCESS_KEY_ID}" ] && [ ! -z "${AWS_SECRET_ACCESS_KEY}" ] ; then - gzip --stdout mapbox-gl-js/test/integration/render-tests/index.html | \ - aws s3 cp --acl public-read --content-encoding gzip --content-type text/html \ - - s3://mapbox/mapbox-gl-native/render-tests/$JOB/index.html - - echo http://mapbox.s3.amazonaws.com/mapbox-gl-native/render-tests/$JOB/index.html -fi From a1f207b090a1ddb36c8103c9af621b119286f97e Mon Sep 17 00:00:00 2001 From: Pablo Guardiola Date: Wed, 29 Nov 2017 08:31:46 +0100 Subject: [PATCH 24/92] [android] use location engine abstraction instead of location source (lost) in MyLocationView#init (#10579) --- .../java/com/mapbox/mapboxsdk/maps/widgets/MyLocationView.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/widgets/MyLocationView.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/widgets/MyLocationView.java index aa7934ec1..3fe3c7b40 100644 --- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/widgets/MyLocationView.java +++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/widgets/MyLocationView.java @@ -33,7 +33,6 @@ import com.mapbox.mapboxsdk.camera.CameraUpdateFactory; import com.mapbox.mapboxsdk.constants.MyBearingTracking; import com.mapbox.mapboxsdk.constants.MyLocationTracking; import com.mapbox.mapboxsdk.geometry.LatLng; -import com.mapbox.mapboxsdk.location.LocationSource; import com.mapbox.mapboxsdk.maps.MapboxMap; import com.mapbox.mapboxsdk.maps.Projection; import com.mapbox.services.android.telemetry.location.LocationEngine; @@ -162,7 +161,7 @@ public class MyLocationView extends View { } @Deprecated - public void init(LocationSource locationSource) { + public void init(LocationEngine locationSource) { this.locationEngine = locationSource; } From 8cebab09ba76f56c58ad354e65440087136c7d3e Mon Sep 17 00:00:00 2001 From: Tobrun Date: Wed, 29 Nov 2017 12:21:54 +0100 Subject: [PATCH 25/92] [android] - attribtuion anchor point calculation fix for short text with full logo on a MapSnapshot (#10558) --- .../com/mapbox/mapboxsdk/attribution/AttributionMeasure.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/attribution/AttributionMeasure.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/attribution/AttributionMeasure.java index 667060168..c2408ca71 100644 --- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/attribution/AttributionMeasure.java +++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/attribution/AttributionMeasure.java @@ -62,7 +62,7 @@ public class AttributionMeasure { float width = measure.getLogoContainerWidth() + measure.getTextViewShortContainerWidth(); boolean fitBounds = width <= measure.getMaxSizeShort(); if (fitBounds) { - PointF anchor = calculateAnchor(measure.snapshot, measure.textView, measure.margin); + PointF anchor = calculateAnchor(measure.snapshot, measure.textViewShort, measure.margin); return new AttributionLayout(measure.logo, anchor, true); } return null; From 787c782749966e89a7da485eae99820c249e1525 Mon Sep 17 00:00:00 2001 From: Fabian Guerra Date: Wed, 29 Nov 2017 17:39:16 -0500 Subject: [PATCH 26/92] [ios] Fix minimumZoomLevel is not getting set. --- platform/ios/src/MGLMapView.mm | 1 + 1 file changed, 1 insertion(+) diff --git a/platform/ios/src/MGLMapView.mm b/platform/ios/src/MGLMapView.mm index 41d900702..faff12f02 100644 --- a/platform/ios/src/MGLMapView.mm +++ b/platform/ios/src/MGLMapView.mm @@ -2930,6 +2930,7 @@ public: - (void)setMinimumZoomLevel:(double)minimumZoomLevel { + _mbglMap->setMinZoom(minimumZoomLevel); } - (double)minimumZoomLevel From 0c50da69137c2de26166aa05f983c384588d93ee Mon Sep 17 00:00:00 2001 From: Fabian Guerra Date: Wed, 22 Nov 2017 17:40:50 -0500 Subject: [PATCH 27/92] [ios, macos] Fix an issue that triggers didSelectAnnotations for MGLAnnotationImage based annotations. --- platform/ios/src/MGLMapView.mm | 2 +- platform/macos/src/MGLMapView.mm | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/platform/ios/src/MGLMapView.mm b/platform/ios/src/MGLMapView.mm index faff12f02..f9690c70f 100644 --- a/platform/ios/src/MGLMapView.mm +++ b/platform/ios/src/MGLMapView.mm @@ -4046,7 +4046,7 @@ public: } else { - if ([annotation isKindOfClass:[MGLShape class]]) + if ([annotation isKindOfClass:[MGLMultiPoint class]]) { return false; } diff --git a/platform/macos/src/MGLMapView.mm b/platform/macos/src/MGLMapView.mm index 8df6f4545..8df6e2969 100644 --- a/platform/macos/src/MGLMapView.mm +++ b/platform/macos/src/MGLMapView.mm @@ -2077,7 +2077,7 @@ public: return true; } - if ([annotation isKindOfClass:[MGLShape class]]) + if ([annotation isKindOfClass:[MGLMultiPoint class]]) { return false; } From 06a0c036057fccc481657477985a0d4b8c96cbc2 Mon Sep 17 00:00:00 2001 From: Fabian Guerra Date: Tue, 28 Nov 2017 16:02:42 -0500 Subject: [PATCH 28/92] [ios, macos] Update changelogs. --- platform/ios/CHANGELOG.md | 7 ++++++- platform/macos/CHANGELOG.md | 5 +++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/platform/ios/CHANGELOG.md b/platform/ios/CHANGELOG.md index 507f5eb07..347329506 100644 --- a/platform/ios/CHANGELOG.md +++ b/platform/ios/CHANGELOG.md @@ -2,7 +2,12 @@ Mapbox welcomes participation and contributions from everyone. Please read [CONTRIBUTING.md](../../CONTRIBUTING.md) to get started. -## 3.7.0 +## 3.7.1 + +### Annotations +* Fixed an issue that could cause triggering `-[MGLMapViewDelegate mapView:didSelectAnnotation:]` when taping next to a `MGLAnnotationImage` annotation. ([#10538](https://github.com/mapbox/mapbox-gl-native/pull/10538)) + +## 3.7.0 - Novemeber 13, 2017 ### Networking and storage diff --git a/platform/macos/CHANGELOG.md b/platform/macos/CHANGELOG.md index 418b3b200..d5fb02082 100644 --- a/platform/macos/CHANGELOG.md +++ b/platform/macos/CHANGELOG.md @@ -1,5 +1,10 @@ # Changelog for Mapbox macOS SDK +## v0.6.1 + +### Annotations +* Fixed an issue that could cause triggering `-[MGLMapViewDelegate mapView:didSelectAnnotation:]` when taping next to a `MGLAnnotationImage` annotation. ([#10538](https://github.com/mapbox/mapbox-gl-native/pull/10538)) + ## v0.6.0 ### Networking and storage From 5086c76997fdc073816632688da2e8850aff510b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Minh=20Nguye=CC=82=CC=83n?= Date: Thu, 30 Nov 2017 10:49:18 -0800 Subject: [PATCH 29/92] [macos] Fixed logo view distortion on macOS High Sierra MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Only the logo view’s baseline is aligned to the attribution view’s baseline; the X-height doesn’t need to be aligned. Previously, macOS ignored the X-height constraint inferred from the alignment rect, but now it honors it in addition to the baseline. --- platform/macos/CHANGELOG.md | 1 + platform/macos/src/MGLMapView.mm | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/platform/macos/CHANGELOG.md b/platform/macos/CHANGELOG.md index d5fb02082..6a274ae3b 100644 --- a/platform/macos/CHANGELOG.md +++ b/platform/macos/CHANGELOG.md @@ -38,6 +38,7 @@ ### Other changes * Added a Bulgarian localization. ([#10309](https://github.com/mapbox/mapbox-gl-native/pull/10309)) +* Fixed distortion in the logo view on macOS 10.13 High Sierra. ([#10606](https://github.com/mapbox/mapbox-gl-native/pull/10606)) * Fixed an issue that could cause line label rendering glitches when the line geometry is projected to a point behind the plane of the camera. ([#9865](https://github.com/mapbox/mapbox-gl-native/pull/9865)) * Fixed an issue that could cause a crash when using `-[MGLMapView flyToCamera:completionHandler:]` and related methods with zoom levels at or near the maximum value. ([#9381](https://github.com/mapbox/mapbox-gl-native/pull/9381)) diff --git a/platform/macos/src/MGLMapView.mm b/platform/macos/src/MGLMapView.mm index 8df6e2969..c2c13320c 100644 --- a/platform/macos/src/MGLMapView.mm +++ b/platform/macos/src/MGLMapView.mm @@ -371,7 +371,7 @@ public: NSImage *logoImage = [[NSImage alloc] initWithContentsOfFile: [[NSBundle mgl_frameworkBundle] pathForResource:@"mapbox" ofType:@"pdf"]]; // Account for the image’s built-in padding when aligning other controls to the logo. - logoImage.alignmentRect = NSInsetRect(logoImage.alignmentRect, 0, 3); + logoImage.alignmentRect = NSOffsetRect(logoImage.alignmentRect, 0, 3); _logoView.image = logoImage; _logoView.translatesAutoresizingMaskIntoConstraints = NO; _logoView.accessibilityTitle = NSLocalizedStringWithDefaultValue(@"MAP_A11Y_TITLE", nil, nil, @"Mapbox", @"Accessibility title"); From 784b71a81c469e9fc5297c4006846238f91fe724 Mon Sep 17 00:00:00 2001 From: Fabian Guerra Date: Tue, 21 Nov 2017 16:32:05 -0500 Subject: [PATCH 30/92] [ios, macos] Refactor snapshot attribution. --- platform/darwin/src/MGLAttributionInfo.h | 30 ++++ platform/darwin/src/MGLAttributionInfo.mm | 19 +++ platform/darwin/src/MGLMapSnapshotter.mm | 194 +++++++++++----------- 3 files changed, 150 insertions(+), 93 deletions(-) diff --git a/platform/darwin/src/MGLAttributionInfo.h b/platform/darwin/src/MGLAttributionInfo.h index 031a10060..1de37c3b2 100644 --- a/platform/darwin/src/MGLAttributionInfo.h +++ b/platform/darwin/src/MGLAttributionInfo.h @@ -7,6 +7,24 @@ NS_ASSUME_NONNULL_BEGIN +/** + The attribution info is represented in the longest format available. + */ +typedef NS_ENUM(NSUInteger, MGLAttributionInfoStyle) { + /** + Specifies a short attribution info style. + */ + MGLAttributionInfoStyleShort = 1, + /** + Specifies a medium attribution info style. + */ + MGLAttributionInfoStyleMedium, + /** + Specifies a long attribution info style. + */ + MGLAttributionInfoStyleLong +}; + /** Information about an attribution statement, usually a copyright or trademark statement, associated with a map content source. @@ -59,6 +77,18 @@ MGL_EXPORT */ - (nullable NSURL *)feedbackURLAtCenterCoordinate:(CLLocationCoordinate2D)centerCoordinate zoomLevel:(double)zoomLevel; +/** + Returns a copy of the current `title` formatted accordingly to `style`. + + Example: If the `style` property is set to `MGLAttributionInfoStyleShort` and the + `title` property is set to `OpenStreetMap`, then this method returns `OSM`. + + @param style The attribution info style. + + @return The `NSAttributedString` styled title. + */ +- (NSAttributedString *)titleWithStyle:(MGLAttributionInfoStyle)style; + @end NS_ASSUME_NONNULL_END diff --git a/platform/darwin/src/MGLAttributionInfo.mm b/platform/darwin/src/MGLAttributionInfo.mm index 92fb9b689..29dd5229a 100644 --- a/platform/darwin/src/MGLAttributionInfo.mm +++ b/platform/darwin/src/MGLAttributionInfo.mm @@ -168,6 +168,25 @@ return components.URL; } +- (NSAttributedString *)titleWithStyle:(MGLAttributionInfoStyle)style +{ + NSString *openStreetMap = NSLocalizedStringWithDefaultValue(@"OSM_FULL_NAME", nil, nil, @"OpenStreetMap", @"OpenStreetMap full name attribution"); + NSString *OSM = NSLocalizedStringWithDefaultValue(@"OSM_SHORT_NAME", nil, nil, @"OSM", @"OpenStreetMap short name attribution"); + + NSMutableAttributedString *title = [[NSMutableAttributedString alloc] initWithAttributedString:self.title]; + [title removeAttribute:NSUnderlineStyleAttributeName range:NSMakeRange(0, [title.string length])]; + + BOOL isAbbreviated = (style == MGLAttributionInfoStyleShort); + + if ([title.string rangeOfString:@"OpenStreetMap"].location != NSNotFound) { + [title.mutableString replaceOccurrencesOfString:@"OpenStreetMap" withString:isAbbreviated ? OSM : openStreetMap + options:NSCaseInsensitiveSearch + range:NSMakeRange(0, [title.mutableString length])]; + } + + return title; +} + - (BOOL)isEqual:(id)object { return [object isKindOfClass:[self class]] && [[object title] isEqual:self.title] && [[object URL] isEqual:self.URL]; } diff --git a/platform/darwin/src/MGLMapSnapshotter.mm b/platform/darwin/src/MGLMapSnapshotter.mm index 31b3ed41d..8b5448881 100644 --- a/platform/darwin/src/MGLMapSnapshotter.mm +++ b/platform/darwin/src/MGLMapSnapshotter.mm @@ -27,24 +27,6 @@ const CGPoint MGLLogoImagePosition = CGPointMake(8, 8); const CGFloat MGLSnapshotterMinimumPixelSize = 64; -@interface MGLSnapshotAttributionOptions : NSObject -#if TARGET_OS_IPHONE -@property (nonatomic) UIImage *logoImage; -#else -@property (nonatomic) NSImage *logoImage; -#endif - -@property (nonatomic) CGSize attributionBackgroundSize; - -@property (nonatomic) NS_ARRAY_OF(MGLAttributionInfo *) *attributionInfo; - -@end - -@implementation MGLSnapshotAttributionOptions -@end - - - @implementation MGLMapSnapshotOptions - (instancetype _Nonnull)initWithStyleURL:(nullable NSURL *)styleURL camera:(MGLMapCamera *)camera size:(CGSize) size @@ -107,7 +89,7 @@ const CGFloat MGLSnapshotterMinimumPixelSize = 64; std::shared_ptr _mbglThreadPool; std::unique_ptr _mbglMapSnapshotter; std::unique_ptr> _snapshotCallback; - CGFloat _defaultLogoHeight; + NS_ARRAY_OF(MGLAttributionInfo *) *_attributionInfo; } - (instancetype)initWithOptions:(MGLMapSnapshotOptions *)options @@ -187,6 +169,8 @@ const CGFloat MGLSnapshotterMinimumPixelSize = 64; [infos growArrayByAddingAttributionInfosFromArray:tileSetInfos]; } + _attributionInfo = infos; + if (mbglError) { NSString *description = @(mbgl::util::toString(mbglError).c_str()); NSDictionary *userInfo = @{NSLocalizedDescriptionKey: description}; @@ -209,28 +193,38 @@ const CGFloat MGLSnapshotterMinimumPixelSize = 64; dispatch_queue_t workQueue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0); dispatch_async(workQueue, ^{ #if TARGET_OS_IPHONE - MGLSnapshotAttributionOptions *option = [self attributionOptionsForSize:mglImage.size attributionInfo:infos]; - UIImage *logoImage = option.logoImage; + MGLAttributionInfoStyle attributionInfoStyle = MGLAttributionInfoStyleLong; + for (NSUInteger styleValue = MGLAttributionInfoStyleLong; styleValue >= MGLAttributionInfoStyleShort; styleValue--) { + attributionInfoStyle = (MGLAttributionInfoStyle)styleValue; + CGSize attributionSize = [self attributionSizeWithLogoStyle:attributionInfoStyle sourceAttributionStyle:attributionInfoStyle]; + if (attributionSize.width <= mglImage.size.width) { + break; + } + } + + UIImage *logoImage = [self logoImageWithStyle:attributionInfoStyle]; + CGSize attributionBackgroundSize = [self attributionTextSizeWithStyle:attributionInfoStyle]; CGRect logoImageRect = CGRectMake(MGLLogoImagePosition.x, mglImage.size.height - (MGLLogoImagePosition.y + logoImage.size.height), logoImage.size.width, logoImage.size.height); - CGPoint attributionOrigin = CGPointMake(mglImage.size.width - 10 - option.attributionBackgroundSize.width, - logoImageRect.origin.y + (logoImageRect.size.height / 2) - (option.attributionBackgroundSize.height / 2) + 1); + CGPoint attributionOrigin = CGPointMake(mglImage.size.width - 10 - attributionBackgroundSize.width, + logoImageRect.origin.y + (logoImageRect.size.height / 2) - (attributionBackgroundSize.height / 2) + 1); if (!logoImage) { - logoImageRect = CGRectMake(0, mglImage.size.height - (MGLLogoImagePosition.y + _defaultLogoHeight), 0, _defaultLogoHeight); - attributionOrigin = CGPointMake(10, logoImageRect.origin.y + (logoImageRect.size.height / 2) - (option.attributionBackgroundSize.height / 2) + 1); + CGSize defaultLogoSize = [self mapboxLongStyleLogo].size; + logoImageRect = CGRectMake(0, mglImage.size.height - (MGLLogoImagePosition.y + defaultLogoSize.height), 0, defaultLogoSize.height); + attributionOrigin = CGPointMake(10, logoImageRect.origin.y + (logoImageRect.size.height / 2) - (attributionBackgroundSize.height / 2) + 1); } CGRect attributionBackgroundFrame = CGRectMake(attributionOrigin.x, attributionOrigin.y, - option.attributionBackgroundSize.width, - option.attributionBackgroundSize.height); + attributionBackgroundSize.width, + attributionBackgroundSize.height); CGPoint attributionTextPosition = CGPointMake(attributionBackgroundFrame.origin.x + 10, attributionBackgroundFrame.origin.y - 1); CGRect cropRect = CGRectMake(attributionBackgroundFrame.origin.x * mglImage.scale, attributionBackgroundFrame.origin.y * mglImage.scale, - option.attributionBackgroundSize.width * mglImage.scale, - option.attributionBackgroundSize.height * mglImage.scale); + attributionBackgroundSize.width * mglImage.scale, + attributionBackgroundSize.height * mglImage.scale); UIGraphicsBeginImageContextWithOptions(mglImage.size, NO, self.options.scale); @@ -250,7 +244,7 @@ const CGFloat MGLSnapshotterMinimumPixelSize = 64; [blurredAttributionBackground drawInRect:attributionBackgroundFrame]; - [self drawAttributionText:option.attributionInfo origin:attributionTextPosition]; + [self drawAttributionTextWithStyle:attributionInfoStyle origin:attributionTextPosition]; UIImage *compositedImage = UIGraphicsGetImageFromCurrentImageContext(); @@ -258,24 +252,35 @@ const CGFloat MGLSnapshotterMinimumPixelSize = 64; #else NSSize targetSize = NSMakeSize(self.options.size.width, self.options.size.height); NSRect targetFrame = NSMakeRect(0, 0, targetSize.width, targetSize.height); - MGLSnapshotAttributionOptions *option = [self attributionOptionsForSize:targetSize attributionInfo:infos]; - NSImage *logoImage = option.logoImage; + + MGLAttributionInfoStyle attributionInfoStyle = MGLAttributionInfoStyleLong; + for (NSUInteger styleValue = MGLAttributionInfoStyleLong; styleValue >= MGLAttributionInfoStyleShort; styleValue--) { + attributionInfoStyle = (MGLAttributionInfoStyle)styleValue; + CGSize attributionSize = [self attributionSizeWithLogoStyle:attributionInfoStyle sourceAttributionStyle:attributionInfoStyle]; + if (attributionSize.width <= mglImage.size.width) { + break; + } + } + + NSImage *logoImage = [self logoImageWithStyle:attributionInfoStyle]; + CGSize attributionBackgroundSize = [self attributionTextSizeWithStyle:attributionInfoStyle]; NSImage *sourceImage = mglImage; CGRect logoImageRect = CGRectMake(MGLLogoImagePosition.x, MGLLogoImagePosition.y, logoImage.size.width, logoImage.size.height); - CGPoint attributionOrigin = CGPointMake(targetFrame.size.width - 10 - option.attributionBackgroundSize.width, + CGPoint attributionOrigin = CGPointMake(targetFrame.size.width - 10 - attributionBackgroundSize.width, MGLLogoImagePosition.y + 1); if (!logoImage) { - logoImageRect = CGRectMake(0, MGLLogoImagePosition.y, 0, _defaultLogoHeight); + CGSize defaultLogoSize = [self mapboxLongStyleLogo].size; + logoImageRect = CGRectMake(0, MGLLogoImagePosition.y, 0, defaultLogoSize.height); attributionOrigin = CGPointMake(10, attributionOrigin.y); } CGRect attributionBackgroundFrame = CGRectMake(attributionOrigin.x, attributionOrigin.y, - option.attributionBackgroundSize.width, - option.attributionBackgroundSize.height); + attributionBackgroundSize.width, + attributionBackgroundSize.height); CGPoint attributionTextPosition = CGPointMake(attributionBackgroundFrame.origin.x + 10, - logoImageRect.origin.y + (logoImageRect.size.height / 2) - (option.attributionBackgroundSize.height / 2)); + logoImageRect.origin.y + (logoImageRect.size.height / 2) - (attributionBackgroundSize.height / 2)); NSImage *compositedImage = nil; @@ -300,7 +305,7 @@ const CGFloat MGLSnapshotterMinimumPixelSize = 64; [blurredAttributionBackground drawInRect:attributionBackgroundFrame]; - [self drawAttributionText:option.attributionInfo origin:attributionTextPosition]; + [self drawAttributionTextWithStyle:attributionInfoStyle origin:attributionTextPosition]; [compositedImage unlockFocus]; @@ -319,15 +324,16 @@ const CGFloat MGLSnapshotterMinimumPixelSize = 64; }); } -- (void)drawAttributionText:(NSArray *)attributionInfo origin:(CGPoint)origin +- (void)drawAttributionTextWithStyle:(MGLAttributionInfoStyle)attributionInfoStyle origin:(CGPoint)origin { - for (MGLAttributionInfo *info in attributionInfo) { + for (MGLAttributionInfo *info in _attributionInfo) { if (info.isFeedbackLink) { continue; } - [info.title drawAtPoint:origin]; + NSAttributedString *attribution = [info titleWithStyle:attributionInfoStyle]; + [attribution drawAtPoint:origin]; - origin.x += [info.title size].width + 10; + origin.x += [attribution size].width + 10; } } @@ -350,77 +356,79 @@ const CGFloat MGLSnapshotterMinimumPixelSize = 64; CIContext *ctx = [CIContext contextWithOptions:nil]; CGImageRef cgimg = [ctx createCGImage:blurredImage fromRect:[backgroundImage extent]]; + MGLImage *image; #if TARGET_OS_IPHONE - return [UIImage imageWithCGImage:cgimg]; + image = [UIImage imageWithCGImage:cgimg]; #else - return [[NSImage alloc] initWithCGImage:cgimg size:[backgroundImage extent].size]; + image = [[NSImage alloc] initWithCGImage:cgimg size:[backgroundImage extent].size]; #endif + CGImageRelease(cgimg); + return image; } -- (MGLSnapshotAttributionOptions *)attributionOptionsForSize:(CGSize)snapshotSize attributionInfo:(NSArray *)attributionInfo +- (MGLImage *)logoImageWithStyle:(MGLAttributionInfoStyle)style { - NSMutableArray *options = [NSMutableArray array]; - MGLSnapshotAttributionOptions *largeLogoAttribution = [self attributionOptionsForAttributionInfo:attributionInfo abbreviated:NO]; + MGLImage *logoImage; + switch (style) { + case MGLAttributionInfoStyleLong: + logoImage = [self mapboxLongStyleLogo]; + break; + case MGLAttributionInfoStyleMedium: #if TARGET_OS_IPHONE - largeLogoAttribution.logoImage = [UIImage imageNamed:@"mapbox" inBundle:[NSBundle mgl_frameworkBundle] compatibleWithTraitCollection:nil]; + logoImage = [UIImage imageNamed:@"mapbox_helmet" inBundle:[NSBundle mgl_frameworkBundle] compatibleWithTraitCollection:nil]; #else - largeLogoAttribution.logoImage = [[NSImage alloc] initWithContentsOfFile:[[NSBundle mgl_frameworkBundle] pathForResource:@"mapbox" ofType:@"pdf"]]; + logoImage = [[NSImage alloc] initWithContentsOfFile:[[NSBundle mgl_frameworkBundle] pathForResource:@"mapbox_helmet" ofType:@"pdf"]]; #endif - _defaultLogoHeight = largeLogoAttribution.logoImage.size.height; - - MGLSnapshotAttributionOptions *smallLogoAttribution = [self attributionOptionsForAttributionInfo:attributionInfo abbreviated:NO]; -#if TARGET_OS_IPHONE - smallLogoAttribution.logoImage = [UIImage imageNamed:@"mapbox_helmet" inBundle:[NSBundle mgl_frameworkBundle] compatibleWithTraitCollection:nil]; -#else - smallLogoAttribution.logoImage = [[NSImage alloc] initWithContentsOfFile:[[NSBundle mgl_frameworkBundle] pathForResource:@"mapbox_helmet" ofType:@"pdf"]]; -#endif - - MGLSnapshotAttributionOptions *noLogoAttribution = [self attributionOptionsForAttributionInfo:attributionInfo abbreviated:YES]; - - [options addObject:largeLogoAttribution]; - [options addObject:smallLogoAttribution]; - [options addObject:noLogoAttribution]; - - for (MGLSnapshotAttributionOptions *attributionOptions in options) { - // -[Mapbox Logo]-[Attribution Background]- - CGFloat origin = attributionOptions.logoImage ? MGLLogoImagePosition.x : 0; - CGFloat width = origin + attributionOptions.logoImage.size.width + 10 + attributionOptions.attributionBackgroundSize.width + 10; - if (width <= snapshotSize.width) { - return attributionOptions; - } + break; + case MGLAttributionInfoStyleShort: + logoImage = nil; + break; } - - return noLogoAttribution; + return logoImage; } -- (MGLSnapshotAttributionOptions *)attributionOptionsForAttributionInfo:(NSArray *)attributionInfo abbreviated:(BOOL)isAbbreviated +- (MGLImage *)mapboxLongStyleLogo +{ + MGLImage *logoImage; +#if TARGET_OS_IPHONE + logoImage =[UIImage imageNamed:@"mapbox" inBundle:[NSBundle mgl_frameworkBundle] compatibleWithTraitCollection:nil]; +#else + logoImage = [[NSImage alloc] initWithContentsOfFile:[[NSBundle mgl_frameworkBundle] pathForResource:@"mapbox" ofType:@"pdf"]]; +#endif + return logoImage; +} + +- (CGSize)attributionSizeWithLogoStyle:(MGLAttributionInfoStyle)logoStyle sourceAttributionStyle:(MGLAttributionInfoStyle)attributionStyle +{ + MGLImage *logoImage = [self logoImageWithStyle:logoStyle]; + + CGSize attributionBackgroundSize = [self attributionTextSizeWithStyle:attributionStyle]; + + CGSize attributionSize = CGSizeZero; + + if (logoImage) { + attributionSize.width = MGLLogoImagePosition.x + logoImage.size.width + 10; + } + attributionSize.width = attributionSize.width + 10 + attributionBackgroundSize.width + 10; + attributionSize.height = MAX(logoImage.size.height, attributionBackgroundSize.height); + + return attributionSize; +} + +- (CGSize)attributionTextSizeWithStyle:(MGLAttributionInfoStyle)attributionStyle { - NSString *openStreetMap = NSLocalizedStringWithDefaultValue(@"OSM_FULL_NAME", nil, nil, @"OpenStreetMap", @"OpenStreetMap full name attribution"); - NSString *OSM = NSLocalizedStringWithDefaultValue(@"OSM_SHORT_NAME", nil, nil, @"OSM", @"OpenStreetMap short name attribution"); - NSMutableArray *infos = [NSMutableArray array]; CGSize attributionBackgroundSize = CGSizeMake(10, 0); - for (MGLAttributionInfo *info in attributionInfo) { + for (MGLAttributionInfo *info in _attributionInfo) { if (info.isFeedbackLink) { continue; } - MGLAttributionInfo *attribution = [info copy]; - NSMutableAttributedString *title = [[NSMutableAttributedString alloc] initWithAttributedString:info.title]; - [title removeAttribute:NSUnderlineStyleAttributeName range:NSMakeRange(0, [title.string length])]; - if ([title.string rangeOfString:@"OpenStreetMap"].location != NSNotFound) { - [title.mutableString replaceOccurrencesOfString:@"OpenStreetMap" withString:isAbbreviated ? OSM : openStreetMap options:NSCaseInsensitiveSearch range:NSMakeRange(0, [title.mutableString length])]; - } - attribution.title = title; - attributionBackgroundSize.width += [attribution.title size].width + 10; - attributionBackgroundSize.height = MAX([attribution.title size].height, attributionBackgroundSize.height); - [infos addObject:attribution]; + CGSize attributionSize = [info titleWithStyle:attributionStyle].size; + attributionBackgroundSize.width += attributionSize.width + 10; + attributionBackgroundSize.height = MAX(attributionSize.height, attributionBackgroundSize.height); } - MGLSnapshotAttributionOptions *attributionOptions = [[MGLSnapshotAttributionOptions alloc] init]; - attributionOptions.attributionBackgroundSize = attributionBackgroundSize; - attributionOptions.attributionInfo = infos; - - return attributionOptions; + return attributionBackgroundSize; } - (void)cancel From 1ce3d2e5ef12c9e430ed37a5c98232781392755a Mon Sep 17 00:00:00 2001 From: Pablo Guardiola Date: Tue, 5 Dec 2017 10:12:16 +0100 Subject: [PATCH 31/92] [android] remove unnecessary jar generation from gradle-publish.gradle (#10625) --- Makefile | 7 +- .../MapboxGLAndroidSDK/gradle-publish.gradle | 74 ++++++++----------- .../com/mapbox/mapboxsdk/utils/Compare.java | 2 +- 3 files changed, 36 insertions(+), 47 deletions(-) diff --git a/Makefile b/Makefile index d54dcc4fd..d6802cf96 100644 --- a/Makefile +++ b/Makefile @@ -613,7 +613,12 @@ apackage: platform/android/configuration.gradle # Uploads the compiled Android SDK to Maven .PHONY: run-android-upload-archives run-android-upload-archives: platform/android/configuration.gradle - cd platform/android && $(MBGL_ANDROID_GRADLE) -Pmapbox.abis=all :MapboxGLAndroidSDK:uploadArchives + cd platform/android && export IS_LOCAL_DEVELOPMENT=false && $(MBGL_ANDROID_GRADLE) -Pmapbox.abis=all :MapboxGLAndroidSDK:uploadArchives + +# Uploads the compiled Android SDK to ~/.m2/repository/com/mapbox/mapboxsdk +.PHONY: run-android-upload-archives-local +run-android-upload-archives-local: platform/android/configuration.gradle + cd platform/android && export IS_LOCAL_DEVELOPMENT=true && $(MBGL_ANDROID_GRADLE) -Pmapbox.abis=all :MapboxGLAndroidSDK:uploadArchives # Dump system graphics information for the test app .PHONY: android-gfxinfo diff --git a/platform/android/MapboxGLAndroidSDK/gradle-publish.gradle b/platform/android/MapboxGLAndroidSDK/gradle-publish.gradle index c5037974c..9805763a9 100644 --- a/platform/android/MapboxGLAndroidSDK/gradle-publish.gradle +++ b/platform/android/MapboxGLAndroidSDK/gradle-publish.gradle @@ -14,22 +14,17 @@ repositories { mavenCentral() } -// From https://raw.github.com/mcxiaoke/gradle-mvn-push/master/jar.gradle -android.libraryVariants.all { variant -> - def jarTask = project.tasks.create(name: "jar${variant.name.capitalize()}", type: Jar) { - from variant.javaCompile.destinationDir - exclude "**/R.class" - exclude "**/BuildConfig.class" - } - jarTask.dependsOn variant.javaCompile - artifacts.add('archives', jarTask); -} - -// From https://raw.github.com/mcxiaoke/gradle-mvn-push/master/gradle-mvn-push.gradle def isReleaseBuild() { return VERSION_NAME.contains("SNAPSHOT") == false } +def isLocalBuild() { + if (System.getenv('IS_LOCAL_DEVELOPMENT') != null) { + return System.getenv('IS_LOCAL_DEVELOPMENT').toBoolean() + } + return true +} + def getReleaseRepositoryUrl() { return hasProperty('RELEASE_REPOSITORY_URL') ? RELEASE_REPOSITORY_URL : "https://oss.sonatype.org/service/local/staging/deploy/maven2/" @@ -40,6 +35,10 @@ def getSnapshotRepositoryUrl() { "https://oss.sonatype.org/content/repositories/snapshots/" } +def obtainMavenLocalUrl() { + return getRepositories().mavenLocal().getUrl() +} + def getRepositoryUsername() { return hasProperty('USERNAME') ? USERNAME : (hasProperty('NEXUS_USERNAME') ? NEXUS_USERNAME : "") @@ -50,22 +49,6 @@ def getRepositoryPassword() { (hasProperty('NEXUS_PASSWORD') ? NEXUS_PASSWORD : "") } -task apklib(type: Zip) { - appendix = extension = 'apklib' - - from 'AndroidManifest.xml' - into('res') { - from 'res' - } - into('src') { - from 'src' - } -} - -artifacts { - archives apklib -} - afterEvaluate { project -> uploadArchives { repositories { @@ -76,24 +59,16 @@ afterEvaluate { project -> pom.artifactId = POM_ARTIFACT_ID pom.version = VERSION_NAME - repository(url: getReleaseRepositoryUrl()) { - authentication(userName: getRepositoryUsername(), - password: getRepositoryPassword()) + if (isLocalBuild()) { + repository(url: obtainMavenLocalUrl()) + } else { + repository(url: getReleaseRepositoryUrl()) { + authentication(userName: getRepositoryUsername(), password: getRepositoryPassword()) + } + snapshotRepository(url: getSnapshotRepositoryUrl()) { + authentication(userName: getRepositoryUsername(), password: getRepositoryPassword()) + } } - snapshotRepository(url: getSnapshotRepositoryUrl()) { - authentication(userName: getRepositoryUsername(), - password: getRepositoryPassword()) - } - -/* - // Leaving out as artifact was incorrectly named when found - addFilter('aar') { artifact, file -> - artifact.name == archivesBaseName - } - addFilter('apklib') { artifact, file -> - artifact.name == archivesBaseName + '-apklib' - } -*/ pom.project { name POM_NAME @@ -151,3 +126,12 @@ afterEvaluate { project -> archives androidJavadocsJar } } + +// See: https://github.com/chrisbanes/gradle-mvn-push/issues/43#issuecomment-84140513 +afterEvaluate { project -> + android.libraryVariants.all { variant -> + tasks.androidJavadocs.doFirst { + classpath += files(variant.javaCompile.classpath.files) + } + } +} diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/utils/Compare.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/utils/Compare.java index c7d7a13a3..f17d4574d 100644 --- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/utils/Compare.java +++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/utils/Compare.java @@ -1,7 +1,7 @@ package com.mapbox.mapboxsdk.utils; /** - * Comparisons from std sdk, which aren't available in API level <= 15 + * Comparisons from std sdk, which aren't available in API level 15 and below */ public class Compare { From 68938884357491e400ec258c04c2c582f84b93ec Mon Sep 17 00:00:00 2001 From: Julio Cesar Fausto Date: Tue, 17 Oct 2017 21:04:53 +0200 Subject: [PATCH 32/92] [ios, macos] Snapshot classes added to jazzy --- platform/ios/jazzy.yml | 3 +++ platform/macos/jazzy.yml | 3 +++ 2 files changed, 6 insertions(+) diff --git a/platform/ios/jazzy.yml b/platform/ios/jazzy.yml index ba56c312e..2a7a2b667 100644 --- a/platform/ios/jazzy.yml +++ b/platform/ios/jazzy.yml @@ -32,6 +32,9 @@ custom_categories: - MGLMapCamera - MGLMapView - MGLMapViewDelegate + - MGLMapSnapshot + - MGLMapSnapshotOptions + - MGLMapSnapshotter - MGLUserTrackingMode - name: Primitive Shapes children: diff --git a/platform/macos/jazzy.yml b/platform/macos/jazzy.yml index fcd4bfd30..ab4643fa6 100644 --- a/platform/macos/jazzy.yml +++ b/platform/macos/jazzy.yml @@ -28,6 +28,9 @@ custom_categories: - MGLMapCamera - MGLMapView - MGLMapViewDelegate + - MGLMapSnapshot + - MGLMapSnapshotOptions + - MGLMapSnapshotter - name: Shapes and Annotations children: - MGLAnnotation From 65d2e0b8f20aff34564b4c5cec968497c1740037 Mon Sep 17 00:00:00 2001 From: Ivo van Dongen Date: Mon, 20 Nov 2017 15:22:34 +0200 Subject: [PATCH 33/92] [android] Enable map rendering when app is paused --- .../src/main/java/com/mapbox/mapboxsdk/maps/MapView.java | 9 +++++++++ .../com/mapbox/mapboxsdk/maps/renderer/MapRenderer.java | 8 ++++++++ .../renderer/glsurfaceview/GLSurfaceViewMapRenderer.java | 4 ++-- .../renderer/textureview/TextureViewMapRenderer.java | 4 ++-- 4 files changed, 21 insertions(+), 4 deletions(-) diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapView.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapView.java index de917979a..2d2dc0302 100644 --- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapView.java +++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapView.java @@ -365,6 +365,10 @@ public class MapView extends FrameLayout { if (mapboxMap != null) { mapboxMap.onStart(); } + + if (mapRenderer != null) { + mapRenderer.onStart(); + } } /** @@ -396,6 +400,11 @@ public class MapView extends FrameLayout { // map was destroyed before it was started mapboxMap.onStop(); } + + if (mapRenderer != null) { + mapRenderer.onStop(); + } + ConnectivityReceiver.instance(getContext()).deactivate(); FileSource.getInstance(getContext()).deactivate(); } diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/renderer/MapRenderer.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/renderer/MapRenderer.java index 961438ed1..2baff473e 100644 --- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/renderer/MapRenderer.java +++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/renderer/MapRenderer.java @@ -33,6 +33,10 @@ public abstract class MapRenderer implements MapRendererScheduler { nativeInitialize(this, fileSource, pixelRatio, programCacheDir); } + public void onStart() { + // Implement if needed + } + public void onPause() { // Implement if needed } @@ -41,6 +45,10 @@ public abstract class MapRenderer implements MapRendererScheduler { // Implement if needed } + public void onStop() { + // Implement if needed + } + public void onDestroy() { // Implement if needed } diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/renderer/glsurfaceview/GLSurfaceViewMapRenderer.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/renderer/glsurfaceview/GLSurfaceViewMapRenderer.java index ba2e118fa..d98e4d06a 100644 --- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/renderer/glsurfaceview/GLSurfaceViewMapRenderer.java +++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/renderer/glsurfaceview/GLSurfaceViewMapRenderer.java @@ -31,12 +31,12 @@ public class GLSurfaceViewMapRenderer extends MapRenderer implements GLSurfaceVi } @Override - public void onPause() { + public void onStop() { glSurfaceView.onPause(); } @Override - public void onResume() { + public void onStart() { glSurfaceView.onResume(); } diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/renderer/textureview/TextureViewMapRenderer.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/renderer/textureview/TextureViewMapRenderer.java index 8cd724a82..397904b1f 100644 --- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/renderer/textureview/TextureViewMapRenderer.java +++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/renderer/textureview/TextureViewMapRenderer.java @@ -74,7 +74,7 @@ public class TextureViewMapRenderer extends MapRenderer { * {@inheritDoc} */ @Override - public void onPause() { + public void onStop() { renderThread.onPause(); } @@ -82,7 +82,7 @@ public class TextureViewMapRenderer extends MapRenderer { * {@inheritDoc} */ @Override - public void onResume() { + public void onStart() { renderThread.onResume(); } From 7b7b2c53fb1501becefa7da5afdb810f531db2d1 Mon Sep 17 00:00:00 2001 From: Tobrun Date: Wed, 22 Nov 2017 17:08:23 +0100 Subject: [PATCH 34/92] [android] - activate filesource to list offline regions (#10531) --- .../java/com/mapbox/mapboxsdk/offline/OfflineManager.java | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/offline/OfflineManager.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/offline/OfflineManager.java index 130284e88..6a2bf6b07 100644 --- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/offline/OfflineManager.java +++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/offline/OfflineManager.java @@ -149,8 +149,8 @@ public class OfflineManager { * * @param callback the callback to be invoked */ - public void listOfflineRegions(@NonNull - final ListOfflineRegionsCallback callback) { + public void listOfflineRegions(@NonNull final ListOfflineRegionsCallback callback) { + fileSource.activate(); listOfflineRegions(fileSource, new ListOfflineRegionsCallback() { @Override @@ -158,6 +158,7 @@ public class OfflineManager { getHandler().post(new Runnable() { @Override public void run() { + fileSource.deactivate(); callback.onList(offlineRegions); } }); @@ -168,6 +169,7 @@ public class OfflineManager { getHandler().post(new Runnable() { @Override public void run() { + fileSource.deactivate(); callback.onError(error); } }); @@ -241,6 +243,7 @@ public class OfflineManager { /** * Changing or bypassing this limit without permission from Mapbox is prohibited * by the Mapbox Terms of Service. + * * @param limit the new tile count limit. */ public native void setOfflineMapboxTileCountLimit(long limit); From f64475f76c9809385a480d646b2212757889125f Mon Sep 17 00:00:00 2001 From: Tobrun Date: Wed, 22 Nov 2017 18:46:31 +0100 Subject: [PATCH 35/92] [android] - harden MarkerView integration by checking for null bitmap (#10532) --- .../src/main/java/com/mapbox/mapboxsdk/annotations/Icon.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/annotations/Icon.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/annotations/Icon.java index 2ee17c227..8749656e3 100644 --- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/annotations/Icon.java +++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/annotations/Icon.java @@ -36,7 +36,7 @@ public class Icon { * @return The bitmap being used for the icon. */ public Bitmap getBitmap() { - if (mBitmap.getConfig() != Bitmap.Config.ARGB_8888) { + if (mBitmap != null && mBitmap.getConfig() != Bitmap.Config.ARGB_8888) { mBitmap = mBitmap.copy(Bitmap.Config.ARGB_8888, false); } return mBitmap; From 8ad3759b9c4b6767202d959a5b75732cc740763d Mon Sep 17 00:00:00 2001 From: Tobrun Date: Wed, 29 Nov 2017 12:26:52 +0100 Subject: [PATCH 36/92] [android] - use concurrent lists for camera change listeners (#10542) --- .../maps/CameraChangeDispatcher.java | 51 +++++++++---------- 1 file changed, 25 insertions(+), 26 deletions(-) diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/CameraChangeDispatcher.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/CameraChangeDispatcher.java index cf780dcc3..f046744c3 100644 --- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/CameraChangeDispatcher.java +++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/CameraChangeDispatcher.java @@ -2,8 +2,7 @@ package com.mapbox.mapboxsdk.maps; import android.support.annotation.NonNull; -import java.util.ArrayList; -import java.util.List; +import java.util.concurrent.CopyOnWriteArrayList; import static com.mapbox.mapboxsdk.maps.MapboxMap.OnCameraIdleListener; import static com.mapbox.mapboxsdk.maps.MapboxMap.OnCameraMoveCanceledListener; @@ -15,10 +14,10 @@ class CameraChangeDispatcher implements MapboxMap.OnCameraMoveStartedListener, M private boolean idle = true; - private final List onCameraMoveStartedListenerList = new ArrayList<>(); - private final List onCameraMoveCanceledListenerList = new ArrayList<>(); - private final List onCameraMoveListenerList = new ArrayList<>(); - private final List onCameraIdleListenerList = new ArrayList<>(); + private final CopyOnWriteArrayList onCameraMoveStarted = new CopyOnWriteArrayList<>(); + private final CopyOnWriteArrayList onCameraMoveCanceled = new CopyOnWriteArrayList<>(); + private final CopyOnWriteArrayList onCameraMove = new CopyOnWriteArrayList<>(); + private final CopyOnWriteArrayList onCameraIdle = new CopyOnWriteArrayList<>(); private OnCameraMoveStartedListener onCameraMoveStartedListener; private OnCameraMoveCanceledListener onCameraMoveCanceledListener; @@ -58,8 +57,8 @@ class CameraChangeDispatcher implements MapboxMap.OnCameraMoveStartedListener, M } // new API - if (!onCameraMoveStartedListenerList.isEmpty()) { - for (OnCameraMoveStartedListener cameraMoveStartedListener : onCameraMoveStartedListenerList) { + if (!onCameraMoveStarted.isEmpty()) { + for (OnCameraMoveStartedListener cameraMoveStartedListener : onCameraMoveStarted) { cameraMoveStartedListener.onCameraMoveStarted(reason); } } @@ -73,8 +72,8 @@ class CameraChangeDispatcher implements MapboxMap.OnCameraMoveStartedListener, M } // new API - if (!onCameraMoveListenerList.isEmpty() && !idle) { - for (OnCameraMoveListener cameraMoveListener : onCameraMoveListenerList) { + if (!onCameraMove.isEmpty() && !idle) { + for (OnCameraMoveListener cameraMoveListener : onCameraMove) { cameraMoveListener.onCameraMove(); } } @@ -88,8 +87,8 @@ class CameraChangeDispatcher implements MapboxMap.OnCameraMoveStartedListener, M } // new API - if (!onCameraMoveCanceledListenerList.isEmpty() && !idle) { - for (OnCameraMoveCanceledListener cameraMoveCanceledListener : onCameraMoveCanceledListenerList) { + if (!onCameraMoveCanceled.isEmpty() && !idle) { + for (OnCameraMoveCanceledListener cameraMoveCanceledListener : onCameraMoveCanceled) { cameraMoveCanceledListener.onCameraMoveCanceled(); } } @@ -105,8 +104,8 @@ class CameraChangeDispatcher implements MapboxMap.OnCameraMoveStartedListener, M } // new API - if (!onCameraIdleListenerList.isEmpty()) { - for (OnCameraIdleListener cameraIdleListener : onCameraIdleListenerList) { + if (!onCameraIdle.isEmpty()) { + for (OnCameraIdleListener cameraIdleListener : onCameraIdle) { cameraIdleListener.onCameraIdle(); } } @@ -114,42 +113,42 @@ class CameraChangeDispatcher implements MapboxMap.OnCameraMoveStartedListener, M } void addOnCameraIdleListener(@NonNull OnCameraIdleListener listener) { - onCameraIdleListenerList.add(listener); + onCameraIdle.add(listener); } void removeOnCameraIdleListener(@NonNull OnCameraIdleListener listener) { - if (onCameraIdleListenerList.contains(listener)) { - onCameraIdleListenerList.remove(listener); + if (onCameraIdle.contains(listener)) { + onCameraIdle.remove(listener); } } void addOnCameraMoveCancelListener(OnCameraMoveCanceledListener listener) { - onCameraMoveCanceledListenerList.add(listener); + onCameraMoveCanceled.add(listener); } void removeOnCameraMoveCancelListener(OnCameraMoveCanceledListener listener) { - if (onCameraMoveCanceledListenerList.contains(listener)) { - onCameraMoveCanceledListenerList.remove(listener); + if (onCameraMoveCanceled.contains(listener)) { + onCameraMoveCanceled.remove(listener); } } void addOnCameraMoveStartedListener(OnCameraMoveStartedListener listener) { - onCameraMoveStartedListenerList.add(listener); + onCameraMoveStarted.add(listener); } void removeOnCameraMoveStartedListener(OnCameraMoveStartedListener listener) { - if (onCameraMoveStartedListenerList.contains(listener)) { - onCameraMoveStartedListenerList.remove(listener); + if (onCameraMoveStarted.contains(listener)) { + onCameraMoveStarted.remove(listener); } } void addOnCameraMoveListener(OnCameraMoveListener listener) { - onCameraMoveListenerList.add(listener); + onCameraMove.add(listener); } void removeOnCameraMoveListener(OnCameraMoveListener listener) { - if (onCameraMoveListenerList.contains(listener)) { - onCameraMoveListenerList.remove(listener); + if (onCameraMove.contains(listener)) { + onCameraMove.remove(listener); } } } From bc27322853f5d35d546bc704599298fa3efe77cc Mon Sep 17 00:00:00 2001 From: Tobrun Date: Thu, 30 Nov 2017 11:45:40 +0100 Subject: [PATCH 37/92] [android] - handle destroying activity programmatically as part of theme switching (#10589) --- .../src/main/java/com/mapbox/mapboxsdk/maps/MapView.java | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapView.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapView.java index 2d2dc0302..1f8faf023 100644 --- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapView.java +++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapView.java @@ -416,8 +416,12 @@ public class MapView extends FrameLayout { public void onDestroy() { destroyed = true; mapCallback.clearOnMapReadyCallbacks(); - nativeMapView.destroy(); - nativeMapView = null; + + if (nativeMapView != null) { + // null when destroying an activity programmatically mapbox-navigation-android/issues/503 + nativeMapView.destroy(); + nativeMapView = null; + } if (mapRenderer != null) { mapRenderer.onDestroy(); From 2a13bfd2c4c8d1575606d67321fb2354c754fa14 Mon Sep 17 00:00:00 2001 From: Tobrun Date: Wed, 6 Dec 2017 11:51:33 +0100 Subject: [PATCH 38/92] [android] - add FileSource activation/deactivation to MapSnapshotter, handle multiple deactivate scenario in FileSource (#10556) --- .../mapbox/mapboxsdk/storage/FileSource.java | 24 ++------------ platform/android/src/file_source.cpp | 19 ++++++++--- platform/android/src/file_source.hpp | 1 + .../src/snapshotter/map_snapshotter.cpp | 33 +++++++++++++++---- .../src/snapshotter/map_snapshotter.hpp | 5 +++ 5 files changed, 49 insertions(+), 33 deletions(-) diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/storage/FileSource.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/storage/FileSource.java index 41dc449b5..f0cb8d973 100644 --- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/storage/FileSource.java +++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/storage/FileSource.java @@ -6,10 +6,8 @@ import android.content.pm.PackageManager; import android.content.res.AssetManager; import android.os.Environment; import android.support.annotation.NonNull; - import com.mapbox.mapboxsdk.Mapbox; import com.mapbox.mapboxsdk.constants.MapboxConstants; - import timber.log.Timber; /** @@ -119,28 +117,14 @@ public class FileSource { } private long nativePtr; - private long activeCounter; - private boolean wasPaused; private FileSource(String cachePath, AssetManager assetManager) { initialize(Mapbox.getAccessToken(), cachePath, assetManager); } - public void activate() { - activeCounter++; - if (activeCounter == 1 && wasPaused) { - wasPaused = false; - resume(); - } - } + public native void activate(); - public void deactivate() { - activeCounter--; - if (activeCounter == 0) { - wasPaused = true; - pause(); - } - } + public native void deactivate(); public native void setAccessToken(@NonNull String accessToken); @@ -148,10 +132,6 @@ public class FileSource { public native void setApiBaseUrl(String baseUrl); - private native void resume(); - - private native void pause(); - /** * Sets a callback for transforming URLs requested from the internet *

diff --git a/platform/android/src/file_source.cpp b/platform/android/src/file_source.cpp index a576661a4..6a9d7badb 100644 --- a/platform/android/src/file_source.cpp +++ b/platform/android/src/file_source.cpp @@ -63,11 +63,22 @@ void FileSource::setResourceTransform(jni::JNIEnv& env, jni::Objectresume(); + if (!activationCounter) { + activationCounter = optional(1) ; + return; + } + + activationCounter.value()++; + if (activationCounter == 1) { + fileSource->resume(); + } } void FileSource::pause(jni::JNIEnv&) { - fileSource->pause(); + activationCounter.value()--; + if (activationCounter == 0) { + fileSource->pause(); + } } jni::Class FileSource::javaClass; @@ -100,8 +111,8 @@ void FileSource::registerNative(jni::JNIEnv& env) { METHOD(&FileSource::setAccessToken, "setAccessToken"), METHOD(&FileSource::setAPIBaseUrl, "setApiBaseUrl"), METHOD(&FileSource::setResourceTransform, "setResourceTransform"), - METHOD(&FileSource::resume, "resume"), - METHOD(&FileSource::pause, "pause") + METHOD(&FileSource::resume, "activate"), + METHOD(&FileSource::pause, "deactivate") ); } diff --git a/platform/android/src/file_source.hpp b/platform/android/src/file_source.hpp index 2933aedf8..194f78462 100644 --- a/platform/android/src/file_source.hpp +++ b/platform/android/src/file_source.hpp @@ -54,6 +54,7 @@ public: static void registerNative(jni::JNIEnv&); private: + optional activationCounter; std::unique_ptr> resourceTransform; std::unique_ptr fileSource; }; diff --git a/platform/android/src/snapshotter/map_snapshotter.cpp b/platform/android/src/snapshotter/map_snapshotter.cpp index 637eb5c1f..71f8b4f4c 100644 --- a/platform/android/src/snapshotter/map_snapshotter.cpp +++ b/platform/android/src/snapshotter/map_snapshotter.cpp @@ -15,7 +15,7 @@ namespace android { MapSnapshotter::MapSnapshotter(jni::JNIEnv& _env, jni::Object _obj, - jni::Object jFileSource, + jni::Object _jFileSource, jni::jfloat _pixelRatio, jni::jint width, jni::jint height, @@ -34,16 +34,16 @@ MapSnapshotter::MapSnapshotter(jni::JNIEnv& _env, return; } - auto& fileSource = mbgl::android::FileSource::getDefaultFileSource(_env, jFileSource); + jFileSource = FileSource::getNativePeer(_env, _jFileSource); + auto& fileSource = mbgl::android::FileSource::getDefaultFileSource(_env, _jFileSource); auto size = mbgl::Size { static_cast(width), static_cast(height) }; auto cameraOptions = position ? CameraPosition::getCameraOptions(_env, position) : CameraOptions(); optional bounds; if (region) { bounds = LatLngBounds::getLatLngBounds(_env, region); } - + showLogo = _showLogo; - // Create the core snapshotter snapshotter = std::make_unique(fileSource, *threadPool, @@ -58,8 +58,9 @@ MapSnapshotter::MapSnapshotter(jni::JNIEnv& _env, MapSnapshotter::~MapSnapshotter() = default; -void MapSnapshotter::start(JNIEnv&) { +void MapSnapshotter::start(JNIEnv& env) { MBGL_VERIFY_THREAD(tid); + activateFilesource(env); snapshotCallback = std::make_unique>( *Scheduler::GetCurrent(), @@ -79,17 +80,19 @@ void MapSnapshotter::start(JNIEnv&) { static auto onSnapshotReady = javaClass.GetMethod)>(*_env, "onSnapshotReady"); javaPeer->Call(*_env, onSnapshotReady, mapSnapshot); } + + deactivateFilesource(*_env); }); snapshotter->snapshot(snapshotCallback->self()); } -void MapSnapshotter::cancel(JNIEnv&) { +void MapSnapshotter::cancel(JNIEnv& env) { MBGL_VERIFY_THREAD(tid); snapshotCallback.reset(); + deactivateFilesource(env); } - void MapSnapshotter::setStyleUrl(JNIEnv& env, jni::String styleURL) { snapshotter->setStyleURL(jni::Make(env, styleURL)); } @@ -108,6 +111,22 @@ void MapSnapshotter::setRegion(JNIEnv& env, jni::Object region) { snapshotter->setRegion(LatLngBounds::getLatLngBounds(env, region)); } +// Private methods // + +void MapSnapshotter::activateFilesource(JNIEnv& env) { + if (!activatedFilesource) { + activatedFilesource = true; + jFileSource->resume(env); + } +} + +void MapSnapshotter::deactivateFilesource(JNIEnv& env) { + if (activatedFilesource) { + activatedFilesource = false; + jFileSource->pause(env); + } +} + // Static methods // jni::Class MapSnapshotter::javaClass; diff --git a/platform/android/src/snapshotter/map_snapshotter.hpp b/platform/android/src/snapshotter/map_snapshotter.hpp index 8cd85060b..4cdf4bcf2 100644 --- a/platform/android/src/snapshotter/map_snapshotter.hpp +++ b/platform/android/src/snapshotter/map_snapshotter.hpp @@ -65,6 +65,11 @@ private: std::shared_ptr threadPool; std::unique_ptr> snapshotCallback; std::unique_ptr snapshotter; + + FileSource *jFileSource; + void activateFilesource(JNIEnv&); + void deactivateFilesource(JNIEnv&); + bool activatedFilesource = false; }; } // namespace android From 966b6a53cec1796e675e776fd421b6f1bdcf0acd Mon Sep 17 00:00:00 2001 From: Chris Loer Date: Wed, 22 Nov 2017 13:18:22 -0800 Subject: [PATCH 39/92] [core, ios, qt, android] Close race condition in RunLoop (issue #9620) Because a message we queue from the foreground may cause the background to complete, exit, and tear down the AsyncTask, we have to block queue processing until we've finished our call to AsyncTask::send(). Broadening the scope of a mutex is scary, but I audited the code of our four implementations of AsyncTask and I don't see any way this could cause a deadlock. --- platform/android/src/run_loop.cpp | 6 ++++-- platform/darwin/src/run_loop.cpp | 6 ++++-- platform/default/run_loop.cpp | 6 ++++-- platform/qt/src/run_loop.cpp | 6 ++++-- 4 files changed, 16 insertions(+), 8 deletions(-) diff --git a/platform/android/src/run_loop.cpp b/platform/android/src/run_loop.cpp index dff7d1d98..1d284a9e7 100644 --- a/platform/android/src/run_loop.cpp +++ b/platform/android/src/run_loop.cpp @@ -217,8 +217,10 @@ LOOP_HANDLE RunLoop::getLoopHandle() { } void RunLoop::push(std::shared_ptr task) { - withMutex([&] { queue.push(std::move(task)); }); - impl->wake(); + withMutex([&] { + queue.push(std::move(task)); + impl->wake(); + }); } void RunLoop::run() { diff --git a/platform/darwin/src/run_loop.cpp b/platform/darwin/src/run_loop.cpp index 2ba8f8415..d60a88cf5 100644 --- a/platform/darwin/src/run_loop.cpp +++ b/platform/darwin/src/run_loop.cpp @@ -30,8 +30,10 @@ RunLoop::~RunLoop() { } void RunLoop::push(std::shared_ptr task) { - withMutex([&] { queue.push(std::move(task)); }); - impl->async->send(); + withMutex([&] { + queue.push(std::move(task)); + impl->async->send(); + }); } void RunLoop::run() { diff --git a/platform/default/run_loop.cpp b/platform/default/run_loop.cpp index 6375dba78..5bccd21d5 100644 --- a/platform/default/run_loop.cpp +++ b/platform/default/run_loop.cpp @@ -130,8 +130,10 @@ LOOP_HANDLE RunLoop::getLoopHandle() { } void RunLoop::push(std::shared_ptr task) { - withMutex([&] { queue.push(std::move(task)); }); - impl->async->send(); + withMutex([&] { + queue.push(std::move(task)); + impl->async->send(); + }); } void RunLoop::run() { diff --git a/platform/qt/src/run_loop.cpp b/platform/qt/src/run_loop.cpp index 71ea19032..af0c50ebb 100644 --- a/platform/qt/src/run_loop.cpp +++ b/platform/qt/src/run_loop.cpp @@ -53,8 +53,10 @@ LOOP_HANDLE RunLoop::getLoopHandle() { } void RunLoop::push(std::shared_ptr task) { - withMutex([&] { queue.push(task); }); - impl->async->send(); + withMutex([&] { + queue.push(std::move(task)); + impl->async->send(); + }); } void RunLoop::run() { From f89afa0b277beb733d330f2d40a0b9ca84dfba40 Mon Sep 17 00:00:00 2001 From: Jordan Kiley Date: Mon, 4 Dec 2017 16:40:14 -0800 Subject: [PATCH 40/92] [ios, macos] Rename the iOS and macOS SDKs (#10610) --- CHANGELOG.md | 4 +-- CONTRIBUTING.md | 4 +-- INSTALL.md | 6 ++-- README.md | 6 ++-- platform/darwin/src/MGLAccountManager.m | 2 +- platform/darwin/src/NSBundle+MGLAdditions.m | 2 +- platform/ios/CHANGELOG.md | 6 +++- platform/ios/DEVELOPING.md | 28 +++++++-------- platform/ios/INSTALL.md | 12 +++---- platform/ios/README.md | 6 ++-- platform/ios/docs/doc-README.md | 8 ++--- .../ios/docs/guides/Gesture Recognizers.md | 2 +- platform/ios/docs/guides/Info.plist Keys.md | 2 +- platform/ios/docs/pod-README.md | 12 +++---- .../resources/Base.lproj/Localizable.strings | Bin 298 -> 7378 bytes .../resources/bg.lproj/Localizable.strings | 6 ++-- .../resources/ca.lproj/Localizable.strings | 6 ++-- .../resources/de.lproj/Localizable.strings | 6 ++-- .../resources/es.lproj/Localizable.strings | 4 +-- .../resources/fr.lproj/Localizable.strings | 4 +-- .../resources/hu.lproj/Localizable.strings | 6 ++-- .../resources/ja.lproj/Localizable.strings | 6 ++-- .../resources/lt.lproj/Localizable.strings | 6 ++-- .../resources/pt-BR.lproj/Localizable.strings | 4 +-- .../resources/ru.lproj/Localizable.strings | 6 ++-- .../resources/sv.lproj/Localizable.strings | 6 ++-- .../resources/uk.lproj/Localizable.strings | 6 ++-- .../resources/vi.lproj/Localizable.strings | 4 +-- .../zh-Hans.lproj/Localizable.strings | 6 ++-- .../zh-Hant.lproj/Localizable.strings | 6 ++-- platform/ios/src/MGLMapView.mm | 2 +- platform/ios/src/MGLSDKUpdateChecker.mm | 2 +- platform/macos/CHANGELOG.md | 3 ++ platform/macos/DEVELOPING.md | 32 +++++++++--------- platform/macos/INSTALL.md | 8 ++--- platform/macos/docs/guides/Info.plist Keys.md | 2 +- 36 files changed, 119 insertions(+), 112 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5034146ca..4ce6fe25b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,6 @@ Each Mapbox GL Native SDK has a separate changelog that highlights changes relevant to their respective platforms: * [Mapbox Android SDK](platform/android/CHANGELOG.md) -* [Mapbox iOS SDK](platform/ios/CHANGELOG.md) -* [Mapbox macOS SDK](platform/macos/CHANGELOG.md) +* [Mapbox Maps SDK for iOS](platform/ios/CHANGELOG.md) +* [Mapbox Maps SDK for macOS](platform/macos/CHANGELOG.md) * [node-mapbox-gl-native](platform/node/CHANGELOG.md) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 964ac01a8..f996a1773 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -10,8 +10,8 @@ If you want to contribute code: 1. Pull requests are gladly accepted. If there are any changes that developers using one of the GL SDKs should be aware of, please update the **master** section of the relevant changelog(s): * [Mapbox Android SDK](platform/android/CHANGELOG.md) - * [Mapbox iOS SDK](platform/ios/CHANGELOG.md) - * [Mapbox macOS SDK](platform/macos/CHANGELOG.md) + * [Mapbox Maps SDK for iOS](platform/ios/CHANGELOG.md) + * [Mapbox Maps SDK for macOS](platform/macos/CHANGELOG.md) * [node-mapbox-gl-native](platform/node/CHANGELOG.md) 1. Prefix your commit messages with the platform(s) your changes affect: `[core]`, `[android]`, `[ios]`, `[macos]`, `[node]`, or `[qt]`. diff --git a/INSTALL.md b/INSTALL.md index 61d2271de..78c5a0693 100644 --- a/INSTALL.md +++ b/INSTALL.md @@ -56,9 +56,9 @@ dependencies: See the relevant SDK documentation for next steps: -* [Mapbox Android SDK](platform/android/) -* [Mapbox iOS SDK](platform/ios/) -* [Mapbox macOS SDK](platform/macos/) +* [Maps SDK for Android](platform/android/) +* [Maps SDK for iOS](platform/ios/) +* [Maps SDK for iOS](platform/macos/) * [Mapbox Qt SDK](platform/qt/) * [Mapbox GL Native on Linux](platform/linux/) * [node-mapbox-gl-native](platform/node/) diff --git a/README.md b/README.md index 8f6ea9970..c66d2216a 100644 --- a/README.md +++ b/README.md @@ -9,9 +9,9 @@ This repository hosts the cross-platform Mapbox GL Native library, plus convenie | SDK | Languages | Build status | | --------------------------------------- | ---------------------------------- | ---------------------------------------- | | [Mapbox GL Native](INSTALL.md) | C++14 | [![Circle CI build status](https://circleci.com/gh/mapbox/mapbox-gl-native.svg?style=shield)](https://circleci.com/gh/mapbox/workflows/mapbox-gl-native/tree/master) [![Coverage Status](https://coveralls.io/repos/github/mapbox/mapbox-gl-native/badge.svg?branch=master)](https://coveralls.io/github/mapbox/mapbox-gl-native?branch=master) | -| [Mapbox Android SDK](platform/android/) | Java | [![Circle CI build status](https://circleci.com/gh/mapbox/mapbox-gl-native.svg?style=shield)](https://circleci.com/gh/mapbox/workflows/mapbox-gl-native/tree/master) | -| [Mapbox iOS SDK](platform/ios/) | Objective-C or Swift | [![Bitrise](https://www.bitrise.io/app/7514e4cf3da2cc57.svg?token=OwqZE5rSBR9MVWNr_lf4sA&branch=master)](https://www.bitrise.io/app/7514e4cf3da2cc57) | -| [Mapbox macOS SDK](platform/macos/) | Objective-C, Swift, or AppleScript | [![Bitrise](https://www.bitrise.io/app/155ef7da24b38dcd.svg?token=4KSOw_gd6WxTnvGE2rMttg&branch=master)](https://www.bitrise.io/app/155ef7da24b38dcd) | +| [Mapbox Maps SDK for Android](platform/android/) | Java | [![Circle CI build status](https://circleci.com/gh/mapbox/mapbox-gl-native.svg?style=shield)](https://circleci.com/gh/mapbox/workflows/mapbox-gl-native/tree/master) | +| [Mapbox Maps SDK for iOS](platform/ios/) | Objective-C or Swift | [![Bitrise](https://www.bitrise.io/app/7514e4cf3da2cc57.svg?token=OwqZE5rSBR9MVWNr_lf4sA&branch=master)](https://www.bitrise.io/app/7514e4cf3da2cc57) | +| [Mapbox Maps SDK for macOS](platform/macos/) | Objective-C, Swift, or AppleScript | [![Bitrise](https://www.bitrise.io/app/155ef7da24b38dcd.svg?token=4KSOw_gd6WxTnvGE2rMttg&branch=master)](https://www.bitrise.io/app/155ef7da24b38dcd) | | [node-mapbox-gl-native](platform/node/) | Node.js | [![Circle CI build status](https://circleci.com/gh/mapbox/mapbox-gl-native.svg?style=shield)](https://circleci.com/gh/mapbox/workflows/mapbox-gl-native/tree/master) | | [Mapbox Qt SDK](platform/qt) | C++03 | [![Circle CI build status](https://circleci.com/gh/mapbox/mapbox-gl-native.svg?style=shield)](https://circleci.com/gh/mapbox/workflows/mapbox-gl-native/tree/master) | diff --git a/platform/darwin/src/MGLAccountManager.m b/platform/darwin/src/MGLAccountManager.m index 0f5d03303..7e55779d0 100644 --- a/platform/darwin/src/MGLAccountManager.m +++ b/platform/darwin/src/MGLAccountManager.m @@ -55,7 +55,7 @@ } + (BOOL)mapboxMetricsEnabledSettingShownInApp { - NSLog(@"mapboxMetricsEnabledSettingShownInApp is no longer necessary; the Mapbox iOS SDK has changed to always provide a telemetry setting in-app."); + NSLog(@"mapboxMetricsEnabledSettingShownInApp is no longer necessary; the Mapbox Maps SDK for iOS has changed to always provide a telemetry setting in-app."); return YES; } diff --git a/platform/darwin/src/NSBundle+MGLAdditions.m b/platform/darwin/src/NSBundle+MGLAdditions.m index f383a5030..f55059324 100644 --- a/platform/darwin/src/NSBundle+MGLAdditions.m +++ b/platform/darwin/src/NSBundle+MGLAdditions.m @@ -15,7 +15,7 @@ bundle = [self bundleWithPath:bundlePath]; } else { [NSException raise:@"MGLBundleNotFoundException" format: - @"The Mapbox framework bundle could not be found. If using the Mapbox iOS SDK as a static framework, make sure that Mapbox.bundle is copied into the root of the app bundle."]; + @"The Mapbox framework bundle could not be found. If using the Mapbox Maps SDK for iOS as a static framework, make sure that Mapbox.bundle is copied into the root of the app bundle."]; } } diff --git a/platform/ios/CHANGELOG.md b/platform/ios/CHANGELOG.md index 347329506..5a556ec9a 100644 --- a/platform/ios/CHANGELOG.md +++ b/platform/ios/CHANGELOG.md @@ -1,4 +1,4 @@ -# Changelog for Mapbox iOS SDK +# Changelog for Mapbox Maps SDK for iOS Mapbox welcomes participation and contributions from everyone. Please read [CONTRIBUTING.md](../../CONTRIBUTING.md) to get started. @@ -7,6 +7,10 @@ Mapbox welcomes participation and contributions from everyone. Please read [CONT ### Annotations * Fixed an issue that could cause triggering `-[MGLMapViewDelegate mapView:didSelectAnnotation:]` when taping next to a `MGLAnnotationImage` annotation. ([#10538](https://github.com/mapbox/mapbox-gl-native/pull/10538)) +### Packaging + +* Renamed this SDK from Mapbox iOS SDK to Mapbox Maps SDK for iOS. ([#10610](https://github.com/mapbox/mapbox-gl-native/pull/10610)) + ## 3.7.0 - Novemeber 13, 2017 ### Networking and storage diff --git a/platform/ios/DEVELOPING.md b/platform/ios/DEVELOPING.md index 43d7ef3c7..40d45e2e5 100644 --- a/platform/ios/DEVELOPING.md +++ b/platform/ios/DEVELOPING.md @@ -1,12 +1,12 @@ -# Contributing to the Mapbox iOS SDK +# Contributing to the Mapbox Maps SDK for iOS -This document explains how to build the Mapbox iOS SDK from source. It is intended for advanced developers who wish to contribute to Mapbox GL and the Mapbox iOS SDK. +This document explains how to build the Mapbox Maps SDK for iOS from source. It is intended for advanced developers who wish to contribute to Mapbox GL and the Mapbox Maps SDK for iOS. ## Requirements -The Mapbox iOS SDK and iosapp demo application require iOS 8.0 or above. +The Mapbox Maps SDK for iOS and iosapp demo application require iOS 8.0 or above. -The Mapbox iOS SDK requires Xcode 8.0 or above. +The Mapbox Maps SDK for iOS requires Xcode 8.0 or above. ## Building the SDK @@ -70,44 +70,44 @@ To add any Objective-C type, constant, or member to the iOS SDK’s public inter 1. Ensure that the symbol is pure Objective-C and does not rely on any language features specific to Objective-C++ or the C11 dialect of C – so no namespaced types or classes named with emoji! 🙃 Most projects that depend on this SDK are either written in pure Objective-C (GNU99 dialect) or Swift, which cannot yet bridge C++ types. 1. Name the symbol according to [Cocoa naming conventions](https://developer.apple.com/library/prerelease/content/documentation/Cocoa/Conceptual/CodingGuidelines/CodingGuidelines.html#//apple_ref/doc/uid/10000146i). Use the `MGL` class prefix to avoid conflicts with client code. If the symbol has an analogue in MapKit, name the symbol according to MapKit. -1. Provide full documentation comments. We use [jazzy](https://github.com/realm/jazzy/) to produce the documentation found in the SDK distribution and [on the Mapbox iOS SDK website](https://www.mapbox.com/ios-sdk/api/). We also recognize that many developers rely on Xcode’s Quick Help feature. jazzy supports Markdown formatting; however, Quick Help supports only [HeaderDoc](https://developer.apple.com/legacy/library/documentation/DeveloperTools/Conceptual/HeaderDoc/intro/intro.html) syntax and a subset of Doxygen syntax. For hyperlinks, use HTML syntax, which is recognized by both tools. +1. Provide full documentation comments. We use [jazzy](https://github.com/realm/jazzy/) to produce the documentation found in the SDK distribution and [on the website for this SDK](https://www.mapbox.com/ios-sdk/api/). We also recognize that many developers rely on Xcode’s Quick Help feature. jazzy supports Markdown formatting; however, Quick Help supports only [HeaderDoc](https://developer.apple.com/legacy/library/documentation/DeveloperTools/Conceptual/HeaderDoc/intro/intro.html) syntax and a subset of Doxygen syntax. For hyperlinks, use HTML syntax, which is recognized by both tools. ### Making a type or constant public -To add an Objective-C class, protocol, category, typedef, enumeration, or global constant to the iOS SDK’s public interface: +To add an Objective-C class, protocol, category, typedef, enumeration, or global constant to the iOS maps SDK’s public interface: 1. _(Optional.)_ Add the macro `MGL_EXPORT` prior to the declaration for classes and global constants when adding them in shared headers located in `platform/darwin`. To use this macro, include `MGLFoundation.h`. You can check whether all public symbols are exported correctly by running `make check-public-symbols`. 1. _(Optional.)_ Add the type or constant’s name to the relevant category in the `custom_categories` section of [the jazzy configuration file](./jazzy.yml). This is required for classes and protocols and also recommended for any other type that is strongly associated with a particular class or protocol. If you leave out this step, the symbol will appear in an “Other� section in the generated HTML documentation’s table of contents. -1. _(Optional.)_ If the symbol would also be publicly exposed in the macOS SDK, consult [the companion macOS document](../macos/DEVELOPING.md#making-a-type-or-constant-public) for further instructions. +1. _(Optional.)_ If the symbol would also be publicly exposed in the macOS maps SDK, consult [the companion macOS document](../macos/DEVELOPING.md#making-a-type-or-constant-public) for further instructions. ### Adding a source code file -To add an Objective-C header or implementation file to the iOS SDK: +To add an Objective-C header or implementation file to the iOS maps SDK: 1. Add the file to the Headers or Compile Sources build phase, as appropriate, of both the “dynamic� and “static� targets. You can either use the Build Phases tab of the project editor or the Target Membership section of the File inspector. 1. Audit new headers for nullability. Typically, you will wrap a header with `NS_ASSUME_NONNULL_BEGIN` and `NS_ASSUME_NONNULL_END`. 1. _(Optional.)_ If it’s a public header, change its visibility from Project to Public and import it in [the iOS SDK’s umbrella header](./src/Mapbox.h). -1. _(Optional.)_ If the file would also be used by the macOS SDK, make sure it’s in [platform/darwin/src/](../darwin/src/), then consult [the companion macOS document](../macos/DEVELOPING.md#adding-a-source-code-file) for further instructions. +1. _(Optional.)_ If the file would also be used by the macOS maps SDK, make sure it’s in [platform/darwin/src/](../darwin/src/), then consult [the companion macOS document](../macos/DEVELOPING.md#adding-a-source-code-file) for further instructions. ### Adding a resource -To add a resource (such as an image, SSL certificate, property list, or strings table) to the iOS SDK: +To add a resource (such as an image, SSL certificate, property list, or strings table) to the iOS maps SDK: 1. Add the header to the Copy Bundle Resources build phase of both the “dynamic� and “bundle� targets. You can either use the Build Phases tab of the project editor or the Target Membership section of the File inspector. -1. _(Optional.)_ If the resource would also be used by the macOS SDK, make sure it’s in [platform/darwin/resources/](../darwin/resources/), then consult [the companion macOS document](../macos/DEVELOPING.md#adding-a-resource) for further instructions. +1. _(Optional.)_ If the resource would also be used by the macOS maps SDK, make sure it’s in [platform/darwin/resources/](../darwin/resources/), then consult [the companion macOS document](../macos/DEVELOPING.md#adding-a-resource) for further instructions. ### Adding user-facing text -To add or update text that the user may see in the iOS SDK: +To add or update text that the user may see in the iOS maps SDK: 1. Make sure the implementation file imports [NSBundle+MGLAdditions.h](../darwin/src/NSBundle+MGLAdditions.h). 1. Use the `NSLocalizedStringWithDefaultValue()` macro: * `key` is a unique identifier that won’t change if the user-facing text ever needs to change. - * `tbl` is `Foundation` in code shared between the iOS and macOS SDKs, or `nil` otherwise. + * `tbl` is `Foundation` in code shared between the iOS and macOS maps SDKs, or `nil` otherwise. * `bundle` is `nil`; the redefined macro looks for the SDK bundle at runtime and ignores this argument. * `val` is the English string. 1. _(Optional.)_ When dealing with a number followed by a pluralized word, do not split the string. Instead, use a format string and make `val` ambiguous, like `%d file(s)`. Then pluralize for English in the appropriate [.stringsdict file](https://developer.apple.com/library/ios/documentation/MacOSX/Conceptual/BPInternational/StringsdictFileFormat/StringsdictFileFormat.html). See [platform/darwin/resources/en.lproj/Foundation.stringsdict](../darwin/resources/en.lproj/Foundation.stringsdict) for an example. Localizers should do likewise for their languages. -1. Run `make genstrings` and commit any changes it makes to .strings files. The make rule also updates the macOS SDK’s strings tables. +1. Run `make genstrings` and commit any changes it makes to .strings files. The make rule also updates the macOS maps SDK’s strings tables. ### Adding a localization diff --git a/platform/ios/INSTALL.md b/platform/ios/INSTALL.md index b64d9c650..9a85dfe6f 100644 --- a/platform/ios/INSTALL.md +++ b/platform/ios/INSTALL.md @@ -1,16 +1,16 @@ -# Integrating custom builds of the Mapbox iOS SDK into your application +# Integrating custom builds of the Mapbox Maps SDK for iOS into your application -This document explains how to build a development version of Mapbox iOS SDK for use in your own Cocoa Touch application. To use a production-ready version of the SDK, see the [Mapbox iOS SDK homepage](https://mapbox.com/ios-sdk). +This document explains how to build a development version of Mapbox Maps SDK for iOS for use in your own Cocoa Touch application. To use a production-ready version of the SDK, see the [Mapbox Maps SDK for iOS installation page](https://www.mapbox.com/install/ios/). ### Requirements -The Mapbox iOS SDK is intended to run on iOS 8.0 and above on the following devices and their simulators: +The Mapbox Maps SDK for iOS is intended to run on iOS 8.0 and above on the following devices and their simulators: * iPhone 4S and above (5, 5c, 5s, 6, 6 Plus) * iPad 2 and above (3, 4, Mini, Air, Mini 2, Air 2) * iPod touch 5th generation and above -The Mapbox iOS SDK requires Xcode 8.0 or higher. To use this SDK with Xcode 7.3.1, download and use a symbols build from the [releases](https://github.com/mapbox/mapbox-gl-native/releases) page. +The Mapbox Maps SDK for iOS requires Xcode 8.0 or higher. To use this SDK with Xcode 7.3.1, download and use a symbols build from the [releases](https://github.com/mapbox/mapbox-gl-native/releases) page. ### Building the SDK @@ -32,7 +32,7 @@ See the [packaging documentation](DEVELOPING.md#packaging-builds) for other buil ### Installation -There are several ways to install custom builds of the Mapbox iOS SDK: +There are several ways to install custom builds of the Mapbox Maps SDK for iOS: #### Dynamic framework @@ -113,7 +113,7 @@ If using the static framework, add `$(inherited)` to your target’s Other Linke #### Carthage -For instructions on installing stable release versions of the Mapbox iOS SDK with Carthage, see [our website](https://www.mapbox.com/ios-sdk/). If you require a build without symbols pre-stripped, use [this feed URL](https://www.mapbox.com/ios-sdk/Mapbox-iOS-SDK-symbols.json) with Carthage. +For instructions on installing stable release versions of the Mapbox Maps SDK for iOS with Carthage, see [our website](https://www.mapbox.com/install/ios/carthage/). If you require a build without symbols pre-stripped, use [this feed URL](https://www.mapbox.com/ios-sdk/Mapbox-iOS-SDK-symbols.json) with Carthage. ##### Testing pre-releases with Carthage diff --git a/platform/ios/README.md b/platform/ios/README.md index af01aed18..40e27c2d3 100644 --- a/platform/ios/README.md +++ b/platform/ios/README.md @@ -1,4 +1,4 @@ -# [Mapbox iOS SDK](https://www.mapbox.com/ios-sdk/) +# [Mapbox Maps SDK for iOS](https://www.mapbox.com/ios-sdk/) [![Bitrise](https://www.bitrise.io/app/7514e4cf3da2cc57.svg?token=OwqZE5rSBR9MVWNr_lf4sA&branch=master)](https://www.bitrise.io/app/7514e4cf3da2cc57) @@ -6,7 +6,7 @@ A library based on [Mapbox GL Native](../../README.md) for embedding interactive This repository is for day-to-day development of the SDK. Building the SDK yourself requires [a number of dependencies and steps](../../INSTALL.md) that are unnecessary for developing production applications. For production applications, please consider installing an official, prebuilt release instead; see the [Mapbox iOS SDK website](https://www.mapbox.com/ios-sdk/) for installation instructions. -* [Integrating the Mapbox iOS SDK into your application](INSTALL.md) -* [Contributing to the Mapbox iOS SDK](DEVELOPING.md) +* [Integrate the Mapbox Maps SDK for iOS into your application](https://www.mapbox.com/install/ios/). +* [Contribute to the Mapbox Maps SDK for iOS](DEVELOPING.md) ![](docs/img/screenshot.png) diff --git a/platform/ios/docs/doc-README.md b/platform/ios/docs/doc-README.md index ebad32e04..7cd0376d0 100644 --- a/platform/ios/docs/doc-README.md +++ b/platform/ios/docs/doc-README.md @@ -1,9 +1,9 @@ -# [Mapbox iOS SDK](https://www.mapbox.com/ios-sdk/) +# [Mapbox Maps SDK for iOS](https://www.mapbox.com/ios-sdk/) -The Mapbox iOS SDK is an open-source framework for embedding interactive map views with scalable, customizable vector maps into Cocoa Touch applications on iOS 8.0 and above using Objective-C, Swift, or Interface Builder. It takes stylesheets that conform to the [Mapbox Style Specification](https://www.mapbox.com/mapbox-gl-style-spec/), applies them to vector tiles that conform to the [Mapbox Vector Tile Specification](https://www.mapbox.com/developers/vector-tiles/), and renders them using OpenGL. +The Mapbox Maps SDK for iOS is an open-source framework for embedding interactive map views with scalable, customizable vector maps into Cocoa Touch applications on iOS 8.0 and above using Objective-C, Swift, or Interface Builder. It takes stylesheets that conform to the [Mapbox Style Specification](https://www.mapbox.com/mapbox-gl-style-spec/), applies them to vector tiles that conform to the [Mapbox Vector Tile Specification](https://www.mapbox.com/developers/vector-tiles/), and renders them using OpenGL. -![Mapbox iOS SDK screenshots](img/screenshot.png) +![Mapbox Maps SDK for iOS screenshots](img/screenshot.png) -For setup information, check out the [Mapbox iOS SDK homepage](https://www.mapbox.com/ios-sdk/). For detailed usage instructions, read “[First steps with the Mapbox iOS SDK](https://www.mapbox.com/help/first-steps-ios-sdk/)� and consult the [online examples](https://www.mapbox.com/ios-sdk/examples/). A [full changelog](https://github.com/mapbox/mapbox-gl-native/blob/master/platform/ios/CHANGELOG.md) is also available. +For setup information, check out the [Mapbox Maps SDK for iOS homepage](https://www.mapbox.com/ios-sdk/). For detailed usage instructions, read “[First steps with the Mapbox Maps SDK for iOS](https://www.mapbox.com/help/first-steps-ios-sdk/)� and consult the [online examples](https://www.mapbox.com/ios-sdk/examples/). A [full changelog](https://github.com/mapbox/mapbox-gl-native/blob/master/platform/ios/CHANGELOG.md) is also available. If you have any questions, please see [our help page](https://www.mapbox.com/help/). We welcome your [bug reports, feature requests, and contributions](https://github.com/mapbox/mapbox-gl-native/issues/). diff --git a/platform/ios/docs/guides/Gesture Recognizers.md b/platform/ios/docs/guides/Gesture Recognizers.md index 08e4c150e..26237e3cf 100644 --- a/platform/ios/docs/guides/Gesture Recognizers.md +++ b/platform/ios/docs/guides/Gesture Recognizers.md @@ -1,6 +1,6 @@ # User Interactions -The Mapbox iOS SDK provides a set of built-in gesture recognizers. You can customize or supplement these gestures according to your use case. You see what gesture recognizers are on your `MGLMapView` by accessing the `gestureRecognizers` property on your map. +The Mapbox Maps SDK for iOS provides a set of built-in gesture recognizers. You can customize or supplement these gestures according to your use case. You see what gesture recognizers are on your `MGLMapView` by accessing the `gestureRecognizers` property on your map. ## Configuring user interaction diff --git a/platform/ios/docs/guides/Info.plist Keys.md b/platform/ios/docs/guides/Info.plist Keys.md index c5c7cf1d8..e74e28b76 100644 --- a/platform/ios/docs/guides/Info.plist Keys.md +++ b/platform/ios/docs/guides/Info.plist Keys.md @@ -1,6 +1,6 @@ # Info.plist Keys -The Mapbox iOS SDK supports custom `Info.plist` keys in your application in order to configure various settings. +The Mapbox Maps SDK for iOS supports custom `Info.plist` keys in your application in order to configure various settings. ## MGLMapboxAccessToken diff --git a/platform/ios/docs/pod-README.md b/platform/ios/docs/pod-README.md index 2e5a78841..f94073bd9 100644 --- a/platform/ios/docs/pod-README.md +++ b/platform/ios/docs/pod-README.md @@ -1,16 +1,16 @@ -# [Mapbox iOS SDK](https://www.mapbox.com/ios-sdk/) +# [Mapbox Maps SDK for iOS](https://www.mapbox.com/ios-sdk/) -The Mapbox iOS SDK is an open-source framework for embedding interactive map views with scalable, customizable vector maps into Cocoa Touch applications on iOS 8.0 and above using Objective-C, Swift, or Interface Builder. It takes stylesheets that conform to the [Mapbox Style Specification](https://www.mapbox.com/mapbox-gl-style-spec/), applies them to vector tiles that conform to the [Mapbox Vector Tile Specification](https://www.mapbox.com/developers/vector-tiles/), and renders them using OpenGL. +The Mapbox Maps SDK for iOS is an open-source framework for embedding interactive map views with scalable, customizable vector maps into Cocoa Touch applications on iOS 8.0 and above using Objective-C, Swift, or Interface Builder. It takes stylesheets that conform to the [Mapbox Style Specification](https://www.mapbox.com/mapbox-gl-style-spec/), applies them to vector tiles that conform to the [Mapbox Vector Tile Specification](https://www.mapbox.com/developers/vector-tiles/), and renders them using OpenGL. -For more information, check out the [Mapbox iOS SDK homepage](https://www.mapbox.com/ios-sdk/) and the [full changelog](https://github.com/mapbox/mapbox-gl-native/blob/master/platform/ios/CHANGELOG.md) online. +For more information, check out the [Mapbox Maps SDK for iOS homepage](https://www.mapbox.com/ios-sdk/) and the [full changelog](https://github.com/mapbox/mapbox-gl-native/blob/master/platform/ios/CHANGELOG.md) online. [![](https://raw.githubusercontent.com/mapbox/mapbox-gl-native/master/platform/ios/docs/img/screenshot.png)]() ## Installation -The Mapbox iOS SDK may be installed as either a dynamic framework or a static framework. (To reduce the download size, the static framework is omitted from some distributions; you may need to download the full package from the [release page](https://github.com/mapbox/mapbox-gl-native/releases/).) +The Mapbox Maps SDK for iOS may be installed as either a dynamic framework or a static framework. (To reduce the download size, the static framework is omitted from some distributions; you may need to download the full package from the [release page](https://github.com/mapbox/mapbox-gl-native/releases/).) -Integrating the Mapbox iOS SDK requires Xcode 8.0 or higher. To use this SDK with Xcode 7.3.1, download and use a symbols build from the [releases](https://github.com/mapbox/mapbox-gl-native/releases) page. +Integrating the Mapbox Maps SDK for iOS requires Xcode 8.0 or higher. To use this SDK with Xcode 7.3.1, download and use a symbols build from the [releases](https://github.com/mapbox/mapbox-gl-native/releases) page. {{DYNAMIC}} @@ -94,6 +94,6 @@ class ViewController: UIViewController { } ``` -Full API documentation is included in this package, within the `documentation` folder. For more details, read “[First steps with the Mapbox iOS SDK](https://www.mapbox.com/help/first-steps-ios-sdk/)� and consult the [online examples](https://www.mapbox.com/ios-sdk/examples/). +Full API documentation is included in this package, within the `documentation` folder. For more details, read “[First steps with the Mapbox Maps SDK for iOS](https://www.mapbox.com/help/first-steps-ios-sdk/)� and consult the [online examples](https://www.mapbox.com/ios-sdk/examples/). If you have any questions, please see [our help page](https://www.mapbox.com/help/). We welcome your [bug reports, feature requests, and contributions](https://github.com/mapbox/mapbox-gl-native/issues/). diff --git a/platform/ios/resources/Base.lproj/Localizable.strings b/platform/ios/resources/Base.lproj/Localizable.strings index cb085add6a0e15eeb5fe4ed062941ceaee09f9ae..245b122fb6471d64d3237bfe7cab0a779801d7cb 100644 GIT binary patch literal 7378 zcmc(kYfl?j5QfiZ{z1O2tfHn>fwt}qd`;dk8aH3B)T8OQ{W*LTS&7Oq|osG3tX7iru zsuo^q-X+bBEG^y1B+XDGFEq~A9_gK7_@sAEb?;Ooj!inApW94b-5-ZlJxOxzNRq>_ z5gPj4GMNs;FX2ah4#TGIbo4AqxhE-+>r&sYiJ@lCwAzvOf21?MFT?_ zo@K5PEXzDsdYTy;yRvI$GJ;8PjsC`ZC#?jY<9ZhwJJNN;DA;VvB3p*jbzO12FYmeA zqjqyEA=^Y!l~*ZRYCe4>x!R!_b_^|@du55*!f(n_MA`5dI0k>hD>Bpa*fcZ0q}nI2Olr4ydf>7XV~>vAFK-V;2Vwy{NHf}QhX1y<$)`AWzn}e zT;qRv*4vggE;avHx&e#64%!4qnfMDHgyE7NUu!HJgqMPGenI%T#v(bmeyRI^i?O<5 z%P-*vyBg_9&sJj}&SF^O$oTe)#zf6JM{b8V@=P?@kS>#N?iuDzZ7$|KGDe0cn>rs! zf?@a^R*d`EoBLPv0Q?WlA`^^@M=dLYd?R*@n7PpmcoUXL5z3#kCp6>wSq?wjo4@NG zN8Rk=I>D18SNr%XO-DJp;YG5gg_xONQ0x&z?gbbj*C_%%XVOcN^>x^~4)}T828Tm=H zDHdIqjmfRxjbu|aQk;F?W*y63XPU3470^ciHZvOQp0DG~fPQNcWyy)G>TmZkjF_tFVLMPwq4w)@FirTB%{av0|g==z(Hzi-J!gW(pMBXmy z`=KjF9HpvY_IkyYT!td!mur$wlCv*##P~MQ`Gx5XuNul5JUjDh#u>CKue(%COkOZ8 z^Lu$gL)=PsR#o+Ma^C6Lv17ZOKRy@kznhY2wdBqJXXh!BSMS>6ve$O=?{!DJUbkF4 zzr!8r91iv@kBlhkH`Xg2~WT+53%5`JOGx&bK&A{UwQs!gx0MBsuK- z7Wp9A$;fMZ|CNqf`0#bUW$EFws?eezJyvY+Xyg^j({iLoS#lYo0{NKdl;xe@#Z`$p zJQF0_fP0CFsWRl+vyX@iMib-7NO&jTiAZCf>)DmY^fiiEk(0XNT-K)kzcChwQ9t65 z__`h5>mbe&Zxd@K21=ISoUwk<{)^TEb#YgjhwqEpH%9yE{n2mO3cqPz^oQ==UEAjM zuER|U(;e9bjk=}01|tK(TCpO7p=R~6^45>zliXyQ%th7_BMVQ-^SoY7Q6}%X$&U0_ z>V+NF<+J%t*lupV={^uPOW7H90hI!~l>Y^!gh~ zS3PkGY?!Y^H?^X((@-8pPPQVM2U?qMV4MN(^S+pCh7LeaHb~yYJ6?SfHP9gW4sn?| zi5!d|r}YZ1XifOckG!Vij`x+LZfe)mKi~;3AzPiUQ6Hv>vUJ|7i@xufDjWcgs3>EV zU9K1(i+l5Y>m65eQ~E2cfb4J8_f4FU^90-ZL>;4flr!&b#hc0z9u-3#zA`PA# zJ2=i#OSfI;`(^UCsobbtBFBM1x+3`Bo~kwY4L0w5#Ugy(meuMx|J<}$T&FvdklG*5 zp*nM4Df;B1rEBG6dmMSHEm$*;E$fTUeDqweK|88eYSOZ2ItPX~EQ!7OM*{qeq^%gS z>3tFh=&aC-hqtN`LKOgRi@d0~aJl5Vx&)x}p3fY=M3K2UY&HW7iXi6@= z;kT|vnC(qP f31*Kgb~t07`95Z@$vQ4wN1b!;pjXSss3^;S>|2Q%mA#(} Date: Wed, 6 Dec 2017 13:52:19 +0100 Subject: [PATCH 41/92] [android] - update changelog for 5.2.1 release --- platform/android/CHANGELOG.md | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/platform/android/CHANGELOG.md b/platform/android/CHANGELOG.md index 4d3a82957..28ab1e8dd 100644 --- a/platform/android/CHANGELOG.md +++ b/platform/android/CHANGELOG.md @@ -6,6 +6,20 @@ Mapbox welcomes participation and contributions from everyone. If you'd like to * TBA +## 5.2.1 - December 6, 2017 + - Close race condition in RunLoop [#10537](https://github.com/mapbox/mapbox-gl-native/pull/10537) + - OkHttp 3.9.1 [#10515](https://github.com/mapbox/mapbox-gl-native/pull/10515) + - Attribution anchor point fix [#10558](https://github.com/mapbox/mapbox-gl-native/pull/10558) + - Pre API 19 VerifyError [#10579](https://github.com/mapbox/mapbox-gl-native/pull/10579) + - Set larger Http request limit [#10567](https://github.com/mapbox/mapbox-gl-native/pull/10567) + - Remove jar generation from maven publish [#10625](https://github.com/mapbox/mapbox-gl-native/pull/10625) + - Enable Map Rendering when paused for multiple window support [#10509](https://github.com/mapbox/mapbox-gl-native/pull/10509) + - Activate FileSource when listing offline regions [#10531](https://github.com/mapbox/mapbox-gl-native/pull/10531) + - Harden MarkerView integration by checking for null bitmap [#10532](https://github.com/mapbox/mapbox-gl-native/pull/10532) + - Use concurrent lists for camera change listeners [#10542](https://github.com/mapbox/mapbox-gl-native/pull/10542) + - Handle destroy activity as part of theme switching [#10589](https://github.com/mapbox/mapbox-gl-native/pull/10589) + - add FileSource activation/deactivation to MapSnapshotter [#10556](https://github.com/mapbox/mapbox-gl-native/pull/10556) + ## 5.2.0 - November 17, 2017 - Monkey crashes [#10472](https://github.com/mapbox/mapbox-gl-native/pull/10472) From 05d2a539fdc2801c67b98c2e09f65989c32331d6 Mon Sep 17 00:00:00 2001 From: Fabian Guerra Soto Date: Wed, 6 Dec 2017 14:02:39 -0500 Subject: [PATCH 42/92] [ios] Update changelog and bump podspec to 3.7.1 (#10651) --- platform/ios/CHANGELOG.md | 8 ++++++-- platform/ios/Mapbox-iOS-SDK-nightly-dynamic.podspec | 2 +- platform/ios/Mapbox-iOS-SDK-symbols.podspec | 2 +- platform/ios/Mapbox-iOS-SDK.podspec | 2 +- 4 files changed, 9 insertions(+), 5 deletions(-) diff --git a/platform/ios/CHANGELOG.md b/platform/ios/CHANGELOG.md index 5a556ec9a..c373eaf17 100644 --- a/platform/ios/CHANGELOG.md +++ b/platform/ios/CHANGELOG.md @@ -2,15 +2,19 @@ Mapbox welcomes participation and contributions from everyone. Please read [CONTRIBUTING.md](../../CONTRIBUTING.md) to get started. -## 3.7.1 +## 3.7.1 - December 6, 2017 ### Annotations -* Fixed an issue that could cause triggering `-[MGLMapViewDelegate mapView:didSelectAnnotation:]` when taping next to a `MGLAnnotationImage` annotation. ([#10538](https://github.com/mapbox/mapbox-gl-native/pull/10538)) +* Fixed an issue that could cause `-[MGLMapViewDelegate mapView:didSelectAnnotation:]` to be triggered when tapping next to an `MGLAnnotationImage` annotation. ([#10538](https://github.com/mapbox/mapbox-gl-native/pull/10538)) ### Packaging * Renamed this SDK from Mapbox iOS SDK to Mapbox Maps SDK for iOS. ([#10610](https://github.com/mapbox/mapbox-gl-native/pull/10610)) +### Other changes + +* Fixed an issue that caused `MGLMapView.minimumZoomLevel` to not be set. ([#10596](https://github.com/mapbox/mapbox-gl-native/pull/10596)) + ## 3.7.0 - Novemeber 13, 2017 ### Networking and storage diff --git a/platform/ios/Mapbox-iOS-SDK-nightly-dynamic.podspec b/platform/ios/Mapbox-iOS-SDK-nightly-dynamic.podspec index ac60bc330..fb78d0112 100644 --- a/platform/ios/Mapbox-iOS-SDK-nightly-dynamic.podspec +++ b/platform/ios/Mapbox-iOS-SDK-nightly-dynamic.podspec @@ -1,6 +1,6 @@ Pod::Spec.new do |m| - version = '3.7.0' + version = '3.7.1' m.name = 'Mapbox-iOS-SDK-nightly-dynamic' m.version = "#{version}-nightly" diff --git a/platform/ios/Mapbox-iOS-SDK-symbols.podspec b/platform/ios/Mapbox-iOS-SDK-symbols.podspec index 9151c9b97..775b4dceb 100644 --- a/platform/ios/Mapbox-iOS-SDK-symbols.podspec +++ b/platform/ios/Mapbox-iOS-SDK-symbols.podspec @@ -1,6 +1,6 @@ Pod::Spec.new do |m| - version = '3.7.0' + version = '3.7.1' m.name = 'Mapbox-iOS-SDK-symbols' m.version = "#{version}-symbols" diff --git a/platform/ios/Mapbox-iOS-SDK.podspec b/platform/ios/Mapbox-iOS-SDK.podspec index fe4f24ad5..6298939f4 100644 --- a/platform/ios/Mapbox-iOS-SDK.podspec +++ b/platform/ios/Mapbox-iOS-SDK.podspec @@ -1,6 +1,6 @@ Pod::Spec.new do |m| - version = '3.7.0' + version = '3.7.1' m.name = 'Mapbox-iOS-SDK' m.version = version From cf026d1932ca380a799dd4263e02dce67d22806b Mon Sep 17 00:00:00 2001 From: Tobrun Date: Fri, 8 Dec 2017 17:32:27 +0100 Subject: [PATCH 43/92] [android] - post animation callback invocation --- .../com/mapbox/mapboxsdk/maps/MapboxMap.java | 39 ++++++++----------- .../com/mapbox/mapboxsdk/maps/Transform.java | 23 +++++++++-- 2 files changed, 35 insertions(+), 27 deletions(-) diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapboxMap.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapboxMap.java index 6bf8342ef..c9bccab07 100644 --- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapboxMap.java +++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapboxMap.java @@ -710,19 +710,21 @@ public final class MapboxMap { * @param callback the callback to be invoked when an animation finishes or is canceled */ public final void moveCamera(final CameraUpdate update, final MapboxMap.CancelableCallback callback) { - new Handler().post(new Runnable() { - @Override - public void run() { - transform.moveCamera(MapboxMap.this, update, callback); - // MapChange.REGION_DID_CHANGE_ANIMATED is not called for `jumpTo` - // invalidate camera position to provide OnCameraChange event. - invalidateCameraPosition(); + transform.moveCamera(MapboxMap.this, update, callback); + // MapChange.REGION_DID_CHANGE_ANIMATED is not called for `jumpTo` + // invalidate camera position to provide OnCameraChange event. + invalidateCameraPosition(); - if (callback != null) { - callback.onFinish(); + if (callback != null) { + new Handler().post(new Runnable() { + @Override + public void run() { + if (callback != null) { + callback.onFinish(); + } } - } - }); + }); + } } /** @@ -846,12 +848,7 @@ public final class MapboxMap { if (durationMs <= 0) { throw new IllegalArgumentException("Null duration passed into easeCamera"); } - new Handler().post(new Runnable() { - @Override - public void run() { - transform.easeCamera(MapboxMap.this, update, durationMs, easingInterpolator, callback, isDismissable); - } - }); + transform.easeCamera(MapboxMap.this, update, durationMs, easingInterpolator, callback, isDismissable); } /** @@ -921,12 +918,8 @@ public final class MapboxMap { if (durationMs <= 0) { throw new IllegalArgumentException("Null duration passed into animageCamera"); } - new Handler().post(new Runnable() { - @Override - public void run() { - transform.animateCamera(MapboxMap.this, update, durationMs, callback); - } - }); + + transform.animateCamera(MapboxMap.this, update, durationMs, callback); } /** diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/Transform.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/Transform.java index 16c45ebea..0d3f0d5e5 100644 --- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/Transform.java +++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/Transform.java @@ -1,6 +1,7 @@ package com.mapbox.mapboxsdk.maps; import android.graphics.PointF; +import android.os.Handler; import android.support.annotation.NonNull; import android.support.annotation.Nullable; import android.support.annotation.UiThread; @@ -82,8 +83,15 @@ final class Transform implements MapView.OnMapChangedListener { if (change == REGION_DID_CHANGE_ANIMATED) { updateCameraPosition(invalidateCameraPosition()); if (cameraCancelableCallback != null) { - cameraCancelableCallback.onFinish(); - cameraCancelableCallback = null; + new Handler().post(new Runnable() { + @Override + public void run() { + if (cameraCancelableCallback != null) { + cameraCancelableCallback.onFinish(); + cameraCancelableCallback = null; + } + } + }); } cameraChangeDispatcher.onCameraIdle(); mapView.removeOnMapChangedListener(this); @@ -175,8 +183,15 @@ final class Transform implements MapView.OnMapChangedListener { // notify animateCamera and easeCamera about cancelling if (cameraCancelableCallback != null) { cameraChangeDispatcher.onCameraIdle(); - cameraCancelableCallback.onCancel(); - cameraCancelableCallback = null; + new Handler().post(new Runnable() { + @Override + public void run() { + if (cameraCancelableCallback != null) { + cameraCancelableCallback.onCancel(); + cameraCancelableCallback = null; + } + } + }); } // cancel ongoing transitions From 7c06eda515ded2728594377610f75f309c22e913 Mon Sep 17 00:00:00 2001 From: Tobrun Date: Tue, 12 Dec 2017 09:26:47 +0100 Subject: [PATCH 44/92] [android] - allow configurable http logging --- .../mapbox/mapboxsdk/http/HTTPRequest.java | 36 ++++++++++++------- .../mapboxsdk/http/HttpRequestUtil.java | 19 ++++++++++ .../activity/maplayout/DebugModeActivity.java | 5 ++- 3 files changed, 46 insertions(+), 14 deletions(-) create mode 100644 platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/http/HttpRequestUtil.java diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/http/HTTPRequest.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/http/HTTPRequest.java index 9c7fe4ee6..846381479 100644 --- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/http/HTTPRequest.java +++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/http/HTTPRequest.java @@ -33,6 +33,7 @@ import timber.log.Timber; class HTTPRequest implements Callback { private static OkHttpClient mClient = new OkHttpClient.Builder().dispatcher(getDispatcher()).build(); + private static boolean logEnabled = true; private String USER_AGENT_STRING = null; private static final int CONNECTION_ERROR = 0; @@ -118,12 +119,15 @@ class HTTPRequest implements Callback { @Override public void onResponse(Call call, Response response) throws IOException { - if (response.isSuccessful()) { - Timber.v("[HTTP] Request was successful (code = %s).", response.code()); - } else { - // We don't want to call this unsuccessful because a 304 isn't really an error - String message = !TextUtils.isEmpty(response.message()) ? response.message() : "No additional information"; - Timber.d("[HTTP] Request with response code = %s: %s", response.code(), message); + + if (logEnabled) { + if (response.isSuccessful()) { + Timber.v("[HTTP] Request was successful (code = %s).", response.code()); + } else { + // We don't want to call this unsuccessful because a 304 isn't really an error + String message = !TextUtils.isEmpty(response.message()) ? response.message() : "No additional information"; + Timber.d("[HTTP] Request with response code = %s: %s", response.code(), message); + } } byte[] body; @@ -167,13 +171,15 @@ class HTTPRequest implements Callback { String errorMessage = e.getMessage() != null ? e.getMessage() : "Error processing the request"; - if (type == TEMPORARY_ERROR) { - Timber.d("Request failed due to a temporary error: %s", errorMessage); - } else if (type == CONNECTION_ERROR) { - Timber.i("Request failed due to a connection error: %s", errorMessage); - } else { - // PERMANENT_ERROR - Timber.w("Request failed due to a permanent error: %s", errorMessage); + if (logEnabled) { + if (type == TEMPORARY_ERROR) { + Timber.d("Request failed due to a temporary error: %s", errorMessage); + } else if (type == CONNECTION_ERROR) { + Timber.i("Request failed due to a connection error: %s", errorMessage); + } else { + // PERMANENT_ERROR + Timber.w("Request failed due to a permanent error: %s", errorMessage); + } } mLock.lock(); @@ -207,4 +213,8 @@ class HTTPRequest implements Callback { return ""; } } + + static void enableLog(boolean enabled) { + logEnabled = enabled; + } } diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/http/HttpRequestUtil.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/http/HttpRequestUtil.java new file mode 100644 index 000000000..af39faede --- /dev/null +++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/http/HttpRequestUtil.java @@ -0,0 +1,19 @@ +package com.mapbox.mapboxsdk.http; + +/** + * Utility class for setting HttpRequest configurations + */ +public class HttpRequestUtil { + + /** + * Set the log state of HttpRequest. + *

+ * This configuration will outlast the lifecycle of the Map. + *

+ * + * @param enabled True will enable logging, false will disable + */ + public static void setLogEnabled(boolean enabled) { + HTTPRequest.enableLog(enabled); + } +} \ No newline at end of file diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/maplayout/DebugModeActivity.java b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/maplayout/DebugModeActivity.java index 6134b4cb7..9220a30c3 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/maplayout/DebugModeActivity.java +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/maplayout/DebugModeActivity.java @@ -18,6 +18,7 @@ import android.widget.TextView; import com.mapbox.mapboxsdk.camera.CameraPosition; import com.mapbox.mapboxsdk.constants.Style; +import com.mapbox.mapboxsdk.http.HttpRequestUtil; import com.mapbox.mapboxsdk.maps.MapView; import com.mapbox.mapboxsdk.maps.MapboxMap; import com.mapbox.mapboxsdk.maps.OnMapReadyCallback; @@ -56,6 +57,7 @@ public class DebugModeActivity extends AppCompatActivity implements OnMapReadyCa @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); + HttpRequestUtil.setLogEnabled(false); setContentView(R.layout.activity_debug_mode); setupToolbar(); setupMapView(savedInstanceState); @@ -113,7 +115,7 @@ public class DebugModeActivity extends AppCompatActivity implements OnMapReadyCa mapboxMap.setOnFpsChangedListener(new MapboxMap.OnFpsChangedListener() { @Override public void onFpsChanged(double fps) { - fpsView.setText(String.format(Locale.US,"FPS: %4.2f", fps)); + fpsView.setText(String.format(Locale.US, "FPS: %4.2f", fps)); } }); } @@ -229,6 +231,7 @@ public class DebugModeActivity extends AppCompatActivity implements OnMapReadyCa protected void onDestroy() { super.onDestroy(); mapView.onDestroy(); + HttpRequestUtil.setLogEnabled(true); } @Override From fa704c85d80f7424a580e6c1342eb23dd0ec97f7 Mon Sep 17 00:00:00 2001 From: Tobrun Date: Wed, 13 Dec 2017 09:30:50 +0100 Subject: [PATCH 45/92] [android] - scale factor value of 1 should zoom out --- .../main/java/com/mapbox/mapboxsdk/maps/MapGestureDetector.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapGestureDetector.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapGestureDetector.java index 9d7d980ae..489199e42 100644 --- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapGestureDetector.java +++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapGestureDetector.java @@ -491,7 +491,7 @@ final class MapGestureDetector { return super.onScale(detector); } - wasZoomingIn = (Math.log(detector.getScaleFactor()) / Math.log(Math.PI / 2)) >= 0; + wasZoomingIn = (Math.log(detector.getScaleFactor()) / Math.log(Math.PI / 2)) > 0; if (tiltGestureOccurred) { return false; } From 7012c1b683ec5cc56da48dd4020d79834810c225 Mon Sep 17 00:00:00 2001 From: Tobrun Date: Wed, 13 Dec 2017 16:01:19 +0100 Subject: [PATCH 46/92] [android] - update documentation on update metadata --- .../main/java/com/mapbox/mapboxsdk/offline/OfflineRegion.java | 3 --- 1 file changed, 3 deletions(-) diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/offline/OfflineRegion.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/offline/OfflineRegion.java index 1b9a15635..bc9438ee9 100644 --- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/offline/OfflineRegion.java +++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/offline/OfflineRegion.java @@ -400,9 +400,6 @@ public class OfflineRegion { * When the operation is complete or encounters an error, the given callback will be * executed on the main thread. *

- *

- * After you call this method, you may not call any additional methods on this object. - *

* * @param bytes the metadata in bytes * @param callback the callback to be invoked From 4525ff714adb483a213638e251c38156bd7fa04e Mon Sep 17 00:00:00 2001 From: Tobrun Date: Thu, 14 Dec 2017 12:15:36 +0100 Subject: [PATCH 47/92] Post camera listener invocations (#10690) * [android] - post camera listener invocations * remove jvm unit test --- .../maps/CameraChangeDispatcher.java | 127 +++++++++++------- .../maps/CameraChangeDispatcherTest.java | 87 ------------ 2 files changed, 81 insertions(+), 133 deletions(-) delete mode 100644 platform/android/MapboxGLAndroidSDK/src/test/java/com/mapbox/mapboxsdk/maps/CameraChangeDispatcherTest.java diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/CameraChangeDispatcher.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/CameraChangeDispatcher.java index f046744c3..605c8912e 100644 --- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/CameraChangeDispatcher.java +++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/CameraChangeDispatcher.java @@ -1,5 +1,6 @@ package com.mapbox.mapboxsdk.maps; +import android.os.Handler; import android.support.annotation.NonNull; import java.util.concurrent.CopyOnWriteArrayList; @@ -9,10 +10,16 @@ import static com.mapbox.mapboxsdk.maps.MapboxMap.OnCameraMoveCanceledListener; import static com.mapbox.mapboxsdk.maps.MapboxMap.OnCameraMoveListener; import static com.mapbox.mapboxsdk.maps.MapboxMap.OnCameraMoveStartedListener; +/** + * Class responsible for dispatching camera change events to registered listeners. + */ class CameraChangeDispatcher implements MapboxMap.OnCameraMoveStartedListener, MapboxMap.OnCameraMoveListener, MapboxMap.OnCameraMoveCanceledListener, OnCameraIdleListener { + private final Handler handler = new Handler(); + private boolean idle = true; + private int moveStartedReason; private final CopyOnWriteArrayList onCameraMoveStarted = new CopyOnWriteArrayList<>(); private final CopyOnWriteArrayList onCameraMoveCanceled = new CopyOnWriteArrayList<>(); @@ -24,6 +31,74 @@ class CameraChangeDispatcher implements MapboxMap.OnCameraMoveStartedListener, M private OnCameraMoveListener onCameraMoveListener; private OnCameraIdleListener onCameraIdleListener; + private final Runnable onCameraMoveStartedRunnable = new Runnable() { + @Override + public void run() { + // deprecated API + if (onCameraMoveStartedListener != null) { + onCameraMoveStartedListener.onCameraMoveStarted(moveStartedReason); + } + + // new API + if (!onCameraMoveStarted.isEmpty()) { + for (OnCameraMoveStartedListener cameraMoveStartedListener : onCameraMoveStarted) { + cameraMoveStartedListener.onCameraMoveStarted(moveStartedReason); + } + } + } + }; + + private final Runnable onCameraMoveRunnable = new Runnable() { + @Override + public void run() { + // deprecated API + if (onCameraMoveListener != null && !idle) { + onCameraMoveListener.onCameraMove(); + } + + // new API + if (!onCameraMove.isEmpty() && !idle) { + for (OnCameraMoveListener cameraMoveListener : onCameraMove) { + cameraMoveListener.onCameraMove(); + } + } + } + }; + + private final Runnable onCameraMoveCancelRunnable = new Runnable() { + @Override + public void run() { + // deprecated API + if (onCameraMoveCanceledListener != null && !idle) { + onCameraMoveCanceledListener.onCameraMoveCanceled(); + } + + // new API + if (!onCameraMoveCanceled.isEmpty() && !idle) { + for (OnCameraMoveCanceledListener cameraMoveCanceledListener : onCameraMoveCanceled) { + cameraMoveCanceledListener.onCameraMoveCanceled(); + } + } + } + }; + + private final Runnable onCameraIdleRunnable = new Runnable() { + @Override + public void run() { + // deprecated API + if (onCameraIdleListener != null) { + onCameraIdleListener.onCameraIdle(); + } + + // new API + if (!onCameraIdle.isEmpty()) { + for (OnCameraIdleListener cameraIdleListener : onCameraIdle) { + cameraIdleListener.onCameraIdle(); + } + } + } + }; + @Deprecated void setOnCameraMoveStartedListener(OnCameraMoveStartedListener onCameraMoveStartedListener) { this.onCameraMoveStartedListener = onCameraMoveStartedListener; @@ -45,70 +120,30 @@ class CameraChangeDispatcher implements MapboxMap.OnCameraMoveStartedListener, M } @Override - public void onCameraMoveStarted(int reason) { + public void onCameraMoveStarted(final int reason) { if (!idle) { return; } idle = false; - - // deprecated API - if (onCameraMoveStartedListener != null) { - onCameraMoveStartedListener.onCameraMoveStarted(reason); - } - - // new API - if (!onCameraMoveStarted.isEmpty()) { - for (OnCameraMoveStartedListener cameraMoveStartedListener : onCameraMoveStarted) { - cameraMoveStartedListener.onCameraMoveStarted(reason); - } - } + moveStartedReason = reason; + handler.post(onCameraMoveStartedRunnable); } @Override public void onCameraMove() { - // deprecated API - if (onCameraMoveListener != null && !idle) { - onCameraMoveListener.onCameraMove(); - } - - // new API - if (!onCameraMove.isEmpty() && !idle) { - for (OnCameraMoveListener cameraMoveListener : onCameraMove) { - cameraMoveListener.onCameraMove(); - } - } + handler.post(onCameraMoveRunnable); } @Override public void onCameraMoveCanceled() { - // deprecated API - if (onCameraMoveCanceledListener != null && !idle) { - onCameraMoveCanceledListener.onCameraMoveCanceled(); - } - - // new API - if (!onCameraMoveCanceled.isEmpty() && !idle) { - for (OnCameraMoveCanceledListener cameraMoveCanceledListener : onCameraMoveCanceled) { - cameraMoveCanceledListener.onCameraMoveCanceled(); - } - } + handler.post(onCameraMoveCancelRunnable); } @Override public void onCameraIdle() { if (!idle) { idle = true; - // deprecated API - if (onCameraIdleListener != null) { - onCameraIdleListener.onCameraIdle(); - } - - // new API - if (!onCameraIdle.isEmpty()) { - for (OnCameraIdleListener cameraIdleListener : onCameraIdle) { - cameraIdleListener.onCameraIdle(); - } - } + handler.post(onCameraIdleRunnable); } } diff --git a/platform/android/MapboxGLAndroidSDK/src/test/java/com/mapbox/mapboxsdk/maps/CameraChangeDispatcherTest.java b/platform/android/MapboxGLAndroidSDK/src/test/java/com/mapbox/mapboxsdk/maps/CameraChangeDispatcherTest.java deleted file mode 100644 index 090d274fe..000000000 --- a/platform/android/MapboxGLAndroidSDK/src/test/java/com/mapbox/mapboxsdk/maps/CameraChangeDispatcherTest.java +++ /dev/null @@ -1,87 +0,0 @@ -package com.mapbox.mapboxsdk.maps; - -import org.junit.Test; - -import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.verify; - -public class CameraChangeDispatcherTest { - - @Test - public void testSetCameraIdleListener() { - CameraChangeDispatcher dispatcher = new CameraChangeDispatcher(); - MapboxMap.OnCameraIdleListener listener = mock(MapboxMap.OnCameraIdleListener.class); - dispatcher.setOnCameraIdleListener(listener); - dispatcher.onCameraMoveStarted(MapboxMap.OnCameraMoveStartedListener.REASON_API_GESTURE); - dispatcher.onCameraIdle(); - verify(listener).onCameraIdle(); - } - - @Test - public void testSetCameraMoveStartedListener() { - CameraChangeDispatcher dispatcher = new CameraChangeDispatcher(); - MapboxMap.OnCameraMoveStartedListener listener = mock(MapboxMap.OnCameraMoveStartedListener.class); - dispatcher.setOnCameraMoveStartedListener(listener); - dispatcher.onCameraMoveStarted(MapboxMap.OnCameraMoveStartedListener.REASON_API_GESTURE); - verify(listener).onCameraMoveStarted(MapboxMap.OnCameraMoveStartedListener.REASON_API_GESTURE); - } - - @Test - public void testSetCameraMoveCancelListener() { - CameraChangeDispatcher dispatcher = new CameraChangeDispatcher(); - MapboxMap.OnCameraMoveCanceledListener listener = mock(MapboxMap.OnCameraMoveCanceledListener.class); - dispatcher.setOnCameraMoveCanceledListener(listener); - dispatcher.onCameraMoveStarted(MapboxMap.OnCameraMoveStartedListener.REASON_API_GESTURE); - dispatcher.onCameraMoveCanceled(); - verify(listener).onCameraMoveCanceled(); - } - - @Test - public void testSetCameraMoveListener() { - CameraChangeDispatcher dispatcher = new CameraChangeDispatcher(); - MapboxMap.OnCameraMoveListener listener = mock(MapboxMap.OnCameraMoveListener.class); - dispatcher.setOnCameraMoveListener(listener); - dispatcher.onCameraMoveStarted(MapboxMap.OnCameraMoveStartedListener.REASON_API_GESTURE); - dispatcher.onCameraMove(); - verify(listener).onCameraMove(); - } - - @Test - public void testAddCameraIdleListener() { - CameraChangeDispatcher dispatcher = new CameraChangeDispatcher(); - MapboxMap.OnCameraIdleListener listener = mock(MapboxMap.OnCameraIdleListener.class); - dispatcher.addOnCameraIdleListener(listener); - dispatcher.onCameraMoveStarted(MapboxMap.OnCameraMoveStartedListener.REASON_API_GESTURE); - dispatcher.onCameraIdle(); - verify(listener).onCameraIdle(); - } - - @Test - public void testAddCameraMoveStartedListener() { - CameraChangeDispatcher dispatcher = new CameraChangeDispatcher(); - MapboxMap.OnCameraMoveStartedListener listener = mock(MapboxMap.OnCameraMoveStartedListener.class); - dispatcher.addOnCameraMoveStartedListener(listener); - dispatcher.onCameraMoveStarted(MapboxMap.OnCameraMoveStartedListener.REASON_API_GESTURE); - verify(listener).onCameraMoveStarted(MapboxMap.OnCameraMoveStartedListener.REASON_API_GESTURE); - } - - @Test - public void testAddCameraMoveCancelListener() { - CameraChangeDispatcher dispatcher = new CameraChangeDispatcher(); - MapboxMap.OnCameraMoveCanceledListener listener = mock(MapboxMap.OnCameraMoveCanceledListener.class); - dispatcher.addOnCameraMoveCancelListener(listener); - dispatcher.onCameraMoveStarted(MapboxMap.OnCameraMoveStartedListener.REASON_API_GESTURE); - dispatcher.onCameraMoveCanceled(); - verify(listener).onCameraMoveCanceled(); - } - - @Test - public void testAddCameraMoveListener() { - CameraChangeDispatcher dispatcher = new CameraChangeDispatcher(); - MapboxMap.OnCameraMoveListener listener = mock(MapboxMap.OnCameraMoveListener.class); - dispatcher.addOnCameraMoveListener(listener); - dispatcher.onCameraMoveStarted(MapboxMap.OnCameraMoveStartedListener.REASON_API_GESTURE); - dispatcher.onCameraMove(); - verify(listener).onCameraMove(); - } -} From d650b91c00956b683519aa76b3f5dfd327c17348 Mon Sep 17 00:00:00 2001 From: Fabian Guerra Date: Thu, 7 Dec 2017 20:20:17 -0500 Subject: [PATCH 48/92] [ios] Fix the content insets for the scale and compass view. --- platform/ios/src/MGLMapView.mm | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/platform/ios/src/MGLMapView.mm b/platform/ios/src/MGLMapView.mm index 60c2e0dd0..6215d4b7c 100644 --- a/platform/ios/src/MGLMapView.mm +++ b/platform/ios/src/MGLMapView.mm @@ -885,8 +885,10 @@ public: // compass view [self removeConstraints:self.compassViewConstraints]; [self.compassViewConstraints removeAllObjects]; - [self.compassViewConstraints addObject:[self.compassView.topAnchor constraintEqualToAnchor:safeAreaLayoutGuide.topAnchor - constant:5.0 + self.contentInset.top]]; +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wpartial-availability" + [self.compassViewConstraints addObject:[self.compassView.topAnchor constraintEqualToSystemSpacingBelowAnchor:safeAreaLayoutGuide.topAnchor multiplier:1]]; +#pragma clang diagnostic pop [self.compassViewConstraints addObject:[safeAreaLayoutGuide.rightAnchor constraintEqualToAnchor:self.compassView.rightAnchor constant:8.0 + self.contentInset.right]]; [self addConstraints:self.compassViewConstraints]; @@ -894,8 +896,10 @@ public: // scale bar view [self removeConstraints:self.scaleBarConstraints]; [self.scaleBarConstraints removeAllObjects]; - [self.scaleBarConstraints addObject:[self.scaleBar.topAnchor constraintEqualToAnchor:safeAreaLayoutGuide.topAnchor - constant:5.0 + self.contentInset.top]]; +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wpartial-availability" + [self.scaleBarConstraints addObject:[self.scaleBar.topAnchor constraintEqualToSystemSpacingBelowAnchor:safeAreaLayoutGuide.topAnchor multiplier:1]]; +#pragma clang diagnostic pop [self.scaleBarConstraints addObject:[self.scaleBar.leftAnchor constraintEqualToAnchor:safeAreaLayoutGuide.leftAnchor constant:8.0 + self.contentInset.left]]; [self addConstraints:self.scaleBarConstraints]; From 177afa9a0d0e97257c86d9f0e8cb91e34e8afe2d Mon Sep 17 00:00:00 2001 From: Fabian Guerra Date: Wed, 29 Nov 2017 12:39:05 -0500 Subject: [PATCH 49/92] [ios] Fix an Interface Builder crash for IBInspectable properties. --- platform/ios/src/MGLMapView+IBAdditions.h | 2 ++ platform/ios/src/MGLMapView.h | 4 ++-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/platform/ios/src/MGLMapView+IBAdditions.h b/platform/ios/src/MGLMapView+IBAdditions.h index d02c938c5..6d5351df2 100644 --- a/platform/ios/src/MGLMapView+IBAdditions.h +++ b/platform/ios/src/MGLMapView+IBAdditions.h @@ -31,6 +31,8 @@ NS_ASSUME_NONNULL_BEGIN @property (nonatomic) IBInspectable double latitude; @property (nonatomic) IBInspectable double longitude; @property (nonatomic) IBInspectable double zoomLevel; +@property (nonatomic) IBInspectable double minimumZoomLevel; +@property (nonatomic) IBInspectable double maximumZoomLevel; // Renamed properties. Interface Builder derives the display name of each // inspectable from the runtime name, but runtime names don’t always make sense diff --git a/platform/ios/src/MGLMapView.h b/platform/ios/src/MGLMapView.h index e2c070a54..ef8626645 100644 --- a/platform/ios/src/MGLMapView.h +++ b/platform/ios/src/MGLMapView.h @@ -610,7 +610,7 @@ MGL_EXPORT IB_DESIGNABLE * * The default minimumZoomLevel is 0. */ -@property (nonatomic) IBInspectable double minimumZoomLevel; +@property (nonatomic) double minimumZoomLevel; /** * The maximum zoom level the map can be shown at. @@ -621,7 +621,7 @@ MGL_EXPORT IB_DESIGNABLE * The default maximumZoomLevel is 22. The upper bound for this property * is 25.5. */ -@property (nonatomic) IBInspectable double maximumZoomLevel; +@property (nonatomic) double maximumZoomLevel; /** The heading of the map, measured in degrees clockwise from true north. From 74b06274326de3c4d9cb34cd70497bd8d85a1e58 Mon Sep 17 00:00:00 2001 From: Fredrik Karlsson Date: Fri, 17 Nov 2017 15:17:04 +0100 Subject: [PATCH 50/92] [ios] update constraints when updating content inset --- platform/ios/src/MGLMapView.mm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/platform/ios/src/MGLMapView.mm b/platform/ios/src/MGLMapView.mm index 6215d4b7c..3b6ea82ed 100644 --- a/platform/ios/src/MGLMapView.mm +++ b/platform/ios/src/MGLMapView.mm @@ -1053,7 +1053,7 @@ public: } // Compass, logo and attribution button constraints needs to be updated. - [self setNeedsLayout]; + [self setNeedsUpdateConstraints]; } /// Returns the frame of inset content within the map view. From c71718c98e7be4c69ce5a9a249a2f15697c3ca3d Mon Sep 17 00:00:00 2001 From: Tobrun Date: Mon, 18 Dec 2017 13:34:25 +0100 Subject: [PATCH 51/92] [android] - activate filesource when creating an offline region (#10718) --- .../main/java/com/mapbox/mapboxsdk/offline/OfflineManager.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/offline/OfflineManager.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/offline/OfflineManager.java index 6a2bf6b07..f2faabd63 100644 --- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/offline/OfflineManager.java +++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/offline/OfflineManager.java @@ -204,6 +204,7 @@ public class OfflineManager { } ConnectivityReceiver.instance(context).activate(); + FileSource.getInstance(context).activate(); createOfflineRegion(fileSource, definition, metadata, new CreateOfflineRegionCallback() { @Override @@ -212,6 +213,7 @@ public class OfflineManager { @Override public void run() { ConnectivityReceiver.instance(context).deactivate(); + FileSource.getInstance(context).deactivate(); callback.onCreate(offlineRegion); } }); @@ -223,6 +225,7 @@ public class OfflineManager { @Override public void run() { ConnectivityReceiver.instance(context).deactivate(); + FileSource.getInstance(context).deactivate(); callback.onError(error); } }); From c618d513b1838e370eb1410001f80768c7b7a347 Mon Sep 17 00:00:00 2001 From: Tobrun Date: Mon, 18 Dec 2017 13:34:54 +0100 Subject: [PATCH 52/92] [android] - update instrumented make target, move code style validation before building C++ code, replace code style checks with the wrapper code style check. (#10724) --- Makefile | 15 +++++---------- circle.yml | 14 +++----------- 2 files changed, 8 insertions(+), 21 deletions(-) diff --git a/Makefile b/Makefile index d6802cf96..fbb4cd74f 100644 --- a/Makefile +++ b/Makefile @@ -599,17 +599,17 @@ run-android-unit-test: platform/android/configuration.gradle run-android-unit-test-%: platform/android/configuration.gradle cd platform/android && $(MBGL_ANDROID_GRADLE) -Pmapbox.abis=none :MapboxGLAndroidSDK:testDebugUnitTest --tests "$*" -# Run Instrumentation tests on AWS device farm, requires additional authentication through gradle.properties -.PHONY: run-android-ui-test-aws -run-android-ui-test-aws: platform/android/configuration.gradle - cd platform/android && $(MBGL_ANDROID_GRADLE) -Pmapbox.abis=all devicefarmUpload - # Builds a release package of the Android SDK .PHONY: apackage apackage: platform/android/configuration.gradle make android-lib-arm-v5 && make android-lib-arm-v7 && make android-lib-arm-v8 && make android-lib-x86 && make android-lib-x86-64 && make android-lib-mips cd platform/android && $(MBGL_ANDROID_GRADLE) -Pmapbox.abis=all assemble$(BUILDTYPE) +# Build test app instrumentation tests apk and test app apk for all abi's +.PHONY: android-ui-test +android-ui-test: platform/android/configuration.gradle + cd platform/android && $(MBGL_ANDROID_GRADLE) -Pmapbox.abis=all :MapboxGLAndroidSDKTestApp:assembleDebug :MapboxGLAndroidSDKTestApp:assembleAndroidTest + # Uploads the compiled Android SDK to Maven .PHONY: run-android-upload-archives run-android-upload-archives: platform/android/configuration.gradle @@ -625,11 +625,6 @@ run-android-upload-archives-local: platform/android/configuration.gradle android-gfxinfo: adb shell dumpsys gfxinfo com.mapbox.mapboxsdk.testapp reset -# Runs Android UI tests on all connected devices using Spoon -.PHONY: run-android-ui-test-spoon -run-android-ui-test-spoon: platform/android/configuration.gradle - cd platform/android && $(MBGL_ANDROID_GRADLE) -Pmapbox.abis="$(MBGL_ANDROID_ACTIVE_ARCHS)" spoon - # Generates Activity sanity tests .PHONY: test-code-android test-code-android: diff --git a/circle.yml b/circle.yml index 4c562bd93..d76ab4a8a 100644 --- a/circle.yml +++ b/circle.yml @@ -247,6 +247,9 @@ jobs: - *generate-cache-key - *restore-cache - *reset-ccache-stats + - run: + name: Check code style + command: make android-check - run: name: Build libmapbox-gl.so for arm-v7 command: make android-lib-arm-v7 @@ -259,17 +262,6 @@ jobs: - run: name: Generate Espresso sanity tests command: make test-code-android - - run: - name: Check Java code style - command: make android-checkstyle - - run: - name: Check Android modules for potential bugs (Lint SDK) - command: | - make android-lint-sdk - - run: - name: Check Android modules for potential bugs (Lint Test App) - command: | - make android-lint-test-app - run: name: Build Test APK command: | From 9c1dfe46cf39147ebe25a98eb0603828d4e8c61d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Minh=20Nguye=CC=82=CC=83n?= Date: Mon, 18 Dec 2017 09:43:26 -0800 Subject: [PATCH 53/92] [ios, macos] Cleaned up base localization files MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Localizable strings in Darwin classes need to specify “Foundation� as the table so that NSBundle consults the right .strings files. Reran make genstrings to add some missing strings to the base localizations and undo some manual edits to the base localizations that contained errors. --- .../resources/Base.lproj/Foundation.strings | 6 ++++++ platform/darwin/src/MGLAttributionInfo.mm | 4 ++-- .../resources/Base.lproj/Localizable.strings | Bin 7378 -> 3962 bytes .../macos/sdk/Base.lproj/Localizable.strings | Bin 298 -> 840 bytes 4 files changed, 8 insertions(+), 2 deletions(-) diff --git a/platform/darwin/resources/Base.lproj/Foundation.strings b/platform/darwin/resources/Base.lproj/Foundation.strings index 9d63dfa69..ba7db3fc6 100644 --- a/platform/darwin/resources/Base.lproj/Foundation.strings +++ b/platform/darwin/resources/Base.lproj/Foundation.strings @@ -289,3 +289,9 @@ /* West longitude format, short: {longitude} */ "COORD_W_SHORT" = "%@W"; +/* OpenStreetMap full name attribution */ +"OSM_FULL_NAME" = "OpenStreetMap"; + +/* OpenStreetMap short name attribution */ +"OSM_SHORT_NAME" = "OSM"; + diff --git a/platform/darwin/src/MGLAttributionInfo.mm b/platform/darwin/src/MGLAttributionInfo.mm index 29dd5229a..52a83fd18 100644 --- a/platform/darwin/src/MGLAttributionInfo.mm +++ b/platform/darwin/src/MGLAttributionInfo.mm @@ -170,8 +170,8 @@ - (NSAttributedString *)titleWithStyle:(MGLAttributionInfoStyle)style { - NSString *openStreetMap = NSLocalizedStringWithDefaultValue(@"OSM_FULL_NAME", nil, nil, @"OpenStreetMap", @"OpenStreetMap full name attribution"); - NSString *OSM = NSLocalizedStringWithDefaultValue(@"OSM_SHORT_NAME", nil, nil, @"OSM", @"OpenStreetMap short name attribution"); + NSString *openStreetMap = NSLocalizedStringWithDefaultValue(@"OSM_FULL_NAME", @"Foundation", nil, @"OpenStreetMap", @"OpenStreetMap full name attribution"); + NSString *OSM = NSLocalizedStringWithDefaultValue(@"OSM_SHORT_NAME", @"Foundation", nil, @"OSM", @"OpenStreetMap short name attribution"); NSMutableAttributedString *title = [[NSMutableAttributedString alloc] initWithAttributedString:self.title]; [title removeAttribute:NSUnderlineStyleAttributeName range:NSMakeRange(0, [title.string length])]; diff --git a/platform/ios/resources/Base.lproj/Localizable.strings b/platform/ios/resources/Base.lproj/Localizable.strings index 245b122fb6471d64d3237bfe7cab0a779801d7cb..571a6bca6b0e496947a7a0a484401b1e856a2c39 100644 GIT binary patch literal 3962 zcmc&%-EPxJ7`^8yMu=(w^#@ja1zHI=aUjC6qu6Ctgk(+ZNi(W52G>*UjbI$kW4P?Il}qS&8zPB}T#tub2^kHo`h~&Fw38 z@a88X&%z*0;y$+HuCXYf6y%&8ROLgQ4}y3QM&8?it3p(r@t)2uv|&Z1tyCAx`Kl{X zIP{7urI7_X@bBOMAQfI!x^e7EifepVqITC9<;}FWT=ClXbPy$Jm=A&|O3t!dqnddm z%iPxF?#yWBgJd!d()6|$N=(2D@};Qow%~`PrqfN24cF~wKns}BN9j^D{5uD0j+k4A<#dyCLW_4n&oIbOS3%9!fBer+E;^= zQNS^Xda@K%eX@|ox+7Fm+asy%ku5Lx&T=aX<9L+ZLPskHg%PE6_7GiK2vN>?0sd;U z!UKSp#A2`G9wfcz9wEV;DBzY7a>MJ+K}18dqUMG>w3AAW##CuI4Q4@>%zUMXtb6^; z3UjnDQmC?m92w(BU<)H_f=g?k1jBq1O!HANj>6$hU7|6!N<`zWG>5K9HN-d7tmfdLUO>)Tfc9!c z_SweMrqg!^_axs54K8Ef?TtE(f{m82=gjAa5;-zyPaXf{Y1!aPDY!9`Ux;hIezu#!hw%{F;_2f- z?gup7vH!sov=T>%)h0!9=u1xG@Q>j9cDO{*fwS%+{qR5xbQw$2)4Bzqk2woRZNN=~ zXa2qIr55;^VP6R>OebBpsnX&5JPs!9!fkbkR;^|D!oxu(X_xVkAg^mkx>k^LdZDRt zG14L81wNY&gA9W60n)$S`gbI;aR)VE zm_CG`@hdEIIx9BI`#ub7xrOsOA0=n;{rAlc!N-~CC4ZqCY*>&98A;_C;^+w2ur3po zSP5s=beFGc$5uGB0Z$LjER4cQn9a^Xk(A2E9!%eQWS;AW_6km%s>b@g6fCKQ0%R~e zueONV^=U=JnhS@ci*EixD=>ZDc*bz0)q16IT{k`|o%eU91{>GyV7jZt^-_@>tHIBb6b+{4fQo`wESyxB62pGDL%uNL}$ZQLfkP2Wz$?{!w0o( z>#ptEd%8aR);-kQB$;&=wx}vL5p1%1Bl^<}oaL@V5>U~~1_@k`joY%Z1;AaE^{Uf5 z$;MfC?N12iyW~Ihpx%nlf;W`|kb(0`(@H>E{VB5}X=iCT%ZDI%@0<7(037e|lYt!m E2ZufNUH||9 literal 7378 zcmc(kYfl?j5QfiZ{z1O2tfHn>fwt}qd`;dk8aH3B)T8OQ{W*LTS&7Oq|osG3tX7iru zsuo^q-X+bBEG^y1B+XDGFEq~A9_gK7_@sAEb?;Ooj!inApW94b-5-ZlJxOxzNRq>_ z5gPj4GMNs;FX2ah4#TGIbo4AqxhE-+>r&sYiJ@lCwAzvOf21?MFT?_ zo@K5PEXzDsdYTy;yRvI$GJ;8PjsC`ZC#?jY<9ZhwJJNN;DA;VvB3p*jbzO12FYmeA zqjqyEA=^Y!l~*ZRYCe4>x!R!_b_^|@du55*!f(n_MA`5dI0k>hD>Bpa*fcZ0q}nI2Olr4ydf>7XV~>vAFK-V;2Vwy{NHf}QhX1y<$)`AWzn}e zT;qRv*4vggE;avHx&e#64%!4qnfMDHgyE7NUu!HJgqMPGenI%T#v(bmeyRI^i?O<5 z%P-*vyBg_9&sJj}&SF^O$oTe)#zf6JM{b8V@=P?@kS>#N?iuDzZ7$|KGDe0cn>rs! zf?@a^R*d`EoBLPv0Q?WlA`^^@M=dLYd?R*@n7PpmcoUXL5z3#kCp6>wSq?wjo4@NG zN8Rk=I>D18SNr%XO-DJp;YG5gg_xONQ0x&z?gbbj*C_%%XVOcN^>x^~4)}T828Tm=H zDHdIqjmfRxjbu|aQk;F?W*y63XPU3470^ciHZvOQp0DG~fPQNcWyy)G>TmZkjF_tFVLMPwq4w)@FirTB%{av0|g==z(Hzi-J!gW(pMBXmy z`=KjF9HpvY_IkyYT!td!mur$wlCv*##P~MQ`Gx5XuNul5JUjDh#u>CKue(%COkOZ8 z^Lu$gL)=PsR#o+Ma^C6Lv17ZOKRy@kznhY2wdBqJXXh!BSMS>6ve$O=?{!DJUbkF4 zzr!8r91iv@kBlhkH`Xg2~WT+53%5`JOGx&bK&A{UwQs!gx0MBsuK- z7Wp9A$;fMZ|CNqf`0#bUW$EFws?eezJyvY+Xyg^j({iLoS#lYo0{NKdl;xe@#Z`$p zJQF0_fP0CFsWRl+vyX@iMib-7NO&jTiAZCf>)DmY^fiiEk(0XNT-K)kzcChwQ9t65 z__`h5>mbe&Zxd@K21=ISoUwk<{)^TEb#YgjhwqEpH%9yE{n2mO3cqPz^oQ==UEAjM zuER|U(;e9bjk=}01|tK(TCpO7p=R~6^45>zliXyQ%th7_BMVQ-^SoY7Q6}%X$&U0_ z>V+NF<+J%t*lupV={^uPOW7H90hI!~l>Y^!gh~ zS3PkGY?!Y^H?^X((@-8pPPQVM2U?qMV4MN(^S+pCh7LeaHb~yYJ6?SfHP9gW4sn?| zi5!d|r}YZ1XifOckG!Vij`x+LZfe)mKi~;3AzPiUQ6Hv>vUJ|7i@xufDjWcgs3>EV zU9K1(i+l5Y>m65eQ~E2cfb4J8_f4FU^90-ZL>;4flr!&b#hc0z9u-3#zA`PA# zJ2=i#OSfI;`(^UCsobbtBFBM1x+3`Bo~kwY4L0w5#Ugy(meuMx|J<}$T&FvdklG*5 zp*nM4Df;B1rEBG6dmMSHEm$*;E$fTUeDqweK|88eYSOZ2ItPX~EQ!7OM*{qeq^%gS z>3tFh=&aC-hqtN`LKOgRi@d0~aJl5Vx&)x}p3fY=M3K2UY&HW7iXi6@= z;kT|vnC(qP f31*Kgb~t07`95Z@$vQ4wN1b!;pjXSss3^;S>|2tic=P(R#3HT#SmzUA~|tIoS|JT$8m&(Ye$YF=*Gy*#^38NAvHmz zLWoxE_ul*N-i?QlH^N?4RtjCJEeLCkg;F%!%GybzVK^QH2#0f;giE>zV-(HlJj!kZ zxQ2i{2-vV1DkhaE!5L77l~4%I+C~7=(CSBRo^)?)IB%^L*NyJ?-LD!>CM!x}f+D|Z!s^02pMkv$@3V;h zlUp{xjkRs<4$!9*_8FUELKiqsPcQ7~V!M}jf3wQ8x`gg6IvT0D+0@L*LW!>u5i5iO zQ^DGp4a6FX*17(3))*%=PALj+BIFM_>TgJlQBKx>=m^G$#7nR2?R))kDsDSeA3KA5 nG@VYSki==8K^EVozEe+vbMg&k_xkn=%)#zh`va#N+*^DAkSYkB literal 298 zcmbV{y9&ZU5JgX&uUJyrpM#-9~otau- jV)ipbJ9EamWP1H#yK{1LC&52-k%bgnb_0C<4PTZwtr#${ From 2e3e88f0276bb6b6ade009549d8927f4af96bdd9 Mon Sep 17 00:00:00 2001 From: Chris Loer Date: Fri, 7 Jul 2017 13:31:53 -0700 Subject: [PATCH 54/92] [core] C++ port of TinySDF --- cmake/core-files.cmake | 2 + src/mbgl/util/tiny_sdf.cpp | 105 +++++++++++++++++++++++++++++++++++++ src/mbgl/util/tiny_sdf.hpp | 20 +++++++ 3 files changed, 127 insertions(+) create mode 100644 src/mbgl/util/tiny_sdf.cpp create mode 100644 src/mbgl/util/tiny_sdf.hpp diff --git a/cmake/core-files.cmake b/cmake/core-files.cmake index 54b4079cf..00d8d8af1 100644 --- a/cmake/core-files.cmake +++ b/cmake/core-files.cmake @@ -613,6 +613,8 @@ set(MBGL_CORE_FILES src/mbgl/util/tile_coordinate.hpp src/mbgl/util/tile_cover.cpp src/mbgl/util/tile_cover.hpp + src/mbgl/util/tiny_sdf.cpp + src/mbgl/util/tiny_sdf.hpp src/mbgl/util/token.hpp src/mbgl/util/url.cpp src/mbgl/util/url.hpp diff --git a/src/mbgl/util/tiny_sdf.cpp b/src/mbgl/util/tiny_sdf.cpp new file mode 100644 index 000000000..60839357d --- /dev/null +++ b/src/mbgl/util/tiny_sdf.cpp @@ -0,0 +1,105 @@ +#include + +#include + +#include + +namespace mbgl { +namespace util { + +namespace tinysdf { + +static const double INF = 1e20; + +// 1D squared distance transform +void edt1d(std::vector& f, + std::vector& d, + std::vector& v, + std::vector& z, + uint32_t n) { + v[0] = 0; + z[0] = -INF; + z[1] = +INF; + + for (uint32_t q = 1, k = 0; q < n; q++) { + double s = ((f[q] + q * q) - (f[v[k]] + v[k] * v[k])) / (2 * q - 2 * v[k]); + while (s <= z[k]) { + k--; + s = ((f[q] + q * q) - (f[v[k]] + v[k] * v[k])) / (2 * q - 2 * v[k]); + } + k++; + v[k] = q; + z[k] = s; + z[k + 1] = +INF; + } + + for (uint32_t q = 0, k = 0; q < n; q++) { + while (z[k + 1] < q) k++; + d[q] = (q - v[k]) * (q - v[k]) + f[v[k]]; + } +} + + +// 2D Euclidean distance transform by Felzenszwalb & Huttenlocher https://cs.brown.edu/~pff/dt/ +void edt(std::vector& data, + uint32_t width, + uint32_t height, + std::vector& f, + std::vector& d, + std::vector& v, + std::vector& z) { + for (uint32_t x = 0; x < width; x++) { + for (uint32_t y = 0; y < height; y++) { + f[y] = data[y * width + x]; + } + edt1d(f, d, v, z, height); + for (uint32_t y = 0; y < height; y++) { + data[y * width + x] = d[y]; + } + } + for (uint32_t y = 0; y < height; y++) { + for (uint32_t x = 0; x < width; x++) { + f[x] = data[y * width + x]; + } + edt1d(f, d, v, z, width); + for (uint32_t x = 0; x < width; x++) { + data[y * width + x] = std::sqrt(d[x]); + } + } +} + +} // namespace tinysdf + +AlphaImage transformRasterToSDF(const AlphaImage& rasterInput, double radius, double cutoff) { + uint32_t size = rasterInput.size.width * rasterInput.size.height; + uint32_t maxDimension = std::max(rasterInput.size.width, rasterInput.size.height); + + AlphaImage sdf(rasterInput.size); + + // temporary arrays for the distance transform + std::vector gridOuter(size); + std::vector gridInner(size); + std::vector f(maxDimension); + std::vector d(maxDimension); + std::vector z(maxDimension + 1); + std::vector v(maxDimension); + + for (uint32_t i = 0; i < size; i++) { + double a = double(rasterInput.data[i]) / 255; // alpha value + gridOuter[i] = a == 1.0 ? 0.0 : a == 0.0 ? tinysdf::INF : std::pow(std::max(0.0, 0.5 - a), 2.0); + gridInner[i] = a == 1.0 ? tinysdf::INF : a == 0.0 ? 0.0 : std::pow(std::max(0.0, a - 0.5), 2.0); + } + + tinysdf::edt(gridOuter, rasterInput.size.width, rasterInput.size.height, f, d, v, z); + tinysdf::edt(gridInner, rasterInput.size.width, rasterInput.size.height, f, d, v, z); + + for (uint32_t i = 0; i < size; i++) { + double distance = gridOuter[i] - gridInner[i]; + sdf.data[i] = std::max(0l, std::min(255l, std::lround(255.0 - 255.0 * (distance / radius + cutoff)))); + } + + return sdf; +} + +} // namespace util +} // namespace mbgl diff --git a/src/mbgl/util/tiny_sdf.hpp b/src/mbgl/util/tiny_sdf.hpp new file mode 100644 index 000000000..33c9280cb --- /dev/null +++ b/src/mbgl/util/tiny_sdf.hpp @@ -0,0 +1,20 @@ +#pragma once + +#include + +namespace mbgl { +namespace util { + +/* + C++ port of https://github.com/mapbox/tiny-sdf, which is in turn based on the + Felzenszwalb/Huttenlocher distance transform paper (https://cs.brown.edu/~pff/papers/dt-final.pdf). + Note there exists an alternative C++ implementation from the paper’s authors at + https://cs.brown.edu/~pff/dt/, which this implementation is not based on. + + Takes an alpha channel raster input and transforms it into an alpha channel + Signed Distance Field (SDF) output of the same dimensions. +*/ +AlphaImage transformRasterToSDF(const AlphaImage& rasterInput, double radius, double cutoff); + +} // namespace util +} // namespace mbgl From a53818a10b821218b86478e048a3884db93f7c00 Mon Sep 17 00:00:00 2001 From: Chris Loer Date: Fri, 15 Dec 2017 09:08:20 -0800 Subject: [PATCH 55/92] [core] Enable local glyph generation using TinySDF. - Platform-specific LocalGlyphRasterizer is responsible for deciding which glyphs to rasterize locally and for implementing the rasterization. - Default platform implementation doesn't locally generate any glyphs -> no behavior change - Unit test uses StubLocalGlyphRasterizer, which returns a single fixed bitmap for all CJK glyphs - Rename glyph_loader.test to glyph_manager.test --- cmake/core-files.cmake | 1 + platform/android/config.cmake | 1 + platform/default/local_glyph_rasterizer.cpp | 13 +++++++ platform/ios/config.cmake | 1 + platform/linux/config.cmake | 1 + platform/macos/config.cmake | 1 + platform/qt/config.cmake | 2 + src/mbgl/text/glyph_manager.cpp | 21 +++++++++-- src/mbgl/text/glyph_manager.hpp | 9 ++++- src/mbgl/text/local_glyph_rasterizer.hpp | 42 +++++++++++++++++++++ 10 files changed, 86 insertions(+), 6 deletions(-) create mode 100644 platform/default/local_glyph_rasterizer.cpp create mode 100644 src/mbgl/text/local_glyph_rasterizer.hpp diff --git a/cmake/core-files.cmake b/cmake/core-files.cmake index 00d8d8af1..33b3072f3 100644 --- a/cmake/core-files.cmake +++ b/cmake/core-files.cmake @@ -481,6 +481,7 @@ set(MBGL_CORE_FILES src/mbgl/text/glyph_pbf.cpp src/mbgl/text/glyph_pbf.hpp src/mbgl/text/glyph_range.hpp + src/mbgl/text/local_glyph_rasterizer.hpp src/mbgl/text/placement_config.hpp src/mbgl/text/quads.cpp src/mbgl/text/quads.hpp diff --git a/platform/android/config.cmake b/platform/android/config.cmake index 47f894f7b..c7609f164 100644 --- a/platform/android/config.cmake +++ b/platform/android/config.cmake @@ -36,6 +36,7 @@ macro(mbgl_platform_core) PRIVATE platform/android/src/thread.cpp PRIVATE platform/default/string_stdlib.cpp PRIVATE platform/default/bidi.cpp + PRIVATE platform/default/local_glyph_rasterizer.cpp PRIVATE platform/default/thread_local.cpp PRIVATE platform/default/utf.cpp diff --git a/platform/default/local_glyph_rasterizer.cpp b/platform/default/local_glyph_rasterizer.cpp new file mode 100644 index 000000000..7ace6cbfb --- /dev/null +++ b/platform/default/local_glyph_rasterizer.cpp @@ -0,0 +1,13 @@ +#include + +namespace mbgl { + +bool LocalGlyphRasterizer::canRasterizeGlyph(const FontStack&, GlyphID) { + return false; +} + +Glyph LocalGlyphRasterizer::rasterizeGlyph(const FontStack&, GlyphID) { + return Glyph(); +} + +} // namespace mbgl diff --git a/platform/ios/config.cmake b/platform/ios/config.cmake index c3db19498..3b9921129 100644 --- a/platform/ios/config.cmake +++ b/platform/ios/config.cmake @@ -32,6 +32,7 @@ macro(mbgl_platform_core) PRIVATE platform/darwin/src/nsthread.mm PRIVATE platform/darwin/src/string_nsstring.mm PRIVATE platform/default/bidi.cpp + PRIVATE platform/default/local_glyph_rasterizer.cpp PRIVATE platform/default/thread_local.cpp PRIVATE platform/default/utf.cpp diff --git a/platform/linux/config.cmake b/platform/linux/config.cmake index 47c4c6880..fddcf9027 100644 --- a/platform/linux/config.cmake +++ b/platform/linux/config.cmake @@ -51,6 +51,7 @@ macro(mbgl_platform_core) PRIVATE platform/default/string_stdlib.cpp PRIVATE platform/default/thread.cpp PRIVATE platform/default/bidi.cpp + PRIVATE platform/default/local_glyph_rasterizer.cpp PRIVATE platform/default/thread_local.cpp PRIVATE platform/default/utf.cpp diff --git a/platform/macos/config.cmake b/platform/macos/config.cmake index aca99f9b4..3e7f548ba 100644 --- a/platform/macos/config.cmake +++ b/platform/macos/config.cmake @@ -18,6 +18,7 @@ macro(mbgl_platform_core) PRIVATE platform/darwin/src/nsthread.mm PRIVATE platform/darwin/src/string_nsstring.mm PRIVATE platform/default/bidi.cpp + PRIVATE platform/default/local_glyph_rasterizer.cpp PRIVATE platform/default/thread_local.cpp PRIVATE platform/default/utf.cpp diff --git a/platform/qt/config.cmake b/platform/qt/config.cmake index a7fdbf354..57e586d7c 100644 --- a/platform/qt/config.cmake +++ b/platform/qt/config.cmake @@ -48,6 +48,8 @@ macro(mbgl_platform_core) target_sources(mbgl-core PRIVATE platform/qt/src/bidi.cpp) endif() + target_sources(mbgl-core PRIVATE platform/default/local_glyph_rasterizer.cpp) + endmacro() diff --git a/src/mbgl/text/glyph_manager.cpp b/src/mbgl/text/glyph_manager.cpp index 916d39ae6..59b019b54 100644 --- a/src/mbgl/text/glyph_manager.cpp +++ b/src/mbgl/text/glyph_manager.cpp @@ -4,14 +4,16 @@ #include #include #include +#include namespace mbgl { static GlyphManagerObserver nullObserver; -GlyphManager::GlyphManager(FileSource& fileSource_) +GlyphManager::GlyphManager(FileSource& fileSource_, std::unique_ptr localGlyphRasterizer_) : fileSource(fileSource_), - observer(&nullObserver) { + observer(&nullObserver), + localGlyphRasterizer(std::move(localGlyphRasterizer_)) { } GlyphManager::~GlyphManager() = default; @@ -30,7 +32,13 @@ void GlyphManager::getGlyphs(GlyphRequestor& requestor, GlyphDependencies glyphD const GlyphIDs& glyphIDs = dependency.second; GlyphRangeSet ranges; for (const auto& glyphID : glyphIDs) { - ranges.insert(getGlyphRange(glyphID)); + if (localGlyphRasterizer->canRasterizeGlyph(fontStack, glyphID)) { + if (entry.glyphs.find(glyphID) == entry.glyphs.end()) { + entry.glyphs.emplace(glyphID, makeMutable(generateLocalSDF(fontStack, glyphID))); + } + } else { + ranges.insert(getGlyphRange(glyphID)); + } } for (const auto& range : ranges) { @@ -49,9 +57,14 @@ void GlyphManager::getGlyphs(GlyphRequestor& requestor, GlyphDependencies glyphD } } +Glyph GlyphManager::generateLocalSDF(const FontStack& fontStack, GlyphID glyphID) { + Glyph local = localGlyphRasterizer->rasterizeGlyph(fontStack, glyphID); + local.bitmap = util::transformRasterToSDF(local.bitmap, 8, .25); + return local; +} + GlyphManager::GlyphRequest& GlyphManager::requestRange(Entry& entry, const FontStack& fontStack, const GlyphRange& range) { GlyphRequest& request = entry.ranges[range]; - if (request.req) { return request; } diff --git a/src/mbgl/text/glyph_manager.hpp b/src/mbgl/text/glyph_manager.hpp index 00df07946..13a8c0742 100644 --- a/src/mbgl/text/glyph_manager.hpp +++ b/src/mbgl/text/glyph_manager.hpp @@ -3,6 +3,7 @@ #include #include #include +#include #include #include #include @@ -24,7 +25,7 @@ public: class GlyphManager : public util::noncopyable { public: - GlyphManager(FileSource&); + GlyphManager(FileSource&, std::unique_ptr = std::make_unique()); ~GlyphManager(); // Workers send a `getGlyphs` message to the main thread once they have determined @@ -42,6 +43,8 @@ public: void setObserver(GlyphManagerObserver*); private: + Glyph generateLocalSDF(const FontStack& fontStack, GlyphID glyphID); + FileSource& fileSource; std::string glyphURL; @@ -61,8 +64,10 @@ private: GlyphRequest& requestRange(Entry&, const FontStack&, const GlyphRange&); void processResponse(const Response&, const FontStack&, const GlyphRange&); void notify(GlyphRequestor&, const GlyphDependencies&); - + GlyphManagerObserver* observer = nullptr; + + std::unique_ptr localGlyphRasterizer; }; } // namespace mbgl diff --git a/src/mbgl/text/local_glyph_rasterizer.hpp b/src/mbgl/text/local_glyph_rasterizer.hpp new file mode 100644 index 000000000..c2bdbd284 --- /dev/null +++ b/src/mbgl/text/local_glyph_rasterizer.hpp @@ -0,0 +1,42 @@ +#pragma once + +#include + +namespace mbgl { + +/* + Given a font stack and a glyph ID, platform-specific implementations of + LocalGlyphRasterizer will decide which, if any, local fonts to use and + then generate a matching glyph object with a greyscale rasterization of + the glyph and appropriate metrics. GlyphManager will then use TinySDF to + transform the rasterized bitmap into an SDF. + + The JS equivalent of this functionality will only generate glyphs in the + 'CJK Unified Ideographs' and 'Hangul Syllables' ranges, for which it can + get away with rendering a fixed 30px square image and GlyphMetrics of: + + width: 24, + height: 24, + left: 0, + top: -8, + advance: 24 + + The JS equivalent also uses heuristic evaluation of the font stack name + to control the font-weight it uses during rasterization. + + It is left to platform-specific implementation to decide how best to + map a FontStack to a particular rasterization. + + The default implementation simply refuses to rasterize any glyphs. +*/ + +class LocalGlyphRasterizer { +public: + virtual ~LocalGlyphRasterizer() = default; + + // virtual so that test harness can override platform-specific behavior + virtual bool canRasterizeGlyph(const FontStack&, GlyphID); + virtual Glyph rasterizeGlyph(const FontStack&, GlyphID); +}; + +} // namespace mbgl From f1f2ebb019980d4c53d563d3495e016d50e23945 Mon Sep 17 00:00:00 2001 From: Chris Loer Date: Mon, 27 Nov 2017 12:50:28 -0800 Subject: [PATCH 56/92] [core] Hook LocalGlyphRasterizer "font family" configuration up to Renderer --- include/mbgl/renderer/renderer.hpp | 3 ++- platform/default/local_glyph_rasterizer.cpp | 9 +++++++++ src/mbgl/renderer/renderer.cpp | 5 +++-- src/mbgl/renderer/renderer_impl.cpp | 5 +++-- src/mbgl/renderer/renderer_impl.hpp | 2 +- src/mbgl/text/glyph_manager.hpp | 2 +- src/mbgl/text/local_glyph_rasterizer.hpp | 6 +++++- src/mbgl/util/i18n.cpp | 5 +++++ src/mbgl/util/i18n.hpp | 4 ++++ 9 files changed, 33 insertions(+), 8 deletions(-) diff --git a/include/mbgl/renderer/renderer.hpp b/include/mbgl/renderer/renderer.hpp index 23d2451a2..a60f3f6e4 100644 --- a/include/mbgl/renderer/renderer.hpp +++ b/include/mbgl/renderer/renderer.hpp @@ -25,7 +25,8 @@ class Renderer { public: Renderer(RendererBackend&, float pixelRatio_, FileSource&, Scheduler&, GLContextMode = GLContextMode::Unique, - const optional programCacheDir = {}); + const optional programCacheDir = {}, + const optional localFontFamily = {}); ~Renderer(); void markContextLost(); diff --git a/platform/default/local_glyph_rasterizer.cpp b/platform/default/local_glyph_rasterizer.cpp index 7ace6cbfb..7866f2942 100644 --- a/platform/default/local_glyph_rasterizer.cpp +++ b/platform/default/local_glyph_rasterizer.cpp @@ -2,6 +2,15 @@ namespace mbgl { +class LocalGlyphRasterizer::Impl { +}; + +LocalGlyphRasterizer::LocalGlyphRasterizer(const optional) +{} + +LocalGlyphRasterizer::~LocalGlyphRasterizer() +{} + bool LocalGlyphRasterizer::canRasterizeGlyph(const FontStack&, GlyphID) { return false; } diff --git a/src/mbgl/renderer/renderer.cpp b/src/mbgl/renderer/renderer.cpp index 8953b419f..6d086c70b 100644 --- a/src/mbgl/renderer/renderer.cpp +++ b/src/mbgl/renderer/renderer.cpp @@ -10,9 +10,10 @@ Renderer::Renderer(RendererBackend& backend, FileSource& fileSource_, Scheduler& scheduler_, GLContextMode contextMode_, - const optional programCacheDir_) + const optional programCacheDir_, + const optional localFontFamily_) : impl(std::make_unique(backend, pixelRatio_, fileSource_, scheduler_, - contextMode_, std::move(programCacheDir_))) { + contextMode_, std::move(programCacheDir_), std::move(localFontFamily_))) { } Renderer::~Renderer() { diff --git a/src/mbgl/renderer/renderer_impl.cpp b/src/mbgl/renderer/renderer_impl.cpp index 7339756e5..3a7afdb03 100644 --- a/src/mbgl/renderer/renderer_impl.cpp +++ b/src/mbgl/renderer/renderer_impl.cpp @@ -42,7 +42,8 @@ Renderer::Impl::Impl(RendererBackend& backend_, FileSource& fileSource_, Scheduler& scheduler_, GLContextMode contextMode_, - const optional programCacheDir_) + const optional programCacheDir_, + const optional localFontFamily_) : backend(backend_) , scheduler(scheduler_) , fileSource(fileSource_) @@ -50,7 +51,7 @@ Renderer::Impl::Impl(RendererBackend& backend_, , contextMode(contextMode_) , pixelRatio(pixelRatio_) , programCacheDir(programCacheDir_) - , glyphManager(std::make_unique(fileSource)) + , glyphManager(std::make_unique(fileSource, std::make_unique(localFontFamily_))) , imageManager(std::make_unique()) , lineAtlas(std::make_unique(Size{ 256, 512 })) , imageImpls(makeMutable>>()) diff --git a/src/mbgl/renderer/renderer_impl.hpp b/src/mbgl/renderer/renderer_impl.hpp index db2a6e7a7..a199cec4d 100644 --- a/src/mbgl/renderer/renderer_impl.hpp +++ b/src/mbgl/renderer/renderer_impl.hpp @@ -36,7 +36,7 @@ class Renderer::Impl : public GlyphManagerObserver, public RenderSourceObserver{ public: Impl(RendererBackend&, float pixelRatio_, FileSource&, Scheduler&, GLContextMode, - const optional programCacheDir); + const optional programCacheDir, const optional localFontFamily); ~Impl() final; void markContextLost() { diff --git a/src/mbgl/text/glyph_manager.hpp b/src/mbgl/text/glyph_manager.hpp index 13a8c0742..ccc8d7e16 100644 --- a/src/mbgl/text/glyph_manager.hpp +++ b/src/mbgl/text/glyph_manager.hpp @@ -25,7 +25,7 @@ public: class GlyphManager : public util::noncopyable { public: - GlyphManager(FileSource&, std::unique_ptr = std::make_unique()); + GlyphManager(FileSource&, std::unique_ptr = std::make_unique(optional())); ~GlyphManager(); // Workers send a `getGlyphs` message to the main thread once they have determined diff --git a/src/mbgl/text/local_glyph_rasterizer.hpp b/src/mbgl/text/local_glyph_rasterizer.hpp index c2bdbd284..82b16b534 100644 --- a/src/mbgl/text/local_glyph_rasterizer.hpp +++ b/src/mbgl/text/local_glyph_rasterizer.hpp @@ -32,11 +32,15 @@ namespace mbgl { class LocalGlyphRasterizer { public: - virtual ~LocalGlyphRasterizer() = default; + virtual ~LocalGlyphRasterizer(); + LocalGlyphRasterizer(const optional fontFamily = optional()); // virtual so that test harness can override platform-specific behavior virtual bool canRasterizeGlyph(const FontStack&, GlyphID); virtual Glyph rasterizeGlyph(const FontStack&, GlyphID); +private: + class Impl; + std::unique_ptr impl; }; } // namespace mbgl diff --git a/src/mbgl/util/i18n.cpp b/src/mbgl/util/i18n.cpp index 3e3a68e24..1fc13bfb7 100644 --- a/src/mbgl/util/i18n.cpp +++ b/src/mbgl/util/i18n.cpp @@ -392,6 +392,11 @@ bool allowsIdeographicBreaking(char16_t chr) { // || isInCJKCompatibilityIdeographsSupplement(chr)); } +bool allowsFixedWidthGlyphGeneration(char16_t chr) { + // Mirrors conservative set of characters used in glyph_manager.js/_tinySDF + return isInCJKUnifiedIdeographs(chr) || isInHangulSyllables(chr); +} + bool allowsVerticalWritingMode(const std::u16string& string) { for (char32_t chr : string) { if (hasUprightVerticalOrientation(chr)) { diff --git a/src/mbgl/util/i18n.hpp b/src/mbgl/util/i18n.hpp index 61c5a1ea9..b3960c743 100644 --- a/src/mbgl/util/i18n.hpp +++ b/src/mbgl/util/i18n.hpp @@ -23,6 +23,10 @@ bool allowsIdeographicBreaking(const std::u16string& string); by the given Unicode codepoint due to ideographic breaking. */ bool allowsIdeographicBreaking(char16_t chr); +/** Conservative set of characters expected to have relatively fixed sizes and + advances */ +bool allowsFixedWidthGlyphGeneration(char16_t chr); + /** Returns whether any substring of the given string can be drawn as vertical text with upright glyphs. */ bool allowsVerticalWritingMode(const std::u16string& string); From 97e45d5fdac8d92b1115ed3e6ed06d7b61ef78f2 Mon Sep 17 00:00:00 2001 From: Chris Loer Date: Thu, 30 Nov 2017 12:38:06 -0800 Subject: [PATCH 57/92] [android] Android implementation of local CJK glyph rendering - Draws bold version of glyph if font stack contains string "bold" - Not hooked up to global configuration yet --- .../mapboxsdk/text/LocalGlyphRasterizer.java | 46 +++++++ platform/android/config.cmake | 3 +- platform/android/src/jni.cpp | 4 + .../src/text/local_glyph_rasterizer.cpp | 126 ++++++++++++++++++ .../src/text/local_glyph_rasterizer_jni.hpp | 31 +++++ 5 files changed, 209 insertions(+), 1 deletion(-) create mode 100644 platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/text/LocalGlyphRasterizer.java create mode 100644 platform/android/src/text/local_glyph_rasterizer.cpp create mode 100644 platform/android/src/text/local_glyph_rasterizer_jni.hpp diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/text/LocalGlyphRasterizer.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/text/LocalGlyphRasterizer.java new file mode 100644 index 000000000..920a1270a --- /dev/null +++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/text/LocalGlyphRasterizer.java @@ -0,0 +1,46 @@ +package com.mapbox.mapboxsdk.text; + +import android.graphics.Canvas; +import android.graphics.Paint; +import android.graphics.Bitmap; +import android.graphics.Typeface; +import android.support.annotation.WorkerThread; + +/** + * LocalGlyphRasterizer is the Android-specific platform implementation used + * by the portable local_glyph_rasterizer.hpp + */ +public class LocalGlyphRasterizer { + + /*** + * Uses Android-native drawing code to rasterize a single glyph + * to a square @{link Bitmap} which can be returned to portable + * code for transformation into a Signed Distance Field glyph. + * + * @param fontFamily Font family string to pass to Typeface.create + * @param bold If true, use Typeface.BOLD option + * @param glyphID 16-bit Unicode BMP codepoint to draw + * + * @return Return a @{link Bitmap} to be displayed in the requested tile. + */ + @WorkerThread + protected static Bitmap drawGlyphBitmap(String fontFamily, boolean bold, char glyphID) { + /* + 35x35px dimensions are hardwired to match local_glyph_rasterizer.cpp + These dimensions are large enough to draw a 24 point character in the middle + of the bitmap (y: 20) with some buffer around the edge + */ + Bitmap bitmap = Bitmap.createBitmap(35, 35, Bitmap.Config.ARGB_8888); + + Paint paint = new Paint(); + paint.setAntiAlias(true); + paint.setTextSize(24); + paint.setTypeface(Typeface.create(fontFamily, bold ? Typeface.BOLD : Typeface.NORMAL)); + + Canvas canvas = new Canvas(); + canvas.setBitmap(bitmap); + canvas.drawText(String.valueOf(glyphID), 0, 20, paint); + + return bitmap; + } +} diff --git a/platform/android/config.cmake b/platform/android/config.cmake index c7609f164..34a896304 100644 --- a/platform/android/config.cmake +++ b/platform/android/config.cmake @@ -32,11 +32,12 @@ macro(mbgl_platform_core) PRIVATE platform/android/src/timer.cpp # Misc + PRIVATE platform/android/src/text/local_glyph_rasterizer_jni.hpp + PRIVATE platform/android/src/text/local_glyph_rasterizer.cpp PRIVATE platform/android/src/logging_android.cpp PRIVATE platform/android/src/thread.cpp PRIVATE platform/default/string_stdlib.cpp PRIVATE platform/default/bidi.cpp - PRIVATE platform/default/local_glyph_rasterizer.cpp PRIVATE platform/default/thread_local.cpp PRIVATE platform/default/utf.cpp diff --git a/platform/android/src/jni.cpp b/platform/android/src/jni.cpp index f4e573486..e75a9c698 100755 --- a/platform/android/src/jni.cpp +++ b/platform/android/src/jni.cpp @@ -51,6 +51,7 @@ #include "style/light.hpp" #include "snapshotter/map_snapshotter.hpp" #include "snapshotter/map_snapshot.hpp" +#include "text/local_glyph_rasterizer_jni.hpp" namespace mbgl { namespace android { @@ -188,6 +189,9 @@ void registerNatives(JavaVM *vm) { // Snapshotter MapSnapshotter::registerNative(env); MapSnapshot::registerNative(env); + + // text + LocalGlyphRasterizer::registerNative(env); } } // namespace android diff --git a/platform/android/src/text/local_glyph_rasterizer.cpp b/platform/android/src/text/local_glyph_rasterizer.cpp new file mode 100644 index 000000000..ce1b0fc8f --- /dev/null +++ b/platform/android/src/text/local_glyph_rasterizer.cpp @@ -0,0 +1,126 @@ +#include +#include +#include + +#include + +#include "../attach_env.hpp" +#include "../bitmap.hpp" + +#include "local_glyph_rasterizer_jni.hpp" + +/* + Android implementation of LocalGlyphRasterizer: + Draws CJK glyphs using locally available fonts. + + Follows pattern of GL JS implementation in that: + - Only CJK glyphs are drawn locally (because we can guess their metrics effectively) + * Render size/metrics determined experimentally using Noto Sans + - Configuration is done at map creation time by setting a "font family" + * JS uses a CSS font-family, this uses android.graphics.Typeface + https://developer.android.com/reference/android/graphics/Typeface.html + - We use heuristics to extract a font-weight based on the incoming font stack + * JS tries to extract multiple weights, this implementation only looks for + "bold" + + mbgl::LocalGlyphRasterizer is the portable interface + mbgl::LocalGlyphRasterizer::Impl stores platform-specific configuration data + mbgl::android::LocalGlyphRasterizer is the JNI wrapper + com.mapbox.mapboxsdk.text.LocalGlyphRasterizer is the Java implementation that + actually does the drawing + */ + +namespace mbgl { +namespace android { + +PremultipliedImage LocalGlyphRasterizer::drawGlyphBitmap(const std::string& fontFamily, const bool bold, const GlyphID glyphID) { + UniqueEnv env { AttachEnv() }; + + using Signature = jni::Object(jni::String, jni::jboolean, jni::jchar); + auto method = javaClass.GetStaticMethod(*env, "drawGlyphBitmap"); + + jni::String jniFontFamily = jni::Make(*env, fontFamily); + + auto javaBitmap = javaClass.Call(*env, + method, + jniFontFamily, + static_cast(bold), + static_cast(glyphID)); + + PremultipliedImage result = Bitmap::GetImage(*env, javaBitmap); + jni::DeleteLocalRef(*env, javaBitmap); + return result; +} + +void LocalGlyphRasterizer::registerNative(jni::JNIEnv& env) { + javaClass = *jni::Class::Find(env).NewGlobalRef(env).release(); +} + +jni::Class LocalGlyphRasterizer::javaClass; + +} // namespace android + +class LocalGlyphRasterizer::Impl { +public: + Impl(const optional fontFamily_) + : fontFamily(fontFamily_) + {} + + bool isConfigured() const { + return bool(fontFamily); + } + + PremultipliedImage drawGlyphBitmap(const FontStack& fontStack, GlyphID glyphID) { + bool bold = false; + for (auto font : fontStack) { + std::string lowercaseFont = platform::lowercase(font); + if (lowercaseFont.find("bold") != std::string::npos) { + bold = true; + } + } + return android::LocalGlyphRasterizer::drawGlyphBitmap(*fontFamily, bold, glyphID); + } + +private: + optional fontFamily; +}; + +LocalGlyphRasterizer::LocalGlyphRasterizer(const optional fontFamily) + : impl(std::make_unique(fontFamily)) +{} + +LocalGlyphRasterizer::~LocalGlyphRasterizer() +{} + +bool LocalGlyphRasterizer::canRasterizeGlyph(const FontStack&, GlyphID glyphID) { + return util::i18n::allowsFixedWidthGlyphGeneration(glyphID) && impl->isConfigured(); +} + +Glyph LocalGlyphRasterizer::rasterizeGlyph(const FontStack& fontStack, GlyphID glyphID) { + Glyph fixedMetrics; + if (!impl->isConfigured()) { + return fixedMetrics; + } + + fixedMetrics.id = glyphID; + + Size size(35, 35); + + fixedMetrics.metrics.width = size.width; + fixedMetrics.metrics.height = size.height; + fixedMetrics.metrics.left = 3; + fixedMetrics.metrics.top = -10; + fixedMetrics.metrics.advance = 24; + + PremultipliedImage rgbaBitmap = impl->drawGlyphBitmap(fontStack, glyphID); + + // Copy alpha values from RGBA bitmap into the AlphaImage output + fixedMetrics.bitmap = AlphaImage(size); + for (uint32_t i = 0; i < size.width * size.height; i++) { + fixedMetrics.bitmap.data[i] = rgbaBitmap.data[4 * i + 3]; + } + + return fixedMetrics; +} + +} // namespace mbgl diff --git a/platform/android/src/text/local_glyph_rasterizer_jni.hpp b/platform/android/src/text/local_glyph_rasterizer_jni.hpp new file mode 100644 index 000000000..38d98d536 --- /dev/null +++ b/platform/android/src/text/local_glyph_rasterizer_jni.hpp @@ -0,0 +1,31 @@ +#pragma once + +#include + +#include + +/* + android::LocalGlyphRasterizer is the JNI wrapper of + com/mapbox/mapboxsdk/text/LocalGlyphRasterizer + + mbgl::LocalGlyphRasterizer is the portable interface + Both implementations are in local_glyph_rasterizer.cpp + */ + +namespace mbgl { +namespace android { + +class LocalGlyphRasterizer { +public: + static PremultipliedImage drawGlyphBitmap(const std::string& fontFamily, const bool bold, const char16_t glyphID); + + static constexpr auto Name() { return "com/mapbox/mapboxsdk/text/LocalGlyphRasterizer"; }; + + static jni::Class javaClass; + + static void registerNative(jni::JNIEnv&); + +}; + +} // namespace android +} // namespace mbgl From f2b42af339ee63e47853c952e85dc0746902347c Mon Sep 17 00:00:00 2001 From: Chris Loer Date: Fri, 15 Dec 2017 09:12:04 -0800 Subject: [PATCH 58/92] [android] Add Configuration hook for local ideograph font family and demo activity --- .../com/mapbox/mapboxsdk/maps/MapView.java | 4 +- .../mapboxsdk/maps/MapboxMapOptions.java | 31 +++++++ .../mapboxsdk/maps/renderer/MapRenderer.java | 8 +- .../GLSurfaceViewMapRenderer.java | 4 +- .../textureview/TextureViewMapRenderer.java | 6 +- .../src/main/res-public/values/public.xml | 1 + .../src/main/res/values/attrs.xml | 1 + .../src/main/AndroidManifest.xml | 64 +++++++++------ .../maplayout/LocalGlyphActivity.java | 81 +++++++++++++++++++ .../main/res/layout/activity_local_glyph.xml | 17 ++++ .../src/main/res/values/descriptions.xml | 1 + .../src/main/res/values/titles.xml | 2 + platform/android/src/map_renderer.cpp | 10 ++- platform/android/src/map_renderer.hpp | 4 +- 14 files changed, 196 insertions(+), 38 deletions(-) create mode 100644 platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/maplayout/LocalGlyphActivity.java create mode 100644 platform/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/activity_local_glyph.xml diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapView.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapView.java index 1f8faf023..80a3ce5bb 100644 --- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapView.java +++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapView.java @@ -293,7 +293,7 @@ public class MapView extends FrameLayout { private void initialiseDrawingSurface(MapboxMapOptions options) { if (options.getTextureMode()) { TextureView textureView = new TextureView(getContext()); - mapRenderer = new TextureViewMapRenderer(getContext(), textureView) { + mapRenderer = new TextureViewMapRenderer(getContext(), textureView, options.getLocalIdeographFontFamily()) { @Override protected void onSurfaceCreated(GL10 gl, EGLConfig config) { MapView.this.post(new Runnable() { @@ -315,7 +315,7 @@ public class MapView extends FrameLayout { GLSurfaceView glSurfaceView = (GLSurfaceView) findViewById(R.id.surfaceView); glSurfaceView.setZOrderMediaOverlay(mapboxMapOptions.getRenderSurfaceOnTop()); - mapRenderer = new GLSurfaceViewMapRenderer(getContext(), glSurfaceView) { + mapRenderer = new GLSurfaceViewMapRenderer(getContext(), glSurfaceView, options.getLocalIdeographFontFamily()) { @Override public void onSurfaceCreated(GL10 gl, EGLConfig config) { MapView.this.post(new Runnable() { diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapboxMapOptions.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapboxMapOptions.java index f26e0b9d3..48c83628d 100644 --- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapboxMapOptions.java +++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapboxMapOptions.java @@ -82,6 +82,7 @@ public class MapboxMapOptions implements Parcelable { private float myLocationAccuracyThreshold; private boolean prefetchesTiles = true; private boolean zMediaOverlay = false; + private String localIdeographFontFamily; private String apiBaseUrl; @@ -157,6 +158,7 @@ public class MapboxMapOptions implements Parcelable { textureMode = in.readByte() != 0; prefetchesTiles = in.readByte() != 0; zMediaOverlay = in.readByte() != 0; + localIdeographFontFamily = in.readString(); } static Bitmap getBitmapFromDrawable(Drawable drawable) { @@ -304,6 +306,8 @@ public class MapboxMapOptions implements Parcelable { typedArray.getBoolean(R.styleable.mapbox_MapView_mapbox_enableTilePrefetch, true)); mapboxMapOptions.renderSurfaceOnTop( typedArray.getBoolean(R.styleable.mapbox_MapView_mapbox_enableZMediaOverlay, false)); + mapboxMapOptions.localIdeographFontFamily( + typedArray.getString(R.styleable.mapbox_MapView_mapbox_localIdeographFontFamily)); } finally { typedArray.recycle(); } @@ -733,6 +737,18 @@ public class MapboxMapOptions implements Parcelable { return this; } + /** + * Set the font-family for generating glyphs locally for ideographs in the ‘CJK Unified Ideographs’ + * and ‘Hangul Syllables’ ranges. + * + * @param fontFamily font family for local ideograph generation. + * @return This + */ + public MapboxMapOptions localIdeographFontFamily(String fontFamily) { + this.localIdeographFontFamily = fontFamily; + return this; + } + /** * Check whether tile pre-fetching is enabled. * @@ -1079,6 +1095,16 @@ public class MapboxMapOptions implements Parcelable { return textureMode; } + /** + * Returns the font-family for locally overriding generation of glyphs in the + * ‘CJK Unified Ideographs’ and ‘Hangul Syllables’ ranges. + * + * @return Local ideograph font family name. + */ + public String getLocalIdeographFontFamily() { + return localIdeographFontFamily; + } + public static final Parcelable.Creator CREATOR = new Parcelable.Creator() { public MapboxMapOptions createFromParcel(Parcel in) { return new MapboxMapOptions(in); @@ -1145,6 +1171,7 @@ public class MapboxMapOptions implements Parcelable { dest.writeByte((byte) (textureMode ? 1 : 0)); dest.writeByte((byte) (prefetchesTiles ? 1 : 0)); dest.writeByte((byte) (zMediaOverlay ? 1 : 0)); + dest.writeString(localIdeographFontFamily); } @Override @@ -1274,6 +1301,9 @@ public class MapboxMapOptions implements Parcelable { if (zMediaOverlay != options.zMediaOverlay) { return false; } + if (localIdeographFontFamily != options.localIdeographFontFamily) { + return false; + } return false; } @@ -1323,6 +1353,7 @@ public class MapboxMapOptions implements Parcelable { result = 31 * result + (style != null ? style.hashCode() : 0); result = 31 * result + (prefetchesTiles ? 1 : 0); result = 31 * result + (zMediaOverlay ? 1 : 0); + result = 31 * result + (localIdeographFontFamily != null ? localIdeographFontFamily.hashCode() : 0); return result; } } diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/renderer/MapRenderer.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/renderer/MapRenderer.java index 2baff473e..fcee5bd17 100644 --- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/renderer/MapRenderer.java +++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/renderer/MapRenderer.java @@ -23,14 +23,13 @@ public abstract class MapRenderer implements MapRendererScheduler { private MapboxMap.OnFpsChangedListener onFpsChangedListener; - public MapRenderer(Context context) { + public MapRenderer(Context context, String localIdeographFontFamily) { FileSource fileSource = FileSource.getInstance(context); float pixelRatio = context.getResources().getDisplayMetrics().density; String programCacheDir = context.getCacheDir().getAbsolutePath(); - // Initialise native peer - nativeInitialize(this, fileSource, pixelRatio, programCacheDir); + nativeInitialize(this, fileSource, pixelRatio, programCacheDir, localIdeographFontFamily); } public void onStart() { @@ -112,7 +111,8 @@ public abstract class MapRenderer implements MapRendererScheduler { private native void nativeInitialize(MapRenderer self, FileSource fileSource, float pixelRatio, - String programCacheDir); + String programCacheDir, + String localIdeographFontFamily); @CallSuper @Override diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/renderer/glsurfaceview/GLSurfaceViewMapRenderer.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/renderer/glsurfaceview/GLSurfaceViewMapRenderer.java index d98e4d06a..7bc56475c 100644 --- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/renderer/glsurfaceview/GLSurfaceViewMapRenderer.java +++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/renderer/glsurfaceview/GLSurfaceViewMapRenderer.java @@ -21,8 +21,8 @@ public class GLSurfaceViewMapRenderer extends MapRenderer implements GLSurfaceVi private final GLSurfaceView glSurfaceView; - public GLSurfaceViewMapRenderer(Context context, GLSurfaceView glSurfaceView) { - super(context); + public GLSurfaceViewMapRenderer(Context context, GLSurfaceView glSurfaceView, String localIdeographFontFamily) { + super(context, localIdeographFontFamily); this.glSurfaceView = glSurfaceView; glSurfaceView.setEGLContextClientVersion(2); glSurfaceView.setEGLConfigChooser(new EGLConfigChooser()); diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/renderer/textureview/TextureViewMapRenderer.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/renderer/textureview/TextureViewMapRenderer.java index 397904b1f..dcc95217f 100644 --- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/renderer/textureview/TextureViewMapRenderer.java +++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/renderer/textureview/TextureViewMapRenderer.java @@ -24,8 +24,10 @@ public class TextureViewMapRenderer extends MapRenderer { * @param context the current Context * @param textureView the TextureView */ - public TextureViewMapRenderer(@NonNull Context context, @NonNull TextureView textureView) { - super(context); + public TextureViewMapRenderer(@NonNull Context context, + @NonNull TextureView textureView, + String localIdeographFontFamily) { + super(context, localIdeographFontFamily); renderThread = new TextureViewRenderThread(textureView, this); renderThread.start(); } diff --git a/platform/android/MapboxGLAndroidSDK/src/main/res-public/values/public.xml b/platform/android/MapboxGLAndroidSDK/src/main/res-public/values/public.xml index f406f4d04..412d8c5d9 100644 --- a/platform/android/MapboxGLAndroidSDK/src/main/res-public/values/public.xml +++ b/platform/android/MapboxGLAndroidSDK/src/main/res-public/values/public.xml @@ -11,6 +11,7 @@ + diff --git a/platform/android/MapboxGLAndroidSDK/src/main/res/values/attrs.xml b/platform/android/MapboxGLAndroidSDK/src/main/res/values/attrs.xml index 2a4c2fe74..97adce8a4 100644 --- a/platform/android/MapboxGLAndroidSDK/src/main/res/values/attrs.xml +++ b/platform/android/MapboxGLAndroidSDK/src/main/res/values/attrs.xml @@ -5,6 +5,7 @@ + diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/AndroidManifest.xml b/platform/android/MapboxGLAndroidSDKTestApp/src/main/AndroidManifest.xml index ee26f39f5..6f311788b 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/AndroidManifest.xml +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/AndroidManifest.xml @@ -367,9 +367,10 @@ android:name="android.support.PARENT_ACTIVITY" android:value=".activity.FeatureOverviewActivity"/> - + @@ -377,9 +378,10 @@ android:name="android.support.PARENT_ACTIVITY" android:value=".activity.FeatureOverviewActivity"/> - + @@ -387,9 +389,10 @@ android:name="android.support.PARENT_ACTIVITY" android:value=".activity.FeatureOverviewActivity"/> - + @@ -586,8 +589,8 @@ + android:description="@string/description_animated_image_source" + android:label="@string/activity_animated_image_source"> @@ -720,36 +723,51 @@ android:name="android.support.PARENT_ACTIVITY" android:value=".activity.FeatureOverviewActivity"/> - + - + - + - + + + + + + + + + + diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/values/descriptions.xml b/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/values/descriptions.xml index 33d963871..7acd8b1ef 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/values/descriptions.xml +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/values/descriptions.xml @@ -67,4 +67,5 @@ Use TextureView to render the map Resize a map rendered on a TextureView Animate a map rendered on a TextureView + Suzhou using Droid Sans for Chinese glyphs \ No newline at end of file diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/values/titles.xml b/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/values/titles.xml index b90cedc51..c4d13e106 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/values/titles.xml +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/values/titles.xml @@ -67,4 +67,6 @@ TextureView debug TextureView resize TextureView animation + Grid Source + Local CJK glyph generation \ No newline at end of file diff --git a/platform/android/src/map_renderer.cpp b/platform/android/src/map_renderer.cpp index 36e8142bf..2440ac93e 100644 --- a/platform/android/src/map_renderer.cpp +++ b/platform/android/src/map_renderer.cpp @@ -16,10 +16,12 @@ namespace android { MapRenderer::MapRenderer(jni::JNIEnv& _env, jni::Object obj, jni::Object _fileSource, jni::jfloat pixelRatio_, - jni::String programCacheDir_) + jni::String programCacheDir_, + jni::String localIdeographFontFamily_) : javaPeer(SeizeGenericWeakRef(_env, jni::Object(jni::NewWeakGlobalRef(_env, obj.Get()).release()))), pixelRatio(pixelRatio_) , fileSource(FileSource::getDefaultFileSource(_env, _fileSource)) , programCacheDir(jni::Make(_env, programCacheDir_)) + , localIdeographFontFamily(localIdeographFontFamily_ == nullptr ? optional{} : jni::Make(_env, localIdeographFontFamily_ )) , threadPool(sharedThreadPool()) , mailbox(std::make_shared(*this)) { } @@ -145,7 +147,7 @@ void MapRenderer::onSurfaceCreated(JNIEnv&) { std::lock_guard lock(initialisationMutex); // The android system will have already destroyed the underlying - // GL resources if this is not the first intialization and an + // GL resources if this is not the first initialization and an // attempt to clean them up will fail if (backend) backend->markContextLost(); if (renderer) renderer->markContextLost(); @@ -157,7 +159,7 @@ void MapRenderer::onSurfaceCreated(JNIEnv&) { // Create the new backend and renderer backend = std::make_unique(); renderer = std::make_unique(*backend, pixelRatio, fileSource, *threadPool, - GLContextMode::Unique, programCacheDir); + GLContextMode::Unique, programCacheDir, localIdeographFontFamily); rendererRef = std::make_unique>(*renderer, mailbox); // Set the observer on the new Renderer implementation @@ -184,7 +186,7 @@ void MapRenderer::registerNative(jni::JNIEnv& env) { // Register the peer jni::RegisterNativePeer(env, MapRenderer::javaClass, "nativePtr", - std::make_unique, jni::Object, jni::jfloat, jni::String>, + std::make_unique, jni::Object, jni::jfloat, jni::String, jni::String>, "nativeInitialize", "finalize", METHOD(&MapRenderer::render, "nativeRender"), METHOD(&MapRenderer::onSurfaceCreated, diff --git a/platform/android/src/map_renderer.hpp b/platform/android/src/map_renderer.hpp index 0d614912a..c36357af7 100644 --- a/platform/android/src/map_renderer.hpp +++ b/platform/android/src/map_renderer.hpp @@ -48,7 +48,8 @@ public: jni::Object, jni::Object, jni::jfloat pixelRatio, - jni::String programCacheDir); + jni::String programCacheDir, + jni::String localIdeographFontFamily); ~MapRenderer() override; @@ -103,6 +104,7 @@ private: float pixelRatio; DefaultFileSource& fileSource; std::string programCacheDir; + optional localIdeographFontFamily; std::shared_ptr threadPool; std::shared_ptr mailbox; From d80e71bf38f752a153dbd47944051151bf1d9772 Mon Sep 17 00:00:00 2001 From: Tobrun Date: Tue, 19 Dec 2017 06:39:40 +0100 Subject: [PATCH 59/92] [android] - remove startup flash from fragment, rework OnMapReady callback for multiple listeners (#10717) --- .../mapbox/mapboxsdk/maps/MapFragment.java | 30 ++++++++++++++----- .../mapboxsdk/maps/SupportMapFragment.java | 30 ++++++++++++++----- 2 files changed, 44 insertions(+), 16 deletions(-) diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapFragment.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapFragment.java index 01c6da497..0c11a4220 100644 --- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapFragment.java +++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapFragment.java @@ -11,6 +11,9 @@ import android.view.ViewGroup; import com.mapbox.mapboxsdk.utils.MapFragmentUtils; +import java.util.ArrayList; +import java.util.List; + /** * Fragment wrapper around a map view. *

@@ -25,10 +28,11 @@ import com.mapbox.mapboxsdk.utils.MapFragmentUtils; * * @see #getMapAsync(OnMapReadyCallback) */ -public final class MapFragment extends Fragment { +public final class MapFragment extends Fragment implements OnMapReadyCallback { + private final List mapReadyCallbackList = new ArrayList<>(); + private MapboxMap mapboxMap; private MapView map; - private OnMapReadyCallback onMapReadyCallback; /** * Creates a default MapFragment instance @@ -63,7 +67,9 @@ public final class MapFragment extends Fragment { public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { super.onCreateView(inflater, container, savedInstanceState); Context context = inflater.getContext(); - return map = new MapView(context, MapFragmentUtils.resolveArgs(context, getArguments())); + map = new MapView(context, MapFragmentUtils.resolveArgs(context, getArguments())); + map.setVisibility(View.INVISIBLE); + return map; } /** @@ -76,9 +82,16 @@ public final class MapFragment extends Fragment { public void onViewCreated(View view, Bundle savedInstanceState) { super.onViewCreated(view, savedInstanceState); map.onCreate(savedInstanceState); - if (onMapReadyCallback != null) { - map.getMapAsync(onMapReadyCallback); + map.getMapAsync(this); + } + + @Override + public void onMapReady(MapboxMap mapboxMap) { + this.mapboxMap = mapboxMap; + for (OnMapReadyCallback onMapReadyCallback : mapReadyCallbackList) { + onMapReadyCallback.onMapReady(mapboxMap); } + map.setVisibility(View.VISIBLE); } /** @@ -144,6 +157,7 @@ public final class MapFragment extends Fragment { public void onDestroyView() { super.onDestroyView(); map.onDestroy(); + mapReadyCallbackList.clear(); } /** @@ -152,10 +166,10 @@ public final class MapFragment extends Fragment { * @param onMapReadyCallback The callback to be invoked. */ public void getMapAsync(@NonNull final OnMapReadyCallback onMapReadyCallback) { - if (map == null) { - this.onMapReadyCallback = onMapReadyCallback; + if (mapboxMap == null) { + mapReadyCallbackList.add(onMapReadyCallback); } else { - map.getMapAsync(onMapReadyCallback); + onMapReadyCallback.onMapReady(mapboxMap); } } } diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/SupportMapFragment.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/SupportMapFragment.java index 6c90cd95e..c072ec823 100644 --- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/SupportMapFragment.java +++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/SupportMapFragment.java @@ -11,6 +11,9 @@ import android.view.ViewGroup; import com.mapbox.mapboxsdk.utils.MapFragmentUtils; +import java.util.ArrayList; +import java.util.List; + /** * Support Fragment wrapper around a map view. *

@@ -25,10 +28,11 @@ import com.mapbox.mapboxsdk.utils.MapFragmentUtils; * * @see #getMapAsync(OnMapReadyCallback) */ -public class SupportMapFragment extends Fragment { +public class SupportMapFragment extends Fragment implements OnMapReadyCallback { + private final List mapReadyCallbackList = new ArrayList<>(); + private MapboxMap mapboxMap; private MapView map; - private OnMapReadyCallback onMapReadyCallback; /** * Creates a default MapFragment instance @@ -63,7 +67,9 @@ public class SupportMapFragment extends Fragment { public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { super.onCreateView(inflater, container, savedInstanceState); Context context = inflater.getContext(); - return map = new MapView(context, MapFragmentUtils.resolveArgs(context, getArguments())); + map = new MapView(context, MapFragmentUtils.resolveArgs(context, getArguments())); + map.setVisibility(View.INVISIBLE); + return map; } /** @@ -76,9 +82,16 @@ public class SupportMapFragment extends Fragment { public void onViewCreated(View view, Bundle savedInstanceState) { super.onViewCreated(view, savedInstanceState); map.onCreate(savedInstanceState); - if (onMapReadyCallback != null) { - map.getMapAsync(onMapReadyCallback); + map.getMapAsync(this); + } + + @Override + public void onMapReady(MapboxMap mapboxMap) { + this.mapboxMap = mapboxMap; + for (OnMapReadyCallback onMapReadyCallback : mapReadyCallbackList) { + onMapReadyCallback.onMapReady(mapboxMap); } + map.setVisibility(View.VISIBLE); } /** @@ -144,6 +157,7 @@ public class SupportMapFragment extends Fragment { public void onDestroyView() { super.onDestroyView(); map.onDestroy(); + mapReadyCallbackList.clear(); } /** @@ -152,10 +166,10 @@ public class SupportMapFragment extends Fragment { * @param onMapReadyCallback The callback to be invoked. */ public void getMapAsync(@NonNull final OnMapReadyCallback onMapReadyCallback) { - if (map == null) { - this.onMapReadyCallback = onMapReadyCallback; + if (mapboxMap == null) { + mapReadyCallbackList.add(onMapReadyCallback); } else { - map.getMapAsync(onMapReadyCallback); + onMapReadyCallback.onMapReady(mapboxMap); } } } From db6eaa0c348026c6afa74744a0433ccb41fe7b83 Mon Sep 17 00:00:00 2001 From: Tobrun Date: Tue, 19 Dec 2017 09:20:52 +0100 Subject: [PATCH 60/92] [android] - use default icon when compass icon fails to decode (#10694) --- .../src/main/java/com/mapbox/mapboxsdk/maps/UiSettings.java | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/UiSettings.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/UiSettings.java index e71d509fc..c119d869b 100644 --- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/UiSettings.java +++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/UiSettings.java @@ -191,6 +191,12 @@ public final class UiSettings { } private Drawable decode(byte[] bitmap) { + if (bitmap == null) { + // return default icon + return compassView.getResources().getDrawable(R.drawable.mapbox_compass_icon); + } + + // try decoding saved bitmap Bitmap compass = BitmapFactory.decodeByteArray(bitmap, 0, bitmap.length); return new BitmapDrawable(compassView.getResources(), compass); } From c15c6edce9452612fcfb155d90b58aeb38a7b8d8 Mon Sep 17 00:00:00 2001 From: Langston Smith Date: Mon, 4 Dec 2017 08:19:47 -0800 Subject: [PATCH 61/92] Android SDK renaming (#10609) * changes in various markdown files * more tweaks * Updated attribution title --- INSTALL.md | 4 ++-- platform/android/CHANGELOG.md | 2 +- platform/android/MapboxGLAndroidSDK/gradle.properties | 2 +- .../MapboxGLAndroidSDK/src/main/res/values/strings.xml | 2 +- platform/android/README.md | 4 ++-- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/INSTALL.md b/INSTALL.md index 78c5a0693..fb619770a 100644 --- a/INSTALL.md +++ b/INSTALL.md @@ -1,8 +1,8 @@ # Building & Developing Mapbox GL Native from Source **Just trying to use Mapbox GL Native? You don't need to read this stuff! We -provide [easy-to-install, prebuilt versions of the Mapbox SDKs for iOS and Android -that you can download instantly and get started with fast](https://www.mapbox.com/mobile/).** +provide [easy-to-install, prebuilt versions of the Mapbox Maps SDKs for iOS and Android +that you can download instantly and get started with fast](https://www.mapbox.com/install/).** Still with us? These are the instructions you'll need to build Mapbox GL Native from source on a variety of platforms and set up a development environment. diff --git a/platform/android/CHANGELOG.md b/platform/android/CHANGELOG.md index 28ab1e8dd..352cfa9d2 100644 --- a/platform/android/CHANGELOG.md +++ b/platform/android/CHANGELOG.md @@ -1,4 +1,4 @@ -# Changelog for Mapbox Android SDK +# Changelog for the Mapbox Maps SDK for Android Mapbox welcomes participation and contributions from everyone. If you'd like to do so please see the [`Contributing Guide`](https://github.com/mapbox/mapbox-gl-native/blob/master/CONTRIBUTING.md) first to get started. diff --git a/platform/android/MapboxGLAndroidSDK/gradle.properties b/platform/android/MapboxGLAndroidSDK/gradle.properties index 478475766..f1257f346 100644 --- a/platform/android/MapboxGLAndroidSDK/gradle.properties +++ b/platform/android/MapboxGLAndroidSDK/gradle.properties @@ -11,7 +11,7 @@ POM_LICENCE_URL=http://www.apache.org/licenses/LICENSE-2.0.txt POM_LICENCE_DIST=repo POM_DEVELOPER_ID=mapbox POM_DEVELOPER_NAME=Mapbox -POM_NAME=Mapbox Android SDK +POM_NAME=Mapbox Maps SDK for Android POM_ARTIFACT_ID=mapbox-android-sdk POM_PACKAGING=aar diff --git a/platform/android/MapboxGLAndroidSDK/src/main/res/values/strings.xml b/platform/android/MapboxGLAndroidSDK/src/main/res/values/strings.xml index 65fb3e14a..79c2c8d69 100644 --- a/platform/android/MapboxGLAndroidSDK/src/main/res/values/strings.xml +++ b/platform/android/MapboxGLAndroidSDK/src/main/res/values/strings.xml @@ -4,7 +4,7 @@ Attribution icon. Activate to show attribution dialog. Location View. This shows your location on the map. Showing a Map created with Mapbox. Scroll by dragging two fingers. Zoom by pinching two fingers. - Mapbox Android SDK + Mapbox Maps SDK for Android Make Mapbox Maps Better You are helping to make OpenStreetMap and Mapbox maps better by contributing anonymous usage data. Agree diff --git a/platform/android/README.md b/platform/android/README.md index bd95bdf7f..3787ff85f 100644 --- a/platform/android/README.md +++ b/platform/android/README.md @@ -1,4 +1,4 @@ -# [Mapbox Android SDK](https://www.mapbox.com/android-sdk/) +# [Mapbox Maps SDK for Android](https://www.mapbox.com/android-sdk/) [![Circle CI build status](https://circleci.com/gh/mapbox/mapbox-gl-native.svg?style=shield)](https://circleci.com/gh/mapbox/workflows/mapbox-gl-native/tree/master) @@ -10,7 +10,7 @@ Alright. So, actually, you may be in the wrong place. From here on in, this READ **To view our current API documentation, see our [JavaDoc](https://www.mapbox.com/android-sdk/api).** -**To install and use the Mapbox Android SDK in an application, see the [Mapbox Android SDK website](https://www.mapbox.com/android-sdk/).** +**To install and use the Mapbox Maps SDK for Android in an application, see the [Mapbox Maps SDK for Android website](https://www.mapbox.com/install/android/).** [![](https://www.mapbox.com/android-sdk/images/splash.png)](https://www.mapbox.com/android-sdk/) From f242227a677880298429b26b1e6fc3a2d33a046f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Minh=20Nguy=E1=BB=85n?= Date: Mon, 18 Dec 2017 12:49:58 -0800 Subject: [PATCH 62/92] [android] Updated Spanish, Vietnamese translations --- .../MapboxGLAndroidSDK/src/main/res/values-es/strings.xml | 5 +++-- .../MapboxGLAndroidSDK/src/main/res/values-vi/strings.xml | 5 +++-- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/platform/android/MapboxGLAndroidSDK/src/main/res/values-es/strings.xml b/platform/android/MapboxGLAndroidSDK/src/main/res/values-es/strings.xml index 92c055223..984464238 100644 --- a/platform/android/MapboxGLAndroidSDK/src/main/res/values-es/strings.xml +++ b/platform/android/MapboxGLAndroidSDK/src/main/res/values-es/strings.xml @@ -4,12 +4,13 @@ �cono de atribución. Actívalo para mostrar el diálogo de atribución. Vista de ubicación. Muestra tu ubicación en el mapa. Se está mostrando un mapa creado con Mapbox. Arrastra dos dedos para desplazarte o pellizca para acercar. - Mapbox Android SDK + Mapbox Maps SDK para Android Ayúdanos a mejorar los mapas de Mapbox Gracias a tu contribución de datos anónimos de uso, ayudas a mejorar OpenStreetMap y Mapbox. Aceptar Rechazar Más información + No puede abrir la página Web porque no hay un navegador Web en el dispositivo. El parámetro OfflineRegionDefinition que se ingresó no coincide con los límites mundiales: %s - + Ajustes de telemetría diff --git a/platform/android/MapboxGLAndroidSDK/src/main/res/values-vi/strings.xml b/platform/android/MapboxGLAndroidSDK/src/main/res/values-vi/strings.xml index a0cad6487..77e72a4db 100644 --- a/platform/android/MapboxGLAndroidSDK/src/main/res/values-vi/strings.xml +++ b/platform/android/MapboxGLAndroidSDK/src/main/res/values-vi/strings.xml @@ -4,12 +4,13 @@ Biểu tượng ghi công. Kích hoạt để xem hộp thoại ghi công. Cái chỉ vị trí. Cái này chỉ vị trí của bạn trên bản đồ. �ang xem bản đồ được xây dựng dùng Mapbox. Kéo hai ngón tay để cuộn. Chụm các ngón tay lại để phóng to. Tách các ngón tay ra để thu nh�. - Mapbox Android SDK + Mapbox Maps SDK cho Android Cải tiến các Bản đồ Mapbox Bạn đang giúp cải tiến các bản đồ OpenStreetMap và Mapbox bằng cách đóng góp dữ liệu vô danh hóa v� cách sử dụng. �ồng ý Phản đối Thông tin thêm + Không thể mở trang Web vì thiết bị thiếu trình duyệt. OfflineRegionDefinition được cung cấp không vừa thế giới: %s - + Thiết lập Trình viễn trắc From af52538a81768977648c9d95190ba8c12e28f78a Mon Sep 17 00:00:00 2001 From: Tobrun Date: Tue, 19 Dec 2017 19:38:11 +0100 Subject: [PATCH 63/92] Saving/restoring MyLocationViewSettings (#10746) (#10748) [android] saving/restoring MyLocationViewSettings, updated BitmapUtils --- .../mapboxsdk/constants/MapboxConstants.java | 11 ++++ .../com/mapbox/mapboxsdk/maps/MapboxMap.java | 2 + .../mapboxsdk/maps/MapboxMapOptions.java | 23 ++------ .../com/mapbox/mapboxsdk/maps/UiSettings.java | 28 ++------- .../maps/widgets/MyLocationViewSettings.java | 58 +++++++++++++++++++ .../mapbox/mapboxsdk/utils/BitmapUtils.java | 53 +++++++++++++++++ .../userlocation/MyLocationTintActivity.java | 2 +- 7 files changed, 134 insertions(+), 43 deletions(-) diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/constants/MapboxConstants.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/constants/MapboxConstants.java index fc448ccf7..3b35df4f4 100644 --- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/constants/MapboxConstants.java +++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/constants/MapboxConstants.java @@ -135,4 +135,15 @@ public class MapboxConstants { public static final String STATE_ATTRIBUTION_ENABLED = "mapbox_atrrEnabled"; public static final String STATE_LOCATION_CHANGE_ANIMATION_ENABLED = "mapbox_locationChangeAnimationEnabled"; public static final String STATE_USING_CUSTOM_LOCATION_SOURCE = "mapbox_usingCustomLocationSource"; + public static final String STATE_LOCATION_VIEW_ENABLED = "mapbox_locViewEnabled"; + public static final String STATE_LOCATION_VIEW_FOREGROUND_DRAWABLE = "mapbox_locViewForegroundDrawable"; + public static final String STATE_LOCATION_VIEW_FOREGROUND_BEARING_DRAWABLE = "mapbox_locViewBearingDrawable"; + public static final String STATE_LOCATION_VIEW_FOREGROUND_TINT_COLOR = "mapbox_locViewForegroundTintColor"; + public static final String STATE_LOCATION_VIEW_BACKGROUND_DRAWABLE = "mapbox_locViewBackgroundDrawable"; + public static final String STATE_LOCATION_VIEW_BACKGROUND_OFFSET = "mapbox_locViewBackgroundOffset"; + public static final String STATE_LOCATION_VIEW_BACKGROUND_TINT_COLOR = "mapbox_locViewBackgroundTintColor"; + public static final String STATE_LOCATION_VIEW_ACCURACY_ALPHA = "mapbox_locViewAccuracyAlpha"; + public static final String STATE_LOCATION_VIEW_ACCURACY_TINT_COLOR = "mapbox_locViewAccuracyTintColor"; + public static final String STATE_LOCATION_VIEW_ACCURACY_THRESHOLD = "mapbox_locViewAccuracyThreshold"; + public static final String STATE_LOCATION_VIEW_PADDING = "mapbox_locViewPadding"; } diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapboxMap.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapboxMap.java index c9bccab07..ad5a5a4c4 100644 --- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapboxMap.java +++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapboxMap.java @@ -136,6 +136,7 @@ public final class MapboxMap { outState.putString(MapboxConstants.STATE_STYLE_URL, nativeMapView.getStyleUrl()); trackingSettings.onSaveInstanceState(outState); uiSettings.onSaveInstanceState(outState); + myLocationViewSettings.onSaveInstanceState(outState); } /** @@ -146,6 +147,7 @@ public final class MapboxMap { void onRestoreInstanceState(Bundle savedInstanceState) { final CameraPosition cameraPosition = savedInstanceState.getParcelable(MapboxConstants.STATE_CAMERA_POSITION); + myLocationViewSettings.onRestoreInstanceState(savedInstanceState); uiSettings.onRestoreInstanceState(savedInstanceState); trackingSettings.onRestoreInstanceState(savedInstanceState); diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapboxMapOptions.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapboxMapOptions.java index 48c83628d..2719d7f01 100644 --- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapboxMapOptions.java +++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapboxMapOptions.java @@ -3,7 +3,6 @@ package com.mapbox.mapboxsdk.maps; import android.content.Context; import android.content.res.TypedArray; import android.graphics.Bitmap; -import android.graphics.Canvas; import android.graphics.drawable.BitmapDrawable; import android.graphics.drawable.Drawable; import android.os.Parcel; @@ -20,6 +19,7 @@ import android.view.Gravity; import com.mapbox.mapboxsdk.R; import com.mapbox.mapboxsdk.camera.CameraPosition; import com.mapbox.mapboxsdk.constants.MapboxConstants; +import com.mapbox.mapboxsdk.utils.BitmapUtils; import com.mapbox.mapboxsdk.utils.ColorUtils; import java.util.Arrays; @@ -161,19 +161,6 @@ public class MapboxMapOptions implements Parcelable { localIdeographFontFamily = in.readString(); } - static Bitmap getBitmapFromDrawable(Drawable drawable) { - if (drawable instanceof BitmapDrawable) { - return ((BitmapDrawable) drawable).getBitmap(); - } else { - Bitmap bitmap = Bitmap.createBitmap(drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight(), - Bitmap.Config.ARGB_8888); - Canvas canvas = new Canvas(bitmap); - drawable.setBounds(0, 0, canvas.getWidth(), canvas.getHeight()); - drawable.draw(canvas); - return bitmap; - } - } - /** * Creates a MapboxMapsOptions from the attribute set.s * @@ -1130,7 +1117,7 @@ public class MapboxMapOptions implements Parcelable { dest.writeIntArray(compassMargins); dest.writeByte((byte) (fadeCompassFacingNorth ? 1 : 0)); dest.writeParcelable(compassImage != null - ? getBitmapFromDrawable(compassImage) : null, flags); + ? BitmapUtils.getBitmapFromDrawable(compassImage) : null, flags); dest.writeByte((byte) (logoEnabled ? 1 : 0)); dest.writeInt(logoGravity); @@ -1154,11 +1141,11 @@ public class MapboxMapOptions implements Parcelable { dest.writeByte((byte) (myLocationEnabled ? 1 : 0)); dest.writeParcelable(myLocationForegroundDrawable != null - ? getBitmapFromDrawable(myLocationForegroundDrawable) : null, flags); + ? BitmapUtils.getBitmapFromDrawable(myLocationForegroundDrawable) : null, flags); dest.writeParcelable(myLocationForegroundBearingDrawable != null - ? getBitmapFromDrawable(myLocationForegroundBearingDrawable) : null, flags); + ? BitmapUtils.getBitmapFromDrawable(myLocationForegroundBearingDrawable) : null, flags); dest.writeParcelable(myLocationBackgroundDrawable != null - ? getBitmapFromDrawable(myLocationBackgroundDrawable) : null, flags); + ? BitmapUtils.getBitmapFromDrawable(myLocationBackgroundDrawable) : null, flags); dest.writeInt(myLocationForegroundTintColor); dest.writeInt(myLocationBackgroundTintColor); dest.writeIntArray(myLocationBackgroundPadding); diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/UiSettings.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/UiSettings.java index c119d869b..084382855 100644 --- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/UiSettings.java +++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/UiSettings.java @@ -3,11 +3,8 @@ package com.mapbox.mapboxsdk.maps; import android.content.Context; import android.content.pm.PackageManager; import android.content.res.Resources; -import android.graphics.Bitmap; -import android.graphics.BitmapFactory; import android.graphics.Color; import android.graphics.PointF; -import android.graphics.drawable.BitmapDrawable; import android.graphics.drawable.Drawable; import android.os.Bundle; import android.support.annotation.ColorInt; @@ -24,10 +21,9 @@ import com.mapbox.mapboxsdk.R; import com.mapbox.mapboxsdk.camera.CameraPosition; import com.mapbox.mapboxsdk.constants.MapboxConstants; import com.mapbox.mapboxsdk.maps.widgets.CompassView; +import com.mapbox.mapboxsdk.utils.BitmapUtils; import com.mapbox.mapboxsdk.utils.ColorUtils; -import java.io.ByteArrayOutputStream; - /** * Settings for the user interface of a MapboxMap. To obtain this interface, call getUiSettings(). */ @@ -170,13 +166,7 @@ public final class UiSettings { outState.putInt(MapboxConstants.STATE_COMPASS_MARGIN_RIGHT, getCompassMarginRight()); outState.putBoolean(MapboxConstants.STATE_COMPASS_FADE_WHEN_FACING_NORTH, isCompassFadeWhenFacingNorth()); outState.putByteArray(MapboxConstants.STATE_COMPASS_IMAGE_BITMAP, - convert(MapboxMapOptions.getBitmapFromDrawable(getCompassImage()))); - } - - private byte[] convert(Bitmap resource) { - ByteArrayOutputStream stream = new ByteArrayOutputStream(); - resource.compress(Bitmap.CompressFormat.PNG, 100, stream); - return stream.toByteArray(); + BitmapUtils.getByteArrayFromDrawable(getCompassImage())); } private void restoreCompass(Bundle savedInstanceState) { @@ -187,18 +177,8 @@ public final class UiSettings { savedInstanceState.getInt(MapboxConstants.STATE_COMPASS_MARGIN_RIGHT), savedInstanceState.getInt(MapboxConstants.STATE_COMPASS_MARGIN_BOTTOM)); setCompassFadeFacingNorth(savedInstanceState.getBoolean(MapboxConstants.STATE_COMPASS_FADE_WHEN_FACING_NORTH)); - setCompassImage(decode(savedInstanceState.getByteArray(MapboxConstants.STATE_COMPASS_IMAGE_BITMAP))); - } - - private Drawable decode(byte[] bitmap) { - if (bitmap == null) { - // return default icon - return compassView.getResources().getDrawable(R.drawable.mapbox_compass_icon); - } - - // try decoding saved bitmap - Bitmap compass = BitmapFactory.decodeByteArray(bitmap, 0, bitmap.length); - return new BitmapDrawable(compassView.getResources(), compass); + setCompassImage(BitmapUtils.getDrawableFromByteArray( + compassView.getContext(), savedInstanceState.getByteArray(MapboxConstants.STATE_COMPASS_IMAGE_BITMAP))); } private void initialiseLogo(MapboxMapOptions options, Resources resources) { diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/widgets/MyLocationViewSettings.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/widgets/MyLocationViewSettings.java index a1d5b13b8..ec7c53e1d 100644 --- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/widgets/MyLocationViewSettings.java +++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/widgets/MyLocationViewSettings.java @@ -1,18 +1,22 @@ package com.mapbox.mapboxsdk.maps.widgets; import android.graphics.drawable.Drawable; +import android.os.Bundle; import android.support.annotation.ColorInt; import android.support.annotation.IntRange; import android.support.annotation.NonNull; import com.mapbox.mapboxsdk.camera.CameraPosition; +import com.mapbox.mapboxsdk.constants.MapboxConstants; import com.mapbox.mapboxsdk.constants.MyLocationTracking; import com.mapbox.mapboxsdk.maps.FocalPointChangeListener; import com.mapbox.mapboxsdk.maps.MapboxMapOptions; import com.mapbox.mapboxsdk.maps.Projection; +import com.mapbox.mapboxsdk.utils.BitmapUtils; /** * Settings to configure the visual appearance of the MyLocationView. + * * @deprecated use location layer plugin from * https://github.com/mapbox/mapbox-plugins-android/tree/master/plugins/locationlayer instead. */ @@ -100,6 +104,56 @@ public class MyLocationViewSettings { setAccuracyThreshold(options.getMyLocationAccuracyThreshold()); } + public void onSaveInstanceState(Bundle outState) { + outState.putBoolean(MapboxConstants.STATE_LOCATION_VIEW_ENABLED, isEnabled()); + outState.putByteArray( + MapboxConstants.STATE_LOCATION_VIEW_FOREGROUND_DRAWABLE, + BitmapUtils.getByteArrayFromDrawable(getForegroundDrawable()) + ); + outState.putByteArray( + MapboxConstants.STATE_LOCATION_VIEW_FOREGROUND_BEARING_DRAWABLE, + BitmapUtils.getByteArrayFromDrawable(getForegroundBearingDrawable()) + ); + outState.putInt(MapboxConstants.STATE_LOCATION_VIEW_FOREGROUND_TINT_COLOR, getForegroundTintColor()); + outState.putByteArray( + MapboxConstants.STATE_LOCATION_VIEW_BACKGROUND_DRAWABLE, + BitmapUtils.getByteArrayFromDrawable(getBackgroundDrawable()) + ); + outState.putIntArray(MapboxConstants.STATE_LOCATION_VIEW_BACKGROUND_OFFSET, getBackgroundOffset()); + outState.putInt(MapboxConstants.STATE_LOCATION_VIEW_BACKGROUND_TINT_COLOR, getBackgroundTintColor()); + outState.putInt(MapboxConstants.STATE_LOCATION_VIEW_ACCURACY_ALPHA, getAccuracyAlpha()); + outState.putInt(MapboxConstants.STATE_LOCATION_VIEW_ACCURACY_TINT_COLOR, getAccuracyTintColor()); + outState.putFloat(MapboxConstants.STATE_LOCATION_VIEW_ACCURACY_THRESHOLD, getAccuracyThreshold()); + outState.putIntArray(MapboxConstants.STATE_LOCATION_VIEW_PADDING, getPadding()); + } + + public void onRestoreInstanceState(@NonNull Bundle savedInstanceState) { + setEnabled(savedInstanceState.getBoolean(MapboxConstants.STATE_LOCATION_VIEW_ENABLED)); + setForegroundDrawable( + BitmapUtils.getDrawableFromByteArray( + myLocationView.getContext(), + savedInstanceState.getByteArray(MapboxConstants.STATE_LOCATION_VIEW_FOREGROUND_DRAWABLE) + ), + BitmapUtils.getDrawableFromByteArray( + myLocationView.getContext(), + savedInstanceState.getByteArray(MapboxConstants.STATE_LOCATION_VIEW_FOREGROUND_BEARING_DRAWABLE) + ) + ); + setForegroundTintColor(savedInstanceState.getInt(MapboxConstants.STATE_LOCATION_VIEW_FOREGROUND_TINT_COLOR)); + setBackgroundDrawable( + BitmapUtils.getDrawableFromByteArray( + myLocationView.getContext(), + savedInstanceState.getByteArray(MapboxConstants.STATE_LOCATION_VIEW_BACKGROUND_DRAWABLE) + ), + savedInstanceState.getIntArray(MapboxConstants.STATE_LOCATION_VIEW_BACKGROUND_OFFSET) + ); + setBackgroundTintColor(savedInstanceState.getInt(MapboxConstants.STATE_LOCATION_VIEW_BACKGROUND_TINT_COLOR)); + setAccuracyAlpha(savedInstanceState.getInt(MapboxConstants.STATE_LOCATION_VIEW_ACCURACY_ALPHA)); + setAccuracyTintColor(savedInstanceState.getInt(MapboxConstants.STATE_LOCATION_VIEW_ACCURACY_TINT_COLOR)); + setAccuracyThreshold(savedInstanceState.getFloat(MapboxConstants.STATE_LOCATION_VIEW_ACCURACY_THRESHOLD)); + setPadding(savedInstanceState.getIntArray(MapboxConstants.STATE_LOCATION_VIEW_PADDING)); + } + /** * Returns if the MyLocationView is enabled * @@ -246,6 +300,10 @@ public class MyLocationViewSettings { */ public void setPadding(int left, int top, int right, int bottom) { padding = new int[] {left, top, right, bottom}; + setPadding(padding); + } + + private void setPadding(int[] padding) { myLocationView.setContentPadding(padding); projection.invalidateContentPadding(padding); invalidateFocalPointForTracking(myLocationView); diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/utils/BitmapUtils.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/utils/BitmapUtils.java index af3a79539..765ca431d 100644 --- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/utils/BitmapUtils.java +++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/utils/BitmapUtils.java @@ -1,10 +1,16 @@ package com.mapbox.mapboxsdk.utils; +import android.content.Context; import android.graphics.Bitmap; +import android.graphics.BitmapFactory; import android.graphics.Canvas; +import android.graphics.drawable.BitmapDrawable; +import android.graphics.drawable.Drawable; import android.support.annotation.NonNull; import android.view.View; +import java.io.ByteArrayOutputStream; + /** * Utility class for creating bitmaps */ @@ -46,4 +52,51 @@ public class BitmapUtils { return result; } + /** + * Extract an underlying bitmap from a drawable + * @param drawable The source drawable + * @return The underlying bitmap + */ + public static Bitmap getBitmapFromDrawable(Drawable drawable) { + if (drawable instanceof BitmapDrawable) { + return ((BitmapDrawable) drawable).getBitmap(); + } else { + Bitmap bitmap = Bitmap.createBitmap(drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight(), + Bitmap.Config.ARGB_8888); + Canvas canvas = new Canvas(bitmap); + drawable.setBounds(0, 0, canvas.getWidth(), canvas.getHeight()); + drawable.draw(canvas); + return bitmap; + } + } + + /** + * Create a byte array out of drawable + * @param drawable The source drawable + * @return The byte array of source drawable + */ + public static byte[] getByteArrayFromDrawable(Drawable drawable) { + if (drawable == null) { + return null; + } + Bitmap bitmap = getBitmapFromDrawable(drawable); + ByteArrayOutputStream stream = new ByteArrayOutputStream(); + bitmap.compress(Bitmap.CompressFormat.PNG, 100, stream); + return stream.toByteArray(); + } + + /** + * Decode byte array to drawable object + * @param context Context to obtain {@link android.content.res.Resources} + * @param array The source byte array + * @return The drawable created from source byte array + */ + public static Drawable getDrawableFromByteArray(Context context, byte[] array) { + if (array == null) { + return null; + } + Bitmap compass = BitmapFactory.decodeByteArray(array, 0, array.length); + return new BitmapDrawable(context.getResources(), compass); + } + } diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/userlocation/MyLocationTintActivity.java b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/userlocation/MyLocationTintActivity.java index 44ee03088..9dc8c1a60 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/userlocation/MyLocationTintActivity.java +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/userlocation/MyLocationTintActivity.java @@ -43,7 +43,7 @@ public class MyLocationTintActivity extends BaseLocationActivity implements Loca mapboxMap = map; // enable location updates - toggleGps(!mapboxMap.isMyLocationEnabled()); + toggleGps(true); // add some padding final MyLocationViewSettings myLocationViewSettings = mapboxMap.getMyLocationViewSettings(); From 9ed3aeaee10e4c4e44bfe3967db5347576e0633e Mon Sep 17 00:00:00 2001 From: Chris Loer Date: Tue, 19 Dec 2017 12:35:31 -0800 Subject: [PATCH 64/92] [android] Tweak TinySDF docs to better describe font-family behavior. --- .../java/com/mapbox/mapboxsdk/maps/MapboxMapOptions.java | 5 ++++- .../java/com/mapbox/mapboxsdk/text/LocalGlyphRasterizer.java | 4 ++-- .../src/main/res/layout/activity_local_glyph.xml | 2 +- .../src/main/res/values/descriptions.xml | 2 +- 4 files changed, 8 insertions(+), 5 deletions(-) diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapboxMapOptions.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapboxMapOptions.java index 2719d7f01..34be95832 100644 --- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapboxMapOptions.java +++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapboxMapOptions.java @@ -725,9 +725,12 @@ public class MapboxMapOptions implements Parcelable { } /** - * Set the font-family for generating glyphs locally for ideographs in the ‘CJK Unified Ideographs’ + * Set the font family for generating glyphs locally for ideographs in the ‘CJK Unified Ideographs’ * and ‘Hangul Syllables’ ranges. * + * The font family argument is passed to {@link android.graphics.Typeface#create(String, int)}. + * Default system fonts are defined in '/system/etc/fonts.xml' + * * @param fontFamily font family for local ideograph generation. * @return This */ diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/text/LocalGlyphRasterizer.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/text/LocalGlyphRasterizer.java index 920a1270a..181d28191 100644 --- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/text/LocalGlyphRasterizer.java +++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/text/LocalGlyphRasterizer.java @@ -14,14 +14,14 @@ public class LocalGlyphRasterizer { /*** * Uses Android-native drawing code to rasterize a single glyph - * to a square @{link Bitmap} which can be returned to portable + * to a square {@link Bitmap} which can be returned to portable * code for transformation into a Signed Distance Field glyph. * * @param fontFamily Font family string to pass to Typeface.create * @param bold If true, use Typeface.BOLD option * @param glyphID 16-bit Unicode BMP codepoint to draw * - * @return Return a @{link Bitmap} to be displayed in the requested tile. + * @return Return a {@link Bitmap} to be displayed in the requested tile. */ @WorkerThread protected static Bitmap drawGlyphBitmap(String fontFamily, boolean bold, char glyphID) { diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/activity_local_glyph.xml b/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/activity_local_glyph.xml index 856dd2475..1f8bc93d2 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/activity_local_glyph.xml +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/activity_local_glyph.xml @@ -12,6 +12,6 @@ android:id="@id/mapView" android:layout_width="match_parent" android:layout_height="match_parent" - app:mapbox_localIdeographFontFamily="Droid Sans" /> + app:mapbox_localIdeographFontFamily="sans-serif" /> diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/values/descriptions.xml b/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/values/descriptions.xml index 7acd8b1ef..a13dd5d87 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/values/descriptions.xml +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/values/descriptions.xml @@ -67,5 +67,5 @@ Use TextureView to render the map Resize a map rendered on a TextureView Animate a map rendered on a TextureView - Suzhou using Droid Sans for Chinese glyphs + Suzhou using local sans-serif for Chinese glyphs \ No newline at end of file From 6b535f70cee3646a998bd439e6427724b0136bcc Mon Sep 17 00:00:00 2001 From: paczos Date: Thu, 14 Dec 2017 15:45:54 +0100 Subject: [PATCH 65/92] [android] added map touch listeners api based on lists --- .../mapboxsdk/maps/MapGestureDetector.java | 139 +++++++++++++++--- .../com/mapbox/mapboxsdk/maps/MapView.java | 48 +++++- .../com/mapbox/mapboxsdk/maps/MapboxMap.java | 126 +++++++++++++++- .../mapboxsdk/maps/MapTouchListenersTest.java | 95 ++++++++++++ 4 files changed, 372 insertions(+), 36 deletions(-) create mode 100644 platform/android/MapboxGLAndroidSDK/src/test/java/com/mapbox/mapboxsdk/maps/MapTouchListenersTest.java diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapGestureDetector.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapGestureDetector.java index 489199e42..6424de342 100644 --- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapGestureDetector.java +++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapGestureDetector.java @@ -26,6 +26,8 @@ import com.mapbox.services.android.telemetry.MapboxTelemetry; import com.mapbox.services.android.telemetry.utils.MathUtils; import com.mapbox.services.android.telemetry.utils.TelemetryUtils; +import java.util.concurrent.CopyOnWriteArrayList; + import static com.mapbox.mapboxsdk.maps.MapboxMap.OnCameraMoveStartedListener.REASON_API_GESTURE; /** @@ -43,16 +45,30 @@ final class MapGestureDetector { private final AnnotationManager annotationManager; private final CameraChangeDispatcher cameraChangeDispatcher; - private final GestureDetectorCompat gestureDetector; - private final ScaleGestureDetector scaleGestureDetector; - private final RotateGestureDetector rotateGestureDetector; - private final ShoveGestureDetector shoveGestureDetector; + private GestureDetectorCompat gestureDetector; + private ScaleGestureDetector scaleGestureDetector; + private RotateGestureDetector rotateGestureDetector; + private ShoveGestureDetector shoveGestureDetector; + // deprecated map touch API private MapboxMap.OnMapClickListener onMapClickListener; private MapboxMap.OnMapLongClickListener onMapLongClickListener; private MapboxMap.OnFlingListener onFlingListener; private MapboxMap.OnScrollListener onScrollListener; + // new map touch API + private final CopyOnWriteArrayList onMapClickListenerList + = new CopyOnWriteArrayList<>(); + + private final CopyOnWriteArrayList onMapLongClickListenerList + = new CopyOnWriteArrayList<>(); + + private final CopyOnWriteArrayList onFlingListenerList + = new CopyOnWriteArrayList<>(); + + private final CopyOnWriteArrayList onScrollListenerList + = new CopyOnWriteArrayList<>(); + private PointF focalPoint; private boolean twoTap; @@ -81,12 +97,14 @@ final class MapGestureDetector { this.cameraChangeDispatcher = cameraChangeDispatcher; // Touch gesture detectors - gestureDetector = new GestureDetectorCompat(context, new GestureListener()); - gestureDetector.setIsLongpressEnabled(true); - scaleGestureDetector = new ScaleGestureDetector(context, new ScaleGestureListener()); - ScaleGestureDetectorCompat.setQuickScaleEnabled(scaleGestureDetector, true); - rotateGestureDetector = new RotateGestureDetector(context, new RotateGestureListener()); - shoveGestureDetector = new ShoveGestureDetector(context, new ShoveGestureListener()); + if (context != null) { + gestureDetector = new GestureDetectorCompat(context, new GestureListener()); + gestureDetector.setIsLongpressEnabled(true); + scaleGestureDetector = new ScaleGestureDetector(context, new ScaleGestureListener()); + ScaleGestureDetectorCompat.setQuickScaleEnabled(scaleGestureDetector, true); + rotateGestureDetector = new RotateGestureDetector(context, new RotateGestureListener()); + shoveGestureDetector = new ShoveGestureDetector(context, new ShoveGestureListener()); + } } /** @@ -287,7 +305,6 @@ final class MapGestureDetector { return false; } - /** * Responsible for handling one finger gestures. */ @@ -355,10 +372,7 @@ final class MapGestureDetector { annotationManager.deselectMarkers(); } - // notify app of map click - if (onMapClickListener != null) { - onMapClickListener.onMapClick(projection.fromScreenLocation(tapPoint)); - } + notifyOnMapClickListeners(tapPoint); } MapboxTelemetry.getInstance().pushEvent(MapboxEventWrapper.buildMapClickEvent( @@ -370,9 +384,10 @@ final class MapGestureDetector { @Override public void onLongPress(MotionEvent motionEvent) { - if (onMapLongClickListener != null && !quickZoom) { - onMapLongClickListener.onMapLongClick( - projection.fromScreenLocation(new PointF(motionEvent.getX(), motionEvent.getY()))); + PointF longClickPoint = new PointF(motionEvent.getX(), motionEvent.getY()); + + if (!quickZoom) { + notifyOnMapLongClickListeners(longClickPoint); } } @@ -412,9 +427,7 @@ final class MapGestureDetector { // update transformation transform.moveBy(offsetX, offsetY, animationTime); - if (onFlingListener != null) { - onFlingListener.onFling(); - } + notifyOnFlingListeners(); return true; } @@ -449,13 +462,59 @@ final class MapGestureDetector { // Scroll the map transform.moveBy(-distanceX, -distanceY, 0 /*no duration*/); - if (onScrollListener != null) { - onScrollListener.onScroll(); - } + notifyOnScrollListeners(); return true; } } + void notifyOnMapClickListeners(PointF tapPoint) { + // deprecated API + if (onMapClickListener != null) { + onMapClickListener.onMapClick(projection.fromScreenLocation(tapPoint)); + } + + // new API + for (MapboxMap.OnMapClickListener listener : onMapClickListenerList) { + listener.onMapClick(projection.fromScreenLocation(tapPoint)); + } + } + + void notifyOnMapLongClickListeners(PointF longClickPoint) { + // deprecated API + if (onMapLongClickListener != null) { + onMapLongClickListener.onMapLongClick(projection.fromScreenLocation(longClickPoint)); + } + + // new API + for (MapboxMap.OnMapLongClickListener listener : onMapLongClickListenerList) { + listener.onMapLongClick(projection.fromScreenLocation(longClickPoint)); + } + } + + void notifyOnFlingListeners() { + // deprecated API + if (onFlingListener != null) { + onFlingListener.onFling(); + } + + // new API + for (MapboxMap.OnFlingListener listener : onFlingListenerList) { + listener.onFling(); + } + } + + void notifyOnScrollListeners() { + //deprecated API + if (onScrollListener != null) { + onScrollListener.onScroll(); + } + + // new API + for (MapboxMap.OnScrollListener listener : onScrollListenerList) { + listener.onScroll(); + } + } + /** * Responsible for handling two finger gestures and double-tap drag gestures. */ @@ -844,4 +903,36 @@ final class MapGestureDetector { void setOnScrollListener(MapboxMap.OnScrollListener onScrollListener) { this.onScrollListener = onScrollListener; } + + void addOnMapClickListener(MapboxMap.OnMapClickListener onMapClickListener) { + onMapClickListenerList.add(onMapClickListener); + } + + void removeOnMapClickListener(MapboxMap.OnMapClickListener onMapClickListener) { + onMapClickListenerList.remove(onMapClickListener); + } + + void addOnMapLongClickListener(MapboxMap.OnMapLongClickListener onMapLongClickListener) { + onMapLongClickListenerList.add(onMapLongClickListener); + } + + void removeOnMapLongClickListener(MapboxMap.OnMapLongClickListener onMapLongClickListener) { + onMapLongClickListenerList.remove(onMapLongClickListener); + } + + void addOnFlingListener(MapboxMap.OnFlingListener onFlingListener) { + onFlingListenerList.add(onFlingListener); + } + + void removeOnFlingListener(MapboxMap.OnFlingListener onFlingListener) { + onFlingListenerList.remove(onFlingListener); + } + + void addOnScrollListener(MapboxMap.OnScrollListener onScrollListener) { + onScrollListenerList.add(onScrollListener); + } + + void removeOnScrollListener(MapboxMap.OnScrollListener onScrollListener) { + onScrollListenerList.remove(onScrollListener); + } } diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapView.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapView.java index 80a3ce5bb..77d2ac0e2 100644 --- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapView.java +++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapView.java @@ -908,24 +908,64 @@ public class MapView extends FrameLayout { private class RegisterTouchListener implements MapboxMap.OnRegisterTouchListener { @Override - public void onRegisterMapClickListener(MapboxMap.OnMapClickListener listener) { + public void onSetMapClickListener(MapboxMap.OnMapClickListener listener) { mapGestureDetector.setOnMapClickListener(listener); } @Override - public void onRegisterMapLongClickListener(MapboxMap.OnMapLongClickListener listener) { + public void onAddMapClickListener(MapboxMap.OnMapClickListener listener) { + mapGestureDetector.addOnMapClickListener(listener); + } + + @Override + public void onRemoveMapClickListener(MapboxMap.OnMapClickListener listener) { + mapGestureDetector.removeOnMapClickListener(listener); + } + + @Override + public void onSetMapLongClickListener(MapboxMap.OnMapLongClickListener listener) { mapGestureDetector.setOnMapLongClickListener(listener); } @Override - public void onRegisterScrollListener(MapboxMap.OnScrollListener listener) { + public void onAddMapLongClickListener(MapboxMap.OnMapLongClickListener listener) { + mapGestureDetector.addOnMapLongClickListener(listener); + } + + @Override + public void onRemoveMapLongClickListener(MapboxMap.OnMapLongClickListener listener) { + mapGestureDetector.removeOnMapLongClickListener(listener); + } + + @Override + public void onSetScrollListener(MapboxMap.OnScrollListener listener) { mapGestureDetector.setOnScrollListener(listener); } @Override - public void onRegisterFlingListener(MapboxMap.OnFlingListener listener) { + public void onAddScrollListener(MapboxMap.OnScrollListener listener) { + mapGestureDetector.addOnScrollListener(listener); + } + + @Override + public void onRemoveScrollListener(MapboxMap.OnScrollListener listener) { + mapGestureDetector.removeOnScrollListener(listener); + } + + @Override + public void onSetFlingListener(MapboxMap.OnFlingListener listener) { mapGestureDetector.setOnFlingListener(listener); } + + @Override + public void onAddFlingListener(MapboxMap.OnFlingListener listener) { + mapGestureDetector.addOnFlingListener(listener); + } + + @Override + public void onRemoveFlingListener(MapboxMap.OnFlingListener listener) { + mapGestureDetector.removeOnFlingListener(listener); + } } private static class MapZoomControllerListener implements ZoomButtonsController.OnZoomListener { diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapboxMap.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapboxMap.java index ad5a5a4c4..4da2f63ee 100644 --- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapboxMap.java +++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapboxMap.java @@ -1897,9 +1897,34 @@ public final class MapboxMap { * * @param listener The callback that's invoked when the map is scrolled. * To unset the callback, use null. + * + * @deprecated Use {@link #addOnScrollListener(OnScrollListener)} instead. */ + @Deprecated public void setOnScrollListener(@Nullable OnScrollListener listener) { - onRegisterTouchListener.onRegisterScrollListener(listener); + onRegisterTouchListener.onSetScrollListener(listener); + } + + /** + * Adds a callback that's invoked when the map is scrolled. + * + * @param listener The callback that's invoked when the map is scrolled. + * To unset the callback, use null. + * + */ + public void addOnScrollListener(@Nullable OnScrollListener listener) { + onRegisterTouchListener.onAddScrollListener(listener); + } + + /** + * Removes a callback that's invoked when the map is scrolled. + * + * @param listener The callback that's invoked when the map is scrolled. + * To unset the callback, use null. + * + */ + public void removeOnScrollListener(@Nullable OnScrollListener listener) { + onRegisterTouchListener.onRemoveScrollListener(listener); } /** @@ -1907,9 +1932,32 @@ public final class MapboxMap { * * @param listener The callback that's invoked when the map is flinged. * To unset the callback, use null. + * + * @deprecated Use {@link #addOnFlingListener(OnFlingListener)} instead. */ + @Deprecated public void setOnFlingListener(@Nullable OnFlingListener listener) { - onRegisterTouchListener.onRegisterFlingListener(listener); + onRegisterTouchListener.onSetFlingListener(listener); + } + + /** + * Adds a callback that's invoked when the map is flinged. + * + * @param listener The callback that's invoked when the map is flinged. + * To unset the callback, use null. + */ + public void addOnFlingListener(@Nullable OnFlingListener listener) { + onRegisterTouchListener.onAddFlingListener(listener); + } + + /** + * Removes a callback that's invoked when the map is flinged. + * + * @param listener The callback that's invoked when the map is flinged. + * To unset the callback, use null. + */ + public void removeOnFlingListener(@Nullable OnFlingListener listener) { + onRegisterTouchListener.onRemoveFlingListener(listener); } /** @@ -1917,9 +1965,32 @@ public final class MapboxMap { * * @param listener The callback that's invoked when the user clicks on the map view. * To unset the callback, use null. + * + * @deprecated Use {@link #addOnMapClickListener(OnMapClickListener)} instead. */ + @Deprecated public void setOnMapClickListener(@Nullable OnMapClickListener listener) { - onRegisterTouchListener.onRegisterMapClickListener(listener); + onRegisterTouchListener.onSetMapClickListener(listener); + } + + /** + * Adds a callback that's invoked when the user clicks on the map view. + * + * @param listener The callback that's invoked when the user clicks on the map view. + * To unset the callback, use null. + */ + public void addOnMapClickListener(@Nullable OnMapClickListener listener) { + onRegisterTouchListener.onAddMapClickListener(listener); + } + + /** + * Removes a callback that's invoked when the user clicks on the map view. + * + * @param listener The callback that's invoked when the user clicks on the map view. + * To unset the callback, use null. + */ + public void removeOnMapClickListener(@Nullable OnMapClickListener listener) { + onRegisterTouchListener.onRemoveMapClickListener(listener); } /** @@ -1927,9 +1998,32 @@ public final class MapboxMap { * * @param listener The callback that's invoked when the user long clicks on the map view. * To unset the callback, use null. + * + * @deprecated Use {@link #addOnMapLongClickListener(OnMapLongClickListener)} instead. */ + @Deprecated public void setOnMapLongClickListener(@Nullable OnMapLongClickListener listener) { - onRegisterTouchListener.onRegisterMapLongClickListener(listener); + onRegisterTouchListener.onSetMapLongClickListener(listener); + } + + /** + * Adds a callback that's invoked when the user long clicks on the map view. + * + * @param listener The callback that's invoked when the user long clicks on the map view. + * To unset the callback, use null. + */ + public void addOnMapLongClickListener(@Nullable OnMapLongClickListener listener) { + onRegisterTouchListener.onAddMapLongClickListener(listener); + } + + /** + * Removes a callback that's invoked when the user long clicks on the map view. + * + * @param listener The callback that's invoked when the user long clicks on the map view. + * To unset the callback, use null. + */ + public void removeOnMapLongClickListener(@Nullable OnMapLongClickListener listener) { + onRegisterTouchListener.onRemoveMapLongClickListener(listener); } /** @@ -2299,13 +2393,29 @@ public final class MapboxMap { * related to touch and click events. */ interface OnRegisterTouchListener { - void onRegisterMapClickListener(OnMapClickListener listener); + void onSetMapClickListener(OnMapClickListener listener); - void onRegisterMapLongClickListener(OnMapLongClickListener listener); + void onAddMapClickListener(OnMapClickListener listener); - void onRegisterScrollListener(OnScrollListener listener); + void onRemoveMapClickListener(OnMapClickListener listener); - void onRegisterFlingListener(OnFlingListener listener); + void onSetMapLongClickListener(OnMapLongClickListener listener); + + void onAddMapLongClickListener(OnMapLongClickListener listener); + + void onRemoveMapLongClickListener(OnMapLongClickListener listener); + + void onSetScrollListener(OnScrollListener listener); + + void onAddScrollListener(OnScrollListener listener); + + void onRemoveScrollListener(OnScrollListener listener); + + void onSetFlingListener(OnFlingListener listener); + + void onAddFlingListener(OnFlingListener listener); + + void onRemoveFlingListener(OnFlingListener listener); } /** diff --git a/platform/android/MapboxGLAndroidSDK/src/test/java/com/mapbox/mapboxsdk/maps/MapTouchListenersTest.java b/platform/android/MapboxGLAndroidSDK/src/test/java/com/mapbox/mapboxsdk/maps/MapTouchListenersTest.java new file mode 100644 index 000000000..eeb00355b --- /dev/null +++ b/platform/android/MapboxGLAndroidSDK/src/test/java/com/mapbox/mapboxsdk/maps/MapTouchListenersTest.java @@ -0,0 +1,95 @@ +package com.mapbox.mapboxsdk.maps; + +import android.graphics.PointF; + +import com.mapbox.mapboxsdk.geometry.LatLng; + +import org.junit.Test; + +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.times; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +public class MapTouchListenersTest { + + @Test + public void onMapClickListenerTest() throws Exception { + LatLng latLng = new LatLng(); + PointF pointF = new PointF(); + + Projection projection = mock(Projection.class); + when(projection.fromScreenLocation(pointF)).thenReturn(latLng); + MapGestureDetector mapGestureDetector = new MapGestureDetector(null, + null, projection, null, null, null, null); + + MapboxMap.OnMapClickListener listener = mock(MapboxMap.OnMapClickListener.class); + mapGestureDetector.addOnMapClickListener(listener); + mapGestureDetector.notifyOnMapClickListeners(pointF); + verify(listener, times(1)).onMapClick(latLng); + + mapGestureDetector.removeOnMapClickListener(listener); + mapGestureDetector.notifyOnMapClickListeners(pointF); + verify(listener, times(1)).onMapClick(latLng); + } + + @Test + public void onMapLongClickListenerTest() throws Exception { + LatLng latLng = new LatLng(); + PointF pointF = new PointF(); + + Projection projection = mock(Projection.class); + when(projection.fromScreenLocation(pointF)).thenReturn(latLng); + MapGestureDetector mapGestureDetector = new MapGestureDetector(null, + null, projection, null, null, null, null); + + MapboxMap.OnMapLongClickListener listener = mock(MapboxMap.OnMapLongClickListener.class); + mapGestureDetector.addOnMapLongClickListener(listener); + mapGestureDetector.notifyOnMapLongClickListeners(pointF); + verify(listener, times(1)).onMapLongClick(latLng); + + mapGestureDetector.removeOnMapLongClickListener(listener); + mapGestureDetector.notifyOnMapLongClickListeners(pointF); + verify(listener, times(1)).onMapLongClick(latLng); + } + + @Test + public void onFlingListenerTest() throws Exception { + LatLng latLng = new LatLng(); + PointF pointF = new PointF(); + + Projection projection = mock(Projection.class); + when(projection.fromScreenLocation(pointF)).thenReturn(latLng); + MapGestureDetector mapGestureDetector = new MapGestureDetector(null, + null, projection, null, null, null, null); + + MapboxMap.OnFlingListener listener = mock(MapboxMap.OnFlingListener.class); + mapGestureDetector.addOnFlingListener(listener); + mapGestureDetector.notifyOnFlingListeners(); + verify(listener, times(1)).onFling(); + + mapGestureDetector.removeOnFlingListener(listener); + mapGestureDetector.notifyOnFlingListeners(); + verify(listener, times(1)).onFling(); + } + + @Test + public void onScrollListenerTest() throws Exception { + LatLng latLng = new LatLng(); + PointF pointF = new PointF(); + + Projection projection = mock(Projection.class); + when(projection.fromScreenLocation(pointF)).thenReturn(latLng); + MapGestureDetector mapGestureDetector = new MapGestureDetector(null, + null, projection, null, null, null, null); + + MapboxMap.OnScrollListener listener = mock(MapboxMap.OnScrollListener.class); + mapGestureDetector.addOnScrollListener(listener); + mapGestureDetector.notifyOnScrollListeners(); + verify(listener, times(1)).onScroll(); + + mapGestureDetector.removeOnScrollListener(listener); + mapGestureDetector.notifyOnScrollListeners(); + verify(listener, times(1)).onScroll(); + } +} From c70103033eece8d4c6497342c73b93294267b604 Mon Sep 17 00:00:00 2001 From: Tobrun Date: Wed, 20 Dec 2017 07:27:18 +0100 Subject: [PATCH 66/92] [android] - update changelog for 5.3.0 --- platform/android/CHANGELOG.md | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/platform/android/CHANGELOG.md b/platform/android/CHANGELOG.md index 352cfa9d2..c22072e1a 100644 --- a/platform/android/CHANGELOG.md +++ b/platform/android/CHANGELOG.md @@ -2,9 +2,21 @@ Mapbox welcomes participation and contributions from everyone. If you'd like to do so please see the [`Contributing Guide`](https://github.com/mapbox/mapbox-gl-native/blob/master/CONTRIBUTING.md) first to get started. -## 5.3.0 - TBA - -* TBA +## 5.3.0 - December 20, 2017 + - Add support for TinySDF [#10706](https://github.com/mapbox/mapbox-gl-native/pull/10706) + - Save restore MyLocationViewSettings [#10746](https://github.com/mapbox/mapbox-gl-native/pull/10746) + - Post animation callback invocation [#10664](https://github.com/mapbox/mapbox-gl-native/pull/10664) + - Allow configuring Http logging [#10681](https://github.com/mapbox/mapbox-gl-native/pull/10681) + - Fix reverse scale gesture [#10688](https://github.com/mapbox/mapbox-gl-native/pull/10688) + - Update offline region metadata documentation [#10693](https://github.com/mapbox/mapbox-gl-native/pull/10693) + - Post camera listener invocation [#10690](https://github.com/mapbox/mapbox-gl-native/pull/10690) + - Activate filesource for offline region creation [#10718](https://github.com/mapbox/mapbox-gl-native/pull/10718) + - Update Spanish/Vietnamese translations [#10740](https://github.com/mapbox/mapbox-gl-native/pull/10740) + - Update instrumented make target [#10724](https://github.com/mapbox/mapbox-gl-native/pull/10724) + - Remove black flash on start for fragments [#10717](https://github.com/mapbox/mapbox-gl-native/pull/10717) + - CompassView decode crash [#10717](https://github.com/mapbox/mapbox-gl-native/pull/10717) + - Android SDK renaming [#10609](https://github.com/mapbox/mapbox-gl-native/pull/10609) + - Map touch listener based lists [#10749](https://github.com/mapbox/mapbox-gl-native/pull/10749) ## 5.2.1 - December 6, 2017 - Close race condition in RunLoop [#10537](https://github.com/mapbox/mapbox-gl-native/pull/10537) From 7f5dfb16bca7ab1191beb06940ef75ab4f197ec0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Minh=20Nguy=E1=BB=85n?= Date: Wed, 20 Dec 2017 02:26:05 -0800 Subject: [PATCH 67/92] Update iOS, macOS SDK translations (#10738) * [ios, macos] Updated Bulgarian, Spanish, Vietnamese localizations * [ios, macos] Added Arabic localization * [ios, macos] Updated localizations --- .../resources/ar.lproj/Foundation.stringsdict | 78 ++++++++++++++++++ .../resources/bg.lproj/Foundation.strings | 7 +- .../resources/ca.lproj/Foundation.strings | Bin 6453 -> 13170 bytes .../resources/de.lproj/Foundation.strings | Bin 6430 -> 13082 bytes .../resources/es.lproj/Foundation.strings | 8 +- .../resources/fr.lproj/Foundation.strings | Bin 6480 -> 13222 bytes .../resources/ja.lproj/Foundation.strings | Bin 6546 -> 12488 bytes .../resources/lt.lproj/Foundation.strings | Bin 6809 -> 13652 bytes .../resources/pt-BR.lproj/Foundation.strings | Bin 6511 -> 13274 bytes .../resources/ru.lproj/Foundation.strings | Bin 7163 -> 13398 bytes .../resources/sv.lproj/Foundation.strings | Bin 6453 -> 13138 bytes .../resources/uk.lproj/Foundation.strings | Bin 7617 -> 13904 bytes .../resources/vi.lproj/Foundation.strings | 8 +- .../zh-Hans.lproj/Foundation.strings | Bin 6603 -> 12528 bytes .../zh-Hant.lproj/Foundation.strings | Bin 6558 -> 12496 bytes platform/ios/app/ar.lproj/Localizable.strings | 0 platform/ios/ios.xcodeproj/project.pbxproj | 5 ++ .../resources/bg.lproj/Localizable.strings | 53 ++++++++---- .../bg.lproj/Localizable.stringsdict | 48 +++++++---- .../resources/es.lproj/Localizable.strings | Bin 3935 -> 8156 bytes .../resources/vi.lproj/Localizable.strings | Bin 4284 -> 8122 bytes .../macos/app/ar.lproj/Localizable.strings | 0 .../macos/macos.xcodeproj/project.pbxproj | 5 ++ .../macos/sdk/es.lproj/Localizable.strings | Bin 865 -> 1716 bytes .../macos/sdk/vi.lproj/Localizable.strings | Bin 929 -> 1654 bytes 25 files changed, 179 insertions(+), 33 deletions(-) create mode 100644 platform/darwin/resources/ar.lproj/Foundation.stringsdict create mode 100644 platform/ios/app/ar.lproj/Localizable.strings create mode 100644 platform/macos/app/ar.lproj/Localizable.strings diff --git a/platform/darwin/resources/ar.lproj/Foundation.stringsdict b/platform/darwin/resources/ar.lproj/Foundation.stringsdict new file mode 100644 index 000000000..1c1cbc6ec --- /dev/null +++ b/platform/darwin/resources/ar.lproj/Foundation.stringsdict @@ -0,0 +1,78 @@ + + + + + COORD_DEG_LONG + + NSStringLocalizedFormatKey + %#@degrees@ + degrees + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + d + zero + 0 درجة + one + درجة واحدة + two + درجتان + few + %d درجات + many + %d درجة + other + %d درجة + + + COORD_MIN_LONG + + NSStringLocalizedFormatKey + %#@minutes@ + minutes + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + d + zero + أقل من دقيقة + one + دقيقة واحدة + two + دقيقتان + few + %d دقائق + many + %d دقيقة + other + %d دقيقة + + + COORD_SEC_LONG + + NSStringLocalizedFormatKey + %#@seconds@ + seconds + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + d + zero + أقل من ثانية + one + ثانية واحدة + two + ثانيتان + few + %d ثوان + many + %d ثانية + other + %d ثانية + + + + diff --git a/platform/darwin/resources/bg.lproj/Foundation.strings b/platform/darwin/resources/bg.lproj/Foundation.strings index f2a9c6eae..677e4de44 100644 --- a/platform/darwin/resources/bg.lproj/Foundation.strings +++ b/platform/darwin/resources/bg.lproj/Foundation.strings @@ -1,4 +1,4 @@ -/* Clock position format, long: {hours} o’clock */ +/* Clock position format, long: {hours} o’clock */ "CLOCK_FMT_LONG" = "%@ ча�а"; /* Clock position format, medium: {hours} o’clock */ @@ -289,3 +289,8 @@ /* West longitude format, short: {longitude} */ "COORD_W_SHORT" = "%@З"; +/* OpenStreetMap full name attribution */ +"OSM_FULL_NAME" = "OpenStreetMap"; + +/* OpenStreetMap short name attribution */ +"OSM_SHORT_NAME" = "OSM"; diff --git a/platform/darwin/resources/ca.lproj/Foundation.strings b/platform/darwin/resources/ca.lproj/Foundation.strings index f86442f26fdb383bf06e5dad493bf7210039ffa2..e60546d3c21980c779d10869f14f6e844ae679e0 100644 GIT binary patch literal 13170 zcmcgz+ip`!4D~aAaNf2Ml>kw}fj1CRQ5!CTB!~^_V^v5f6}?2H6+#vN#1{hg9^ARv zGoGZNs%sABRGW*@EIR3@X-_Fow7IpI({3 zGkmv$$M}04Ezsz59IJy3*uqyH;is?R80{#Jahw@)I7j5`A|1mBcHjlPL*#!4?Q-zr z7xZwB^&#BDpALPX`?81U=*>6iSC5Z8=sp|!afE(eCR&E0Pm$$ocmh5C>>+bWDbnaH z(I*_&^C^!k;T|dDcJLm)p&w3$csxUoh0$2D^B&_&XF)MP#|Y+;XHE8POdSH5?E=xs z3Nhp5kYjC(NxMA5oNk`+67!?RH@0r&OZGLsy~1}h(01M!rITW$^2jsT9O{b}yL=t_ zIz(V&?J&r!={;HHP0S^#p{Y%-v!%%HE3BQqHO{hq8)t_==1lL!oF|RBE9b4N0BPLD zV_VSE=o0cYAN|Ojkzs7qb(&!1lItil@fj&q*0OyYQ-?riyC~?yjKBWL8(YmK#=Bw# z${C-E8JTkq5m-4B295Jnjm=hd%i7A>=lO-!Y`n;x%u3HUw!(VybE}@CY78?^Yb-MY z36a$grKld^yl(f0i%a_)OZ8mqD>%k;kMKKMRZM*nqq2KNuWaNMy}oJlpQXlWGca@J zv9&pPayd8fmFbLVa4iN#Q9|7SMI||e9hZ3E~`KERRt+s%5(NU+vn%j*!^5S3w~|Ql&+Wj$gCgF8&(clKk9gR z#iVYuY~99FpSOEq*3K=4kx|d$UX9k2uNn@Wph0uf0U|H-i10p#Z}mf$nFunnvqBJ znzs6W2<=#w<3ElN%>x<&8+Uz2#No48ZLM#;vf5_8{J&P;Lgpa`D|5ZZ^@SQ2TC!Ag zvXbv@S~-T+Y`k<fyA|#*PcboRo%2=C)rA%du+73j$Ht(X!<#^?>^_`F!3LA5W zL#k4A*IA2iZT_<`*XCeWo5rTQZGL4O*Cfx|N7~n*QrLJq6f*C84&K4>5AfdSe6XY6 z>yPh2(VgZUoP&3;+j=I>#T&@88%Ewo&Nq?ytz_q^X89Nq#rN-L5mq{F;O~e}QPCKa ze9xY6{b)qu{qF9~x8abKkWg%6-%sZ(i1W#C)?$tf%V#fABo}zrfj&+55^3eG`)I7F z_CMUfQv)52LMJfp56|K#wc)I**M?P7)8SnQX-(ZWoU+>MqvZM{M_`We0@a`6i5@zs zGpj^`++%KlLruLI`>0C$t(Oue0gQQ8&~c?SzF5RbD^ZkZBQcHRw|H+px*XZe@3-G`;@5nQ$eol{TgYVh7LRjVsoq?n}ojMG$uF67-h`h?J$03i6t70I> zO%4ATz2`duy`zw0V2r08<#n6u@O-}^^>{Vgx!!)fQvbrJG)-r4zl&9@AxTwh!yzk^ zqnHdG9^KcaDj3Iwu8f=W)9bamtf@tnPhMHKp~^LDL8d8oRp?S3Td>J0Zeje#vE+Bk z|DK9kPey){_6piCt*#;ADrvYrwpA6>_Bp5{$?r9Uy|JEoa!sWD{cUCaM5|uvybp%X zTdIkD)R*VBb8T#$JfqUonZbjkCf1OoO0?mSvnfZxyB@Z_kUK4|iSC;SVSgZNChtkP zZk6|E;w*2&m8-@`ZP+x`DBrIFU#evrI$6uDY!{986z4e0^w_hxJ*6|O7W?=r#rZkT zc}Mt&b~ngh-7o{vm4~=HOnVmmjT7G2nc_&aQ}GnPdGQK=_OKQ|8S0P!mV<6H)>FTZ VGM2u@Lf^hv1)cYfjE^`lmfuy1rAPn( literal 6453 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 diff --git a/platform/darwin/resources/es.lproj/Foundation.strings b/platform/darwin/resources/es.lproj/Foundation.strings index fb76820eb..760fb5d5c 100644 --- a/platform/darwin/resources/es.lproj/Foundation.strings +++ b/platform/darwin/resources/es.lproj/Foundation.strings @@ -1,4 +1,4 @@ -/* Clock position format, long: {hours} o’clock */ +/* Clock position format, long: {hours} o’clock */ "CLOCK_FMT_LONG" = "%@ en punto"; /* Clock position format, medium: {hours} o’clock */ @@ -289,3 +289,9 @@ /* West longitude format, short: {longitude} */ "COORD_W_SHORT" = "%@O"; +/* OpenStreetMap full name attribution */ +"OSM_FULL_NAME" = "OpenStreetMap"; + +/* OpenStreetMap short name attribution */ +"OSM_SHORT_NAME" = "OSM"; + diff --git a/platform/darwin/resources/fr.lproj/Foundation.strings b/platform/darwin/resources/fr.lproj/Foundation.strings index d2f6c1f6dff36cf1b365eed210840888a67c02fb..ed38a264cf670961eb97ab5682a33a1ed3d150a0 100644 GIT binary patch literal 13222 zcmcgz-ELGz4E8l|(7U6ENE9`qg*#BCpk#rn>@Mml%4HPT1BseHv58O>@lL!JF9FzR zaOTgR@$4oj+U&pmef~Ti&z#wBUmw7I=wJtq;SAowfB5(uA1&bsF7S2+r})Y{y#D|v zaDcDxJ2yhVx7VScHu90jo5Ds z?{bXg2aIx#_A&g9e;r0ak7o}rFrxopY-5Cn_&xe|9Lovnxl9xd?az_vD|iY${_P`s zNiS09qF~oEDqEJ2PZYZyyn+9b(dn3#7Z|fJCrf_bV7BQjDDw|6kJ<8~$-j-MLm;y~ zM|846%y>DDv^K`1T|Um7Zl3WH$4HHD?A^+j{A+xBh3{6N?a-K|vtp*Q+l$#+3Uu)*%KfYeJ#1o~zl}s&83cdHi`*LvJ=-bH4de`p5V-GkB7@l`z%WpUF$43%kzlvJ6c^#V-lmXM@6q~6cxR~X)~au%4u^j zb7tGxEIhlO9r%;!oM_{(&%-lhu4hE(HLNu@?&W&NwuyVa;_;`6e~84&U$1&ITq$U| z7kaXAt}(9j3_aSo>CEc9xX#35%Eq)l(mh*W|2Xq&5tor!BciV^NbS;S=lHXKer}x; z_Nw!InC(6;K33Mqgvji1DP_xfHWK>lKHSD%USmmXs@SpxzqWo#*G}FtYsfQ*m4nus zIv!p#sYfe&xAD|x@Lrg|bB|$W)W>qKW^Bq=%h56dD`zb;iE~=XyvJ5;<-WAEDwKWM zSZQ5pz7EX2teU-gR~oal<}pWD!efm>DWj#HRFB58xgt?KN_8pkNL`%bI&4K`kBDB+ zC?a}QTYYzg_Akr%A7_Xb0S$qTyS_i-@L9aJR=8eSdoy3YuUEK`dx*lyU9WO|p~{7x zEES!+qDovPY$qC;2?T*R;nbXT8QOv~9t!Ay4z0?Q&MPuB}Kvd6(BS z@w&XXah(!k&vW^d>Ux@aC+4fqTgQ*JO99=KBP{9bfBbdk!s~P4L&w z=csFpO1r+lfX|IceB|9#{5Bkt78IWp#SX3r=u`%AJ{?bH49Kv2QX@rjh36vZ+jPy5 zR`q&}riyNVz}@l0#()+&JiYO7d>&`24QXA!Hnf_a4)HojYx=g~l=WU8CD$Q22Xl;9 zsQ-W`faqk;qLK@8@3{#MHFazp-wtiM%y{%uGozJ_En7BWbr$Ve)5^h;Niu`Uk24nj zWEY+OqWPy@Q#jB3H?%4uufg4kFKJJ)4OL!0+K_1(KJG+7f7E6%Q@y-3#N=R9(QsF3!aol2o@g9I`e! zirLuT(Uo7S%W-Dt+PL{X{k&F_HNB|n$!qL3RJmp?$TY=n3SFvW3pQEBZ5#n{F8Lkw z+fz~N$0$zHox(9LP z+edwQ?myQjw5iucMy4sWfJaGPtRYF&Xu~0os2m0FeB5rgD(_FZZq@J8#ACe;S+1MC zD&BUo zK6!*Y#f{fcM!TaB0aw~saX=@>2ls|ej^tf>Au8oBh#7y7lvD(HN4 KWPHSdv3v(qSh4&7 literal 6480 zcmbVQ&2Aev5Wf2<2qOa8z((BmmZE?Pd7B1}c8f59j)vsjMnY|^pp_65hJn0BAECD( zJ@!zbeUrREUm+xSNq$4lC~|N4;e6kG-wcPN{qL{8pFCERoA&xwwQ0N6Zq=^UFYWer zzB^Ml?fT7Ab+>Hy+wNYqAK(3c?G8SEa&kI(QB8ij`eFL&>P1yPJ5}GQ)6rNhoBg)w zPQN`lkx_4(dbPj(Jnpo(eExd+5ae#zZg&Cr>BWVjnd%>_m#+rErMkEn@+{`vAhthW zO@IDg>#HIvYq}jd>xh!W5xju2YVn&|o2-_-n>1!o5(>4MZ|&ilk7q~?0MKsAB(Q7u z0acWN8K(vq5L57+0^T?AmL4FX6m(d%=UutcpBYNI!0hIoeA z006W0%%xCWs4diVIGw{|C4C*;VcS81rg8zAEQ#x&XlD}7kQ#ufsoW4vmiVm!V>-87 z%whut;&#ta_Xr&Ij8IoY54oHry@_0?AA~VnL?sbvnGQKzq!wFF&Snb4*NmGq=f0B@v0k+I4=xRY+_w(NUI%OM>MV@)(oZw2*9wDeZ=5l z?tQ4#a2kf0=gt}qAvku@a+g1a zg^AF5`*=}(a?geN>3WZ1v8hl`!kwQP70kv4)}!tH=^P)yz2Ek%^~XH;?21AjtLU=b z4~EuE5ExqWLd6Hl2TD~YMUK?5zzG1yjHRtYWo;mC6WJR*!1%_nJ=3++otKr_kdv=tX^JTT^7&cuYgglYIFSG zKfdU`9Ej8K@WbC8G`RN(7XIL`|9LN-nxBS^(wlcD3H` zlANX>@2f{+)$G*h>qp}uF$OeKD8Qmp1AG`X6)a$a@XtaHA9lQj0r9SDuG@7@D>H@X za%7;-oC(g1Z~mVd5)EU^=pcn?jl__f1O$csEoiM-?e=xnDd9h`ZDENrU%$*19eP86 z3jHB~p#ew0dHDhwh#mXw0Gf6)Uv1Ota5LXI@%Lxyjzy&({6aV6SAw8N-N)dg3&%19 zD~=%mV^aKSKL&^|Fs7!@;j@kzdHvLgBQFgP!kO`6u~2IL@!f~P#}vk^6Hq`8fVf|U z%2$*qGK0_mJ9aZ_8{?Nq0V=5D!BE^Wa9$;k1|rA)1DV^E9wZTG*;vH|K|ngFP?Pc< zfp$nBt{VCm;ooNdN!< diff --git a/platform/darwin/resources/ja.lproj/Foundation.strings b/platform/darwin/resources/ja.lproj/Foundation.strings index b6dd83dac17a43daa23174df007a163823f14253..52dda1557fb19068060a9f80c0424b81a08f2b4a 100644 GIT binary patch literal 12488 zcmcIqO>a|I5S;G-3sz&ZY& z!2(}-h5z5eYj}>YeTUEKvkRER1AKf5f8etVe18Rh;qx>2rvK7w?H1gDo3MunPhgCH ze}xG=f+0M`|MbcT9^<=x_z{2iU;z8@)2qK{Uq9W0AMkrO@!NKOuVDsLWPgF2cjY*Q zBRGU#;CJMF-8@%K?A~HjQ zJcJ5=Ca9TnXE~SK?6l-t8F$a58Q_PXE-|>Ae?r&kM8s5|{$60RK^<|qQBdj-kkoUbP>cG+2{JjB*(m#R()UmArp zeoLcXuS!Rtu7661I<4}!r$_ZGgHESZhkBJ<6?~mOqE@F|i*l$wl13Y^Y`u{))<@83 zk(6jq_KDzb92uDq6;Xo!d5lhr8R@xvWt=%y>$Lm;wV`&V`Qg;L(}P!M@Ai@p9STfNBa1x zLTGXBrTTm{tv)H^@`zU7qaKrEh&rwET3(OpR|ZX9 zS7IHilX)Aj(?`_mlxtBA)ko53<16fXBWJ9Spwl8L(V)1B&}FGMJ8Aa9_esJ{cMLn{ zoI)O3tGPwz*3MRZ$H$^v_BA(lIwYsuJtt(n?wsE#dTrXxk#vQ-IDVTN-ZEppT^FBl zm0j*{l#~4We!WRo5>5q=rqh*MJ(Llxy)M`1(jFJ<3(>Utq>+yz8dougD6OeA4$``a zJB6S%Q9LUx;psHChrmp%*WtaS<>@r2Vq4=yq3 zBHf;>+IVoWr+CCH4sgCmC*yS1yl76xXQ(iLS{^gG#4~F8HqAR}FJF$)Q1Iz4e2b^% zAD#{1Ui0Y2aTqHd%d&SirjnO2+ikd(+_f>~-EMgfFs^M>x8dn(D4&BV%S-fshPN>2 zcEz-i3;cX;0C9Y891q}rlNbNI-$uhWd12L|&6QoX*z?A!M3+mlj-&ri$-6r?bPwkO zv!PsBT())JkZOsv>q570!W^;jNpr=1Jvr~5c^hOy%7>>G6S1jmTd zxNzExAHH|A(zyJ5*UEo~A4PMws@kgX)h9Pb?8cn)neK-99Jgi9=YXqg*QFrMi0k6d zXG=c*!(av=XA1B85O1gPD=C_@#Iu1CR_d*8e&Se2{!QUtKg_xklh`9058j8AMR!I; zH8;!x*@<>Uk3TQfTi%^smDV*Io75`{Bi^aqS;f9tIPtFSV}6IZQ+?j4{c^7HGpw3% z&BkVX*N74C+U~5jbxqoHpxmw!*ZkS7+`ITXNBi9e!Ww7_@$9w=X3{BE>Vj_W?O5b-V6^Ca4 literal 6546 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 literal 6809 zcmbVQO>f&q5WV|XEQ|<90}Dypn~MT0Y&8vPeZWkuqd{4$P1qI z@E{DcMgi{C{dyT3E%SxIA2a+{Svp^oJOsxcQ}z*@>{{iiVDKQcSaqHFyHbUwBNh{e z1_Kki>m??kYaNi{h?zKy3B~p5_lzVSahMo15XLZaAq<54L-y;W-__>TC)ymCYM*EO zv?(+};a~y^9g`_F?Xk~v0K!mflt$iqxwGJCm(i z-xpelTsX9D*Gp2jQXotmrDDj%*M+jSI3cC&l#Ka0sp*+HWqmNA04!sL!No3e6jq9Z z5MAM#iTA|>#&i`5%7zt~wYqnH#lrN2*=eT5`cF4A>jP~ToRn@%+J`svkQiG?%@ekc z0D~bWU1QYr41ZE^J4UmComw2AaQx`5<|p1(owrqjIF{Sv*m71U89waUehm8~o9ren z8)#Y2UAL9vpvFVDCc%_aiS;HymDM|miN*xyXD0{8`J(Zfw{N85A$5rRO*J$F>fJV`u6K;HiVgyY9-L$b}u zYMXi|*o+I2bt$F!FC?*Px1yT5Se?L7f z(zGPkAoaF7JlsFt@4armWja%Jkz`lpOcOuvX6uKq>J}J+_)Cvzg?<|#!evKi`p-uJ z#fs4P8v;n91~B&WyqIRQWS$a5fO2!0%@*@i-|^VnlA%@E2a#Vti&R#q&Nt8e)lM6< zrBHxHr5boMXed~~1mTZDnz6=-zbVs`d^QbSfa%-O&^y)yYsR<#&kTu%v8A(-LbOI= zXqyBCJ@X-JtjXq!X{%EFKd?mLtGW}ZBAc%tRCaN?xXj%iEP(n-5n$1ZC|tV)Oy`CG z3ECs~0S_<6Rieu~xc0nA=GKeb9d*N^lFQGgIO2|ilk%kL2eZ^f4ofH5I{ zzv>Fa7w8cEH*kBU`=D(itGnl=Yk}c;ubgQ&1`M@MKfnJ}%M4+hJOKp+0f_xJ)vdZp zDUqamf%`jFH;Rkgu-CVeSNdTnaRJzC<)Klkt?*!(5Kx_T9u$;E{_e%@z)up69WS!W zy?(C))dK29)iFu1RZSKc0dtdPTxdFxUtX&|PLd3D8~65Lv`tl+o-bz8)m=&EcN~Ct zY0Q)`h?r4bcMo;(hA>WzfC4E55VOiWu{XnJtb4OvjauDVfb~k*rZ*-^Z5A!MU-bo4 NCtLsp;gMa;{{z4{R#5-| diff --git a/platform/darwin/resources/pt-BR.lproj/Foundation.strings b/platform/darwin/resources/pt-BR.lproj/Foundation.strings index 71a7f7e4a592192b0c27313ea5c2ce82e329a314..bf0e126d79640aae6dcc5ee2ce5940ce4c8f369a 100644 GIT binary patch literal 13274 zcmcgz%Whmn5Uq9ofZZs<5=2CSWEX_w$esj*J&w2_FC!;27z@W^Wo$*r;-B~@R{R8{ z>b6VWx4TYvwI9f`Jui2iQ;*Zt5C8Y?6M955+M!cg(>wZ|AD{E14V};hf3N9`U-^}P zf1vkt#IJqD&*igcbWG3r@fH2X&o24>4gJZ_*Yw%!T{7AudO{EAAzRp^1OE9Vy`h)1 zPe1c-d1XPb_}v+O$KMZWpuc&98Ew%v|CEtGu+QJ1O37b?icmun*D`=`8j>fUo-Xv_U%C5vv+@DKS!M6)$q4df6hlAPh*>oe!y&B z(+iHyz)_oF;_0wYiWko?7ZdNvvN?G zNF}VsOpc=?b~Xwh-+;sBe9jo{SgFMg^S)%i_wbe|mbIt6SM1Hme8Z!kc46?c78Ho} z04zRE;=Jn2+6Bzqe>ih>gC!6oHR*z+kbSbEM~xb&PUqQ+2qO|bqqg#hn$rRd{5YDxccH z6|VekWL}Tp^@c>cR^hpQeeRv-#V@`LNc|GM)yhKkONz_ym0GTx7d0?+uDk3tm$kZ@ zj_kpYR#N#YDvqq4(mBHy!2!znultK4JW*U{ZEjgD98(7s7vEFWBjkC0>$vJCUHf>~Sa^jMnWT}^@$zP&nOie-9fOxOnw71}Rf}ksqOI14yrM?Ao1Wi9FHCE+g}}!e?~}+$Hp+4|8+ury z`FKr%b?8IdtYe;iO!UIXI$*GL`haJaob@h`f6V9htI-a=Jup4BlC$bv-lg8N4boP0`*7OPzCB7+A3Fm}j8`1}72gq(yFbfDCfNPv76sJO4XJ%xQ`}>`zeu7EO+01o8T4Vgc@za# zEsD3tcGC!={SN6*$}@+Ka8 ziqMjtW!l(6l1HNthh0%63f=v=-~QF!p9=kJYlp^%tc;t#KNNH*Zc_DkgD{V0A3i&t z+r=J}>@lu5{|D|v!%ou$b35W!CD-M~`YAt>JrD8NY@7|{lP7!@B0CxSpDnuEBl}pg ofANz4vty6H-moUW7`+w$dji{>syF`J^bDXMUG$EPPdF%+Pveln%m4rY literal 6511 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 NbqaW(Gn?Dgz5v`Rlq~=N diff --git a/platform/darwin/resources/uk.lproj/Foundation.strings b/platform/darwin/resources/uk.lproj/Foundation.strings index 32a006829ffceb3a64f96934af6d3cc590f73e99..d9d9ad32e195750b1ae47307fe19fa5a66ce0eec 100644 GIT binary patch literal 13904 zcmcgzT~Ay$5S@qnls{1QDYsFP+Nj%5*s3WJEgK-DDj!w1EsrP(G({m01yEF>{-^%J zwrAFHY+ujV;{_@N?1kOyGiQ#E$KKh0|9L?7si$>1p)-0xukiQ{9-Y%MUEuqSPVtxD z@%t^krf2xu7r5rofYee-Yj7K0Tm2bPpqJ(;j~QNC)(U zcIX%U=D+OH7XI7QD!%X00mhyUyQ~o`S)j!DWiey*A}<6WKc-Anwdt8Wn z6lMCTQMbDl?e;W+lG^jHVX`sdP)SU1_D59K!3Z;#J(d;F%Ez>Uj}~2Mm~4DFR3$zn zee5>Q|N7id{U*J?B@!M%ih}d0-P=1!TPAnmfwC*xwH)G;FxcXCD72V!FU!Y#2Mya- zB942%;AN?Yf730BYg8G9HFCzGMgCE?dWA7tGktS;jz_jd$zy9Vma^+dl9c7^MSZ1a zf1F3(&dn#4oR_d!S*h!OL@oTBHhUQ}RClzns&Bn#C13G0XBzU9Vze_=az*CIt#=v< zZKbuSNL&45kIeZ9oJsX#2t{O8FW3w_-a#qJo z$zS6UEh@Rm^&}qK7Huh3OO)PW)7fc@yTw65)^lZObJw#WW3=*9-Y+pnWd|9e@Yl9o zBhQujY7WO!;LXZXjL*(dO-Ccj)inLEkFar3-$iZ@>fCe$OEjfDV#;8+x7U|nv8>UQ zYYfZ&r;NcCZ>g4$_C5KSv0~~oe_GLV8n>q3G74+tx@yN=Nw2M$F4fR!ymIvzqK!wk zMXA@&0u+Fc~Xo-0H5 z5zmK=(#nv-DWB)K_139Eo2x?<{@Pk^)hg-KIfhJy>v{0mIjSj1s-*XuPBG<~qQw{A z+Y*I_Kc5Bu&R$imdq~cw{S2xWpNzs5aea@NYGxRDx-Qq(#d+s^3kqxGrP@Hxxpqcl ziCsHC3K@>Q&2}d5GosrjjFQ zb-)JVe~CVhqZto+*GGDa&;17*r~@`|g1;r!0}JTH=+V`&hWBR1-Fi3aJ|lkj{qsSG zM{WGPr{gd|%-tuUTVik484)AX`Zx~h??xm+nXYf64Tq#v=4gmw9lIOuyWu{T(^>D$ z5h5)2;tY{oq5p+n&F>xayKXv1J4)`pqEFG2)6-*QuSb8*((F1_tqo~Ce{E>Bd^*I} zL0Zdi8%{aj*GK7nTh?HX@e27rLXQ{sZXH&%AXm2w7 zdO+j<$m?&Z+cWo*R0pltB_(jzYK(GT{F+K`I)+>qHx+@bnHv6`q=L}(B4>XGowM?e z(ba{U@PLQiBYdx-E?ms2!rJJ0#%&dk$E9WUke2#Xi!~&}ytUzwbCaV8{Q&IbsWSB3 zxEf*je9gtRe6b(KofO{5pCWr}qK~(s&2!m;Sj*&XqaNnH1+$#>wOK!Cs=jcxe|ve? zs=mOW-^IEWT+e$O+WGU&i0gU39n|yYT|2$uDv95{80I~$+4UJNyDz_6vaamxcvn6_ zC-@5XmMd{ATE)erG{FP_M zCD!8;JmRw&X0o5H&iu?{oSO3qjQ>29Kc(8ko%r142|io2jjsb#N|PCj;qyHDn5j?b Y&+D<*=g(;I=Zxk-7x2f^pJCc zo`U{?5UZ%$zz)za;Qm5>pubR(%O!`ynca1L@WtMJ^XAQ)87}?r`ww^Ti1vQE`;&N< zE~d+AIuk#p^Mm1XOYEn!r}xFtUV1oR9E<1HrtQ-?eBKJ=|0(c)bBmm z6kmzWMoXT{E4lu3^UIA59`#@{o*o`l<90jS4}a)70f6vaq<6`u)m??65xuD@| zqn-~XKd3Vh01J*Qr?})mdoRxC}i!#gD966LfljGvkcg zsh)%{^YWn?0KHm>VWW_AvDYM#xx}6c@UNp`96fly8-Y&$jQHYZ2Fce*- zEHphlC&sqt>YKen>=1V@0>Lw?yB<|h@pGD7LnQH}x0=y3=?;N0D5AJWa-x0>nDTQJ z8HU_00$2nU%mjC9F?m@J4k|q81wsObE<|xCrm+j{HVRx=0I}-T9(kHC-bPML-IsX? zk}4%D+(rZXy8xCJht6M#qXnV7h4kZ^BzK6Ye}=FfhyV#9M+9npcD1Na||gJzV;^rnQ3b1UrQfW~z1aC1^i`VdQ$wm?fB11Vy+%BPU~cf}+BY zDZ+ieJ$X8xOcuc%oc*HfKi=Ni?mX~cxs9=q=h=x|$#wQ3JH4&1k3O-r#5nHOZJY-< zMxgMvZT!!QK`|MrTQ&y7r`GTo?KGW_r?cU55+nssjt-`?!{tQXF`7HOzDcwT^8D;p zOJu*um1ul^t7WMXuu+Z-Fw9j!mxJPz8BCCRC8X{QD*dCyWH+6Skq+QI(ooP_MuaV^ z#~1%k4=xg+Ortaes}2_-)(HgY=*tYP&UAS=j_l(80DS_kS{lkEr}-U$THIIJ8=+1r zSL#Mp-AXI>Tv+2UL7aJ*Fi@Hs1u7(C;sAkK`feh&`?KM6j$3JexHOs_Z;2xkIJ~KM zKB_?XqSV2M64j01)Tk2xXoK;)`3MPg0pq0m5L}I_xtX0QUtGxd>gV#dToqFjqqzKu z38f)n#^aAC@2s2{rbv=O0cimcbH^i!!Ul<{;Zgh^_5w_?g)ho=KV-kk3$-s`H!x9L z;&dFC_YETz+R%Z3G%bBaZv{4I#%pNJ9GY;#5%CQ7L`N#KbaMk><=p2XCD-oS@r zzC;4UfKEs{ZLnEYC!DH(@%){=P$P2)@MVqn6!%*nYr2r|E6s6rhk5>TgAoNE6Ax))fn diff --git a/platform/darwin/resources/vi.lproj/Foundation.strings b/platform/darwin/resources/vi.lproj/Foundation.strings index f29f8e873..d6b161585 100644 --- a/platform/darwin/resources/vi.lproj/Foundation.strings +++ b/platform/darwin/resources/vi.lproj/Foundation.strings @@ -1,4 +1,4 @@ -/* Clock position format, long: {hours} o’clock */ +/* Clock position format, long: {hours} o’clock */ "CLOCK_FMT_LONG" = "%@ gi�"; /* Clock position format, medium: {hours} o’clock */ @@ -289,3 +289,9 @@ /* West longitude format, short: {longitude} */ "COORD_W_SHORT" = "%@T"; +/* OpenStreetMap full name attribution */ +"OSM_FULL_NAME" = "OpenStreetMap"; + +/* OpenStreetMap short name attribution */ +"OSM_SHORT_NAME" = "OSM"; + diff --git a/platform/darwin/resources/zh-Hans.lproj/Foundation.strings b/platform/darwin/resources/zh-Hans.lproj/Foundation.strings index 7dec6184e5a96ff414de35bfdb35f68c87c4dceb..e69b65f2ac1a1e8bcb5ea6dc0dbde6b6b27c7ec7 100644 GIT binary patch literal 12528 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 Jl=eo-tPdG)v+Do= diff --git a/platform/darwin/resources/zh-Hant.lproj/Foundation.strings b/platform/darwin/resources/zh-Hant.lproj/Foundation.strings index 8a02bcfac09beea3eed107efff29a88e843b2af2..2fa92e1c6ea99a2017374e3df09b87e838f91dff 100644 GIT binary patch literal 12496 zcmcIqO>a|I5S_7LGQ z4Ds(TFouWFhu`o&y)uAD_-+?|#NR#W!9INaXAgeB?_9@k+PS@eDNK<01@hgNUmuR( z5PpW=k?$@!F6)@R!f2)p@56Wa(?#WS+$#79BX^833|Teb4WoC2t}P?q{MLu4?N@jJ z75`Xt2Lo^w-U{td(&>{L>|NO(Gp4I-~GhuOx{ zs<9F^jxri~Je|e{k=K}F4vhVd?{jf~3tQFjrgk~ba?7qS+Z-8Sz2Pfgr@9))S=Z{| z&~&;QJYJgy@imTe`l?R)Mr_?6eXDg?7gK#cnpPj-N%~|&t8ct(iXh)MQAp#r zH0pJ#bOdVqr-Z1}Dvx`5RKGIlbV_xoQ^{4q*Xbi_b;`9Uhw39~wDHPTYdK?m1f3R1 zi3Wx57dmB9pCsILp4(=qQ^;d$HOsSXE575STTcvd)Racf23gKohvbyI=Y*`+o%1^# zxhvy(f?rFFqIE>rs)oC?W{_KUQF5b~&YwygB}dE{+3MiXbh_k`QHSVfLAmFVKEA3D zTAX{SJ|9i1Ps+GFqSZHP-X>>=kD${c&)dohuC`UQq?Kp-^O}OJD9W&<6O|zA892&s?t?;+dm~lomP1*uSfMOgC?&l zu?~%rc^j|ON7U++Yf%o>N788HE9`15XRME)(;_L+pty?AW~nwiY4*bRNy1Hc3|r@% zLLOVIxk2aF&Q^TK$D&;JH8*xTB&XaxCuF_uoZl(>$h4ay=?Zso{5CbbWyXBFEC;9dLYMrhmoC+RIrz^L5C?i^XU9QiiJucQ4qG|O>BOgUHu3`>RT2pHrq;(N@ z3PEe4cvf1%(`jrF`AU+*Y~%Ub*vF(1k1Cg}k;l_%Y!G>kDdr*Snc=DHwALk`(T2N> zbZU5r-W}o&<0IC?9-f}QdlL5f5>|TVItkd(xo~@)IjqkveHPL=>jd8838#M+Tw>Bj zx;a_3@!(=l@rYR*;Czuz#Oa)QUZ09jQDOd+JZ5r<=hO6Uns?G(z8s^z;M4bT6Hm+E zJ?X*S`q8!HFjhL2W$$cEB`;&Pn{X|;Yh%j0-SF&TT$`wF!qe4IJ_l2lm+1c#Z(q=@ zib)|C`1xE9;`m-W?!mn}FFw54M8hU|Vb!6{m2I`y^Tw(~mrJsaqyJCI+q*S%|K4 zl*WeBdJOUXqt(XcmwQ(JJN!tRyHV9th8v&VII$gb&S|J%&WK{pR~ zEO;lV^4^Q;U5QB?c^ePD*Q6}mUd-2>WlDQP++5DaDD_J}nX`jK}=XZNC pLu`q57armb_s94%#yb0;j#7KCT*lOMYooIXyEZyJKhog1{0F(7kNE%q literal 6558 zcmb7IO>Z1U6ukRajI7KhN|XS%Af!d>Aw*_Oo!#N>@$j?#Peyn5Z;$hv zyU9n%ZaVn)^|Rd%cXnjPTon76GxYcOue@iqPVlhf_Mc9sUnO%|)?pi?kDBJ5$oZc?o}WDh zDF8E?g!WWf__A3G+C`-OIMg;^PP>S;J@{2^x)!p{{dCE-pBkbWb%OiOBfMU@q+SH- zk3)4pGwKBQ)e)ZywT4Q&8k>h>4XkYNxatYPSUv?~1fzyjp=2p-GVvoGSUvKOWgwqXV&2D>kR}_59UD+ zo;?kksMQy{knsKvhzKNQ5GKhWG*J)bco@_yj=RLlw|MUi(2*-~U|~{MG|u)m9x(wN z0G5P)z!}gjMoxrSn6)^XLO9RhG&{Ekk$E`wjHg%dxZAQ(;011bf_ZyhYdJ8Z>1}rr zF63Kaye&8gMQKa9DzuB0g$wgFJ}XTNUt;B3yqd4EIIu9OD;j5e8;_U(4ggC+KZHqa zoCBpd2pF1@zux)z8_D+B*l`d$JgwFyU1Xxu4Bv*76o47c=n&)JQmLa#W0^Z`1Lm~D z0*7$CcSPf^#A}Nx3En!CIHDPK@7BWN^~xU#mBmfnHU#|(HQT(WOK(qy_`Ul6qOO&U4{N_;+jw8W$&DK@i6 zDN`?kDzDjUT}5qV|A77Dztmp*`fb{kLLjp-33Lz&U153X?HV3&$s!(qO|H~wdIJzOCNr7vl$pTB*k8hJnyq~0lqBGf!YOjRQ zjYT$uQ>=1hx(IOA2{Zc@3Dhg4M*2mN?+gemP$nSJmoqy~JS(ajyQz!q=-*{=77Aq6 WpFjux=mOM(uyZQ#fzv^$!uk&@lb8?y diff --git a/platform/ios/app/ar.lproj/Localizable.strings b/platform/ios/app/ar.lproj/Localizable.strings new file mode 100644 index 000000000..e69de29bb diff --git a/platform/ios/ios.xcodeproj/project.pbxproj b/platform/ios/ios.xcodeproj/project.pbxproj index ad17e0067..cc56a73e7 100644 --- a/platform/ios/ios.xcodeproj/project.pbxproj +++ b/platform/ios/ios.xcodeproj/project.pbxproj @@ -842,6 +842,8 @@ DA737AE91E5917C300AD2CDE /* uk */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.strings; name = uk; path = uk.lproj/Localizable.strings; sourceTree = ""; }; DA737AEA1E5917EF00AD2CDE /* uk */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.strings; name = uk; path = uk.lproj/Root.strings; sourceTree = ""; }; DA737EE01D056A4E005BDA16 /* MGLMapViewDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MGLMapViewDelegate.h; sourceTree = ""; }; + DA80E9601FE84AD90065FC9B /* ar */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ar; path = ar.lproj/Localizable.strings; sourceTree = ""; }; + DA80E9611FE84AEF0065FC9B /* ar */ = {isa = PBXFileReference; lastKnownFileType = text.plist.stringsdict; name = ar; path = ar.lproj/Foundation.stringsdict; sourceTree = ""; }; DA821D041CCC6D59007508D4 /* LaunchScreen.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; path = LaunchScreen.storyboard; sourceTree = ""; }; DA821D051CCC6D59007508D4 /* Main.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; path = Main.storyboard; sourceTree = ""; }; DA8847D21CBAF91600AB86E3 /* Mapbox.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Mapbox.framework; sourceTree = BUILT_PRODUCTS_DIR; }; @@ -2131,6 +2133,7 @@ nl, hu, bg, + ar, ); mainGroup = DA1DC9411CB6C1C2006E619F; productRefGroup = DA1DC94B1CB6C1C2006E619F /* Products */; @@ -2546,6 +2549,7 @@ DAE8CCAD1E6E8C70009B5CB0 /* nl */, DA5C09BA1EFC48550056B178 /* hu */, DA3389651FA3EE1B001EA329 /* bg */, + DA80E9601FE84AD90065FC9B /* ar */, ); name = Localizable.strings; sourceTree = ""; @@ -2636,6 +2640,7 @@ DACFE7981F66EA2100630DA8 /* vi */, DA3389671FA3EE2F001EA329 /* bg */, DA33896B1FA3EF4A001EA329 /* hu */, + DA80E9611FE84AEF0065FC9B /* ar */, ); name = Foundation.stringsdict; sourceTree = ""; diff --git a/platform/ios/resources/bg.lproj/Localizable.strings b/platform/ios/resources/bg.lproj/Localizable.strings index e9b35e443..777f4fe56 100644 --- a/platform/ios/resources/bg.lproj/Localizable.strings +++ b/platform/ios/resources/bg.lproj/Localizable.strings @@ -2,16 +2,16 @@ "ANNOTATION_A11Y_HINT" = "Показва повече инфо"; /* No comment provided by engineer. */ -"API_CLIENT_400_DESC" = "�еу�пешна �е�и� за данни. Оригинална за�вка: %@"; +"API_CLIENT_400_DESC" = "�езавършена �е�и� от данни. Оригинална за�вка:%@"; /* No comment provided by engineer. */ -"API_CLIENT_400_REASON" = "Стату� кодът беше %ld"; +"API_CLIENT_400_REASON" = "Стату� код %ld"; /* No comment provided by engineer. */ "CANCEL" = "Отказ"; /* Accessibility hint for closing the selected annotation’s callout view and returning to the map */ -"CLOSE_CALLOUT_A11Y_HINT" = "Връща към картата"; +"CLOSE_CALLOUT_A11Y_HINT" = "Обратно към картата"; /* Accessibility hint */ "COMPASS_A11Y_HINT" = "Завърта картата в по�ока �евер"; @@ -23,17 +23,20 @@ "COMPASS_NORTH" = "С"; /* Instructions in Interface Builder designable; {key}, {plist file name} */ -"DESIGNABLE" = "За да �е показва Mapbox карта тук, добави %1$@ към тво� токен за до�тъп в %2$@\n\nЗа подробни ин�трукции, виж:"; +"DESIGNABLE" = "За да покажеш Mapbox-хо�твана карта тук, задай %1$@ към �во� токен за до�тъп в %2$@\nЗа повече детайли, виж:"; /* Setup documentation URL display string; keep as short as possible */ "FIRST_STEPS_URL" = "mapbox.com/help/first-steps-ios-sdk"; /* Accessibility hint */ -"INFO_A11Y_HINT" = "Показва кредитите, форма за връзка и още"; +"INFO_A11Y_HINT" = "Показва благодарно�ти, форма за обратна връзка и още"; /* Accessibility label */ "INFO_A11Y_LABEL" = "За тази карта"; +/* List separator */ +"LIST_SEPARATOR" = ","; + /* User-friendly error description */ "LOAD_MAP_FAILED_DESC" = "Картата не �е зареди поради неизве�тна грешка."; @@ -46,23 +49,41 @@ /* Accessibility label */ "MAP_A11Y_LABEL" = "Карта"; -/* Map accessibility value */ -"MAP_A11Y_VALUE" = "Мащаб %1$dх\n@2$ld видима(и) анотаци�(и)"; +/* Map accessibility value; {number of visible annotations} */ +"MAP_A11Y_VALUE_ANNOTATIONS" = "%ld видима анотаци�(и)."; + +/* Map accessibility value; {list of visible places} */ +"MAP_A11Y_VALUE_PLACES" = "Видими ме�та: %@."; + +/* Map accessibility value; {number of visible roads} */ +"MAP_A11Y_VALUE_ROADS" = "%ld видим път(�)."; + +/* Map accessibility value; {zoom level} */ +"MAP_A11Y_VALUE_ZOOM" = "Мащаб %dx."; /* User-friendly error description */ "PARSE_STYLE_FAILED_DESC" = "Картата не �е зареди поради повреден �тил."; +/* Accessibility value indicating that a road is a divided road (dual carriageway) */ +"ROAD_DIVIDED_A11Y_VALUE" = "Разделен път"; + +/* Accessibility value indicating that a road is a one-way road */ +"ROAD_ONEWAY_A11Y_VALUE" = "Еднопо�очно"; + +/* String format for accessibility value for road feature; {route number} */ +"ROAD_REF_A11Y_FMT" = "Маршрут %@"; + /* Action sheet title */ -"SDK_NAME" = "Mapbox Maps SDK for iOS"; +"SDK_NAME" = "Mapbox Maps SDK за iOS"; /* Developer-only SDK update notification; {latest version, in format x.x.x} */ -"SDK_UPDATE_AVAILABLE" = "Сега е налична Mapbox Maps SDK for iOS вер�и� %@:"; +"SDK_UPDATE_AVAILABLE" = "Mapbox Maps SDK за iOS вер�и� %@ е вече налична:"; /* User-friendly error description */ "STYLE_NOT_FOUND_DESC" = "Картата не �е зареди поради неоткрит или не�ъвме�тим �тил."; /* Telemetry prompt message */ -"TELEMETRY_DISABLED_MSG" = "Можеш да помогнеш OpenStreetMap и Mapbox да �танат по-добри, като предо�тавиш анонимни данни за потребление."; +/* OpenStreetMap full name attribution */ /* Telemetry prompt button */ "TELEMETRY_DISABLED_OFF" = "�е уча�твам"; @@ -71,7 +92,7 @@ "TELEMETRY_DISABLED_ON" = "Уча�твам"; /* Telemetry prompt message */ -"TELEMETRY_ENABLED_MSG" = "Помагаш OpenStreetMap и Mapbox да �танат по-добри, като предо�тав�ш анонимни данни за потребление."; +"TELEMETRY_ENABLED_MSG" = "Ти помагаш OpenStreetMap и Mapbox картите да �тават по-добри, като предо�тав�ш анонимни данни за употреба."; /* Telemetry prompt button */ "TELEMETRY_ENABLED_OFF" = "Спирам уча�тие"; @@ -80,14 +101,14 @@ "TELEMETRY_ENABLED_ON" = "Продължавам да уча�твам"; /* Telemetry prompt button */ -"TELEMETRY_MORE" = "И�кам още инфо"; +"TELEMETRY_MORE" = "Покажи ми още"; /* Action in attribution sheet */ -"TELEMETRY_NAME" = "Mapbox Телеметри�"; +"TELEMETRY_NAME" = "Mapbox телеметри�"; /* Telemetry prompt title */ -"TELEMETRY_TITLE" = "�аправи Mapbox картите по-добри"; +"OSM_FULL_NAME" = "OpenStreetMap"; -/* Default user location annotation title */ -"USER_DOT_TITLE" = "Сега �и тук"; +/* OpenStreetMap short name attribution */ +"OSM_SHORT_NAME" = "OSM"; diff --git a/platform/ios/resources/bg.lproj/Localizable.stringsdict b/platform/ios/resources/bg.lproj/Localizable.stringsdict index f155a02ac..8f2afce03 100644 --- a/platform/ios/resources/bg.lproj/Localizable.stringsdict +++ b/platform/ios/resources/bg.lproj/Localizable.stringsdict @@ -2,11 +2,42 @@ - MAP_A11Y_VALUE + MAP_A11Y_VALUE_ANNOTATIONS NSStringLocalizedFormatKey - %#@level@ -%#@count@ + %#@count@ + count + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + one + %d видими анотации + other + %d видими анотации + + + MAP_A11Y_VALUE_ROADS + + NSStringLocalizedFormatKey + %#@count@ + count + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + one + %d път видимо�т + other + %d пътища видимо�т + + + MAP_A11Y_VALUE_ZOOM + + NSStringLocalizedFormatKey + %#@level@ level NSStringFormatSpecTypeKey @@ -18,17 +49,6 @@ other Мащаб %dx - count - - NSStringFormatSpecTypeKey - NSStringPluralRuleType - NSStringFormatValueTypeKey - ld - one - %d видима анотаци� - other - %d видими анотации - diff --git a/platform/ios/resources/es.lproj/Localizable.strings b/platform/ios/resources/es.lproj/Localizable.strings index 5f88eeb5e9a2e0a33ca52b08d6c04bdee14187d9..43f3ec3d6e8c8e8b5d9585fee0eda9937359ddb2 100644 GIT binary patch literal 8156 zcmeI1&2JM|6vf|~|Dd~3)JU`{P^zv#l^PNUqB>3#Csd$Hk@Ib^?o_p`}KY!l}Uxy+rgk631!$_ZQ*wMGA?>Icy zy(66+>%7pDx5BkBr>9%`tc6XTZH5({wZgW}Z|n0&XAd;i(w#ZI^Mk%~VKtn_*~eiR zIvVMRS6ZovGarP3M*AAy)%BlRYcAZ?I@h!svbA)-(7l14>1!6ta-w$z;hEmp)7YM# z*oo3||1i$Gukm5HsXJNjbxF1z7DH3NjVR-G_&$8A&vsbSNL%-^)D6AQDnre|yoIcS z^kW@|8sVJPId(KUh&p*>q;YJCKFH9FPmlBrmPOOCY=Yd(-+e1{M|X>G5Uq7bXY=95 z&t#1aSz|%=z_(?KAm6UE+KV#d8S9I-*kw=pBn^ZS{*G-IzqvUi2yva45aTiU$0RcYFHoYQ*Sc&0{@_4aTy~Kv!QBV0>32y*SUQ z?i3NT`{6g8@eT+8OQ2z>>%0&4#)Q=j#qR6?U559$^GAhu=oRV}n znjsH7yCJ_mC?TAPEHmVaa6|MBB^QV^`Vzku;yT-IsFiKiLYkfGIik}x<`=#?)U!wq zy6;M^-@{X#Jr6I#H}UF3ce-&k^k4>j!aH#D%aSJM)0J>vF^VOdvSp6ab-j^t0lewV zfVWRITNxAhdmx)9ZZQ+D>iR@-4#Jt9?u1|U-kT_6Vj}DCBE}y~bUS=0HgzUpg^}JM z!Uj=8M$BYb$hnXR^lJ0ryZH7ml8tYcejpjZ<*~j672 zh&&^mV=sP3()4M~4zpr=vPz)_SyuGSX2g1BvMW2h*4pG}B*8yMWU5mf`{eAL{al@Z z0@nuCqKMXaty7KIS(;2^scE`Q<0s|?hvb}uXU79kI-Td6(gZ&^t0e|Td+?n6PQ{eG zj?Wi_0;)gQDSI7jRW;qx+(>jo9>-?bXipfRvSd8fSLPqA-xU%Phn3e~(|Swt=Bj?z z^}DR!mB=cLPF8QO8(AGZQ)}TbEHf0#aYTZij>#^z7}c+z#fJ9%G)akBV$o0E{OEdP z{YO#X&#QachKV0-M%6b*0k-G@4s@ha@SA4cX;tN@l4U2QeyF%;ijS!cr*&%WQoPPf zA}UbUaqXHi)^*7>3SUjgbUlvNz571;=Q?7#?#^G%#O1nTw#MtyeIfP)Wj&j+wPW6y zxN7H-GOl~AtI+Ereued@050Rp4MhVCSk^1~4_507J9yC^s$=Qu{Psd?Q0dYQQ`-{z z7x&L&X+ftjr}w=#@c7+)^Rmd<1an+f264`E&-CfJl=_rRG|7~Vk$+$5E;ZpF5gC&V z+SW5Jyyj zFY{i`^$F=@b*jyV;(6LW)3R_>-et-)KAAh!>=(}pnW0_BqaBfz^`{@V#aSU+57vf7 z@nAQyIQ5Ksdq;YqxZD#4+`YOA!J8fN61xFZ>acC9x2iUHC_7N$Q0e6Sl$kz9(?fMZ zmIJg=$G8tlS(`O`m&namVH0;iH{NPlw%eq(>^C*S&(e~e#M!!T36)e|34YzHM}G$|FglJrosrcRihj~s zbmgmBH)E$yY}=C>=w2npM0#& zDP=rr68Dzw7TCRTr(E6xw3ppGPz{%@g`ZRA!BX_5^-671Hi4WlLJ58 zA#0g&b3A|r_NIu1O=TN+hrH8%hYEL{ZS^B_n#Wbkf>xlX^nM9($^1_w8Cp@%d*?WJ zmqe0xnAT!^9BTz6b*vgc-ZAibLY6ZIvFJS-&+Zsvha$~-s&ni{Ee~3|l8F14x71GL z8mtWF6GvanPHV!}a>-7uD3f;;h;%sGS5@{n-+vz_RjVY^di2nTNpl%A@lR7?nE$cF zKZw(?RJT$cN#qxHfr%~0(Wgb#qYi0wIY}r9<;(lufzvc8LG8|Gb&lvy@q4X8Q1&7sj`^G3X_#ZUDG#`shUBnQq`ZI zWOHm=uWY8FioRhp@_V+-YDCgSn7YiwRS7{O|E74)o_#{^bDH97|LfcOPRdVZFxL9?7rA##|A8bq{{@0?Cc*#! literal 3935 zcmd5<%Wm676y4`520;uYfgefHRe}PcCE5{6iGoPEa1cNkkt2C*a)zB5I#GfE{f#cO z%p!{-yKeO-{gR$L6s6da;kelpUf7~I_ciC7dwlSi1z9Gnl~Y+rw_s;dIrjMA-u+-O zh|?hL#e+%k^y%s3Wp9w)XTPxf{aRROI4hSQEt6`dP02I4{G#qZzjyE8F&k)>>9Q1v zQyG0JbCI*@f(bR3N(i&xL?8Ahov0TM(#g+Ho=m!7((%DVW3<7$tl-RXBRIFS(mBN3VxY*veBZ0E%f)G-Q!Bpx)C6f9eQ$>m&AX0*(6O&Qou zk>4dlCm3|X$cOB3m5G9z)$uKZ$1qt|Xe-s6xif0G5ShaOxl-D3C$;+Lk3TKTcv0xu zu}dl5;Jcg|;cBD&G3`&5yz+zYL~#;MIzbf0Oyu%Na(8*ZIw55gs~me;6dm zwGhV=ND$3=R&jhdC}iz>8HVHVwB?SN}xeJN?-b!4_2vr3ZShsnjoQ;^-!Lfp;mTS%OXd~Ilwhnd|HU- z?EQsUeAs30t3q1GX0i}W@lt&7NdVT~@gO*iLZ4wsU6-0TVOXvFDABk+C%^#7eO^uV zTgHE{m!Ee%kdWeC#@Wu(2QNSs#ca)-zQC&h8YedTb2~phc=1}jRzAL-I-yXcY}&}s zh9F8f0DxdCo3`s2I1*o?(jg zN2N&(&@tW2QE!x_lOzp?$poi;!@vp}+6T!G&O}ii%%rhy&pJ`rJ*n-U%`djz_gY$d zgQNHwj#^R4%<@w%LHAu6C20%p-$>6vB&1I8$+Cr)pRH*&u-fF=U@8DQG5dzn;%nST zbk$Z6h#f#h-A6rYJ{$(4AdN@9`CYb3I<~^>&5RT(FQ9H-w*aBc$cjMLoR5RKy3C_Y|Y@MiE04Q{zHnw8%+SI)HpfDjEo*4yfm7d6pU)#ViI&@(7v1Ky2b z+J?33&?iAO4kw%SmiT*xszXSju|%zh!aiyvJ+zP7vEQ8E%fwgN!7$KxYvN%PbiyWQ zRO9AB<5kU;me=jMzU|d$o^MY!0suGtWxSM1qoFqAclGv8>yj1XQWRVJc@@WfKfzb@ z-cJ6u?cjR|0%l=5{b!W^j&-~SC1G><5oTfe7nHZH;wnTvULc~m%%F&V$#RGuqX{yJ z)dG2J9E*SQFt4$}z)&OkT)g3nN1oO+)k(K^((8iL9Ni$!R6DG()^G)WyJC?D;h2+dwL+5auaiO0Z;yyh{t6b_Ke8yN{oy zW=cFBc7qgbKY;+RH#Xd(KM5;|>S-6;P*w{mtW2$FC$`J=d$8T08YX&j6psgY6Mq7> z@;gGPtj5-BTvnsL4EDf7T`H`^st|6C_7r}x6wWNjdY6@BC9FN5>tUOQQP>aD(J8Q- z&@ix@l4FnBU{S+F0RE*o*W_d1LH%y@wmYtb0+w*Cq=1WdTA&86U>flH+M(C*E?i-- z5{{_l;5SuGYv)!ga!XP1(UC6-OA^c2!R6!E3L$q5)p&VWs9VBppHt{v-v4V%ZB6Zz zy5gKJ0B+*eCby1#9j_TxBIdO;n_w!}cN%>^9yLtw)XPtBYb87u{!v^@p!Y_gD|Zkl z6hv03Q4CVJ4I0*p(cU=eYD3eT>e)!nCQRB(S2n%B4cS)$cEyatL9-gp4g{bLf#Nns b;ww!XC*f$)1+_Qv$1uS8ikRN(Q6 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 Dj-U?E literal 865 zcmbu7KTg9i6vp?S;wfV*sM@t+Ff>JxoVX&%&@PtaxX8%0gX2i_2F%=mBQP^C^d?+@ zE0Cs9{|pEP)+c@M`+eVgU+*8oKBT3v7b`1;&eaBlwZ=j&N^WK0q|wkH_B>3`l!jqRI_$X78B=pq1l5PV|IwhLiyU1uXTF@j&u-_yOS&^Bi4*YX;7yI44kWR-L6M=c2nX%JD2u6^7TJ7_yij8RS&zvvP|a1zWLCE~)?-`DETT}kCy r+X=D6-$dxoRL!=C0FN-+|R diff --git a/platform/macos/sdk/vi.lproj/Localizable.strings b/platform/macos/sdk/vi.lproj/Localizable.strings index 95e327d6890dc356874aefda9c9a8f051f70da43..f130d2f3500c8790f426c5357d6ed9e4e96714d3 100644 GIT binary patch literal 1654 zcmchX&n^Q|6vn@9?RbF6q)URZ6^qutG#PE9(*>KxRB2-vsj2WdBKCG3z|z9P!b`Bi z7QcIIwAErkWpeN7oH;%BeBb%beSMkMxLlQWsG6FZ)HZvA-}~B9s1v>!e^U|5#aAP; zYGV!*6B!Zdl4DvUO3PD087-=!RcsNvjLqR+vff2(Nee`}nrEez)tO^5jHYfKSAnkC zW7T!;#CQXpIt}bD9%EyojXlymd#JmQuTRvmgRiM)O_6twdPb;fIOt09wQf-j7oowO zATz97S$5hS1eQ62c^7W3oK_$144taljvW#autHXByJ~tD^IqfsN%xYTWi-RHPWOCz z=Ubeej;(4_2V{$MJS3irXl4zaEK$LKG2PE*qQ<&zQ0Pt{yMHw^-3ar{k8h`@z)a?c zFf+Z1y4N24Z_k^V^+7Du>GY*j{o-qHzKhgpsy&A$=L71i_wnYTp8(y3WQ@3PTy0<@ zTS?B|CV^Vi6yxi@TQ=aPz`asIlX-Rzm1NO~*L9mrd{U%uGl%4ApxNJ@=iBo=I}^pO zGmBt+e7}86&AoTecW4V1r(wN=caAE{n$RrI49f+v!CPh$Tvkpiyme-_!-`Ri(as=V d#?rl2{lv?l%Dy}ED{g$aX;JMy_QpwScmp=67Lot} literal 929 zcmbu7u};EJ6oz-6;)D^R1Xkiuq?jh9m)P3@mWGx>Zz#Q_T#U>vCJsg&oDFfq#6*n= z9UN+SkNN_>g14m&U}6;6Zcgqw=llQveEM&N9B3oU+v|G7ay!lhEYG7JbgYr-ks%}0 zgq0}X36d;U^{S{IX5j#`m2f_F;r%M~Z@>us3t)CQzi0eCza!AM2{8VH zz)3IzC-iTlTJY@lzzbgXv*k=?8vqqIWpO8jWI2cQ&k{0DI^{fl!b{^6Nia=oG$ICZ z2%7*S%&}r0A`66Kv8iJT%VO+6y*)JO=@wEN!m%pqyKC71Uz*QlUAnzg#9xA4Vkijf zHKZy33^sK&m<^WsPon%+u7XX&`K$S@n07557k4}WW(Nl;aHYiT#*ThmqkgeHbAbOO3d*VFypqa+*xo+>6HilH^HV(Ns{SBPBkFm<4Hg4d&zg`UjlVxXs>mAZ(ApjdF};d;#6&T-g8s From f644d188be719fc6a7a5e6b66b2a69c42e28a970 Mon Sep 17 00:00:00 2001 From: Fabian Guerra Date: Thu, 14 Dec 2017 16:44:00 -0600 Subject: [PATCH 68/92] [ios, macos] Remove duplicated variables between MGLMapSnapshotOptions and MGLMapSnapshotter --- platform/darwin/src/MGLMapSnapshotter.h | 39 +------ platform/darwin/src/MGLMapSnapshotter.mm | 138 ++++++----------------- 2 files changed, 35 insertions(+), 142 deletions(-) diff --git a/platform/darwin/src/MGLMapSnapshotter.h b/platform/darwin/src/MGLMapSnapshotter.h index 978e19dc2..fc68204a7 100644 --- a/platform/darwin/src/MGLMapSnapshotter.h +++ b/platform/darwin/src/MGLMapSnapshotter.h @@ -190,44 +190,9 @@ MGL_EXPORT - (void)cancel; /** - The zoom level. - - The default zoom level is 0. If this property is non-zero and the camera - property is non-nil, the camera’s altitude is ignored in favor of this - property’s value. + The options to use when generating a map snapshot. */ -@property (nonatomic) double zoomLevel; - -/** - A camera representing the viewport visible in the snapshot. - - If this property is non-nil and the `coordinateBounds` property is set to a - non-empty coordinate bounds, the camera’s center coordinate and altitude are - ignored in favor of the `coordinateBounds` property. - */ -@property (nonatomic) MGLMapCamera *camera; - -/** - The coordinate rectangle that encompasses the bounds to capture. - - If this property is non-empty and the camera property is non-nil, the camera’s - center coordinate and altitude are ignored in favor of this property’s value. - */ -@property (nonatomic) MGLCoordinateBounds coordinateBounds; - -/** - URL of the map style to snapshot. - - The URL may be a full HTTP or HTTPS URL, a Mapbox URL indicating the style’s - map ID (`mapbox://styles/{user}/{style}`), or a path to a local file relative - to the application’s resource path. Specify `nil` for the default style. - */ -@property (nonatomic, nullable) NSURL *styleURL; - -/** - The size of the output image, measured in points. - */ -@property (nonatomic) CGSize size; +@property (nonatomic) MGLMapSnapshotOptions *options; /** Indicates whether a snapshot is currently being generated. diff --git a/platform/darwin/src/MGLMapSnapshotter.mm b/platform/darwin/src/MGLMapSnapshotter.mm index 8b5448881..15a8f6c8c 100644 --- a/platform/darwin/src/MGLMapSnapshotter.mm +++ b/platform/darwin/src/MGLMapSnapshotter.mm @@ -81,7 +81,7 @@ const CGFloat MGLSnapshotterMinimumPixelSize = 64; @end @interface MGLMapSnapshotter() -@property (nonatomic) MGLMapSnapshotOptions *options; + @end @implementation MGLMapSnapshotter { @@ -96,40 +96,9 @@ const CGFloat MGLSnapshotterMinimumPixelSize = 64; { self = [super init]; if (self) { - _options = options; + [self setOptions:options]; _loading = false; - - mbgl::DefaultFileSource *mbglFileSource = [MGLOfflineStorage sharedOfflineStorage].mbglFileSource; - _mbglThreadPool = mbgl::sharedThreadPool(); - - std::string styleURL = std::string([options.styleURL.absoluteString UTF8String]); - - // Size; taking into account the minimum texture size for OpenGL ES - // For non retina screens the ratio is 1:1 MGLSnapshotterMinimumPixelSize - mbgl::Size size = { - static_cast(MAX(options.size.width, MGLSnapshotterMinimumPixelSize)), - static_cast(MAX(options.size.height, MGLSnapshotterMinimumPixelSize)) - }; - - float pixelRatio = MAX(options.scale, 1); - - // Camera options - mbgl::CameraOptions cameraOptions; - if (CLLocationCoordinate2DIsValid(options.camera.centerCoordinate)) { - cameraOptions.center = MGLLatLngFromLocationCoordinate2D(options.camera.centerCoordinate); - } - cameraOptions.angle = MAX(0, options.camera.heading) * mbgl::util::DEG2RAD; - cameraOptions.zoom = MAX(0, options.zoomLevel); - cameraOptions.pitch = MAX(0, options.camera.pitch); - - // Region - mbgl::optional coordinateBounds; - if (!MGLCoordinateBoundsIsEmpty(options.coordinateBounds)) { - coordinateBounds = MGLLatLngBoundsFromCoordinateBounds(options.coordinateBounds); - } - - // Create the snapshotter - _mbglMapSnapshotter = std::make_unique(*mbglFileSource, *_mbglThreadPool, styleURL, size, pixelRatio, cameraOptions, coordinateBounds); + } return self; } @@ -437,81 +406,40 @@ const CGFloat MGLSnapshotterMinimumPixelSize = 64; _mbglMapSnapshotter.reset(); } -- (NSURL *)styleURL -{ - NSString *styleURLString = @(_mbglMapSnapshotter->getStyleURL().c_str()); - return styleURLString.length ? [NSURL URLWithString:styleURLString] : nil; -} - -- (void)setStyleURL:(NSURL *)url -{ - _mbglMapSnapshotter->setStyleURL(std::string([url.absoluteString UTF8String])); -} - -- (CGSize)size -{ - mbgl::Size size = _mbglMapSnapshotter->getSize(); - return CGSizeMake(size.width, size.height); -} - -- (void)setSize:(CGSize)size -{ - _mbglMapSnapshotter->setSize({ - static_cast(MAX(size.width, MGLSnapshotterMinimumPixelSize)), - static_cast(MAX(size.height, MGLSnapshotterMinimumPixelSize)) - }); -} - -- (MGLMapCamera *)camera -{ - mbgl::CameraOptions cameraOptions = _mbglMapSnapshotter->getCameraOptions(); - CGFloat pitch = *cameraOptions.pitch; - CLLocationDirection heading = mbgl::util::wrap(*cameraOptions.angle, 0., 360.); - CLLocationDistance distance = MGLAltitudeForZoomLevel(*cameraOptions.zoom, pitch, cameraOptions.center->latitude(), [self size]); - return [MGLMapCamera cameraLookingAtCenterCoordinate:MGLLocationCoordinate2DFromLatLng(*cameraOptions.center) - fromDistance:distance - pitch:pitch - heading:heading]; -} - -- (void)setCamera:(MGLMapCamera *)camera +- (void)setOptions:(MGLMapSnapshotOptions *)options { + _options = options; + mbgl::DefaultFileSource *mbglFileSource = [MGLOfflineStorage sharedOfflineStorage].mbglFileSource; + _mbglThreadPool = mbgl::sharedThreadPool(); + + std::string styleURL = std::string([options.styleURL.absoluteString UTF8String]); + + // Size; taking into account the minimum texture size for OpenGL ES + // For non retina screens the ratio is 1:1 MGLSnapshotterMinimumPixelSize + mbgl::Size size = { + static_cast(MAX(options.size.width, MGLSnapshotterMinimumPixelSize)), + static_cast(MAX(options.size.height, MGLSnapshotterMinimumPixelSize)) + }; + + float pixelRatio = MAX(options.scale, 1); + + // Camera options mbgl::CameraOptions cameraOptions; - CLLocationCoordinate2D center; - if (CLLocationCoordinate2DIsValid(camera.centerCoordinate)) { - cameraOptions.center = MGLLatLngFromLocationCoordinate2D(camera.centerCoordinate); - center = camera.centerCoordinate; - } else { - // Center is optional, but always set. - center = MGLLocationCoordinate2DFromLatLng(*_mbglMapSnapshotter->getCameraOptions().center); + if (CLLocationCoordinate2DIsValid(options.camera.centerCoordinate)) { + cameraOptions.center = MGLLatLngFromLocationCoordinate2D(options.camera.centerCoordinate); + } + cameraOptions.angle = MAX(0, options.camera.heading) * mbgl::util::DEG2RAD; + cameraOptions.zoom = MAX(0, options.zoomLevel); + cameraOptions.pitch = MAX(0, options.camera.pitch); + + // Region + mbgl::optional coordinateBounds; + if (!MGLCoordinateBoundsIsEmpty(options.coordinateBounds)) { + coordinateBounds = MGLLatLngBoundsFromCoordinateBounds(options.coordinateBounds); } - cameraOptions.angle = MAX(0, camera.heading) * mbgl::util::DEG2RAD; - cameraOptions.zoom = MAX(0, MGLZoomLevelForAltitude(camera.altitude, camera.pitch, center.latitude, [self size])); - cameraOptions.pitch = MAX(0, camera.pitch); -} - -- (double)zoomLevel -{ - mbgl::CameraOptions cameraOptions = _mbglMapSnapshotter->getCameraOptions(); - return MGLAltitudeForZoomLevel(*cameraOptions.zoom, *cameraOptions.pitch, cameraOptions.center->latitude(), [self size]); -} - -- (void)setZoomLevel:(double)zoomLevel -{ - mbgl::CameraOptions cameraOptions = _mbglMapSnapshotter->getCameraOptions(); - cameraOptions.zoom = zoomLevel; - _mbglMapSnapshotter->setCameraOptions(cameraOptions); -} - -- (MGLCoordinateBounds)coordinateBounds -{ - return MGLCoordinateBoundsFromLatLngBounds(_mbglMapSnapshotter->getRegion()); -} - -- (void)setCoordinateBounds:(MGLCoordinateBounds)coordinateBounds -{ - _mbglMapSnapshotter->setRegion(MGLLatLngBoundsFromCoordinateBounds(coordinateBounds)); + // Create the snapshotter + _mbglMapSnapshotter = std::make_unique(*mbglFileSource, *_mbglThreadPool, styleURL, size, pixelRatio, cameraOptions, coordinateBounds); } @end From 6a9eec8ed5dee4a4527c25523d4a8b1aee758212 Mon Sep 17 00:00:00 2001 From: Asheem Mamoowala Date: Wed, 20 Dec 2017 14:51:30 -0800 Subject: [PATCH 69/92] Fix CustomLayer context retain count (#10765) * [core] RenderCustomLayer should de-initialize old context * [iOS, macOS] Use toll-free bridging to retain/release MGLOpenGLStyleLayer instead of a separate array. --- platform/darwin/src/MGLOpenGLStyleLayer.mm | 6 ++---- platform/darwin/src/MGLStyle.mm | 2 -- platform/darwin/src/MGLStyle_Private.h | 2 -- .../renderer/layers/render_custom_layer.cpp | 21 ++++++++++++------- .../renderer/layers/render_custom_layer.hpp | 1 + 5 files changed, 16 insertions(+), 16 deletions(-) diff --git a/platform/darwin/src/MGLOpenGLStyleLayer.mm b/platform/darwin/src/MGLOpenGLStyleLayer.mm index 36a3c20c9..8933a7738 100644 --- a/platform/darwin/src/MGLOpenGLStyleLayer.mm +++ b/platform/darwin/src/MGLOpenGLStyleLayer.mm @@ -47,7 +47,7 @@ void MGLDrawCustomStyleLayer(void *context, const mbgl::style::CustomLayerRender when creating an OpenGL style layer. */ void MGLFinishCustomStyleLayer(void *context) { - MGLOpenGLStyleLayer *layer = (__bridge MGLOpenGLStyleLayer *)context; + MGLOpenGLStyleLayer *layer = (__bridge_transfer MGLOpenGLStyleLayer *)context; [layer willMoveFromMapView:layer.style.mapView]; } @@ -101,7 +101,7 @@ void MGLFinishCustomStyleLayer(void *context) { MGLPrepareCustomStyleLayer, MGLDrawCustomStyleLayer, MGLFinishCustomStyleLayer, - (__bridge void *)self); + (__bridge_retained void *)self); return self = [super initWithPendingLayer:std::move(layer)]; } @@ -116,9 +116,7 @@ void MGLFinishCustomStyleLayer(void *context) { [NSException raise:@"MGLLayerReuseException" format:@"%@ cannot be added to more than one MGLStyle at a time.", self]; } - _style.openGLLayers[self.identifier] = nil; _style = style; - _style.openGLLayers[self.identifier] = self; } - (void)addToStyle:(MGLStyle *)style belowLayer:(MGLStyleLayer *)otherLayer { diff --git a/platform/darwin/src/MGLStyle.mm b/platform/darwin/src/MGLStyle.mm index 244fb94ef..987ae5f06 100644 --- a/platform/darwin/src/MGLStyle.mm +++ b/platform/darwin/src/MGLStyle.mm @@ -77,7 +77,6 @@ @property (nonatomic, readonly, weak) MGLMapView *mapView; @property (nonatomic, readonly) mbgl::style::Style *rawStyle; @property (readonly, copy, nullable) NSURL *URL; -@property (nonatomic, readwrite, strong) NS_MUTABLE_DICTIONARY_OF(NSString *, MGLOpenGLStyleLayer *) *openGLLayers; @property (nonatomic) NS_MUTABLE_DICTIONARY_OF(NSString *, NS_DICTIONARY_OF(NSObject *, MGLTextLanguage *) *) *localizedLayersByIdentifier; @end @@ -169,7 +168,6 @@ static NSURL *MGLStyleURL_trafficNight; if (self = [super init]) { _mapView = mapView; _rawStyle = rawStyle; - _openGLLayers = [NSMutableDictionary dictionary]; _localizedLayersByIdentifier = [NSMutableDictionary dictionary]; } return self; diff --git a/platform/darwin/src/MGLStyle_Private.h b/platform/darwin/src/MGLStyle_Private.h index e5bd79dc0..4cbe953a4 100644 --- a/platform/darwin/src/MGLStyle_Private.h +++ b/platform/darwin/src/MGLStyle_Private.h @@ -26,8 +26,6 @@ namespace mbgl { - (nullable NS_ARRAY_OF(MGLAttributionInfo *) *)attributionInfosWithFontSize:(CGFloat)fontSize linkColor:(nullable MGLColor *)linkColor; -@property (nonatomic, readonly, strong) NS_MUTABLE_DICTIONARY_OF(NSString *, MGLOpenGLStyleLayer *) *openGLLayers; - - (void)setStyleClasses:(NS_ARRAY_OF(NSString *) *)appliedClasses transitionDuration:(NSTimeInterval)transitionDuration; @end diff --git a/src/mbgl/renderer/layers/render_custom_layer.cpp b/src/mbgl/renderer/layers/render_custom_layer.cpp index 7ece3970d..adafd8583 100644 --- a/src/mbgl/renderer/layers/render_custom_layer.cpp +++ b/src/mbgl/renderer/layers/render_custom_layer.cpp @@ -43,20 +43,25 @@ std::unique_ptr RenderCustomLayer::createBucket(const BucketParameters&, } void RenderCustomLayer::render(PaintParameters& paintParameters, RenderSource*) { - if (!initialized) { + if (context != impl().context || !initialized) { + //If the context changed, deinitialize the previous one before initializing the new one. + if (context && !contextDestroyed && impl().deinitializeFn) { + impl().deinitializeFn(context); + } + context = impl().context; assert(impl().initializeFn); impl().initializeFn(impl().context); initialized = true; } - gl::Context& context = paintParameters.context; + gl::Context& glContext = paintParameters.context; const TransformState& state = paintParameters.state; // Reset GL state to a known state so the CustomLayer always has a clean slate. - context.bindVertexArray = 0; - context.setDepthMode(paintParameters.depthModeForSublayer(0, gl::DepthMode::ReadOnly)); - context.setStencilMode(gl::StencilMode::disabled()); - context.setColorMode(paintParameters.colorModeForRenderPass()); + glContext.bindVertexArray = 0; + glContext.setDepthMode(paintParameters.depthModeForSublayer(0, gl::DepthMode::ReadOnly)); + glContext.setStencilMode(gl::StencilMode::disabled()); + glContext.setColorMode(paintParameters.colorModeForRenderPass()); CustomLayerRenderParameters parameters; @@ -70,12 +75,12 @@ void RenderCustomLayer::render(PaintParameters& paintParameters, RenderSource*) parameters.fieldOfView = state.getFieldOfView(); assert(impl().renderFn); - impl().renderFn(impl().context, parameters); + impl().renderFn(context, parameters); // Reset the view back to our original one, just in case the CustomLayer changed // the viewport or Framebuffer. paintParameters.backend.bind(); - context.setDirtyState(); + glContext.setDirtyState(); } } // namespace mbgl diff --git a/src/mbgl/renderer/layers/render_custom_layer.hpp b/src/mbgl/renderer/layers/render_custom_layer.hpp index 32ed9da8d..6d1fea99d 100644 --- a/src/mbgl/renderer/layers/render_custom_layer.hpp +++ b/src/mbgl/renderer/layers/render_custom_layer.hpp @@ -26,6 +26,7 @@ public: private: bool initialized = false; bool contextDestroyed = false; + void * context = nullptr; }; template <> From 8e69a35d758d4fa632ed153590ae56c976269b76 Mon Sep 17 00:00:00 2001 From: Jason Wray Date: Wed, 20 Dec 2017 16:55:30 -0800 Subject: [PATCH 70/92] [ios, build] Stop packaging i386 simulator arch MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Only builds and packages x86_64 architecture in our frameworks and dSYM. Removes support for 32-bit simulators, such as the iPhone 5 and iPad 2. This does not affect device support — 32-bit devices are still supported via the arm7 architecture. --- platform/ios/CHANGELOG.md | 5 +++++ platform/ios/INSTALL.md | 8 +++++--- platform/ios/scripts/metrics.sh | 2 -- platform/ios/scripts/package.sh | 2 +- platform/ios/scripts/validate-framework-zip.sh | 2 +- scripts/publish_binary_size.sh | 1 - 6 files changed, 12 insertions(+), 8 deletions(-) diff --git a/platform/ios/CHANGELOG.md b/platform/ios/CHANGELOG.md index c373eaf17..d5bf98d3f 100644 --- a/platform/ios/CHANGELOG.md +++ b/platform/ios/CHANGELOG.md @@ -2,9 +2,14 @@ Mapbox welcomes participation and contributions from everyone. Please read [CONTRIBUTING.md](../../CONTRIBUTING.md) to get started. +## 3.7.2 + +* Removed support for 32-bit simulators. ([#10772](https://github.com/mapbox/mapbox-gl-native/pull/10772)) + ## 3.7.1 - December 6, 2017 ### Annotations + * Fixed an issue that could cause `-[MGLMapViewDelegate mapView:didSelectAnnotation:]` to be triggered when tapping next to an `MGLAnnotationImage` annotation. ([#10538](https://github.com/mapbox/mapbox-gl-native/pull/10538)) ### Packaging diff --git a/platform/ios/INSTALL.md b/platform/ios/INSTALL.md index 9a85dfe6f..9fca31872 100644 --- a/platform/ios/INSTALL.md +++ b/platform/ios/INSTALL.md @@ -4,12 +4,14 @@ This document explains how to build a development version of Mapbox Maps SDK for ### Requirements -The Mapbox Maps SDK for iOS is intended to run on iOS 8.0 and above on the following devices and their simulators: +The Mapbox Maps SDK for iOS is intended to run on iOS 8.0 and above on the following devices: -* iPhone 4S and above (5, 5c, 5s, 6, 6 Plus) -* iPad 2 and above (3, 4, Mini, Air, Mini 2, Air 2) +* iPhone 4s and above (5, 5c, 5s, 6, 6 Plus, 7, 7 Plus, 8, 8 Plus, X) +* iPad 2 and above (3, 4, Mini, Air, Mini 2, Air 2, Pro) * iPod touch 5th generation and above +Note that 32-bit simulators (such as the iPhone 5 or iPad 2) are not supported. + The Mapbox Maps SDK for iOS requires Xcode 8.0 or higher. To use this SDK with Xcode 7.3.1, download and use a symbols build from the [releases](https://github.com/mapbox/mapbox-gl-native/releases) page. ### Building the SDK diff --git a/platform/ios/scripts/metrics.sh b/platform/ios/scripts/metrics.sh index c45beb3a1..2a241323c 100755 --- a/platform/ios/scripts/metrics.sh +++ b/platform/ios/scripts/metrics.sh @@ -7,13 +7,11 @@ set -o pipefail xcrun bitcode_strip build/ios/pkg/dynamic/Mapbox.framework/Mapbox -r -o build/ios/pkg/dynamic/Mapbox-stripped lipo build/ios/pkg/dynamic/Mapbox-stripped -extract armv7 -output build/ios/pkg/dynamic/Mapbox-stripped-armv7 lipo build/ios/pkg/dynamic/Mapbox-stripped -extract arm64 -output build/ios/pkg/dynamic/Mapbox-stripped-arm64 -lipo build/ios/pkg/dynamic/Mapbox-stripped -extract i386 -output build/ios/pkg/dynamic/Mapbox-stripped-i386 lipo build/ios/pkg/dynamic/Mapbox-stripped -extract x86_64 -output build/ios/pkg/dynamic/Mapbox-stripped-x86_64 # Track individual architectures scripts/log_binary_size.sh "build/ios/pkg/dynamic/Mapbox-stripped-armv7" "Platform=iOS,Arch=armv7" scripts/log_binary_size.sh "build/ios/pkg/dynamic/Mapbox-stripped-arm64" "Platform=iOS,Arch=arm64" -scripts/log_binary_size.sh "build/ios/pkg/dynamic/Mapbox-stripped-i386" "Platform=iOS,Arch=i386" scripts/log_binary_size.sh "build/ios/pkg/dynamic/Mapbox-stripped-x86_64" "Platform=iOS,Arch=x86_64" # Track overall library size diff --git a/platform/ios/scripts/package.sh b/platform/ios/scripts/package.sh index 0acce9a57..6df1b687b 100755 --- a/platform/ios/scripts/package.sh +++ b/platform/ios/scripts/package.sh @@ -70,7 +70,7 @@ xcodebuild \ CURRENT_SHORT_VERSION=${SHORT_VERSION} \ CURRENT_SEMANTIC_VERSION=${SEM_VERSION} \ CURRENT_COMMIT_HASH=${HASH} \ - ONLY_ACTIVE_ARCH=NO \ + ARCHS="x86_64" \ -derivedDataPath ${DERIVED_DATA} \ -workspace ./platform/ios/ios.xcworkspace \ -scheme ${SCHEME} \ diff --git a/platform/ios/scripts/validate-framework-zip.sh b/platform/ios/scripts/validate-framework-zip.sh index 2cd1e90ee..0bcd094b6 100755 --- a/platform/ios/scripts/validate-framework-zip.sh +++ b/platform/ios/scripts/validate-framework-zip.sh @@ -54,7 +54,7 @@ function verifyFramework() { # Verify the static lib at least has simulator and the two common ARM architectures local PRESENT_ARCHITECTURES=$( xcrun lipo -info "${BINARY_PATH}" ) - for arch in "armv7" "arm64" "i386" "x86_64"; do + for arch in "armv7" "arm64" "x86_64"; do if [[ ! $PRESENT_ARCHITECTURES == *$arch* ]]; then printf "ERROR: Architecture ${arch} not found in ${FRAMEWORK_NAME}\n"; exit 6; diff --git a/scripts/publish_binary_size.sh b/scripts/publish_binary_size.sh index e515de7c9..08dfb8828 100755 --- a/scripts/publish_binary_size.sh +++ b/scripts/publish_binary_size.sh @@ -56,7 +56,6 @@ else # Upload all dimensions that we are tracking publish_binary_size "Platform=iOS,Arch=armv7" publish_binary_size "Platform=iOS,Arch=arm64" - publish_binary_size "Platform=iOS,Arch=i386" publish_binary_size "Platform=iOS,Arch=x86_64" publish_binary_size "Platform=iOS,Arch=Dynamic" From b9ef2727303bd2858b8fe1203adb0914a83ea0af Mon Sep 17 00:00:00 2001 From: Fabian Guerra Date: Thu, 21 Dec 2017 10:44:16 -0600 Subject: [PATCH 71/92] [ios] Fix ornament constrains on iOS 10 --- platform/ios/src/MGLMapView.mm | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/platform/ios/src/MGLMapView.mm b/platform/ios/src/MGLMapView.mm index 3b6ea82ed..a0d4a5f36 100644 --- a/platform/ios/src/MGLMapView.mm +++ b/platform/ios/src/MGLMapView.mm @@ -747,7 +747,7 @@ public: toItem:viewController.topLayoutGuide attribute:NSLayoutAttributeBottom multiplier:1.0 - constant:5.0 + self.contentInset.top]]; + constant:5.0]]; } [self.compassViewConstraints addObject: [NSLayoutConstraint constraintWithItem:self.compassView @@ -757,6 +757,7 @@ public: attribute:NSLayoutAttributeTop multiplier:1.0 constant:5.0 + self.contentInset.top]]; + [self.compassViewConstraints addObject: [NSLayoutConstraint constraintWithItem:self attribute:NSLayoutAttributeTrailing @@ -781,7 +782,7 @@ public: toItem:viewController.topLayoutGuide attribute:NSLayoutAttributeBottom multiplier:1.0 - constant:5.0 + self.contentInset.top]]; + constant:5.0]]; } [self.scaleBarConstraints addObject: [NSLayoutConstraint constraintWithItem:self.scaleBar From 1b407e85e9ee03124e24b71a856045c254775e6e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Minh=20Nguye=CC=82=CC=83n?= Date: Thu, 21 Dec 2017 00:28:19 -0800 Subject: [PATCH 72/92] [ios, macos] Fixed MGLMapSnapshotter test crash MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fixed a crash in MGLDocumentationExampleTests caused by an asynchronous snapshot call that the test wasn’t waiting on, compounded by the use of a style that requires an access token (as opposed to the one-liner style that uses no remote resources. Employed some Swiftisms to fulfill expectations without making the example code look weird. --- platform/darwin/src/MGLMapSnapshotter.h | 8 ++--- .../test/MGLDocumentationExampleTests.swift | 35 +++++++++++++++---- 2 files changed, 33 insertions(+), 10 deletions(-) diff --git a/platform/darwin/src/MGLMapSnapshotter.h b/platform/darwin/src/MGLMapSnapshotter.h index fc68204a7..426ab1bb0 100644 --- a/platform/darwin/src/MGLMapSnapshotter.h +++ b/platform/darwin/src/MGLMapSnapshotter.h @@ -145,11 +145,11 @@ typedef void (^MGLMapSnapshotCompletionHandler)(MGLMapSnapshot* _Nullable snapsh let snapshotter = MGLMapSnapshotter(options: options) snapshotter.start { (snapshot, error) in - if error != nil { - // error handler - } else { - // image handler + if let error = error { + fatalError(error.localizedDescription) } + + image = snapshot?.image } ``` */ diff --git a/platform/darwin/test/MGLDocumentationExampleTests.swift b/platform/darwin/test/MGLDocumentationExampleTests.swift index 8762af9ba..668e5f57f 100644 --- a/platform/darwin/test/MGLDocumentationExampleTests.swift +++ b/platform/darwin/test/MGLDocumentationExampleTests.swift @@ -27,11 +27,11 @@ import Mapbox class MGLDocumentationExampleTests: XCTestCase, MGLMapViewDelegate { var mapView: MGLMapView! var styleLoadingExpectation: XCTestExpectation! + static let styleURL = Bundle(for: MGLDocumentationExampleTests.self).url(forResource: "one-liner", withExtension: "json")! override func setUp() { super.setUp() - let styleURL = Bundle(for: MGLDocumentationExampleTests.self).url(forResource: "one-liner", withExtension: "json") - mapView = MGLMapView(frame: CGRect(x: 0, y: 0, width: 256, height: 256), styleURL: styleURL) + mapView = MGLMapView(frame: CGRect(x: 0, y: 0, width: 256, height: 256), styleURL: MGLDocumentationExampleTests.styleURL) mapView.delegate = self styleLoadingExpectation = expectation(description: "Map view should finish loading style") waitForExpectations(timeout: 1, handler: nil) @@ -279,6 +279,27 @@ class MGLDocumentationExampleTests: XCTestCase, MGLMapViewDelegate { } func testMGLMapSnapshotter() { + let expectation = self.expectation(description: "MGLMapSnapshotter should produce a snapshot") + #if os(macOS) + var image: NSImage? { + didSet { + expectation.fulfill() + } + } + #else + var image: UIImage? { + didSet { + expectation.fulfill() + } + } + #endif + + class MGLStyle { + static func satelliteStreetsStyleURL() -> URL { + return MGLDocumentationExampleTests.styleURL + } + } + //#-example-code let camera = MGLMapCamera(lookingAtCenter: CLLocationCoordinate2D(latitude: 37.7184, longitude: -122.4365), fromDistance: 100, pitch: 20, heading: 0) @@ -287,13 +308,15 @@ class MGLDocumentationExampleTests: XCTestCase, MGLMapViewDelegate { let snapshotter = MGLMapSnapshotter(options: options) snapshotter.start { (snapshot, error) in - if error != nil { - // error handler - } else { - // image handler + if let error = error { + fatalError(error.localizedDescription) } + + image = snapshot?.image } //#-end-example-code + + wait(for: [expectation], timeout: 1) } // For testMGLMapView(). From 3685cb35898cbcb6d34af2a7f49eff345083f487 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Minh=20Nguye=CC=82=CC=83n?= Date: Thu, 21 Dec 2017 00:29:09 -0800 Subject: [PATCH 73/92] [ios, macos] Updated MGLImageSource example Ran make darwin-update-examples to ensure that headers reflect the tested example code. --- platform/darwin/src/MGLImageSource.h | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/platform/darwin/src/MGLImageSource.h b/platform/darwin/src/MGLImageSource.h index 5088f6bac..21487d973 100644 --- a/platform/darwin/src/MGLImageSource.h +++ b/platform/darwin/src/MGLImageSource.h @@ -38,11 +38,8 @@ MGL_EXPORT bottomLeft: CLLocationCoordinate2D(latitude: 37.936, longitude: -80.425), bottomRight: CLLocationCoordinate2D(latitude: 37.936, longitude: -71.516), topRight: CLLocationCoordinate2D(latitude: 46.437, longitude: -71.516)) - let source = MGLImageSource(identifier: "radar-source", coordinateQuad: coordinates, url: URL(string: "https://www.mapbox.com/mapbox-gl-js/assets/radar.gif")!) + let source = MGLImageSource(identifier: "radar", coordinateQuad: coordinates, url: URL(string: "https://www.mapbox.com/mapbox-gl-js/assets/radar.gif")!) mapView.style?.addSource(source) - - let layer = MGLRasterStyleLayer(identifier: "radar-layer", source: source) - style.addLayer(layer) ``` */ MGL_EXPORT From ff62fa957c9413734ba8ca74b41e490fc2a3ab1d Mon Sep 17 00:00:00 2001 From: Fabian Guerra Date: Thu, 14 Dec 2017 16:11:11 -0600 Subject: [PATCH 74/92] [ios] Update visible coordinates documentation to reflect antimeridian usage. --- platform/ios/src/MGLMapView.h | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/platform/ios/src/MGLMapView.h b/platform/ios/src/MGLMapView.h index ef8626645..3c5aa2c12 100644 --- a/platform/ios/src/MGLMapView.h +++ b/platform/ios/src/MGLMapView.h @@ -668,12 +668,24 @@ MGL_EXPORT IB_DESIGNABLE Changing the value of this property updates the receiver immediately. If you want to animate the change, call `-setVisibleCoordinateBounds:animated:` instead. + + If a longitude is less than −180 degrees or greater than 180 degrees, the visible + bounds straddles the antimeridian or international date line. + + For example, a visible bounds that stretches from Tokyo to San Francisco would have + coordinates of (35.68476, -220.24257) and (37.78428, -122.41310). */ @property (nonatomic) MGLCoordinateBounds visibleCoordinateBounds; /** Changes the receiver’s viewport to fit the given coordinate bounds, optionally animating the change. + + To make the visible bounds go across the antimeridian or international date line, + specify some longitudes less than −180 degrees or greater than 180 degrees. + + For example, a visible bounds that stretches from Tokyo to San Francisco would have + coordinates of (35.68476, -220.24257) and (37.78428, -122.41310). @param bounds The bounds that the viewport will show in its entirety. @param animated Specify `YES` to animate the change by smoothly scrolling From c6169ab50ccb51903b0100c2308d0d31bb073283 Mon Sep 17 00:00:00 2001 From: Jason Wray Date: Thu, 21 Dec 2017 11:39:03 -0800 Subject: [PATCH 75/92] [ios] Re-add i386 slice to framework; strip from dSYM --- platform/ios/CHANGELOG.md | 2 +- platform/ios/INSTALL.md | 2 +- platform/ios/scripts/package.sh | 7 ++++++- 3 files changed, 8 insertions(+), 3 deletions(-) diff --git a/platform/ios/CHANGELOG.md b/platform/ios/CHANGELOG.md index d5bf98d3f..329f7db49 100644 --- a/platform/ios/CHANGELOG.md +++ b/platform/ios/CHANGELOG.md @@ -4,7 +4,7 @@ Mapbox welcomes participation and contributions from everyone. Please read [CONT ## 3.7.2 -* Removed support for 32-bit simulators. ([#10772](https://github.com/mapbox/mapbox-gl-native/pull/10772)) +* Reduced the file size of the dSYM by removing the i386 architecture. Support for the i386 architecture (used by 32-bit simulators) will also be removed from the framework itself in a future release. ([#10781](https://github.com/mapbox/mapbox-gl-native/pull/10781)) ## 3.7.1 - December 6, 2017 diff --git a/platform/ios/INSTALL.md b/platform/ios/INSTALL.md index 9fca31872..b0d7be83d 100644 --- a/platform/ios/INSTALL.md +++ b/platform/ios/INSTALL.md @@ -10,7 +10,7 @@ The Mapbox Maps SDK for iOS is intended to run on iOS 8.0 and above on the follo * iPad 2 and above (3, 4, Mini, Air, Mini 2, Air 2, Pro) * iPod touch 5th generation and above -Note that 32-bit simulators (such as the iPhone 5 or iPad 2) are not supported. +Note that debugging in 32-bit simulators (such as the iPhone 5 or iPad 2) is only partially supported. Support for these simulators will be removed entirely in a future release of this SDK. The Mapbox Maps SDK for iOS requires Xcode 8.0 or higher. To use this SDK with Xcode 7.3.1, download and use a symbols build from the [releases](https://github.com/mapbox/mapbox-gl-native/releases) page. diff --git a/platform/ios/scripts/package.sh b/platform/ios/scripts/package.sh index 6df1b687b..31285182a 100755 --- a/platform/ios/scripts/package.sh +++ b/platform/ios/scripts/package.sh @@ -70,7 +70,7 @@ xcodebuild \ CURRENT_SHORT_VERSION=${SHORT_VERSION} \ CURRENT_SEMANTIC_VERSION=${SEM_VERSION} \ CURRENT_COMMIT_HASH=${HASH} \ - ARCHS="x86_64" \ + ONLY_ACTIVE_ARCH=NO \ -derivedDataPath ${DERIVED_DATA} \ -workspace ./platform/ios/ios.xcworkspace \ -scheme ${SCHEME} \ @@ -194,6 +194,11 @@ if [[ ${BUILD_DYNAMIC} == true && ${BUILDTYPE} == Release ]]; then validate_dsym \ "${OUTPUT}/dynamic/${NAME}.framework.dSYM/Contents/Resources/DWARF/${NAME}" \ "${OUTPUT}/dynamic/${NAME}.framework/${NAME}" + + # To-do: remove this in 4.0.0, as we intend to remove support for i386 entirely. + step "Removing i386 slice from dSYM" + lipo -remove i386 "${OUTPUT}/dynamic/${NAME}.framework.dSYM/Contents/Resources/DWARF/${NAME}" -o "${OUTPUT}/dynamic/${NAME}.framework.dSYM/Contents/Resources/DWARF/${NAME}" + lipo -info "${OUTPUT}/dynamic/${NAME}.framework.dSYM/Contents/Resources/DWARF/${NAME}" fi function create_podspec { From 3b254a7fbd353f3263f96ec9620b5c98781f3288 Mon Sep 17 00:00:00 2001 From: Fabian Guerra Date: Thu, 21 Dec 2017 14:48:40 -0600 Subject: [PATCH 76/92] [ios] Update changelog. Podspec bump to v3.7.2 --- platform/ios/CHANGELOG.md | 10 +++++++++- platform/ios/Mapbox-iOS-SDK-nightly-dynamic.podspec | 2 +- platform/ios/Mapbox-iOS-SDK-symbols.podspec | 2 +- platform/ios/Mapbox-iOS-SDK.podspec | 2 +- 4 files changed, 12 insertions(+), 4 deletions(-) diff --git a/platform/ios/CHANGELOG.md b/platform/ios/CHANGELOG.md index 329f7db49..e4b79f0f2 100644 --- a/platform/ios/CHANGELOG.md +++ b/platform/ios/CHANGELOG.md @@ -2,10 +2,18 @@ Mapbox welcomes participation and contributions from everyone. Please read [CONTRIBUTING.md](../../CONTRIBUTING.md) to get started. -## 3.7.2 +## 3.7.2 - December 21, 2017 + +### Packaging * Reduced the file size of the dSYM by removing the i386 architecture. Support for the i386 architecture (used by 32-bit simulators) will also be removed from the framework itself in a future release. ([#10781](https://github.com/mapbox/mapbox-gl-native/pull/10781)) +### Other changes + +* Fixed an issue where removing a `MGLOpenGLStyleLayer` from a map might result in a crash. ([#10765](https://github.com/mapbox/mapbox-gl-native/pull/10765)) +* Added documentation for usage of coordinate bounds that cross the anti-meridian. ([#9804](https://github.com/mapbox/mapbox-gl-native/issues/9804)) +* Removed duplicated variables in `MGLMapSnapshotter`. ([#10702](https://github.com/mapbox/mapbox-gl-native/pull/10702)) + ## 3.7.1 - December 6, 2017 ### Annotations diff --git a/platform/ios/Mapbox-iOS-SDK-nightly-dynamic.podspec b/platform/ios/Mapbox-iOS-SDK-nightly-dynamic.podspec index fb78d0112..5a1f1ebb7 100644 --- a/platform/ios/Mapbox-iOS-SDK-nightly-dynamic.podspec +++ b/platform/ios/Mapbox-iOS-SDK-nightly-dynamic.podspec @@ -1,6 +1,6 @@ Pod::Spec.new do |m| - version = '3.7.1' + version = '3.7.2' m.name = 'Mapbox-iOS-SDK-nightly-dynamic' m.version = "#{version}-nightly" diff --git a/platform/ios/Mapbox-iOS-SDK-symbols.podspec b/platform/ios/Mapbox-iOS-SDK-symbols.podspec index 775b4dceb..00b943733 100644 --- a/platform/ios/Mapbox-iOS-SDK-symbols.podspec +++ b/platform/ios/Mapbox-iOS-SDK-symbols.podspec @@ -1,6 +1,6 @@ Pod::Spec.new do |m| - version = '3.7.1' + version = '3.7.2' m.name = 'Mapbox-iOS-SDK-symbols' m.version = "#{version}-symbols" diff --git a/platform/ios/Mapbox-iOS-SDK.podspec b/platform/ios/Mapbox-iOS-SDK.podspec index 6298939f4..2f2a19300 100644 --- a/platform/ios/Mapbox-iOS-SDK.podspec +++ b/platform/ios/Mapbox-iOS-SDK.podspec @@ -1,6 +1,6 @@ Pod::Spec.new do |m| - version = '3.7.1' + version = '3.7.2' m.name = 'Mapbox-iOS-SDK' m.version = version From b09311656d78d2b7b2e5e99232f76da7d3a6d756 Mon Sep 17 00:00:00 2001 From: Fabian Guerra Date: Thu, 21 Dec 2017 17:07:25 -0600 Subject: [PATCH 77/92] [macos] Update visible coordinates documentation to reflect antimeridian usage. --- platform/macos/src/MGLMapView.h | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/platform/macos/src/MGLMapView.h b/platform/macos/src/MGLMapView.h index de099157c..96b0932c1 100644 --- a/platform/macos/src/MGLMapView.h +++ b/platform/macos/src/MGLMapView.h @@ -396,12 +396,24 @@ MGL_EXPORT IB_DESIGNABLE Changing the value of this property updates the receiver immediately. If you want to animate the change, use the `-setVisibleCoordinateBounds:animated:` method instead. + + If a longitude is less than −180 degrees or greater than 180 degrees, the visible + bounds straddles the antimeridian or international date line. + + For example, a visible bounds that stretches from Tokyo to San Francisco would have + coordinates of (35.68476, -220.24257) and (37.78428, -122.41310). */ @property (nonatomic) MGLCoordinateBounds visibleCoordinateBounds; /** Changes the receiver’s viewport to fit the given coordinate bounds, optionally animating the change. + + To make the visible bounds go across the antimeridian or international date line, + specify some longitudes less than −180 degrees or greater than 180 degrees. + + For example, a visible bounds that stretches from Tokyo to San Francisco would have + coordinates of (35.68476, -220.24257) and (37.78428, -122.41310). @param bounds The bounds that the viewport will show in its entirety. @param animated Specify `YES` to animate the change by smoothly scrolling and From c1831229ac826d1169b7e2e3067655272cde3ef0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Minh=20Nguy=E1=BB=85n?= Date: Sat, 16 Dec 2017 15:20:34 -0800 Subject: [PATCH 78/92] [ios, macos] Copyedited changelogs macOS map SDK v0.6.0 has yet to be released. --- platform/ios/CHANGELOG.md | 8 ++++---- platform/macos/CHANGELOG.md | 15 +++++++-------- 2 files changed, 11 insertions(+), 12 deletions(-) diff --git a/platform/ios/CHANGELOG.md b/platform/ios/CHANGELOG.md index e4b79f0f2..e3e2768e2 100644 --- a/platform/ios/CHANGELOG.md +++ b/platform/ios/CHANGELOG.md @@ -16,14 +16,14 @@ Mapbox welcomes participation and contributions from everyone. Please read [CONT ## 3.7.1 - December 6, 2017 -### Annotations - -* Fixed an issue that could cause `-[MGLMapViewDelegate mapView:didSelectAnnotation:]` to be triggered when tapping next to an `MGLAnnotationImage` annotation. ([#10538](https://github.com/mapbox/mapbox-gl-native/pull/10538)) - ### Packaging * Renamed this SDK from Mapbox iOS SDK to Mapbox Maps SDK for iOS. ([#10610](https://github.com/mapbox/mapbox-gl-native/pull/10610)) +### Annotations + +* Fixed incorrect hit targets for `MGLAnnotationImage`-backed annotations that caused `-[MGLMapViewDelegate mapView:didSelectAnnotation:]` to be called unnecessarily. ([#10538](https://github.com/mapbox/mapbox-gl-native/pull/10538)) + ### Other changes * Fixed an issue that caused `MGLMapView.minimumZoomLevel` to not be set. ([#10596](https://github.com/mapbox/mapbox-gl-native/pull/10596)) diff --git a/platform/macos/CHANGELOG.md b/platform/macos/CHANGELOG.md index 6fab5f989..9fd03d66f 100644 --- a/platform/macos/CHANGELOG.md +++ b/platform/macos/CHANGELOG.md @@ -1,15 +1,14 @@ -# Changelog for Mapbox macOS SDK - -## v0.6.1 +# Changelog for Mapbox Maps SDK for macOS ### Annotations -* Fixed an issue that could cause triggering `-[MGLMapViewDelegate mapView:didSelectAnnotation:]` when taping next to a `MGLAnnotationImage` annotation. ([#10538](https://github.com/mapbox/mapbox-gl-native/pull/10538)) - -### Packaging -* Renamed this SDK from Mapbox macOS SDK to Mapbox Maps SDK for macOS. ([#10610](https://github.com/mapbox/mapbox-gl-native/pull/10610)) ## v0.6.0 +### Packaging + +* Renamed this SDK from Mapbox macOS SDK to Mapbox Maps SDK for macOS. ([#10610](https://github.com/mapbox/mapbox-gl-native/pull/10610)) +* Added a Bulgarian localization. ([#10309](https://github.com/mapbox/mapbox-gl-native/pull/10309)) + ### Networking and storage * Added a new `MGLMapSnapshotter` class for capturing rendered map images from an `MGLMapView`’s camera. ([#9891](https://github.com/mapbox/mapbox-gl-native/pull/9891)) @@ -34,13 +33,13 @@ * Fixed several bugs and performance issues related to the use of annotations backed by `MGLAnnotationImage`s. The limits on the number and size of images and glyphs has been effectively eliminated and should now depend on hardware constraints. These fixes also apply to images used to represent icons in `MGLSymbolStyleLayer`s. ([#9213](https://github.com/mapbox/mapbox-gl-native/pull/9213)) * Increased the default maximum zoom level from 20 to 22. ([#9835](https://github.com/mapbox/mapbox-gl-native/pull/9835)) * Added an `overlays` property to `MGLMapView`. ([#8617](https://github.com/mapbox/mapbox-gl-native/pull/8617)) +* Fixed incorrect hit targets for `MGLAnnotationImage`-backed annotations that caused `-[MGLMapViewDelegate mapView:didSelectAnnotation:]` to be called unnecessarily. ([#10538](https://github.com/mapbox/mapbox-gl-native/pull/10538)) * Added `-[MGLMapView cameraThatFitsShape:direction:edgePadding:]` to get a camera with zoom level and center coordinate computed to fit a shape. ([#10107](https://github.com/mapbox/mapbox-gl-native/pull/10107)) * Added support selection of shape and polyline annotations.([#9984](https://github.com/mapbox/mapbox-gl-native/pull/9984)) * Fixed an issue where a shape annotation callout was not displayed if the centroid was not visible. ([#10255](https://github.com/mapbox/mapbox-gl-native/pull/10255)) ### Other changes -* Added a Bulgarian localization. ([#10309](https://github.com/mapbox/mapbox-gl-native/pull/10309)) * Fixed distortion in the logo view on macOS 10.13 High Sierra. ([#10606](https://github.com/mapbox/mapbox-gl-native/pull/10606)) * Fixed an issue that could cause line label rendering glitches when the line geometry is projected to a point behind the plane of the camera. ([#9865](https://github.com/mapbox/mapbox-gl-native/pull/9865)) * Fixed an issue that could cause a crash when using `-[MGLMapView flyToCamera:completionHandler:]` and related methods with zoom levels at or near the maximum value. ([#9381](https://github.com/mapbox/mapbox-gl-native/pull/9381)) From 3feeb7bdf8284eca92d95b4d2338ab23f1892604 Mon Sep 17 00:00:00 2001 From: Fabian Guerra Date: Thu, 21 Dec 2017 17:18:03 -0600 Subject: [PATCH 79/92] [macos] Update changelog entries. --- platform/macos/CHANGELOG.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/platform/macos/CHANGELOG.md b/platform/macos/CHANGELOG.md index 9fd03d66f..80d693367 100644 --- a/platform/macos/CHANGELOG.md +++ b/platform/macos/CHANGELOG.md @@ -43,6 +43,9 @@ * Fixed distortion in the logo view on macOS 10.13 High Sierra. ([#10606](https://github.com/mapbox/mapbox-gl-native/pull/10606)) * Fixed an issue that could cause line label rendering glitches when the line geometry is projected to a point behind the plane of the camera. ([#9865](https://github.com/mapbox/mapbox-gl-native/pull/9865)) * Fixed an issue that could cause a crash when using `-[MGLMapView flyToCamera:completionHandler:]` and related methods with zoom levels at or near the maximum value. ([#9381](https://github.com/mapbox/mapbox-gl-native/pull/9381)) +* Fixed an issue where removing a `MGLOpenGLStyleLayer` from a map might result in a crash. ([#10765](https://github.com/mapbox/mapbox-gl-native/pull/10765)) +* Added documentation for usage of coordinate bounds that cross the anti-meridian. ([#10783](https://github.com/mapbox/mapbox-gl-native/pull/10783)) +* Removed duplicated variables in `MGLMapSnapshotter`. ([#10702](https://github.com/mapbox/mapbox-gl-native/pull/10702)) ## 0.5.1 From 41022dab07351445ab2d34461f2b526c8988a02a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Minh=20Nguy=E1=BB=85n?= Date: Sat, 16 Dec 2017 15:27:35 -0800 Subject: [PATCH 80/92] macos-v0.6.0 --- platform/macos/Mapbox-macOS-SDK-symbols.podspec | 2 +- platform/macos/Mapbox-macOS-SDK.podspec | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/platform/macos/Mapbox-macOS-SDK-symbols.podspec b/platform/macos/Mapbox-macOS-SDK-symbols.podspec index dd60957bb..ba09fce19 100644 --- a/platform/macos/Mapbox-macOS-SDK-symbols.podspec +++ b/platform/macos/Mapbox-macOS-SDK-symbols.podspec @@ -1,6 +1,6 @@ Pod::Spec.new do |m| - version = '0.5.1' + version = '0.6.0' m.name = 'Mapbox-macOS-SDK-symbols' m.version = "#{version}-symbols" diff --git a/platform/macos/Mapbox-macOS-SDK.podspec b/platform/macos/Mapbox-macOS-SDK.podspec index 533d7499f..6a0e7bbf2 100644 --- a/platform/macos/Mapbox-macOS-SDK.podspec +++ b/platform/macos/Mapbox-macOS-SDK.podspec @@ -1,6 +1,6 @@ Pod::Spec.new do |m| - version = '0.5.1' + version = '0.6.0' m.name = 'Mapbox-macOS-SDK' m.version = version From 33faa3811e1833ef99e7e9b5be835793c81892f7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Minh=20Nguy=E1=BB=85n?= Date: Fri, 22 Dec 2017 09:12:57 -0800 Subject: [PATCH 81/92] [macos] Renamed Mapbox macOS SDK to Mapbox Maps SDK for macOS --- platform/macos/CHANGELOG.md | 4 +--- platform/macos/README.md | 16 ++++++++-------- platform/macos/docs/doc-README.md | 6 +++--- platform/macos/docs/pod-README.md | 14 +++++++------- platform/macos/scripts/document.sh | 2 +- 5 files changed, 20 insertions(+), 22 deletions(-) diff --git a/platform/macos/CHANGELOG.md b/platform/macos/CHANGELOG.md index 80d693367..b86ebae58 100644 --- a/platform/macos/CHANGELOG.md +++ b/platform/macos/CHANGELOG.md @@ -1,12 +1,10 @@ # Changelog for Mapbox Maps SDK for macOS -### Annotations - ## v0.6.0 ### Packaging -* Renamed this SDK from Mapbox macOS SDK to Mapbox Maps SDK for macOS. ([#10610](https://github.com/mapbox/mapbox-gl-native/pull/10610)) +* Renamed this SDK from Mapbox macOS SDK to Mapbox Maps SDK for macOS. ([#10610](https://github.com/mapbox/mapbox-gl-native/pull/10610), [#10793](https://github.com/mapbox/mapbox-gl-native/pull/10793)) * Added a Bulgarian localization. ([#10309](https://github.com/mapbox/mapbox-gl-native/pull/10309)) ### Networking and storage diff --git a/platform/macos/README.md b/platform/macos/README.md index 14b3e0cf1..a29f3ad6e 100644 --- a/platform/macos/README.md +++ b/platform/macos/README.md @@ -1,8 +1,8 @@ -# [Mapbox macOS SDK](https://mapbox.github.io/mapbox-gl-native/macos/) +# [Mapbox Maps SDK for macOS](https://mapbox.github.io/mapbox-gl-native/macos/) [![Bitrise](https://www.bitrise.io/app/155ef7da24b38dcd.svg?token=4KSOw_gd6WxTnvGE2rMttg&branch=master)](https://www.bitrise.io/app/155ef7da24b38dcd) -Put interactive, scalable world maps into your native Cocoa application with the Mapbox macOS SDK. +Put interactive, scalable world maps into your native Cocoa application with the Mapbox Maps SDK for macOS. * Mapbox-curated [map styles](https://www.mapbox.com/maps/) and [OpenStreetMap-based](https://www.mapbox.com/vector-tiles/mapbox-streets-v7/) [vector tiles](https://www.mapbox.com/vector-tiles/) make it easy to get started. * Customize every aspect of the map’s appearance in code or visually using [Mapbox Studio](https://www.mapbox.com/mapbox-studio/). @@ -12,19 +12,19 @@ Put interactive, scalable world maps into your native Cocoa application with the ![](docs/img/screenshot.jpg) -The Mapbox macOS SDK is compatible with macOS 10.10.0 and above for Cocoa applications developed in Objective-C, Swift, Interface Builder, or AppleScript. For hybrid applications, consider [Mapbox GL JS](https://github.com/mapbox/mapbox-gl-js/). +The Mapbox Maps SDK for macOS is compatible with macOS 10.10.0 and above for Cocoa applications developed in Objective-C, Swift, Interface Builder, or AppleScript. For hybrid applications, consider [Mapbox GL JS](https://github.com/mapbox/mapbox-gl-js/). Information for Mac developers: -* [Integrate the Mapbox macOS SDK into your application](https://mapbox.github.io/mapbox-gl-native/macos/) -* [Learn how to use the Mapbox macOS SDK](https://mapbox.github.io/mapbox-gl-native/macos/) +* [Integrate the Mapbox Maps SDK for macOS into your application](https://mapbox.github.io/mapbox-gl-native/macos/) +* [Learn how to use the Mapbox Maps SDK for macOS](https://mapbox.github.io/mapbox-gl-native/macos/) * [Browse example styles designed in Mapbox Studio](https://www.mapbox.com/gallery/) Information for contributors: -* [Build the Mapbox macOS SDK from source](INSTALL.md) -* [Contribute to the Mapbox macOS SDK](DEVELOPING.md) +* [Build the Mapbox Maps SDK for macOS from source](INSTALL.md) +* [Contribute to the Mapbox Maps SDK for macOS](DEVELOPING.md) * [Mapbox Style Specification](https://www.mapbox.com/mapbox-gl-style-spec/) * [Mapbox Vector Tile Specification](https://www.mapbox.com/developers/vector-tiles/) -Mapbox does not officially support the Mapbox macOS SDK to the same extent as the Mapbox iOS SDK; however, bug reports and pull requests are certainly welcome. +Mapbox does not officially support the macOS SDK to the same extent as the iOS SDK; however, bug reports and pull requests are certainly welcome. diff --git a/platform/macos/docs/doc-README.md b/platform/macos/docs/doc-README.md index 391b3dfca..8089ae17d 100644 --- a/platform/macos/docs/doc-README.md +++ b/platform/macos/docs/doc-README.md @@ -1,9 +1,9 @@ -# [Mapbox macOS SDK](https://github.com/mapbox/mapbox-gl-native/tree/master/platform/macos/) +# [Mapbox Maps SDK for macOS](https://github.com/mapbox/mapbox-gl-native/tree/master/platform/macos/) -The Mapbox macOS SDK is an open-source framework for embedding interactive map views with scalable, customizable vector maps into Cocoa applications on macOS 10.10.0 and above using Objective-C, Swift, Interface Builder, or AppleScript. The Mapbox macOS SDK takes stylesheets that conform to the [Mapbox Style Specification](https://www.mapbox.com/mapbox-gl-style-spec/), applies them to vector tiles that conform to the [Mapbox Vector Tile Specification](https://www.mapbox.com/developers/vector-tiles/), and renders them using OpenGL. +The Mapbox Maps SDK for macOS is an open-source framework for embedding interactive map views with scalable, customizable vector maps into Cocoa applications on macOS 10.10.0 and above using Objective-C, Swift, Interface Builder, or AppleScript. The SDK takes stylesheets that conform to the [Mapbox Style Specification](https://www.mapbox.com/mapbox-gl-style-spec/), applies them to vector tiles that conform to the [Mapbox Vector Tile Specification](https://www.mapbox.com/developers/vector-tiles/), and renders them using OpenGL. ![](img/screenshot.jpg) -For setup information, consult the README.md that comes with this documentation. For further instructions, consult the [macOS SDK documentation](https://mapbox.github.io/mapbox-gl-native/macos/). The [Mapbox iOS SDK](https://www.mapbox.com/ios-sdk/)’s [API documentation](https://www.mapbox.com/ios-sdk/api/) and [online examples](https://www.mapbox.com/ios-sdk/examples/) apply to the Mapbox macOS SDK with few differences, mostly around unimplemented features like user location tracking. A [full changelog](https://github.com/mapbox/mapbox-gl-native/blob/master/platform/macos/CHANGELOG.md) is also available. +For setup information, consult the README.md that comes with this documentation. For further instructions, consult the [Mapbox Maps SDK for macOS documentation](https://mapbox.github.io/mapbox-gl-native/macos/). The [Mapbox Maps SDK for iOS](https://www.mapbox.com/ios-sdk/) has [API documentation](https://www.mapbox.com/ios-sdk/api/) and [online examples](https://www.mapbox.com/ios-sdk/examples/) that apply to the macOS SDK with few differences, mostly around unimplemented features like user location tracking. A [full changelog](https://github.com/mapbox/mapbox-gl-native/blob/master/platform/macos/CHANGELOG.md) is also available. Mapbox does not officially support the macOS SDK to the same extent as the iOS SDK; however, [bug reports and pull requests](https://github.com/mapbox/mapbox-gl-native/issues/) are certainly welcome. diff --git a/platform/macos/docs/pod-README.md b/platform/macos/docs/pod-README.md index f247277ca..97e77673e 100644 --- a/platform/macos/docs/pod-README.md +++ b/platform/macos/docs/pod-README.md @@ -1,6 +1,6 @@ -# [Mapbox macOS SDK](https://github.com/mapbox/mapbox-gl-native/tree/master/platform/macos/) +# [Mapbox Maps SDK for macOS](https://github.com/mapbox/mapbox-gl-native/tree/master/platform/macos/) -Put interactive, scalable world maps into your native Cocoa application with the open-source Mapbox macOS SDK. +Put interactive, scalable world maps into your native Cocoa application with the open-source Mapbox Maps SDK for macOS. * Mapbox-curated [map styles](https://www.mapbox.com/maps/) and [OpenStreetMap-based](https://www.mapbox.com/vector-tiles/mapbox-streets-v7/) [vector tiles](https://www.mapbox.com/vector-tiles/) make it easy to get started. * Customize every aspect of the map’s appearance in code or visually using [Mapbox Studio](https://www.mapbox.com/mapbox-studio/). @@ -10,21 +10,21 @@ Put interactive, scalable world maps into your native Cocoa application with the ![](https://raw.githubusercontent.com/mapbox/mapbox-gl-native/master/platform/macos/docs/img/screenshot.jpg) -The Mapbox macOS SDK is compatible with macOS 10.10.0 and above for Cocoa applications developed in Objective-C, Swift, Interface Builder, or AppleScript. For hybrid applications, consider [Mapbox GL JS](https://www.mapbox.com/mapbox-gl-js/). +The Mapbox Maps SDK for macOS is compatible with macOS 10.10.0 and above for Cocoa applications developed in Objective-C, Swift, Interface Builder, or AppleScript. For hybrid applications, consider [Mapbox GL JS](https://www.mapbox.com/mapbox-gl-js/). ## Installation -There are three ways to install the Mapbox macOS SDK: +There are three ways to install the Mapbox Maps SDK for macOS: ### Manually -1. Download the [latest Mapbox macOS SDK release](https://github.com/mapbox/mapbox-gl-native/releases/) from GitHub – look for a release that begins with “macos-�. +1. Download the [latest Mapbox Maps SDK for macOS release](https://github.com/mapbox/mapbox-gl-native/releases/) from GitHub – look for a release that begins with “macos-�. 1. Open the project editor, select your application target, then go to the General tab. Drag Mapbox.framework into the “Embedded Binaries� section. (Don’t drag it into the “Linked Frameworks and Libraries� section; Xcode will add it there automatically.) In the sheet that appears, make sure “Copy items if needed� is checked, then click Finish. ### Via Carthage -The Mapbox macOS SDK is a binary-only dependency, so you’ll need Carthage 0.19 or above. In your [Cartfile](https://github.com/Carthage/Carthage/blob/master/Documentation/Artifacts.md#binary-only-frameworks), specify this dependency (plus an optional version requirement): +The Mapbox Maps SDK for macOS is a binary-only dependency, so you’ll need Carthage 0.19 or above. In your [Cartfile](https://github.com/Carthage/Carthage/blob/master/Documentation/Artifacts.md#binary-only-frameworks), specify this dependency (plus an optional version requirement): ``` binary "https://mapbox.github.io/mapbox-gl-native/macos/Mapbox-macOS-SDK.json" @@ -93,6 +93,6 @@ script AppDelegate end script ``` -Full API documentation is included in this package, within the `documentation` folder, and [online](https://mapbox.github.io/mapbox-gl-native/macos/). The [Mapbox iOS SDK](https://www.mapbox.com/ios-sdk/)’s [API documentation](https://www.mapbox.com/ios-sdk/api/) and [online examples](https://www.mapbox.com/ios-sdk/examples/) apply to the Mapbox macOS SDK with few differences, mostly around unimplemented features like user location tracking. +Full API documentation is included in this package, within the `documentation` folder, and [online](https://mapbox.github.io/mapbox-gl-native/macos/). The [Mapbox Maps SDK for iOS](https://www.mapbox.com/ios-sdk/) has [API documentation](https://www.mapbox.com/ios-sdk/api/) and [online examples](https://www.mapbox.com/ios-sdk/examples/) that apply to the Mapbox Maps SDK for macOS with few differences, mostly around unimplemented features like user location tracking. Mapbox does not officially support the macOS SDK to the same extent as the iOS SDK; however, [bug reports and pull requests](https://github.com/mapbox/mapbox-gl-native/issues/) are certainly welcome. diff --git a/platform/macos/scripts/document.sh b/platform/macos/scripts/document.sh index 2e53dc359..7960c8769 100755 --- a/platform/macos/scripts/document.sh +++ b/platform/macos/scripts/document.sh @@ -50,4 +50,4 @@ jazzy \ --output ${OUTPUT} # https://github.com/realm/jazzy/issues/411 find ${OUTPUT} -name *.html -exec \ - perl -pi -e 's/BRANDLESS_DOCSET_TITLE/macOS SDK $1/, s/Mapbox\s+(Docs|Reference)/Mapbox macOS SDK $1/' {} \; + perl -pi -e 's/BRANDLESS_DOCSET_TITLE/Maps SDK for macOS $1/, s/Mapbox\s+(Docs|Reference)/Mapbox Maps SDK for macOS $1/' {} \; From 498dbf27b9fc49254471f6251349bb14f25a150e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Konstantin=20K=C3=A4fer?= Date: Fri, 22 Dec 2017 16:27:31 +0100 Subject: [PATCH 82/92] [core] don't tie Annotation geometries to Map maxzoom Instead, geometry generation via GeoJSONVT is now bound to the hardcoded limit of the annotation tile source. --- src/mbgl/annotation/annotation_manager.cpp | 30 +++++++++---------- src/mbgl/annotation/annotation_manager.hpp | 16 +++++----- src/mbgl/annotation/fill_annotation_impl.cpp | 4 +-- src/mbgl/annotation/fill_annotation_impl.hpp | 2 +- src/mbgl/annotation/line_annotation_impl.cpp | 4 +-- src/mbgl/annotation/line_annotation_impl.hpp | 2 +- src/mbgl/annotation/shape_annotation_impl.cpp | 7 +++-- src/mbgl/annotation/shape_annotation_impl.hpp | 3 +- src/mbgl/map/map.cpp | 4 +-- test/api/annotations.test.cpp | 16 ++++++++++ 10 files changed, 52 insertions(+), 36 deletions(-) diff --git a/src/mbgl/annotation/annotation_manager.cpp b/src/mbgl/annotation/annotation_manager.cpp index a4d53bbd3..b94b0a1bc 100644 --- a/src/mbgl/annotation/annotation_manager.cpp +++ b/src/mbgl/annotation/annotation_manager.cpp @@ -34,20 +34,20 @@ void AnnotationManager::onStyleLoaded() { updateStyle(); } -AnnotationID AnnotationManager::addAnnotation(const Annotation& annotation, const uint8_t maxZoom) { +AnnotationID AnnotationManager::addAnnotation(const Annotation& annotation) { std::lock_guard lock(mutex); AnnotationID id = nextID++; Annotation::visit(annotation, [&] (const auto& annotation_) { - this->add(id, annotation_, maxZoom); + this->add(id, annotation_); }); dirty = true; return id; } -bool AnnotationManager::updateAnnotation(const AnnotationID& id, const Annotation& annotation, const uint8_t maxZoom) { +bool AnnotationManager::updateAnnotation(const AnnotationID& id, const Annotation& annotation) { std::lock_guard lock(mutex); Annotation::visit(annotation, [&] (const auto& annotation_) { - this->update(id, annotation_, maxZoom); + this->update(id, annotation_); }); return dirty; } @@ -58,25 +58,25 @@ void AnnotationManager::removeAnnotation(const AnnotationID& id) { dirty = true; } -void AnnotationManager::add(const AnnotationID& id, const SymbolAnnotation& annotation, const uint8_t) { +void AnnotationManager::add(const AnnotationID& id, const SymbolAnnotation& annotation) { auto impl = std::make_shared(id, annotation); symbolTree.insert(impl); symbolAnnotations.emplace(id, impl); } -void AnnotationManager::add(const AnnotationID& id, const LineAnnotation& annotation, const uint8_t maxZoom) { +void AnnotationManager::add(const AnnotationID& id, const LineAnnotation& annotation) { ShapeAnnotationImpl& impl = *shapeAnnotations.emplace(id, - std::make_unique(id, annotation, maxZoom)).first->second; + std::make_unique(id, annotation)).first->second; impl.updateStyle(*style.get().impl); } -void AnnotationManager::add(const AnnotationID& id, const FillAnnotation& annotation, const uint8_t maxZoom) { +void AnnotationManager::add(const AnnotationID& id, const FillAnnotation& annotation) { ShapeAnnotationImpl& impl = *shapeAnnotations.emplace(id, - std::make_unique(id, annotation, maxZoom)).first->second; + std::make_unique(id, annotation)).first->second; impl.updateStyle(*style.get().impl); } -void AnnotationManager::update(const AnnotationID& id, const SymbolAnnotation& annotation, const uint8_t maxZoom) { +void AnnotationManager::update(const AnnotationID& id, const SymbolAnnotation& annotation) { auto it = symbolAnnotations.find(id); if (it == symbolAnnotations.end()) { assert(false); // Attempt to update a non-existent symbol annotation @@ -89,11 +89,11 @@ void AnnotationManager::update(const AnnotationID& id, const SymbolAnnotation& a dirty = true; remove(id); - add(id, annotation, maxZoom); + add(id, annotation); } } -void AnnotationManager::update(const AnnotationID& id, const LineAnnotation& annotation, const uint8_t maxZoom) { +void AnnotationManager::update(const AnnotationID& id, const LineAnnotation& annotation) { auto it = shapeAnnotations.find(id); if (it == shapeAnnotations.end()) { assert(false); // Attempt to update a non-existent shape annotation @@ -101,11 +101,11 @@ void AnnotationManager::update(const AnnotationID& id, const LineAnnotation& ann } shapeAnnotations.erase(it); - add(id, annotation, maxZoom); + add(id, annotation); dirty = true; } -void AnnotationManager::update(const AnnotationID& id, const FillAnnotation& annotation, const uint8_t maxZoom) { +void AnnotationManager::update(const AnnotationID& id, const FillAnnotation& annotation) { auto it = shapeAnnotations.find(id); if (it == shapeAnnotations.end()) { assert(false); // Attempt to update a non-existent shape annotation @@ -113,7 +113,7 @@ void AnnotationManager::update(const AnnotationID& id, const FillAnnotation& ann } shapeAnnotations.erase(it); - add(id, annotation, maxZoom); + add(id, annotation); dirty = true; } diff --git a/src/mbgl/annotation/annotation_manager.hpp b/src/mbgl/annotation/annotation_manager.hpp index 22b25cd2a..326565f8b 100644 --- a/src/mbgl/annotation/annotation_manager.hpp +++ b/src/mbgl/annotation/annotation_manager.hpp @@ -28,8 +28,8 @@ public: AnnotationManager(style::Style&); ~AnnotationManager(); - AnnotationID addAnnotation(const Annotation&, const uint8_t maxZoom); - bool updateAnnotation(const AnnotationID&, const Annotation&, const uint8_t maxZoom); + AnnotationID addAnnotation(const Annotation&); + bool updateAnnotation(const AnnotationID&, const Annotation&); void removeAnnotation(const AnnotationID&); void addImage(std::unique_ptr); @@ -49,13 +49,13 @@ public: static const std::string ShapeLayerID; private: - void add(const AnnotationID&, const SymbolAnnotation&, const uint8_t); - void add(const AnnotationID&, const LineAnnotation&, const uint8_t); - void add(const AnnotationID&, const FillAnnotation&, const uint8_t); + void add(const AnnotationID&, const SymbolAnnotation&); + void add(const AnnotationID&, const LineAnnotation&); + void add(const AnnotationID&, const FillAnnotation&); - void update(const AnnotationID&, const SymbolAnnotation&, const uint8_t); - void update(const AnnotationID&, const LineAnnotation&, const uint8_t); - void update(const AnnotationID&, const FillAnnotation&, const uint8_t); + void update(const AnnotationID&, const SymbolAnnotation&); + void update(const AnnotationID&, const LineAnnotation&); + void update(const AnnotationID&, const FillAnnotation&); void remove(const AnnotationID&); diff --git a/src/mbgl/annotation/fill_annotation_impl.cpp b/src/mbgl/annotation/fill_annotation_impl.cpp index 9c73aeb79..9d3e12e00 100644 --- a/src/mbgl/annotation/fill_annotation_impl.cpp +++ b/src/mbgl/annotation/fill_annotation_impl.cpp @@ -7,8 +7,8 @@ namespace mbgl { using namespace style; -FillAnnotationImpl::FillAnnotationImpl(AnnotationID id_, FillAnnotation annotation_, uint8_t maxZoom_) - : ShapeAnnotationImpl(id_, maxZoom_), +FillAnnotationImpl::FillAnnotationImpl(AnnotationID id_, FillAnnotation annotation_) + : ShapeAnnotationImpl(id_), annotation(ShapeAnnotationGeometry::visit(annotation_.geometry, CloseShapeAnnotation{}), annotation_.opacity, annotation_.color, annotation_.outlineColor) { } diff --git a/src/mbgl/annotation/fill_annotation_impl.hpp b/src/mbgl/annotation/fill_annotation_impl.hpp index 5c49e447b..98f992151 100644 --- a/src/mbgl/annotation/fill_annotation_impl.hpp +++ b/src/mbgl/annotation/fill_annotation_impl.hpp @@ -7,7 +7,7 @@ namespace mbgl { class FillAnnotationImpl : public ShapeAnnotationImpl { public: - FillAnnotationImpl(AnnotationID, FillAnnotation, uint8_t maxZoom); + FillAnnotationImpl(AnnotationID, FillAnnotation); void updateStyle(style::Style::Impl&) const final; const ShapeAnnotationGeometry& geometry() const final; diff --git a/src/mbgl/annotation/line_annotation_impl.cpp b/src/mbgl/annotation/line_annotation_impl.cpp index d35b95688..74fec49af 100644 --- a/src/mbgl/annotation/line_annotation_impl.cpp +++ b/src/mbgl/annotation/line_annotation_impl.cpp @@ -7,8 +7,8 @@ namespace mbgl { using namespace style; -LineAnnotationImpl::LineAnnotationImpl(AnnotationID id_, LineAnnotation annotation_, uint8_t maxZoom_) - : ShapeAnnotationImpl(id_, maxZoom_), +LineAnnotationImpl::LineAnnotationImpl(AnnotationID id_, LineAnnotation annotation_) + : ShapeAnnotationImpl(id_), annotation(ShapeAnnotationGeometry::visit(annotation_.geometry, CloseShapeAnnotation{}), annotation_.opacity, annotation_.width, annotation_.color) { } diff --git a/src/mbgl/annotation/line_annotation_impl.hpp b/src/mbgl/annotation/line_annotation_impl.hpp index 548a094d5..108787c42 100644 --- a/src/mbgl/annotation/line_annotation_impl.hpp +++ b/src/mbgl/annotation/line_annotation_impl.hpp @@ -7,7 +7,7 @@ namespace mbgl { class LineAnnotationImpl : public ShapeAnnotationImpl { public: - LineAnnotationImpl(AnnotationID, LineAnnotation, uint8_t maxZoom); + LineAnnotationImpl(AnnotationID, LineAnnotation); void updateStyle(style::Style::Impl&) const final; const ShapeAnnotationGeometry& geometry() const final; diff --git a/src/mbgl/annotation/shape_annotation_impl.cpp b/src/mbgl/annotation/shape_annotation_impl.cpp index 9288159b6..715dce484 100644 --- a/src/mbgl/annotation/shape_annotation_impl.cpp +++ b/src/mbgl/annotation/shape_annotation_impl.cpp @@ -13,9 +13,8 @@ namespace mbgl { using namespace style; namespace geojsonvt = mapbox::geojsonvt; -ShapeAnnotationImpl::ShapeAnnotationImpl(const AnnotationID id_, const uint8_t maxZoom_) +ShapeAnnotationImpl::ShapeAnnotationImpl(const AnnotationID id_) : id(id_), - maxZoom(maxZoom_), layerID(AnnotationManager::ShapeLayerID + util::toString(id)) { } @@ -28,7 +27,9 @@ void ShapeAnnotationImpl::updateTileData(const CanonicalTileID& tileID, Annotati return Feature { std::move(geom) }; })); mapbox::geojsonvt::Options options; - options.maxZoom = maxZoom; + // The annotation source is currently hard coded to maxzoom 16, so we're topping out at z16 + // here as well. + options.maxZoom = 16; options.buffer = 255u; options.extent = util::EXTENT; options.tolerance = baseTolerance; diff --git a/src/mbgl/annotation/shape_annotation_impl.hpp b/src/mbgl/annotation/shape_annotation_impl.hpp index caf2cff1a..3e28221f7 100644 --- a/src/mbgl/annotation/shape_annotation_impl.hpp +++ b/src/mbgl/annotation/shape_annotation_impl.hpp @@ -17,7 +17,7 @@ class CanonicalTileID; class ShapeAnnotationImpl { public: - ShapeAnnotationImpl(const AnnotationID, const uint8_t maxZoom); + ShapeAnnotationImpl(const AnnotationID); virtual ~ShapeAnnotationImpl() = default; virtual void updateStyle(style::Style::Impl&) const = 0; @@ -26,7 +26,6 @@ public: void updateTileData(const CanonicalTileID&, AnnotationTileData&); const AnnotationID id; - const uint8_t maxZoom; const std::string layerID; std::unique_ptr shapeTiler; }; diff --git a/src/mbgl/map/map.cpp b/src/mbgl/map/map.cpp index 6eb555ad1..5e5063905 100644 --- a/src/mbgl/map/map.cpp +++ b/src/mbgl/map/map.cpp @@ -647,13 +647,13 @@ double Map::getTopOffsetPixelsForAnnotationImage(const std::string& id) { } AnnotationID Map::addAnnotation(const Annotation& annotation) { - auto result = impl->annotationManager.addAnnotation(annotation, getMaxZoom()); + auto result = impl->annotationManager.addAnnotation(annotation); impl->onUpdate(); return result; } void Map::updateAnnotation(AnnotationID id, const Annotation& annotation) { - if (impl->annotationManager.updateAnnotation(id, annotation, getMaxZoom())) { + if (impl->annotationManager.updateAnnotation(id, annotation)) { impl->onUpdate(); } } diff --git a/test/api/annotations.test.cpp b/test/api/annotations.test.cpp index 9e622f780..b777615b4 100644 --- a/test/api/annotations.test.cpp +++ b/test/api/annotations.test.cpp @@ -459,3 +459,19 @@ TEST(Annotations, DebugSparse) { test.checkRendering("debug_sparse"); } + +TEST(Annotations, ChangeMaxZoom) { + AnnotationTest test; + + LineString line = {{ { 0, 0 }, { 45, 45 }, { 30, 0 } }}; + LineAnnotation annotation { line }; + annotation.color = Color::red(); + annotation.width = { 5 }; + + test.map.setMaxZoom(6); + test.map.getStyle().loadJSON(util::read_file("test/fixtures/api/empty.json")); + test.map.addAnnotation(annotation); + test.map.setMaxZoom(14); + test.map.setZoom(test.map.getMaxZoom()); + test.checkRendering("line_annotation_max_zoom"); +} From 0dc00ad877de2a68183257488763be3cb32482c2 Mon Sep 17 00:00:00 2001 From: Chris Loer Date: Mon, 27 Nov 2017 12:50:28 -0800 Subject: [PATCH 83/92] [ios,macos] Darwin implementation of a CoreText-based LocalGlyphRasterizer. - Changing font weight does not currently appear to be working. - Glyph metric extraction code not working; currently unused. --- platform/darwin/src/CFHandle.hpp | 31 +++ platform/darwin/src/image.mm | 14 +- platform/darwin/src/local_glyph_rasterizer.mm | 233 ++++++++++++++++++ platform/ios/config.cmake | 4 +- platform/macos/config.cmake | 4 +- platform/macos/src/MGLMapView.mm | 10 +- 6 files changed, 276 insertions(+), 20 deletions(-) create mode 100644 platform/darwin/src/CFHandle.hpp create mode 100644 platform/darwin/src/local_glyph_rasterizer.mm diff --git a/platform/darwin/src/CFHandle.hpp b/platform/darwin/src/CFHandle.hpp new file mode 100644 index 000000000..edcc9aafd --- /dev/null +++ b/platform/darwin/src/CFHandle.hpp @@ -0,0 +1,31 @@ +#pragma once + +/* + CFHandle is a minimal wrapper designed to hold and release CoreFoundation-style handles + It is non-transferrable: wrap it in something like a unique_ptr if you need to pass it around, + or just use unique_ptr with a custom deleter. + CFHandle has no special treatment for null handles -- be careful not to let it hold a null + handle if the behavior of the Releaser isn't defined for null. + + ex: + using CFDataHandle = CFHandle; + + CFDataHandle data(CFDataCreateWithBytesNoCopy( + kCFAllocatorDefault, reinterpret_cast(source.data()), source.size(), + kCFAllocatorNull)); +*/ + +namespace { + +template +struct CFHandle { + CFHandle(HandleType handle_): handle(handle_) {} + ~CFHandle() { Releaser(handle); } + HandleType operator*() { return handle; } + operator bool() { return handle; } +private: + HandleType handle; +}; + +} // namespace + diff --git a/platform/darwin/src/image.mm b/platform/darwin/src/image.mm index 57b680fbd..8c0d5fa48 100644 --- a/platform/darwin/src/image.mm +++ b/platform/darwin/src/image.mm @@ -2,19 +2,7 @@ #import -namespace { - -template -struct CFHandle { - CFHandle(T t_): t(t_) {} - ~CFHandle() { Releaser(t); } - T operator*() { return t; } - operator bool() { return t; } -private: - T t; -}; - -} // namespace +#import "CFHandle.hpp" using CGImageHandle = CFHandle; using CFDataHandle = CFHandle; diff --git a/platform/darwin/src/local_glyph_rasterizer.mm b/platform/darwin/src/local_glyph_rasterizer.mm new file mode 100644 index 000000000..35c9c6733 --- /dev/null +++ b/platform/darwin/src/local_glyph_rasterizer.mm @@ -0,0 +1,233 @@ +#include +#include +#include + +#include + +#import +#import +#import + +#import "CFHandle.hpp" + +namespace mbgl { + +/* + Darwin implementation of LocalGlyphRasterizer: + Draws CJK glyphs using locally available fonts. + + Mirrors GL JS implementation in that: + - Only CJK glyphs are drawn locally (because we can guess their metrics effectively) + * Render size/metrics determined experimentally by rendering a few different fonts + - Configuration is done at map creation time by setting a "font family" + * JS uses a CSS font-family, this uses kCTFontFamilyNameAttribute which has + somewhat different behavior. + - We use heuristics to extract a font-weight based on the incoming font stack + + Further improvements are possible: + - If we could reliably extract glyph metrics, we wouldn't be limited to CJK glyphs + - We could push the font configuration down to individual style layers, which would + allow any current style to be reproducible using local fonts. + - Instead of just exposing "font family" as a configuration, we could expose a richer + CTFontDescriptor configuration option (although we'd have to override font size to + make sure it stayed at 24pt). + - Because Apple exposes glyph paths via `CTFontCreatePathForGlyph` we could potentially + render directly to SDF instead of going through TinySDF -- although it's not clear + how much of an improvement it would be. +*/ + +using CGColorSpaceHandle = CFHandle; +using CGContextHandle = CFHandle; +using CFStringRefHandle = CFHandle; +using CFAttributedStringRefHandle = CFHandle; +using CFDictionaryRefHandle = CFHandle; +using CTFontDescriptorRefHandle = CFHandle; +using CTLineRefHandle = CFHandle; + +class LocalGlyphRasterizer::Impl { +public: + Impl(const optional fontFamily_) + : fontFamily(fontFamily_) + {} + + ~Impl() { + for (auto& pair : fontHandles) { + CFRelease(pair.second); + } + } + + + CTFontRef getFont(const FontStack& fontStack) { + if (!fontFamily) { + return NULL; + } + + if (fontHandles.find(fontStack) == fontHandles.end()) { + + NSDictionary* fontTraits = @{ (NSString *)kCTFontWeightTrait: [NSNumber numberWithFloat:getFontWeight(fontStack)] }; + + NSDictionary *fontAttributes = @{ + (NSString *)kCTFontSizeAttribute: [NSNumber numberWithFloat:24.0], + (NSString *)kCTFontFamilyNameAttribute: [[NSString alloc] initWithCString:fontFamily->c_str() encoding:NSUTF8StringEncoding], + (NSString *)kCTFontTraitsAttribute: fontTraits + //(NSString *)kCTFontStyleNameAttribute: (getFontWeight(fontStack) > .3) ? @"Bold" : @"Regular" + }; + + CTFontDescriptorRefHandle descriptor(CTFontDescriptorCreateWithAttributes((CFDictionaryRef)fontAttributes)); + CTFontRef font = CTFontCreateWithFontDescriptor(*descriptor, 0.0, NULL); + if (!font) { + throw std::runtime_error("CTFontCreateWithFontDescriptor failed"); + } + + fontHandles[fontStack] = font; + } + return fontHandles[fontStack]; + } + +private: + float getFontWeight(const FontStack& fontStack) { + // Analog to logic in glyph_manager.js + // From NSFontDescriptor.h (macOS 10.11+) NSFontWeight*: + constexpr float light = -.4; + constexpr float regular = 0.0; + constexpr float medium = .23; + constexpr float bold = .4; + + float fontWeight = regular; + for (auto font : fontStack) { + // Last font in the fontstack "wins" + std::string lowercaseFont = mbgl::platform::lowercase(font); + if (lowercaseFont.find("bold") != std::string::npos) { + fontWeight = bold; + } else if (lowercaseFont.find("medium") != std::string::npos) { + fontWeight = medium; + } else if (lowercaseFont.find("light") != std::string::npos) { + fontWeight = light; + } + } + + return fontWeight; + } + + std::unordered_map fontHandles; + optional fontFamily; +}; + +LocalGlyphRasterizer::LocalGlyphRasterizer(const optional fontFamily) + : impl(std::make_unique(fontFamily)) +{} + +LocalGlyphRasterizer::~LocalGlyphRasterizer() +{} + +bool LocalGlyphRasterizer::canRasterizeGlyph(const FontStack& fontStack, GlyphID glyphID) { + return util::i18n::allowsFixedWidthGlyphGeneration(glyphID) && impl->getFont(fontStack); +} + +/* +// TODO: In theory we should be able to transform user-coordinate bounding box and advance +// values into pixel glyph metrics. This would remove the need to use fixed glyph metrics +// (which will be slightly off depending on the font), and allow us to return non CJK glyphs +// (which will have variable "advance" values). +void extractGlyphMetrics(CTFontRef font, CTLineRef line) { + CFArrayRef glyphRuns = CTLineGetGlyphRuns(line); + CFIndex runCount = CFArrayGetCount(glyphRuns); + assert(runCount == 1); + CTRunRef run = (CTRunRef)CFArrayGetValueAtIndex(glyphRuns, 0); + CFIndex glyphCount = CTRunGetGlyphCount(run); + assert(glyphCount == 1); + const CGGlyph *glyphs = CTRunGetGlyphsPtr(run); + + CGRect boundingRects[1]; + boundingRects[0] = CGRectMake(0, 0, 0, 0); + CGSize advances[1]; + advances[0] = CGSizeMake(0,0); + CGRect totalBoundingRect = CTFontGetBoundingRectsForGlyphs(font, kCTFontOrientationDefault, glyphs, boundingRects, 1); + double totalAdvance = CTFontGetAdvancesForGlyphs(font, kCTFontOrientationDefault, glyphs, advances, 1); + + // Break in the debugger to see these values: translating from "user coordinates" to bitmap pixel coordinates + // should be OK, but a lot of glyphs seem to have empty bounding boxes...? + (void)totalBoundingRect; + (void)totalAdvance; +} +*/ + +PremultipliedImage drawGlyphBitmap(GlyphID glyphID, CTFontRef font, Size size) { + PremultipliedImage rgbaBitmap(size); + + CFStringRefHandle string(CFStringCreateWithCharacters(NULL, reinterpret_cast(&glyphID), 1)); + + CGColorSpaceHandle colorSpace(CGColorSpaceCreateDeviceRGB()); + // TODO: Is there a way to just draw a single alpha channel instead of copying it out of an RGB image? Doesn't seem like the grayscale colorspace is what I'm looking for... + if (!colorSpace) { + throw std::runtime_error("CGColorSpaceCreateDeviceRGB failed"); + } + + constexpr const size_t bitsPerComponent = 8; + constexpr const size_t bytesPerPixel = 4; + const size_t bytesPerRow = bytesPerPixel * size.width; + + CGContextHandle context(CGBitmapContextCreate( + rgbaBitmap.data.get(), + size.width, + size.height, + bitsPerComponent, + bytesPerRow, + *colorSpace, + kCGBitmapByteOrderDefault | kCGImageAlphaPremultipliedLast)); + if (!context) { + throw std::runtime_error("CGBitmapContextCreate failed"); + } + + CFStringRef keys[] = { kCTFontAttributeName }; + CFTypeRef values[] = { font }; + + CFDictionaryRefHandle attributes( + CFDictionaryCreate(kCFAllocatorDefault, (const void**)&keys, + (const void**)&values, sizeof(keys) / sizeof(keys[0]), + &kCFTypeDictionaryKeyCallBacks, + &kCFTypeDictionaryValueCallBacks)); + + CFAttributedStringRefHandle attrString(CFAttributedStringCreate(kCFAllocatorDefault, *string, *attributes)); + + CTLineRefHandle line(CTLineCreateWithAttributedString(*attrString)); + + // For debugging only, doesn't get useful metrics yet + //extractGlyphMetrics(font, *line); + + // Start drawing a little bit below the top of the bitmap + CGContextSetTextPosition(*context, 0.0, 5.0); + CTLineDraw(*line, *context); + + return rgbaBitmap; +} + +Glyph LocalGlyphRasterizer::rasterizeGlyph(const FontStack& fontStack, GlyphID glyphID) { + Glyph fixedMetrics; + CTFontRef font = impl->getFont(fontStack); + if (!font) { + return fixedMetrics; + } + + fixedMetrics.id = glyphID; + + Size size(35, 35); + + fixedMetrics.metrics.width = size.width; + fixedMetrics.metrics.height = size.height; + fixedMetrics.metrics.left = 3; + fixedMetrics.metrics.top = -1; + fixedMetrics.metrics.advance = 24; + + PremultipliedImage rgbaBitmap = drawGlyphBitmap(glyphID, font, size); + + // Copy alpha values from RGBA bitmap into the AlphaImage output + fixedMetrics.bitmap = AlphaImage(size); + for (uint32_t i = 0; i < size.width * size.height; i++) { + fixedMetrics.bitmap.data[i] = rgbaBitmap.data[4 * i + 3]; + } + + return fixedMetrics; +} + +} // namespace mbgl diff --git a/platform/ios/config.cmake b/platform/ios/config.cmake index 3b9921129..55de8bc39 100644 --- a/platform/ios/config.cmake +++ b/platform/ios/config.cmake @@ -28,11 +28,12 @@ macro(mbgl_platform_core) # Misc PRIVATE platform/darwin/mbgl/storage/reachability.h PRIVATE platform/darwin/mbgl/storage/reachability.m + PRIVATE platform/darwin/src/CFHandle.hpp + PRIVATE platform/darwin/src/local_glyph_rasterizer.mm PRIVATE platform/darwin/src/logging_nslog.mm PRIVATE platform/darwin/src/nsthread.mm PRIVATE platform/darwin/src/string_nsstring.mm PRIVATE platform/default/bidi.cpp - PRIVATE platform/default/local_glyph_rasterizer.cpp PRIVATE platform/default/thread_local.cpp PRIVATE platform/default/utf.cpp @@ -84,6 +85,7 @@ macro(mbgl_platform_core) target_link_libraries(mbgl-core PUBLIC "-lz" PUBLIC "-framework Foundation" + PUBLIC "-framework CoreText" PUBLIC "-framework CoreGraphics" PUBLIC "-framework OpenGLES" PUBLIC "-framework ImageIO" diff --git a/platform/macos/config.cmake b/platform/macos/config.cmake index 3e7f548ba..33eaa8251 100644 --- a/platform/macos/config.cmake +++ b/platform/macos/config.cmake @@ -14,11 +14,12 @@ macro(mbgl_platform_core) # Misc PRIVATE platform/darwin/mbgl/storage/reachability.h PRIVATE platform/darwin/mbgl/storage/reachability.m + PRIVATE platform/darwin/src/CFHandle.hpp + PRIVATE platform/darwin/src/local_glyph_rasterizer.mm PRIVATE platform/darwin/src/logging_nslog.mm PRIVATE platform/darwin/src/nsthread.mm PRIVATE platform/darwin/src/string_nsstring.mm PRIVATE platform/default/bidi.cpp - PRIVATE platform/default/local_glyph_rasterizer.cpp PRIVATE platform/default/thread_local.cpp PRIVATE platform/default/utf.cpp @@ -64,6 +65,7 @@ macro(mbgl_platform_core) target_link_libraries(mbgl-core PUBLIC "-lz" PUBLIC "-framework Foundation" + PUBLIC "-framework CoreText" PUBLIC "-framework CoreGraphics" PUBLIC "-framework OpenGL" PUBLIC "-framework ImageIO" diff --git a/platform/macos/src/MGLMapView.mm b/platform/macos/src/MGLMapView.mm index c2c13320c..5fb70d775 100644 --- a/platform/macos/src/MGLMapView.mm +++ b/platform/macos/src/MGLMapView.mm @@ -217,7 +217,7 @@ public: - (instancetype)initWithFrame:(NSRect)frameRect { if (self = [super initWithFrame:frameRect]) { - [self commonInit]; + [self commonInit:nil]; self.styleURL = nil; } return self; @@ -225,7 +225,7 @@ public: - (instancetype)initWithFrame:(NSRect)frame styleURL:(nullable NSURL *)styleURL { if (self = [super initWithFrame:frame]) { - [self commonInit]; + [self commonInit:nil]; self.styleURL = styleURL; } return self; @@ -233,7 +233,7 @@ public: - (instancetype)initWithCoder:(nonnull NSCoder *)decoder { if (self = [super initWithCoder:decoder]) { - [self commonInit]; + [self commonInit:nil]; } return self; } @@ -252,7 +252,7 @@ public: return @[@"camera", @"debugMask"]; } -- (void)commonInit { +- (void)commonInit:(nullable NSString*)fontFamily { _isTargetingInterfaceBuilder = NSProcessInfo.processInfo.mgl_isInterfaceBuilderDesignablesAgent; // Set up cross-platform controllers and resources. @@ -274,7 +274,7 @@ public: _mbglThreadPool = mbgl::sharedThreadPool(); - auto renderer = std::make_unique(*_mbglView, [NSScreen mainScreen].backingScaleFactor, *mbglFileSource, *_mbglThreadPool, mbgl::GLContextMode::Unique); + auto renderer = std::make_unique(*_mbglView, [NSScreen mainScreen].backingScaleFactor, *mbglFileSource, *_mbglThreadPool, mbgl::GLContextMode::Unique, mbgl::optional(), fontFamily ? std::string([fontFamily UTF8String]) : mbgl::optional()); _rendererFrontend = std::make_unique(std::move(renderer), self, *_mbglView, true); _mbglMap = new mbgl::Map(*_rendererFrontend, *_mbglView, self.size, [NSScreen mainScreen].backingScaleFactor, *mbglFileSource, *_mbglThreadPool, mbgl::MapMode::Continuous, mbgl::ConstrainMode::None, mbgl::ViewportMode::Default); From c1705f37fb89cff99bfee0b62afec391feb70606 Mon Sep 17 00:00:00 2001 From: Andrew Kitchen Date: Thu, 30 Nov 2017 17:13:44 -0800 Subject: [PATCH 84/92] [ios, macos] Adds support for specifying an ideographic font family name Adding a MGLIdeographicFontFamilyName to the containing app's Info.plist will result in CJK glyphs being rasterized on demand (#10522) --- platform/ios/src/MGLMapView.mm | 18 ++++++++++++++++-- platform/macos/src/MGLMapView.mm | 20 ++++++++++++++------ 2 files changed, 30 insertions(+), 8 deletions(-) diff --git a/platform/ios/src/MGLMapView.mm b/platform/ios/src/MGLMapView.mm index a0d4a5f36..e712f6510 100644 --- a/platform/ios/src/MGLMapView.mm +++ b/platform/ios/src/MGLMapView.mm @@ -187,6 +187,7 @@ public: @property (nonatomic) EAGLContext *context; @property (nonatomic) GLKView *glView; @property (nonatomic) UIImageView *glSnapshotView; + @property (nonatomic) NS_MUTABLE_ARRAY_OF(NSLayoutConstraint *) *scaleBarConstraints; @property (nonatomic, readwrite) MGLScaleBar *scaleBar; @property (nonatomic, readwrite) UIImageView *compassView; @@ -195,7 +196,10 @@ public: @property (nonatomic) NS_MUTABLE_ARRAY_OF(NSLayoutConstraint *) *logoViewConstraints; @property (nonatomic, readwrite) UIButton *attributionButton; @property (nonatomic) NS_MUTABLE_ARRAY_OF(NSLayoutConstraint *) *attributionButtonConstraints; + @property (nonatomic, readwrite) MGLStyle *style; +@property (nonatomic, readonly) NSString *ideographicFontFamilyName; + @property (nonatomic) UITapGestureRecognizer *singleTapGestureRecognizer; @property (nonatomic) UITapGestureRecognizer *doubleTap; @property (nonatomic) UITapGestureRecognizer *twoFingerTap; @@ -204,11 +208,14 @@ public: @property (nonatomic) UIRotationGestureRecognizer *rotate; @property (nonatomic) UILongPressGestureRecognizer *quickZoom; @property (nonatomic) UIPanGestureRecognizer *twoFingerDrag; + /// Mapping from reusable identifiers to annotation images. @property (nonatomic) NS_MUTABLE_DICTIONARY_OF(NSString *, MGLAnnotationImage *) *annotationImagesByIdentifier; + /// Currently shown popover representing the selected annotation. @property (nonatomic) UIView *calloutViewForSelectedAnnotation; @property (nonatomic) MGLUserLocationAnnotationView *userLocationAnnotationView; + /// Indicates how thoroughly the map view is tracking the user location. @property (nonatomic) MGLUserTrackingState userTrackingState; @property (nonatomic) CLLocationManager *locationManager; @@ -402,8 +409,9 @@ public: mbgl::DefaultFileSource *mbglFileSource = [MGLOfflineStorage sharedOfflineStorage].mbglFileSource; const float scaleFactor = [UIScreen instancesRespondToSelector:@selector(nativeScale)] ? [[UIScreen mainScreen] nativeScale] : [[UIScreen mainScreen] scale]; _mbglThreadPool = mbgl::sharedThreadPool(); - - auto renderer = std::make_unique(*_mbglView, scaleFactor, *mbglFileSource, *_mbglThreadPool, mbgl::GLContextMode::Unique); + NSString *fontFamilyName = self.ideographicFontFamilyName; + + auto renderer = std::make_unique(*_mbglView, scaleFactor, *mbglFileSource, *_mbglThreadPool, mbgl::GLContextMode::Unique, mbgl::optional(), fontFamilyName ? std::string([fontFamilyName UTF8String]) : mbgl::optional()); _rendererFrontend = std::make_unique(std::move(renderer), self, *_mbglView); _mbglMap = new mbgl::Map(*_rendererFrontend, *_mbglView, self.size, scaleFactor, *mbglFileSource, *_mbglThreadPool, mbgl::MapMode::Continuous, mbgl::ConstrainMode::None, mbgl::ViewportMode::Default); @@ -3460,6 +3468,12 @@ public: [self.style removeStyleClass:styleClass]; } +#pragma mark Ideographic Font Info + +- (NSString *)ideographicFontFamilyName { + return [[NSBundle mainBundle] objectForInfoDictionaryKey:@"MGLIdeographicFontFamilyName"]; +} + #pragma mark - Annotations - - (nullable NS_ARRAY_OF(id ) *)annotations diff --git a/platform/macos/src/MGLMapView.mm b/platform/macos/src/MGLMapView.mm index 5fb70d775..542482e2a 100644 --- a/platform/macos/src/MGLMapView.mm +++ b/platform/macos/src/MGLMapView.mm @@ -143,6 +143,8 @@ public: @property (nonatomic, readwrite) NSView *attributionView; @property (nonatomic, readwrite) MGLStyle *style; +@property (nonatomic, readonly) NSString *ideographicFontFamilyName; + /// Mapping from reusable identifiers to annotation images. @property (nonatomic) NS_MUTABLE_DICTIONARY_OF(NSString *, MGLAnnotationImage *) *annotationImagesByIdentifier; @@ -217,7 +219,7 @@ public: - (instancetype)initWithFrame:(NSRect)frameRect { if (self = [super initWithFrame:frameRect]) { - [self commonInit:nil]; + [self commonInit]; self.styleURL = nil; } return self; @@ -225,7 +227,7 @@ public: - (instancetype)initWithFrame:(NSRect)frame styleURL:(nullable NSURL *)styleURL { if (self = [super initWithFrame:frame]) { - [self commonInit:nil]; + [self commonInit]; self.styleURL = styleURL; } return self; @@ -233,7 +235,7 @@ public: - (instancetype)initWithCoder:(nonnull NSCoder *)decoder { if (self = [super initWithCoder:decoder]) { - [self commonInit:nil]; + [self commonInit]; } return self; } @@ -252,7 +254,7 @@ public: return @[@"camera", @"debugMask"]; } -- (void)commonInit:(nullable NSString*)fontFamily { +- (void)commonInit { _isTargetingInterfaceBuilder = NSProcessInfo.processInfo.mgl_isInterfaceBuilderDesignablesAgent; // Set up cross-platform controllers and resources. @@ -271,10 +273,10 @@ public: [[NSFileManager defaultManager] removeItemAtURL:legacyCacheURL error:NULL]; mbgl::DefaultFileSource* mbglFileSource = [MGLOfflineStorage sharedOfflineStorage].mbglFileSource; - _mbglThreadPool = mbgl::sharedThreadPool(); + NSString *fontFamilyName = self.ideographicFontFamilyName; - auto renderer = std::make_unique(*_mbglView, [NSScreen mainScreen].backingScaleFactor, *mbglFileSource, *_mbglThreadPool, mbgl::GLContextMode::Unique, mbgl::optional(), fontFamily ? std::string([fontFamily UTF8String]) : mbgl::optional()); + auto renderer = std::make_unique(*_mbglView, [NSScreen mainScreen].backingScaleFactor, *mbglFileSource, *_mbglThreadPool, mbgl::GLContextMode::Unique, mbgl::optional(), fontFamilyName ? std::string([fontFamilyName UTF8String]) : mbgl::optional()); _rendererFrontend = std::make_unique(std::move(renderer), self, *_mbglView, true); _mbglMap = new mbgl::Map(*_rendererFrontend, *_mbglView, self.size, [NSScreen mainScreen].backingScaleFactor, *mbglFileSource, *_mbglThreadPool, mbgl::MapMode::Continuous, mbgl::ConstrainMode::None, mbgl::ViewportMode::Default); @@ -652,6 +654,12 @@ public: return _rendererFrontend->getRenderer(); } +#pragma mark Ideographic Font Info + +- (NSString *)ideographicFontFamilyName { + return [[NSBundle mainBundle] objectForInfoDictionaryKey:@"MGLIdeographicFontFamilyName"]; +} + #pragma mark View hierarchy and drawing - (void)viewWillMoveToWindow:(NSWindow *)newWindow { From 314c51611c6cbd0315df9cd3551363f6e6cf121b Mon Sep 17 00:00:00 2001 From: Andrew Kitchen Date: Mon, 4 Dec 2017 13:29:16 -0800 Subject: [PATCH 85/92] [darwin, ios, macos] Introduces an MGLRendererConfiguration class Instructions for enabling client-side rendering of CJK glyphs live in this header, and this class provides the rest of the values needed for instantiating the renderer on iOS and macOS. --- .../darwin/src/MGLRendererConfiguration.h | 40 +++++++++++++++++ .../darwin/src/MGLRendererConfiguration.mm | 43 +++++++++++++++++++ platform/ios/ios.xcodeproj/project.pbxproj | 14 +++++- platform/ios/src/MGLMapView.mm | 18 +++----- .../macos/macos.xcodeproj/project.pbxproj | 8 ++++ platform/macos/src/MGLMapView.mm | 8 ++-- 6 files changed, 113 insertions(+), 18 deletions(-) create mode 100644 platform/darwin/src/MGLRendererConfiguration.h create mode 100644 platform/darwin/src/MGLRendererConfiguration.mm diff --git a/platform/darwin/src/MGLRendererConfiguration.h b/platform/darwin/src/MGLRendererConfiguration.h new file mode 100644 index 000000000..35cf82853 --- /dev/null +++ b/platform/darwin/src/MGLRendererConfiguration.h @@ -0,0 +1,40 @@ +#import +#import +#import + +NS_ASSUME_NONNULL_BEGIN + +/** + The MGLRendererConfiguration object represents configuration values for the + renderer. + */ +@interface MGLRendererConfiguration : NSObject + +/** Returns an instance of the current renderer configuration. */ ++ (instancetype)currentConfiguration; + +/** The file source to use. Defaults to `mbgl::DefaultFileSource` */ +@property (nonatomic, readonly) mbgl::DefaultFileSource *fileSource; + +/** The GL context mode to use. Defaults to `mbgl::GLContextMode::Unique` */ +@property (nonatomic, readonly) mbgl::GLContextMode contextMode; + +/** The scale factor to use. + + Based on the native scale where available, otherwise the standard screen scale. */ +@property (nonatomic, readonly) const float scaleFactor; + +/** The cache dir to use. */ +@property (nonatomic, readonly) mbgl::optional cacheDir; + +/** The name of the font family to use for client-side text rendering. + + Currently only used for CJK glyphs. Changing this at run time is not currently + supported. Enable client-side rendering of CJK glyphs by setting + `MGLIdeographicFontFamilyName` in your containing app's Info.plist to a value + which will be available at runtime, i.e. "Arial Unicode MS". */ +@property (nonatomic, readonly) mbgl::optional localFontFamilyName; + +@end + +NS_ASSUME_NONNULL_END diff --git a/platform/darwin/src/MGLRendererConfiguration.mm b/platform/darwin/src/MGLRendererConfiguration.mm new file mode 100644 index 000000000..ae7d7dd9f --- /dev/null +++ b/platform/darwin/src/MGLRendererConfiguration.mm @@ -0,0 +1,43 @@ +#import "MGLRendererConfiguration.h" +#import "MGLOfflineStorage_Private.h" + +#if TARGET_OS_IPHONE +#import +#else +#import +#endif + + +@implementation MGLRendererConfiguration + ++ (instancetype)currentConfiguration { + return [[self alloc] init]; +} + +- (mbgl::DefaultFileSource *)fileSource { + return [MGLOfflineStorage sharedOfflineStorage].mbglFileSource; +} + +- (mbgl::GLContextMode)contextMode { + return mbgl::GLContextMode::Unique; +} + +- (const float)scaleFactor { +#if TARGET_OS_IPHONE + return [UIScreen instancesRespondToSelector:@selector(nativeScale)] ? [[UIScreen mainScreen] nativeScale] : [[UIScreen mainScreen] scale]; +#else + return [NSScreen mainScreen].backingScaleFactor; +#endif +} + +- (mbgl::optional)cacheDir { + return mbgl::optional(); +} + +- (mbgl::optional)localFontFamilyName { + NSString *fontFamilyName = [[NSBundle mainBundle] objectForInfoDictionaryKey:@"MGLIdeographicFontFamilyName"]; + + return fontFamilyName ? std::string([fontFamilyName UTF8String]) : mbgl::optional(); +} + +@end diff --git a/platform/ios/ios.xcodeproj/project.pbxproj b/platform/ios/ios.xcodeproj/project.pbxproj index cc56a73e7..c405e92d3 100644 --- a/platform/ios/ios.xcodeproj/project.pbxproj +++ b/platform/ios/ios.xcodeproj/project.pbxproj @@ -150,6 +150,10 @@ 35E79F201D41266300957B9E /* MGLStyleLayer_Private.h in Headers */ = {isa = PBXBuildFile; fileRef = 35E79F1F1D41266300957B9E /* MGLStyleLayer_Private.h */; }; 35E79F211D41266300957B9E /* MGLStyleLayer_Private.h in Headers */ = {isa = PBXBuildFile; fileRef = 35E79F1F1D41266300957B9E /* MGLStyleLayer_Private.h */; }; 36F1153D1D46080700878E1A /* libmbgl-core.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 36F1153B1D46080700878E1A /* libmbgl-core.a */; }; + 3EA93369F61CF70AFA50465D /* MGLRendererConfiguration.mm in Sources */ = {isa = PBXBuildFile; fileRef = 3EA931BC4F087E166D538F21 /* MGLRendererConfiguration.mm */; }; + 3EA934623AD0000B7D99C3FB /* MGLRendererConfiguration.h in Headers */ = {isa = PBXBuildFile; fileRef = 3EA9337830C7738BF7F5493C /* MGLRendererConfiguration.h */; }; + 3EA9363147E77DD29FA06063 /* MGLRendererConfiguration.h in Headers */ = {isa = PBXBuildFile; fileRef = 3EA9337830C7738BF7F5493C /* MGLRendererConfiguration.h */; }; + 3EA9366247780E4F252652A8 /* MGLRendererConfiguration.mm in Sources */ = {isa = PBXBuildFile; fileRef = 3EA931BC4F087E166D538F21 /* MGLRendererConfiguration.mm */; }; 400533011DB0862B0069F638 /* NSArray+MGLAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = 400532FF1DB0862B0069F638 /* NSArray+MGLAdditions.h */; }; 400533021DB0862B0069F638 /* NSArray+MGLAdditions.mm in Sources */ = {isa = PBXBuildFile; fileRef = 400533001DB0862B0069F638 /* NSArray+MGLAdditions.mm */; }; 400533031DB086490069F638 /* NSArray+MGLAdditions.mm in Sources */ = {isa = PBXBuildFile; fileRef = 400533001DB0862B0069F638 /* NSArray+MGLAdditions.mm */; }; @@ -662,6 +666,8 @@ 35E79F1F1D41266300957B9E /* MGLStyleLayer_Private.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MGLStyleLayer_Private.h; sourceTree = ""; }; 36F1153B1D46080700878E1A /* libmbgl-core.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = "libmbgl-core.a"; path = "build/Debug-iphoneos/libmbgl-core.a"; sourceTree = ""; }; 36F1153C1D46080700878E1A /* libmbgl-platform-ios.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = "libmbgl-platform-ios.a"; path = "build/Debug-iphoneos/libmbgl-platform-ios.a"; sourceTree = ""; }; + 3EA931BC4F087E166D538F21 /* MGLRendererConfiguration.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = MGLRendererConfiguration.mm; sourceTree = ""; }; + 3EA9337830C7738BF7F5493C /* MGLRendererConfiguration.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MGLRendererConfiguration.h; sourceTree = ""; }; 400532FF1DB0862B0069F638 /* NSArray+MGLAdditions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSArray+MGLAdditions.h"; sourceTree = ""; }; 400533001DB0862B0069F638 /* NSArray+MGLAdditions.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = "NSArray+MGLAdditions.mm"; sourceTree = ""; }; 4018B1C31CDC277F00F666AF /* MGLAnnotationView_Private.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MGLAnnotationView_Private.h; sourceTree = ""; }; @@ -1401,6 +1407,7 @@ DAD165801CF4CF9A001FF4B9 /* Formatters */, DAD165811CF4CFC4001FF4B9 /* Geometry */, DAD165821CF4CFE3001FF4B9 /* Offline Maps */, + DA8848911CBB049300AB86E3 /* reachability */, DA8847DF1CBAFA5100AB86E3 /* MGLAccountManager.h */, DA8847FF1CBAFA6200AB86E3 /* MGLAccountManager_Private.h */, DA8848001CBAFA6200AB86E3 /* MGLAccountManager.m */, @@ -1416,13 +1423,14 @@ 927FBCFE1F4DB05500F8BF1F /* MGLMapSnapshotter.mm */, DD0902A41DB18F1B00C5BDCE /* MGLNetworkConfiguration.h */, DD0902A21DB18DE700C5BDCE /* MGLNetworkConfiguration.m */, + 3EA9337830C7738BF7F5493C /* MGLRendererConfiguration.h */, + 3EA931BC4F087E166D538F21 /* MGLRendererConfiguration.mm */, 92F2C3EC1F0E3C3A00268EC0 /* MGLRendererFrontend.h */, DA8847EC1CBAFA5100AB86E3 /* MGLStyle.h */, 35E0CFE51D3E501500188327 /* MGLStyle_Private.h */, DA88480F1CBAFA6200AB86E3 /* MGLStyle.mm */, DA8847EE1CBAFA5100AB86E3 /* MGLTypes.h */, DA8848111CBAFA6200AB86E3 /* MGLTypes.m */, - DA8848911CBB049300AB86E3 /* reachability */, 35E1A4D71D74336F007AA97F /* MGLValueEvaluator.h */, ); name = Foundation; @@ -1848,6 +1856,7 @@ DA8847F61CBAFA5100AB86E3 /* MGLOfflineStorage.h in Headers */, DAD1656E1CF41981001FF4B9 /* MGLFeature_Private.h in Headers */, DA88483C1CBAFB8500AB86E3 /* MGLMapView.h in Headers */, + 3EA9363147E77DD29FA06063 /* MGLRendererConfiguration.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -1941,6 +1950,7 @@ DAF0D8191DFE6B2800B28378 /* MGLAttributionInfo_Private.h in Headers */, DABFB86A1CBE99E500D62B32 /* MGLStyle.h in Headers */, DA00FC8F1D5EEB0D009AABC8 /* MGLAttributionInfo.h in Headers */, + 3EA934623AD0000B7D99C3FB /* MGLRendererConfiguration.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -2389,6 +2399,7 @@ DA8848581CBAFB9800AB86E3 /* MGLMapboxEvents.m in Sources */, 35CE61841D4165D9004F2359 /* UIColor+MGLAdditions.mm in Sources */, DA8848561CBAFB9800AB86E3 /* MGLLocationManager.m in Sources */, + 3EA93369F61CF70AFA50465D /* MGLRendererConfiguration.mm in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -2477,6 +2488,7 @@ DAA4E41C1CBB730400178DFB /* MGLAccountManager.m in Sources */, 35CE61851D4165D9004F2359 /* UIColor+MGLAdditions.mm in Sources */, DAA4E4241CBB730400178DFB /* MGLPolyline.mm in Sources */, + 3EA9366247780E4F252652A8 /* MGLRendererConfiguration.mm in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; diff --git a/platform/ios/src/MGLMapView.mm b/platform/ios/src/MGLMapView.mm index e712f6510..c02446609 100644 --- a/platform/ios/src/MGLMapView.mm +++ b/platform/ios/src/MGLMapView.mm @@ -42,6 +42,7 @@ #import "MGLOfflineStorage_Private.h" #import "MGLFoundation_Private.h" #import "MGLRendererFrontend.h" +#import "MGLRendererConfiguration.h" #import "MGLVectorSource+MGLAdditions.h" #import "NSBundle+MGLAdditions.h" @@ -198,7 +199,6 @@ public: @property (nonatomic) NS_MUTABLE_ARRAY_OF(NSLayoutConstraint *) *attributionButtonConstraints; @property (nonatomic, readwrite) MGLStyle *style; -@property (nonatomic, readonly) NSString *ideographicFontFamilyName; @property (nonatomic) UITapGestureRecognizer *singleTapGestureRecognizer; @property (nonatomic) UITapGestureRecognizer *doubleTap; @@ -323,7 +323,7 @@ public: + (void)initialize { - if (self == [MGLMapView self]) + if (self == [MGLMapView class]) { [MGLSDKUpdateChecker checkForUpdates]; } @@ -406,14 +406,12 @@ public: [[NSFileManager defaultManager] removeItemAtPath:fileCachePath error:NULL]; // setup mbgl map - mbgl::DefaultFileSource *mbglFileSource = [MGLOfflineStorage sharedOfflineStorage].mbglFileSource; - const float scaleFactor = [UIScreen instancesRespondToSelector:@selector(nativeScale)] ? [[UIScreen mainScreen] nativeScale] : [[UIScreen mainScreen] scale]; + MGLRendererConfiguration *config = [MGLRendererConfiguration currentConfiguration]; _mbglThreadPool = mbgl::sharedThreadPool(); - NSString *fontFamilyName = self.ideographicFontFamilyName; - auto renderer = std::make_unique(*_mbglView, scaleFactor, *mbglFileSource, *_mbglThreadPool, mbgl::GLContextMode::Unique, mbgl::optional(), fontFamilyName ? std::string([fontFamilyName UTF8String]) : mbgl::optional()); + auto renderer = std::make_unique(*_mbglView, config.scaleFactor, *config.fileSource, *_mbglThreadPool, config.contextMode, config.cacheDir, config.localFontFamilyName); _rendererFrontend = std::make_unique(std::move(renderer), self, *_mbglView); - _mbglMap = new mbgl::Map(*_rendererFrontend, *_mbglView, self.size, scaleFactor, *mbglFileSource, *_mbglThreadPool, mbgl::MapMode::Continuous, mbgl::ConstrainMode::None, mbgl::ViewportMode::Default); + _mbglMap = new mbgl::Map(*_rendererFrontend, *_mbglView, self.size, config.scaleFactor, *[config fileSource], *_mbglThreadPool, mbgl::MapMode::Continuous, mbgl::ConstrainMode::None, mbgl::ViewportMode::Default); // start paused if in IB if (_isTargetingInterfaceBuilder || background) { @@ -3468,12 +3466,6 @@ public: [self.style removeStyleClass:styleClass]; } -#pragma mark Ideographic Font Info - -- (NSString *)ideographicFontFamilyName { - return [[NSBundle mainBundle] objectForInfoDictionaryKey:@"MGLIdeographicFontFamilyName"]; -} - #pragma mark - Annotations - - (nullable NS_ARRAY_OF(id ) *)annotations diff --git a/platform/macos/macos.xcodeproj/project.pbxproj b/platform/macos/macos.xcodeproj/project.pbxproj index cc49c5bbf..25ee7516b 100644 --- a/platform/macos/macos.xcodeproj/project.pbxproj +++ b/platform/macos/macos.xcodeproj/project.pbxproj @@ -59,6 +59,8 @@ 35C6DF871E214C1800ACA483 /* MGLDistanceFormatterTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 35C6DF861E214C1800ACA483 /* MGLDistanceFormatterTests.m */; }; 35D65C5A1D65AD5500722C23 /* NSDate+MGLAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = 35D65C581D65AD5500722C23 /* NSDate+MGLAdditions.h */; }; 35D65C5B1D65AD5500722C23 /* NSDate+MGLAdditions.mm in Sources */ = {isa = PBXBuildFile; fileRef = 35D65C591D65AD5500722C23 /* NSDate+MGLAdditions.mm */; }; + 3EA9317388DC9A0BF46B7674 /* MGLRendererConfiguration.h in Headers */ = {isa = PBXBuildFile; fileRef = 3EA9369A4C46957566058822 /* MGLRendererConfiguration.h */; }; + 3EA93BA38DBB4B814B6C1FCC /* MGLRendererConfiguration.mm in Sources */ = {isa = PBXBuildFile; fileRef = 3EA93B1B0864609938506E12 /* MGLRendererConfiguration.mm */; }; 4031ACFC1E9EB3C100A3EA26 /* MGLMapViewDelegateIntegrationTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4031ACFB1E9EB3C100A3EA26 /* MGLMapViewDelegateIntegrationTests.swift */; }; 4031AD031E9FD6AA00A3EA26 /* MGLSDKTestHelpers.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4031AD011E9FD6A300A3EA26 /* MGLSDKTestHelpers.swift */; }; 4049C2A51DB6CE7F00B3F799 /* MGLPointCollection.h in Headers */ = {isa = PBXBuildFile; fileRef = 4049C2A11DB6CE7800B3F799 /* MGLPointCollection.h */; settings = {ATTRIBUTES = (Public, ); }; }; @@ -334,6 +336,8 @@ 35C6DF861E214C1800ACA483 /* MGLDistanceFormatterTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = MGLDistanceFormatterTests.m; path = ../../darwin/test/MGLDistanceFormatterTests.m; sourceTree = ""; }; 35D65C581D65AD5500722C23 /* NSDate+MGLAdditions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSDate+MGLAdditions.h"; sourceTree = ""; }; 35D65C591D65AD5500722C23 /* NSDate+MGLAdditions.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = "NSDate+MGLAdditions.mm"; sourceTree = ""; }; + 3EA9369A4C46957566058822 /* MGLRendererConfiguration.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MGLRendererConfiguration.h; sourceTree = ""; }; + 3EA93B1B0864609938506E12 /* MGLRendererConfiguration.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = MGLRendererConfiguration.mm; sourceTree = ""; }; 4031ACFB1E9EB3C100A3EA26 /* MGLMapViewDelegateIntegrationTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MGLMapViewDelegateIntegrationTests.swift; sourceTree = ""; }; 4031AD011E9FD6A300A3EA26 /* MGLSDKTestHelpers.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = MGLSDKTestHelpers.swift; path = ../../darwin/test/MGLSDKTestHelpers.swift; sourceTree = ""; }; 4049C2A11DB6CE7800B3F799 /* MGLPointCollection.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MGLPointCollection.h; sourceTree = ""; }; @@ -1087,6 +1091,8 @@ 92092EEF1F5EB10E00AF5130 /* MGLMapSnapshotter.mm */, DD0902B01DB1AC6400C5BDCE /* MGLNetworkConfiguration.h */, DD0902AF1DB1AC6400C5BDCE /* MGLNetworkConfiguration.m */, + 3EA9369A4C46957566058822 /* MGLRendererConfiguration.h */, + 3EA93B1B0864609938506E12 /* MGLRendererConfiguration.mm */, 92F2C3EA1F0E3A1900268EC0 /* MGLRendererFrontend.h */, DAE6C3571CC31E0400DB3429 /* MGLStyle.h */, 3537CA731D3F93A600380318 /* MGLStyle_Private.h */, @@ -1237,6 +1243,7 @@ 1F7454A41ECFB00300021D39 /* MGLLight.h in Headers */, 408AA8671DAEEE3900022900 /* NSDictionary+MGLAdditions.h in Headers */, DAE6C3671CC31E0400DB3429 /* MGLStyle.h in Headers */, + 3EA9317388DC9A0BF46B7674 /* MGLRendererConfiguration.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -1512,6 +1519,7 @@ 3529039C1D6C63B80002C7DF /* NSPredicate+MGLAdditions.mm in Sources */, DA8F25981D51CAC70010E6B5 /* MGLVectorSource.mm in Sources */, 352742A11D4C25BD00A1ECE6 /* MGLStyleValue.mm in Sources */, + 3EA93BA38DBB4B814B6C1FCC /* MGLRendererConfiguration.mm in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; diff --git a/platform/macos/src/MGLMapView.mm b/platform/macos/src/MGLMapView.mm index 542482e2a..857561865 100644 --- a/platform/macos/src/MGLMapView.mm +++ b/platform/macos/src/MGLMapView.mm @@ -5,6 +5,7 @@ #import "MGLOpenGLLayer.h" #import "MGLStyle.h" #import "MGLRendererFrontend.h" +#import "MGLRendererConfiguration.h" #import "MGLAnnotationImage_Private.h" #import "MGLAttributionInfo_Private.h" @@ -272,13 +273,12 @@ public: NSURL *legacyCacheURL = [cachesDirectoryURL URLByAppendingPathComponent:@"cache.db"]; [[NSFileManager defaultManager] removeItemAtURL:legacyCacheURL error:NULL]; - mbgl::DefaultFileSource* mbglFileSource = [MGLOfflineStorage sharedOfflineStorage].mbglFileSource; _mbglThreadPool = mbgl::sharedThreadPool(); - NSString *fontFamilyName = self.ideographicFontFamilyName; + MGLRendererConfiguration *config = [MGLRendererConfiguration currentConfiguration]; - auto renderer = std::make_unique(*_mbglView, [NSScreen mainScreen].backingScaleFactor, *mbglFileSource, *_mbglThreadPool, mbgl::GLContextMode::Unique, mbgl::optional(), fontFamilyName ? std::string([fontFamilyName UTF8String]) : mbgl::optional()); + auto renderer = std::make_unique(*_mbglView, config.scaleFactor, *config.fileSource, *_mbglThreadPool, config.contextMode, config.cacheDir, config.localFontFamilyName); _rendererFrontend = std::make_unique(std::move(renderer), self, *_mbglView, true); - _mbglMap = new mbgl::Map(*_rendererFrontend, *_mbglView, self.size, [NSScreen mainScreen].backingScaleFactor, *mbglFileSource, *_mbglThreadPool, mbgl::MapMode::Continuous, mbgl::ConstrainMode::None, mbgl::ViewportMode::Default); + _mbglMap = new mbgl::Map(*_rendererFrontend, *_mbglView, self.size, config.scaleFactor, *config.fileSource, *_mbglThreadPool, mbgl::MapMode::Continuous, mbgl::ConstrainMode::None, mbgl::ViewportMode::Default); // Install the OpenGL layer. Interface Builder’s synchronous drawing means // we can’t display a map, so don’t even bother to have a map layer. From 38bffda85a51a44dd6ce6088afcdb7a24790f6ee Mon Sep 17 00:00:00 2001 From: Andrew Kitchen Date: Fri, 8 Dec 2017 10:49:39 -0500 Subject: [PATCH 86/92] [darwin, macos] Rename Info.plist key for consistency Also removes related dead code in macos MGLMapView.mm --- platform/darwin/src/MGLRendererConfiguration.h | 4 ++-- platform/darwin/src/MGLRendererConfiguration.mm | 2 +- platform/macos/src/MGLMapView.mm | 8 -------- 3 files changed, 3 insertions(+), 11 deletions(-) diff --git a/platform/darwin/src/MGLRendererConfiguration.h b/platform/darwin/src/MGLRendererConfiguration.h index 35cf82853..676cc9171 100644 --- a/platform/darwin/src/MGLRendererConfiguration.h +++ b/platform/darwin/src/MGLRendererConfiguration.h @@ -31,8 +31,8 @@ NS_ASSUME_NONNULL_BEGIN Currently only used for CJK glyphs. Changing this at run time is not currently supported. Enable client-side rendering of CJK glyphs by setting - `MGLIdeographicFontFamilyName` in your containing app's Info.plist to a value - which will be available at runtime, i.e. "Arial Unicode MS". */ + `MGLIdeographFontFamilyName` in your containing app's Info.plist to a value + which will be available at run time, i.e. "Arial Unicode MS". */ @property (nonatomic, readonly) mbgl::optional localFontFamilyName; @end diff --git a/platform/darwin/src/MGLRendererConfiguration.mm b/platform/darwin/src/MGLRendererConfiguration.mm index ae7d7dd9f..be60c3c78 100644 --- a/platform/darwin/src/MGLRendererConfiguration.mm +++ b/platform/darwin/src/MGLRendererConfiguration.mm @@ -35,7 +35,7 @@ } - (mbgl::optional)localFontFamilyName { - NSString *fontFamilyName = [[NSBundle mainBundle] objectForInfoDictionaryKey:@"MGLIdeographicFontFamilyName"]; + NSString *fontFamilyName = [[NSBundle mainBundle] objectForInfoDictionaryKey:@"MGLIdeographFontFamilyName"]; return fontFamilyName ? std::string([fontFamilyName UTF8String]) : mbgl::optional(); } diff --git a/platform/macos/src/MGLMapView.mm b/platform/macos/src/MGLMapView.mm index 857561865..f2c6afb2f 100644 --- a/platform/macos/src/MGLMapView.mm +++ b/platform/macos/src/MGLMapView.mm @@ -144,8 +144,6 @@ public: @property (nonatomic, readwrite) NSView *attributionView; @property (nonatomic, readwrite) MGLStyle *style; -@property (nonatomic, readonly) NSString *ideographicFontFamilyName; - /// Mapping from reusable identifiers to annotation images. @property (nonatomic) NS_MUTABLE_DICTIONARY_OF(NSString *, MGLAnnotationImage *) *annotationImagesByIdentifier; @@ -654,12 +652,6 @@ public: return _rendererFrontend->getRenderer(); } -#pragma mark Ideographic Font Info - -- (NSString *)ideographicFontFamilyName { - return [[NSBundle mainBundle] objectForInfoDictionaryKey:@"MGLIdeographicFontFamilyName"]; -} - #pragma mark View hierarchy and drawing - (void)viewWillMoveToWindow:(NSWindow *)newWindow { From 3fd2eb2557bc783a14b7f3ce7b671223e7250ef2 Mon Sep 17 00:00:00 2001 From: Andrew Kitchen Date: Fri, 8 Dec 2017 10:58:35 -0500 Subject: [PATCH 87/92] [macos, ios] Adds documentation for the MGLIdeographFontFamilyName key --- platform/ios/docs/guides/Info.plist Keys.md | 4 ++++ platform/macos/docs/guides/Info.plist Keys.md | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/platform/ios/docs/guides/Info.plist Keys.md b/platform/ios/docs/guides/Info.plist Keys.md index e74e28b76..dc9e0a302 100644 --- a/platform/ios/docs/guides/Info.plist Keys.md +++ b/platform/ios/docs/guides/Info.plist Keys.md @@ -19,3 +19,7 @@ The default value is `https://api.mapbox.com`. ## MGLMapboxMetricsEnabledSettingShownInApp If you have implemented custom opt-out of Mapbox Telemetry within the user interface of your app, use this key to disable the built-in check for opt-out support. See [this guide](https://www.mapbox.com/ios-sdk/#telemetry_opt_out) for more details. + +## MGLIdeographFontFamilyName + +The name of the font family to use for client-side text rendering of CJK ideographs. Set this to the name of a font family which will be available at run time, i.e. `Arial Unicode MS`. diff --git a/platform/macos/docs/guides/Info.plist Keys.md b/platform/macos/docs/guides/Info.plist Keys.md index 2c75ca88c..3a3edd33f 100644 --- a/platform/macos/docs/guides/Info.plist Keys.md +++ b/platform/macos/docs/guides/Info.plist Keys.md @@ -15,3 +15,7 @@ As an alternative, you can use `+[MGLAccountManager setAccessToken:]` to set a t Use this key if you need to customize the API base URL used throughout the SDK. If unset, the default Mapbox API is used. The default value is `https://api.mapbox.com`. + +## MGLIdeographFontFamilyName + +The name of the font family to use for client-side text rendering of CJK ideographs. Set this to the name of a font family which will be available at run time, i.e. `Arial Unicode MS`. From 45e59e4da8ac6fb8d7197ea9ae8261d9370503bd Mon Sep 17 00:00:00 2001 From: Chris Loer Date: Fri, 8 Dec 2017 10:38:51 -0800 Subject: [PATCH 88/92] [ios,macos] Remove dead/non-functioning font-weight and glyph metric code. Add local font family to default iosapp configuration. --- platform/darwin/src/local_glyph_rasterizer.mm | 100 ++++-------------- platform/ios/app/Info.plist | 2 + 2 files changed, 23 insertions(+), 79 deletions(-) diff --git a/platform/darwin/src/local_glyph_rasterizer.mm b/platform/darwin/src/local_glyph_rasterizer.mm index 35c9c6733..14cee5063 100644 --- a/platform/darwin/src/local_glyph_rasterizer.mm +++ b/platform/darwin/src/local_glyph_rasterizer.mm @@ -22,9 +22,14 @@ namespace mbgl { - Configuration is done at map creation time by setting a "font family" * JS uses a CSS font-family, this uses kCTFontFamilyNameAttribute which has somewhat different behavior. - - We use heuristics to extract a font-weight based on the incoming font stack Further improvements are possible: + - GL JS heuristically determines a font weight based on the strings included in + the FontStack. Android follows a simpler heuristic that just picks up the + "Bold" property from the FontStack. Although both should be possible with CoreText, + our initial implementation couldn't reliably control the font-weight, so we're + skipping that functionality on darwin. + (See commit history for attempted implementation) - If we could reliably extract glyph metrics, we wouldn't be limited to CJK glyphs - We could push the font configuration down to individual style layers, which would allow any current style to be reproducible using local fonts. @@ -48,69 +53,39 @@ class LocalGlyphRasterizer::Impl { public: Impl(const optional fontFamily_) : fontFamily(fontFamily_) + , fontHandle(NULL) {} ~Impl() { - for (auto& pair : fontHandles) { - CFRelease(pair.second); + if (fontHandle) { + CFRelease(fontHandle); } } - CTFontRef getFont(const FontStack& fontStack) { + CTFontRef getFont() { if (!fontFamily) { return NULL; } - if (fontHandles.find(fontStack) == fontHandles.end()) { - - NSDictionary* fontTraits = @{ (NSString *)kCTFontWeightTrait: [NSNumber numberWithFloat:getFontWeight(fontStack)] }; - - NSDictionary *fontAttributes = @{ + if (!fontHandle) { + NSDictionary *fontAttributes = @{ (NSString *)kCTFontSizeAttribute: [NSNumber numberWithFloat:24.0], - (NSString *)kCTFontFamilyNameAttribute: [[NSString alloc] initWithCString:fontFamily->c_str() encoding:NSUTF8StringEncoding], - (NSString *)kCTFontTraitsAttribute: fontTraits - //(NSString *)kCTFontStyleNameAttribute: (getFontWeight(fontStack) > .3) ? @"Bold" : @"Regular" + (NSString *)kCTFontFamilyNameAttribute: [[NSString alloc] initWithCString:fontFamily->c_str() encoding:NSUTF8StringEncoding] }; CTFontDescriptorRefHandle descriptor(CTFontDescriptorCreateWithAttributes((CFDictionaryRef)fontAttributes)); - CTFontRef font = CTFontCreateWithFontDescriptor(*descriptor, 0.0, NULL); - if (!font) { + fontHandle = CTFontCreateWithFontDescriptor(*descriptor, 0.0, NULL); + if (!fontHandle) { throw std::runtime_error("CTFontCreateWithFontDescriptor failed"); } - - fontHandles[fontStack] = font; } - return fontHandles[fontStack]; + return fontHandle; } private: - float getFontWeight(const FontStack& fontStack) { - // Analog to logic in glyph_manager.js - // From NSFontDescriptor.h (macOS 10.11+) NSFontWeight*: - constexpr float light = -.4; - constexpr float regular = 0.0; - constexpr float medium = .23; - constexpr float bold = .4; - - float fontWeight = regular; - for (auto font : fontStack) { - // Last font in the fontstack "wins" - std::string lowercaseFont = mbgl::platform::lowercase(font); - if (lowercaseFont.find("bold") != std::string::npos) { - fontWeight = bold; - } else if (lowercaseFont.find("medium") != std::string::npos) { - fontWeight = medium; - } else if (lowercaseFont.find("light") != std::string::npos) { - fontWeight = light; - } - } - - return fontWeight; - } - - std::unordered_map fontHandles; optional fontFamily; + CTFontRef fontHandle; }; LocalGlyphRasterizer::LocalGlyphRasterizer(const optional fontFamily) @@ -120,45 +95,16 @@ LocalGlyphRasterizer::LocalGlyphRasterizer(const optional fontFamil LocalGlyphRasterizer::~LocalGlyphRasterizer() {} -bool LocalGlyphRasterizer::canRasterizeGlyph(const FontStack& fontStack, GlyphID glyphID) { - return util::i18n::allowsFixedWidthGlyphGeneration(glyphID) && impl->getFont(fontStack); +bool LocalGlyphRasterizer::canRasterizeGlyph(const FontStack&, GlyphID glyphID) { + return util::i18n::allowsFixedWidthGlyphGeneration(glyphID) && impl->getFont(); } -/* -// TODO: In theory we should be able to transform user-coordinate bounding box and advance -// values into pixel glyph metrics. This would remove the need to use fixed glyph metrics -// (which will be slightly off depending on the font), and allow us to return non CJK glyphs -// (which will have variable "advance" values). -void extractGlyphMetrics(CTFontRef font, CTLineRef line) { - CFArrayRef glyphRuns = CTLineGetGlyphRuns(line); - CFIndex runCount = CFArrayGetCount(glyphRuns); - assert(runCount == 1); - CTRunRef run = (CTRunRef)CFArrayGetValueAtIndex(glyphRuns, 0); - CFIndex glyphCount = CTRunGetGlyphCount(run); - assert(glyphCount == 1); - const CGGlyph *glyphs = CTRunGetGlyphsPtr(run); - - CGRect boundingRects[1]; - boundingRects[0] = CGRectMake(0, 0, 0, 0); - CGSize advances[1]; - advances[0] = CGSizeMake(0,0); - CGRect totalBoundingRect = CTFontGetBoundingRectsForGlyphs(font, kCTFontOrientationDefault, glyphs, boundingRects, 1); - double totalAdvance = CTFontGetAdvancesForGlyphs(font, kCTFontOrientationDefault, glyphs, advances, 1); - - // Break in the debugger to see these values: translating from "user coordinates" to bitmap pixel coordinates - // should be OK, but a lot of glyphs seem to have empty bounding boxes...? - (void)totalBoundingRect; - (void)totalAdvance; -} -*/ - PremultipliedImage drawGlyphBitmap(GlyphID glyphID, CTFontRef font, Size size) { PremultipliedImage rgbaBitmap(size); CFStringRefHandle string(CFStringCreateWithCharacters(NULL, reinterpret_cast(&glyphID), 1)); CGColorSpaceHandle colorSpace(CGColorSpaceCreateDeviceRGB()); - // TODO: Is there a way to just draw a single alpha channel instead of copying it out of an RGB image? Doesn't seem like the grayscale colorspace is what I'm looking for... if (!colorSpace) { throw std::runtime_error("CGColorSpaceCreateDeviceRGB failed"); } @@ -189,12 +135,8 @@ PremultipliedImage drawGlyphBitmap(GlyphID glyphID, CTFontRef font, Size size) { &kCFTypeDictionaryValueCallBacks)); CFAttributedStringRefHandle attrString(CFAttributedStringCreate(kCFAllocatorDefault, *string, *attributes)); - CTLineRefHandle line(CTLineCreateWithAttributedString(*attrString)); - // For debugging only, doesn't get useful metrics yet - //extractGlyphMetrics(font, *line); - // Start drawing a little bit below the top of the bitmap CGContextSetTextPosition(*context, 0.0, 5.0); CTLineDraw(*line, *context); @@ -202,9 +144,9 @@ PremultipliedImage drawGlyphBitmap(GlyphID glyphID, CTFontRef font, Size size) { return rgbaBitmap; } -Glyph LocalGlyphRasterizer::rasterizeGlyph(const FontStack& fontStack, GlyphID glyphID) { +Glyph LocalGlyphRasterizer::rasterizeGlyph(const FontStack&, GlyphID glyphID) { Glyph fixedMetrics; - CTFontRef font = impl->getFont(fontStack); + CTFontRef font = impl->getFont(); if (!font) { return fixedMetrics; } diff --git a/platform/ios/app/Info.plist b/platform/ios/app/Info.plist index a98a8c10c..9f772324c 100644 --- a/platform/ios/app/Info.plist +++ b/platform/ios/app/Info.plist @@ -24,6 +24,8 @@ 7877 LSRequiresIPhoneOS + MGLIdeographicFontFamilyName + PingFang NSHumanReadableCopyright © 2014–2017 Mapbox NSLocationAlwaysUsageDescription From b94929ca08f706a372d1336850d1346f09677ca4 Mon Sep 17 00:00:00 2001 From: Chris Loer Date: Fri, 8 Dec 2017 10:44:05 -0800 Subject: [PATCH 89/92] [ios,macos] Update docs to use Apple-friendly "PingFang" font example. --- platform/darwin/src/MGLRendererConfiguration.h | 2 +- platform/ios/app/Info.plist | 2 +- platform/ios/docs/guides/Info.plist Keys.md | 2 +- platform/macos/docs/guides/Info.plist Keys.md | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/platform/darwin/src/MGLRendererConfiguration.h b/platform/darwin/src/MGLRendererConfiguration.h index 676cc9171..dc434a4fb 100644 --- a/platform/darwin/src/MGLRendererConfiguration.h +++ b/platform/darwin/src/MGLRendererConfiguration.h @@ -32,7 +32,7 @@ NS_ASSUME_NONNULL_BEGIN Currently only used for CJK glyphs. Changing this at run time is not currently supported. Enable client-side rendering of CJK glyphs by setting `MGLIdeographFontFamilyName` in your containing app's Info.plist to a value - which will be available at run time, i.e. "Arial Unicode MS". */ + which will be available at run time, e.g. "PingFang". */ @property (nonatomic, readonly) mbgl::optional localFontFamilyName; @end diff --git a/platform/ios/app/Info.plist b/platform/ios/app/Info.plist index 9f772324c..e04976ba2 100644 --- a/platform/ios/app/Info.plist +++ b/platform/ios/app/Info.plist @@ -24,7 +24,7 @@ 7877 LSRequiresIPhoneOS - MGLIdeographicFontFamilyName + MGLIdeographFontFamilyName PingFang NSHumanReadableCopyright © 2014–2017 Mapbox diff --git a/platform/ios/docs/guides/Info.plist Keys.md b/platform/ios/docs/guides/Info.plist Keys.md index dc9e0a302..40d53fb9f 100644 --- a/platform/ios/docs/guides/Info.plist Keys.md +++ b/platform/ios/docs/guides/Info.plist Keys.md @@ -22,4 +22,4 @@ If you have implemented custom opt-out of Mapbox Telemetry within the user inter ## MGLIdeographFontFamilyName -The name of the font family to use for client-side text rendering of CJK ideographs. Set this to the name of a font family which will be available at run time, i.e. `Arial Unicode MS`. +The name of the font family to use for client-side text rendering of CJK ideographs. Set this to the name of a font family which will be available at run time, e.g. `PingFang`. diff --git a/platform/macos/docs/guides/Info.plist Keys.md b/platform/macos/docs/guides/Info.plist Keys.md index 3a3edd33f..736f1cf7e 100644 --- a/platform/macos/docs/guides/Info.plist Keys.md +++ b/platform/macos/docs/guides/Info.plist Keys.md @@ -18,4 +18,4 @@ The default value is `https://api.mapbox.com`. ## MGLIdeographFontFamilyName -The name of the font family to use for client-side text rendering of CJK ideographs. Set this to the name of a font family which will be available at run time, i.e. `Arial Unicode MS`. +The name of the font family to use for client-side text rendering of CJK ideographs. Set this to the name of a font family which will be available at run time, e.g. `PingFang`. From e8abb8c81abe85e85b07c11af7c57a77aa14111e Mon Sep 17 00:00:00 2001 From: Chris Loer Date: Fri, 8 Dec 2017 13:29:15 -0800 Subject: [PATCH 90/92] [ios,macos] Revert ideographic->ideograph name change. Original GL JS name was meant to represent "font family to use for locally generating ideographs", but "ideographic font family" communicates a similar intent more concisely. --- platform/darwin/src/MGLRendererConfiguration.h | 2 +- platform/darwin/src/MGLRendererConfiguration.mm | 2 +- platform/ios/app/Info.plist | 2 +- platform/ios/docs/guides/Info.plist Keys.md | 2 +- platform/macos/docs/guides/Info.plist Keys.md | 4 ++-- 5 files changed, 6 insertions(+), 6 deletions(-) diff --git a/platform/darwin/src/MGLRendererConfiguration.h b/platform/darwin/src/MGLRendererConfiguration.h index dc434a4fb..31aad0a74 100644 --- a/platform/darwin/src/MGLRendererConfiguration.h +++ b/platform/darwin/src/MGLRendererConfiguration.h @@ -31,7 +31,7 @@ NS_ASSUME_NONNULL_BEGIN Currently only used for CJK glyphs. Changing this at run time is not currently supported. Enable client-side rendering of CJK glyphs by setting - `MGLIdeographFontFamilyName` in your containing app's Info.plist to a value + `MGLIdeographicFontFamilyName` in your containing app's Info.plist to a value which will be available at run time, e.g. "PingFang". */ @property (nonatomic, readonly) mbgl::optional localFontFamilyName; diff --git a/platform/darwin/src/MGLRendererConfiguration.mm b/platform/darwin/src/MGLRendererConfiguration.mm index be60c3c78..ae7d7dd9f 100644 --- a/platform/darwin/src/MGLRendererConfiguration.mm +++ b/platform/darwin/src/MGLRendererConfiguration.mm @@ -35,7 +35,7 @@ } - (mbgl::optional)localFontFamilyName { - NSString *fontFamilyName = [[NSBundle mainBundle] objectForInfoDictionaryKey:@"MGLIdeographFontFamilyName"]; + NSString *fontFamilyName = [[NSBundle mainBundle] objectForInfoDictionaryKey:@"MGLIdeographicFontFamilyName"]; return fontFamilyName ? std::string([fontFamilyName UTF8String]) : mbgl::optional(); } diff --git a/platform/ios/app/Info.plist b/platform/ios/app/Info.plist index e04976ba2..9f772324c 100644 --- a/platform/ios/app/Info.plist +++ b/platform/ios/app/Info.plist @@ -24,7 +24,7 @@ 7877 LSRequiresIPhoneOS - MGLIdeographFontFamilyName + MGLIdeographicFontFamilyName PingFang NSHumanReadableCopyright © 2014–2017 Mapbox diff --git a/platform/ios/docs/guides/Info.plist Keys.md b/platform/ios/docs/guides/Info.plist Keys.md index 40d53fb9f..305714268 100644 --- a/platform/ios/docs/guides/Info.plist Keys.md +++ b/platform/ios/docs/guides/Info.plist Keys.md @@ -20,6 +20,6 @@ The default value is `https://api.mapbox.com`. If you have implemented custom opt-out of Mapbox Telemetry within the user interface of your app, use this key to disable the built-in check for opt-out support. See [this guide](https://www.mapbox.com/ios-sdk/#telemetry_opt_out) for more details. -## MGLIdeographFontFamilyName +## MGLIdeographicFontFamilyName The name of the font family to use for client-side text rendering of CJK ideographs. Set this to the name of a font family which will be available at run time, e.g. `PingFang`. diff --git a/platform/macos/docs/guides/Info.plist Keys.md b/platform/macos/docs/guides/Info.plist Keys.md index 736f1cf7e..c60635162 100644 --- a/platform/macos/docs/guides/Info.plist Keys.md +++ b/platform/macos/docs/guides/Info.plist Keys.md @@ -16,6 +16,6 @@ Use this key if you need to customize the API base URL used throughout the SDK. The default value is `https://api.mapbox.com`. -## MGLIdeographFontFamilyName - +## MGLIdeographicFontFamilyName + The name of the font family to use for client-side text rendering of CJK ideographs. Set this to the name of a font family which will be available at run time, e.g. `PingFang`. From cbb9002d4f358d66078df50224d56f392a4e99b7 Mon Sep 17 00:00:00 2001 From: Fabian Guerra Date: Tue, 2 Jan 2018 13:24:53 -0600 Subject: [PATCH 91/92] [ios, macos] Update mode.hpp file path --- platform/darwin/src/MGLRendererConfiguration.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/platform/darwin/src/MGLRendererConfiguration.h b/platform/darwin/src/MGLRendererConfiguration.h index 31aad0a74..fbc6fc564 100644 --- a/platform/darwin/src/MGLRendererConfiguration.h +++ b/platform/darwin/src/MGLRendererConfiguration.h @@ -1,6 +1,6 @@ #import #import -#import +#import NS_ASSUME_NONNULL_BEGIN From 760ef23ac3faf4437cadb52983383c9501336964 Mon Sep 17 00:00:00 2001 From: Andrew Kitchen Date: Fri, 15 Dec 2017 16:07:14 -0800 Subject: [PATCH 92/92] [ios, macos] Updates documentation with default CJK font recommendations Also updates the font to use for rendering CJK ideographs in our sample apps to `PingFang TC`, as simply specifying `PingFang` was always triggering iOS's font fallback behavior. [Fixes #10675] --- platform/ios/app/Info.plist | 2 +- platform/ios/docs/guides/Info.plist Keys.md | 2 +- platform/macos/app/Info.plist | 2 ++ platform/macos/docs/guides/Info.plist Keys.md | 2 +- 4 files changed, 5 insertions(+), 3 deletions(-) diff --git a/platform/ios/app/Info.plist b/platform/ios/app/Info.plist index 9f772324c..0bf66cb8d 100644 --- a/platform/ios/app/Info.plist +++ b/platform/ios/app/Info.plist @@ -25,7 +25,7 @@ LSRequiresIPhoneOS MGLIdeographicFontFamilyName - PingFang + PingFang TC NSHumanReadableCopyright © 2014–2017 Mapbox NSLocationAlwaysUsageDescription diff --git a/platform/ios/docs/guides/Info.plist Keys.md b/platform/ios/docs/guides/Info.plist Keys.md index 305714268..bc2f3f578 100644 --- a/platform/ios/docs/guides/Info.plist Keys.md +++ b/platform/ios/docs/guides/Info.plist Keys.md @@ -22,4 +22,4 @@ If you have implemented custom opt-out of Mapbox Telemetry within the user inter ## MGLIdeographicFontFamilyName -The name of the font family to use for client-side text rendering of CJK ideographs. Set this to the name of a font family which will be available at run time, e.g. `PingFang`. +The name of the font family to use for client-side text rendering of CJK ideographs. Set this to the name of a font family which will be available at run time, e.g. `PingFang TC` (iOS 9+), `Heiti TC` (iOS 8+), another appropriate built-in font, or a font provided by your application. Note that if a non-existent font is specified, iOS will fall back to using Helvetica which is likely not to include support for the glyphs needed to render maps in your application. diff --git a/platform/macos/app/Info.plist b/platform/macos/app/Info.plist index 21b86bfc7..8bb225358 100644 --- a/platform/macos/app/Info.plist +++ b/platform/macos/app/Info.plist @@ -2,6 +2,8 @@ + MGLIdeographicFontFamilyName + PingFang TC CFBundleDevelopmentRegion en CFBundleDocumentTypes diff --git a/platform/macos/docs/guides/Info.plist Keys.md b/platform/macos/docs/guides/Info.plist Keys.md index c60635162..be6096d16 100644 --- a/platform/macos/docs/guides/Info.plist Keys.md +++ b/platform/macos/docs/guides/Info.plist Keys.md @@ -18,4 +18,4 @@ The default value is `https://api.mapbox.com`. ## MGLIdeographicFontFamilyName -The name of the font family to use for client-side text rendering of CJK ideographs. Set this to the name of a font family which will be available at run time, e.g. `PingFang`. +The name of the font family to use for client-side text rendering of CJK ideographs. Set this to the name of a font family which will be available at run time, e.g. `PingFang TC` (iOS 9+), `Heiti TC` (iOS 8+), another appropriate built-in font, or a font provided by your application. Note that if a non-existent font is specified, iOS will fall back to using Helvetica which is likely not to include support for the glyphs needed to render maps in your application. \ No newline at end of file