From d037c55eb663e713836e73d2ebf13b7f6bb6b1eb Mon Sep 17 00:00:00 2001
From: webchick <webchick@24967.no-reply.drupal.org>
Date: Wed, 16 Jan 2013 14:42:23 -0800
Subject: [PATCH] Issue #1875818 by Berdir: Update composer.json to use the
 latest stable 3.0.x version of Guzzle.

---
 core/composer.json                            |   4 +-
 core/composer.lock                            | 171 ++++---
 core/vendor/autoload.php                      |   2 +-
 core/vendor/composer/autoload_namespaces.php  |   2 +-
 core/vendor/composer/autoload_real.php        |   8 +-
 core/vendor/composer/installed.json           | 437 ++++++++++--------
 core/vendor/easyrdf/easyrdf/.gitignore        |   9 +
 core/vendor/easyrdf/easyrdf/CHANGELOG.md      | 254 ++++++++++
 core/vendor/easyrdf/easyrdf/LICENSE.md        |  23 +
 core/vendor/easyrdf/easyrdf/Makefile          | 136 ++++++
 core/vendor/easyrdf/easyrdf/README.md         | 136 ++++++
 core/vendor/easyrdf/easyrdf/composer.json     |  36 ++
 core/vendor/easyrdf/easyrdf/doap.php          |  46 ++
 .../{njh => easyrdf}/easyrdf/lib/EasyRdf.php  |   0
 .../easyrdf/lib/EasyRdf/Exception.php         |   0
 .../easyrdf/lib/EasyRdf/Format.php            |   0
 .../easyrdf/lib/EasyRdf/Graph.php             |   0
 .../easyrdf/lib/EasyRdf/GraphStore.php        |   0
 .../easyrdf/lib/EasyRdf/Http.php              |   0
 .../easyrdf/lib/EasyRdf/Http/Client.php       |   0
 .../easyrdf/lib/EasyRdf/Http/Response.php     |   0
 .../easyrdf/lib/EasyRdf/Literal.php           |   0
 .../easyrdf/lib/EasyRdf/Literal/Boolean.php   |   0
 .../easyrdf/lib/EasyRdf/Literal/Date.php      |   0
 .../easyrdf/lib/EasyRdf/Literal/DateTime.php  |   0
 .../easyrdf/lib/EasyRdf/Literal/Decimal.php   |   0
 .../easyrdf/lib/EasyRdf/Literal/HTML.php      |   0
 .../easyrdf/lib/EasyRdf/Literal/HexBinary.php |   0
 .../easyrdf/lib/EasyRdf/Literal/Integer.php   |   0
 .../easyrdf/lib/EasyRdf/Literal/XML.php       |   0
 .../easyrdf/lib/EasyRdf/Namespace.php         |   0
 .../easyrdf/lib/EasyRdf/ParsedUri.php         |   0
 .../easyrdf/lib/EasyRdf/Parser.php            |   0
 .../easyrdf/lib/EasyRdf/Parser/Arc.php        |   0
 .../easyrdf/lib/EasyRdf/Parser/Json.php       |   0
 .../easyrdf/lib/EasyRdf/Parser/Ntriples.php   |   0
 .../easyrdf/lib/EasyRdf/Parser/Rapper.php     |   0
 .../easyrdf/lib/EasyRdf/Parser/RdfPhp.php     |   0
 .../easyrdf/lib/EasyRdf/Parser/RdfXml.php     |   0
 .../easyrdf/lib/EasyRdf/Parser/Rdfa.php       |   0
 .../easyrdf/lib/EasyRdf/Parser/Redland.php    |   0
 .../easyrdf/lib/EasyRdf/Parser/Turtle.php     |   0
 .../easyrdf/lib/EasyRdf/Resource.php          |   0
 .../easyrdf/lib/EasyRdf/Serialiser.php        |   0
 .../easyrdf/lib/EasyRdf/Serialiser/Arc.php    |   0
 .../lib/EasyRdf/Serialiser/GraphViz.php       |   0
 .../easyrdf/lib/EasyRdf/Serialiser/Json.php   |   0
 .../lib/EasyRdf/Serialiser/Ntriples.php       |   0
 .../easyrdf/lib/EasyRdf/Serialiser/Rapper.php |   0
 .../easyrdf/lib/EasyRdf/Serialiser/RdfPhp.php |   0
 .../easyrdf/lib/EasyRdf/Serialiser/RdfXml.php |   0
 .../easyrdf/lib/EasyRdf/Serialiser/Turtle.php |   0
 .../easyrdf/lib/EasyRdf/Sparql/Client.php     |   0
 .../easyrdf/lib/EasyRdf/Sparql/Result.php     |   0
 .../easyrdf/lib/EasyRdf/TypeMapper.php        |   0
 .../easyrdf/lib/EasyRdf/Utils.php             |   0
 .../common/Guzzle/Common/Collection.php       |  33 +-
 .../Common/Exception/ExceptionCollection.php  |  24 +
 .../guzzle/common/Guzzle/Common/Version.php   |   3 +-
 .../guzzle/common/Guzzle/Common/composer.json |   7 +-
 .../vendor/guzzle/http/Guzzle/Http/Client.php |  11 +-
 .../http/Guzzle/Http/Curl/CurlHandle.php      |   1 -
 .../http/Guzzle/Http/Curl/CurlMulti.php       | 168 ++++---
 .../Guzzle/Http/Curl/CurlMultiInterface.php   |   1 +
 .../Guzzle/Http/Exception/CurlException.php   |  32 +-
 .../Http/Exception/MultiTransferException.php | 101 ++++
 .../http/Guzzle/Http/IoEmittingEntityBody.php | 100 ++++
 .../Http/Message/EntityEnclosingRequest.php   |   4 +-
 .../http/Guzzle/Http/Message/Request.php      |  24 +-
 .../Guzzle/Http/Message/RequestInterface.php  |  11 +-
 .../guzzle/http/Guzzle/Http/composer.json     |   8 +-
 .../Guzzle/Parser/UriTemplate/UriTemplate.php |   2 +-
 .../guzzle/parser/Guzzle/Parser/composer.json |   7 +-
 .../guzzle/stream/Guzzle/Stream/composer.json |   7 +-
 74 files changed, 1442 insertions(+), 366 deletions(-)
 create mode 100644 core/vendor/easyrdf/easyrdf/.gitignore
 create mode 100644 core/vendor/easyrdf/easyrdf/CHANGELOG.md
 create mode 100644 core/vendor/easyrdf/easyrdf/LICENSE.md
 create mode 100644 core/vendor/easyrdf/easyrdf/Makefile
 create mode 100644 core/vendor/easyrdf/easyrdf/README.md
 create mode 100644 core/vendor/easyrdf/easyrdf/composer.json
 create mode 100644 core/vendor/easyrdf/easyrdf/doap.php
 rename core/vendor/{njh => easyrdf}/easyrdf/lib/EasyRdf.php (100%)
 rename core/vendor/{njh => easyrdf}/easyrdf/lib/EasyRdf/Exception.php (100%)
 rename core/vendor/{njh => easyrdf}/easyrdf/lib/EasyRdf/Format.php (100%)
 rename core/vendor/{njh => easyrdf}/easyrdf/lib/EasyRdf/Graph.php (100%)
 rename core/vendor/{njh => easyrdf}/easyrdf/lib/EasyRdf/GraphStore.php (100%)
 rename core/vendor/{njh => easyrdf}/easyrdf/lib/EasyRdf/Http.php (100%)
 rename core/vendor/{njh => easyrdf}/easyrdf/lib/EasyRdf/Http/Client.php (100%)
 rename core/vendor/{njh => easyrdf}/easyrdf/lib/EasyRdf/Http/Response.php (100%)
 rename core/vendor/{njh => easyrdf}/easyrdf/lib/EasyRdf/Literal.php (100%)
 rename core/vendor/{njh => easyrdf}/easyrdf/lib/EasyRdf/Literal/Boolean.php (100%)
 rename core/vendor/{njh => easyrdf}/easyrdf/lib/EasyRdf/Literal/Date.php (100%)
 rename core/vendor/{njh => easyrdf}/easyrdf/lib/EasyRdf/Literal/DateTime.php (100%)
 rename core/vendor/{njh => easyrdf}/easyrdf/lib/EasyRdf/Literal/Decimal.php (100%)
 rename core/vendor/{njh => easyrdf}/easyrdf/lib/EasyRdf/Literal/HTML.php (100%)
 rename core/vendor/{njh => easyrdf}/easyrdf/lib/EasyRdf/Literal/HexBinary.php (100%)
 rename core/vendor/{njh => easyrdf}/easyrdf/lib/EasyRdf/Literal/Integer.php (100%)
 rename core/vendor/{njh => easyrdf}/easyrdf/lib/EasyRdf/Literal/XML.php (100%)
 rename core/vendor/{njh => easyrdf}/easyrdf/lib/EasyRdf/Namespace.php (100%)
 rename core/vendor/{njh => easyrdf}/easyrdf/lib/EasyRdf/ParsedUri.php (100%)
 rename core/vendor/{njh => easyrdf}/easyrdf/lib/EasyRdf/Parser.php (100%)
 rename core/vendor/{njh => easyrdf}/easyrdf/lib/EasyRdf/Parser/Arc.php (100%)
 rename core/vendor/{njh => easyrdf}/easyrdf/lib/EasyRdf/Parser/Json.php (100%)
 rename core/vendor/{njh => easyrdf}/easyrdf/lib/EasyRdf/Parser/Ntriples.php (100%)
 rename core/vendor/{njh => easyrdf}/easyrdf/lib/EasyRdf/Parser/Rapper.php (100%)
 rename core/vendor/{njh => easyrdf}/easyrdf/lib/EasyRdf/Parser/RdfPhp.php (100%)
 rename core/vendor/{njh => easyrdf}/easyrdf/lib/EasyRdf/Parser/RdfXml.php (100%)
 rename core/vendor/{njh => easyrdf}/easyrdf/lib/EasyRdf/Parser/Rdfa.php (100%)
 rename core/vendor/{njh => easyrdf}/easyrdf/lib/EasyRdf/Parser/Redland.php (100%)
 rename core/vendor/{njh => easyrdf}/easyrdf/lib/EasyRdf/Parser/Turtle.php (100%)
 rename core/vendor/{njh => easyrdf}/easyrdf/lib/EasyRdf/Resource.php (100%)
 rename core/vendor/{njh => easyrdf}/easyrdf/lib/EasyRdf/Serialiser.php (100%)
 rename core/vendor/{njh => easyrdf}/easyrdf/lib/EasyRdf/Serialiser/Arc.php (100%)
 rename core/vendor/{njh => easyrdf}/easyrdf/lib/EasyRdf/Serialiser/GraphViz.php (100%)
 rename core/vendor/{njh => easyrdf}/easyrdf/lib/EasyRdf/Serialiser/Json.php (100%)
 rename core/vendor/{njh => easyrdf}/easyrdf/lib/EasyRdf/Serialiser/Ntriples.php (100%)
 rename core/vendor/{njh => easyrdf}/easyrdf/lib/EasyRdf/Serialiser/Rapper.php (100%)
 rename core/vendor/{njh => easyrdf}/easyrdf/lib/EasyRdf/Serialiser/RdfPhp.php (100%)
 rename core/vendor/{njh => easyrdf}/easyrdf/lib/EasyRdf/Serialiser/RdfXml.php (100%)
 rename core/vendor/{njh => easyrdf}/easyrdf/lib/EasyRdf/Serialiser/Turtle.php (100%)
 rename core/vendor/{njh => easyrdf}/easyrdf/lib/EasyRdf/Sparql/Client.php (100%)
 rename core/vendor/{njh => easyrdf}/easyrdf/lib/EasyRdf/Sparql/Result.php (100%)
 rename core/vendor/{njh => easyrdf}/easyrdf/lib/EasyRdf/TypeMapper.php (100%)
 rename core/vendor/{njh => easyrdf}/easyrdf/lib/EasyRdf/Utils.php (100%)
 create mode 100644 core/vendor/guzzle/http/Guzzle/Http/Exception/MultiTransferException.php
 create mode 100644 core/vendor/guzzle/http/Guzzle/Http/IoEmittingEntityBody.php

diff --git a/core/composer.json b/core/composer.json
index ab2dc0e3a400..4bedbf03274a 100644
--- a/core/composer.json
+++ b/core/composer.json
@@ -13,10 +13,10 @@
     "symfony/yaml": "<2.4",
     "twig/twig": "1.*@stable",
     "doctrine/common": "2.3.*@stable",
-    "guzzle/http": "*",
+    "guzzle/http": "3.1.*@stable",
     "kriswallsmith/assetic": "1.1.*@alpha",
     "symfony-cmf/routing": "1.0.*@dev",
-    "njh/easyrdf": "0.8.*"
+    "easyrdf/easyrdf": "dev-master"
   },
   "minimum-stability": "dev"
 }
