diff --git a/core/composer.lock b/core/composer.lock
index efa5529..37a7b7b 100644
--- a/core/composer.lock
+++ b/core/composer.lock
@@ -1,7 +1,7 @@
 {
     "_readme": [
         "This file locks the dependencies of your project to a known state",
-        "Read more about it at http://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file",
+        "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file",
         "This file is @generated automatically"
     ],
     "hash": "ba1a97bf2c0bcef4fb771231a4c1fbdb",
@@ -783,26 +783,26 @@
         },
         {
             "name": "guzzlehttp/guzzle",
-            "version": "5.2.0",
+            "version": "5.3.0",
             "source": {
                 "type": "git",
                 "url": "https://github.com/guzzle/guzzle.git",
-                "reference": "475b29ccd411f2fa8a408e64576418728c032cfa"
+                "reference": "f3c8c22471cb55475105c14769644a49c3262b93"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/guzzle/guzzle/zipball/475b29ccd411f2fa8a408e64576418728c032cfa",
-                "reference": "475b29ccd411f2fa8a408e64576418728c032cfa",
+                "url": "https://api.github.com/repos/guzzle/guzzle/zipball/f3c8c22471cb55475105c14769644a49c3262b93",
+                "reference": "f3c8c22471cb55475105c14769644a49c3262b93",
                 "shasum": ""
             },
             "require": {
-                "guzzlehttp/ringphp": "~1.0",
+                "guzzlehttp/ringphp": "^1.1",
                 "php": ">=5.4.0"
             },
             "require-dev": {
                 "ext-curl": "*",
-                "phpunit/phpunit": "~4.0",
-                "psr/log": "~1.0"
+                "phpunit/phpunit": "^4.0",
+                "psr/log": "^1.0"
             },
             "type": "library",
             "extra": {
@@ -837,20 +837,20 @@
                 "rest",
                 "web service"
             ],
-            "time": "2015-01-28 01:03:29"
+            "time": "2015-05-20 03:47:55"
         },
         {
             "name": "guzzlehttp/ringphp",
-            "version": "1.0.7",
+            "version": "1.1.0",
             "source": {
                 "type": "git",
                 "url": "https://github.com/guzzle/RingPHP.git",
-                "reference": "52d868f13570a9a56e5fce6614e0ec75d0f13ac2"
+                "reference": "dbbb91d7f6c191e5e405e900e3102ac7f261bc0b"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/guzzle/RingPHP/zipball/52d868f13570a9a56e5fce6614e0ec75d0f13ac2",
-                "reference": "52d868f13570a9a56e5fce6614e0ec75d0f13ac2",
+                "url": "https://api.github.com/repos/guzzle/RingPHP/zipball/dbbb91d7f6c191e5e405e900e3102ac7f261bc0b",
+                "reference": "dbbb91d7f6c191e5e405e900e3102ac7f261bc0b",
                 "shasum": ""
             },
             "require": {
@@ -868,7 +868,7 @@
             "type": "library",
             "extra": {
                 "branch-alias": {
-                    "dev-master": "1.0-dev"
+                    "dev-master": "1.1-dev"
                 }
             },
             "autoload": {
@@ -888,7 +888,7 @@
                 }
             ],
             "description": "Provides a simple API and specification that abstracts away the details of HTTP into a single PHP function.",
-            "time": "2015-03-30 01:43:20"
+            "time": "2015-05-20 03:37:09"
         },
         {
             "name": "guzzlehttp/streams",
@@ -2900,7 +2900,7 @@
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/symfony/Validator/zipball/6bb1b474d25cb80617d8da6cb14c955ba914e495",
+                "url": "https://api.github.com/repos/symfony/Validator/zipball/d667b6a563e233b24ae1599a9fde7a53ddd1c055",
                 "reference": "6bb1b474d25cb80617d8da6cb14c955ba914e495",
                 "shasum": ""
             },
@@ -3073,12 +3073,12 @@
             "version": "2.4.0",
             "source": {
                 "type": "git",
-                "url": "https://github.com/zendframework/Component_ZendEscaper.git",
+                "url": "https://github.com/zendframework/zend-escaper.git",
                 "reference": "65b3328627362b0be1d5e9067bc846511d1fbc96"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/zendframework/Component_ZendEscaper/zipball/65b3328627362b0be1d5e9067bc846511d1fbc96",
+                "url": "https://api.github.com/repos/zendframework/zend-escaper/zipball/15e5769e4fcdb4bf07ebd76500810e7070e23a97",
                 "reference": "65b3328627362b0be1d5e9067bc846511d1fbc96",
                 "shasum": ""
             },
@@ -3113,12 +3113,12 @@
             "version": "2.4.0",
             "source": {
                 "type": "git",
-                "url": "https://github.com/zendframework/Component_ZendFeed.git",
+                "url": "https://github.com/zendframework/zend-feed.git",
                 "reference": "aca2b42ecf06d94c621e3c3be8e95d61d3a79bf5"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/zendframework/Component_ZendFeed/zipball/aca2b42ecf06d94c621e3c3be8e95d61d3a79bf5",
+                "url": "https://api.github.com/repos/zendframework/zend-feed/zipball/0f59e560364f1f1fcb09a96874328ae3ff690db2",
                 "reference": "aca2b42ecf06d94c621e3c3be8e95d61d3a79bf5",
                 "shasum": ""
             },
@@ -3170,12 +3170,12 @@
             "version": "2.4.0",
             "source": {
                 "type": "git",
-                "url": "https://github.com/zendframework/Component_ZendStdlib.git",
+                "url": "https://github.com/zendframework/zend-stdlib.git",
                 "reference": "eab586f4c18af3fa63c977611939f1f4a3cf1030"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/zendframework/Component_ZendStdlib/zipball/eab586f4c18af3fa63c977611939f1f4a3cf1030",
+                "url": "https://api.github.com/repos/zendframework/zend-stdlib/zipball/cf05c5ba75606e47ffee91cedc72778da46f74c3",
                 "reference": "eab586f4c18af3fa63c977611939f1f4a3cf1030",
                 "shasum": ""
             },
