diff --git a/Sample/Mockup1.png b/Mockup1.png
similarity index 100%
rename from Sample/Mockup1.png
rename to Mockup1.png
diff --git a/Sample/Mockup2.png b/Mockup2.png
similarity index 100%
rename from Sample/Mockup2.png
rename to Mockup2.png
diff --git a/README.md b/README.md
index 13ce6db..24a1dc0 100644
--- a/README.md
+++ b/README.md
@@ -117,7 +117,7 @@ To help getting you started, a sample project is also available in the "Sample"
It is designed to demo the main features of both the API and the SDK.
-
+
## 😱 Compatibility with Google pods
Since V1.3, PXGoogleDirections uses Google's latest branch of Google Maps iOS SDK, which has now been split into smaller, more modular frameworks. PXGoogleDirections has a dependency with three of them:
diff --git a/Sample-Carthage/Cartfile b/Sample-Carthage/Cartfile
new file mode 100644
index 0000000..412c4f0
--- /dev/null
+++ b/Sample-Carthage/Cartfile
@@ -0,0 +1 @@
+github "Poulpix/PXGoogleDirections"
diff --git a/Sample-Carthage/Cartfile.resolved b/Sample-Carthage/Cartfile.resolved
new file mode 100644
index 0000000..1b6d373
--- /dev/null
+++ b/Sample-Carthage/Cartfile.resolved
@@ -0,0 +1 @@
+github "Poulpix/PXGoogleDirections" "1.3.1"
diff --git a/Sample-Carthage/Carthage/Checkouts/PXGoogleDirections/.gitignore b/Sample-Carthage/Carthage/Checkouts/PXGoogleDirections/.gitignore
new file mode 100644
index 0000000..09db6f8
--- /dev/null
+++ b/Sample-Carthage/Carthage/Checkouts/PXGoogleDirections/.gitignore
@@ -0,0 +1,32 @@
+# Xcode
+#
+build/
+*.pbxuser
+!default.pbxuser
+*.mode1v3
+!default.mode1v3
+*.mode2v3
+!default.mode2v3
+*.perspectivev3
+!default.perspectivev3
+xcuserdata
+*.xccheckout
+*.moved-aside
+DerivedData
+*.hmap
+*.ipa
+*.xcuserstate
+
+# CocoaPods
+#
+# We recommend against adding the Pods directory to your .gitignore. However
+# you should judge for yourself, the pros and cons are mentioned at:
+# http://guides.cocoapods.org/using/using-cocoapods.html#should-i-ignore-the-pods-directory-in-source-control
+#
+Pods/
+*.lock
+
+# Sample
+#
+# Omit private information, like API keys in the sample project
+Sample/Private/*.*
diff --git a/Sample-Carthage/Carthage/Checkouts/PXGoogleDirections/Dependencies/GoogleMaps.framework/GoogleMaps b/Sample-Carthage/Carthage/Checkouts/PXGoogleDirections/Dependencies/GoogleMaps.framework/GoogleMaps
new file mode 120000
index 0000000..17ed6fb
--- /dev/null
+++ b/Sample-Carthage/Carthage/Checkouts/PXGoogleDirections/Dependencies/GoogleMaps.framework/GoogleMaps
@@ -0,0 +1 @@
+Versions/Current/GoogleMaps
\ No newline at end of file
diff --git a/Sample-Carthage/Carthage/Checkouts/PXGoogleDirections/Dependencies/GoogleMaps.framework/Headers b/Sample-Carthage/Carthage/Checkouts/PXGoogleDirections/Dependencies/GoogleMaps.framework/Headers
new file mode 120000
index 0000000..a177d2a
--- /dev/null
+++ b/Sample-Carthage/Carthage/Checkouts/PXGoogleDirections/Dependencies/GoogleMaps.framework/Headers
@@ -0,0 +1 @@
+Versions/Current/Headers
\ No newline at end of file
diff --git a/Sample-Carthage/Carthage/Checkouts/PXGoogleDirections/Dependencies/GoogleMaps.framework/Modules b/Sample-Carthage/Carthage/Checkouts/PXGoogleDirections/Dependencies/GoogleMaps.framework/Modules
new file mode 120000
index 0000000..5736f31
--- /dev/null
+++ b/Sample-Carthage/Carthage/Checkouts/PXGoogleDirections/Dependencies/GoogleMaps.framework/Modules
@@ -0,0 +1 @@
+Versions/Current/Modules
\ No newline at end of file
diff --git a/Sample-Carthage/Carthage/Checkouts/PXGoogleDirections/Dependencies/GoogleMaps.framework/Resources b/Sample-Carthage/Carthage/Checkouts/PXGoogleDirections/Dependencies/GoogleMaps.framework/Resources
new file mode 120000
index 0000000..953ee36
--- /dev/null
+++ b/Sample-Carthage/Carthage/Checkouts/PXGoogleDirections/Dependencies/GoogleMaps.framework/Resources
@@ -0,0 +1 @@
+Versions/Current/Resources
\ No newline at end of file
diff --git a/Sample-Carthage/Carthage/Checkouts/PXGoogleDirections/Dependencies/GoogleMaps.framework/Versions/A/GoogleMaps b/Sample-Carthage/Carthage/Checkouts/PXGoogleDirections/Dependencies/GoogleMaps.framework/Versions/A/GoogleMaps
new file mode 100755
index 0000000..bfacd44
Binary files /dev/null and b/Sample-Carthage/Carthage/Checkouts/PXGoogleDirections/Dependencies/GoogleMaps.framework/Versions/A/GoogleMaps differ
diff --git a/Sample-Carthage/Carthage/Checkouts/PXGoogleDirections/Dependencies/GoogleMaps.framework/Versions/A/Headers/GMSAddress.h b/Sample-Carthage/Carthage/Checkouts/PXGoogleDirections/Dependencies/GoogleMaps.framework/Versions/A/Headers/GMSAddress.h
new file mode 100755
index 0000000..5d178b0
--- /dev/null
+++ b/Sample-Carthage/Carthage/Checkouts/PXGoogleDirections/Dependencies/GoogleMaps.framework/Versions/A/Headers/GMSAddress.h
@@ -0,0 +1,78 @@
+//
+// GMSAddress.h
+// Google Maps SDK for iOS
+//
+// Copyright 2014 Google Inc.
+//
+// Usage of this SDK is subject to the Google Maps/Google Earth APIs Terms of
+// Service: https://developers.google.com/maps/terms
+//
+
+#import
+
+#if __has_feature(modules)
+@import GoogleMapsBase;
+#else
+#import
+#endif
+#import
+
+GMS_ASSUME_NONNULL_BEGIN
+
+/**
+ * A result from a reverse geocode request, containing a human-readable address. This class is
+ * immutable and should be obtained via GMSGeocoder.
+ *
+ * Some of the fields may be nil, indicating they are not present.
+ */
+@interface GMSAddress : NSObject
+
+/** Location, or kLocationCoordinate2DInvalid if unknown. */
+@property(nonatomic, readonly) CLLocationCoordinate2D coordinate;
+
+/** Street number and name. */
+@property(nonatomic, copy, readonly) NSString *GMS_NULLABLE_PTR thoroughfare;
+
+/** Locality or city. */
+@property(nonatomic, copy, readonly) NSString *GMS_NULLABLE_PTR locality;
+
+/** Subdivision of locality, district or park. */
+@property(nonatomic, copy, readonly) NSString *GMS_NULLABLE_PTR subLocality;
+
+/** Region/State/Administrative area. */
+@property(nonatomic, copy, readonly) NSString *GMS_NULLABLE_PTR administrativeArea;
+
+/** Postal/Zip code. */
+@property(nonatomic, copy, readonly) NSString *GMS_NULLABLE_PTR postalCode;
+
+/** The country name. */
+@property(nonatomic, copy, readonly) NSString *GMS_NULLABLE_PTR country;
+
+/** An array of NSString containing formatted lines of the address. May be nil. */
+@property(nonatomic, copy, readonly) GMS_NSArrayOf(NSString *) *GMS_NULLABLE_PTR lines;
+
+/**
+ * Returns the first line of the address.
+ *
+ * This method is obsolete and deprecated and will be removed in a future release.
+ * Use the lines property instead.
+ */
+- (NSString *GMS_NULLABLE_PTR)addressLine1 __GMS_AVAILABLE_BUT_DEPRECATED;
+
+/**
+ * Returns the second line of the address.
+ *
+ * This method is obsolete and deprecated and will be removed in a future release.
+ * Use the lines property instead.
+ */
+- (NSString *GMS_NULLABLE_PTR)addressLine2 __GMS_AVAILABLE_BUT_DEPRECATED;
+
+@end
+
+/**
+ * The former type of geocode results (pre-1.7). This remains here for migration and will be
+ * removed in future releases.
+ */
+@compatibility_alias GMSReverseGeocodeResult GMSAddress;
+
+GMS_ASSUME_NONNULL_END
diff --git a/Sample-Carthage/Carthage/Checkouts/PXGoogleDirections/Dependencies/GoogleMaps.framework/Versions/A/Headers/GMSCALayer.h b/Sample-Carthage/Carthage/Checkouts/PXGoogleDirections/Dependencies/GoogleMaps.framework/Versions/A/Headers/GMSCALayer.h
new file mode 100755
index 0000000..c10bc7b
--- /dev/null
+++ b/Sample-Carthage/Carthage/Checkouts/PXGoogleDirections/Dependencies/GoogleMaps.framework/Versions/A/Headers/GMSCALayer.h
@@ -0,0 +1,20 @@
+//
+// GMSCALayer.h
+// Google Maps SDK for iOS
+//
+// Copyright 2013 Google Inc.
+//
+// Usage of this SDK is subject to the Google Maps/Google Earth APIs Terms of
+// Service: https://developers.google.com/maps/terms
+//
+
+#import
+
+/**
+ * GMSCALayer is a superclass used by layers in the Google Maps SDK for iOS,
+ * such as GMSMapLayer and GMSPanoramaLayer.
+ *
+ * This is an implementation detail and it should not be instantiated directly.
+ */
+@interface GMSCALayer : CALayer
+@end
diff --git a/Sample-Carthage/Carthage/Checkouts/PXGoogleDirections/Dependencies/GoogleMaps.framework/Versions/A/Headers/GMSCameraPosition.h b/Sample-Carthage/Carthage/Checkouts/PXGoogleDirections/Dependencies/GoogleMaps.framework/Versions/A/Headers/GMSCameraPosition.h
new file mode 100755
index 0000000..be088ca
--- /dev/null
+++ b/Sample-Carthage/Carthage/Checkouts/PXGoogleDirections/Dependencies/GoogleMaps.framework/Versions/A/Headers/GMSCameraPosition.h
@@ -0,0 +1,131 @@
+//
+// GMSCameraPosition.h
+// Google Maps SDK for iOS
+//
+// Copyright 2013 Google Inc.
+//
+// Usage of this SDK is subject to the Google Maps/Google Earth APIs Terms of
+// Service: https://developers.google.com/maps/terms
+//
+
+#import
+
+#if __has_feature(modules)
+@import GoogleMapsBase;
+#else
+#import
+#endif
+
+GMS_ASSUME_NONNULL_BEGIN
+
+/**
+* An immutable class that aggregates all camera position parameters.
+ */
+@interface GMSCameraPosition : NSObject
+
+/**
+ * Location on the Earth towards which the camera points.
+ */
+@property(nonatomic, readonly) CLLocationCoordinate2D target;
+
+/**
+ * Zoom level. Zoom uses an exponentional scale, where zoom 0 represents the entire world as a
+ * 256 x 256 square. Each successive zoom level increases magnification by a factor of 2. So at
+ * zoom level 1, the world is 512x512, and at zoom level 2, the entire world is 1024x1024.
+ */
+@property(nonatomic, readonly) float zoom;
+
+/**
+ * Bearing of the camera, in degrees clockwise from true north.
+ */
+@property(nonatomic, readonly) CLLocationDirection bearing;
+
+/**
+ * The angle, in degrees, of the camera from the nadir (directly facing the Earth). 0 is
+ * straight down, 90 is parallel to the ground. Note that the maximum angle allowed is dependent
+ * on the zoom. You can think of it as a series of line segments as a function of zoom, rather
+ * than a step function. For zoom 16 and above, the maximum angle is 65 degrees. For zoom 10 and
+ * below, the maximum angle is 30 degrees.
+ */
+@property(nonatomic, readonly) double viewingAngle;
+
+/**
+ * Designated initializer. Configures this GMSCameraPosition with all available camera properties.
+ * Building a GMSCameraPosition via this initializer (or by the following convenience constructors)
+ * will implicitly clamp camera values.
+ *
+ * @param target Location on the earth towards which the camera points.
+ * @param zoom The zoom level near the center of the screen.
+ * @param bearing Bearing of the camera in degrees clockwise from true north.
+ * @param viewingAngle The angle, in degrees, of the camera angle from the nadir (directly facing
+ * the Earth)
+ */
+- (id)initWithTarget:(CLLocationCoordinate2D)target
+ zoom:(float)zoom
+ bearing:(CLLocationDirection)bearing
+ viewingAngle:(double)viewingAngle;
+
+/**
+ * Convenience constructor for GMSCameraPosition for a particular target and zoom level. This will
+ * set the bearing and viewingAngle properties of this camera to zero defaults (i.e., directly
+ * facing the Earth's surface, with the top of the screen pointing north).
+ */
++ (instancetype)cameraWithTarget:(CLLocationCoordinate2D)target zoom:(float)zoom;
+
+/**
+ * Convenience constructor for GMSCameraPosition, as per cameraWithTarget:zoom:.
+ */
++ (instancetype)cameraWithLatitude:(CLLocationDegrees)latitude
+ longitude:(CLLocationDegrees)longitude
+ zoom:(float)zoom;
+
+/**
+ * Convenience constructor for GMSCameraPosition, with all camera properties as per
+ * initWithTarget:zoom:bearing:viewingAngle:.
+ */
++ (instancetype)cameraWithTarget:(CLLocationCoordinate2D)target
+ zoom:(float)zoom
+ bearing:(CLLocationDirection)bearing
+ viewingAngle:(double)viewingAngle;
+
+/**
+ * Convenience constructor for GMSCameraPosition, with latitude/longitude and all other camera
+ * properties as per initWithTarget:zoom:bearing:viewingAngle:.
+ */
++ (instancetype)cameraWithLatitude:(CLLocationDegrees)latitude
+ longitude:(CLLocationDegrees)longitude
+ zoom:(float)zoom
+ bearing:(CLLocationDirection)bearing
+ viewingAngle:(double)viewingAngle;
+
+/**
+ * Get the zoom level at which |meters| distance, at given |coord| on Earth, correspond to the
+ * specified number of screen |points|.
+ *
+ * For extremely large or small distances the returned zoom level may be smaller or larger than the
+ * minimum or maximum zoom level allowed on the camera.
+ *
+ * This helper method is useful for building camera positions that contain specific physical areas
+ * on Earth.
+ */
++ (float)zoomAtCoordinate:(CLLocationCoordinate2D)coordinate
+ forMeters:(CLLocationDistance)meters
+ perPoints:(CGFloat)points;
+
+@end
+
+/** Mutable version of GMSCameraPosition. */
+@interface GMSMutableCameraPosition : GMSCameraPosition
+@property(nonatomic, assign) CLLocationCoordinate2D target;
+@property(nonatomic, assign) float zoom;
+@property(nonatomic, assign) CLLocationDirection bearing;
+@property(nonatomic, assign) double viewingAngle;
+@end
+
+/** The maximum zoom (closest to the Earth's surface) permitted by the map camera. */
+FOUNDATION_EXTERN const float kGMSMaxZoomLevel;
+
+/** The minimum zoom (farthest from the Earth's surface) permitted by the map camera. */
+FOUNDATION_EXTERN const float kGMSMinZoomLevel;
+
+GMS_ASSUME_NONNULL_END
diff --git a/Sample-Carthage/Carthage/Checkouts/PXGoogleDirections/Dependencies/GoogleMaps.framework/Versions/A/Headers/GMSCameraUpdate.h b/Sample-Carthage/Carthage/Checkouts/PXGoogleDirections/Dependencies/GoogleMaps.framework/Versions/A/Headers/GMSCameraUpdate.h
new file mode 100755
index 0000000..d1ec13a
--- /dev/null
+++ b/Sample-Carthage/Carthage/Checkouts/PXGoogleDirections/Dependencies/GoogleMaps.framework/Versions/A/Headers/GMSCameraUpdate.h
@@ -0,0 +1,115 @@
+//
+// GMSCameraUpdate.h
+// Google Maps SDK for iOS
+//
+// Copyright 2013 Google Inc.
+//
+// Usage of this SDK is subject to the Google Maps/Google Earth APIs Terms of
+// Service: https://developers.google.com/maps/terms
+//
+
+#import
+#import
+
+#if __has_feature(modules)
+@import GoogleMapsBase;
+#else
+#import
+#endif
+
+@class GMSCameraPosition;
+@class GMSCoordinateBounds;
+
+GMS_ASSUME_NONNULL_BEGIN
+
+/**
+ * GMSCameraUpdate represents an update that may be applied to a GMSMapView.
+ * It encapsulates some logic for modifying the current camera.
+ * It should only be constructed using the factory helper methods below.
+ */
+@interface GMSCameraUpdate : NSObject
+
+/**
+ * Returns a GMSCameraUpdate that zooms in on the map.
+ * The zoom increment is 1.0.
+ */
++ (GMSCameraUpdate *)zoomIn;
+
+/**
+ * Returns a GMSCameraUpdate that zooms out on the map.
+ * The zoom increment is -1.0.
+ */
++ (GMSCameraUpdate *)zoomOut;
+
+/**
+ * Returns a GMSCameraUpdate that changes the zoom by the specified amount.
+ */
++ (GMSCameraUpdate *)zoomBy:(float)delta;
+
+/**
+ * Returns a GMSCameraUpdate that sets the zoom to the specified amount.
+ */
++ (GMSCameraUpdate *)zoomTo:(float)zoom;
+
+/**
+ * Returns a GMSCameraUpdate that sets the camera target to the specified
+ * coordinate.
+ */
++ (GMSCameraUpdate *)setTarget:(CLLocationCoordinate2D)target;
+
+/**
+ * Returns a GMSCameraUpdate that sets the camera target and zoom to the
+ * specified values.
+ */
++ (GMSCameraUpdate *)setTarget:(CLLocationCoordinate2D)target zoom:(float)zoom;
+
+/**
+ * Returns a GMSCameraUpdate that sets the camera to the specified
+ * GMSCameraPosition.
+ */
++ (GMSCameraUpdate *)setCamera:(GMSCameraPosition *)camera;
+
+/**
+ * Returns a GMSCameraUpdate that transforms the camera such that the specified
+ * bounds are centered on screen at the greatest possible zoom level. The bounds
+ * will have a default padding of 64 points.
+ *
+ * The returned camera update will set the camera's bearing and tilt to their
+ * default zero values (i.e., facing north and looking directly at the Earth).
+ */
++ (GMSCameraUpdate *)fitBounds:(GMSCoordinateBounds *)bounds;
+
+/**
+ * This is similar to fitBounds: but allows specifying the padding (in points)
+ * in order to inset the bounding box from the view's edges.
+ * If the requested |padding| is larger than the view size in either the
+ * vertical or horizontal direction the map will be maximally zoomed out.
+ */
++ (GMSCameraUpdate *)fitBounds:(GMSCoordinateBounds *)bounds
+ withPadding:(CGFloat)padding;
+
+/**
+ * This is similar to fitBounds: but allows specifying edge insets
+ * in order to inset the bounding box from the view's edges.
+ * If the requested |edgeInsets| are larger than the view size in either the
+ * vertical or horizontal direction the map will be maximally zoomed out.
+ */
++ (GMSCameraUpdate *)fitBounds:(GMSCoordinateBounds *)bounds
+ withEdgeInsets:(UIEdgeInsets)edgeInsets;
+
+/**
+ * Returns a GMSCameraUpdate that shifts the center of the view by the
+ * specified number of points in the x and y directions.
+ * X grows to the right, Y grows down.
+ */
++ (GMSCameraUpdate *)scrollByX:(CGFloat)dX Y:(CGFloat)dY;
+
+/**
+ * Returns a GMSCameraUpdate that zooms with a focus point; the focus point
+ * stays fixed on screen.
+ */
++ (GMSCameraUpdate *)zoomBy:(float)zoom atPoint:(CGPoint)point;
+
+@end
+
+GMS_ASSUME_NONNULL_END
diff --git a/Sample-Carthage/Carthage/Checkouts/PXGoogleDirections/Dependencies/GoogleMaps.framework/Versions/A/Headers/GMSCircle.h b/Sample-Carthage/Carthage/Checkouts/PXGoogleDirections/Dependencies/GoogleMaps.framework/Versions/A/Headers/GMSCircle.h
new file mode 100755
index 0000000..37ae9cc
--- /dev/null
+++ b/Sample-Carthage/Carthage/Checkouts/PXGoogleDirections/Dependencies/GoogleMaps.framework/Versions/A/Headers/GMSCircle.h
@@ -0,0 +1,59 @@
+//
+// GMSCircle.h
+// Google Maps SDK for iOS
+//
+// Copyright 2013 Google Inc.
+//
+// Usage of this SDK is subject to the Google Maps/Google Earth APIs Terms of
+// Service: https://developers.google.com/maps/terms
+//
+
+#import
+
+#import
+
+#if __has_feature(modules)
+@import GoogleMapsBase;
+#else
+#import
+#endif
+
+GMS_ASSUME_NONNULL_BEGIN
+
+/**
+ * A circle on the Earth's surface (spherical cap).
+ */
+@interface GMSCircle : GMSOverlay
+
+/** Position on Earth of circle center. */
+@property(nonatomic, assign) CLLocationCoordinate2D position;
+
+/** Radius of the circle in meters; must be positive. */
+@property(nonatomic, assign) CLLocationDistance radius;
+
+/**
+ * The width of the circle's outline in screen points. Defaults to 1. As per
+ * GMSPolygon, the width does not scale when the map is zoomed.
+ * Setting strokeWidth to 0 results in no stroke.
+ */
+@property(nonatomic, assign) CGFloat strokeWidth;
+
+/** The color of this circle's outline. The default value is black. */
+@property(nonatomic, strong) UIColor *GMS_NULLABLE_PTR strokeColor;
+
+/**
+ * The interior of the circle is painted with fillColor.
+ * The default value is nil, resulting in no fill.
+ */
+@property(nonatomic, strong) UIColor *GMS_NULLABLE_PTR fillColor;
+
+/**
+ * Convenience constructor for GMSCircle for a particular position and radius.
+ * Other properties will have default values.
+ */
++ (instancetype)circleWithPosition:(CLLocationCoordinate2D)position
+ radius:(CLLocationDistance)radius;
+
+@end
+
+GMS_ASSUME_NONNULL_END
diff --git a/Sample-Carthage/Carthage/Checkouts/PXGoogleDirections/Dependencies/GoogleMaps.framework/Versions/A/Headers/GMSCoordinateBounds+GoogleMaps.h b/Sample-Carthage/Carthage/Checkouts/PXGoogleDirections/Dependencies/GoogleMaps.framework/Versions/A/Headers/GMSCoordinateBounds+GoogleMaps.h
new file mode 100755
index 0000000..01b29ef
--- /dev/null
+++ b/Sample-Carthage/Carthage/Checkouts/PXGoogleDirections/Dependencies/GoogleMaps.framework/Versions/A/Headers/GMSCoordinateBounds+GoogleMaps.h
@@ -0,0 +1,44 @@
+//
+// GMSCoordinateBounds+GoogleMaps.h
+// Google Maps SDK for iOS
+//
+// Copyright 2013 Google Inc.
+//
+// Usage of this SDK is subject to the Google Maps/Google Earth APIs Terms of
+// Service: https://developers.google.com/maps/terms
+//
+
+
+#if __has_feature(modules)
+@import GoogleMapsBase;
+#else
+#import
+#endif
+
+#import
+
+@class GMSPath;
+
+GMS_ASSUME_NONNULL_BEGIN
+
+@interface GMSCoordinateBounds (GoogleMaps)
+
+/**
+ * Inits with bounds that encompass |region|.
+ */
+- (id)initWithRegion:(GMSVisibleRegion)region;
+
+/**
+ * Inits with bounds that encompass |path|.
+ */
+- (id)initWithPath:(GMSPath *)path;
+
+/**
+ * Returns a GMSCoordinateBounds representing the current bounds extended to
+ * include |path|.
+ */
+- (GMSCoordinateBounds *)includingPath:(GMSPath *)path;
+
+@end
+
+GMS_ASSUME_NONNULL_END
diff --git a/Sample-Carthage/Carthage/Checkouts/PXGoogleDirections/Dependencies/GoogleMaps.framework/Versions/A/Headers/GMSDeprecationMacros.h b/Sample-Carthage/Carthage/Checkouts/PXGoogleDirections/Dependencies/GoogleMaps.framework/Versions/A/Headers/GMSDeprecationMacros.h
new file mode 100755
index 0000000..837dd16
--- /dev/null
+++ b/Sample-Carthage/Carthage/Checkouts/PXGoogleDirections/Dependencies/GoogleMaps.framework/Versions/A/Headers/GMSDeprecationMacros.h
@@ -0,0 +1,18 @@
+//
+// GMSDeprecationMacros.h
+// Google Maps SDK for iOS
+//
+// Copyright 2015 Google Inc.
+//
+// Usage of this SDK is subject to the Google Maps/Google Earth APIs Terms of
+// Service: https://developers.google.com/maps/terms
+//
+
+#ifndef IPHONE_MAPS_SDK_MAPS_GMSDEPRECATIONMACROS_H_
+#define IPHONE_MAPS_SDK_MAPS_GMSDEPRECATIONMACROS_H_
+
+#ifndef __GMS_AVAILABLE_BUT_DEPRECATED
+#define __GMS_AVAILABLE_BUT_DEPRECATED __deprecated
+#endif
+
+#endif
diff --git a/Sample-Carthage/Carthage/Checkouts/PXGoogleDirections/Dependencies/GoogleMaps.framework/Versions/A/Headers/GMSGeocoder.h b/Sample-Carthage/Carthage/Checkouts/PXGoogleDirections/Dependencies/GoogleMaps.framework/Versions/A/Headers/GMSGeocoder.h
new file mode 100755
index 0000000..089b6ee
--- /dev/null
+++ b/Sample-Carthage/Carthage/Checkouts/PXGoogleDirections/Dependencies/GoogleMaps.framework/Versions/A/Headers/GMSGeocoder.h
@@ -0,0 +1,66 @@
+//
+// GMSGeocoder.h
+// Google Maps SDK for iOS
+//
+// Copyright 2012 Google Inc.
+//
+// Usage of this SDK is subject to the Google Maps/Google Earth APIs Terms of
+// Service: https://developers.google.com/maps/terms
+//
+
+#import
+
+#if __has_feature(modules)
+@import GoogleMapsBase;
+#else
+#import
+#endif
+#import
+
+GMS_ASSUME_NONNULL_BEGIN
+
+@class GMSReverseGeocodeResponse;
+
+/** GMSGeocoder error codes, embedded in NSError. */
+typedef NS_ENUM(NSInteger, GMSGeocoderErrorCode) {
+ kGMSGeocoderErrorInvalidCoordinate = 1,
+ kGMSGeocoderErrorInternal,
+};
+
+/** Handler that reports a reverse geocoding response, or error. */
+typedef void (^GMSReverseGeocodeCallback)(GMSReverseGeocodeResponse *GMS_NULLABLE_PTR,
+ NSError *GMS_NULLABLE_PTR);
+
+/**
+ * Exposes a service for reverse geocoding. This maps Earth coordinates (latitude and longitude) to
+ * a collection of addresses near that coordinate.
+ */
+@interface GMSGeocoder : NSObject
+
+/* Convenience constructor for GMSGeocoder. */
++ (GMSGeocoder *)geocoder;
+
+/**
+ * Reverse geocodes a coordinate on the Earth's surface.
+ *
+ * @param coordinate The coordinate to reverse geocode.
+ * @param handler The callback to invoke with the reverse geocode results.
+ * The callback will be invoked asynchronously from the main thread.
+ */
+- (void)reverseGeocodeCoordinate:(CLLocationCoordinate2D)coordinate
+ completionHandler:(GMSReverseGeocodeCallback)handler;
+
+@end
+
+/** A collection of results from a reverse geocode request. */
+@interface GMSReverseGeocodeResponse : NSObject
+
+/** Returns the first result, or nil if no results were available. */
+- (GMSAddress *GMS_NULLABLE_PTR)firstResult;
+
+/** Returns an array of all the results (contains GMSAddress), including the first result. */
+- (GMS_NSArrayOf(GMSAddress *) * GMS_NULLABLE_PTR)results;
+
+@end
+
+GMS_ASSUME_NONNULL_END
diff --git a/Sample-Carthage/Carthage/Checkouts/PXGoogleDirections/Dependencies/GoogleMaps.framework/Versions/A/Headers/GMSGeometryUtils.h b/Sample-Carthage/Carthage/Checkouts/PXGoogleDirections/Dependencies/GoogleMaps.framework/Versions/A/Headers/GMSGeometryUtils.h
new file mode 100755
index 0000000..9ffcf94
--- /dev/null
+++ b/Sample-Carthage/Carthage/Checkouts/PXGoogleDirections/Dependencies/GoogleMaps.framework/Versions/A/Headers/GMSGeometryUtils.h
@@ -0,0 +1,236 @@
+//
+// GMSGeometryUtils.h
+// Google Maps SDK for iOS
+//
+// Copyright 2013 Google Inc.
+//
+// Usage of this SDK is subject to the Google Maps/Google Earth APIs Terms of
+// Service: https://developers.google.com/maps/terms
+//
+
+/**
+ * \defgroup GeometryUtils GMSGeometryUtils
+ * @{
+ */
+
+#import
+
+#if __has_feature(modules)
+@import GoogleMapsBase;
+#else
+#import
+#endif
+#import
+
+@class GMSPath;
+@class GMSStrokeStyle;
+@class GMSStyleSpan;
+
+GMS_ASSUME_NONNULL_BEGIN
+
+/** Average Earth radius in meters. */
+static const CLLocationDistance kGMSEarthRadius = 6371009.0;
+
+/**
+ * A point on the map. May represent a projected coordinate. x is in [-1, 1].
+ * The axis direction is normal: y grows towards North, x grows towards East.
+ * (0, 0) is the center of the map. See GMSProject() and GMSUnproject().
+ */
+typedef struct GMSMapPoint {
+ double x;
+ double y;
+} GMSMapPoint;
+
+/** Projects |coordinate| to the map. |coordinate| must be valid. */
+FOUNDATION_EXPORT
+GMSMapPoint GMSProject(CLLocationCoordinate2D coordinate);
+
+/** Unprojects |point| from the map. point.x must be in [-1, 1]. */
+FOUNDATION_EXPORT
+CLLocationCoordinate2D GMSUnproject(GMSMapPoint point);
+
+/**
+ * Returns a linearly interpolated point on the segment [a, b], at the fraction
+ * |t| from |a|. |t|==0 corresponds to |a|, |t|==1 corresponds to |b|.
+ * The interpolation takes place along the short path between the points
+ * potentially crossing the date line. E.g. interpolating from San Francisco
+ * to Tokyo will pass north of Hawaii and cross the date line.
+ */
+FOUNDATION_EXPORT
+GMSMapPoint GMSMapPointInterpolate(GMSMapPoint a, GMSMapPoint b, double t);
+
+/**
+ * Returns the length of the segment [a, b] in projected space. The length is
+ * computed along the short path between the points potentially crossing the
+ * date line. E.g. the distance between the points corresponding to
+ * San Francisco and Tokyo measures the segment that passes north of Hawaii
+ * crossing the date line.
+ */
+FOUNDATION_EXPORT
+double GMSMapPointDistance(GMSMapPoint a, GMSMapPoint b);
+
+/**
+ * Returns whether |point| lies inside of path. The path is always considered
+ * closed, regardless of whether the last point equals the first or not.
+ * Inside is defined as not containing the South Pole -- the South Pole is
+ * always outside.
+ * |path| describes great circle segments if |geodesic| is YES, and rhumb
+ * (loxodromic) segments otherwise.
+ * If |point| is exactly equal to one of the vertices, the result is YES.
+ * A point that is not equal to a vertex is on one side or the other of any path
+ * segment -- it can never be "exactly on the border".
+ * See GMSGeometryIsLocationOnPath() for a border test with tolerance.
+ */
+FOUNDATION_EXPORT
+BOOL GMSGeometryContainsLocation(CLLocationCoordinate2D point, GMSPath *path,
+ BOOL geodesic);
+
+/**
+ * Returns whether |point| lies on or near |path|, within the specified
+ * |tolerance| in meters.
+ * |path| is composed of great circle segments if |geodesic| is YES, and of
+ * rhumb (loxodromic) segments if |geodesic| is NO.
+ * See also GMSGeometryIsLocationOnPath(point, path, geodesic).
+ *
+ * The tolerance, in meters, is relative to the spherical radius of the Earth.
+ * If you need to work on a sphere of different radius,
+ * you may compute the equivalent tolerance from the desired tolerance on the
+ * sphere of radius R: tolerance = toleranceR * (RadiusEarth / R),
+ * with RadiusEarth==6371009.
+ */
+FOUNDATION_EXPORT
+BOOL GMSGeometryIsLocationOnPathTolerance(CLLocationCoordinate2D point,
+ GMSPath *path,
+ BOOL geodesic,
+ CLLocationDistance tolerance);
+
+/**
+ * Same as GMSGeometryIsLocationOnPath(point, path, geodesic, tolerance),
+ * with a default tolerance of 0.1 meters.
+ */
+FOUNDATION_EXPORT
+BOOL GMSGeometryIsLocationOnPath(CLLocationCoordinate2D point,
+ GMSPath *path,
+ BOOL geodesic);
+
+/**
+ * Returns the great circle distance between two coordinates, in meters,
+ * on Earth.
+ * This is the shortest distance between the two coordinates on the sphere.
+ * Both coordinates must be valid.
+ */
+FOUNDATION_EXPORT
+CLLocationDistance GMSGeometryDistance(CLLocationCoordinate2D from,
+ CLLocationCoordinate2D to);
+
+/**
+ * Returns the great circle length of |path|, in meters, on Earth.
+ * This is the sum of GMSGeometryDistance() over the path segments.
+ * All the coordinates of the path must be valid.
+ */
+FOUNDATION_EXPORT
+CLLocationDistance GMSGeometryLength(GMSPath *path);
+
+/**
+ * Returns the area of a geodesic polygon defined by |path| on Earth.
+ * The "inside" of the polygon is defined as not containing the South pole.
+ * If |path| is not closed, it is implicitly treated as a closed path
+ * nevertheless and the result is the same.
+ * All coordinates of the path must be valid.
+ * If any segment of the path is a pair of antipodal points, the
+ * result is undefined -- because two antipodal points do not form a
+ * unique great circle segment on the sphere.
+ * The polygon must be simple (not self-overlapping) and may be concave.
+ */
+FOUNDATION_EXPORT
+double GMSGeometryArea(GMSPath *path);
+
+/**
+ * Returns the signed area of a geodesic polygon defined by |path| on Earth.
+ * The result has the same absolute value as GMSGeometryArea(); it is positive
+ * if the points of path are in counter-clockwise order, and negative otherwise.
+ * The same restrictions as on GMSGeometryArea() apply.
+ */
+FOUNDATION_EXPORT
+double GMSGeometrySignedArea(GMSPath *path);
+
+/**
+ * Returns the initial heading (degrees clockwise of North) at |from|
+ * of the shortest path to |to|.
+ * Returns 0 if the two coordinates are the same.
+ * Both coordinates must be valid.
+ * The returned value is in the range [0, 360).
+ *
+ * To get the final heading at |to| one may use
+ * (GMSGeometryHeading(|to|, |from|) + 180) modulo 360.
+ */
+FOUNDATION_EXPORT
+CLLocationDirection GMSGeometryHeading(CLLocationCoordinate2D from,
+ CLLocationCoordinate2D to);
+
+/**
+ * Returns the destination coordinate, when starting at |from|
+ * with initial |heading|, travelling |distance| meters along a great circle
+ * arc, on Earth.
+ * The resulting longitude is in the range [-180, 180).
+ * Both coordinates must be valid.
+ */
+FOUNDATION_EXPORT
+CLLocationCoordinate2D GMSGeometryOffset(CLLocationCoordinate2D from,
+ CLLocationDistance distance,
+ CLLocationDirection heading);
+
+/**
+ * Returns the coordinate that lies the given |fraction| of the way between
+ * the |from| and |to| coordinates on the shortest path between the two.
+ * The resulting longitude is in the range [-180, 180).
+ */
+FOUNDATION_EXPORT
+CLLocationCoordinate2D GMSGeometryInterpolate(CLLocationCoordinate2D from,
+ CLLocationCoordinate2D to,
+ double fraction);
+
+
+/**
+ * Returns an NSArray of GMSStyleSpan constructed by repeated application of style and length
+ * information from |styles| and |lengths| along |path|.
+ *
+ * |path| the path along which the output spans are computed.
+ * |styles| an NSArray of GMSStrokeStyle. Wraps if consumed. Can't be empty.
+ * |lengths| an NSArray of NSNumber; each entry gives the length of the corresponding
+ * style from |styles|. Wraps if consumed. Can't be empty.
+ * |lengthKind| the interpretation of values from |lengths| (geodesic, rhumb or projected).
+ *
+ * Example: a polyline with alternating black and white spans:
+ *
+ *
+ */
+FOUNDATION_EXPORT
+GMS_NSArrayOf(GMSStyleSpan *) *GMSStyleSpans(GMSPath *path,
+ GMS_NSArrayOf(GMSStrokeStyle *) *styles,
+ GMS_NSArrayOf(NSNumber *) *lengths,
+ GMSLengthKind lengthKind);
+
+/**
+ * Similar to GMSStyleSpans(path, styles, lengths, lengthKind) but additionally takes an initial
+ * length offset that will be skipped over relative to the |lengths| array.
+ *
+ * |lengthOffset| the length (e.g. in meters) that should be skipped initially from |lengths|.
+ */
+FOUNDATION_EXPORT
+GMS_NSArrayOf(GMSStyleSpan *) *GMSStyleSpansOffset(GMSPath *path,
+ GMS_NSArrayOf(GMSStrokeStyle *) *styles,
+ GMS_NSArrayOf(NSNumber *) *lengths,
+ GMSLengthKind lengthKind,
+ double lengthOffset);
+
+/**@}*/
+
+GMS_ASSUME_NONNULL_END
diff --git a/Sample-Carthage/Carthage/Checkouts/PXGoogleDirections/Dependencies/GoogleMaps.framework/Versions/A/Headers/GMSGroundOverlay.h b/Sample-Carthage/Carthage/Checkouts/PXGoogleDirections/Dependencies/GoogleMaps.framework/Versions/A/Headers/GMSGroundOverlay.h
new file mode 100755
index 0000000..efbd6df
--- /dev/null
+++ b/Sample-Carthage/Carthage/Checkouts/PXGoogleDirections/Dependencies/GoogleMaps.framework/Versions/A/Headers/GMSGroundOverlay.h
@@ -0,0 +1,91 @@
+//
+// GMSGroundOverlay.h
+// Google Maps SDK for iOS
+//
+// Copyright 2013 Google Inc.
+//
+// Usage of this SDK is subject to the Google Maps/Google Earth APIs Terms of
+// Service: https://developers.google.com/maps/terms
+//
+
+#import
+
+#if __has_feature(modules)
+@import GoogleMapsBase;
+#else
+#import
+#endif
+
+@class GMSCoordinateBounds;
+
+GMS_ASSUME_NONNULL_BEGIN
+
+/**
+ * GMSGroundOverlay specifies the available options for a ground overlay that
+ * exists on the Earth's surface. Unlike a marker, the position of a ground
+ * overlay is specified explicitly and it does not face the camera.
+ */
+@interface GMSGroundOverlay : GMSOverlay
+
+/**
+ * The position of this GMSGroundOverlay, or more specifically, the physical
+ * position of its anchor. If this is changed, |bounds| will be moved around
+ * the new position.
+ */
+@property(nonatomic, assign) CLLocationCoordinate2D position;
+
+/**
+ * The anchor specifies where this GMSGroundOverlay is anchored to the Earth in
+ * relation to |bounds|. If this is modified, |position| will be set to the
+ * corresponding new position within |bounds|.
+ */
+@property(nonatomic, assign) CGPoint anchor;
+
+/**
+ * Icon to render within |bounds| on the Earth. If this is nil, the overlay will
+ * not be visible (unlike GMSMarker which has a default image).
+ */
+@property(nonatomic, strong) UIImage *GMS_NULLABLE_PTR icon;
+
+/**
+ * Sets the opacity of the ground overlay, between 0 (completely transparent)
+ * and 1 (default) inclusive.
+ */
+@property(nonatomic, assign) float opacity;
+
+/**
+ * Bearing of this ground overlay, in degrees. The default value, zero, points
+ * this ground overlay up/down along the normal Y axis of the earth.
+ */
+@property(nonatomic, assign) CLLocationDirection bearing;
+
+/**
+ * The 2D bounds on the Earth in which |icon| is drawn. Changing this value
+ * will adjust |position| accordingly.
+ */
+@property(nonatomic, strong) GMSCoordinateBounds *GMS_NULLABLE_PTR bounds;
+
+/**
+ * Convenience constructor for GMSGroundOverlay for a particular |bounds| and
+ * |icon|. Will set |position| accordingly.
+ */
++ (instancetype)groundOverlayWithBounds:(GMSCoordinateBounds *GMS_NULLABLE_PTR)bounds
+ icon:(UIImage *GMS_NULLABLE_PTR)icon;
+
+/**
+ * Constructs a GMSGroundOverlay that renders the given |icon| at |position|,
+ * as if the image's actual size matches camera pixels at |zoomLevel|.
+ */
++ (instancetype)groundOverlayWithPosition:(CLLocationCoordinate2D)position
+ icon:(UIImage *GMS_NULLABLE_PTR)icon
+ zoomLevel:(CGFloat)zoomLevel;
+
+@end
+
+/**
+ * The default position of the ground anchor of a GMSGroundOverlay: the center
+ * point of the icon.
+ */
+FOUNDATION_EXTERN const CGPoint kGMSGroundOverlayDefaultAnchor;
+
+GMS_ASSUME_NONNULL_END
diff --git a/Sample-Carthage/Carthage/Checkouts/PXGoogleDirections/Dependencies/GoogleMaps.framework/Versions/A/Headers/GMSIndoorBuilding.h b/Sample-Carthage/Carthage/Checkouts/PXGoogleDirections/Dependencies/GoogleMaps.framework/Versions/A/Headers/GMSIndoorBuilding.h
new file mode 100755
index 0000000..fe1b55a
--- /dev/null
+++ b/Sample-Carthage/Carthage/Checkouts/PXGoogleDirections/Dependencies/GoogleMaps.framework/Versions/A/Headers/GMSIndoorBuilding.h
@@ -0,0 +1,47 @@
+//
+// GMSIndoorBuilding.h
+// Google Maps SDK for iOS
+//
+// Copyright 2013 Google Inc.
+//
+// Usage of this SDK is subject to the Google Maps/Google Earth APIs Terms of
+// Service: https://developers.google.com/maps/terms
+//
+
+
+#import
+
+#if __has_feature(modules)
+@import GoogleMapsBase;
+#else
+#import
+#endif
+
+GMS_ASSUME_NONNULL_BEGIN
+
+@class GMSIndoorLevel;
+
+/**
+ * Describes a building which contains levels.
+ */
+@interface GMSIndoorBuilding : NSObject
+
+/**
+ * Array of GMSIndoorLevel describing the levels which make up the building.
+ * The levels are in 'display order' from top to bottom.
+ */
+@property(nonatomic, strong, readonly) GMS_NSArrayOf(GMSIndoorLevel *) * levels;
+
+/**
+ * Index in the levels array of the default level.
+ */
+@property(nonatomic, assign, readonly) NSUInteger defaultLevelIndex;
+
+/**
+ * If YES, the building is entirely underground and supports being hidden.
+ */
+@property(nonatomic, assign, readonly, getter=isUnderground) BOOL underground;
+
+@end
+
+GMS_ASSUME_NONNULL_END
diff --git a/Sample-Carthage/Carthage/Checkouts/PXGoogleDirections/Dependencies/GoogleMaps.framework/Versions/A/Headers/GMSIndoorDisplay.h b/Sample-Carthage/Carthage/Checkouts/PXGoogleDirections/Dependencies/GoogleMaps.framework/Versions/A/Headers/GMSIndoorDisplay.h
new file mode 100755
index 0000000..870e94a
--- /dev/null
+++ b/Sample-Carthage/Carthage/Checkouts/PXGoogleDirections/Dependencies/GoogleMaps.framework/Versions/A/Headers/GMSIndoorDisplay.h
@@ -0,0 +1,71 @@
+//
+// GMSIndoorDisplay.h
+// Google Maps SDK for iOS
+//
+// Copyright 2013 Google Inc.
+//
+// Usage of this SDK is subject to the Google Maps/Google Earth APIs Terms of
+// Service: https://developers.google.com/maps/terms
+//
+
+#import
+
+#if __has_feature(modules)
+@import GoogleMapsBase;
+#else
+#import
+#endif
+
+@class GMSIndoorBuilding;
+@class GMSIndoorLevel;
+
+GMS_ASSUME_NONNULL_BEGIN
+
+/** Delegate for events on GMSIndoorDisplay. */
+@protocol GMSIndoorDisplayDelegate
+@optional
+
+/**
+ * Raised when the activeBuilding has changed. The activeLevel will also have
+ * already been updated for the new building, but didChangeActiveLevel: will
+ * be raised after this method.
+ */
+- (void)didChangeActiveBuilding:(GMSIndoorBuilding *GMS_NULLABLE_PTR)building;
+
+/**
+ * Raised when the activeLevel has changed. This event is raised for all
+ * changes, including explicit setting of the property.
+ */
+- (void)didChangeActiveLevel:(GMSIndoorLevel *GMS_NULLABLE_PTR)level;
+
+@end
+
+/**
+ * Provides ability to observe or control the display of indoor level data.
+ *
+ * Like GMSMapView, GMSIndoorDisplay may only be used from the main thread.
+ */
+@interface GMSIndoorDisplay : NSObject
+
+/** GMSIndoorDisplay delegate */
+@property(nonatomic, weak) id GMS_NULLABLE_PTR delegate;
+
+/**
+ * Provides the currently focused building, will be nil if there is no
+ * building with indoor data currently under focus.
+ */
+@property(nonatomic, strong, readonly) GMSIndoorBuilding *GMS_NULLABLE_PTR activeBuilding;
+
+/**
+ * Provides and controls the active level for activeBuilding. Will be updated
+ * whenever activeBuilding changes, and may be set to any member of
+ * activeBuilding's levels property. May also be set to nil if the building is
+ * underground, to stop showing the building (the building will remain active).
+ * Will always be nil if activeBuilding is nil.
+ * Any attempt to set it to an invalid value will be ignored.
+ */
+@property(nonatomic, strong) GMSIndoorLevel *GMS_NULLABLE_PTR activeLevel;
+
+@end
+
+GMS_ASSUME_NONNULL_END
diff --git a/Sample-Carthage/Carthage/Checkouts/PXGoogleDirections/Dependencies/GoogleMaps.framework/Versions/A/Headers/GMSIndoorLevel.h b/Sample-Carthage/Carthage/Checkouts/PXGoogleDirections/Dependencies/GoogleMaps.framework/Versions/A/Headers/GMSIndoorLevel.h
new file mode 100755
index 0000000..1ecd377
--- /dev/null
+++ b/Sample-Carthage/Carthage/Checkouts/PXGoogleDirections/Dependencies/GoogleMaps.framework/Versions/A/Headers/GMSIndoorLevel.h
@@ -0,0 +1,37 @@
+//
+// GMSIndoorLevel.h
+// Google Maps SDK for iOS
+//
+// Copyright 2013 Google Inc.
+//
+// Usage of this SDK is subject to the Google Maps/Google Earth APIs Terms of
+// Service: https://developers.google.com/maps/terms
+//
+
+
+#import
+
+#if __has_feature(modules)
+@import GoogleMapsBase;
+#else
+#import
+#endif
+
+GMS_ASSUME_NONNULL_BEGIN
+
+/**
+ * Describes a single level in a building.
+ * Multiple buildings can share a level - in this case the level instances will
+ * compare as equal, even though the level numbers/names may be different.
+ */
+@interface GMSIndoorLevel : NSObject
+
+/** Localized display name for the level, e.g. "Ground floor". */
+@property(nonatomic, copy, readonly) NSString *GMS_NULLABLE_PTR name;
+
+/** Localized short display name for the level, e.g. "1". */
+@property(nonatomic, copy, readonly) NSString *GMS_NULLABLE_PTR shortName;
+
+@end
+
+GMS_ASSUME_NONNULL_END
diff --git a/Sample-Carthage/Carthage/Checkouts/PXGoogleDirections/Dependencies/GoogleMaps.framework/Versions/A/Headers/GMSMapLayer.h b/Sample-Carthage/Carthage/Checkouts/PXGoogleDirections/Dependencies/GoogleMaps.framework/Versions/A/Headers/GMSMapLayer.h
new file mode 100755
index 0000000..3bc878f
--- /dev/null
+++ b/Sample-Carthage/Carthage/Checkouts/PXGoogleDirections/Dependencies/GoogleMaps.framework/Versions/A/Headers/GMSMapLayer.h
@@ -0,0 +1,106 @@
+//
+// GMSMapLayer.h
+// Google Maps SDK for iOS
+//
+// Copyright 2013 Google Inc.
+//
+// Usage of this SDK is subject to the Google Maps/Google Earth APIs Terms of
+// Service: https://developers.google.com/maps/terms
+//
+
+#import
+#import
+
+#import
+
+#if __has_feature(modules)
+@import GoogleMapsBase;
+#else
+#import
+#endif
+
+GMS_ASSUME_NONNULL_BEGIN
+
+/**
+ * The following layer properties and constants describe the camera properties
+ * that may be animated on the custom model layer of a GMSMapView with Core
+ * Animation. For simple camera control and animation, please see the helper
+ * methods in GMSMapView+Animation.h, and the camera object definition within
+ * GMSCameraPosition.h.
+ *
+ * Changing layer properties triggers an implicit animation, e.g.:-
+ * mapView_.layer.cameraBearing = 20;
+ *
+ * An explicit animation, replacing the implicit animation, may be added after
+ * changing the property, e.g.-
+ * CAMediaTimingFunction *curve = [CAMediaTimingFunction functionWithName:
+ * kCAMediaTimingFunctionEaseInEaseOut];
+ * CABasicAnimation *animation =
+ * [CABasicAnimation animationWithKeyPath:kGMSLayerCameraBearingKey];
+ * animation.duration = 2.0f;
+ * animation.timingFunction = curve;
+ * animation.toValue = @20;
+ * [mapView_.layer addAnimation:animation forKey:kGMSLayerCameraBearingKey];
+ *
+ * To control several implicit animations, Core Animation's transaction support
+ * may be used, e.g.-
+ * [CATransaction begin];
+ * [CATransaction setAnimationDuration:2.0f];
+ * mapView_.layer.cameraBearing = 20;
+ * mapView_.layer.cameraViewingAngle = 30;
+ * [CATransaction commit];
+ *
+ * Note that these properties are not view-based. Please see "Animating View
+ * and Layer Changes Together" in the View Programming Guide for iOS-
+ * http://developer.apple.com/library/ios/#documentation/windowsviews/conceptual/viewpg_iphoneos/AnimatingViews/AnimatingViews.html
+ */
+
+/**
+ * kGMSLayerCameraLatitudeKey ranges from [-85, 85], and values outside this
+ * range will be clamped.
+ */
+extern NSString *const kGMSLayerCameraLatitudeKey;
+
+/**
+ * kGMSLayerCameraLongitudeKey ranges from [-180, 180), and values outside this
+ * range will be wrapped to within this range.
+ */
+extern NSString *const kGMSLayerCameraLongitudeKey;
+
+/**
+ * kGMSLayerCameraBearingKey ranges from [0, 360), and values are wrapped.
+ */
+extern NSString *const kGMSLayerCameraBearingKey;
+
+/**
+ * kGMSLayerCameraZoomLevelKey ranges from [kGMSMinZoomLevel, kGMSMaxZoomLevel],
+ * and values are clamped.
+ */
+extern NSString *const kGMSLayerCameraZoomLevelKey;
+
+/**
+ * kGMSLayerCameraViewingAngleKey ranges from zero (i.e., facing straight down)
+ * and to between 30 and 45 degrees towards the horizon, depending on the model
+ * zoom level.
+ */
+extern NSString *const kGMSLayerCameraViewingAngleKey;
+
+/**
+ * GMSMapLayer is a custom subclass of CALayer, provided as the layer class on
+ * GMSMapView. This layer should not be instantiated directly. It provides
+ * model access to the camera normally defined on GMSMapView.
+ *
+ * Modifying or animating these properties will typically interrupt any current
+ * gesture on GMSMapView, e.g., a user's pan or rotation. Similarly, if a user
+ * performs an enabled gesture during an animation, the animation will stop
+ * 'in-place' (at the current presentation value).
+ */
+@interface GMSMapLayer : GMSCALayer
+@property(nonatomic, assign) CLLocationDegrees cameraLatitude;
+@property(nonatomic, assign) CLLocationDegrees cameraLongitude;
+@property(nonatomic, assign) CLLocationDirection cameraBearing;
+@property(nonatomic, assign) float cameraZoomLevel;
+@property(nonatomic, assign) double cameraViewingAngle;
+@end
+
+GMS_ASSUME_NONNULL_END
diff --git a/Sample-Carthage/Carthage/Checkouts/PXGoogleDirections/Dependencies/GoogleMaps.framework/Versions/A/Headers/GMSMapStyle.h b/Sample-Carthage/Carthage/Checkouts/PXGoogleDirections/Dependencies/GoogleMaps.framework/Versions/A/Headers/GMSMapStyle.h
new file mode 100755
index 0000000..8f75ae1
--- /dev/null
+++ b/Sample-Carthage/Carthage/Checkouts/PXGoogleDirections/Dependencies/GoogleMaps.framework/Versions/A/Headers/GMSMapStyle.h
@@ -0,0 +1,54 @@
+//
+// GMSMapStyle.h
+// Google Maps SDK for iOS
+//
+// Copyright 2016 Google Inc.
+//
+// Usage of this SDK is subject to the Google Maps/Google Earth APIs Terms of
+// Service: https://developers.google.com/maps/terms
+//
+
+#import
+
+#if __has_feature(modules)
+@import GoogleMapsBase;
+#else
+#import
+#endif
+
+GMS_ASSUME_NONNULL_BEGIN
+
+/**
+ * GMSMapStyle holds details about a style which can be applied to a map.
+ *
+ * With style options you can customize the presentation of the standard Google map styles, changing
+ * the visual display of features like roads, parks, and other points of interest. As well as
+ * changing the style of these features, you can also hide features entirely. This means that you
+ * can emphasize particular components of the map or make the map complement the content of your
+ * app.
+ *
+ * For more information see: https://developers.google.com/maps/documentation/ios-sdk/styling
+ */
+@interface GMSMapStyle : NSObject
+
+/**
+ * Creates a style using a string containing JSON.
+ *
+ * Returns nil and populates |error| (if provided) if |style| is invalid.
+ */
++ (GMS_NULLABLE_INSTANCETYPE)styleWithJSONString:(NSString *)style
+ error:(NSError *__autoreleasing GMS_NULLABLE_PTR *)error;
+
+/**
+ * Creates a style using a file containing JSON.
+ *
+ * Returns nil and populates |error| (if provided) if |style| is invalid, the file cannot be read,
+ * or the URL is not a file URL.
+ */
++ (GMS_NULLABLE_INSTANCETYPE)
+ styleWithContentsOfFileURL:(NSURL *)fileURL
+ error:(NSError *__autoreleasing GMS_NULLABLE_PTR *)error;
+
+@end
+
+GMS_ASSUME_NONNULL_END
diff --git a/Sample-Carthage/Carthage/Checkouts/PXGoogleDirections/Dependencies/GoogleMaps.framework/Versions/A/Headers/GMSMapView+Animation.h b/Sample-Carthage/Carthage/Checkouts/PXGoogleDirections/Dependencies/GoogleMaps.framework/Versions/A/Headers/GMSMapView+Animation.h
new file mode 100755
index 0000000..d8b518d
--- /dev/null
+++ b/Sample-Carthage/Carthage/Checkouts/PXGoogleDirections/Dependencies/GoogleMaps.framework/Versions/A/Headers/GMSMapView+Animation.h
@@ -0,0 +1,67 @@
+//
+// GMSMapView+Animation.h
+// Google Maps SDK for iOS
+//
+// Copyright 2013 Google Inc.
+//
+// Usage of this SDK is subject to the Google Maps/Google Earth APIs Terms of
+// Service: https://developers.google.com/maps/terms
+//
+
+#import
+
+#if __has_feature(modules)
+@import GoogleMapsBase;
+#else
+#import
+#endif
+
+GMS_ASSUME_NONNULL_BEGIN
+
+/**
+ * GMSMapView (Animation) offers several animation helper methods.
+ *
+ * During any animation, retrieving the camera position through the camera
+ * property on GMSMapView returns an intermediate immutable GMSCameraPosition.
+ * This camera position will typically represent the most recently drawn frame.
+ */
+@interface GMSMapView (Animation)
+
+/** Animates the camera of this map to |cameraPosition|. */
+- (void)animateToCameraPosition:(GMSCameraPosition *)cameraPosition;
+
+/**
+ * As animateToCameraPosition:, but changes only the location of the camera
+ * (i.e., from the current location to |location|).
+ */
+- (void)animateToLocation:(CLLocationCoordinate2D)location;
+
+/**
+ * As animateToCameraPosition:, but changes only the zoom level of the camera.
+ * This value is clamped by [kGMSMinZoomLevel, kGMSMaxZoomLevel].
+ */
+- (void)animateToZoom:(float)zoom;
+
+/**
+ * As animateToCameraPosition:, but changes only the bearing of the camera (in
+ * degrees). Zero indicates true north.
+ */
+- (void)animateToBearing:(CLLocationDirection)bearing;
+
+/**
+ * As animateToCameraPosition:, but changes only the viewing angle of the camera
+ * (in degrees). This value will be clamped to a minimum of zero (i.e., facing
+ * straight down) and between 30 and 45 degrees towards the horizon, depending
+ * on the relative closeness to the earth.
+ */
+- (void)animateToViewingAngle:(double)viewingAngle;
+
+/**
+ * Applies |cameraUpdate| to the current camera, and then uses the result as
+ * per animateToCameraPosition:.
+ */
+- (void)animateWithCameraUpdate:(GMSCameraUpdate *)cameraUpdate;
+
+@end
+
+GMS_ASSUME_NONNULL_END
diff --git a/Sample-Carthage/Carthage/Checkouts/PXGoogleDirections/Dependencies/GoogleMaps.framework/Versions/A/Headers/GMSMapView.h b/Sample-Carthage/Carthage/Checkouts/PXGoogleDirections/Dependencies/GoogleMaps.framework/Versions/A/Headers/GMSMapView.h
new file mode 100755
index 0000000..e75fba6
--- /dev/null
+++ b/Sample-Carthage/Carthage/Checkouts/PXGoogleDirections/Dependencies/GoogleMaps.framework/Versions/A/Headers/GMSMapView.h
@@ -0,0 +1,459 @@
+//
+// GMSMapView.h
+// Google Maps SDK for iOS
+//
+// Copyright 2012 Google Inc.
+//
+// Usage of this SDK is subject to the Google Maps/Google Earth APIs Terms of
+// Service: https://developers.google.com/maps/terms
+//
+
+#import
+#import
+
+#if __has_feature(modules)
+@import GoogleMapsBase;
+#else
+#import
+#endif
+#import
+#import
+#import
+
+@class GMSCameraPosition;
+@class GMSCameraUpdate;
+@class GMSCoordinateBounds;
+@class GMSIndoorDisplay;
+@class GMSMapLayer;
+@class GMSMapStyle;
+@class GMSMapView;
+@class GMSMarker;
+@class GMSOverlay;
+@class GMSProjection;
+
+GMS_ASSUME_NONNULL_BEGIN
+
+/** Delegate for events on GMSMapView. */
+@protocol GMSMapViewDelegate
+
+@optional
+
+/**
+ * Called before the camera on the map changes, either due to a gesture,
+ * animation (e.g., by a user tapping on the "My Location" button) or by being
+ * updated explicitly via the camera or a zero-length animation on layer.
+ *
+ * @param gesture If YES, this is occuring due to a user gesture.
+*/
+- (void)mapView:(GMSMapView *)mapView willMove:(BOOL)gesture;
+
+/**
+ * Called repeatedly during any animations or gestures on the map (or once, if
+ * the camera is explicitly set). This may not be called for all intermediate
+ * camera positions. It is always called for the final position of an animation
+ * or gesture.
+ */
+- (void)mapView:(GMSMapView *)mapView didChangeCameraPosition:(GMSCameraPosition *)position;
+
+/**
+ * Called when the map becomes idle, after any outstanding gestures or
+ * animations have completed (or after the camera has been explicitly set).
+ */
+- (void)mapView:(GMSMapView *)mapView idleAtCameraPosition:(GMSCameraPosition *)position;
+
+/**
+ * Called after a tap gesture at a particular coordinate, but only if a marker
+ * was not tapped. This is called before deselecting any currently selected
+ * marker (the implicit action for tapping on the map).
+ */
+- (void)mapView:(GMSMapView *)mapView didTapAtCoordinate:(CLLocationCoordinate2D)coordinate;
+
+/**
+ * Called after a long-press gesture at a particular coordinate.
+ *
+ * @param mapView The map view that was tapped.
+ * @param coordinate The location that was tapped.
+ */
+- (void)mapView:(GMSMapView *)mapView didLongPressAtCoordinate:(CLLocationCoordinate2D)coordinate;
+
+/**
+ * Called after a marker has been tapped.
+ *
+ * @param mapView The map view that was tapped.
+ * @param marker The marker that was tapped.
+ * @return YES if this delegate handled the tap event, which prevents the map
+ * from performing its default selection behavior, and NO if the map
+ * should continue with its default selection behavior.
+ */
+- (BOOL)mapView:(GMSMapView *)mapView didTapMarker:(GMSMarker *)marker;
+
+/**
+ * Called after a marker's info window has been tapped.
+ */
+- (void)mapView:(GMSMapView *)mapView didTapInfoWindowOfMarker:(GMSMarker *)marker;
+
+/**
+ * Called after a marker's info window has been long pressed.
+ */
+- (void)mapView:(GMSMapView *)mapView didLongPressInfoWindowOfMarker:(GMSMarker *)marker;
+
+/**
+ * Called after an overlay has been tapped.
+ * This method is not called for taps on markers.
+ *
+ * @param mapView The map view that was tapped.
+ * @param overlay The overlay that was tapped.
+ */
+- (void)mapView:(GMSMapView *)mapView didTapOverlay:(GMSOverlay *)overlay;
+
+/**
+ * Called after a POI has been tapped.
+ *
+ * @param mapView The map view that was tapped.
+ * @param placeID The placeID of the POI that was tapped.
+ * @param name The name of the POI that was tapped.
+ * @param location The location of the POI that was tapped.
+ */
+- (void)mapView:(GMSMapView *)mapView
+ didTapPOIWithPlaceID:(NSString *)placeID
+ name:(NSString *)name
+ location:(CLLocationCoordinate2D)location;
+
+/**
+ * Called when a marker is about to become selected, and provides an optional
+ * custom info window to use for that marker if this method returns a UIView.
+ * If you change this view after this method is called, those changes will not
+ * necessarily be reflected in the rendered version.
+ *
+ * The returned UIView must not have bounds greater than 500 points on either
+ * dimension. As there is only one info window shown at any time, the returned
+ * view may be reused between other info windows.
+ *
+ * Removing the marker from the map or changing the map's selected marker during
+ * this call results in undefined behavior.
+ *
+ * @return The custom info window for the specified marker, or nil for default
+ */
+- (UIView *GMS_NULLABLE_PTR)mapView:(GMSMapView *)mapView markerInfoWindow:(GMSMarker *)marker;
+
+/**
+ * Called when mapView:markerInfoWindow: returns nil. If this method returns a
+ * view, it will be placed within the default info window frame. If this method
+ * returns nil, then the default rendering will be used instead.
+ *
+ * @param mapView The map view that was pressed.
+ * @param marker The marker that was pressed.
+ * @return The custom view to display as contents in the info window, or nil to
+ * use the default content rendering instead
+ */
+
+- (UIView *GMS_NULLABLE_PTR)mapView:(GMSMapView *)mapView markerInfoContents:(GMSMarker *)marker;
+
+/**
+ * Called when the marker's info window is closed.
+ */
+- (void)mapView:(GMSMapView *)mapView didCloseInfoWindowOfMarker:(GMSMarker *)marker;
+
+/**
+ * Called when dragging has been initiated on a marker.
+ */
+- (void)mapView:(GMSMapView *)mapView didBeginDraggingMarker:(GMSMarker *)marker;
+
+/**
+ * Called after dragging of a marker ended.
+ */
+- (void)mapView:(GMSMapView *)mapView didEndDraggingMarker:(GMSMarker *)marker;
+
+/**
+ * Called while a marker is dragged.
+ */
+- (void)mapView:(GMSMapView *)mapView didDragMarker:(GMSMarker *)marker;
+
+/**
+ * Called when the My Location button is tapped.
+ *
+ * @return YES if the listener has consumed the event (i.e., the default behavior should not occur),
+ * NO otherwise (i.e., the default behavior should occur). The default behavior is for the
+ * camera to move such that it is centered on the user location.
+ */
+- (BOOL)didTapMyLocationButtonForMapView:(GMSMapView *)mapView;
+
+/**
+ * Called when tiles have just been requested or labels have just started rendering.
+ */
+- (void)mapViewDidStartTileRendering:(GMSMapView *)mapView;
+
+/**
+ * Called when all tiles have been loaded (or failed permanently) and labels have been rendered.
+ */
+- (void)mapViewDidFinishTileRendering:(GMSMapView *)mapView;
+
+/**
+ * Called when map is stable (tiles loaded, labels rendered, camera idle) and overlay objects have
+ * been rendered.
+ */
+- (void)mapViewSnapshotReady:(GMSMapView *)mapView;
+
+@end
+
+/**
+ * Display types for GMSMapView.
+ */
+typedef enum {
+ /** Basic maps. The default. */
+ kGMSTypeNormal = 1,
+
+ /** Satellite maps with no labels. */
+ kGMSTypeSatellite,
+
+ /** Terrain maps. */
+ kGMSTypeTerrain,
+
+ /** Satellite maps with a transparent label overview. */
+ kGMSTypeHybrid,
+
+ /** No maps, no labels. Display of traffic data is not supported. */
+ kGMSTypeNone,
+
+} GMSMapViewType;
+
+/**
+ * Rendering frame rates for GMSMapView.
+ */
+typedef enum {
+ /** Use the minimum frame rate to conserve battery usage. */
+ kGMSFrameRatePowerSave,
+
+ /**
+ * Use a median frame rate to provide smoother rendering and conserve processing cycles.
+ */
+ kGMSFrameRateConservative,
+
+ /**
+ * Use the maximum frame rate for a device. For low end devices this will be 30 FPS,
+ * for high end devices 60 FPS.
+ */
+ kGMSFrameRateMaximum,
+
+} GMSFrameRate;
+
+/**
+ * This is the main class of the Google Maps SDK for iOS and is the entry point
+ * for all methods related to the map.
+ *
+ * The map should be instantiated via the convenience constructor
+ * [GMSMapView mapWithFrame:camera:]. It may also be created with the default
+ * [[GMSMapView alloc] initWithFrame:] method (wherein its camera will be set to
+ * a default location).
+ *
+ * GMSMapView can only be read and modified from the main thread, similar to all
+ * UIKit objects. Calling these methods from another thread will result in an
+ * exception or undefined behavior.
+ */
+@interface GMSMapView : UIView
+
+/** GMSMapView delegate. */
+@property(nonatomic, weak) IBOutlet id GMS_NULLABLE_PTR delegate;
+
+/**
+ * Controls the camera, which defines how the map is oriented. Modification of
+ * this property is instantaneous.
+ */
+@property(nonatomic, copy) GMSCameraPosition *camera;
+
+/**
+ * Returns a GMSProjection object that you can use to convert between screen
+ * coordinates and latitude/longitude coordinates.
+ *
+ * This is a snapshot of the current projection, and will not automatically
+ * update when the camera moves. It represents either the projection of the last
+ * drawn GMSMapView frame, or; where the camera has been explicitly set or the
+ * map just created, the upcoming frame. It will never be nil.
+ */
+@property(nonatomic, readonly) GMSProjection *projection;
+
+/**
+ * Controls whether the My Location dot and accuracy circle is enabled.
+ * Defaults to NO.
+ */
+@property(nonatomic, assign, getter=isMyLocationEnabled) BOOL myLocationEnabled;
+
+/**
+ * If My Location is enabled, reveals where the user location dot is being
+ * drawn. If it is disabled, or it is enabled but no location data is available,
+ * this will be nil. This property is observable using KVO.
+ */
+@property(nonatomic, strong, readonly) CLLocation *GMS_NULLABLE_PTR myLocation;
+
+/**
+ * The marker that is selected. Setting this property selects a particular
+ * marker, showing an info window on it. If this property is non-nil, setting
+ * it to nil deselects the marker, hiding the info window. This property is
+ * observable using KVO.
+ */
+@property(nonatomic, strong) GMSMarker *GMS_NULLABLE_PTR selectedMarker;
+
+/**
+ * Controls whether the map is drawing traffic data, if available. This is
+ * subject to the availability of traffic data. Defaults to NO.
+ */
+@property(nonatomic, assign, getter=isTrafficEnabled) BOOL trafficEnabled;
+
+/**
+ * Controls the type of map tiles that should be displayed. Defaults to
+ * kGMSTypeNormal.
+ */
+@property(nonatomic, assign) GMSMapViewType mapType;
+
+/**
+ * Controls the style of the map.
+ *
+ * A non-nil mapStyle will only apply if mapType is Normal.
+ */
+@property(nonatomic, strong, nullable) GMSMapStyle *mapStyle;
+
+/**
+ * Minimum zoom (the farthest the camera may be zoomed out). Defaults to
+ * kGMSMinZoomLevel. Modified with -setMinZoom:maxZoom:.
+ */
+@property(nonatomic, assign, readonly) float minZoom;
+
+/**
+ * Maximum zoom (the closest the camera may be to the Earth). Defaults to
+ * kGMSMaxZoomLevel. Modified with -setMinZoom:maxZoom:.
+ */
+@property(nonatomic, assign, readonly) float maxZoom;
+
+/**
+ * If set, 3D buildings will be shown where available. Defaults to YES.
+ *
+ * This may be useful when adding a custom tile layer to the map, in order to
+ * make it clearer at high zoom levels. Changing this value will cause all
+ * tiles to be briefly invalidated.
+ */
+@property(nonatomic, assign, getter=isBuildingsEnabled) BOOL buildingsEnabled;
+
+/**
+ * Sets whether indoor maps are shown, where available. Defaults to YES.
+ *
+ * If this is set to NO, caches for indoor data may be purged and any floor
+ * currently selected by the end-user may be reset.
+ */
+@property(nonatomic, assign, getter=isIndoorEnabled) BOOL indoorEnabled;
+
+/**
+ * Gets the GMSIndoorDisplay instance which allows to observe or control
+ * aspects of indoor data display.
+ */
+@property(nonatomic, strong, readonly) GMSIndoorDisplay *indoorDisplay;
+
+/**
+ * Gets the GMSUISettings object, which controls user interface settings for the
+ * map.
+ */
+@property(nonatomic, strong, readonly) GMSUISettings *settings;
+
+/**
+ * Controls the 'visible' region of the view. By applying padding an area
+ * around the edge of the view can be created which will contain map data
+ * but will not contain UI controls.
+ *
+ * If the padding is not balanced, the visual center of the view will move as
+ * appropriate. Padding will also affect the |projection| property so the
+ * visible region will not include the padding area. GMSCameraUpdate
+ * fitToBounds will ensure that both this padding and any padding requested
+ * will be taken into account.
+ *
+ * This property may be animated within a UIView-based animation block.
+ */
+@property(nonatomic, assign) UIEdgeInsets padding;
+
+/**
+ * Defaults to YES. If set to NO, GMSMapView will generate accessibility
+ * elements for overlay objects, such as GMSMarker and GMSPolyline.
+ *
+ * This property is as per the informal UIAcessibility protocol, except for the
+ * default value of YES.
+ */
+@property(nonatomic) BOOL accessibilityElementsHidden;
+
+/**
+ * Accessor for the custom CALayer type used for the layer.
+ */
+@property(nonatomic, readonly, retain) GMSMapLayer *layer;
+
+/**
+ * Controls the rendering frame rate.
+ * Default value is kGMSFrameRateMaximum.
+ */
+@property(nonatomic, assign) GMSFrameRate preferredFrameRate;
+
+/**
+ * Builds and returns a GMSMapView, with a frame and camera target.
+ */
++ (instancetype)mapWithFrame:(CGRect)frame camera:(GMSCameraPosition *)camera;
+
+/**
+ * Tells this map to power up its renderer. This is optional and idempotent.
+ *
+ * This method is obsolete and deprecated and will be removed in a future release.
+ */
+- (void)startRendering __GMS_AVAILABLE_BUT_DEPRECATED;
+
+/**
+ * Tells this map to power down its renderer. This is optional and idempotent.
+ *
+ * This method is obsolete and deprecated and will be removed in a future release.
+ */
+- (void)stopRendering __GMS_AVAILABLE_BUT_DEPRECATED;
+
+/**
+ * Clears all markup that has been added to the map, including markers,
+ * polylines and ground overlays. This will not clear the visible location dot
+ * or reset the current mapType.
+ */
+- (void)clear;
+
+/**
+ * Sets |minZoom| and |maxZoom|. This method expects the minimum to be less than
+ * or equal to the maximum, and will throw an exception with name
+ * NSRangeException otherwise.
+ */
+- (void)setMinZoom:(float)minZoom maxZoom:(float)maxZoom;
+
+/**
+ * Build a GMSCameraPosition that presents |bounds| with |padding|. The camera
+ * will have a zero bearing and tilt (i.e., facing north and looking directly at
+ * the Earth). This takes the frame and padding of this GMSMapView into account.
+ *
+ * If the bounds is invalid this method will return a nil camera.
+ */
+- (GMSCameraPosition *GMS_NULLABLE_PTR)cameraForBounds:(GMSCoordinateBounds *)bounds
+ insets:(UIEdgeInsets)insets;
+
+/**
+ * Changes the camera according to |update|.
+ * The camera change is instantaneous (with no animation).
+ */
+- (void)moveCamera:(GMSCameraUpdate *)update;
+
+/**
+ * Check whether the given camera positions would practically cause the camera to be rendered the
+ * same, taking into account the level of precision and transformations used internally.
+ */
+- (BOOL)areEqualForRenderingPosition:(GMSCameraPosition *)position
+ position:(GMSCameraPosition *)otherPosition;
+
+@end
+
+/**
+ * Accessibility identifier for the compass button.
+ */
+extern NSString *const kGMSAccessibilityCompass;
+
+/**
+ * Accessibility identifier for the "my location" button.
+ */
+extern NSString *const kGMSAccessibilityMyLocation;
+
+GMS_ASSUME_NONNULL_END
diff --git a/Sample-Carthage/Carthage/Checkouts/PXGoogleDirections/Dependencies/GoogleMaps.framework/Versions/A/Headers/GMSMarker.h b/Sample-Carthage/Carthage/Checkouts/PXGoogleDirections/Dependencies/GoogleMaps.framework/Versions/A/Headers/GMSMarker.h
new file mode 100755
index 0000000..ebf67ab
--- /dev/null
+++ b/Sample-Carthage/Carthage/Checkouts/PXGoogleDirections/Dependencies/GoogleMaps.framework/Versions/A/Headers/GMSMarker.h
@@ -0,0 +1,192 @@
+//
+// GMSMarker.h
+// Google Maps SDK for iOS
+//
+// Copyright 2012 Google Inc.
+//
+// Usage of this SDK is subject to the Google Maps/Google Earth APIs Terms of
+// Service: https://developers.google.com/maps/terms
+//
+
+#import
+
+#if __has_feature(modules)
+@import GoogleMapsBase;
+#else
+#import
+#endif
+
+@class GMSMarkerLayer;
+@class GMSPanoramaView;
+@class UIImage;
+
+GMS_ASSUME_NONNULL_BEGIN
+
+/**
+ * Animation types for GMSMarker.
+ */
+typedef enum {
+ /** No animation (default). */
+ kGMSMarkerAnimationNone = 0,
+
+ /** The marker will pop from its groundAnchor when added. */
+ kGMSMarkerAnimationPop,
+} GMSMarkerAnimation;
+
+/**
+ * A marker is an icon placed at a particular point on the map's surface. A
+ * marker's icon is drawn oriented against the device's screen rather than the
+ * map's surface; i.e., it will not necessarily change orientation due to map
+ * rotations, tilting, or zooming.
+ */
+@interface GMSMarker : GMSOverlay
+
+/** Marker position. Animated. */
+@property(nonatomic, assign) CLLocationCoordinate2D position;
+
+/** Snippet text, shown beneath the title in the info window when selected. */
+@property(nonatomic, copy) NSString *GMS_NULLABLE_PTR snippet;
+
+/**
+ * Marker icon to render. If left nil, uses a default SDK place marker.
+ *
+ * Supports animated images, but each frame must be the same size or the
+ * behavior is undefined.
+ *
+ * Supports the use of alignmentRectInsets to specify a reduced tap area. This
+ * also redefines how anchors are specified. For an animated image the
+ * value for the animation is used, not the individual frames.
+ */
+@property(nonatomic, strong) UIImage *GMS_NULLABLE_PTR icon;
+
+/**
+ * Marker view to render. If left nil, falls back to the |icon| property instead.
+ *
+ * Supports animation of all animatable properties of UIView, except |frame| and |center|. Changing
+ * these properties or their corresponding CALayer version, including |position|, is not supported.
+ *
+ * Note that the view behaves as if |clipsToBounds| is set to YES, regardless of its actual
+ * value.
+ */
+@property(nonatomic, strong) UIView *GMS_NULLABLE_PTR iconView;
+
+/**
+ * Controls whether the icon for this marker should be redrawn every frame.
+ *
+ * Note that when this changes from NO to YES, the icon is guaranteed to be redrawn next frame.
+ *
+ * Defaults to YES.
+ * Has no effect if |iconView| is nil.
+ */
+@property(nonatomic, assign) BOOL tracksViewChanges;
+
+/**
+ * Controls whether the info window for this marker should be redrawn every frame.
+ *
+ * Note that when this changes from NO to YES, the info window is guaranteed to be redrawn next
+ * frame.
+ *
+ * Defaults to NO.
+ */
+@property(nonatomic, assign) BOOL tracksInfoWindowChanges;
+
+/**
+ * The ground anchor specifies the point in the icon image that is anchored to
+ * the marker's position on the Earth's surface. This point is specified within
+ * the continuous space [0.0, 1.0] x [0.0, 1.0], where (0,0) is the top-left
+ * corner of the image, and (1,1) is the bottom-right corner.
+ *
+ * If the image has non-zero alignmentRectInsets, the top-left and bottom-right
+ * mentioned above refer to the inset section of the image.
+ */
+@property(nonatomic, assign) CGPoint groundAnchor;
+
+/**
+ * The info window anchor specifies the point in the icon image at which to
+ * anchor the info window, which will be displayed directly above this point.
+ * This point is specified within the same space as groundAnchor.
+ */
+@property(nonatomic, assign) CGPoint infoWindowAnchor;
+
+/**
+ * Controls the animation used when this marker is placed on a GMSMapView
+ * (default kGMSMarkerAnimationNone, no animation).
+ */
+@property(nonatomic, assign) GMSMarkerAnimation appearAnimation;
+
+/**
+ * Controls whether this marker can be dragged interactively (default NO).
+ */
+@property(nonatomic, assign, getter=isDraggable) BOOL draggable;
+
+/**
+ * Controls whether this marker should be flat against the Earth's surface (YES)
+ * or a billboard facing the camera (NO, default).
+ */
+@property(nonatomic, assign, getter=isFlat) BOOL flat;
+
+/**
+ * Sets the rotation of the marker in degrees clockwise about the marker's
+ * anchor point. The axis of rotation is perpendicular to the marker. A rotation
+ * of 0 corresponds to the default position of the marker. Animated.
+ *
+ * When the marker is flat on the map, the default position is north aligned and
+ * the rotation is such that the marker always remains flat on the map. When the
+ * marker is a billboard, the default position is pointing up and the rotation
+ * is such that the marker is always facing the camera.
+ */
+@property(nonatomic, assign) CLLocationDegrees rotation;
+
+/**
+ * Sets the opacity of the marker, between 0 (completely transparent) and 1
+ * (default) inclusive.
+ */
+@property(nonatomic, assign) float opacity;
+
+/**
+ * Marker data. You can use this property to associate an arbitrary object with
+ * this marker. Google Maps SDK for iOS neither reads nor writes this property.
+ *
+ * Note that userData should not hold any strong references to any Maps
+ * objects, otherwise a loop may be created (preventing ARC from releasing
+ * objects).
+ */
+@property(nonatomic, strong) id GMS_NULLABLE_PTR userData;
+
+/**
+ * Provides the Core Animation layer for this GMSMarker.
+ */
+@property(nonatomic, strong, readonly) GMSMarkerLayer *layer;
+
+/**
+ * The |panoramaView| specifies which panorama view will attempt to show this
+ * marker. Note that if the marker's |position| is too far away from the
+ * |panoramaView|'s current panorama location, it will not be displayed as it
+ * will be too small.
+ * Can be set to nil to remove the marker from any current panorama view it
+ * is attached to.
+ * A marker can be shown on both a panorama and a map at the same time.
+ */
+@property(nonatomic, weak) GMSPanoramaView *GMS_NULLABLE_PTR panoramaView;
+
+/** Convenience constructor for a default marker. */
++ (instancetype)markerWithPosition:(CLLocationCoordinate2D)position;
+
+/** Creates a tinted version of the default marker image for use as an icon. */
++ (UIImage *)markerImageWithColor:(UIColor *GMS_NULLABLE_PTR)color;
+
+@end
+
+/**
+ * The default position of the ground anchor of a GMSMarker: the center bottom
+ * point of the marker icon.
+ */
+FOUNDATION_EXTERN const CGPoint kGMSMarkerDefaultGroundAnchor;
+
+/**
+ * The default position of the info window anchor of a GMSMarker: the center top
+ * point of the marker icon.
+ */
+FOUNDATION_EXTERN const CGPoint kGMSMarkerDefaultInfoWindowAnchor;
+
+GMS_ASSUME_NONNULL_END
diff --git a/Sample-Carthage/Carthage/Checkouts/PXGoogleDirections/Dependencies/GoogleMaps.framework/Versions/A/Headers/GMSMarkerLayer.h b/Sample-Carthage/Carthage/Checkouts/PXGoogleDirections/Dependencies/GoogleMaps.framework/Versions/A/Headers/GMSMarkerLayer.h
new file mode 100755
index 0000000..9f41e2b
--- /dev/null
+++ b/Sample-Carthage/Carthage/Checkouts/PXGoogleDirections/Dependencies/GoogleMaps.framework/Versions/A/Headers/GMSMarkerLayer.h
@@ -0,0 +1,52 @@
+//
+// GMSMarkerLayer.h
+// Google Maps SDK for iOS
+//
+// Copyright 2013 Google Inc.
+//
+// Usage of this SDK is subject to the Google Maps/Google Earth APIs Terms of
+// Service: https://developers.google.com/maps/terms
+//
+
+#import
+#import
+
+#if __has_feature(modules)
+@import GoogleMapsBase;
+#else
+#import
+#endif
+
+GMS_ASSUME_NONNULL_BEGIN
+
+/**
+ * GMSMarkerLayer is a custom subclass of CALayer, available on a per-marker
+ * basis, that allows animation of several properties of its associated
+ * GMSMarker.
+ *
+ * Note that this CALayer is never actually rendered directly, as GMSMapView is
+ * provided entirely via an OpenGL layer. As such, adjustments or animations to
+ * 'default' properties of CALayer will not have any effect.
+ */
+@interface GMSMarkerLayer : CALayer
+
+/** Latitude, part of |position| on GMSMarker. */
+@property(nonatomic, assign) CLLocationDegrees latitude;
+
+/** Longitude, part of |position| on GMSMarker. */
+@property(nonatomic, assign) CLLocationDegrees longitude;
+
+/** Rotation, as per GMSMarker. */
+@property(nonatomic, assign) CLLocationDegrees rotation;
+
+/** Opacity, as per GMSMarker. */
+@property float opacity;
+
+@end
+
+extern NSString *const kGMSMarkerLayerLatitude;
+extern NSString *const kGMSMarkerLayerLongitude;
+extern NSString *const kGMSMarkerLayerRotation;
+extern NSString *const kGMSMarkerLayerOpacity;
+
+GMS_ASSUME_NONNULL_END
diff --git a/Sample-Carthage/Carthage/Checkouts/PXGoogleDirections/Dependencies/GoogleMaps.framework/Versions/A/Headers/GMSMutablePath.h b/Sample-Carthage/Carthage/Checkouts/PXGoogleDirections/Dependencies/GoogleMaps.framework/Versions/A/Headers/GMSMutablePath.h
new file mode 100755
index 0000000..4f0100c
--- /dev/null
+++ b/Sample-Carthage/Carthage/Checkouts/PXGoogleDirections/Dependencies/GoogleMaps.framework/Versions/A/Headers/GMSMutablePath.h
@@ -0,0 +1,61 @@
+//
+// GMSMutablePath.h
+// Google Maps SDK for iOS
+//
+// Copyright 2013 Google Inc.
+//
+// Usage of this SDK is subject to the Google Maps/Google Earth APIs Terms of
+// Service: https://developers.google.com/maps/terms
+//
+
+#import
+
+#import
+#import
+
+/**
+ * GMSMutablePath is a dynamic (resizable) array of CLLocationCoordinate2D. All coordinates must be
+ * valid. GMSMutablePath is the mutable counterpart to the immutable GMSPath.
+ */
+@interface GMSMutablePath : GMSPath
+
+/** Adds |coord| at the end of the path. */
+- (void)addCoordinate:(CLLocationCoordinate2D)coord;
+
+/** Adds a new CLLocationCoordinate2D instance with the given lat/lng. */
+- (void)addLatitude:(CLLocationDegrees)latitude longitude:(CLLocationDegrees)longitude;
+
+/**
+ * Inserts |coord| at |index|.
+ *
+ * If this is smaller than the size of the path, shifts all coordinates forward by one. Otherwise,
+ * behaves as replaceCoordinateAtIndex:withCoordinate:.
+ */
+- (void)insertCoordinate:(CLLocationCoordinate2D)coord atIndex:(NSUInteger)index;
+
+/**
+ * Replace the coordinate at |index| with |coord|. If |index| is after the end, grows the array with
+ * an undefined coordinate.
+ */
+- (void)replaceCoordinateAtIndex:(NSUInteger)index
+ withCoordinate:(CLLocationCoordinate2D)coord;
+
+/**
+ * Remove entry at |index|.
+ *
+ * If |index| < count decrements size. If |index| >= count this is a silent
+ * no-op.
+ */
+- (void)removeCoordinateAtIndex:(NSUInteger)index;
+
+/**
+ * Removes the last coordinate of the path.
+ *
+ * If the array is non-empty decrements size. If the array is empty, this is a silent no-op.
+ */
+- (void)removeLastCoordinate;
+
+/** Removes all coordinates in this path. */
+- (void)removeAllCoordinates;
+
+@end
diff --git a/Sample-Carthage/Carthage/Checkouts/PXGoogleDirections/Dependencies/GoogleMaps.framework/Versions/A/Headers/GMSOrientation.h b/Sample-Carthage/Carthage/Checkouts/PXGoogleDirections/Dependencies/GoogleMaps.framework/Versions/A/Headers/GMSOrientation.h
new file mode 100755
index 0000000..c30342d
--- /dev/null
+++ b/Sample-Carthage/Carthage/Checkouts/PXGoogleDirections/Dependencies/GoogleMaps.framework/Versions/A/Headers/GMSOrientation.h
@@ -0,0 +1,40 @@
+//
+// GMSOrientation.h
+// Google Maps SDK for iOS
+//
+// Copyright 2013 Google Inc.
+//
+// Usage of this SDK is subject to the Google Maps/Google Earth APIs Terms of
+// Service: https://developers.google.com/maps/terms
+//
+
+#import
+
+/**
+ * GMSOrientation is a tuple of heading and pitch used to control the viewing direction of a
+ * GMSPanoramaCamera.
+ */
+typedef struct {
+ /** The camera heading (horizontal angle) in degrees. */
+ const CLLocationDirection heading;
+
+ /**
+ * The camera pitch (vertical angle), in degrees from the horizon. The |pitch| range is [-90,90],
+ * although it is possible that not the full range is supported.
+ */
+ const double pitch;
+} GMSOrientation;
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/** Returns a GMSOrientation with the given |heading| and |pitch|. */
+inline static GMSOrientation GMSOrientationMake(CLLocationDirection heading, double pitch) {
+ GMSOrientation orientation = {heading, pitch};
+ return orientation;
+}
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/Sample-Carthage/Carthage/Checkouts/PXGoogleDirections/Dependencies/GoogleMaps.framework/Versions/A/Headers/GMSOverlay.h b/Sample-Carthage/Carthage/Checkouts/PXGoogleDirections/Dependencies/GoogleMaps.framework/Versions/A/Headers/GMSOverlay.h
new file mode 100755
index 0000000..6603ea2
--- /dev/null
+++ b/Sample-Carthage/Carthage/Checkouts/PXGoogleDirections/Dependencies/GoogleMaps.framework/Versions/A/Headers/GMSOverlay.h
@@ -0,0 +1,66 @@
+//
+// GMSOverlay.h
+// Google Maps SDK for iOS
+//
+// Copyright 2013 Google Inc.
+//
+// Usage of this SDK is subject to the Google Maps/Google Earth APIs Terms of
+// Service: https://developers.google.com/maps/terms
+//
+
+#import
+
+#if __has_feature(modules)
+@import GoogleMapsBase;
+#else
+#import
+#endif
+
+GMS_ASSUME_NONNULL_BEGIN
+
+@class GMSMapView;
+
+/**
+ * GMSOverlay is an abstract class that represents some overlay that may be
+ * attached to a specific GMSMapView. It may not be instantiated directly;
+ * instead, instances of concrete overlay types should be created directly
+ * (such as GMSMarker, GMSPolyline, and GMSPolygon).
+ *
+ * This supports the NSCopying protocol; [overlay_ copy] will return a copy
+ * of the overlay type, but with |map| set to nil.
+ */
+@interface GMSOverlay : NSObject
+
+/**
+ * Title, a short description of the overlay. Some overlays, such as markers,
+ * will display the title on the map. The title is also the default
+ * accessibility text.
+ */
+@property(nonatomic, copy) NSString *GMS_NULLABLE_PTR title;
+
+/**
+ * The map this overlay is on. Setting this property will add the overlay to the
+ * map. Setting it to nil removes this overlay from the map. An overlay may be
+ * active on at most one map at any given time.
+ */
+@property(nonatomic, weak) GMSMapView *GMS_NULLABLE_PTR map;
+
+/**
+ * If this overlay should cause tap notifications. Some overlays, such as
+ * markers, will default to being tappable.
+ */
+@property(nonatomic, assign, getter=isTappable) BOOL tappable;
+
+/**
+ * Higher |zIndex| value overlays will be drawn on top of lower |zIndex|
+ * value tile layers and overlays. Equal values result in undefined draw
+ * ordering. Markers are an exception that regardless of |zIndex|, they will
+ * always be drawn above tile layers and other non-marker overlays; they
+ * are effectively considered to be in a separate z-index group compared to
+ * other overlays.
+ */
+@property(nonatomic, assign) int zIndex;
+
+@end
+
+GMS_ASSUME_NONNULL_END
diff --git a/Sample-Carthage/Carthage/Checkouts/PXGoogleDirections/Dependencies/GoogleMaps.framework/Versions/A/Headers/GMSPanorama.h b/Sample-Carthage/Carthage/Checkouts/PXGoogleDirections/Dependencies/GoogleMaps.framework/Versions/A/Headers/GMSPanorama.h
new file mode 100755
index 0000000..3f90436
--- /dev/null
+++ b/Sample-Carthage/Carthage/Checkouts/PXGoogleDirections/Dependencies/GoogleMaps.framework/Versions/A/Headers/GMSPanorama.h
@@ -0,0 +1,40 @@
+//
+// GMSPanorama.h
+// Google Maps SDK for iOS
+//
+// Copyright 2013 Google Inc.
+//
+// Usage of this SDK is subject to the Google Maps/Google Earth APIs Terms of
+// Service: https://developers.google.com/maps/terms
+//
+
+#import
+
+#if __has_feature(modules)
+@import GoogleMapsBase;
+#else
+#import
+#endif
+
+GMS_ASSUME_NONNULL_BEGIN
+
+@class GMSPanoramaLink;
+
+/**
+ * GMSPanorama represents metadata for a specific panorama on the Earth. This class is not
+ * instantiable directly and is obtained via GMSPanoramaService or GMSPanoramaView.
+ */
+@interface GMSPanorama : NSObject
+
+/** The precise location of this panorama. */
+@property(nonatomic, readonly) CLLocationCoordinate2D coordinate;
+
+/** The ID of this panorama. Panoramas may change ID over time, so this should not be persisted */
+@property(nonatomic, copy, readonly) NSString *panoramaID;
+
+/** An array of GMSPanoramaLink describing the neighboring panoramas. */
+@property(nonatomic, copy, readonly) GMS_NSArrayOf(GMSPanoramaLink *) * links;
+
+@end
+
+GMS_ASSUME_NONNULL_END
diff --git a/Sample-Carthage/Carthage/Checkouts/PXGoogleDirections/Dependencies/GoogleMaps.framework/Versions/A/Headers/GMSPanoramaCamera.h b/Sample-Carthage/Carthage/Checkouts/PXGoogleDirections/Dependencies/GoogleMaps.framework/Versions/A/Headers/GMSPanoramaCamera.h
new file mode 100755
index 0000000..bc33f94
--- /dev/null
+++ b/Sample-Carthage/Carthage/Checkouts/PXGoogleDirections/Dependencies/GoogleMaps.framework/Versions/A/Headers/GMSPanoramaCamera.h
@@ -0,0 +1,86 @@
+//
+// GMSPanoramaCamera.h
+// Google Maps SDK for iOS
+//
+// Copyright 2013 Google Inc.
+//
+// Usage of this SDK is subject to the Google Maps/Google Earth APIs Terms of
+// Service: https://developers.google.com/maps/terms
+//
+
+#import
+
+#if __has_feature(modules)
+@import GoogleMapsBase;
+#else
+#import
+#endif
+#import
+
+GMS_ASSUME_NONNULL_BEGIN
+
+/**
+ * GMSPanoramaCamera is used to control the viewing direction of a GMSPanoramaView. It does not
+ * contain information about which particular panorama should be displayed.
+ */
+@interface GMSPanoramaCamera : NSObject
+
+/**
+ * Designated initializer. Configures this GMSPanoramaCamera with |orientation|, |zoom| and |FOV|.
+ * These values will be clamped to acceptable ranges.
+ */
+- (id)initWithOrientation:(GMSOrientation)orientation zoom:(float)zoom FOV:(double)FOV;
+
+/**
+ * Convenience constructor specifying heading and pitch as part of |orientation|, plus |zoom| and
+ * default field of view (90 degrees).
+ */
++ (instancetype)cameraWithOrientation:(GMSOrientation)orientation zoom:(float)zoom;
+
+/**
+ * Convenience constructor specifying |heading|, |pitch|, |zoom| with default field of view (90
+ * degrees).
+ */
++ (instancetype)cameraWithHeading:(CLLocationDirection)heading pitch:(double)pitch zoom:(float)zoom;
+
+/**
+ * Convenience constructor for GMSPanoramaCamera, specifying all camera properties with heading and
+ * pitch as part of |orientation|.
+ */
++ (instancetype)cameraWithOrientation:(GMSOrientation)orientation zoom:(float)zoom FOV:(double)FOV;
+
+/**
+ * Convenience constructor for GMSPanoramaCamera, specifying all camera properties.
+ */
++ (instancetype)cameraWithHeading:(CLLocationDirection)heading
+ pitch:(double)pitch
+ zoom:(float)zoom
+ FOV:(double)FOV;
+
+/**
+ * The field of view (FOV) encompassed by the larger dimension (width or height) of the view in
+ * degrees at zoom 1. This is clamped to the range [1, 160] degrees, and has a default value of 90.
+ *
+ * Lower FOV values produce a zooming in effect; larger FOV values produce an fisheye effect.
+ *
+ * Note: This is not the displayed FOV if zoom is anything other than 1. User zoom gestures
+ * control the zoom property, not this property.
+ */
+@property(nonatomic, assign, readonly) double FOV;
+
+/**
+ * Adjusts the visible region of the screen. A zoom of N will show the same area as the central
+ * width/N height/N area of what is shown at zoom 1.
+ *
+ * Zoom is clamped to the implementation defined range [1, 5].
+ */
+@property(nonatomic, assign, readonly) float zoom;
+
+/**
+ * The camera orientation, which groups together heading and pitch.
+ */
+@property(nonatomic, assign, readonly) GMSOrientation orientation;
+
+@end
+
+GMS_ASSUME_NONNULL_END
diff --git a/Sample-Carthage/Carthage/Checkouts/PXGoogleDirections/Dependencies/GoogleMaps.framework/Versions/A/Headers/GMSPanoramaCameraUpdate.h b/Sample-Carthage/Carthage/Checkouts/PXGoogleDirections/Dependencies/GoogleMaps.framework/Versions/A/Headers/GMSPanoramaCameraUpdate.h
new file mode 100755
index 0000000..7188f9d
--- /dev/null
+++ b/Sample-Carthage/Carthage/Checkouts/PXGoogleDirections/Dependencies/GoogleMaps.framework/Versions/A/Headers/GMSPanoramaCameraUpdate.h
@@ -0,0 +1,35 @@
+//
+// GMSPanoramaCameraUpdate.h
+// Google Maps SDK for iOS
+//
+// Copyright 2013 Google Inc.
+//
+// Usage of this SDK is subject to the Google Maps/Google Earth APIs Terms of
+// Service: https://developers.google.com/maps/terms
+//
+
+#if __has_feature(modules)
+@import GoogleMapsBase;
+#else
+#import
+#endif
+
+GMS_ASSUME_NONNULL_BEGIN
+
+@interface GMSPanoramaCameraUpdate : NSObject
+
+/** Returns an update that increments the camera heading with |deltaHeading|. */
++ (GMSPanoramaCameraUpdate *)rotateBy:(CGFloat)deltaHeading;
+
+/** Returns an update that sets the camera heading to the given value. */
++ (GMSPanoramaCameraUpdate *)setHeading:(CGFloat)heading;
+
+/** Returns an update that sets the camera pitch to the given value. */
++ (GMSPanoramaCameraUpdate *)setPitch:(CGFloat)pitch;
+
+/** Returns an update that sets the camera zoom to the given value. */
++ (GMSPanoramaCameraUpdate *)setZoom:(CGFloat)zoom;
+
+@end
+
+GMS_ASSUME_NONNULL_END
diff --git a/Sample-Carthage/Carthage/Checkouts/PXGoogleDirections/Dependencies/GoogleMaps.framework/Versions/A/Headers/GMSPanoramaLayer.h b/Sample-Carthage/Carthage/Checkouts/PXGoogleDirections/Dependencies/GoogleMaps.framework/Versions/A/Headers/GMSPanoramaLayer.h
new file mode 100755
index 0000000..51100a2
--- /dev/null
+++ b/Sample-Carthage/Carthage/Checkouts/PXGoogleDirections/Dependencies/GoogleMaps.framework/Versions/A/Headers/GMSPanoramaLayer.h
@@ -0,0 +1,47 @@
+//
+// GMSPanoramaLayer.h
+// Google Maps SDK for iOS
+//
+// Copyright 2013 Google Inc.
+//
+// Usage of this SDK is subject to the Google Maps/Google Earth APIs Terms of
+// Service: https://developers.google.com/maps/terms
+//
+
+#import
+#import
+
+#import
+
+#if __has_feature(modules)
+@import GoogleMapsBase;
+#else
+#import
+#endif
+
+GMS_ASSUME_NONNULL_BEGIN
+
+/** kGMSLayerPanoramaHeadingKey ranges from [0, 360). */
+extern NSString *const kGMSLayerPanoramaHeadingKey;
+
+/** kGMSLayerPanoramaPitchKey ranges from [-90, 90]. */
+extern NSString *const kGMSLayerPanoramaPitchKey;
+
+/** kGMSLayerCameraZoomLevelKey ranges from [1, 5], default 1. */
+extern NSString *const kGMSLayerPanoramaZoomKey;
+
+/** kGMSLayerPanoramaFOVKey ranges from [1, 160] (in degrees), default 90. */
+extern NSString *const kGMSLayerPanoramaFOVKey;
+
+/**
+ * GMSPanoramaLayer is a custom subclass of CALayer, provided as the layer
+ * class on GMSPanoramaView. This layer should not be instantiated directly.
+ */
+@interface GMSPanoramaLayer : GMSCALayer
+@property(nonatomic, assign) CLLocationDirection cameraHeading;
+@property(nonatomic, assign) double cameraPitch;
+@property(nonatomic, assign) float cameraZoom;
+@property(nonatomic, assign) double cameraFOV;
+@end
+
+GMS_ASSUME_NONNULL_END
diff --git a/Sample-Carthage/Carthage/Checkouts/PXGoogleDirections/Dependencies/GoogleMaps.framework/Versions/A/Headers/GMSPanoramaLink.h b/Sample-Carthage/Carthage/Checkouts/PXGoogleDirections/Dependencies/GoogleMaps.framework/Versions/A/Headers/GMSPanoramaLink.h
new file mode 100755
index 0000000..c48a6e8
--- /dev/null
+++ b/Sample-Carthage/Carthage/Checkouts/PXGoogleDirections/Dependencies/GoogleMaps.framework/Versions/A/Headers/GMSPanoramaLink.h
@@ -0,0 +1,33 @@
+//
+// GMSPanoramaLink.h
+// Google Maps SDK for iOS
+//
+// Copyright 2013 Google Inc.
+//
+// Usage of this SDK is subject to the Google Maps/Google Earth APIs Terms of
+// Service: https://developers.google.com/maps/terms
+//
+
+#if __has_feature(modules)
+@import GoogleMapsBase;
+#else
+#import
+#endif
+
+GMS_ASSUME_NONNULL_BEGIN
+
+/** Links from a GMSPanorama to neighboring panoramas. */
+@interface GMSPanoramaLink : NSObject
+
+/** Angle of the neighboring panorama, clockwise from north in degrees. */
+@property(nonatomic, assign) CGFloat heading;
+
+/**
+ * Panorama ID for the neighboring panorama.
+ * Do not store this persistenly, it changes in time.
+ */
+@property(nonatomic, copy) NSString *panoramaID;
+
+@end
+
+GMS_ASSUME_NONNULL_END
diff --git a/Sample-Carthage/Carthage/Checkouts/PXGoogleDirections/Dependencies/GoogleMaps.framework/Versions/A/Headers/GMSPanoramaService.h b/Sample-Carthage/Carthage/Checkouts/PXGoogleDirections/Dependencies/GoogleMaps.framework/Versions/A/Headers/GMSPanoramaService.h
new file mode 100755
index 0000000..80fae9e
--- /dev/null
+++ b/Sample-Carthage/Carthage/Checkouts/PXGoogleDirections/Dependencies/GoogleMaps.framework/Versions/A/Headers/GMSPanoramaService.h
@@ -0,0 +1,62 @@
+//
+// GMSPanoramaService.h
+// Google Maps SDK for iOS
+//
+// Copyright 2013 Google Inc.
+//
+// Usage of this SDK is subject to the Google Maps/Google Earth APIs Terms of
+// Service: https://developers.google.com/maps/terms
+//
+
+#import
+
+#if __has_feature(modules)
+@import GoogleMapsBase;
+#else
+#import
+#endif
+
+@class GMSPanorama;
+
+GMS_ASSUME_NONNULL_BEGIN
+
+/**
+ * Callback for when a panorama metadata becomes available.
+ * If an error occured, |panorama| is nil and |error| is not nil.
+ * Otherwise, |panorama| is not nil and |error| is nil.
+ */
+typedef void (^GMSPanoramaCallback)(GMSPanorama *GMS_NULLABLE_PTR panorama,
+ NSError *GMS_NULLABLE_PTR error);
+
+/**
+ * GMSPanoramaService can be used to request panorama metadata even when a
+ * GMSPanoramaView is not active.
+ * Get an instance like this: [[GMSPanoramaService alloc] init].
+ */
+@interface GMSPanoramaService : NSObject
+
+/**
+ * Retrieves information about a panorama near the given |coordinate|.
+ * This is an asynchronous request, |callback| will be called with the result.
+ */
+- (void)requestPanoramaNearCoordinate:(CLLocationCoordinate2D)coordinate
+ callback:(GMSPanoramaCallback)callback;
+
+/**
+ * Similar to requestPanoramaNearCoordinate:callback: but allows specifying
+ * a search radius (meters) around |coordinate|.
+ */
+- (void)requestPanoramaNearCoordinate:(CLLocationCoordinate2D)coordinate
+ radius:(NSUInteger)radius
+ callback:(GMSPanoramaCallback)callback;
+
+/**
+ * Retrieves information about a panorama with the given |panoramaID|.
+ * |callback| will be called with the result. Only panoramaIDs obtained
+ * from the Google Maps SDK for iOS are supported.
+ */
+- (void)requestPanoramaWithID:(NSString *)panoramaID callback:(GMSPanoramaCallback)callback;
+
+@end
+
+GMS_ASSUME_NONNULL_END
diff --git a/Sample-Carthage/Carthage/Checkouts/PXGoogleDirections/Dependencies/GoogleMaps.framework/Versions/A/Headers/GMSPanoramaView.h b/Sample-Carthage/Carthage/Checkouts/PXGoogleDirections/Dependencies/GoogleMaps.framework/Versions/A/Headers/GMSPanoramaView.h
new file mode 100755
index 0000000..9fad276
--- /dev/null
+++ b/Sample-Carthage/Carthage/Checkouts/PXGoogleDirections/Dependencies/GoogleMaps.framework/Versions/A/Headers/GMSPanoramaView.h
@@ -0,0 +1,268 @@
+//
+// GMSPanoramaView.h
+// Google Maps SDK for iOS
+//
+// Copyright 2013 Google Inc.
+//
+// Usage of this SDK is subject to the Google Maps/Google Earth APIs Terms of
+// Service: https://developers.google.com/maps/terms
+//
+
+#import
+
+#if __has_feature(modules)
+@import GoogleMapsBase;
+#else
+#import
+#endif
+#import
+#import
+
+@class GMSMarker;
+@class GMSPanorama;
+@class GMSPanoramaCamera;
+@class GMSPanoramaCameraUpdate;
+@class GMSPanoramaView;
+
+GMS_ASSUME_NONNULL_BEGIN
+
+/** Delegate for events on GMSPanoramaView. */
+@protocol GMSPanoramaViewDelegate
+@optional
+
+/**
+ * Called when starting a move to another panorama.
+ * This can be the result of interactive navigation to a neighbouring panorama.
+ * At the moment this method is called, the |view|.panorama is still
+ * pointing to the old panorama, as the new panorama identified by |panoID|
+ * is not yet resolved. panoramaView:didMoveToPanorama: will be called when the
+ * new panorama is ready.
+ */
+- (void)panoramaView:(GMSPanoramaView *)view
+ willMoveToPanoramaID:(NSString *)panoramaID;
+
+/**
+ * This is invoked every time the |view|.panorama property changes.
+ */
+- (void)panoramaView:(GMSPanoramaView *)view
+ didMoveToPanorama:(GMSPanorama *GMS_NULLABLE_PTR)panorama;
+
+/**
+ * Called when the panorama change was caused by invoking
+ * moveToPanoramaNearCoordinate:. The coordinate passed to that method will also
+ * be passed here.
+ */
+- (void)panoramaView:(GMSPanoramaView *)view
+ didMoveToPanorama:(GMSPanorama *)panorama
+ nearCoordinate:(CLLocationCoordinate2D)coordinate;
+
+/**
+ * Called when moveNearCoordinate: produces an error.
+ */
+- (void)panoramaView:(GMSPanoramaView *)view
+ error:(NSError *)error
+ onMoveNearCoordinate:(CLLocationCoordinate2D)coordinate;
+
+/**
+ * Called when moveToPanoramaID: produces an error.
+ */
+- (void)panoramaView:(GMSPanoramaView *)view
+ error:(NSError *)error
+ onMoveToPanoramaID:(NSString *)panoramaID;
+
+/**
+ * Called repeatedly during changes to the camera on GMSPanoramaView. This may
+ * not be called for all intermediate camera values, but is always called for
+ * the final position of the camera after an animation or gesture.
+ */
+- (void)panoramaView:(GMSPanoramaView *)panoramaView
+ didMoveCamera:(GMSPanoramaCamera *)camera;
+
+/**
+ * Called when a user has tapped on the GMSPanoramaView, but this tap was not
+ * consumed (taps may be consumed by e.g., tapping on a navigation arrow).
+ */
+- (void)panoramaView:(GMSPanoramaView *)panoramaView didTap:(CGPoint)point;
+
+/**
+ * Called after a marker has been tapped. May return YES to indicate the event
+ * has been fully handled and suppress any default behavior.
+ */
+- (BOOL)panoramaView:(GMSPanoramaView *)panoramaView
+ didTapMarker:(GMSMarker *)marker;
+
+/**
+ * Called when the panorama tiles for the current view have just been requested
+ * and are beginning to load.
+ */
+- (void)panoramaViewDidStartRendering:(GMSPanoramaView *)panoramaView;
+
+/**
+ * Called when the panorama tiles have been loaded (or permanently failed to load)
+ * and rendered on screen.
+ */
+- (void)panoramaViewDidFinishRendering:(GMSPanoramaView *)panoramaView;
+
+@end
+
+/**
+ * A panorama is used to display Street View imagery. It should be constructed
+ * via [[GMSPanoramaView alloc] initWithFrame:], and configured
+ * post-initialization.
+ *
+ * All properties and methods should be accessed on the main thread, similar to
+ * all UIKit objects. The GMSPanoramaViewDelegate methods will also be called
+ * back only on the main thread.
+ *
+ * The backgroundColor of this view is shown while no panorama is visible, such
+ * as while it is loading or if the panorama is later set to nil. The alpha
+ * color of backgroundColor is not supported.
+ */
+@interface GMSPanoramaView : UIView
+
+/**
+ * The panorama to display; setting it will transition to a new panorama. This
+ * is animated, except for the initial panorama.
+ *
+ * Can be set to nil to clear the view.
+ */
+@property(nonatomic, strong) GMSPanorama *GMS_NULLABLE_PTR panorama;
+
+/** GMSPanoramaView delegate. */
+@property(nonatomic, weak) IBOutlet id GMS_NULLABLE_PTR delegate;
+
+/**
+ * Sets the preference for whether all gestures should be enabled (default) or
+ * disabled.
+ * This does not limit programmatic movement of the camera or control of the
+ * panorama.
+ */
+- (void)setAllGesturesEnabled:(BOOL)enabled;
+
+/**
+ * Controls whether orientation gestures are enabled (default) or disabled. If
+ * enabled, users may use gestures to change the orientation of the camera.
+ * This does not limit programmatic movement of the camera.
+ */
+@property(nonatomic, assign) BOOL orientationGestures;
+
+/**
+ * Controls whether zoom gestures are enabled (default) or disabled. If
+ * enabled, users may pinch to zoom the camera.
+ * This does not limit programmatic movement of the camera.
+ */
+@property(nonatomic, assign) BOOL zoomGestures;
+
+/**
+ * Controls whether navigation gestures are enabled (default) or disabled. If
+ * enabled, users may use a single tap on navigation links or double tap the
+ * view to change panoramas.
+ * This does not limit programmatic control of the panorama.
+ */
+@property(nonatomic, assign) BOOL navigationGestures;
+
+/**
+ * Controls whether the tappable navigation links are hidden or visible
+ * (default).
+ * Hidden navigation links cannot be tapped.
+ */
+@property(nonatomic, assign) BOOL navigationLinksHidden;
+
+/**
+ * Controls whether the street name overlays are hidden or visible (default).
+ */
+@property(nonatomic, assign) BOOL streetNamesHidden;
+
+/**
+ * Controls the panorama's camera. Setting a new camera here jumps to the new
+ * camera value, with no animation.
+ */
+@property(nonatomic, strong) GMSPanoramaCamera *camera;
+
+/**
+ * Accessor for the custom CALayer type used for the layer.
+ */
+@property(nonatomic, readonly, retain) GMSPanoramaLayer *layer;
+
+/**
+ * Animates the camera of this GMSPanoramaView to |camera|, over |duration|
+ * (specified in seconds).
+ */
+- (void)animateToCamera:(GMSPanoramaCamera *)camera
+ animationDuration:(NSTimeInterval)duration;
+
+/**
+ * Modifies the camera according to |cameraUpdate|, over |duration| (specified
+ * in seconds).
+ */
+- (void)updateCamera:(GMSPanoramaCameraUpdate *)cameraUpdate
+ animationDuration:(NSTimeInterval)duration;
+
+/**
+ * Requests a panorama near |coordinate|.
+ * Upon successful completion panoramaView:didMoveToPanorama: and
+ * panoramaView:didMoveToPanorama:nearCoordinate: will be sent to
+ * GMSPanoramaViewDelegate.
+ * On error panoramaView:error:onMoveNearCoordinate: will be sent.
+ * Repeated calls to moveNearCoordinate: result in the previous pending
+ * (incomplete) transitions being cancelled -- only the most recent of
+ * moveNearCoordinate: and moveToPanoramaId: will proceed and generate events.
+ */
+- (void)moveNearCoordinate:(CLLocationCoordinate2D)coordinate;
+
+/**
+ * Similar to moveNearCoordinate: but allows specifying a search radius (meters)
+ * around |coordinate|.
+ */
+- (void)moveNearCoordinate:(CLLocationCoordinate2D)coordinate
+ radius:(NSUInteger)radius;
+
+/**
+ * Requests a panorama with |panoramaID|.
+ * Upon successful completion panoramaView:didMoveToPanorama: will be sent to
+ * GMSPanoramaViewDelegate.
+ * On error panoramaView:error:onMoveToPanoramaID: will be sent.
+ * Repeated calls to moveToPanoramaID: result in the previous pending
+ * (incomplete) transitions being cancelled -- only the most recent of
+ * moveNearCoordinate: and moveToPanoramaId: will proceed and generate events.
+ * Only panoramaIDs obtained from the Google Maps SDK for iOS are supported.
+ */
+- (void)moveToPanoramaID:(NSString *)panoramaID;
+
+/**
+ * For the current view, returns the screen point the |orientation| points
+ * through. This value may be outside the view for forward facing orientations
+ * which are far enough away from straight ahead.
+ * The result will contain NaNs for camera orientations which point away from
+ * the view, where the implied screen point would have had a negative distance
+ * from the camera in the direction of orientation.
+ */
+- (CGPoint)pointForOrientation:(GMSOrientation)orientation;
+
+/**
+ * Given a point for this view, returns the current camera orientation pointing
+ * through that screen location. At the center of this view, the returned
+ * GMSOrientation will be approximately equal to that of the current
+ * GMSPanoramaCamera.
+ */
+- (GMSOrientation)orientationForPoint:(CGPoint)point;
+
+/**
+ * Convenience constructor for GMSPanoramaView, which searches for and displays
+ * a GMSPanorama near |coordinate|. This performs a similar action to that of
+ * moveNearCoordinate:, and will call the same delegate methods.
+ */
++ (instancetype)panoramaWithFrame:(CGRect)frame
+ nearCoordinate:(CLLocationCoordinate2D)coordinate;
+
+/**
+ * Similar to panoramaWithFrame:nearCoordinate: but allows specifying a
+ * search radius (meters) around |coordinate|.
+ */
++ (instancetype)panoramaWithFrame:(CGRect)frame
+ nearCoordinate:(CLLocationCoordinate2D)coordinate
+ radius:(NSUInteger)radius;
+
+@end
+
+GMS_ASSUME_NONNULL_END
diff --git a/Sample-Carthage/Carthage/Checkouts/PXGoogleDirections/Dependencies/GoogleMaps.framework/Versions/A/Headers/GMSPath.h b/Sample-Carthage/Carthage/Checkouts/PXGoogleDirections/Dependencies/GoogleMaps.framework/Versions/A/Headers/GMSPath.h
new file mode 100755
index 0000000..3e77d10
--- /dev/null
+++ b/Sample-Carthage/Carthage/Checkouts/PXGoogleDirections/Dependencies/GoogleMaps.framework/Versions/A/Headers/GMSPath.h
@@ -0,0 +1,111 @@
+//
+// GMSPath.h
+// Google Maps SDK for iOS
+//
+// Copyright 2013 Google Inc.
+//
+// Usage of this SDK is subject to the Google Maps/Google Earth APIs Terms of
+// Service: https://developers.google.com/maps/terms
+//
+
+#import
+
+#if __has_feature(modules)
+@import GoogleMapsBase;
+#else
+#import
+#endif
+
+GMS_ASSUME_NONNULL_BEGIN
+
+/**
+ * GMSPath encapsulates an immutable array of CLLocationCooordinate2D. All the coordinates of a
+ * GMSPath must be valid. The mutable counterpart is GMSMutablePath.
+ */
+@interface GMSPath : NSObject
+
+/** Convenience constructor for an empty path. */
++ (instancetype)path;
+
+/** Initializes a newly allocated path with the contents of another GMSPath. */
+- (id)initWithPath:(GMSPath *)path;
+
+/** Get size of path. */
+- (NSUInteger)count;
+
+/** Returns kCLLocationCoordinate2DInvalid if |index| >= count. */
+- (CLLocationCoordinate2D)coordinateAtIndex:(NSUInteger)index;
+
+/**
+ * Initializes a newly allocated path from |encodedPath|. This format is described at:
+ * https://developers.google.com/maps/documentation/utilities/polylinealgorithm
+ */
++ (GMS_NULLABLE_INSTANCETYPE)pathFromEncodedPath:(NSString *)encodedPath;
+
+/** Returns an encoded string of the path in the format described above. */
+- (NSString *)encodedPath;
+
+/**
+ * Returns a new path obtained by adding |deltaLatitude| and |deltaLongitude| to each coordinate
+ * of the current path. Does not modify the current path.
+ */
+- (instancetype)pathOffsetByLatitude:(CLLocationDegrees)deltaLatitude
+ longitude:(CLLocationDegrees)deltaLongitude;
+
+@end
+
+/**
+ * kGMSEquatorProjectedMeter may be useful when specifying lengths for segment in "projected" units.
+ * The value of kGMSEquatorProjectedMeter, 1/(pi * EarthRadius), represents the length of one meter
+ * at the equator in projected units. For example to specify a projected length that corresponds
+ * to 100km at the equator use 100000 * kGMSEquatorProjectedMeter.
+ * See [GMSPath segmentsForLength:kind:], [GMSPath lengthOfKind:] and kGMSLengthProjected.
+ */
+extern const double kGMSEquatorProjectedMeter;
+
+/**
+ * GMSLengthKind indicates the type of a length value, which can be geodesic (in meters), rhumb
+ * length (in meters) and projected length (in GMSMapPoint units).
+ */
+typedef enum {
+ /*
+ * Geodesic length, in meters, along geodesic segments. May be useful, for example, to specify
+ * lengths along the the trajectory of airplanes or ships.
+ */
+ kGMSLengthGeodesic,
+
+ /*
+ * Rhumb length, in meters, along rhumb (straight line) segments. May be useful, for example, to
+ * draw a scale bar on a map. The visual size of a segment of a given length depens on the
+ * latitude.
+ */
+ kGMSLengthRhumb,
+
+ /*
+ * Length in projected space, along rhumb segments. Projected length uses the same units as
+ * GMSMapPoint - the Earth equator circumference has length 2. It is possible to specify projected
+ * length in units corresponding to 1 meter at the equator by multiplying with
+ * kGMSEquatorProjectedMeter, equal to 1/(pi * EarthRadius).
+ *
+ * Projected length may be useful, for example, to specify segments with the same visual length
+ * regardless of latitude.
+ */
+ kGMSLengthProjected
+} GMSLengthKind;
+
+@interface GMSPath (GMSPathLength)
+
+/**
+ * Returns the fractional number of segments along the path that correspond to |length|,
+ * interpreted according to |kind|. See GMSLengthKind.
+ */
+- (double)segmentsForLength:(CLLocationDistance)length kind:(GMSLengthKind)kind;
+
+/**
+ * Returns the length of the path, according to |kind|. See GMSLengthKind.
+ */
+- (CLLocationDistance)lengthOfKind:(GMSLengthKind)kind;
+
+@end
+
+GMS_ASSUME_NONNULL_END
diff --git a/Sample-Carthage/Carthage/Checkouts/PXGoogleDirections/Dependencies/GoogleMaps.framework/Versions/A/Headers/GMSPolygon.h b/Sample-Carthage/Carthage/Checkouts/PXGoogleDirections/Dependencies/GoogleMaps.framework/Versions/A/Headers/GMSPolygon.h
new file mode 100755
index 0000000..a0e1c66
--- /dev/null
+++ b/Sample-Carthage/Carthage/Checkouts/PXGoogleDirections/Dependencies/GoogleMaps.framework/Versions/A/Headers/GMSPolygon.h
@@ -0,0 +1,58 @@
+//
+// GMSPolygon.h
+// Google Maps SDK for iOS
+//
+// Copyright 2013 Google Inc.
+//
+// Usage of this SDK is subject to the Google Maps/Google Earth APIs Terms of
+// Service: https://developers.google.com/maps/terms
+//
+
+#if __has_feature(modules)
+@import GoogleMapsBase;
+#else
+#import
+#endif
+#import
+
+GMS_ASSUME_NONNULL_BEGIN
+
+@class GMSPath;
+
+/**
+ * GMSPolygon defines a polygon that appears on the map. A polygon (like a polyline) defines a
+ * series of connected coordinates in an ordered sequence; additionally, polygons form a closed loop
+ * and define a filled region.
+ */
+@interface GMSPolygon : GMSOverlay
+
+/** The path that describes this polygon. The coordinates composing the path must be valid. */
+@property(nonatomic, copy) GMSPath *GMS_NULLABLE_PTR path;
+
+/**
+ * The array of GMSPath instances that describes any holes in this polygon. The coordinates
+ * composing each path must be valid.
+ */
+@property(nonatomic, copy) GMS_NSArrayOf(GMSPath *) * GMS_NULLABLE_PTR holes;
+
+/** The width of the polygon outline in screen points. Defaults to 1. */
+@property(nonatomic, assign) CGFloat strokeWidth;
+
+/** The color of the polygon outline. Defaults to nil. */
+@property(nonatomic, strong) UIColor *GMS_NULLABLE_PTR strokeColor;
+
+/** The fill color. Defaults to blueColor. */
+@property(nonatomic, strong) UIColor *GMS_NULLABLE_PTR fillColor;
+
+/** Whether this polygon should be rendered with geodesic correction. */
+@property(nonatomic, assign) BOOL geodesic;
+
+/**
+ * Convenience constructor for GMSPolygon for a particular path. Other properties will have default
+ * values.
+ */
++ (instancetype)polygonWithPath:(GMSPath *GMS_NULLABLE_PTR)path;
+
+@end
+
+GMS_ASSUME_NONNULL_END
diff --git a/Sample-Carthage/Carthage/Checkouts/PXGoogleDirections/Dependencies/GoogleMaps.framework/Versions/A/Headers/GMSPolyline.h b/Sample-Carthage/Carthage/Checkouts/PXGoogleDirections/Dependencies/GoogleMaps.framework/Versions/A/Headers/GMSPolyline.h
new file mode 100755
index 0000000..8ac0bc5
--- /dev/null
+++ b/Sample-Carthage/Carthage/Checkouts/PXGoogleDirections/Dependencies/GoogleMaps.framework/Versions/A/Headers/GMSPolyline.h
@@ -0,0 +1,109 @@
+//
+// GMSPolyline.h
+// Google Maps SDK for iOS
+//
+// Copyright 2012 Google Inc.
+//
+// Usage of this SDK is subject to the Google Maps/Google Earth APIs Terms of
+// Service: https://developers.google.com/maps/terms
+//
+
+#if __has_feature(modules)
+@import GoogleMapsBase;
+#else
+#import
+#endif
+#import
+
+@class GMSPath;
+
+GMS_ASSUME_NONNULL_BEGIN
+
+/** Describes the drawing style for one-dimensional entities such as polylines. */
+@interface GMSStrokeStyle : NSObject
+
+/** Creates a solid color stroke style. */
++ (instancetype)solidColor:(UIColor *)color;
+
+/** Creates a gradient stroke style interpolating from |fromColor| to |toColor|. */
++ (instancetype)gradientFromColor:(UIColor *)fromColor toColor:(UIColor *)toColor;
+
+@end
+
+/** Describes the style for some region of a polyline. */
+@interface GMSStyleSpan : NSObject
+
+/**
+ * Factory returning a solid color span of length one segment. Equivalent to
+ * [GMSStyleSpan spanWithStyle:[GMSStrokeStyle solidColor:|color|] segments:1].
+ */
++ (instancetype)spanWithColor:(UIColor *)color;
+
+/**
+ * Factory returning a solid color span with a given number of segments. Equivalent to
+ * [GMSStyleSpan spanWithStyle:[GMSStrokeStyle solidColor:|color|] segments:|segments|].
+ */
++ (instancetype)spanWithColor:(UIColor *)color segments:(double)segments;
+
+/**
+ * Factory returning a span with the given |style| of length one segment. Equivalent to
+ * [GMSStyleSpan spanWithStyle:|style| segments:1].
+ */
++ (instancetype)spanWithStyle:(GMSStrokeStyle *)style;
+
+/**
+ * Factory returning a span with the given |style| and length in number of segments.
+ * |segments| must be greater than 0 (i.e. can't be 0).
+ */
++ (instancetype)spanWithStyle:(GMSStrokeStyle *)style segments:(double)segments;
+
+/** The style of this span. */
+@property(nonatomic, readonly) GMSStrokeStyle *style;
+
+/** The length of this span in number of segments. */
+@property(nonatomic, readonly) double segments;
+
+@end
+
+/**
+ * GMSPolyline specifies the available options for a polyline that exists on the Earth's surface.
+ * It is drawn as a physical line between the points specified in |path|.
+ */
+@interface GMSPolyline : GMSOverlay
+
+/**
+ * The path that describes this polyline.
+ */
+@property(nonatomic, copy) GMSPath *GMS_NULLABLE_PTR path;
+
+/**
+ * The width of the line in screen points. Defaults to 1.
+ */
+@property(nonatomic, assign) CGFloat strokeWidth;
+
+/**
+ * The UIColor used to render the polyline. Defaults to [UIColor blueColor].
+ */
+@property(nonatomic, strong) UIColor *strokeColor;
+
+/** Whether this line should be rendered with geodesic correction. */
+@property(nonatomic, assign) BOOL geodesic;
+
+/**
+ * Convenience constructor for GMSPolyline for a particular path. Other properties will have
+ * default values.
+ */
++ (instancetype)polylineWithPath:(GMSPath *GMS_NULLABLE_PTR)path;
+
+/**
+ * An array containing GMSStyleSpan, the spans used to render this polyline.
+ *
+ * If this array contains fewer segments than the polyline itself, the final segment will be applied
+ * over the remaining length. If this array is unset or empty, then |strokeColor| is used for the
+ * entire line instead.
+ */
+@property(nonatomic, copy) GMS_NSArrayOf(GMSStyleSpan *) * GMS_NULLABLE_PTR spans;
+
+@end
+
+GMS_ASSUME_NONNULL_END
diff --git a/Sample-Carthage/Carthage/Checkouts/PXGoogleDirections/Dependencies/GoogleMaps.framework/Versions/A/Headers/GMSProjection.h b/Sample-Carthage/Carthage/Checkouts/PXGoogleDirections/Dependencies/GoogleMaps.framework/Versions/A/Headers/GMSProjection.h
new file mode 100755
index 0000000..7596dba
--- /dev/null
+++ b/Sample-Carthage/Carthage/Checkouts/PXGoogleDirections/Dependencies/GoogleMaps.framework/Versions/A/Headers/GMSProjection.h
@@ -0,0 +1,75 @@
+//
+// GMSProjection.h
+// Google Maps SDK for iOS
+//
+// Copyright 2012 Google Inc.
+//
+// Usage of this SDK is subject to the Google Maps/Google Earth APIs Terms of
+// Service: https://developers.google.com/maps/terms
+//
+
+#import
+
+/**
+ * GMSVisibleRegion contains the four points defining the polygon that is visible in a map's camera.
+ *
+ * This polygon can be a trapezoid instead of a rectangle, because a camera can have tilt. If the
+ * camera is directly over the center of the camera, the shape is rectangular, but if the camera is
+ * tilted, the shape will appear to be a trapezoid whose smallest side is closest to the point of
+ * view.
+ */
+typedef struct {
+
+ /** Bottom left corner of the camera. */
+ CLLocationCoordinate2D nearLeft;
+
+ /** Bottom right corner of the camera. */
+ CLLocationCoordinate2D nearRight;
+
+ /** Far left corner of the camera. */
+ CLLocationCoordinate2D farLeft;
+
+ /** Far right corner of the camera. */
+ CLLocationCoordinate2D farRight;
+} GMSVisibleRegion;
+
+/**
+ * Defines a mapping between Earth coordinates (CLLocationCoordinate2D) and coordinates in the map's
+ * view (CGPoint). A projection is constant and immutable, in that the mapping it embodies never
+ * changes. The mapping is not necessarily linear.
+ *
+ * Passing invalid Earth coordinates (i.e., per CLLocationCoordinate2DIsValid) to this object may
+ * result in undefined behavior.
+ *
+ * This class should not be instantiated directly, instead, obtained via projection on GMSMapView.
+ */
+@interface GMSProjection : NSObject
+
+/** Maps an Earth coordinate to a point coordinate in the map's view. */
+- (CGPoint)pointForCoordinate:(CLLocationCoordinate2D)coordinate;
+
+/** Maps a point coordinate in the map's view to an Earth coordinate. */
+- (CLLocationCoordinate2D)coordinateForPoint:(CGPoint)point;
+
+/**
+ * Converts a distance in meters to content size. This is only accurate for small Earth distances,
+ * as it uses CGFloat for screen distances.
+ */
+- (CGFloat)pointsForMeters:(CLLocationDistance)meters
+ atCoordinate:(CLLocationCoordinate2D)coordinate;
+
+/**
+ * Returns whether a given coordinate (lat/lng) is contained within the projection.
+ */
+- (BOOL)containsCoordinate:(CLLocationCoordinate2D)coordinate;
+
+/**
+ * Returns the region (four location coordinates) that is visible according to the projection. If
+ * padding was set on GMSMapView, this region takes the padding into account.
+ *
+ * The visible region can be non-rectangular. The result is undefined if the projection includes
+ * points that do not map to anywhere on the map (e.g., camera sees outer space).
+ */
+- (GMSVisibleRegion)visibleRegion;
+
+@end
diff --git a/Sample-Carthage/Carthage/Checkouts/PXGoogleDirections/Dependencies/GoogleMaps.framework/Versions/A/Headers/GMSServices.h b/Sample-Carthage/Carthage/Checkouts/PXGoogleDirections/Dependencies/GoogleMaps.framework/Versions/A/Headers/GMSServices.h
new file mode 100755
index 0000000..503314d
--- /dev/null
+++ b/Sample-Carthage/Carthage/Checkouts/PXGoogleDirections/Dependencies/GoogleMaps.framework/Versions/A/Headers/GMSServices.h
@@ -0,0 +1,61 @@
+//
+// GMSServices.h
+// Google Maps SDK for iOS
+//
+// Copyright 2012 Google Inc.
+//
+// Usage of this SDK is subject to the Google Maps/Google Earth APIs Terms of
+// Service: https://developers.google.com/maps/terms
+//
+
+#if __has_feature(modules)
+@import GoogleMapsBase;
+#else
+#import
+#endif
+
+GMS_ASSUME_NONNULL_BEGIN
+
+/** Service class for the Google Maps SDK for iOS. */
+@interface GMSServices : NSObject
+
+/**
+ * Provides the shared instance of GMSServices for the Google Maps SDK for iOS,
+ * creating it if necessary. Classes such as GMSMapView and GMSPanoramaView will
+ * hold this instance to provide their connection to Google.
+ *
+ * This is an opaque object. If your application often creates and destroys view
+ * or service classes provided by the Google Maps SDK for iOS, it may be useful
+ * to hold onto this object directly, as otherwise your connection to Google
+ * may be restarted on a regular basis. It also may be useful to take this
+ * object in advance of the first map creation, to reduce initial map creation
+ * performance cost.
+ *
+ * This method will throw an exception if provideAPIKey: has not been called.
+ */
++ (id)sharedServices;
+
+/**
+ * Provides your API key to the Google Maps SDK for iOS. This key is generated
+ * for your application via the Google APIs Console, and is paired with your
+ * application's bundle ID to identify it. This must be called exactly once
+ * by your application before any iOS Maps SDK object is initialized.
+ *
+ * @return YES if the APIKey was successfully provided
+ */
++ (BOOL)provideAPIKey:(NSString *)APIKey;
+
+/**
+ * Returns the open source software license information for Google Maps SDK for
+ * iOS. This information must be made available within your application.
+ */
++ (NSString *)openSourceLicenseInfo;
+
+/**
+ * Returns the version for this release of the Google Maps SDK for iOS.
+ */
++ (NSString *)SDKVersion;
+
+@end
+
+GMS_ASSUME_NONNULL_END
diff --git a/Sample-Carthage/Carthage/Checkouts/PXGoogleDirections/Dependencies/GoogleMaps.framework/Versions/A/Headers/GMSSyncTileLayer.h b/Sample-Carthage/Carthage/Checkouts/PXGoogleDirections/Dependencies/GoogleMaps.framework/Versions/A/Headers/GMSSyncTileLayer.h
new file mode 100755
index 0000000..43fdb0a
--- /dev/null
+++ b/Sample-Carthage/Carthage/Checkouts/PXGoogleDirections/Dependencies/GoogleMaps.framework/Versions/A/Headers/GMSSyncTileLayer.h
@@ -0,0 +1,39 @@
+//
+// GMSSyncTileLayer.h
+// Google Maps SDK for iOS
+//
+// Copyright 2013 Google Inc.
+//
+// Usage of this SDK is subject to the Google Maps/Google Earth APIs Terms of
+// Service: https://developers.google.com/maps/terms
+//
+
+#import
+
+#if __has_feature(modules)
+@import GoogleMapsBase;
+#else
+#import
+#endif
+
+GMS_ASSUME_NONNULL_BEGIN
+
+/**
+ * GMSSyncTileLayer is an abstract subclass of GMSTileLayer that provides a sync
+ * interface to generate image tile data.
+ */
+@interface GMSSyncTileLayer : GMSTileLayer
+
+/**
+ * As per requestTileForX:y:zoom:receiver: on GMSTileLayer, but provides a
+ * synchronous interface to return tiles. This method may block or otherwise
+ * perform work, and is not called on the main thread.
+ *
+ * Calls to this method may also be made from multiple threads so
+ * implementations must be threadsafe.
+ */
+- (UIImage *GMS_NULLABLE_PTR)tileForX:(NSUInteger)x y:(NSUInteger)y zoom:(NSUInteger)zoom;
+
+@end
+
+GMS_ASSUME_NONNULL_END
diff --git a/Sample-Carthage/Carthage/Checkouts/PXGoogleDirections/Dependencies/GoogleMaps.framework/Versions/A/Headers/GMSTileLayer.h b/Sample-Carthage/Carthage/Checkouts/PXGoogleDirections/Dependencies/GoogleMaps.framework/Versions/A/Headers/GMSTileLayer.h
new file mode 100755
index 0000000..566a82d
--- /dev/null
+++ b/Sample-Carthage/Carthage/Checkouts/PXGoogleDirections/Dependencies/GoogleMaps.framework/Versions/A/Headers/GMSTileLayer.h
@@ -0,0 +1,113 @@
+//
+// GMSTileLayer.h
+// Google Maps SDK for iOS
+//
+// Copyright 2013 Google Inc.
+//
+// Usage of this SDK is subject to the Google Maps/Google Earth APIs Terms of
+// Service: https://developers.google.com/maps/terms
+//
+
+#if __has_feature(modules)
+@import GoogleMapsBase;
+#else
+#import
+#endif
+
+@class GMSMapView;
+
+GMS_ASSUME_NONNULL_BEGIN
+
+/**
+ * Stub tile that is used to indicate that no tile exists for a specific tile
+ * coordinate. May be returned by tileForX:y:zoom: on GMSTileProvider.
+ */
+FOUNDATION_EXTERN UIImage *const kGMSTileLayerNoTile;
+
+/**
+ * GMSTileReceiver is provided to GMSTileLayer when a tile request is made,
+ * allowing the callback to be later (or immediately) invoked.
+ */
+@protocol GMSTileReceiver
+- (void)receiveTileWithX:(NSUInteger)x
+ y:(NSUInteger)y
+ zoom:(NSUInteger)zoom
+ image:(UIImage *GMS_NULLABLE_PTR)image;
+@end
+
+/**
+ * GMSTileLayer is an abstract class that allows overlaying of custom image
+ * tiles on a specified GMSMapView. It may not be initialized directly, and
+ * subclasses must implement the tileForX:y:zoom: method to return tiles.
+ *
+ * At zoom level 0 the whole world is a square covered by a single tile,
+ * and the coordinates |x| and |y| are both 0 for that tile. At zoom level 1,
+ * the world is covered by 4 tiles with |x| and |y| being 0 or 1, and so on.
+ */
+@interface GMSTileLayer : NSObject
+
+/**
+ * requestTileForX:y:zoom:receiver: generates image tiles for GMSTileOverlay.
+ * It must be overridden by subclasses. The tile for the given |x|, |y| and
+ * |zoom| _must_ be later passed to |receiver|.
+ *
+ * Specify kGMSTileLayerNoTile if no tile is available for this location; or
+ * nil if a transient error occured and a tile may be available later.
+ *
+ * Calls to this method will be made on the main thread. See GMSSyncTileLayer
+ * for a base class that implements a blocking tile layer that does not run on
+ * your application's main thread.
+ */
+- (void)requestTileForX:(NSUInteger)x
+ y:(NSUInteger)y
+ zoom:(NSUInteger)zoom
+ receiver:(id)receiver;
+
+/**
+ * Clears the cache so that all tiles will be requested again.
+ */
+- (void)clearTileCache;
+
+/**
+ * The map this GMSTileOverlay is displayed on. Setting this property will add
+ * the layer to the map. Setting it to nil removes this layer from the map. A
+ * layer may be active on at most one map at any given time.
+ */
+@property(nonatomic, weak) GMSMapView *GMS_NULLABLE_PTR map;
+
+/**
+ * Higher |zIndex| value tile layers will be drawn on top of lower |zIndex|
+ * value tile layers and overlays. Equal values result in undefined draw
+ * ordering.
+ */
+@property(nonatomic, assign) int zIndex;
+
+/**
+ * Specifies the number of pixels (not points) that the returned tile images
+ * will prefer to display as. For best results, this should be the edge
+ * length of your custom tiles. Defaults to 256, which is the traditional
+ * size of Google Maps tiles.
+ *
+ * Values less than the equivalent of 128 points (e.g. 256 pixels on retina
+ * devices) may not perform well and are not recommended.
+ *
+ * As an example, an application developer may wish to provide retina tiles
+ * (512 pixel edge length) on retina devices, to keep the same number of tiles
+ * per view as the default value of 256 would give on a non-retina device.
+ */
+@property(nonatomic, assign) NSInteger tileSize;
+
+/**
+ * Specifies the opacity of the tile layer. This provides a multiplier for
+ * the alpha channel of tile images.
+ */
+@property(nonatomic, assign) float opacity;
+
+/**
+ * Specifies whether the tiles should fade in. Default YES.
+ */
+@property(nonatomic, assign) BOOL fadeIn;
+
+@end
+
+GMS_ASSUME_NONNULL_END
diff --git a/Sample-Carthage/Carthage/Checkouts/PXGoogleDirections/Dependencies/GoogleMaps.framework/Versions/A/Headers/GMSUISettings.h b/Sample-Carthage/Carthage/Checkouts/PXGoogleDirections/Dependencies/GoogleMaps.framework/Versions/A/Headers/GMSUISettings.h
new file mode 100755
index 0000000..40b1f78
--- /dev/null
+++ b/Sample-Carthage/Carthage/Checkouts/PXGoogleDirections/Dependencies/GoogleMaps.framework/Versions/A/Headers/GMSUISettings.h
@@ -0,0 +1,94 @@
+//
+// GMSUISettings.h
+// Google Maps SDK for iOS
+//
+// Copyright 2013 Google Inc.
+//
+// Usage of this SDK is subject to the Google Maps/Google Earth APIs Terms of
+// Service: https://developers.google.com/maps/terms
+//
+
+/** Settings for the user interface of a GMSMapView. */
+@interface GMSUISettings : NSObject
+
+/**
+ * Sets the preference for whether all gestures should be enabled (default) or
+ * disabled. This doesn't restrict users from tapping any on screen buttons to
+ * move the camera (e.g., compass or zoom controls), nor does it restrict
+ * programmatic movements and animation.
+ */
+- (void)setAllGesturesEnabled:(BOOL)enabled;
+
+/**
+ * Controls whether scroll gestures are enabled (default) or disabled. If
+ * enabled, users may drag to pan the camera. This does not limit programmatic
+ * movement of the camera.
+ */
+@property(nonatomic, assign) BOOL scrollGestures;
+
+/**
+ * Controls whether zoom gestures are enabled (default) or disabled. If
+ * enabled, users may double tap/two-finger tap or pinch to zoom the camera.
+ * This does not limit programmatic movement of the camera.
+ */
+@property(nonatomic, assign) BOOL zoomGestures;
+
+/**
+ * Controls whether tilt gestures are enabled (default) or disabled. If enabled,
+ * users may use a two-finger vertical down or up swipe to tilt the camera. This
+ * does not limit programmatic control of the camera's viewingAngle.
+ */
+@property(nonatomic, assign) BOOL tiltGestures;
+
+/**
+ * Controls whether rotate gestures are enabled (default) or disabled. If
+ * enabled, users may use a two-finger rotate gesture to rotate the camera. This
+ * does not limit programmatic control of the camera's bearing.
+ */
+@property(nonatomic, assign) BOOL rotateGestures;
+
+/**
+ * Controls whether gestures by users are completely consumed by the GMSMapView
+ * when gestures are enabled (default YES). This prevents these gestures from
+ * being received by parent views.
+ *
+ * When the GMSMapView is contained by a UIScrollView (or other scrollable area),
+ * this means that gestures on the map will not be additional consumed as scroll
+ * gestures. However, disabling this (set to NO) may be useful to support
+ * complex view hierarchies or requirements.
+ */
+@property(nonatomic, assign) BOOL consumesGesturesInView;
+
+/**
+ * Enables or disables the compass. The compass is an icon on the map that
+ * indicates the direction of north on the map.
+ *
+ * If enabled, it is only shown when the camera is rotated away from its default
+ * orientation (bearing of 0). When a user taps the compass, the camera orients
+ * itself to its default orientation and fades away shortly after. If disabled,
+ * the compass will never be displayed.
+ */
+@property(nonatomic, assign) BOOL compassButton;
+
+/**
+ * Enables or disables the My Location button. This is a button visible on the
+ * map that, when tapped by users, will center the map on the current user
+ * location.
+ */
+@property(nonatomic, assign) BOOL myLocationButton;
+
+/**
+ * Enables (default) or disables the indoor floor picker. If enabled, it is only
+ * visible when the view is focused on a building with indoor floor data.
+ * If disabled, the selected floor can still be controlled programmatically via
+ * the indoorDisplay mapView property.
+ */
+@property(nonatomic, assign) BOOL indoorPicker;
+
+/**
+ * Controls whether rotate and zoom gestures can be performed off-center and scrolled around
+ * (default YES).
+ */
+@property(nonatomic, assign) BOOL allowScrollGesturesDuringRotateOrZoom;
+
+@end
diff --git a/Sample-Carthage/Carthage/Checkouts/PXGoogleDirections/Dependencies/GoogleMaps.framework/Versions/A/Headers/GMSURLTileLayer.h b/Sample-Carthage/Carthage/Checkouts/PXGoogleDirections/Dependencies/GoogleMaps.framework/Versions/A/Headers/GMSURLTileLayer.h
new file mode 100755
index 0000000..058bba8
--- /dev/null
+++ b/Sample-Carthage/Carthage/Checkouts/PXGoogleDirections/Dependencies/GoogleMaps.framework/Versions/A/Headers/GMSURLTileLayer.h
@@ -0,0 +1,61 @@
+//
+// GMSURLTileLayer.h
+// Google Maps SDK for iOS
+//
+// Copyright 2013 Google Inc.
+//
+// Usage of this SDK is subject to the Google Maps/Google Earth APIs Terms of
+// Service: https://developers.google.com/maps/terms
+//
+
+#import
+
+#if __has_feature(modules)
+@import GoogleMapsBase;
+#else
+#import
+#endif
+
+@class NSURL;
+
+GMS_ASSUME_NONNULL_BEGIN
+
+/**
+ * |GMSTileURLConstructor| is a block taking |x|, |y| and |zoom|
+ * and returning an NSURL, or nil to indicate no tile for that location.
+ */
+typedef NSURL *GMS_NULLABLE_PTR (^GMSTileURLConstructor)(NSUInteger x, NSUInteger y,
+ NSUInteger zoom);
+
+/**
+ * GMSURLTileProvider fetches tiles based on the URLs returned from a
+ * GMSTileURLConstructor. For example:
+ *