diff --git a/core/composer.lock b/core/composer.lock
index 07d030c8a3ba..bd6e3eaf03b4 100644
--- a/core/composer.lock
+++ b/core/composer.lock
@@ -1,5 +1,5 @@
 {
-    "hash": "27b5fb7194e0d492c69d372d8ba17b2b",
+    "hash": "9dba4484f19203d80a4d60c987df2e59",
     "packages": [
         {
             "name": "doctrine/common",
@@ -25,7 +25,6 @@
                     "dev-master": "2.3.x-dev"
                 }
             },
-            "installation-source": "dist",
             "autoload": {
                 "psr-0": {
                     "Doctrine\\Common": "lib/"
@@ -72,27 +71,85 @@
             ]
         },
         {
-            "name": "guzzle/common",
+            "name": "easyrdf/easyrdf",
             "version": "dev-master",
+            "source": {
+                "type": "git",
+                "url": "git://github.com/njh/easyrdf.git",
+                "reference": "d1c363bd04cd55169fbefe52328e86031c6db3a2"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://github.com/njh/easyrdf/archive/d1c363bd04cd55169fbefe52328e86031c6db3a2.zip",
+                "reference": "d1c363bd04cd55169fbefe52328e86031c6db3a2",
+                "shasum": ""
+            },
+            "require": {
+                "php": ">=5.2.8"
+            },
+            "replace": {
+                "njh/easyrdf": "self.version"
+            },
+            "require-dev": {
+                "phpunit/phpunit": ">=3.5.15",
+                "squizlabs/php_codesniffer": ">=1.4.3",
+                "sami/sami": "dev-master"
+            },
+            "time": "2013-01-13 01:20:04",
+            "type": "library",
+            "autoload": {
+                "psr-0": {
+                    "EasyRdf_": "lib/"
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "BSD-3-Clause"
+            ],
+            "authors": [
+                {
+                    "name": "Nicholas Humfrey",
+                    "email": "njh@aelius.com",
+                    "homepage": "http://www.aelius.com/njh/",
+                    "role": "Developer"
+                }
+            ],
+            "description": "EasyRdf is a PHP library designed to make it easy to consume and produce RDF.",
+            "homepage": "http://www.easyrdf.org/",
+            "keywords": [
+                "rdfa",
+                "RDF",
+                "Semantic Web",
+                "Turtle",
+                "Linked Data"
+            ]
+        },
+        {
+            "name": "guzzle/common",
+            "version": "v3.1.0",
             "target-dir": "Guzzle/Common",
             "source": {
                 "type": "git",
                 "url": "git://github.com/guzzle/common.git",
-                "reference": "23162d56daa85b1ee6f1d73d9b5a5ecda2d70849"
+                "reference": "v3.1.0"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://github.com/guzzle/common/archive/23162d56daa85b1ee6f1d73d9b5a5ecda2d70849.zip",
-                "reference": "23162d56daa85b1ee6f1d73d9b5a5ecda2d70849",
+                "url": "https://github.com/guzzle/common/archive/v3.1.0.zip",
+                "reference": "v3.1.0",
                 "shasum": ""
             },
             "require": {
                 "php": ">=5.3.2",
                 "symfony/event-dispatcher": ">=2.1"
             },
-            "time": "2012-12-06 02:26:39",
+            "time": "2013-01-13 05:14:34",
             "type": "library",
-            "installation-source": "source",
+            "extra": {
+                "branch-alias": {
+                    "dev-master": "3.0-dev"
+                }
+            },
             "autoload": {
                 "psr-0": {
                     "Guzzle\\Common": ""
@@ -113,28 +170,33 @@
         },
         {
             "name": "guzzle/http",
-            "version": "dev-master",
+            "version": "v3.1.0",
             "target-dir": "Guzzle/Http",
             "source": {
                 "type": "git",
                 "url": "git://github.com/guzzle/http.git",
-                "reference": "v3.0.5"
+                "reference": "v3.1.0"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://github.com/guzzle/http/archive/v3.0.5.zip",
-                "reference": "v3.0.5",
+                "url": "https://github.com/guzzle/http/archive/v3.1.0.zip",
+                "reference": "v3.1.0",
                 "shasum": ""
             },
             "require": {
                 "php": ">=5.3.2",
+                "ext-curl": "*",
                 "guzzle/common": "self.version",
                 "guzzle/parser": "self.version",
                 "guzzle/stream": "self.version"
             },
-            "time": "2012-11-18 05:28:55",
+            "time": "2013-01-13 05:09:32",
             "type": "library",
-            "installation-source": "source",
+            "extra": {
+                "branch-alias": {
+                    "dev-master": "3.0-dev"
+                }
+            },
             "autoload": {
                 "psr-0": {
                     "Guzzle\\Http": ""
@@ -163,25 +225,29 @@
         },
         {
             "name": "guzzle/parser",
-            "version": "dev-master",
+            "version": "v3.1.0",
             "target-dir": "Guzzle/Parser",
             "source": {
                 "type": "git",
                 "url": "git://github.com/guzzle/parser.git",
-                "reference": "v3.0.5"
+                "reference": "v3.1.0"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://github.com/guzzle/parser/archive/v3.0.5.zip",
-                "reference": "v3.0.5",
+                "url": "https://github.com/guzzle/parser/archive/v3.1.0.zip",
+                "reference": "v3.1.0",
                 "shasum": ""
             },
             "require": {
                 "php": ">=5.3.2"
             },
-            "time": "2012-11-19 00:07:13",
+            "time": "2013-01-12 21:43:21",
             "type": "library",
-            "installation-source": "source",
+            "extra": {
+                "branch-alias": {
+                    "dev-master": "3.0-dev"
+                }
+            },
             "autoload": {
                 "psr-0": {
                     "Guzzle\\Parser": ""
@@ -203,26 +269,30 @@
         },
         {
             "name": "guzzle/stream",
-            "version": "dev-master",
+            "version": "v3.1.0",
             "target-dir": "Guzzle/Stream",
             "source": {
                 "type": "git",
                 "url": "https://github.com/guzzle/stream",
-                "reference": "v3.0.5"
+                "reference": "v3.1.0"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://github.com/guzzle/stream/archive/v3.0.5.zip",
-                "reference": "v3.0.5",
+                "url": "https://github.com/guzzle/stream/archive/v3.1.0.zip",
+                "reference": "v3.1.0",
                 "shasum": ""
             },
             "require": {
                 "php": ">=5.3.2",
                 "guzzle/common": "self.version"
             },
-            "time": "2012-11-11 23:54:57",
+            "time": "2012-12-07 16:45:11",
             "type": "library",
-            "installation-source": "source",
+            "extra": {
+                "branch-alias": {
+                    "dev-master": "3.0-dev"
+                }
+            },
             "autoload": {
                 "psr-0": {
                     "Guzzle\\Stream": ""
@@ -284,7 +354,6 @@
                     "dev-master": "1.1-dev"
                 }
             },
-            "installation-source": "dist",
             "autoload": {
                 "psr-0": {
                     "Assetic": "src/"
@@ -336,7 +405,6 @@
                     "dev-master": "1.0-dev"
                 }
             },
-            "installation-source": "source",
             "autoload": {
                 "psr-0": {
                     "Symfony\\Cmf\\Component\\Routing": ""
@@ -359,39 +427,6 @@
                 "routing"
             ]
         },
-        {
-            "name": "njh/easyrdf",
-            "description": "EasyRdf is a PHP library designed to make it easy to consume and produce RDF.",
-            "version": "0.8.0",
-            "type": "library",
-            "keywords": ["RDF", "Semantic Web", "Turtle", "RDFa"],
-            "homepage": "http://www.aelius.com/njh/easyrdf/",
-            "license": "BSD-3-Clause",
-            "authors": [
-                {
-                    "name": "Nicholas Humfrey",
-                    "email": "njh@aelius.com",
-                    "homepage": "http://www.aelius.com/njh/",
-                    "role": "Developer"
-                }
-            ],
-            "support": {
-                "forum": "http://groups.google.com/group/easyrdf/",
-                "issues": "http://github.com/njh/easyrdf/issues"
-            },
-            "require": {
-                "php": ">=5.2.8"
-            },
-            "repositories": [
-                {
-                    "type": "vcs",
-                    "url": "https://github.com/njh/easyrdf"
-                }
-            ],
-            "autoload": {
-                "psr-0": { "EasyRdf": "lib/" }
-            }
-        },
         {
             "name": "symfony/class-loader",
             "version": "dev-master",
@@ -420,7 +455,6 @@
                     "dev-master": "2.2-dev"
                 }
             },
-            "installation-source": "source",
             "autoload": {
                 "psr-0": {
                     "Symfony\\Component\\ClassLoader\\": ""
@@ -476,7 +510,6 @@
                     "dev-master": "2.2-dev"
                 }
             },
-            "installation-source": "source",
             "autoload": {
                 "psr-0": {
                     "Symfony\\Component\\DependencyInjection\\": ""
@@ -531,7 +564,6 @@
                     "dev-master": "2.2-dev"
                 }
             },
-            "installation-source": "source",
             "autoload": {
                 "psr-0": {
                     "Symfony\\Component\\EventDispatcher\\": ""
@@ -579,7 +611,6 @@
                     "dev-master": "2.2-dev"
                 }
             },
-            "installation-source": "source",
             "autoload": {
                 "psr-0": {
                     "Symfony\\Component\\HttpFoundation\\": ""
@@ -651,7 +682,6 @@
                     "dev-master": "2.2-dev"
                 }
             },
-            "installation-source": "source",
             "autoload": {
                 "psr-0": {
                     "Symfony\\Component\\HttpKernel\\": ""
@@ -694,7 +724,6 @@
             },
             "time": "2012-12-06 10:00:55",
             "type": "library",
-            "installation-source": "source",
             "autoload": {
                 "psr-0": {
                     "Symfony\\Component\\Process": ""
@@ -753,7 +782,6 @@
                     "dev-master": "2.2-dev"
                 }
             },
-            "installation-source": "source",
             "autoload": {
                 "psr-0": {
                     "Symfony\\Component\\Routing\\": ""
@@ -801,7 +829,6 @@
                     "dev-master": "2.2-dev"
                 }
             },
-            "installation-source": "source",
             "autoload": {
                 "psr-0": {
                     "Symfony\\Component\\Serializer\\": ""
@@ -849,7 +876,6 @@
                     "dev-master": "2.2-dev"
                 }
             },
-            "installation-source": "source",
             "autoload": {
                 "psr-0": {
                     "Symfony\\Component\\Yaml\\": ""
@@ -896,7 +922,6 @@
                     "dev-master": "1.11-dev"
                 }
             },
-            "installation-source": "dist",
             "autoload": {
                 "psr-0": {
                     "Twig_": "lib/"
@@ -931,7 +956,9 @@
     "stability-flags": {
         "twig/twig": 0,
         "doctrine/common": 0,
+        "guzzle/http": 0,
         "kriswallsmith/assetic": 15,
-        "symfony-cmf/routing": 20
+        "symfony-cmf/routing": 20,
+        "easyrdf/easyrdf": 20
     }
 }
diff --git a/core/vendor/autoload.php b/core/vendor/autoload.php
index 622540f4062c..517fa0b13e01 100644
--- a/core/vendor/autoload.php
+++ b/core/vendor/autoload.php
@@ -4,4 +4,4 @@
 
 require_once __DIR__ . '/composer' . '/autoload_real.php';
 
-return ComposerAutoloaderInit4f0cafaacf65c45167c785b9f087e425::getLoader();
+return ComposerAutoloaderInitcb954419c7531cdb839507174df5e8bb::getLoader();
diff --git a/core/vendor/composer/autoload_namespaces.php b/core/vendor/composer/autoload_namespaces.php
index 4fa7f515bd96..913d6b8a3a42 100644
--- a/core/vendor/composer/autoload_namespaces.php
+++ b/core/vendor/composer/autoload_namespaces.php
@@ -21,7 +21,7 @@
     'Guzzle\\Parser' => $vendorDir . '/guzzle/parser/',
     'Guzzle\\Http' => $vendorDir . '/guzzle/http/',
     'Guzzle\\Common' => $vendorDir . '/guzzle/common/',
+    'EasyRdf_' => $vendorDir . '/easyrdf/easyrdf/lib/',
     'Doctrine\\Common' => $vendorDir . '/doctrine/common/lib/',
     'Assetic' => $vendorDir . '/kriswallsmith/assetic/src/',
-    'EasyRdf_' => $vendorDir . '/njh/easyrdf/lib/',
 );
diff --git a/core/vendor/composer/autoload_real.php b/core/vendor/composer/autoload_real.php
index d492d5c65a8a..a7159a29e8d7 100644
--- a/core/vendor/composer/autoload_real.php
+++ b/core/vendor/composer/autoload_real.php
@@ -2,7 +2,7 @@
 
 // autoload_real.php generated by Composer
 
-class ComposerAutoloaderInit4f0cafaacf65c45167c785b9f087e425
+class ComposerAutoloaderInitcb954419c7531cdb839507174df5e8bb
 {
     private static $loader;
 
@@ -19,9 +19,9 @@ public static function getLoader()
             return self::$loader;
         }
 
-        spl_autoload_register(array('ComposerAutoloaderInit4f0cafaacf65c45167c785b9f087e425', 'loadClassLoader'));
+        spl_autoload_register(array('ComposerAutoloaderInitcb954419c7531cdb839507174df5e8bb', 'loadClassLoader'));
         self::$loader = $loader = new \Composer\Autoload\ClassLoader();
-        spl_autoload_unregister(array('ComposerAutoloaderInit4f0cafaacf65c45167c785b9f087e425', 'loadClassLoader'));
+        spl_autoload_unregister(array('ComposerAutoloaderInitcb954419c7531cdb839507174df5e8bb', 'loadClassLoader'));
 
         $vendorDir = dirname(__DIR__);
         $baseDir = dirname($vendorDir);
@@ -36,7 +36,7 @@ public static function getLoader()
             $loader->addClassMap($classMap);
         }
 
-        $loader->register();
+        $loader->register(true);
 
         return $loader;
     }
diff --git a/core/vendor/composer/installed.json b/core/vendor/composer/installed.json
index bb8d2e19da5e..4822cd318b76 100644
--- a/core/vendor/composer/installed.json
+++ b/core/vendor/composer/installed.json
@@ -228,186 +228,6 @@
             "minification"
         ]
     },
-    {
-        "name": "guzzle/common",
-        "version": "dev-master",
-        "version_normalized": "9999999-dev",
-        "target-dir": "Guzzle/Common",
-        "source": {
-            "type": "git",
-            "url": "git://github.com/guzzle/common.git",
-            "reference": "23162d56daa85b1ee6f1d73d9b5a5ecda2d70849"
-        },
-        "dist": {
-            "type": "zip",
-            "url": "https://github.com/guzzle/common/archive/23162d56daa85b1ee6f1d73d9b5a5ecda2d70849.zip",
-            "reference": "23162d56daa85b1ee6f1d73d9b5a5ecda2d70849",
-            "shasum": ""
-        },
-        "require": {
-            "php": ">=5.3.2",
-            "symfony/event-dispatcher": ">=2.1"
-        },
-        "time": "2012-12-06 02:26:39",
-        "type": "library",
-        "installation-source": "source",
-        "autoload": {
-            "psr-0": {
-                "Guzzle\\Common": ""
-            }
-        },
-        "notification-url": "https://packagist.org/downloads/",
-        "license": [
-            "MIT"
-        ],
-        "description": "Common libraries used by Guzzle",
-        "homepage": "http://guzzlephp.org/",
-        "keywords": [
-            "event",
-            "exception",
-            "common",
-            "collection"
-        ]
-    },
-    {
-        "name": "guzzle/stream",
-        "version": "dev-master",
-        "version_normalized": "9999999-dev",
-        "target-dir": "Guzzle/Stream",
-        "source": {
-            "type": "git",
-            "url": "https://github.com/guzzle/stream",
-            "reference": "v3.0.5"
-        },
-        "dist": {
-            "type": "zip",
-            "url": "https://github.com/guzzle/stream/archive/v3.0.5.zip",
-            "reference": "v3.0.5",
-            "shasum": ""
-        },
-        "require": {
-            "php": ">=5.3.2",
-            "guzzle/common": "self.version"
-        },
-        "time": "2012-11-11 23:54:57",
-        "type": "library",
-        "installation-source": "source",
-        "autoload": {
-            "psr-0": {
-                "Guzzle\\Stream": ""
-            }
-        },
-        "notification-url": "https://packagist.org/downloads/",
-        "license": [
-            "MIT"
-        ],
-        "authors": [
-            {
-                "name": "Michael Dowling",
-                "email": "mtdowling@gmail.com",
-                "homepage": "https://github.com/mtdowling"
-            }
-        ],
-        "description": "Guzzle stream wrapper component",
-        "homepage": "http://guzzlephp.org/",
-        "keywords": [
-            "stream",
-            "Guzzle",
-            "component"
-        ]
-    },
-    {
-        "name": "guzzle/parser",
-        "version": "dev-master",
-        "version_normalized": "9999999-dev",
-        "target-dir": "Guzzle/Parser",
-        "source": {
-            "type": "git",
-            "url": "git://github.com/guzzle/parser.git",
-            "reference": "v3.0.5"
-        },
-        "dist": {
-            "type": "zip",
-            "url": "https://github.com/guzzle/parser/archive/v3.0.5.zip",
-            "reference": "v3.0.5",
-            "shasum": ""
-        },
-        "require": {
-            "php": ">=5.3.2"
-        },
-        "time": "2012-11-19 00:07:13",
-        "type": "library",
-        "installation-source": "source",
-        "autoload": {
-            "psr-0": {
-                "Guzzle\\Parser": ""
-            }
-        },
-        "notification-url": "https://packagist.org/downloads/",
-        "license": [
-            "MIT"
-        ],
-        "description": "Interchangeable parsers used by Guzzle",
-        "homepage": "http://guzzlephp.org/",
-        "keywords": [
-            "http",
-            "url",
-            "message",
-            "cookie",
-            "URI Template"
-        ]
-    },
-    {
-        "name": "guzzle/http",
-        "version": "dev-master",
-        "version_normalized": "9999999-dev",
-        "target-dir": "Guzzle/Http",
-        "source": {
-            "type": "git",
-            "url": "git://github.com/guzzle/http.git",
-            "reference": "v3.0.5"
-        },
-        "dist": {
-            "type": "zip",
-            "url": "https://github.com/guzzle/http/archive/v3.0.5.zip",
-            "reference": "v3.0.5",
-            "shasum": ""
-        },
-        "require": {
-            "php": ">=5.3.2",
-            "guzzle/common": "self.version",
-            "guzzle/parser": "self.version",
-            "guzzle/stream": "self.version"
-        },
-        "time": "2012-11-18 05:28:55",
-        "type": "library",
-        "installation-source": "source",
-        "autoload": {
-            "psr-0": {
-                "Guzzle\\Http": ""
-            }
-        },
-        "notification-url": "https://packagist.org/downloads/",
-        "license": [
-            "MIT"
-        ],
-        "authors": [
-            {
-                "name": "Michael Dowling",
-                "email": "mtdowling@gmail.com",
-                "homepage": "https://github.com/mtdowling"
-            }
-        ],
-        "description": "HTTP libraries used by Guzzle",
-        "homepage": "http://guzzlephp.org/",
-        "keywords": [
-            "curl",
-            "http",
-            "http client",
-            "client",
-            "Guzzle"
-        ]
-    },
     {
         "name": "symfony-cmf/routing",
         "version": "dev-master",
@@ -903,5 +723,262 @@
         ],
         "description": "Symfony Yaml Component",
         "homepage": "http://symfony.com"
+    },
+    {
+        "name": "guzzle/common",
+        "version": "v3.1.0",
+        "version_normalized": "3.1.0.0",
+        "target-dir": "Guzzle/Common",
+        "source": {
+            "type": "git",
+            "url": "git://github.com/guzzle/common.git",
+            "reference": "v3.1.0"
+        },
+        "dist": {
+            "type": "zip",
+            "url": "https://github.com/guzzle/common/archive/v3.1.0.zip",
+            "reference": "v3.1.0",
+            "shasum": ""
+        },
+        "require": {
+            "php": ">=5.3.2",
+            "symfony/event-dispatcher": ">=2.1"
+        },
+        "time": "2013-01-13 05:14:34",
+        "type": "library",
+        "extra": {
+            "branch-alias": {
+                "dev-master": "3.0-dev"
+            }
+        },
+        "installation-source": "dist",
+        "autoload": {
+            "psr-0": {
+                "Guzzle\\Common": ""
+            }
+        },
+        "notification-url": "https://packagist.org/downloads/",
+        "license": [
+            "MIT"
+        ],
+        "description": "Common libraries used by Guzzle",
+        "homepage": "http://guzzlephp.org/",
+        "keywords": [
+            "event",
+            "exception",
+            "common",
+            "collection"
+        ]
+    },
+    {
+        "name": "guzzle/stream",
+        "version": "v3.1.0",
+        "version_normalized": "3.1.0.0",
+        "target-dir": "Guzzle/Stream",
+        "source": {
+            "type": "git",
+            "url": "https://github.com/guzzle/stream",
+            "reference": "v3.1.0"
+        },
+        "dist": {
+            "type": "zip",
+            "url": "https://github.com/guzzle/stream/archive/v3.1.0.zip",
+            "reference": "v3.1.0",
+            "shasum": ""
+        },
+        "require": {
+            "php": ">=5.3.2",
+            "guzzle/common": "self.version"
+        },
+        "time": "2012-12-07 16:45:11",
+        "type": "library",
+        "extra": {
+            "branch-alias": {
+                "dev-master": "3.0-dev"
+            }
+        },
+        "installation-source": "dist",
+        "autoload": {
+            "psr-0": {
+                "Guzzle\\Stream": ""
+            }
+        },
+        "notification-url": "https://packagist.org/downloads/",
+        "license": [
+            "MIT"
+        ],
+        "authors": [
+            {
+                "name": "Michael Dowling",
+                "email": "mtdowling@gmail.com",
+                "homepage": "https://github.com/mtdowling"
+            }
+        ],
+        "description": "Guzzle stream wrapper component",
+        "homepage": "http://guzzlephp.org/",
+        "keywords": [
+            "stream",
+            "Guzzle",
+            "component"
+        ]
+    },
+    {
+        "name": "guzzle/parser",
+        "version": "v3.1.0",
+        "version_normalized": "3.1.0.0",
+        "target-dir": "Guzzle/Parser",
+        "source": {
+            "type": "git",
+            "url": "git://github.com/guzzle/parser.git",
+            "reference": "v3.1.0"
+        },
+        "dist": {
+            "type": "zip",
+            "url": "https://github.com/guzzle/parser/archive/v3.1.0.zip",
+            "reference": "v3.1.0",
+            "shasum": ""
+        },
+        "require": {
+            "php": ">=5.3.2"
+        },
+        "time": "2013-01-12 21:43:21",
+        "type": "library",
+        "extra": {
+            "branch-alias": {
+                "dev-master": "3.0-dev"
+            }
+        },
+        "installation-source": "dist",
+        "autoload": {
+            "psr-0": {
+                "Guzzle\\Parser": ""
+            }
+        },
+        "notification-url": "https://packagist.org/downloads/",
+        "license": [
+            "MIT"
+        ],
+        "description": "Interchangeable parsers used by Guzzle",
+        "homepage": "http://guzzlephp.org/",
+        "keywords": [
+            "http",
+            "url",
+            "message",
+            "cookie",
+            "URI Template"
+        ]
+    },
+    {
+        "name": "guzzle/http",
+        "version": "v3.1.0",
+        "version_normalized": "3.1.0.0",
+        "target-dir": "Guzzle/Http",
+        "source": {
+            "type": "git",
+            "url": "git://github.com/guzzle/http.git",
+            "reference": "v3.1.0"
+        },
+        "dist": {
+            "type": "zip",
+            "url": "https://github.com/guzzle/http/archive/v3.1.0.zip",
+            "reference": "v3.1.0",
+            "shasum": ""
+        },
+        "require": {
+            "php": ">=5.3.2",
+            "ext-curl": "*",
+            "guzzle/common": "self.version",
+            "guzzle/parser": "self.version",
+            "guzzle/stream": "self.version"
+        },
+        "time": "2013-01-13 05:09:32",
+        "type": "library",
+        "extra": {
+            "branch-alias": {
+                "dev-master": "3.0-dev"
+            }
+        },
+        "installation-source": "dist",
+        "autoload": {
+            "psr-0": {
+                "Guzzle\\Http": ""
+            }
+        },
+        "notification-url": "https://packagist.org/downloads/",
+        "license": [
+            "MIT"
+        ],
+        "authors": [
+            {
+                "name": "Michael Dowling",
+                "email": "mtdowling@gmail.com",
+                "homepage": "https://github.com/mtdowling"
+            }
+        ],
+        "description": "HTTP libraries used by Guzzle",
+        "homepage": "http://guzzlephp.org/",
+        "keywords": [
+            "curl",
+            "http",
+            "http client",
+            "client",
+            "Guzzle"
+        ]
+    },
+    {
+        "name": "easyrdf/easyrdf",
+        "version": "dev-master",
+        "version_normalized": "9999999-dev",
+        "source": {
+            "type": "git",
+            "url": "git://github.com/njh/easyrdf.git",
+            "reference": "d1c363bd04cd55169fbefe52328e86031c6db3a2"
+        },
+        "dist": {
+            "type": "zip",
+            "url": "https://github.com/njh/easyrdf/archive/d1c363bd04cd55169fbefe52328e86031c6db3a2.zip",
+            "reference": "d1c363bd04cd55169fbefe52328e86031c6db3a2",
+            "shasum": ""
+        },
+        "require": {
+            "php": ">=5.2.8"
+        },
+        "replace": {
+            "njh/easyrdf": "self.version"
+        },
+        "require-dev": {
+            "phpunit/phpunit": ">=3.5.15",
+            "squizlabs/php_codesniffer": ">=1.4.3",
+            "sami/sami": "dev-master"
+        },
+        "time": "2013-01-13 01:20:04",
+        "type": "library",
+        "installation-source": "source",
+        "autoload": {
+            "psr-0": {
+                "EasyRdf_": "lib/"
+            }
+        },
+        "notification-url": "https://packagist.org/downloads/",
+        "license": [
+            "BSD-3-Clause"
+        ],
+        "authors": [
+            {
+                "name": "Nicholas Humfrey",
+                "email": "njh@aelius.com",
+                "homepage": "http://www.aelius.com/njh/",
+                "role": "Developer"
+            }
+        ],
+        "description": "EasyRdf is a PHP library designed to make it easy to consume and produce RDF.",
+        "homepage": "http://www.easyrdf.org/",
+        "keywords": [
+            "rdfa",
+            "RDF",
+            "Semantic Web",
+            "Turtle",
+            "Linked Data"
+        ]
     }
 ]
diff --git a/core/vendor/easyrdf/easyrdf/.gitignore b/core/vendor/easyrdf/easyrdf/.gitignore
new file mode 100644
index 000000000000..83892d7ccbfb
--- /dev/null
+++ b/core/vendor/easyrdf/easyrdf/.gitignore
@@ -0,0 +1,9 @@
+doap.rdf
+docs
+samicache
+lib/arc/
+reports
+*.tar.gz
+vendor
+composer.phar
+composer.lock
diff --git a/core/vendor/easyrdf/easyrdf/CHANGELOG.md b/core/vendor/easyrdf/easyrdf/CHANGELOG.md
new file mode 100644
index 000000000000..482076e37f1d
--- /dev/null
+++ b/core/vendor/easyrdf/easyrdf/CHANGELOG.md
@@ -0,0 +1,254 @@
+EasyRdf 0.8.0
+=============
+
+API changes
+-----------
+* is_a() has been renamed to isA()
+
+Major new features
+------------------
+* Now PSR-2 compliant
+* Added RDFa parser
+
+Enhancements
+------------
+
+Bug Fixes
+---------
+
+
+
+EasyRdf 0.7.2
+=============
+
+Enhancements
+------------
+* Removed automatic registration of ARC2 and librdf parsers and serialisers
+** You must now specifically choose the parser or serialiser
+* Refactored `EasyRdf_Literal` with datatypes so that it preserves exact value
+* Changed Turtle serialiser to not escape Unicode characters unnecessarily
+* Fix for escaping literals objects in Turtle serialiser
+* Added a new static function `newAndLoad()` to `EasyRdf_Graph`
+* Added setters for each of the components of the URI to the class `EasyRdf_ParsedUri`
+* Added option to the converter example, to allow raw output, without any HTML
+
+Bug Fixes
+---------
+* Fixed broken Redland parser (thanks to Jon Phipps)
+* Fix for serialising two bnodes that reference each other in Turtle
+* Added support for parsing literals with single quotes in Turtle
+* Removed require for EasyRdf/Exception.php
+* Fix for serialising `EasyRdf_Literal_DateTime` to Turtle
+* Fix for serialising Turtle literals with a shorthand syntax
+* Several typo fixes and minor corrections
+
+
+EasyRdf 0.7.1
+=============
+
+Enhancements
+------------
+* Changed minimum version of PHPUnit to 3.5.15
+* Added RDFa namespace
+* Added Open Graph Protocol namespace
+* Made improvements to formatting of the Turtle serialiser
+* Added new splitUri() function to EasyRdf_Namespace
+* Made improvements to format guessing
+
+Bug Fixes
+---------
+* Fix for RDF/XML parser not returning the number of triples
+* Added re-mapping of b-nodes to N-Triples and Redland parsers
+
+
+EasyRdf 0.7.0
+=============
+
+API Changes
+-----------
+* You must now wrap full property URIs in angle brackets
+
+Major new features
+------------------
+* Added a new pure-PHP Turtle parser
+* Added basic property-path support for traversing graphs
+* Added support for serialising to the GraphViz dot format (and generating images)
+* Added a new class `EasyRdf_ParsedUri` - a RFC3986 compliant URI parser
+
+Enhancements
+------------
+* The load() function in `EasyRdf_Graph` no-longer takes a $data argument
+* The parse() and load() methods, now return the number of triples parsed
+* Added count() method to `EasyRdf_Resource` and `EasyRdf_Graph`
+* Added localName() method to `EasyRdf_Resource`
+* Added htmlLink() method to `EasyRdf_Resource`
+* Added methods deleteResource() and deleteLiteral() to `EasyRdf_Graph`
+* Added support for guessing the file format based on the file extension
+* Performance improvements to built-in serialisers
+
+Environment changes
+-------------------
+* Added PHP Composer description to the project
+* Now properly PSR-0 autoloader compatible
+* New minimum version of PHP is 5.2.8
+* Changed test suite to require PHPUnit 3.6
+* Changed from Phing to GNU Make based build system
+* Added automated testing of the examples
+
+Bug Fixes
+---------
+* Fix for loading https:// URLs
+* Fix for storing the value 0 in a `EasyRdf_Graph`
+* Fix for HTTP servers that return relative URIs in the Location header
+* Fix for Literals with languages in the SPARQL Query Results XML Format
+* Fix for SPARQL servers that put extra whitespace into the XML result
+* Fix for the httpget.php example in PHP 5.4+
+
+
+EasyRdf 0.6.3
+=============
+* Added $graph->parseFile() method.
+* Added support for SSL (https) to the built-in HTTP client
+* Fixes for HTTP responses with a charset parameter in the Content Type.
+* Improved error handling and empty documents in JSON and rapper parsers.
+* Added connivence class for xsd:hexBinary literals:
+  - `EasyRdf_Literal_HexBinary`
+* Made EasyRdf more tolerant of 'badly serialised bnodes'
+* Fix for SPARQL servers that return charset in the MIME Type.
+* Fix for using xml:lang in SPARQL 1.1 Query Results JSON Format
+* Changed datetime ISO formatting to use 'Z' instead of +0000 for UTC dateTimes
+* Added the namespace for 'The Cert Ontology' to EasyRdf.
+
+
+EasyRdf 0.6.2
+=============
+* Bug fix for missing triples in the RDF/XML serialiser.
+* Added countTriples() method to `EasyRdf_Graph`.
+* Re-factored the mechanism for mapping RDF datatypes to PHP classes.
+* Added subclasses of `EasyRdf_Literal` for various XSD datatypes:
+  - `EasyRdf_Literal_Boolean`
+  - `EasyRdf_Literal_Date`
+  - `EasyRdf_Literal_DateTime`
+  - `EasyRdf_Literal_Decimal`
+  - `EasyRdf_Literal_Integer`
+* Made the Redland based parser write triples directly to `EasyRdf_Graph`
+* Added support for datatypes and languages in the `EasyRdf_Parser_Ntriples` parser.
+* Fix for parsing XML Literals in RDF/XML
+
+
+EasyRdf 0.6.1
+=============
+* Updated API documentation for new classes and methods added in 0.6.0
+* Added a description to the top of the source code for each example.
+* Changed the generated bnode identifier names from eidXXX to genidXXX.
+* Implemented inlining of resources in the RDF/XML serialiser.
+* Added new reversePropertyUris() method to `EasyRdf_Graph` and `EasyRdf_Resource`.
+* Added addType() and setType() to `EasyRdf_Resource`.
+* Added a textarea to the converter example.
+* Added support for parsing the json-triples format.
+* Renamed `EasyRdf_SparqlClient` to `EasyRdf_Sparql_Client`
+* Renamed `EasyRdf_SparqlResult` to `EasyRdf_Sparql_Result`
+* Fix for $graph->isEmpty() failing after adding and deleting some triples
+* Added new `EasyRdf_DatatypeMapper` class that allows you to map RDF datatypes to PHP classes.
+* Renamed guessDatatype() to getDatatypeForValue() in `EasyRdf_Literal`.
+* Added getResource() and allResources() to `EasyRdf_Graph` and `EasyRdf_Resource`
+* Implemented value casting in literals based on the datatype.
+
+
+EasyRdf 0.6.0
+=============
+* Major re-factor of the way data is stored internally in `EasyRdf_Graph`.
+* Parsing and serialising is now much faster and will enable further optimisations.
+* API is mostly backwards-compatible apart from:
+  - Changed inverse property operator from - to ^ to match Sparql 1.1 property paths.
+  - New `EasyRdf_Graphs` will not automatically be loaded on creation
+    You must now call $graph->load();
+  - Setting the default HTTP client is now part of a new `EasyRdf_Http` class
+  - It is no-longer possible to add multiple properties at once using an associative array.
+* Added methods to `EasyRdf_Graph` for direct manipulation of triples.
+* Added new `EasyRdf_GraphStore` - class for fetching, saving and deleting graphs to a Graph Store over HTTP.
+* Added new `EasyRdf_SparqlClient` and `EasyRdf_SparqlResult` - class for querying a SPARQL endpoint over HTTP.
+* Added q values for each Mime-Type associated with an `EasyRdf_Format`.
+* New example demonstrating integration with the Zend Framework.
+* New `EasyRdf_HTTP_MockClient` class makes testing easier.
+
+
+EasyRdf 0.5.2
+=============
+* Added a built-in RDF/XML parser
+* Made the RDF/XML serialiser use the rdf:type to open tags
+* Added support for comments in the N-Triples parser
+* Added new resolveUriReference() function to `EasyRdf_Utils`
+* Added the application/rdf+json and text/rdf+n3 mime types
+
+
+EasyRdf 0.5.1
+=============
+* Bug fixes for PHP 5.2
+
+
+EasyRdf 0.5.0
+=============
+* Added support for inverse properties.
+* Updated RDF/XML and Turtle serialisers to create new namespaces if possible.
+* Added new is_a($type) method to `EasyRdf_Resource`.
+* Added support for passing an array of properties to the get() method.
+* Added primaryTopic() method to `EasyRdf_Resource`.
+* The function label() in `EasyRdf_Resource` will no longer attempted to shorten the URI,
+  if there is no label available.
+* Resource types are now stored as resources, instead of shortened URIs.
+* Added support for deleting a specific value for property to `EasyRdf_Resource`.
+* Properties and datatypes are now stored as full URIs and not
+  converted to qnames during import.
+* Change the TypeMapper to store full URIs internally.
+* Added bibo and geo to the set of default namespaces.
+* Improved bnode links in dump format
+* Fix for converting non-string `EasyRdf_Literal` to string.
+* Created an example that resolves UK postcodes using uk-postcodes.com.
+
+
+EasyRdf 0.4.0
+=============
+* Moved source code to Github
+* Added an `EasyRdf_Literal` class
+* Added proper support for Datatypes and Languages
+* Added built-in RDF/XML serialiser
+* Added built-in Turtle serialiser
+* Added a new `EasyRdf_Format` class to deal with mime types etc.
+* finished a major refactoring of the Parser/Serialiser registration
+* removed all parsing related code from `EasyRdf_Graph`
+* Added a basic serialisation example
+* Added additional common namespaces
+* Test fixes
+
+
+EasyRdf 0.3.0
+=============
+* Generated Wiki pages from phpdoc
+* Filtering of literals by language
+* Moved parsers into `EasyRdf_Parser_XXX` namespace
+* Added support for serialisation
+* Wrote RDF generation example (foafmaker.php)
+* Added built-in ntriples parser/generator
+* Added built-in RDF/PHP serialiser
+* Added built-in RDF/JSON serialiser
+* Added SKOS and RSS to the set of default namespaces.
+
+
+EasyRdf 0.2.0
+=============
+* Added support for Redland PHP bindings
+* Added support for n-triples document type.
+* Improved blank node handing and added newBNode() method to `EasyRdf_Graph`.
+* Add option to `EasyRdf_RapperParser` to choose location of rapper command
+* Added Rails style HTML tag helpers to examples to make them simpler
+
+
+EasyRdf 0.1.0
+=============
+* First public release
+* Support for ARC2 and Rapper
+* Built-in HTTP Client
+* API Documentation
+* PHP Unit tests for every class.
+* Several usage examples
diff --git a/core/vendor/easyrdf/easyrdf/LICENSE.md b/core/vendor/easyrdf/easyrdf/LICENSE.md
new file mode 100644
index 000000000000..274a8e6a3265
--- /dev/null
+++ b/core/vendor/easyrdf/easyrdf/LICENSE.md
@@ -0,0 +1,23 @@
+LICENSE
+=======
+
+Copyright (c) 2009-2011 Nicholas J Humfrey.  All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+ * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
+ * The name of the author 'Nicholas J Humfrey" may be used to endorse or promote products derived from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGE.
diff --git a/core/vendor/easyrdf/easyrdf/Makefile b/core/vendor/easyrdf/easyrdf/Makefile
new file mode 100644
index 000000000000..fe453680f146
--- /dev/null
+++ b/core/vendor/easyrdf/easyrdf/Makefile
@@ -0,0 +1,136 @@
+PACKAGE = easyrdf
+VERSION = $(shell php -r "print json_decode(file_get_contents('composer.json'))->version;")
+distdir = $(PACKAGE)-$(VERSION)
+PHP = $(shell which php)
+COMPOSER_FLAGS=--no-ansi --no-interaction
+PHPUNIT = vendor/bin/phpunit 
+PHPUNIT_FLAGS = -c config/phpunit.xml
+PHPCS = vendor/bin/phpcs
+PHPCS_FLAGS = --standard=./config/phpcs_ruleset.xml --encoding=utf8 --extensions=php
+SAMI = vendor/bin/sami.php
+
+EXAMPLE_FILES = examples/*.php
+SOURCE_FILES = lib/EasyRdf.php \
+               lib/EasyRdf/*.php \
+               lib/EasyRdf/*/*.php
+TEST_FILES = test/*/*Test.php \
+             test/*/*/*Test.php
+TEST_SUPPORT = Makefile test/cli_example_wrapper.php \
+               test/TestHelper.php \
+               test/EasyRdf/TestCase.php \
+               test/EasyRdf/Http/MockClient.php \
+               test/EasyRdf/Serialiser/NtriplesArray.php \
+               test/fixtures/*
+DOC_FILES = composer.json \
+            doap.rdf \
+            docs/api \
+            README.md \
+            LICENSE.md \
+            CHANGELOG.md
+
+DISTFILES = $(EXAMPLE_FILES) $(SOURCE_FILES) $(TEST_FILES) \
+            $(TEST_SUPPORT) $(DOC_FILES)
+
+.DEFAULT: help
+all: help
+
+# TARGET:test                Run all the PHPUnit tests
+.PHONY: test
+test: $(PHPUNIT)
+	mkdir -p reports
+	$(PHP) $(PHPUNIT) $(PHPUNIT_FLAGS)
+
+# TARGET:test-examples       Run PHPUnit tests for each of the examples
+.PHONY: test-examples
+test-examples: $(PHPUNIT)
+	mkdir -p reports
+	$(PHP) $(PHPUNIT) $(PHPUNIT_FLAGS) --testsuite "EasyRdf Examples"
+
+# TARGET:test-lib            Run PHPUnit tests for the library
+.PHONY: test-lib
+test-lib: $(PHPUNIT)
+	mkdir -p reports
+	$(PHP) $(PHPUNIT) $(PHPUNIT_FLAGS) --testsuite "EasyRdf Library"
+
+# TARGET:coverage            Run the library tests and generate a code coverage report
+.PHONY: coverage
+coverage: $(PHPUNIT)
+	mkdir -p reports/coverage
+	$(PHP) $(PHPUNIT) $(PHPUNIT_FLAGS) --coverage-html ./reports/coverage --testsuite "EasyRdf Library"
+
+# TARGET:apidocs             Generate HTML API documentation
+.PHONY: apidocs
+apidocs: $(SAMI)
+	$(PHP) $(SAMI) update config/sami.php -n -v --force
+
+docs/api: apidocs
+
+doap.rdf: doap.php composer.json
+	$(PHP) doap.php > doap.rdf
+
+# TARGET:cs                  Check the code style of the PHP source code
+.PHONY: cs
+cs: $(PHPCS)
+	$(PHPCS) $(PHPCS_FLAGS) lib test
+
+# TARGET:lint                Perform basic PHP syntax check on all files
+.PHONY: lint
+lint: $(EXAMPLE_FILES) $(SOURCE_FILES) $(TEST_FILES)
+	@for file in $^; do  \
+	  $(PHP) -l $$file || exit -1; \
+	done
+
+# TARGET:dist                Build tarball for distribution
+.PHONY: dist
+dist: $(distdir)
+	tar zcf $(distdir).tar.gz $(distdir)
+	rm -Rf $(distdir)
+	@echo "Created $(distdir).tar.gz"
+
+$(distdir): $(DISTFILES)
+	@for file in $^; do  \
+		dir=$(distdir)/`dirname "$$file"`; \
+		test -d "$$dir" || mkdir -p "$$dir" || exit -1; \
+		cp -Rfp "$$file" "$(distdir)/$$file" || exit -1; \
+	done
+
+# TARGET:clean               Delete any temporary and generated files
+.PHONY: clean
+clean:
+	-rm -Rf $(distdir) reports vendor
+	-rm -Rf docs/api samicache
+	-rm -f composer.phar composer.lock
+	-rm -f doap.rdf
+
+# TARGET:check-fixme         Scan for files containing the words TODO or FIXME
+.PHONY: check-fixme
+check-fixme:
+	@git grep -n -E 'FIXME|TODO' || echo "No FIXME or TODO lines found."
+
+# TARGET:help                You're looking at it!
+.PHONY: help
+help:
+	# Usage:
+	#   make <target> [OPTION=value]
+	#
+	# Targets:
+	@egrep "^# TARGET:" [Mm]akefile | sed 's/^# TARGET:/#   /'
+	#
+	# Options:
+	#   PHP                 Path to php
+
+
+
+# Composer rules
+composer.phar:
+	curl -s -z composer.phar -o composer.phar http://getcomposer.org/composer.phar
+
+composer-install: composer.phar
+	$(PHP) composer.phar $(COMPOSER_FLAGS) install --dev
+
+composer-update: clean composer.phar
+	$(PHP) composer.phar $(COMPOSER_FLAGS) update --dev
+
+vendor/bin/phpunit: composer-install
+vendor/bin/phpcs: composer-install
+vendor/bin/sami.php: composer-install
diff --git a/core/vendor/easyrdf/easyrdf/README.md b/core/vendor/easyrdf/easyrdf/README.md
new file mode 100644
index 000000000000..3a71ccdda119
--- /dev/null
+++ b/core/vendor/easyrdf/easyrdf/README.md
@@ -0,0 +1,136 @@
+EasyRdf
+=======
+EasyRdf is a PHP library designed to make it easy to consume and produce [RDF].
+It was designed for use in mixed teams of experienced and inexperienced RDF
+developers. It is written in Object Oriented PHP and has been tested
+extensively using PHPUnit.
+
+After parsing EasyRdf builds up a graph of PHP objects that can then be walked
+around to get the data to be placed on the page. Dump methods are available to
+inspect what data is available during development.
+
+Data is typically loaded into a [EasyRdf_Graph] object from source RDF
+documents, loaded from the web via HTTP. The [EasyRdf_GraphStore] class
+simplifies loading and saving data to a SPARQL 1.1 Graph Store.
+
+SPARQL queries can be made over HTTP to a Triplestore using the
+[EasyRdf_Sparql_Client] class. SELECT and ASK queries will return an
+[EasyRdf_Sparql_Result] object and CONSTRUCT and DESCRIBE queries will return
+an [EasyRdf_Graph] object.
+
+### Example ###
+
+    $foaf = new EasyRdf_Graph("http://njh.me/foaf.rdf");
+    $foaf->load();
+    $me = $foaf->primaryTopic();
+    echo "My name is: ".$me->get('foaf:name')."\n";
+
+
+Downloads
+---------
+
+The latest version of EasyRdf can be [downloaded from GitHub].
+
+
+Links
+-----
+
+* [EasyRdf Homepage](http://www.easyrdf.org/)
+* [API documentation](http://www.easyrdf.org/docs/api/)
+* [Change Log](http://github.com/njh/easyrdf/blob/master/CHANGELOG.md)
+* Source Code: <http://github.com/njh/easyrdf>
+* Issue Tracker: <http://github.com/njh/easyrdf/issues>
+
+
+Requirements
+------------
+
+* PHP 5.2.8 or higher
+
+
+Features
+--------
+
+* API documentation written in phpdoc
+* Extensive unit tests written using phpunit
+  * Automated testing against PHP 5.2, 5.3 and 5.4
+* Built-in parsers and serialisers: RDF/JSON, N-Triples, RDF/XML, Turtle
+* Optional parsing support for: [ARC2], [Redland Bindings], [rapper]
+* Optional support for [Zend_Http_Client]
+* No required external dependancies upon other libraries (PEAR, Zend, etc...)
+* Complies with Zend Framework coding style.
+* Type mapper - resources of type foaf:Person can be mapped into PHP object of class Foaf_Person
+* Support for visualisation of graphs using [GraphViz]
+* Comes with a number of examples
+
+
+Property Paths
+--------------
+
+EasyRdf supports querying the data in a graph using basic property paths.
+This is a small subset of the property paths described in [SPARQL 1.1 query language].
+
+
+You may use the caret character (^) to get an inverse property, for example:
+
+    $person = $homepage->get('^foaf:homepage');
+
+You can use the pipe character (|) to get alternate properties, for example:
+
+    $title = $document->get('dc:title|dc11:title');
+
+You can use a forward slash (/) to follow a property sequence, for example to get
+the names of all my friends:
+
+    $names = $me->all('foaf:knows/foaf:name');
+
+Finally, in order to use a full property URI, enclose it in angle brackets:
+
+    $name = $me->get('<http://xmlns.com/foaf/0.1/name>');
+
+
+More Examples
+-------------
+
+* [artistinfo.php](https://github.com/njh/easyrdf/blob/master/examples/artistinfo.php#slider) - Example of mapping an RDF class type to a PHP Class
+* [basic.php](https://github.com/njh/easyrdf/blob/master/examples/basic.php#slider) - Basic "Hello World" type example
+* [basic_sparql.php](https://github.com/njh/easyrdf/blob/master/examples/basic_sparql.php#slider) - Example of making a SPARQL SELECT query
+* [converter.php](https://github.com/njh/easyrdf/blob/master/examples/converter.php#slider) - Convert RDF from one format to another
+* [dump.php](https://github.com/njh/easyrdf/blob/master/examples/dump.php#slider) - Display the contents of a graph
+* [foafinfo.php](https://github.com/njh/easyrdf/blob/master/examples/foafinfo.php#slider) - Display the basic information in a FOAF document
+* [foafmaker.php](https://github.com/njh/easyrdf/blob/master/examples/foafmaker.php#slider) - Construct a FOAF document with a choice of serialisations
+* [graph_direct.php](https://github.com/njh/easyrdf/blob/master/examples/graph_direct.php#slider) - Example of using EasyRdf_Graph directly without EasyRdf_Resource
+* [graphstore.php](https://github.com/njh/easyrdf/blob/master/examples/graphstore.php#slider) - Store and retrieve data from a SPARQL 1.1 Graph Store
+* [graphviz.php](https://github.com/njh/easyrdf/blob/master/examples/graphviz.php#slider) - GraphViz rendering example
+* [html_tag_helpers.php](https://github.com/njh/easyrdf/blob/master/examples/html_tag_helpers.php#slider) - Rails Style html tag helpers to make the EasyRdf examples simplier
+* [httpget.php](https://github.com/njh/easyrdf/blob/master/examples/httpget.php#slider) - No RDF, just test EasyRdf_Http_Client
+* [serialise.php](https://github.com/njh/easyrdf/blob/master/examples/serialise.php#slider) - Basic serialisation example
+* [sparql_queryform.php](https://github.com/njh/easyrdf/blob/master/examples/sparql_queryform.php#slider) - Form to submit SPARQL queries and display the result
+* [uk_postcode.php](https://github.com/njh/easyrdf/blob/master/examples/uk_postcode.php#slider) - Example of resolving UK postcodes using uk-postcodes.com
+* [villages.php](https://github.com/njh/easyrdf/blob/master/examples/villages.php#slider) - Fetch and information about villages in Fife from dbpedialite.org
+* [zend_framework.php](https://github.com/njh/easyrdf/blob/master/examples/zend_framework.php#slider) - Example of using Zend_Http_Client and Zend_Loader_Autoloader with EasyRdf
+
+
+Licensing
+---------
+
+The EasyRdf library and tests are licensed under the [BSD-3-Clause] license.
+The examples are in the public domain, for more information see [UNLICENSE].
+
+
+
+[EasyRdf_Graph]:http://www.easyrdf.org/docs/api/EasyRdf_Graph.html
+[EasyRdf_GraphStore]:http://www.easyrdf.org/docs/api/EasyRdf_GraphStore.html
+[EasyRdf_Sparql_Client]:http://www.easyrdf.org/docs/api/EasyRdf_Sparql_Client.html
+[EasyRdf_Sparql_Result]:http://www.easyrdf.org/docs/api/EasyRdf_Sparql_Result.html
+
+[ARC2]:http://github.com/semsol/arc2/
+[BSD-3-Clause]:http://www.opensource.org/licenses/BSD-3-Clause
+[downloaded from github]:https://github.com/njh/easyrdf/downloads
+[GraphViz]:http://www.graphviz.org/
+[rapper]:http://librdf.org/raptor/rapper.html
+[RDF]:http://en.wikipedia.org/wiki/Resource_Description_Framework
+[Redland Bindings]:http://librdf.org/bindings/
+[SPARQL 1.1 query language]:http://www.w3.org/TR/sparql11-query/
+[UNLICENSE]:http://unlicense.org/
+[Zend_Http_Client]:http://framework.zend.com/manual/en/zend.http.client.html
diff --git a/core/vendor/easyrdf/easyrdf/composer.json b/core/vendor/easyrdf/easyrdf/composer.json
new file mode 100644
index 000000000000..8ce254edec34
--- /dev/null
+++ b/core/vendor/easyrdf/easyrdf/composer.json
@@ -0,0 +1,36 @@
+{
+    "name": "easyrdf/easyrdf",
+    "description": "EasyRdf is a PHP library designed to make it easy to consume and produce RDF.",
+    "version": "0.8.0",
+    "type": "library",
+    "keywords": ["RDF", "Semantic Web", "Linked Data", "Turtle", "RDFa"],
+    "homepage": "http://www.easyrdf.org/",
+    "license": "BSD-3-Clause",
+    "authors": [
+        {
+            "name": "Nicholas Humfrey",
+            "email": "njh@aelius.com",
+            "homepage": "http://www.aelius.com/njh/",
+            "role": "Developer"
+        }
+    ],
+    "support": {
+        "forum": "http://groups.google.com/group/easyrdf/",
+        "issues": "http://github.com/njh/easyrdf/issues",
+        "irc": "irc://chat.freenode.net/easyrdf"
+    },
+    "require": {
+        "php": ">=5.2.8"
+    },
+    "require-dev": {
+        "phpunit/PHPUnit": ">=3.5.15",
+        "squizlabs/php_codesniffer": ">=1.4.3",
+        "sami/sami": "dev-master"
+    },
+    "replace": {
+        "njh/easyrdf": "self.version"
+    },
+    "autoload": {
+        "psr-0": { "EasyRdf_": "lib/" }
+    }
+}
diff --git a/core/vendor/easyrdf/easyrdf/doap.php b/core/vendor/easyrdf/easyrdf/doap.php
new file mode 100644
index 000000000000..60274ff9ca01
--- /dev/null
+++ b/core/vendor/easyrdf/easyrdf/doap.php
@@ -0,0 +1,46 @@
+<?php
+    set_include_path(get_include_path() . PATH_SEPARATOR . './lib/');
+    require_once "EasyRdf.php";
+
+    // Load some properties from the composer file
+    $composer = json_decode(file_get_contents('composer.json'));
+
+    // Start building up a RDF graph
+    $doap = new EasyRdf_Graph($composer->homepage.'doap.rdf');
+    $easyrdf = $doap->resource('#easyrdf', 'doap:Project', 'foaf:Project');
+    $easyrdf->addLiteral('doap:name',  'EasyRDF');
+    $easyrdf->addLiteral('doap:shortname', 'easyrdf');
+    $easyrdf->addLiteral('doap:revision', $composer->version);
+    $easyrdf->addLiteral('doap:shortdesc', $composer->description, 'en');
+    $easyrdf->addResource('doap:homepage', $composer->homepage);
+
+    $easyrdf->addLiteral('doap:programming-language', 'PHP');
+    $easyrdf->addLiteral(
+        'doap:description', 'EasyRdf is a PHP library designed to make it easy to consume and produce RDF. '.
+        'It was designed for use in mixed teams of experienced and inexperienced RDF developers. '.
+        'It is written in Object Oriented PHP and has been tested extensively using PHPUnit.', 'en'
+    );
+    $easyrdf->addResource('doap:license', 'http://usefulinc.com/doap/licenses/bsd');
+    $easyrdf->addResource('doap:download-page', 'http://github.com/njh/easyrdf/downloads');
+    $easyrdf->addResource('doap:download-page', 'http://github.com/njh/easyrdf/downloads');
+    $easyrdf->addResource('doap:bug-database', 'http://github.com/njh/easyrdf/issues');
+    $easyrdf->addResource('doap:mailing-list', 'http://groups.google.com/group/easyrdf');
+
+    $easyrdf->addResource('doap:category', 'http://dbpedia.org/resource/Resource_Description_Framework');
+    $easyrdf->addResource('doap:category', 'http://dbpedia.org/resource/PHP');
+    $easyrdf->addResource('doap:category', 'http://dbpedialite.org/things/24131#id');
+    $easyrdf->addResource('doap:category', 'http://dbpedialite.org/things/53847#id');
+
+    $repository = $doap->newBNode('doap:GitRepository');
+    $repository->addResource('doap:browse', 'http://github.com/njh/easyrdf');
+    $repository->addResource('doap:location', 'git://github.com/njh/easyrdf.git');
+    $easyrdf->addResource('doap:repository', $repository);
+
+    $njh = $doap->resource('http://njh.me/', 'foaf:Person');
+    $njh->addLiteral('foaf:name', 'Nicholas J Humfrey');
+    $njh->addResource('foaf:homepage', 'http://www.aelius.com/njh/');
+    $easyrdf->add('doap:maintainer', $njh);
+    $easyrdf->add('doap:developer', $njh);
+    $easyrdf->add('foaf:maker', $njh);
+
+    print $doap->serialise('rdfxml');
diff --git a/core/vendor/njh/easyrdf/lib/EasyRdf.php b/core/vendor/easyrdf/easyrdf/lib/EasyRdf.php
similarity index 100%
rename from core/vendor/njh/easyrdf/lib/EasyRdf.php
rename to core/vendor/easyrdf/easyrdf/lib/EasyRdf.php
diff --git a/core/vendor/njh/easyrdf/lib/EasyRdf/Exception.php b/core/vendor/easyrdf/easyrdf/lib/EasyRdf/Exception.php
similarity index 100%
rename from core/vendor/njh/easyrdf/lib/EasyRdf/Exception.php
rename to core/vendor/easyrdf/easyrdf/lib/EasyRdf/Exception.php
diff --git a/core/vendor/njh/easyrdf/lib/EasyRdf/Format.php b/core/vendor/easyrdf/easyrdf/lib/EasyRdf/Format.php
similarity index 100%
rename from core/vendor/njh/easyrdf/lib/EasyRdf/Format.php
rename to core/vendor/easyrdf/easyrdf/lib/EasyRdf/Format.php
diff --git a/core/vendor/njh/easyrdf/lib/EasyRdf/Graph.php b/core/vendor/easyrdf/easyrdf/lib/EasyRdf/Graph.php
similarity index 100%
rename from core/vendor/njh/easyrdf/lib/EasyRdf/Graph.php
rename to core/vendor/easyrdf/easyrdf/lib/EasyRdf/Graph.php
diff --git a/core/vendor/njh/easyrdf/lib/EasyRdf/GraphStore.php b/core/vendor/easyrdf/easyrdf/lib/EasyRdf/GraphStore.php
similarity index 100%
rename from core/vendor/njh/easyrdf/lib/EasyRdf/GraphStore.php
rename to core/vendor/easyrdf/easyrdf/lib/EasyRdf/GraphStore.php
diff --git a/core/vendor/njh/easyrdf/lib/EasyRdf/Http.php b/core/vendor/easyrdf/easyrdf/lib/EasyRdf/Http.php
similarity index 100%
rename from core/vendor/njh/easyrdf/lib/EasyRdf/Http.php
rename to core/vendor/easyrdf/easyrdf/lib/EasyRdf/Http.php
diff --git a/core/vendor/njh/easyrdf/lib/EasyRdf/Http/Client.php b/core/vendor/easyrdf/easyrdf/lib/EasyRdf/Http/Client.php
similarity index 100%
rename from core/vendor/njh/easyrdf/lib/EasyRdf/Http/Client.php
rename to core/vendor/easyrdf/easyrdf/lib/EasyRdf/Http/Client.php
diff --git a/core/vendor/njh/easyrdf/lib/EasyRdf/Http/Response.php b/core/vendor/easyrdf/easyrdf/lib/EasyRdf/Http/Response.php
similarity index 100%
rename from core/vendor/njh/easyrdf/lib/EasyRdf/Http/Response.php
rename to core/vendor/easyrdf/easyrdf/lib/EasyRdf/Http/Response.php
diff --git a/core/vendor/njh/easyrdf/lib/EasyRdf/Literal.php b/core/vendor/easyrdf/easyrdf/lib/EasyRdf/Literal.php
similarity index 100%
rename from core/vendor/njh/easyrdf/lib/EasyRdf/Literal.php
rename to core/vendor/easyrdf/easyrdf/lib/EasyRdf/Literal.php
diff --git a/core/vendor/njh/easyrdf/lib/EasyRdf/Literal/Boolean.php b/core/vendor/easyrdf/easyrdf/lib/EasyRdf/Literal/Boolean.php
similarity index 100%
rename from core/vendor/njh/easyrdf/lib/EasyRdf/Literal/Boolean.php
rename to core/vendor/easyrdf/easyrdf/lib/EasyRdf/Literal/Boolean.php
diff --git a/core/vendor/njh/easyrdf/lib/EasyRdf/Literal/Date.php b/core/vendor/easyrdf/easyrdf/lib/EasyRdf/Literal/Date.php
similarity index 100%
rename from core/vendor/njh/easyrdf/lib/EasyRdf/Literal/Date.php
rename to core/vendor/easyrdf/easyrdf/lib/EasyRdf/Literal/Date.php
diff --git a/core/vendor/njh/easyrdf/lib/EasyRdf/Literal/DateTime.php b/core/vendor/easyrdf/easyrdf/lib/EasyRdf/Literal/DateTime.php
similarity index 100%
rename from core/vendor/njh/easyrdf/lib/EasyRdf/Literal/DateTime.php
rename to core/vendor/easyrdf/easyrdf/lib/EasyRdf/Literal/DateTime.php
diff --git a/core/vendor/njh/easyrdf/lib/EasyRdf/Literal/Decimal.php b/core/vendor/easyrdf/easyrdf/lib/EasyRdf/Literal/Decimal.php
similarity index 100%
rename from core/vendor/njh/easyrdf/lib/EasyRdf/Literal/Decimal.php
rename to core/vendor/easyrdf/easyrdf/lib/EasyRdf/Literal/Decimal.php
diff --git a/core/vendor/njh/easyrdf/lib/EasyRdf/Literal/HTML.php b/core/vendor/easyrdf/easyrdf/lib/EasyRdf/Literal/HTML.php
similarity index 100%
rename from core/vendor/njh/easyrdf/lib/EasyRdf/Literal/HTML.php
rename to core/vendor/easyrdf/easyrdf/lib/EasyRdf/Literal/HTML.php
diff --git a/core/vendor/njh/easyrdf/lib/EasyRdf/Literal/HexBinary.php b/core/vendor/easyrdf/easyrdf/lib/EasyRdf/Literal/HexBinary.php
similarity index 100%
rename from core/vendor/njh/easyrdf/lib/EasyRdf/Literal/HexBinary.php
rename to core/vendor/easyrdf/easyrdf/lib/EasyRdf/Literal/HexBinary.php
diff --git a/core/vendor/njh/easyrdf/lib/EasyRdf/Literal/Integer.php b/core/vendor/easyrdf/easyrdf/lib/EasyRdf/Literal/Integer.php
similarity index 100%
rename from core/vendor/njh/easyrdf/lib/EasyRdf/Literal/Integer.php
rename to core/vendor/easyrdf/easyrdf/lib/EasyRdf/Literal/Integer.php
diff --git a/core/vendor/njh/easyrdf/lib/EasyRdf/Literal/XML.php b/core/vendor/easyrdf/easyrdf/lib/EasyRdf/Literal/XML.php
similarity index 100%
rename from core/vendor/njh/easyrdf/lib/EasyRdf/Literal/XML.php
rename to core/vendor/easyrdf/easyrdf/lib/EasyRdf/Literal/XML.php
diff --git a/core/vendor/njh/easyrdf/lib/EasyRdf/Namespace.php b/core/vendor/easyrdf/easyrdf/lib/EasyRdf/Namespace.php
similarity index 100%
rename from core/vendor/njh/easyrdf/lib/EasyRdf/Namespace.php
rename to core/vendor/easyrdf/easyrdf/lib/EasyRdf/Namespace.php
diff --git a/core/vendor/njh/easyrdf/lib/EasyRdf/ParsedUri.php b/core/vendor/easyrdf/easyrdf/lib/EasyRdf/ParsedUri.php
similarity index 100%
rename from core/vendor/njh/easyrdf/lib/EasyRdf/ParsedUri.php
rename to core/vendor/easyrdf/easyrdf/lib/EasyRdf/ParsedUri.php
diff --git a/core/vendor/njh/easyrdf/lib/EasyRdf/Parser.php b/core/vendor/easyrdf/easyrdf/lib/EasyRdf/Parser.php
similarity index 100%
rename from core/vendor/njh/easyrdf/lib/EasyRdf/Parser.php
rename to core/vendor/easyrdf/easyrdf/lib/EasyRdf/Parser.php
diff --git a/core/vendor/njh/easyrdf/lib/EasyRdf/Parser/Arc.php b/core/vendor/easyrdf/easyrdf/lib/EasyRdf/Parser/Arc.php
similarity index 100%
rename from core/vendor/njh/easyrdf/lib/EasyRdf/Parser/Arc.php
rename to core/vendor/easyrdf/easyrdf/lib/EasyRdf/Parser/Arc.php
diff --git a/core/vendor/njh/easyrdf/lib/EasyRdf/Parser/Json.php b/core/vendor/easyrdf/easyrdf/lib/EasyRdf/Parser/Json.php
similarity index 100%
rename from core/vendor/njh/easyrdf/lib/EasyRdf/Parser/Json.php
rename to core/vendor/easyrdf/easyrdf/lib/EasyRdf/Parser/Json.php
diff --git a/core/vendor/njh/easyrdf/lib/EasyRdf/Parser/Ntriples.php b/core/vendor/easyrdf/easyrdf/lib/EasyRdf/Parser/Ntriples.php
similarity index 100%
rename from core/vendor/njh/easyrdf/lib/EasyRdf/Parser/Ntriples.php
rename to core/vendor/easyrdf/easyrdf/lib/EasyRdf/Parser/Ntriples.php
diff --git a/core/vendor/njh/easyrdf/lib/EasyRdf/Parser/Rapper.php b/core/vendor/easyrdf/easyrdf/lib/EasyRdf/Parser/Rapper.php
similarity index 100%
rename from core/vendor/njh/easyrdf/lib/EasyRdf/Parser/Rapper.php
rename to core/vendor/easyrdf/easyrdf/lib/EasyRdf/Parser/Rapper.php
diff --git a/core/vendor/njh/easyrdf/lib/EasyRdf/Parser/RdfPhp.php b/core/vendor/easyrdf/easyrdf/lib/EasyRdf/Parser/RdfPhp.php
similarity index 100%
rename from core/vendor/njh/easyrdf/lib/EasyRdf/Parser/RdfPhp.php
rename to core/vendor/easyrdf/easyrdf/lib/EasyRdf/Parser/RdfPhp.php
diff --git a/core/vendor/njh/easyrdf/lib/EasyRdf/Parser/RdfXml.php b/core/vendor/easyrdf/easyrdf/lib/EasyRdf/Parser/RdfXml.php
similarity index 100%
rename from core/vendor/njh/easyrdf/lib/EasyRdf/Parser/RdfXml.php
rename to core/vendor/easyrdf/easyrdf/lib/EasyRdf/Parser/RdfXml.php
diff --git a/core/vendor/njh/easyrdf/lib/EasyRdf/Parser/Rdfa.php b/core/vendor/easyrdf/easyrdf/lib/EasyRdf/Parser/Rdfa.php
similarity index 100%
rename from core/vendor/njh/easyrdf/lib/EasyRdf/Parser/Rdfa.php
rename to core/vendor/easyrdf/easyrdf/lib/EasyRdf/Parser/Rdfa.php
diff --git a/core/vendor/njh/easyrdf/lib/EasyRdf/Parser/Redland.php b/core/vendor/easyrdf/easyrdf/lib/EasyRdf/Parser/Redland.php
similarity index 100%
rename from core/vendor/njh/easyrdf/lib/EasyRdf/Parser/Redland.php
rename to core/vendor/easyrdf/easyrdf/lib/EasyRdf/Parser/Redland.php
diff --git a/core/vendor/njh/easyrdf/lib/EasyRdf/Parser/Turtle.php b/core/vendor/easyrdf/easyrdf/lib/EasyRdf/Parser/Turtle.php
similarity index 100%
rename from core/vendor/njh/easyrdf/lib/EasyRdf/Parser/Turtle.php
rename to core/vendor/easyrdf/easyrdf/lib/EasyRdf/Parser/Turtle.php
diff --git a/core/vendor/njh/easyrdf/lib/EasyRdf/Resource.php b/core/vendor/easyrdf/easyrdf/lib/EasyRdf/Resource.php
similarity index 100%
rename from core/vendor/njh/easyrdf/lib/EasyRdf/Resource.php
rename to core/vendor/easyrdf/easyrdf/lib/EasyRdf/Resource.php
diff --git a/core/vendor/njh/easyrdf/lib/EasyRdf/Serialiser.php b/core/vendor/easyrdf/easyrdf/lib/EasyRdf/Serialiser.php
similarity index 100%
rename from core/vendor/njh/easyrdf/lib/EasyRdf/Serialiser.php
rename to core/vendor/easyrdf/easyrdf/lib/EasyRdf/Serialiser.php
diff --git a/core/vendor/njh/easyrdf/lib/EasyRdf/Serialiser/Arc.php b/core/vendor/easyrdf/easyrdf/lib/EasyRdf/Serialiser/Arc.php
similarity index 100%
rename from core/vendor/njh/easyrdf/lib/EasyRdf/Serialiser/Arc.php
rename to core/vendor/easyrdf/easyrdf/lib/EasyRdf/Serialiser/Arc.php
diff --git a/core/vendor/njh/easyrdf/lib/EasyRdf/Serialiser/GraphViz.php b/core/vendor/easyrdf/easyrdf/lib/EasyRdf/Serialiser/GraphViz.php
similarity index 100%
rename from core/vendor/njh/easyrdf/lib/EasyRdf/Serialiser/GraphViz.php
rename to core/vendor/easyrdf/easyrdf/lib/EasyRdf/Serialiser/GraphViz.php
diff --git a/core/vendor/njh/easyrdf/lib/EasyRdf/Serialiser/Json.php b/core/vendor/easyrdf/easyrdf/lib/EasyRdf/Serialiser/Json.php
similarity index 100%
rename from core/vendor/njh/easyrdf/lib/EasyRdf/Serialiser/Json.php
rename to core/vendor/easyrdf/easyrdf/lib/EasyRdf/Serialiser/Json.php
diff --git a/core/vendor/njh/easyrdf/lib/EasyRdf/Serialiser/Ntriples.php b/core/vendor/easyrdf/easyrdf/lib/EasyRdf/Serialiser/Ntriples.php
similarity index 100%
rename from core/vendor/njh/easyrdf/lib/EasyRdf/Serialiser/Ntriples.php
rename to core/vendor/easyrdf/easyrdf/lib/EasyRdf/Serialiser/Ntriples.php
diff --git a/core/vendor/njh/easyrdf/lib/EasyRdf/Serialiser/Rapper.php b/core/vendor/easyrdf/easyrdf/lib/EasyRdf/Serialiser/Rapper.php
similarity index 100%
rename from core/vendor/njh/easyrdf/lib/EasyRdf/Serialiser/Rapper.php
rename to core/vendor/easyrdf/easyrdf/lib/EasyRdf/Serialiser/Rapper.php
diff --git a/core/vendor/njh/easyrdf/lib/EasyRdf/Serialiser/RdfPhp.php b/core/vendor/easyrdf/easyrdf/lib/EasyRdf/Serialiser/RdfPhp.php
similarity index 100%
rename from core/vendor/njh/easyrdf/lib/EasyRdf/Serialiser/RdfPhp.php
rename to core/vendor/easyrdf/easyrdf/lib/EasyRdf/Serialiser/RdfPhp.php
diff --git a/core/vendor/njh/easyrdf/lib/EasyRdf/Serialiser/RdfXml.php b/core/vendor/easyrdf/easyrdf/lib/EasyRdf/Serialiser/RdfXml.php
similarity index 100%
rename from core/vendor/njh/easyrdf/lib/EasyRdf/Serialiser/RdfXml.php
rename to core/vendor/easyrdf/easyrdf/lib/EasyRdf/Serialiser/RdfXml.php
diff --git a/core/vendor/njh/easyrdf/lib/EasyRdf/Serialiser/Turtle.php b/core/vendor/easyrdf/easyrdf/lib/EasyRdf/Serialiser/Turtle.php
similarity index 100%
rename from core/vendor/njh/easyrdf/lib/EasyRdf/Serialiser/Turtle.php
rename to core/vendor/easyrdf/easyrdf/lib/EasyRdf/Serialiser/Turtle.php
diff --git a/core/vendor/njh/easyrdf/lib/EasyRdf/Sparql/Client.php b/core/vendor/easyrdf/easyrdf/lib/EasyRdf/Sparql/Client.php
similarity index 100%
rename from core/vendor/njh/easyrdf/lib/EasyRdf/Sparql/Client.php
rename to core/vendor/easyrdf/easyrdf/lib/EasyRdf/Sparql/Client.php
diff --git a/core/vendor/njh/easyrdf/lib/EasyRdf/Sparql/Result.php b/core/vendor/easyrdf/easyrdf/lib/EasyRdf/Sparql/Result.php
similarity index 100%
rename from core/vendor/njh/easyrdf/lib/EasyRdf/Sparql/Result.php
rename to core/vendor/easyrdf/easyrdf/lib/EasyRdf/Sparql/Result.php
diff --git a/core/vendor/njh/easyrdf/lib/EasyRdf/TypeMapper.php b/core/vendor/easyrdf/easyrdf/lib/EasyRdf/TypeMapper.php
similarity index 100%
rename from core/vendor/njh/easyrdf/lib/EasyRdf/TypeMapper.php
rename to core/vendor/easyrdf/easyrdf/lib/EasyRdf/TypeMapper.php
diff --git a/core/vendor/njh/easyrdf/lib/EasyRdf/Utils.php b/core/vendor/easyrdf/easyrdf/lib/EasyRdf/Utils.php
similarity index 100%
rename from core/vendor/njh/easyrdf/lib/EasyRdf/Utils.php
rename to core/vendor/easyrdf/easyrdf/lib/EasyRdf/Utils.php
diff --git a/core/vendor/guzzle/common/Guzzle/Common/Collection.php b/core/vendor/guzzle/common/Guzzle/Common/Collection.php
index b82df138164f..d0857b2cc7f9 100644
--- a/core/vendor/guzzle/common/Guzzle/Common/Collection.php
+++ b/core/vendor/guzzle/common/Guzzle/Common/Collection.php
@@ -355,21 +355,36 @@ public function set($key, $value)
      */
     public function inject($input)
     {
-        // Only perform the preg callback if needed
-        return strpos($input, '{') === false
-            ? $input
-            : preg_replace_callback('/{\s*([A-Za-z_\-\.0-9]+)\s*}/', array($this, 'getPregMatchValue'), $input);
+        $replace = array();
+        foreach ($this->data as $key => $val) {
+            $replace['{' . $key . '}'] = $val;
+        }
+
+        return strtr($input, $replace);
     }
 
     /**
-     * Return a collection value for a match array of a preg_replace function
+     * Gets a value from the collection using an array path (e.g. foo/baz/bar would retrieve bar from two nested arrays)
      *
-     * @param array $matches preg_replace* matches
+     * @param string $path      Path to traverse and retrieve a value from
+     * @param string $separator Character used to add depth to the search
      *
-     * @return mixed
+     * @return mixed|null
      */
-    public function getPregMatchValue(array $matches)
+    public function getPath($path, $separator = '/')
     {
-        return $this->get($matches[1]);
+        $parts = explode($separator, $path);
+        $data = &$this->data;
+
+        // Using an iterative approach rather than recursion for speed
+        while (null !== ($part = array_shift($parts))) {
+            // Return null if this path doesn't exist or if there's more depth and the value is not an array
+            if (!isset($data[$part]) || ($parts && !is_array($data[$part]))) {
+                return null;
+            }
+            $data = &$data[$part];
+        }
+
+        return $data;
     }
 }
diff --git a/core/vendor/guzzle/common/Guzzle/Common/Exception/ExceptionCollection.php b/core/vendor/guzzle/common/Guzzle/Common/Exception/ExceptionCollection.php
index 52473e8eeaec..76d499ec1d68 100644
--- a/core/vendor/guzzle/common/Guzzle/Common/Exception/ExceptionCollection.php
+++ b/core/vendor/guzzle/common/Guzzle/Common/Exception/ExceptionCollection.php
@@ -12,6 +12,20 @@ class ExceptionCollection extends \Exception implements GuzzleException, \Iterat
      */
     protected $exceptions = array();
 
+    /**
+     * Set all of the exceptions
+     *
+     * @param array $exceptions Array of exceptions
+     *
+     * @return self
+     */
+    public function setExceptions(array $exceptions)
+    {
+        $this->exceptions = $exceptions;
+
+        return $this;
+    }
+
     /**
      * Add exceptions to the collection
      *
@@ -55,4 +69,14 @@ public function getIterator()
     {
         return new \ArrayIterator($this->exceptions);
     }
+
+    /**
+     * Get the first exception in the collection
+     *
+     * @return \Exception
+     */
+    public function getFirst()
+    {
+        return $this->exceptions ? $this->exceptions[0] : null;
+    }
 }
diff --git a/core/vendor/guzzle/common/Guzzle/Common/Version.php b/core/vendor/guzzle/common/Guzzle/Common/Version.php
index 5383311daf14..8fd9512943a5 100644
--- a/core/vendor/guzzle/common/Guzzle/Common/Version.php
+++ b/core/vendor/guzzle/common/Guzzle/Common/Version.php
@@ -7,6 +7,5 @@
  */
 class Version
 {
-    const VERSION = '3.0.5';
+    const VERSION = '3.1.0';
 }
-
diff --git a/core/vendor/guzzle/common/Guzzle/Common/composer.json b/core/vendor/guzzle/common/Guzzle/Common/composer.json
index 62431ccd9727..5693c4d4d45a 100644
--- a/core/vendor/guzzle/common/Guzzle/Common/composer.json
+++ b/core/vendor/guzzle/common/Guzzle/Common/composer.json
@@ -11,5 +11,10 @@
     "autoload": {
         "psr-0": { "Guzzle\\Common": "" }
     },
-    "target-dir": "Guzzle/Common"
+    "target-dir": "Guzzle/Common",
+    "extra": {
+        "branch-alias": {
+            "dev-master": "3.0-dev"
+        }
+    }
 }