diff --git a/core/vendor/composer/installed.json b/core/vendor/composer/installed.json
index caf7426..c2eca41 100644
--- a/core/vendor/composer/installed.json
+++ b/core/vendor/composer/installed.json
@@ -1352,119 +1352,6 @@
         ]
     },
     {
-        "name": "guzzlehttp/guzzle",
-        "version": "5.2.0",
-        "version_normalized": "5.2.0.0",
-        "source": {
-            "type": "git",
-            "url": "https://github.com/guzzle/guzzle.git",
-            "reference": "475b29ccd411f2fa8a408e64576418728c032cfa"
-        },
-        "dist": {
-            "type": "zip",
-            "url": "https://api.github.com/repos/guzzle/guzzle/zipball/475b29ccd411f2fa8a408e64576418728c032cfa",
-            "reference": "475b29ccd411f2fa8a408e64576418728c032cfa",
-            "shasum": ""
-        },
-        "require": {
-            "guzzlehttp/ringphp": "~1.0",
-            "php": ">=5.4.0"
-        },
-        "require-dev": {
-            "ext-curl": "*",
-            "phpunit/phpunit": "~4.0",
-            "psr/log": "~1.0"
-        },
-        "time": "2015-01-28 01:03:29",
-        "type": "library",
-        "extra": {
-            "branch-alias": {
-                "dev-master": "5.0-dev"
-            }
-        },
-        "installation-source": "dist",
-        "autoload": {
-            "psr-4": {
-                "GuzzleHttp\\": "src/"
-            }
-        },
-        "notification-url": "https://packagist.org/downloads/",
-        "license": [
-            "MIT"
-        ],
-        "authors": [
-            {
-                "name": "Michael Dowling",
-                "email": "mtdowling@gmail.com",
-                "homepage": "https://github.com/mtdowling"
-            }
-        ],
-        "description": "Guzzle is a PHP HTTP client library and framework for building RESTful web service clients",
-        "homepage": "http://guzzlephp.org/",
-        "keywords": [
-            "client",
-            "curl",
-            "framework",
-            "http",
-            "http client",
-            "rest",
-            "web service"
-        ]
-    },
-    {
-        "name": "guzzlehttp/ringphp",
-        "version": "1.0.7",
-        "version_normalized": "1.0.7.0",
-        "source": {
-            "type": "git",
-            "url": "https://github.com/guzzle/RingPHP.git",
-            "reference": "52d868f13570a9a56e5fce6614e0ec75d0f13ac2"
-        },
-        "dist": {
-            "type": "zip",
-            "url": "https://api.github.com/repos/guzzle/RingPHP/zipball/52d868f13570a9a56e5fce6614e0ec75d0f13ac2",
-            "reference": "52d868f13570a9a56e5fce6614e0ec75d0f13ac2",
-            "shasum": ""
-        },
-        "require": {
-            "guzzlehttp/streams": "~3.0",
-            "php": ">=5.4.0",
-            "react/promise": "~2.0"
-        },
-        "require-dev": {
-            "ext-curl": "*",
-            "phpunit/phpunit": "~4.0"
-        },
-        "suggest": {
-            "ext-curl": "Guzzle will use specific adapters if cURL is present"
-        },
-        "time": "2015-03-30 01:43:20",
-        "type": "library",
-        "extra": {
-            "branch-alias": {
-                "dev-master": "1.0-dev"
-            }
-        },
-        "installation-source": "dist",
-        "autoload": {
-            "psr-4": {
-                "GuzzleHttp\\Ring\\": "src/"
-            }
-        },
-        "notification-url": "https://packagist.org/downloads/",
-        "license": [
-            "MIT"
-        ],
-        "authors": [
-            {
-                "name": "Michael Dowling",
-                "email": "mtdowling@gmail.com",
-                "homepage": "https://github.com/mtdowling"
-            }
-        ],
-        "description": "Provides a simple API and specification that abstracts away the details of HTTP into a single PHP function."
-    },
-    {
         "name": "symfony/class-loader",
         "version": "v2.6.6",
         "version_normalized": "2.6.6.0",
@@ -2304,12 +2191,12 @@
         "version_normalized": "2.4.0.0",
         "source": {
             "type": "git",
-            "url": "https://github.com/zendframework/Component_ZendStdlib.git",
+            "url": "https://github.com/zendframework/zend-stdlib.git",
             "reference": "eab586f4c18af3fa63c977611939f1f4a3cf1030"
         },
         "dist": {
             "type": "zip",
-            "url": "https://api.github.com/repos/zendframework/Component_ZendStdlib/zipball/eab586f4c18af3fa63c977611939f1f4a3cf1030",
+            "url": "https://api.github.com/repos/zendframework/zend-stdlib/zipball/cf05c5ba75606e47ffee91cedc72778da46f74c3",
             "reference": "eab586f4c18af3fa63c977611939f1f4a3cf1030",
             "shasum": ""
         },
@@ -2358,12 +2245,12 @@
         "version_normalized": "2.4.0.0",
         "source": {
             "type": "git",
-            "url": "https://github.com/zendframework/Component_ZendEscaper.git",
+            "url": "https://github.com/zendframework/zend-escaper.git",
             "reference": "65b3328627362b0be1d5e9067bc846511d1fbc96"
         },
         "dist": {
             "type": "zip",
-            "url": "https://api.github.com/repos/zendframework/Component_ZendEscaper/zipball/65b3328627362b0be1d5e9067bc846511d1fbc96",
+            "url": "https://api.github.com/repos/zendframework/zend-escaper/zipball/15e5769e4fcdb4bf07ebd76500810e7070e23a97",
             "reference": "65b3328627362b0be1d5e9067bc846511d1fbc96",
             "shasum": ""
         },
@@ -2400,12 +2287,12 @@
         "version_normalized": "2.4.0.0",
         "source": {
             "type": "git",
-            "url": "https://github.com/zendframework/Component_ZendFeed.git",
+            "url": "https://github.com/zendframework/zend-feed.git",
             "reference": "aca2b42ecf06d94c621e3c3be8e95d61d3a79bf5"
         },
         "dist": {
             "type": "zip",
-            "url": "https://api.github.com/repos/zendframework/Component_ZendFeed/zipball/aca2b42ecf06d94c621e3c3be8e95d61d3a79bf5",
+            "url": "https://api.github.com/repos/zendframework/zend-feed/zipball/0f59e560364f1f1fcb09a96874328ae3ff690db2",
             "reference": "aca2b42ecf06d94c621e3c3be8e95d61d3a79bf5",
             "shasum": ""
         },
@@ -3264,7 +3151,7 @@
         },
         "dist": {
             "type": "zip",
-            "url": "https://api.github.com/repos/symfony/Validator/zipball/6bb1b474d25cb80617d8da6cb14c955ba914e495",
+            "url": "https://api.github.com/repos/symfony/Validator/zipball/d667b6a563e233b24ae1599a9fde7a53ddd1c055",
             "reference": "6bb1b474d25cb80617d8da6cb14c955ba914e495",
             "shasum": ""
         },
@@ -3325,5 +3212,118 @@
         ],
         "description": "Symfony Validator Component",
         "homepage": "https://symfony.com"
+    },
+    {
+        "name": "guzzlehttp/ringphp",
+        "version": "1.1.0",
+        "version_normalized": "1.1.0.0",
+        "source": {
+            "type": "git",
+            "url": "https://github.com/guzzle/RingPHP.git",
+            "reference": "dbbb91d7f6c191e5e405e900e3102ac7f261bc0b"
+        },
+        "dist": {
+            "type": "zip",
+            "url": "https://api.github.com/repos/guzzle/RingPHP/zipball/dbbb91d7f6c191e5e405e900e3102ac7f261bc0b",
+            "reference": "dbbb91d7f6c191e5e405e900e3102ac7f261bc0b",
+            "shasum": ""
+        },
+        "require": {
+            "guzzlehttp/streams": "~3.0",
+            "php": ">=5.4.0",
+            "react/promise": "~2.0"
+        },
+        "require-dev": {
+            "ext-curl": "*",
+            "phpunit/phpunit": "~4.0"
+        },
+        "suggest": {
+            "ext-curl": "Guzzle will use specific adapters if cURL is present"
+        },
+        "time": "2015-05-20 03:37:09",
+        "type": "library",
+        "extra": {
+            "branch-alias": {
+                "dev-master": "1.1-dev"
+            }
+        },
+        "installation-source": "dist",
+        "autoload": {
+            "psr-4": {
+                "GuzzleHttp\\Ring\\": "src/"
+            }
+        },
+        "notification-url": "https://packagist.org/downloads/",
+        "license": [
+            "MIT"
+        ],
+        "authors": [
+            {
+                "name": "Michael Dowling",
+                "email": "mtdowling@gmail.com",
+                "homepage": "https://github.com/mtdowling"
+            }
+        ],
+        "description": "Provides a simple API and specification that abstracts away the details of HTTP into a single PHP function."
+    },
+    {
+        "name": "guzzlehttp/guzzle",
+        "version": "5.3.0",
+        "version_normalized": "5.3.0.0",
+        "source": {
+            "type": "git",
+            "url": "https://github.com/guzzle/guzzle.git",
+            "reference": "f3c8c22471cb55475105c14769644a49c3262b93"
+        },
+        "dist": {
+            "type": "zip",
+            "url": "https://api.github.com/repos/guzzle/guzzle/zipball/f3c8c22471cb55475105c14769644a49c3262b93",
+            "reference": "f3c8c22471cb55475105c14769644a49c3262b93",
+            "shasum": ""
+        },
+        "require": {
+            "guzzlehttp/ringphp": "^1.1",
+            "php": ">=5.4.0"
+        },
+        "require-dev": {
+            "ext-curl": "*",
+            "phpunit/phpunit": "^4.0",
+            "psr/log": "^1.0"
+        },
+        "time": "2015-05-20 03:47:55",
+        "type": "library",
+        "extra": {
+            "branch-alias": {
+                "dev-master": "5.0-dev"
+            }
+        },
+        "installation-source": "dist",
+        "autoload": {
+            "psr-4": {
+                "GuzzleHttp\\": "src/"
+            }
+        },
+        "notification-url": "https://packagist.org/downloads/",
+        "license": [
+            "MIT"
+        ],
+        "authors": [
+            {
+                "name": "Michael Dowling",
+                "email": "mtdowling@gmail.com",
+                "homepage": "https://github.com/mtdowling"
+            }
+        ],
+        "description": "Guzzle is a PHP HTTP client library and framework for building RESTful web service clients",
+        "homepage": "http://guzzlephp.org/",
+        "keywords": [
+            "client",
+            "curl",
+            "framework",
+            "http",
+            "http client",
+            "rest",
+            "web service"
+        ]
     }
 ]