diff --git a/core/vendor/guzzle/http/Guzzle/Http/Client.php b/core/vendor/guzzle/http/Guzzle/Http/Client.php
index 2bb814f3ab48..d38ae144aa55 100644
--- a/core/vendor/guzzle/http/Guzzle/Http/Client.php
+++ b/core/vendor/guzzle/http/Guzzle/Http/Client.php
@@ -75,7 +75,7 @@ public function __construct($baseUrl = '', $config = null)
         // Allow ssl.certificate_authority config setting to control the certificate authority used by curl
         $authority = $this->config->get(self::SSL_CERT_AUTHORITY);
         // Use the system's cacert if in a phar (curl can't read from a phar stream wrapper)
-        if (strpos(__FILE__, 'phar://') === false && $authority === true) {
+        if (strpos(__FILE__, 'phar://') !== false && (null === $authority || $authority === true)) {
             $authority = 'system';
         }
         // Set the config setting to system to use the certificate authority bundle on your system
@@ -362,18 +362,13 @@ public function send($requests)
         try {
             $curlMulti->send();
         } catch (ExceptionCollection $e) {
-            throw $multipleRequests ? $e : $e->getIterator()->offsetGet(0);
+            throw $multipleRequests ? $e : $e->getFirst();
         }
 
         if (!$multipleRequests) {
             return end($requests)->getResponse();
         } else {
-            return array_map(
-                function ($request) {
-                    return $request->getResponse();
-                },
-                $requests
-            );
+            return array_map(function ($request) { return $request->getResponse(); }, $requests);
         }
     }
 