diff --git a/core/vendor/guzzlehttp/guzzle/.editorconfig b/core/vendor/guzzlehttp/guzzle/.editorconfig
new file mode 100644
index 0000000..eab48cc
--- /dev/null
+++ b/core/vendor/guzzlehttp/guzzle/.editorconfig
@@ -0,0 +1,11 @@
+# EditorConfig is awesome: http://EditorConfig.org
+
+# top-most EditorConfig file
+root = true
+
+# Unix-style newlines with a newline ending for every file
+# Indent with 4 spaces
+[php]
+end_of_line = lf
+indent_style = space
+indent_size = 4
diff --git a/core/vendor/guzzlehttp/guzzle/.travis.yml b/core/vendor/guzzlehttp/guzzle/.travis.yml
index 77bcf4a..55ec892 100644
--- a/core/vendor/guzzlehttp/guzzle/.travis.yml
+++ b/core/vendor/guzzlehttp/guzzle/.travis.yml
@@ -4,6 +4,7 @@ php:
   - 5.4
   - 5.5
   - 5.6
+  - 7.0
   - hhvm
 
 before_script:
@@ -20,6 +21,7 @@ script: make test
 matrix:
   allow_failures:
     - php: hhvm
+    - php: 7.0
   fast_finish: true
 
 before_deploy:
diff --git a/core/vendor/guzzlehttp/guzzle/CHANGELOG.md b/core/vendor/guzzlehttp/guzzle/CHANGELOG.md
index caafb42..b46278b 100644
--- a/core/vendor/guzzlehttp/guzzle/CHANGELOG.md
+++ b/core/vendor/guzzlehttp/guzzle/CHANGELOG.md
@@ -1,5 +1,15 @@
 # CHANGELOG
 
+## 5.3.0 - 2015-05-19
+
+* Mock now supports `save_to`
+* Marked `AbstractRequestEvent::getTransaction()` as public.
+* Fixed a bug in which multiple headers using different casing would overwrite
+  previous headers in the associative array.
+* Added `Utils::getDefaultHandler()`
+* Marked `GuzzleHttp\Client::getDefaultUserAgent` as deprecated.
+* URL scheme is now always lowercased.
+
 ## 5.2.0 - 2015-01-27
 
 * Added `AppliesHeadersInterface` to make applying headers to a request based
diff --git a/core/vendor/guzzlehttp/guzzle/README.md b/core/vendor/guzzlehttp/guzzle/README.md
index 9df6981..d41e7e7 100644
--- a/core/vendor/guzzlehttp/guzzle/README.md
+++ b/core/vendor/guzzlehttp/guzzle/README.md
@@ -1,7 +1,7 @@
 Guzzle, PHP HTTP client and webservice framework
 ================================================
 