diff --git a/core/vendor/guzzle/http/Guzzle/Http/Curl/CurlHandle.php b/core/vendor/guzzle/http/Guzzle/Http/Curl/CurlHandle.php
index ffb704cc32f0..53cfbfcf0c25 100644
--- a/core/vendor/guzzle/http/Guzzle/Http/Curl/CurlHandle.php
+++ b/core/vendor/guzzle/http/Guzzle/Http/Curl/CurlHandle.php
@@ -208,7 +208,6 @@ public static function factory(RequestInterface $request)
         // Apply the options to a new cURL handle.
         $handle = curl_init();
         curl_setopt_array($handle, $curlOptions);
-        $request->getParams()->set('curl.last_options', $curlOptions);
 
         if ($tempContentLength) {
             $request->setHeader('Content-Length', $tempContentLength);
diff --git a/core/vendor/guzzle/http/Guzzle/Http/Curl/CurlMulti.php b/core/vendor/guzzle/http/Guzzle/Http/Curl/CurlMulti.php
index 3744d7ce7c1e..ceceb90e67f2 100644
--- a/core/vendor/guzzle/http/Guzzle/Http/Curl/CurlMulti.php
+++ b/core/vendor/guzzle/http/Guzzle/Http/Curl/CurlMulti.php
@@ -3,7 +3,7 @@
 namespace Guzzle\Http\Curl;
 
 use Guzzle\Common\AbstractHasDispatcher;
-use Guzzle\Common\Exception\ExceptionCollection;
+use Guzzle\Http\Exception\MultiTransferException;
 use Guzzle\Http\Exception\CurlException;
 use Guzzle\Http\Message\RequestInterface;
 
@@ -126,7 +126,7 @@ public function __construct()
         class_exists('Guzzle\Http\Message\Response');
         class_exists('Guzzle\Http\Exception\CurlException');
 
-        $this->createMutliHandle();
+        $this->createMultiHandle();
     }
 
     /**
@@ -246,7 +246,7 @@ public function reset($hard = false)
         }
 
         if ($hard) {
-            $this->createMutliHandle();
+            $this->createMultiHandle();
         }
     }
 
@@ -257,10 +257,11 @@ public function send()
     {
         $this->scope++;
         $this->state = self::STATE_SENDING;
+        $requestsInScope = empty($this->requests[$this->scope]) ? array() : $this->requests[$this->scope];
 
         // Only prepare and send requests that are in the current recursion scope
         // Only enter the main perform() loop if there are requests in scope
-        if (!empty($this->requests[$this->scope])) {
+        if ($requestsInScope) {
 
             // Any exceptions thrown from this event should break the entire flow of sending requests
             $this->dispatch(self::BEFORE_SEND, array(
@@ -276,20 +277,14 @@ public function send()
             try {
                 $this->perform();
             } catch (\Exception $e) {
-                $this->exceptions[] = $e;
+                $this->exceptions[] = array('request' => null, 'exception' => $e);
             }
         }
 
         $this->scope--;
 
-        // Aggregate exceptions into an ExceptionCollection
-        $exceptionCollection = null;
-        if (!empty($this->exceptions)) {
-            $exceptionCollection = new ExceptionCollection('Errors during multi transfer');
-            while ($e = array_shift($this->exceptions)) {
-                $exceptionCollection->add($e);
-            }
-        }
+        // Aggregate exceptions into a MultiTransferException if needed
+        $multiException = $this->buildMultiTransferException($requestsInScope);
 
         // Complete the transfer if this is not a nested scope
         if ($this->scope == -1) {
@@ -299,8 +294,8 @@ public function send()
         }
 
         // Throw any exceptions that were encountered
-        if ($exceptionCollection) {
-            throw $exceptionCollection;
+        if ($multiException) {
+            throw $multiException;
         }
     }
 
@@ -312,6 +307,43 @@ public function count()
         return count($this->all());
     }
 
+    /**
+     * Build a MultiTransferException if needed
+     *
+     * @param array $requestsInScope All requests in the previous scope
+     *
+     * @return MultiTransferException|null
+     */
+    protected function buildMultiTransferException(array $requestsInScope)
+    {
+        if (empty($this->exceptions)) {
+            return null;
+        }
+
+        // Keep a list of all requests, and remove errored requests from the list
+        $store = new \SplObjectStorage();
+        foreach ($requestsInScope as $request) {
+            $store->attach($request);
+        }
+
+        $multiException = new MultiTransferException('Errors during multi transfer');
+        while ($e = array_shift($this->exceptions)) {
+            $multiException->add($e['exception']);
+            if (isset($e['request'])) {
+                $multiException->addFailedRequest($e['request']);
+                // Remove from the total list so that it becomes a list of successful requests
+                unset($store[$e['request']]);
+            }
+        }
+
+        // Add successful requests
+        foreach ($store as $request) {
+            $multiException->addSuccessfulRequest($request);
+        }
+
+        return $multiException;
+    }
+
     /**
      * Prepare for sending
      *
@@ -379,43 +411,53 @@ protected function perform()
 
         // Create the polling event external to the loop
         $event = array('curl_multi' => $this);
+        $active = $this->executeHandles();
 
         while (1) {
 
-            $active = $this->executeHandles();
-
-            // Get messages from curl handles
-            while ($done = curl_multi_info_read($this->multiHandle)) {
-                $request = $this->resourceHash[(int) $done['handle']];
-                $handle = $this->handles[$request];
-                try {
-                    $this->processResponse($request, $handle, $done);
-                } catch (\Exception $e) {
-                    $this->removeErroredRequest($request, $e);
-                }
-            }
-
-            // Notify each request as polling and handled queued responses
-            $scopedPolling = $this->scope <= 0 ? $this->all() : $this->requests[$this->scope];
+            $this->processMessages();
 
             // Exit the function if there are no more requests to send
-            if (empty($scopedPolling)) {
+            if (!($scopedPolling = $this->scope <= 0 ? $this->all() : $this->requests[$this->scope])) {
                 break;
             }
 
-            // Notify all requests that requests are being polled
+            // Notify each request as polling
+            $blocking = $total = 0;
             foreach ($scopedPolling as $request) {
                 $event['request'] = $request;
                 $request->dispatch(self::POLLING_REQUEST, $event);
+                ++$total;
+                // The blocking variable just has to be non-falsey to block the loop
+                if ($request->getParams()->hasKey(self::BLOCKING)) {
+                    ++$blocking;
+                }
             }
 
-            if ($active) {
-                // Select the curl handles until there is any activity on any of the open file descriptors
-                // See https://github.com/php/php-src/blob/master/ext/curl/multi.c#L170
-                $active = $this->executeHandles(true, 0.1);
-            } else {
+            if ($blocking == $total) {
                 // Sleep to prevent eating CPU because no requests are actually pending a select call
                 usleep(500);
+            } else {
+                // Select the curl handles until there is any activity on any of the open file descriptors
+                // See https://github.com/php/php-src/blob/master/ext/curl/multi.c#L170
+                $active = $this->executeHandles(true, 0.02, $active);
+            }
+        }
+    }
+
+    /**
+     * Process any received curl multi messages
+     */
+    private function processMessages()
+    {
+        // Get messages from curl handles
+        while ($done = curl_multi_info_read($this->multiHandle)) {
+            try {
+                $request = $this->resourceHash[(int) $done['handle']];
+                $handle = $this->handles[$request];
+                $this->processResponse($request, $handle, $done);
+            } catch (\Exception $e) {
+                $this->removeErroredRequest($request, $e);
             }
         }
     }