-[![Build Status](https://secure.travis-ci.org/guzzle/guzzle.png?branch=master)](http://travis-ci.org/guzzle/guzzle)
+[![Build Status](https://secure.travis-ci.org/guzzle/guzzle.svg?branch=master)](http://travis-ci.org/guzzle/guzzle)
 
 Guzzle is a PHP HTTP client that makes it easy to send HTTP requests and
 trivial to integrate with web services.
@@ -55,7 +55,7 @@ curl -sS https://getcomposer.org/installer | php
 Next, run the Composer command to install the latest stable version of Guzzle:
 
 ```bash
-composer require guzzlehttp/guzzle
+composer.phar require guzzlehttp/guzzle
 ```
 
 After installing, you need to require Composer's autoloader:
diff --git a/core/vendor/guzzlehttp/guzzle/UPGRADING.md b/core/vendor/guzzlehttp/guzzle/UPGRADING.md
index ee8c39d..2b3877f 100644
--- a/core/vendor/guzzlehttp/guzzle/UPGRADING.md
+++ b/core/vendor/guzzlehttp/guzzle/UPGRADING.md
@@ -6,7 +6,7 @@ Guzzle Upgrade Guide
 
 ## Rewritten Adapter Layer
 
-Guzzle now uses `RingPHP <http://ringphp.readthedocs.org/en/latest/>`_ to send
+Guzzle now uses [RingPHP](http://ringphp.readthedocs.org/en/latest) to send
 HTTP requests. The `adapter` option in a `GuzzleHttp\Client` constructor
 is still supported, but it has now been renamed to `handler`. Instead of
 passing a `GuzzleHttp\Adapter\AdapterInterface`, you must now pass a PHP
@@ -14,7 +14,7 @@ passing a `GuzzleHttp\Adapter\AdapterInterface`, you must now pass a PHP
 
 ## Removed Fluent Interfaces
 
-`Fluent interfaces were removed <http://ocramius.github.io/blog/fluent-interfaces-are-evil/>`_
+[Fluent interfaces were removed](http://ocramius.github.io/blog/fluent-interfaces-are-evil)
 from the following classes:
 
 - `GuzzleHttp\Collection`
@@ -35,7 +35,7 @@ functions can be used as replacements.
   deprecated in favor of using `GuzzleHttp\Pool::batch()`.
 
 The "procedural" global client has been removed with no replacement (e.g.,
-`GuzzleHttp\get()`, `GuzzleHttp\post()`, etc.). Use a `GuzzleHttl\Client`
+`GuzzleHttp\get()`, `GuzzleHttp\post()`, etc.). Use a `GuzzleHttp\Client`
 object as a replacement.
 
 ## `throwImmediately` has been removed
diff --git a/core/vendor/guzzlehttp/guzzle/composer.json b/core/vendor/guzzlehttp/guzzle/composer.json
index e9615a0..6ec7dad 100644
--- a/core/vendor/guzzlehttp/guzzle/composer.json
+++ b/core/vendor/guzzlehttp/guzzle/composer.json
@@ -14,12 +14,12 @@
     ],
     "require": {
         "php": ">=5.4.0",
-        "guzzlehttp/ringphp": "~1.0"
+        "guzzlehttp/ringphp": "^1.1"
     },
     "require-dev": {
         "ext-curl": "*",
-        "psr/log": "~1.0",
-        "phpunit/phpunit": "~4.0"
+        "psr/log": "^1.0",
+        "phpunit/phpunit": "^4.0"
     },
     "autoload": {
         "psr-4": {
diff --git a/core/vendor/guzzlehttp/guzzle/docs/clients.rst b/core/vendor/guzzlehttp/guzzle/docs/clients.rst
index 0614a25..35a9806 100644
--- a/core/vendor/guzzlehttp/guzzle/docs/clients.rst
+++ b/core/vendor/guzzlehttp/guzzle/docs/clients.rst
@@ -26,8 +26,19 @@ base_url
         // Send a request to https://github.com/notifications
         $response = $client->get('/notifications');
 
-    `Absolute URLs <http://tools.ietf.org/html/rfc3986#section-4.3>`_ sent
-    through a client will not use the base URL of the client.
+    Don't feel like reading RFC 3986? Here are some quick examples on how a
+    ``base_url`` is resolved with another URI.
+
+    =======================  ==================  ===============================
+    base_url                 URI                 Result
+    =======================  ==================  ===============================
+    ``http://foo.com``       ``/bar``            ``http://foo.com/bar``
+    ``http://foo.com/foo``   ``/bar``            ``http://foo.com/bar``
+    ``http://foo.com/foo``   ``bar``             ``http://foo.com/bar``
+    ``http://foo.com/foo/``  ``bar``             ``http://foo.com/foo/bar``
+    ``http://foo.com``       ``http://baz.com``  ``http://baz.com``
+    ``http://foo.com/?bar``  ``bar``             ``http://foo.com/bar``
+    =======================  ==================  ===============================
 
 handler
     Configures the `RingPHP handler <http://ringphp.readthedocs.org>`_
diff --git a/core/vendor/guzzlehttp/guzzle/docs/events.rst b/core/vendor/guzzlehttp/guzzle/docs/events.rst
index 647dcd0..30afdb6 100644
--- a/core/vendor/guzzlehttp/guzzle/docs/events.rst
+++ b/core/vendor/guzzlehttp/guzzle/docs/events.rst
@@ -103,11 +103,7 @@ follows:
 
     use GuzzleHttp\Event\BeforeEvent;
 
-    $emitter->on('before', function (
-        BeforeEvent $event,
-        $name,
-        EmitterInterface $emitter
-    ) {
+    $emitter->on('before', function (BeforeEvent $event, $name) {
         echo $event->getRequest();
     });
 
@@ -334,7 +330,7 @@ a ``GuzzleHttp\Event\BeforeEvent``.
     $request = $client->createRequest('GET', '/');
     $request->getEmitter()->on(
         'before',
-        function (BeforeEvent $e, $name, EmitterInterface $emitter) {
+        function (BeforeEvent $e, $name) {
             echo $name . "\n";
             // "before"
             echo $e->getRequest()->getMethod() . "\n";
diff --git a/core/vendor/guzzlehttp/guzzle/docs/testing.rst b/core/vendor/guzzlehttp/guzzle/docs/testing.rst
index e7098be..03bcc2e 100644
--- a/core/vendor/guzzlehttp/guzzle/docs/testing.rst
+++ b/core/vendor/guzzlehttp/guzzle/docs/testing.rst
@@ -75,7 +75,7 @@ subscriber maintains a history of the requests that were sent by a client.
     // Get the last request
     $lastRequest = $history->getLastRequest();
     // Get the last response
-    $lastRequest = $history->getLastResponse();
+    $lastResponse = $history->getLastResponse();
 
     // Iterate over the transactions that were sent
     foreach ($history as $transaction) {
@@ -134,7 +134,7 @@ Mock Adapter
 ============
 
 In addition to using the Mock subscriber, you can use the
-``GuzzleHttp\Ring\Client\MockAdapter`` as the handler of a client to return the
+``GuzzleHttp\Ring\Client\MockHandler`` as the handler of a client to return the
 same response over and over or return the result of a callable function.
 
 Test Web Server
diff --git a/core/vendor/guzzlehttp/guzzle/src/Client.php b/core/vendor/guzzlehttp/guzzle/src/Client.php
index f1779eb..b5ed11f 100644
--- a/core/vendor/guzzlehttp/guzzle/src/Client.php
+++ b/core/vendor/guzzlehttp/guzzle/src/Client.php
@@ -6,10 +6,6 @@
 use GuzzleHttp\Message\MessageFactoryInterface;
 use GuzzleHttp\Message\RequestInterface;
 use GuzzleHttp\Message\FutureResponse;
-use GuzzleHttp\Ring\Client\Middleware;
-use GuzzleHttp\Ring\Client\CurlMultiHandler;
-use GuzzleHttp\Ring\Client\CurlHandler;
-use GuzzleHttp\Ring\Client\StreamHandler;
 use GuzzleHttp\Ring\Core;
 use GuzzleHttp\Ring\Future\FutureInterface;
 use GuzzleHttp\Exception\RequestException;
@@ -89,75 +85,12 @@ public function __construct(array $config = [])
             } elseif (isset($config['adapter'])) {
                 $handler = $config['adapter'];
             } else {
-                $handler = static::getDefaultHandler();
+                $handler = Utils::getDefaultHandler();
             }
             $this->fsm = new RequestFsm($handler, $this->messageFactory);
         }
     }
 
-    /**
-     * Create a default handler to use based on the environment
-     *
-     * @throws \RuntimeException if no viable Handler is available.
-     */
-    public static function getDefaultHandler()
-    {
-        $default = $future = $streaming = null;
-
-        if (extension_loaded('curl')) {
-            $config = [
-                'select_timeout' => getenv('GUZZLE_CURL_SELECT_TIMEOUT') ?: 1
-            ];
-            if ($maxHandles = getenv('GUZZLE_CURL_MAX_HANDLES')) {
-                $config['max_handles'] = $maxHandles;
-            }
-            $future = new CurlMultiHandler($config);
-            if (function_exists('curl_reset')) {
-                $default = new CurlHandler();
-            }
-        }
-
-        if (ini_get('allow_url_fopen')) {
-            $streaming = new StreamHandler();
-        }
-
-        if (!($default = ($default ?: $future) ?: $streaming)) {
-            throw new \RuntimeException('Guzzle requires cURL, the '
-                . 'allow_url_fopen ini setting, or a custom HTTP handler.');
-        }
-
-        $handler = $default;
-
-        if ($streaming && $streaming !== $default) {
-            $handler = Middleware::wrapStreaming($default, $streaming);
-        }
-
-        if ($future) {
-            $handler = Middleware::wrapFuture($handler, $future);
-        }
-
-        return $handler;
-    }
-
-    /**
-     * Get the default User-Agent string to use with Guzzle
-     *
-     * @return string
-     */
-    public static function getDefaultUserAgent()
-    {
-        static $defaultAgent = '';
-        if (!$defaultAgent) {
-            $defaultAgent = 'Guzzle/' . self::VERSION;
-            if (extension_loaded('curl')) {
-                $defaultAgent .= ' curl/' . curl_version()['version'];
-            }
-            $defaultAgent .= ' PHP/' . PHP_VERSION;
-        }
-
-        return $defaultAgent;
-    }
-
     public function getDefaultOption($keyOrPath = null)
     {
         return $keyOrPath === null
@@ -345,11 +278,11 @@ private function configureDefaults($config)
         // Add the default user-agent header
         if (!isset($this->defaults['headers'])) {
             $this->defaults['headers'] = [
-                'User-Agent' => static::getDefaultUserAgent()
+                'User-Agent' => Utils::getDefaultUserAgent()
             ];
         } elseif (!Core::hasHeader($this->defaults, 'User-Agent')) {
             // Add the User-Agent header if one was not already set
-            $this->defaults['headers']['User-Agent'] = static::getDefaultUserAgent();
+            $this->defaults['headers']['User-Agent'] = Utils::getDefaultUserAgent();
         }
     }
 
@@ -400,4 +333,20 @@ public function sendAll($requests, array $options = [])
     {
         Pool::send($this, $requests, $options);
     }
+
+    /**
+     * @deprecated Use GuzzleHttp\Utils::getDefaultHandler
+     */
+    public static function getDefaultHandler()
+    {
+        return Utils::getDefaultHandler();
+    }
+
+    /**
+     * @deprecated Use GuzzleHttp\Utils::getDefaultUserAgent
+     */
+    public static function getDefaultUserAgent()
+    {
+        return Utils::getDefaultUserAgent();
+    }
 }
diff --git a/core/vendor/guzzlehttp/guzzle/src/ClientInterface.php b/core/vendor/guzzlehttp/guzzle/src/ClientInterface.php
index fac8864..63f0174 100644
--- a/core/vendor/guzzlehttp/guzzle/src/ClientInterface.php
+++ b/core/vendor/guzzlehttp/guzzle/src/ClientInterface.php
@@ -11,7 +11,7 @@
  */
 interface ClientInterface extends HasEmitterInterface
 {
-    const VERSION = '5.2.0';
+    const VERSION = '5.3.0';
 
     /**
      * Create and return a new {@see RequestInterface} object.
diff --git a/core/vendor/guzzlehttp/guzzle/src/Event/AbstractRequestEvent.php b/core/vendor/guzzlehttp/guzzle/src/Event/AbstractRequestEvent.php
index 8c8fbc9..8a6ee47 100644
--- a/core/vendor/guzzlehttp/guzzle/src/Event/AbstractRequestEvent.php
+++ b/core/vendor/guzzlehttp/guzzle/src/Event/AbstractRequestEvent.php
@@ -54,7 +54,7 @@ public function getRetryCount()
     /**
      * @return Transaction
      */
-    protected function getTransaction()
+    public function getTransaction()
     {
         return $this->transaction;
     }
diff --git a/core/vendor/guzzlehttp/guzzle/src/Event/Emitter.php b/core/vendor/guzzlehttp/guzzle/src/Event/Emitter.php
index 536317a..4e44f45 100644
--- a/core/vendor/guzzlehttp/guzzle/src/Event/Emitter.php
+++ b/core/vendor/guzzlehttp/guzzle/src/Event/Emitter.php
@@ -47,7 +47,7 @@ public function once($eventName, callable $listener, $priority = 0)
             $eventName
         ) use (&$onceListener, $eventName, $listener, $priority) {
             $this->removeListener($eventName, $onceListener);
-            $listener($event, $eventName, $this);
+            $listener($event, $eventName);
         };
 
         $this->on($eventName, $onceListener, $priority);
diff --git a/core/vendor/guzzlehttp/guzzle/src/Exception/RequestException.php b/core/vendor/guzzlehttp/guzzle/src/Exception/RequestException.php
index f81d248..3f052d3 100644
--- a/core/vendor/guzzlehttp/guzzle/src/Exception/RequestException.php
+++ b/core/vendor/guzzlehttp/guzzle/src/Exception/RequestException.php
@@ -34,7 +34,7 @@ public function __construct(
     }
 
     /**
-     * Wrap non-RequesExceptions with a RequestException
+     * Wrap non-RequestExceptions with a RequestException
      *
      * @param RequestInterface $request
      * @param \Exception       $e
diff --git a/core/vendor/guzzlehttp/guzzle/src/Message/MessageFactoryInterface.php b/core/vendor/guzzlehttp/guzzle/src/Message/MessageFactoryInterface.php
index 57c43e5..86ae9c7 100644
--- a/core/vendor/guzzlehttp/guzzle/src/Message/MessageFactoryInterface.php
+++ b/core/vendor/guzzlehttp/guzzle/src/Message/MessageFactoryInterface.php
@@ -33,7 +33,7 @@ public function createResponse(
      *
      * This method accepts an associative array of request options. Below is a
      * brief description of each parameter. See
-     * http://docs.guzzlephp.org/clients.html#request-options for a much more
+     * http://docs.guzzlephp.org/en/latest/clients.html#request-options for a much more
      * in-depth description of each parameter.
      *
      * - headers: Associative array of headers to add to the request
@@ -65,7 +65,7 @@ public function createResponse(
      * @param array      $options Array of options to apply to the request
      *
      * @return RequestInterface
-     * @link http://docs.guzzlephp.org/clients.html#request-options
+     * @link http://docs.guzzlephp.org/en/latest/clients.html#request-options
      */
     public function createRequest($method, $url, array $options = []);
 }
diff --git a/core/vendor/guzzlehttp/guzzle/src/Message/Request.php b/core/vendor/guzzlehttp/guzzle/src/Message/Request.php
index 4dbe32e..38714af 100644
--- a/core/vendor/guzzlehttp/guzzle/src/Message/Request.php
+++ b/core/vendor/guzzlehttp/guzzle/src/Message/Request.php
@@ -51,7 +51,7 @@ public function __construct(
 
         if ($headers) {
             foreach ($headers as $key => $value) {
-                $this->setHeader($key, $value);
+                $this->addHeader($key, $value);
             }
         }
     }
diff --git a/core/vendor/guzzlehttp/guzzle/src/Pool.php b/core/vendor/guzzlehttp/guzzle/src/Pool.php
index 49d9940..7b9d83a 100644
--- a/core/vendor/guzzlehttp/guzzle/src/Pool.php
+++ b/core/vendor/guzzlehttp/guzzle/src/Pool.php
@@ -328,6 +328,6 @@ private function finishResponse($request, $value, $hash)
         $result = $value instanceof ResponseInterface
             ? ['request' => $request, 'response' => $value, 'error' => null]
             : ['request' => $request, 'response' => null, 'error' => $value];
-        $this->deferred->progress($result);
+        $this->deferred->notify($result);
     }
 }
diff --git a/core/vendor/guzzlehttp/guzzle/src/Subscriber/Mock.php b/core/vendor/guzzlehttp/guzzle/src/Subscriber/Mock.php
index 39a3c44..2af4d37 100644
--- a/core/vendor/guzzlehttp/guzzle/src/Subscriber/Mock.php
+++ b/core/vendor/guzzlehttp/guzzle/src/Subscriber/Mock.php
@@ -7,6 +7,7 @@
 use GuzzleHttp\Exception\RequestException;
 use GuzzleHttp\Message\MessageFactory;
 use GuzzleHttp\Message\ResponseInterface;
+use GuzzleHttp\Stream\StreamInterface;
 
 /**
  * Queues mock responses or exceptions and delivers mock responses or
@@ -60,6 +61,20 @@ public function onBefore(BeforeEvent $event)
             }
         }
 
+        $saveTo = $event->getRequest()->getConfig()->get('save_to');
+
+        if (null !== $saveTo) {
+            $body = $item->getBody();
+
+            if (is_resource($saveTo)) {
+                fwrite($saveTo, $body);
+            } elseif (is_string($saveTo)) {
+                file_put_contents($saveTo, $body);
+            } elseif ($saveTo instanceof StreamInterface) {
+                $saveTo->write($body);
+            }
+        }
+
         $event->intercept($item);
     }
 
diff --git a/core/vendor/guzzlehttp/guzzle/src/Url.php b/core/vendor/guzzlehttp/guzzle/src/Url.php
index a81bad2..637f60c 100644
--- a/core/vendor/guzzlehttp/guzzle/src/Url.php
+++ b/core/vendor/guzzlehttp/guzzle/src/Url.php
@@ -138,7 +138,7 @@ public function __construct(
         $query = null,
         $fragment = null
     ) {
-        $this->scheme = $scheme;
+        $this->scheme = strtolower($scheme);
         $this->host = $host;
         $this->port = $port;
         $this->username = $username;
@@ -234,7 +234,7 @@ public function setScheme($scheme)
             $this->port = null;
         }
 
-        $this->scheme = $scheme;
+        $this->scheme = strtolower($scheme);
     }
 
     /**
diff --git a/core/vendor/guzzlehttp/guzzle/src/Utils.php b/core/vendor/guzzlehttp/guzzle/src/Utils.php
index 285fe30..1c89661 100644
--- a/core/vendor/guzzlehttp/guzzle/src/Utils.php
+++ b/core/vendor/guzzlehttp/guzzle/src/Utils.php
@@ -1,6 +1,11 @@
 <?php
 namespace GuzzleHttp;
 
+use GuzzleHttp\Ring\Client\CurlHandler;
+use GuzzleHttp\Ring\Client\CurlMultiHandler;
+use GuzzleHttp\Ring\Client\StreamHandler;
+use GuzzleHttp\Ring\Client\Middleware;
+
 /**
  * Utility methods used throughout Guzzle.
  */
@@ -61,8 +66,14 @@ public static function getPath($data, $path)
      */
     public static function setPath(&$data, $path, $value)
     {
-        $current =& $data;
         $queue = explode('/', $path);
+        // Optimization for simple sets.
+        if (count($queue) === 1) {
+            $data[$path] = $value;
+            return;
+        }
+
+        $current =& $data;
         while (null !== ($key = array_shift($queue))) {
             if (!is_array($current)) {
                 throw new \RuntimeException("Trying to setPath {$path}, but "
@@ -142,4 +153,59 @@ public static function jsonDecode($json, $assoc = false, $depth = 512, $options
 
         return $data;
     }
+
+    /**
+     * Get the default User-Agent string to use with Guzzle
+     *
+     * @return string
+     */
+    public static function getDefaultUserAgent()
+    {
+        static $defaultAgent = '';
+        if (!$defaultAgent) {
+            $defaultAgent = 'Guzzle/' . ClientInterface::VERSION;
+            if (extension_loaded('curl')) {
+                $defaultAgent .= ' curl/' . curl_version()['version'];
+            }
+            $defaultAgent .= ' PHP/' . PHP_VERSION;
+        }
+
+        return $defaultAgent;
+    }
+
+    /**
+     * Create a default handler to use based on the environment
+     *
+     * @throws \RuntimeException if no viable Handler is available.
+     */
+    public static function getDefaultHandler()
+    {
+        $default = $future = null;
+
+        if (extension_loaded('curl')) {
+            $config = [
+                'select_timeout' => getenv('GUZZLE_CURL_SELECT_TIMEOUT') ?: 1
+            ];
+            if ($maxHandles = getenv('GUZZLE_CURL_MAX_HANDLES')) {
+                $config['max_handles'] = $maxHandles;
+            }
+            if (function_exists('curl_reset')) {
+                $default = new CurlHandler();
+                $future = new CurlMultiHandler($config);
+            } else {
+                $default = new CurlMultiHandler($config);
+            }
+        }
+
+        if (ini_get('allow_url_fopen')) {
+            $default = !$default
+                ? new StreamHandler()
+                : Middleware::wrapStreaming($default, new StreamHandler());
+        } elseif (!$default) {
+            throw new \RuntimeException('Guzzle requires cURL, the '
+                . 'allow_url_fopen ini setting, or a custom HTTP handler.');
+        }
+
+        return $future ? Middleware::wrapFuture($default, $future) : $default;
+    }
 }
diff --git a/core/vendor/guzzlehttp/guzzle/tests/ClientTest.php b/core/vendor/guzzlehttp/guzzle/tests/ClientTest.php
index 913e535..02db3eb 100644
--- a/core/vendor/guzzlehttp/guzzle/tests/ClientTest.php
+++ b/core/vendor/guzzlehttp/guzzle/tests/ClientTest.php
@@ -13,6 +13,7 @@
 use GuzzleHttp\Subscriber\History;
 use GuzzleHttp\Subscriber\Mock;
 use GuzzleHttp\Url;
+use GuzzleHttp\Utils;
 use React\Promise\Deferred;
 
 /**
@@ -30,12 +31,6 @@ public function setup()
         };
     }
 
-    public function testProvidesDefaultUserAgent()
-    {
-        $ua = Client::getDefaultUserAgent();
-        $this->assertEquals(1, preg_match('#^Guzzle/.+ curl/.+ PHP/.+$#', $ua));
-    }
-
     public function testUsesDefaultDefaultOptions()
     {
         $client = new Client();
@@ -138,7 +133,7 @@ public function testAddsDefaultUserAgentHeaderWithDefaultOptions()
         $client = new Client(['defaults' => ['allow_redirects' => false]]);
         $this->assertFalse($client->getDefaultOption('allow_redirects'));
         $this->assertEquals(
-            ['User-Agent' => Client::getDefaultUserAgent()],
+            ['User-Agent' => Utils::getDefaultUserAgent()],
             $client->getDefaultOption('headers')
         );
     }
@@ -147,7 +142,7 @@ public function testAddsDefaultUserAgentHeaderWithoutDefaultOptions()
     {
         $client = new Client();
         $this->assertEquals(
-            ['User-Agent' => Client::getDefaultUserAgent()],
+            ['User-Agent' => Utils::getDefaultUserAgent()],
             $client->getDefaultOption('headers')
         );
     }
@@ -339,6 +334,34 @@ public function testCanSetRelativeUrlStartingWithHttp()
         );
     }
 
+    /**
+     * Test that base URLs ending with a slash are resolved as per RFC3986.
+     *
+     * @link http://tools.ietf.org/html/rfc3986#section-5.2.3
+     */
+    public function testMultipleSubdirectoryWithSlash()
+    {
+        $client = new Client(['base_url' => 'http://www.foo.com/bar/bam/']);
+        $this->assertEquals(
+          'http://www.foo.com/bar/bam/httpfoo',
+          $client->createRequest('GET', 'httpfoo')->getUrl()
+        );
+    }
+
+    /**
+     * Test that base URLs ending without a slash are resolved as per RFC3986.
+     *
+     * @link http://tools.ietf.org/html/rfc3986#section-5.2.3
+     */
+    public function testMultipleSubdirectoryNoSlash()
+    {
+        $client = new Client(['base_url' => 'http://www.foo.com/bar/bam']);
+        $this->assertEquals(
+          'http://www.foo.com/bar/httpfoo',
+          $client->createRequest('GET', 'httpfoo')->getUrl()
+        );
+    }
+
     public function testClientSendsRequests()
     {
         $mock = new MockHandler(['status' => 200, 'headers' => []]);
diff --git a/core/vendor/guzzlehttp/guzzle/tests/CollectionTest.php b/core/vendor/guzzlehttp/guzzle/tests/CollectionTest.php
index d137947..8c532aa 100644
--- a/core/vendor/guzzlehttp/guzzle/tests/CollectionTest.php
+++ b/core/vendor/guzzlehttp/guzzle/tests/CollectionTest.php
@@ -252,7 +252,7 @@ public function testPreparesFromConfig()
         ), $c->toArray());
 
         try {
-            $c = Collection::fromConfig(array(), array(), array('a'));
+            Collection::fromConfig(array(), array(), array('a'));
             $this->fail('Exception not throw when missing config');
         } catch (\InvalidArgumentException $e) {
         }
diff --git a/core/vendor/guzzlehttp/guzzle/tests/Event/ListenerAttacherTraitTest.php b/core/vendor/guzzlehttp/guzzle/tests/Event/ListenerAttacherTraitTest.php
index c066788..0b5d348 100644
--- a/core/vendor/guzzlehttp/guzzle/tests/Event/ListenerAttacherTraitTest.php
+++ b/core/vendor/guzzlehttp/guzzle/tests/Event/ListenerAttacherTraitTest.php
@@ -87,6 +87,6 @@ public function testRegistersEventsWithOnce()
      */
     public function testValidatesEvents()
     {
-        $o = new ObjectWithEvents(['foo' => 'bar']);
+        new ObjectWithEvents(['foo' => 'bar']);
     }
 }
diff --git a/core/vendor/guzzlehttp/guzzle/tests/Message/MessageFactoryTest.php b/core/vendor/guzzlehttp/guzzle/tests/Message/MessageFactoryTest.php
index aa2e45e..390f010 100644
--- a/core/vendor/guzzlehttp/guzzle/tests/Message/MessageFactoryTest.php
+++ b/core/vendor/guzzlehttp/guzzle/tests/Message/MessageFactoryTest.php
@@ -352,7 +352,7 @@ public function testCanAddSubscribers()
         $mock = new Mock([new Response(200)]);
         $client = new Client();
         $client->getEmitter()->attach($mock);
-        $request = $client->get('http://test.com', ['subscribers' => [$mock]]);
+        $client->get('http://test.com', ['subscribers' => [$mock]]);
     }
 
     public function testCanDisableExceptions()
diff --git a/core/vendor/guzzlehttp/guzzle/tests/Message/RequestTest.php b/core/vendor/guzzlehttp/guzzle/tests/Message/RequestTest.php
index a6241a4..4e670a4 100644
--- a/core/vendor/guzzlehttp/guzzle/tests/Message/RequestTest.php
+++ b/core/vendor/guzzlehttp/guzzle/tests/Message/RequestTest.php
@@ -21,6 +21,18 @@ public function testConstructorInitializesMessage()
         $this->assertEquals('foo', $r->getBody());
     }
 
+    public function testConstructorInitializesMessageWithMixedCaseHeaders()
+    {
+        $r = new Request('GET', '/test', [
+            'Set-Cookie' => 'foo=bar, baz=bam',
+            'Set-cookie' => 'hi=there',
+            'other' => ['1', '2']
+        ]);
+
+        $this->assertEquals('foo=bar, baz=bam, hi=there', $r->getHeader('Set-Cookie'));
+        $this->assertEquals('1, 2', $r->getHeader('other'));
+    }
+
     public function testConstructorInitializesMessageWithProtocolVersion()
     {
         $r = new Request('GET', '', [], null, ['protocol_version' => 10]);
diff --git a/core/vendor/guzzlehttp/guzzle/tests/Subscriber/MockTest.php b/core/vendor/guzzlehttp/guzzle/tests/Subscriber/MockTest.php
index 5e82093..936edf2 100644
--- a/core/vendor/guzzlehttp/guzzle/tests/Subscriber/MockTest.php
+++ b/core/vendor/guzzlehttp/guzzle/tests/Subscriber/MockTest.php
@@ -160,6 +160,39 @@ public function testCanMockExceptionFutureResponses()
         }
     }
 
+    public function testSaveToFile()
+    {
+        $filename = sys_get_temp_dir().'/mock_test_'.uniqid();
+        $file = tmpfile();
+        $stream = new Stream(tmpfile());
+
+        $m = new Mock([
+        	new Response(200, [], Stream::factory('TEST FILENAME')),
+        	new Response(200, [], Stream::factory('TEST FILE')),
+        	new Response(200, [], Stream::factory('TEST STREAM')),
+        ]);
+
+        $client = new Client();
+        $client->getEmitter()->attach($m);
+
+        $client->get('/', ['save_to' => $filename]);
+        $client->get('/', ['save_to' => $file]);
+        $client->get('/', ['save_to' => $stream]);
+
+        $this->assertFileExists($filename);
+        $this->assertEquals('TEST FILENAME', file_get_contents($filename));
+
+        $meta = stream_get_meta_data($file);
+
+        $this->assertFileExists($meta['uri']);
+        $this->assertEquals('TEST FILE', file_get_contents($meta['uri']));
+
+        $this->assertFileExists($stream->getMetadata('uri'));
+        $this->assertEquals('TEST STREAM', file_get_contents($stream->getMetadata('uri')));
+
+        unlink($filename);
+    }
+
     public function testCanMockFailedFutureResponses()
     {
         $client = new Client(['base_url' => 'http://test.com']);
diff --git a/core/vendor/guzzlehttp/guzzle/tests/Subscriber/RedirectTest.php b/core/vendor/guzzlehttp/guzzle/tests/Subscriber/RedirectTest.php
index 293cfc2..bd12af7 100644
--- a/core/vendor/guzzlehttp/guzzle/tests/Subscriber/RedirectTest.php
+++ b/core/vendor/guzzlehttp/guzzle/tests/Subscriber/RedirectTest.php
@@ -267,6 +267,20 @@ public function testRelativeLinkBasedLatestRequest()
         );
     }
 
+    public function testUpperCaseScheme()
+    {
+        $client = new Client(['base_url' => 'http://www.foo.com']);
+        $client->getEmitter()->attach(new Mock([
+            "HTTP/1.1 301 Moved Permanently\r\nLocation: HTTP://www.bar.com\r\nContent-Length: 0\r\n\r\n",
+            "HTTP/1.1 200 OK\r\nContent-Length: 0\r\n\r\n"
+        ]));
+        $response = $client->get('/');
+        $this->assertEquals(
+            'http://www.bar.com',
+            $response->getEffectiveUrl()
+        );
+    }
+
     /**
      * @expectedException \GuzzleHttp\Exception\BadResponseException
      * @expectedExceptionMessage Redirect URL, https://foo.com/redirect2, does not use one of the allowed redirect protocols: http
diff --git a/core/vendor/guzzlehttp/guzzle/tests/UrlTest.php b/core/vendor/guzzlehttp/guzzle/tests/UrlTest.php
index efd374c..22bf7e4 100644
--- a/core/vendor/guzzlehttp/guzzle/tests/UrlTest.php
+++ b/core/vendor/guzzlehttp/guzzle/tests/UrlTest.php
@@ -353,4 +353,12 @@ public function testCorrectlyEncodesPathWithoutDoubleEncoding()
         $url = Url::fromString('http://foo.com/baz%20 bar:boo/baz!');
         $this->assertEquals('/baz%20%20bar:boo/baz!', $url->getPath());
     }
+
+    public function testLowercaseScheme()
+    {
+        $url = Url::fromString('HTTP://foo.com/');
+        $this->assertEquals('http', $url->getScheme());
+        $url->setScheme('HTTPS');
+        $this->assertEquals('https', $url->getScheme());
+    }
 }
diff --git a/core/vendor/guzzlehttp/guzzle/tests/UtilsTest.php b/core/vendor/guzzlehttp/guzzle/tests/UtilsTest.php
index d9bdc07..10bdc54 100644
--- a/core/vendor/guzzlehttp/guzzle/tests/UtilsTest.php
+++ b/core/vendor/guzzlehttp/guzzle/tests/UtilsTest.php
@@ -31,4 +31,10 @@ public function testJsonDecodesWithErrorMessages()
     {
         Utils::jsonDecode('!narf!');
     }
+
+    public function testProvidesDefaultUserAgent()
+    {
+        $ua = Utils::getDefaultUserAgent();
+        $this->assertEquals(1, preg_match('#^Guzzle/.+ curl/.+ PHP/.+$#', $ua));
+    }
 }
diff --git a/core/vendor/guzzlehttp/ringphp/CHANGELOG.md b/core/vendor/guzzlehttp/ringphp/CHANGELOG.md
index 97458da..d399d82 100644
--- a/core/vendor/guzzlehttp/ringphp/CHANGELOG.md
+++ b/core/vendor/guzzlehttp/ringphp/CHANGELOG.md
@@ -1,5 +1,15 @@
 # CHANGELOG
 
+## 1.1.0 - 2015-05-19
+
+* Added `CURL_HTTP_VERSION_2_0`
+* The PHP stream wrapper handler now sets `allow_self_signed` to `false` to
+  match the cURL handler when `verify` is set to `true` or a certificate file.
+* Ensuring that a directory exists before using the `save_to` option.
+* Response protocol version is now correctly extracted from a response.
+* Fixed a bug in which the result of `CurlFactory::retryFailedRewind` did not
+  return an array.
+
 ## 1.0.7 - 2015-03-29
 
 * PHP 7 fixes.
diff --git a/core/vendor/guzzlehttp/ringphp/composer.json b/core/vendor/guzzlehttp/ringphp/composer.json
index fcca629..22002ef 100644
--- a/core/vendor/guzzlehttp/ringphp/composer.json
+++ b/core/vendor/guzzlehttp/ringphp/composer.json
@@ -33,7 +33,7 @@
     },
     "extra": {
         "branch-alias": {
-            "dev-master": "1.0-dev"
+            "dev-master": "1.1-dev"
         }
     }
 }
diff --git a/core/vendor/guzzlehttp/ringphp/docs/client_middleware.rst b/core/vendor/guzzlehttp/ringphp/docs/client_middleware.rst
index 7c52c8a..5a2c1a8 100644
--- a/core/vendor/guzzlehttp/ringphp/docs/client_middleware.rst
+++ b/core/vendor/guzzlehttp/ringphp/docs/client_middleware.rst
@@ -39,7 +39,7 @@ composed behavior.
 
     $response = $handler([
         'http_method' => 'GET',
-        'headers'     => ['Host' => ['httpbin.org']
+        'headers'     => ['Host' => ['httpbin.org']]
     ]);
 
 Modifying Responses
@@ -87,7 +87,7 @@ incoming request and using the ``Core::proxy`` function.
 
     $response = $handler([
         'http_method' => 'GET',
-        'headers'     => ['Host' => ['httpbin.org']
+        'headers'     => ['Host' => ['httpbin.org']]
     ]);
 
     assert($response['headers']['X-Header'] == 'hello!');
@@ -121,14 +121,14 @@ middleware.
     // Send the request using the streaming handler.
     $response = $streamingHandler([
         'http_method' => 'GET',
-        'headers'     => ['Host' => ['www.google.com'],
+        'headers'     => ['Host' => ['www.google.com']],
         'stream'      => true
     ]);
 
     // Send the request using the default handler.
     $response = $streamingHandler([
         'http_method' => 'GET',
-        'headers'     => ['Host' => ['www.google.com']
+        'headers'     => ['Host' => ['www.google.com']]
     ]);
 
 Future Middleware
@@ -154,12 +154,12 @@ middleware.
     // Send the request using the blocking CurlHandler.
     $response = $futureHandler([
         'http_method' => 'GET',
-        'headers'     => ['Host' => ['www.google.com']
+        'headers'     => ['Host' => ['www.google.com']]
     ]);
 
     // Send the request using the non-blocking CurlMultiHandler.
     $response = $futureHandler([
         'http_method' => 'GET',
-        'headers'     => ['Host' => ['www.google.com'],
+        'headers'     => ['Host' => ['www.google.com']],
         'future'      => true
     ]);
diff --git a/core/vendor/guzzlehttp/ringphp/src/Client/CurlFactory.php b/core/vendor/guzzlehttp/ringphp/src/Client/CurlFactory.php
index 0377ec2..efe4659 100644
--- a/core/vendor/guzzlehttp/ringphp/src/Client/CurlFactory.php
+++ b/core/vendor/guzzlehttp/ringphp/src/Client/CurlFactory.php
@@ -80,6 +80,7 @@ public static function createResponse(
             $startLine = explode(' ', array_shift($headers), 3);
             $headerList = Core::headersFromLines($headers);
             $response['headers'] = $headerList;
+            $response['version'] = isset($startLine[0]) ? substr($startLine[0], 5) : null;
             $response['status'] = isset($startLine[1]) ? (int) $startLine[1] : null;
             $response['reason'] = isset($startLine[2]) ? $startLine[2] : null;
             $response['body'] = $body;
@@ -180,7 +181,13 @@ private function getDefaultOptions(array $request, array &$headers)
         ];
 
         if (isset($request['version'])) {
-            $options[CURLOPT_HTTP_VERSION] = $request['version'] == 1.1 ? CURL_HTTP_VERSION_1_1 : CURL_HTTP_VERSION_1_0;
+            if ($request['version'] == 2.0) {
+                $options[CURLOPT_HTTP_VERSION] = CURL_HTTP_VERSION_2_0;
+            } else if ($request['version'] == 1.1) {
+                $options[CURLOPT_HTTP_VERSION] = CURL_HTTP_VERSION_1_1;
+            } else {
+                $options[CURLOPT_HTTP_VERSION] = CURL_HTTP_VERSION_1_0;
+            }
         }
 
         if (defined('CURLOPT_PROTOCOLS')) {
@@ -388,6 +395,13 @@ private function applyHandlerOptions(array $request, array &$options)
             case 'save_to':
 
                 if (is_string($value)) {
+                    if (!is_dir(dirname($value))) {
+                        throw new \RuntimeException(sprintf(
+                            'Directory %s does not exist for save_to value of %s',
+                            dirname($value),
+                            $value
+                        ));
+                    }
                     $value = new LazyOpenStream($value, 'w+');
                 }
 
diff --git a/core/vendor/guzzlehttp/ringphp/src/Client/CurlHandler.php b/core/vendor/guzzlehttp/ringphp/src/Client/CurlHandler.php
index d8215c5..e00aa4e 100644
--- a/core/vendor/guzzlehttp/ringphp/src/Client/CurlHandler.php
+++ b/core/vendor/guzzlehttp/ringphp/src/Client/CurlHandler.php
@@ -57,8 +57,27 @@ public function __destruct()
         }
     }
 
+    /**
+     * @param array $request
+     *
+     * @return CompletedFutureArray
+     */
     public function __invoke(array $request)
     {
+        return new CompletedFutureArray(
+            $this->_invokeAsArray($request)
+        );
+    }
+
+    /**
+     * @internal
+     *
+     * @param array $request
+     *
+     * @return array
+     */
+    public function _invokeAsArray(array $request)
+    {
         $factory = $this->factory;
 
         // Ensure headers are by reference. They're updated elsewhere.
@@ -74,9 +93,7 @@ public function __invoke(array $request)
         $response['transfer_stats'] = array_merge($response['transfer_stats'], $response['curl']);
         $this->releaseEasyHandle($h);
 
-        return new CompletedFutureArray(
-            CurlFactory::createResponse($this, $request, $response, $hd, $bd)
-        );
+        return CurlFactory::createResponse([$this, '_invokeAsArray'], $request, $response, $hd, $bd);
     }
 
     private function checkoutEasyHandle()
diff --git a/core/vendor/guzzlehttp/ringphp/src/Client/StreamHandler.php b/core/vendor/guzzlehttp/ringphp/src/Client/StreamHandler.php
index 855aad7..4bacec1 100644
--- a/core/vendor/guzzlehttp/ringphp/src/Client/StreamHandler.php
+++ b/core/vendor/guzzlehttp/ringphp/src/Client/StreamHandler.php
@@ -44,6 +44,7 @@ private function createResponse(array $request, $url, $stream)
         $this->lastHeaders = null;
         $parts = explode(' ', array_shift($hdrs), 3);
         $response = [
+            'version'        => substr($parts[0], 5),
             'status'         => $parts[1],
             'reason'         => isset($parts[2]) ? $parts[2] : null,
             'headers'        => Core::headersFromLines($hdrs),
@@ -284,13 +285,14 @@ private function add_verify(array $request, &$options, $value, &$params)
             }
         } elseif ($value === false) {
             $options['ssl']['verify_peer'] = false;
+            $options['ssl']['allow_self_signed'] = true;
             return;
         } else {
             throw new RingException('Invalid verify request option');
         }
 
         $options['ssl']['verify_peer'] = true;
-        $options['ssl']['allow_self_signed'] = true;
+        $options['ssl']['allow_self_signed'] = false;
     }
 
     private function add_cert(array $request, &$options, $value, &$params)
diff --git a/core/vendor/guzzlehttp/ringphp/tests/Client/CurlFactoryTest.php b/core/vendor/guzzlehttp/ringphp/tests/Client/CurlFactoryTest.php
index 0f787c9..ebde187 100644
--- a/core/vendor/guzzlehttp/ringphp/tests/Client/CurlFactoryTest.php
+++ b/core/vendor/guzzlehttp/ringphp/tests/Client/CurlFactoryTest.php
@@ -611,6 +611,19 @@ public function testSendsPostWithNoBodyOrDefaultContentType()
         $this->assertSame('0', Core::firstHeader($received, 'content-length'));
     }
 
+    public function testParseProtocolVersion()
+    {
+        $res = CurlFactory::createResponse(
+            function () {},
+            [],
+            ['curl' => ['errno' => null]],
+            ['HTTP/1.1 200 Ok'],
+            null
+        );
+
+        $this->assertSame('1.1', $res['version']);
+    }
+
     public function testFailsWhenNoResponseAndNoBody()
     {
         $res = CurlFactory::createResponse(function () {}, [], [], [], null);
@@ -787,6 +800,22 @@ public function testMaintainsMultiHeaderOrder()
             Core::headerLines($response, 'Foo')
         );
     }
+
+    /**
+     * @expectedException \RuntimeException
+     * @expectedExceptionMessage Directory /path/to/does/not does not exist for save_to value of /path/to/does/not/exist.txt
+     */
+    public function testThrowsWhenDirNotFound()
+    {
+        $request = [
+            'http_method' => 'GET',
+            'headers' => ['host' => [Server::$url]],
+            'client' => ['save_to' => '/path/to/does/not/exist.txt'],
+        ];
+
+        $f = new CurlFactory();
+        $f($request);
+    }
 }
 
 }
diff --git a/core/vendor/guzzlehttp/ringphp/tests/Client/StreamHandlerTest.php b/core/vendor/guzzlehttp/ringphp/tests/Client/StreamHandlerTest.php
index 7549a83..3cb9a8e 100644
--- a/core/vendor/guzzlehttp/ringphp/tests/Client/StreamHandlerTest.php
+++ b/core/vendor/guzzlehttp/ringphp/tests/Client/StreamHandlerTest.php
@@ -20,6 +20,7 @@ public function testReturnsResponseForSuccessfulRequest()
             ],
         ]);
 
+        $this->assertEquals('1.1', $response['version']);
         $this->assertEquals(200, $response['status']);
         $this->assertEquals('OK', $response['reason']);
         $this->assertEquals(['Bar'], $response['headers']['Foo']);