@@ -425,29 +467,27 @@ protected function perform()
      *
      * @param bool $select  Set to TRUE to select the file descriptors
      * @param int  $timeout Select timeout in seconds
+     * @param int  $active  Previous active value
      *
      * @return int Returns the number of active handles
      */
-    private function executeHandles($select = false, $timeout = 1)
+    private function executeHandles($select = false, $timeout = 1, $active = 0)
     {
-        $active = $selectResult = 0;
-
         do {
-
-            if ($select) {
-                $selectResult = curl_multi_select($this->multiHandle, $timeout);
-            }
-
-            if ($selectResult === 0) {
-                do {
-                    $mrc = curl_multi_exec($this->multiHandle, $active);
-                } while ($mrc == CURLM_CALL_MULTI_PERFORM);
-                // Check the return value to ensure an error did not occur
-                $this->checkCurlResult($mrc);
+            // @codeCoverageIgnoreStart
+            if ($select && $active && curl_multi_select($this->multiHandle, $timeout) == -1) {
+                // Perform a usleep if a previously executed select returned -1
+                // @see https://bugs.php.net/bug.php?id=61141
+                usleep(125);
             }
-
+            // @codeCoverageIgnoreEnd
+            do {
+                $mrc = curl_multi_exec($this->multiHandle, $active);
+            } while ($mrc == CURLM_CALL_MULTI_PERFORM);
+            // Check the return value to ensure an error did not occur
+            $this->checkCurlResult($mrc);
         // Poll once if not selecting, or poll until there are no handles with activity
-        } while ($select && $active && $selectResult == 0);
+        } while ($select && $active);
 
         return $active;
     }
@@ -460,7 +500,7 @@ private function executeHandles($select = false, $timeout = 1)
      */
     protected function removeErroredRequest(RequestInterface $request, \Exception $e)
     {
-        $this->exceptions[] = $e;
+        $this->exceptions[] = array('request' => $request, 'exception' => $e);
         $this->remove($request);
         $request->setState(RequestInterface::STATE_ERROR);
         $this->dispatch(self::MULTI_EXCEPTION, array(
@@ -490,7 +530,7 @@ protected function processResponse(RequestInterface $request, CurlHandle $handle
         $this->removeHandle($request);
 
         if (!$curlException) {
-            $request->setState(RequestInterface::STATE_COMPLETE);
+            $request->setState(RequestInterface::STATE_COMPLETE, array('handle' => $handle));
             // Only remove the request if it wasn't resent as a result of the state change
             if ($request->getState() != RequestInterface::STATE_TRANSFER) {
                 $this->remove($request);
@@ -552,11 +592,11 @@ private function isCurlException(RequestInterface $request, CurlHandle $handle,
         }
 
         $handle->setErrorNo($curl['result']);
-        $e = new CurlException(sprintf('[curl] %s: %s [url] %s [info] %s [debug] %s',
-            $handle->getErrorNo(), $handle->getError(), $handle->getUrl(),
-            var_export($handle->getInfo(), true), $handle->getStderr()));
+        $e = new CurlException(sprintf('[curl] %s: %s [url] %s',
+            $handle->getErrorNo(), $handle->getError(), $handle->getUrl()));
         $e->setCurlHandle($handle)
           ->setRequest($request)
+          ->setCurlInfo($handle->getInfo())
           ->setError($handle->getError(), $handle->getErrorNo());
 
         return $e;
@@ -572,19 +612,17 @@ private function isCurlException(RequestInterface $request, CurlHandle $handle,
     private function checkCurlResult($code)
     {
         if ($code != CURLM_OK && $code != CURLM_CALL_MULTI_PERFORM) {
-            if (isset($this->multiErrors[$code])) {
-                $message = "cURL error: {$code} ({$this->multiErrors[$code][0]}): cURL message: {$this->multiErrors[$code][1]}";
-            } else {
-                $message = 'Unexpected cURL error: ' . $code;
-            }
-            throw new CurlException($message);
+            throw new CurlException(isset($this->multiErrors[$code])
+                ? "cURL error: {$code} ({$this->multiErrors[$code][0]}): cURL message: {$this->multiErrors[$code][1]}"
+                : 'Unexpected cURL error: ' . $code
+            );
         }
     }
 
     /**
      * Create the new cURL multi handle with error checking
      */
-    private function createMutliHandle()
+    private function createMultiHandle()
     {
         if ($this->multiHandle && is_resource($this->multiHandle)) {
             curl_multi_close($this->multiHandle);
diff --git a/core/vendor/guzzle/http/Guzzle/Http/Curl/CurlMultiInterface.php b/core/vendor/guzzle/http/Guzzle/Http/Curl/CurlMultiInterface.php
index 17cd684914c9..ff39a1a849ad 100644
--- a/core/vendor/guzzle/http/Guzzle/Http/Curl/CurlMultiInterface.php
+++ b/core/vendor/guzzle/http/Guzzle/Http/Curl/CurlMultiInterface.php
@@ -17,6 +17,7 @@ interface CurlMultiInterface extends HasDispatcherInterface, \Countable
     const ADD_REQUEST = 'curl_multi.add_request';
     const REMOVE_REQUEST = 'curl_multi.remove_request';
     const MULTI_EXCEPTION = 'curl_multi.exception';
+    const BLOCKING = 'curl_multi.blocking';
 
     const STATE_IDLE = 'idle';
     const STATE_SENDING = 'sending';
diff --git a/core/vendor/guzzle/http/Guzzle/Http/Exception/CurlException.php b/core/vendor/guzzle/http/Guzzle/Http/Exception/CurlException.php
index 39a54684bf4d..a6a744a74bb2 100644
--- a/core/vendor/guzzle/http/Guzzle/Http/Exception/CurlException.php
+++ b/core/vendor/guzzle/http/Guzzle/Http/Exception/CurlException.php
@@ -7,11 +7,12 @@
 /**
  * cURL request exception
  */
-class CurlException extends BadResponseException
+class CurlException extends RequestException
 {
     private $curlError;
     private $curlErrorNo;
     private $handle;
+    private $curlInfo = array();
 
     /**
      * Set the cURL error message
@@ -56,7 +57,7 @@ public function getCurlHandle()
     /**
      * Get the associated cURL error message
      *
-     * @return string
+     * @return string|null
      */
     public function getError()
     {
@@ -66,10 +67,35 @@ public function getError()
     /**
      * Get the associated cURL error number
      *
-     * @return int
+     * @return int|null
      */
     public function getErrorNo()
     {
         return $this->curlErrorNo;
     }
+
+    /**
+     * Returns curl information about the transfer
+     *
+     * @return array
+     */
+    public function getCurlInfo()
+    {
+        return $this->curlInfo;
+    }
+
+    /**
+     * Set curl transfer information
+     *
+     * @param array $info Array of curl transfer information
+     *
+     * @return self
+     * @link http://php.net/manual/en/function.curl-getinfo.php
+     */
+    public function setCurlInfo(array $info)
+    {
+        $this->curlInfo = $info;
+
+        return $this;
+    }
 }
diff --git a/core/vendor/guzzle/http/Guzzle/Http/Exception/MultiTransferException.php b/core/vendor/guzzle/http/Guzzle/Http/Exception/MultiTransferException.php
new file mode 100644
index 000000000000..27e4e58bbab5
--- /dev/null
+++ b/core/vendor/guzzle/http/Guzzle/Http/Exception/MultiTransferException.php
@@ -0,0 +1,101 @@
+<?php
+
+namespace Guzzle\Http\Exception;
+
+use Guzzle\Common\Exception\ExceptionCollection;
+use Guzzle\Http\Message\RequestInterface;
+
+/**
+ * Exception encountered during a multi transfer
+ */
+class MultiTransferException extends ExceptionCollection
+{
+    protected $successfulRequests = array();
+    protected $failedRequests = array();
+
+    /**
+     * Get all of the requests in the transfer
+     *
+     * @return array
+     */
+    public function getAllRequests()
+    {
+        return array_merge($this->successfulRequests, $this->failedRequests);
+    }
+
+    /**
+     * Add to the array of successful requests
+     *
+     * @param RequestInterface $request Successful request
+     *
+     * @return self
+     */
+    public function addSuccessfulRequest(RequestInterface $request)
+    {
+        $this->successfulRequests[] = $request;
+
+        return $this;
+    }
+
+    /**
+     * Add to the array of failed requests
+     *
+     * @param RequestInterface $request Failed request
+     *
+     * @return self
+     */
+    public function addFailedRequest(RequestInterface $request)
+    {
+        $this->failedRequests[] = $request;
+
+        return $this;
+    }
+
+    /**
+     * Set all of the successful requests
+     *
+     * @param array Array of requests
+     *
+     * @return self
+     */
+    public function setSuccessfulRequests(array $requests)
+    {
+        $this->successfulRequests = $requests;
+
+        return $this;
+    }
+
+    /**
+     * Set all of the failed requests
+     *
+     * @param array Array of requests
+     *
+     * @return self
+     */
+    public function setFailedRequests(array $requests)
+    {
+        $this->failedRequests = $requests;
+
+        return $this;
+    }
+
+    /**
+     * Get an array of successful requests sent in the multi transfer
+     *
+     * @return array
+     */
+    public function getSuccessfulRequests()
+    {
+        return $this->successfulRequests;
+    }
+
+    /**
+     * Get an array of failed requests sent in the multi transfer
+     *
+     * @return array
+     */
+    public function getFailedRequests()
+    {
+        return $this->failedRequests;
+    }
+}
diff --git a/core/vendor/guzzle/http/Guzzle/Http/IoEmittingEntityBody.php b/core/vendor/guzzle/http/Guzzle/Http/IoEmittingEntityBody.php
new file mode 100644
index 000000000000..15193c1aee0d
--- /dev/null
+++ b/core/vendor/guzzle/http/Guzzle/Http/IoEmittingEntityBody.php
@@ -0,0 +1,100 @@
+<?php
+
+namespace Guzzle\Http;
+
+use Guzzle\Common\Event;
+use Guzzle\Common\HasDispatcherInterface;
+use Symfony\Component\EventDispatcher\EventDispatcher;
+use Symfony\Component\EventDispatcher\EventSubscriberInterface;
+use Symfony\Component\EventDispatcher\EventDispatcherInterface;
+
+/**
+ * EntityBody decorator that emits events for read and write methods
+ */
+class IoEmittingEntityBody extends AbstractEntityBodyDecorator implements HasDispatcherInterface
+{
+    /**
+     * @var EventDispatcherInterface
+     */
+    protected $eventDispatcher;
+
+    /**
+     * {@inheritdoc}
+     */
+    public static function getAllEvents()
+    {
+        return array('body.read', 'body.write');
+    }
+
+    /**
+     * {@inheritdoc}
+     * @codeCoverageIgnore
+     */
+    public function setEventDispatcher(EventDispatcherInterface $eventDispatcher)
+    {
+        $this->eventDispatcher = $eventDispatcher;
+
+        return $this;
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function getEventDispatcher()
+    {
+        if (!$this->eventDispatcher) {
+            $this->eventDispatcher = new EventDispatcher();
+        }
+
+        return $this->eventDispatcher;
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function dispatch($eventName, array $context = array())
+    {
+        $this->getEventDispatcher()->dispatch($eventName, new Event($context));
+    }
+
+    /**
+     * {@inheritdoc}
+     * @codeCoverageIgnore
+     */
+    public function addSubscriber(EventSubscriberInterface $subscriber)
+    {
+        $this->getEventDispatcher()->addSubscriber($subscriber);
+
+        return $this;
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function read($length)
+    {
+        $event = array(
+            'body'   => $this,
+            'length' => $length,
+            'read'   => $this->body->read($length)
+        );
+        $this->dispatch('body.read', $event);
+
+        return $event['read'];
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function write($string)
+    {
+        $event = array(
+            'body'   => $this,
+            'write'  => $string,
+            'result' => $this->body->write($string)
+        );
+        $this->dispatch('body.write', $event);
+
+        return $event['result'];
+    }
+}
diff --git a/core/vendor/guzzle/http/Guzzle/Http/Message/EntityEnclosingRequest.php b/core/vendor/guzzle/http/Guzzle/Http/Message/EntityEnclosingRequest.php
index 21019e4c6f43..46bd51532485 100644
--- a/core/vendor/guzzle/http/Guzzle/Http/Message/EntityEnclosingRequest.php
+++ b/core/vendor/guzzle/http/Guzzle/Http/Message/EntityEnclosingRequest.php
@@ -61,9 +61,9 @@ public function __toString()
     /**
      * {@inheritdoc}
      */
-    public function setState($state)
+    public function setState($state, array $context = array())
     {
-        parent::setState($state);
+        parent::setState($state, $context);
         if ($state == self::STATE_TRANSFER && !$this->body && !count($this->postFields) && !count($this->postFiles)) {
             $this->setHeader('Content-Length', 0)->removeHeader('Transfer-Encoding');
         }
diff --git a/core/vendor/guzzle/http/Guzzle/Http/Message/Request.php b/core/vendor/guzzle/http/Guzzle/Http/Message/Request.php
index 59b7b0dbd72e..a41b93342ffb 100644
--- a/core/vendor/guzzle/http/Guzzle/Http/Message/Request.php
+++ b/core/vendor/guzzle/http/Guzzle/Http/Message/Request.php
@@ -5,6 +5,7 @@
 use Guzzle\Common\Event;
 use Guzzle\Common\Collection;
 use Guzzle\Common\Exception\RuntimeException;
+use Guzzle\Common\Exception\InvalidArgumentException;
 use Guzzle\Http\Utils;
 use Guzzle\Http\Exception\RequestException;
 use Guzzle\Http\Exception\BadResponseException;
@@ -456,13 +457,13 @@ public function getState()
     /**
      * {@inheritdoc}
      */
-    public function setState($state)
+    public function setState($state, array $context = array())
     {
         $this->state = $state;
         if ($this->state == self::STATE_NEW) {
             $this->response = null;
         } elseif ($this->state == self::STATE_COMPLETE) {
-            $this->processResponse();
+            $this->processResponse($context);
             $this->responseBody = null;
         }
 
@@ -542,9 +543,18 @@ public function setResponse(Response $response, $queued = false)
     /**
      * {@inheritdoc}
      */
-    public function setResponseBody(EntityBodyInterface $body)
+    public function setResponseBody($body)
     {
-        $this->responseBody = $body;
+        // Attempt to open a file for writing if a string was passed
+        if (is_string($body)) {
+            // @codeCoverageIgnoreStart
+            if (!($body = fopen($body, 'w+'))) {
+                throw new InvalidArgumentException('Could not open ' . $body . ' for writing');
+            }
+            // @codeCoverageIgnoreEnd
+        }
+
+        $this->responseBody = EntityBody::factory($body);
 
         return $this;
     }
@@ -715,9 +725,11 @@ protected function getEventArray()
     /**
      * Process a received response
      *
+     * @param array $context Contextual information
+     *
      * @throws BadResponseException on unsuccessful responses
      */
-    protected function processResponse()
+    protected function processResponse(array $context = array())
     {
         // Use the queued response if one is set
         if ($this->getParams()->get('queued_response')) {
@@ -734,7 +746,7 @@ protected function processResponse()
         $this->state = self::STATE_COMPLETE;
 
         // A request was sent, but we don't know if we'll send more or if the final response will be successful
-        $this->dispatch('request.sent', $this->getEventArray());
+        $this->dispatch('request.sent', $this->getEventArray() + $context);
 
         // Some response processors will remove the response or reset the state (example: ExponentialBackoffPlugin)
         if ($this->state == RequestInterface::STATE_COMPLETE) {
diff --git a/core/vendor/guzzle/http/Guzzle/Http/Message/RequestInterface.php b/core/vendor/guzzle/http/Guzzle/Http/Message/RequestInterface.php
index 05bafc513ce1..3928e4e0fcc9 100644
--- a/core/vendor/guzzle/http/Guzzle/Http/Message/RequestInterface.php
+++ b/core/vendor/guzzle/http/Guzzle/Http/Message/RequestInterface.php
@@ -233,11 +233,12 @@ public function getState();
     /**
      * Set the state of the request
      *
-     * @param string $state State of the request (complete, sending, or new)
+     * @param string $state   State of the request (complete, sending, or new)
+     * @param array  $context Contextual information about the state change
      *
      * @return RequestInterface
      */
-    public function setState($state);
+    public function setState($state, array $context = array());
 
     /**
      * Get the cURL options that will be applied when the cURL handle is created
@@ -261,11 +262,11 @@ public function receiveResponseHeader($data);
      * This method should be invoked when you need to send the response's entity body somewhere other than the normal
      * php://temp buffer. For example, you can send the entity body to a socket, file, or some other custom stream.
      *
-     * @param EntityBodyInterface $body Response body object
-     *
+     * @param EntityBodyInterface|string|resource $body Response body object. Pass a string to attempt to store the
+     *                                                  response body in a local file.
      * @return Request
      */
-    public function setResponseBody(EntityBodyInterface $body);
+    public function setResponseBody($body);
 
     /**
      * Determine if the response body is repeatable (readable + seekable)
diff --git a/core/vendor/guzzle/http/Guzzle/Http/composer.json b/core/vendor/guzzle/http/Guzzle/Http/composer.json
index a55a85540b21..b82400367618 100644
--- a/core/vendor/guzzle/http/Guzzle/Http/composer.json
+++ b/core/vendor/guzzle/http/Guzzle/Http/composer.json
@@ -13,6 +13,7 @@
     ],
     "require": {
         "php": ">=5.3.2",
+        "ext-curl": "*",
         "guzzle/common": "self.version",
         "guzzle/parser": "self.version",
         "guzzle/stream": "self.version"
@@ -20,5 +21,10 @@
     "autoload": {
         "psr-0": { "Guzzle\\Http": "" }
     },
-    "target-dir": "Guzzle/Http"
+    "target-dir": "Guzzle/Http",
+    "extra": {
+        "branch-alias": {
+            "dev-master": "3.0-dev"
+        }
+    }
 }
diff --git a/core/vendor/guzzle/parser/Guzzle/Parser/UriTemplate/UriTemplate.php b/core/vendor/guzzle/parser/Guzzle/Parser/UriTemplate/UriTemplate.php
index 93ee40b63579..00d2310a60a6 100644
--- a/core/vendor/guzzle/parser/Guzzle/Parser/UriTemplate/UriTemplate.php
+++ b/core/vendor/guzzle/parser/Guzzle/Parser/UriTemplate/UriTemplate.php
@@ -186,7 +186,7 @@ private function expandMatch(array $matches)
 
                 if (empty($variable)) {
                     $actuallyUseQueryString = false;
-                } else if ($value['modifier'] == '*') {
+                } elseif ($value['modifier'] == '*') {
                     $expanded = implode($joiner, $kvp);
                     if ($isAssoc) {
                         // Don't prepend the value name when using the explode modifier with an associative array
diff --git a/core/vendor/guzzle/parser/Guzzle/Parser/composer.json b/core/vendor/guzzle/parser/Guzzle/Parser/composer.json
index 898ff5098d91..9c10342426c7 100644
--- a/core/vendor/guzzle/parser/Guzzle/Parser/composer.json
+++ b/core/vendor/guzzle/parser/Guzzle/Parser/composer.json
@@ -10,5 +10,10 @@
     "autoload": {
         "psr-0": { "Guzzle\\Parser": "" }
     },
-    "target-dir": "Guzzle/Parser"
+    "target-dir": "Guzzle/Parser",
+    "extra": {
+        "branch-alias": {
+            "dev-master": "3.0-dev"
+        }
+    }
 }
diff --git a/core/vendor/guzzle/stream/Guzzle/Stream/composer.json b/core/vendor/guzzle/stream/Guzzle/Stream/composer.json
index 6c2cc38b3182..99edfe89a176 100644
--- a/core/vendor/guzzle/stream/Guzzle/Stream/composer.json
+++ b/core/vendor/guzzle/stream/Guzzle/Stream/composer.json
@@ -18,5 +18,10 @@
     "autoload": {
         "psr-0": { "Guzzle\\Stream": "" }
     },
-    "target-dir": "Guzzle/Stream"
+    "target-dir": "Guzzle/Stream",
+    "extra": {
+        "branch-alias": {
+            "dev-master": "3.0-dev"
+        }
+    }
 }
-- 
GitLab