You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airavata.apache.org by nd...@apache.org on 2015/05/01 23:32:51 UTC

[04/57] [partial] airavata-php-gateway git commit: AIRAVATA 1632 + Job Description for Admin Dashboard

http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/01413d65/vendor/laravel/framework/src/Illuminate/Support/Facades/Validator.php
----------------------------------------------------------------------
diff --git a/vendor/laravel/framework/src/Illuminate/Support/Facades/Validator.php b/vendor/laravel/framework/src/Illuminate/Support/Facades/Validator.php
new file mode 100755
index 0000000..e070133
--- /dev/null
+++ b/vendor/laravel/framework/src/Illuminate/Support/Facades/Validator.php
@@ -0,0 +1,15 @@
+<?php namespace Illuminate\Support\Facades;
+
+/**
+ * @see \Illuminate\Validation\Factory
+ */
+class Validator extends Facade {
+
+	/**
+	 * Get the registered name of the component.
+	 *
+	 * @return string
+	 */
+	protected static function getFacadeAccessor() { return 'validator'; }
+
+}

http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/01413d65/vendor/laravel/framework/src/Illuminate/Support/Facades/View.php
----------------------------------------------------------------------
diff --git a/vendor/laravel/framework/src/Illuminate/Support/Facades/View.php b/vendor/laravel/framework/src/Illuminate/Support/Facades/View.php
new file mode 100755
index 0000000..7489155
--- /dev/null
+++ b/vendor/laravel/framework/src/Illuminate/Support/Facades/View.php
@@ -0,0 +1,15 @@
+<?php namespace Illuminate\Support\Facades;
+
+/**
+ * @see \Illuminate\View\Factory
+ */
+class View extends Facade {
+
+	/**
+	 * Get the registered name of the component.
+	 *
+	 * @return string
+	 */
+	protected static function getFacadeAccessor() { return 'view'; }
+
+}

http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/01413d65/vendor/laravel/framework/src/Illuminate/Support/Fluent.php
----------------------------------------------------------------------
diff --git a/vendor/laravel/framework/src/Illuminate/Support/Fluent.php b/vendor/laravel/framework/src/Illuminate/Support/Fluent.php
new file mode 100755
index 0000000..7325379
--- /dev/null
+++ b/vendor/laravel/framework/src/Illuminate/Support/Fluent.php
@@ -0,0 +1,193 @@
+<?php namespace Illuminate\Support;
+
+use ArrayAccess;
+use JsonSerializable;
+use Illuminate\Support\Contracts\JsonableInterface;
+use Illuminate\Support\Contracts\ArrayableInterface;
+
+class Fluent implements ArrayAccess, ArrayableInterface, JsonableInterface, JsonSerializable {
+
+	/**
+	 * All of the attributes set on the container.
+	 *
+	 * @var array
+	 */
+	protected $attributes = array();
+
+	/**
+	 * Create a new fluent container instance.
+	 *
+	 * @param  array|object	$attributes
+	 * @return void
+	 */
+	public function __construct($attributes = array())
+	{
+		foreach ($attributes as $key => $value)
+		{
+			$this->attributes[$key] = $value;
+		}
+	}
+
+	/**
+	 * Get an attribute from the container.
+	 *
+	 * @param  string  $key
+	 * @param  mixed   $default
+	 * @return mixed
+	 */
+	public function get($key, $default = null)
+	{
+		if (array_key_exists($key, $this->attributes))
+		{
+			return $this->attributes[$key];
+		}
+
+		return value($default);
+	}
+
+	/**
+	 * Get the attributes from the container.
+	 *
+	 * @return array
+	 */
+	public function getAttributes()
+	{
+		return $this->attributes;
+	}
+
+	/**
+	 * Convert the Fluent instance to an array.
+	 *
+	 * @return array
+	 */
+	public function toArray()
+	{
+		return $this->attributes;
+	}
+
+	/**
+	 * Convert the object into something JSON serializable.
+	 *
+	 * @return array
+	 */
+	public function jsonSerialize()
+	{
+		return $this->toArray();
+	}
+
+	/**
+	 * Convert the Fluent instance to JSON.
+	 *
+	 * @param  int  $options
+	 * @return string
+	 */
+	public function toJson($options = 0)
+	{
+		return json_encode($this->toArray(), $options);
+	}
+
+	/**
+	 * Determine if the given offset exists.
+	 *
+	 * @param  string  $offset
+	 * @return bool
+	 */
+	public function offsetExists($offset)
+	{
+		return isset($this->{$offset});
+	}
+
+	/**
+	 * Get the value for a given offset.
+	 *
+	 * @param  string  $offset
+	 * @return mixed
+	 */
+	public function offsetGet($offset)
+	{
+		return $this->{$offset};
+	}
+
+	/**
+	 * Set the value at the given offset.
+	 *
+	 * @param  string  $offset
+	 * @param  mixed   $value
+	 * @return void
+	 */
+	public function offsetSet($offset, $value)
+	{
+		$this->{$offset} = $value;
+	}
+
+	/**
+	 * Unset the value at the given offset.
+	 *
+	 * @param  string  $offset
+	 * @return void
+	 */
+	public function offsetUnset($offset)
+	{
+		unset($this->{$offset});
+	}
+
+	/**
+	 * Handle dynamic calls to the container to set attributes.
+	 *
+	 * @param  string  $method
+	 * @param  array   $parameters
+	 * @return $this
+	 */
+	public function __call($method, $parameters)
+	{
+		$this->attributes[$method] = count($parameters) > 0 ? $parameters[0] : true;
+
+		return $this;
+	}
+
+	/**
+	 * Dynamically retrieve the value of an attribute.
+	 *
+	 * @param  string  $key
+	 * @return mixed
+	 */
+	public function __get($key)
+	{
+		return $this->get($key);
+	}
+
+	/**
+	 * Dynamically set the value of an attribute.
+	 *
+	 * @param  string  $key
+	 * @param  mixed   $value
+	 * @return void
+	 */
+	public function __set($key, $value)
+	{
+		$this->attributes[$key] = $value;
+	}
+
+	/**
+	 * Dynamically check if an attribute is set.
+	 *
+	 * @param  string  $key
+	 * @return void
+	 */
+	public function __isset($key)
+	{
+		return isset($this->attributes[$key]);
+	}
+
+	/**
+	 * Dynamically unset an attribute.
+	 *
+	 * @param  string  $key
+	 * @return void
+	 */
+	public function __unset($key)
+	{
+		unset($this->attributes[$key]);
+	}
+
+}

http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/01413d65/vendor/laravel/framework/src/Illuminate/Support/Manager.php
----------------------------------------------------------------------
diff --git a/vendor/laravel/framework/src/Illuminate/Support/Manager.php b/vendor/laravel/framework/src/Illuminate/Support/Manager.php
new file mode 100755
index 0000000..d0493c5
--- /dev/null
+++ b/vendor/laravel/framework/src/Illuminate/Support/Manager.php
@@ -0,0 +1,141 @@
+<?php namespace Illuminate\Support;
+
+use Closure;
+
+abstract class Manager {
+
+	/**
+	 * The application instance.
+	 *
+	 * @var \Illuminate\Foundation\Application
+	 */
+	protected $app;
+
+	/**
+	 * The registered custom driver creators.
+	 *
+	 * @var array
+	 */
+	protected $customCreators = array();
+
+	/**
+	 * The array of created "drivers".
+	 *
+	 * @var array
+	 */
+	protected $drivers = array();
+
+	/**
+	 * Create a new manager instance.
+	 *
+	 * @param  \Illuminate\Foundation\Application  $app
+	 * @return void
+	 */
+	public function __construct($app)
+	{
+		$this->app = $app;
+	}
+
+	/**
+	 * Get the default driver name.
+	 *
+	 * @return string
+	 */
+	abstract public function getDefaultDriver();
+
+	/**
+	 * Get a driver instance.
+	 *
+	 * @param  string  $driver
+	 * @return mixed
+	 */
+	public function driver($driver = null)
+	{
+		$driver = $driver ?: $this->getDefaultDriver();
+
+		// If the given driver has not been created before, we will create the instances
+		// here and cache it so we can return it next time very quickly. If there is
+		// already a driver created by this name, we'll just return that instance.
+		if ( ! isset($this->drivers[$driver]))
+		{
+			$this->drivers[$driver] = $this->createDriver($driver);
+		}
+
+		return $this->drivers[$driver];
+	}
+
+	/**
+	 * Create a new driver instance.
+	 *
+	 * @param  string  $driver
+	 * @return mixed
+	 *
+	 * @throws \InvalidArgumentException
+	 */
+	protected function createDriver($driver)
+	{
+		$method = 'create'.ucfirst($driver).'Driver';
+
+		// We'll check to see if a creator method exists for the given driver. If not we
+		// will check for a custom driver creator, which allows developers to create
+		// drivers using their own customized driver creator Closure to create it.
+		if (isset($this->customCreators[$driver]))
+		{
+			return $this->callCustomCreator($driver);
+		}
+		elseif (method_exists($this, $method))
+		{
+			return $this->$method();
+		}
+
+		throw new \InvalidArgumentException("Driver [$driver] not supported.");
+	}
+
+	/**
+	 * Call a custom driver creator.
+	 *
+	 * @param  string  $driver
+	 * @return mixed
+	 */
+	protected function callCustomCreator($driver)
+	{
+		return $this->customCreators[$driver]($this->app);
+	}
+
+	/**
+	 * Register a custom driver creator Closure.
+	 *
+	 * @param  string    $driver
+	 * @param  \Closure  $callback
+	 * @return $this
+	 */
+	public function extend($driver, Closure $callback)
+	{
+		$this->customCreators[$driver] = $callback;
+
+		return $this;
+	}
+
+	/**
+	 * Get all of the created "drivers".
+	 *
+	 * @return array
+	 */
+	public function getDrivers()
+	{
+		return $this->drivers;
+	}
+
+	/**
+	 * Dynamically call the default driver instance.
+	 *
+	 * @param  string  $method
+	 * @param  array   $parameters
+	 * @return mixed
+	 */
+	public function __call($method, $parameters)
+	{
+		return call_user_func_array(array($this->driver(), $method), $parameters);
+	}
+
+}

http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/01413d65/vendor/laravel/framework/src/Illuminate/Support/MessageBag.php
----------------------------------------------------------------------
diff --git a/vendor/laravel/framework/src/Illuminate/Support/MessageBag.php b/vendor/laravel/framework/src/Illuminate/Support/MessageBag.php
new file mode 100755
index 0000000..fa9c716
--- /dev/null
+++ b/vendor/laravel/framework/src/Illuminate/Support/MessageBag.php
@@ -0,0 +1,305 @@
+<?php namespace Illuminate\Support;
+
+use Countable;
+use JsonSerializable;
+use Illuminate\Support\Contracts\JsonableInterface;
+use Illuminate\Support\Contracts\ArrayableInterface;
+use Illuminate\Support\Contracts\MessageProviderInterface;
+
+class MessageBag implements ArrayableInterface, Countable, JsonableInterface, MessageProviderInterface, JsonSerializable {
+
+	/**
+	 * All of the registered messages.
+	 *
+	 * @var array
+	 */
+	protected $messages = array();
+
+	/**
+	 * Default format for message output.
+	 *
+	 * @var string
+	 */
+	protected $format = ':message';
+
+	/**
+	 * Create a new message bag instance.
+	 *
+	 * @param  array  $messages
+	 * @return void
+	 */
+	public function __construct(array $messages = array())
+	{
+		foreach ($messages as $key => $value)
+		{
+			$this->messages[$key] = (array) $value;
+		}
+	}
+
+	/**
+	 * Add a message to the bag.
+	 *
+	 * @param  string  $key
+	 * @param  string  $message
+	 * @return $this
+	 */
+	public function add($key, $message)
+	{
+		if ($this->isUnique($key, $message))
+		{
+			$this->messages[$key][] = $message;
+		}
+
+		return $this;
+	}
+
+	/**
+	 * Merge a new array of messages into the bag.
+	 *
+	 * @param  \Illuminate\Support\Contracts\MessageProviderInterface|array  $messages
+	 * @return $this
+	 */
+	public function merge($messages)
+	{
+		if ($messages instanceof MessageProviderInterface)
+		{
+			$messages = $messages->getMessageBag()->getMessages();
+		}
+
+		$this->messages = array_merge_recursive($this->messages, $messages);
+
+		return $this;
+	}
+
+	/**
+	 * Determine if a key and message combination already exists.
+	 *
+	 * @param  string  $key
+	 * @param  string  $message
+	 * @return bool
+	 */
+	protected function isUnique($key, $message)
+	{
+		$messages = (array) $this->messages;
+
+		return ! isset($messages[$key]) || ! in_array($message, $messages[$key]);
+	}
+
+	/**
+	 * Determine if messages exist for a given key.
+	 *
+	 * @param  string  $key
+	 * @return bool
+	 */
+	public function has($key = null)
+	{
+		return $this->first($key) !== '';
+	}
+
+	/**
+	 * Get the first message from the bag for a given key.
+	 *
+	 * @param  string  $key
+	 * @param  string  $format
+	 * @return string
+	 */
+	public function first($key = null, $format = null)
+	{
+		$messages = is_null($key) ? $this->all($format) : $this->get($key, $format);
+
+		return (count($messages) > 0) ? $messages[0] : '';
+	}
+
+	/**
+	 * Get all of the messages from the bag for a given key.
+	 *
+	 * @param  string  $key
+	 * @param  string  $format
+	 * @return array
+	 */
+	public function get($key, $format = null)
+	{
+		$format = $this->checkFormat($format);
+
+		// If the message exists in the container, we will transform it and return
+		// the message. Otherwise, we'll return an empty array since the entire
+		// methods is to return back an array of messages in the first place.
+		if (array_key_exists($key, $this->messages))
+		{
+			return $this->transform($this->messages[$key], $format, $key);
+		}
+
+		return array();
+	}
+
+	/**
+	 * Get all of the messages for every key in the bag.
+	 *
+	 * @param  string  $format
+	 * @return array
+	 */
+	public function all($format = null)
+	{
+		$format = $this->checkFormat($format);
+
+		$all = array();
+
+		foreach ($this->messages as $key => $messages)
+		{
+			$all = array_merge($all, $this->transform($messages, $format, $key));
+		}
+
+		return $all;
+	}
+
+	/**
+	 * Format an array of messages.
+	 *
+	 * @param  array   $messages
+	 * @param  string  $format
+	 * @param  string  $messageKey
+	 * @return array
+	 */
+	protected function transform($messages, $format, $messageKey)
+	{
+		$messages = (array) $messages;
+
+		// We will simply spin through the given messages and transform each one
+		// replacing the :message place holder with the real message allowing
+		// the messages to be easily formatted to each developer's desires.
+		foreach ($messages as &$message)
+		{
+			$replace = array(':message', ':key');
+
+			$message = str_replace($replace, array($message, $messageKey), $format);
+		}
+
+		return $messages;
+	}
+
+	/**
+	 * Get the appropriate format based on the given format.
+	 *
+	 * @param  string  $format
+	 * @return string
+	 */
+	protected function checkFormat($format)
+	{
+		return ($format === null) ? $this->format : $format;
+	}
+
+	/**
+	 * Get the raw messages in the container.
+	 *
+	 * @return array
+	 */
+	public function getMessages()
+	{
+		return $this->messages;
+	}
+
+	/**
+	 * Get the messages for the instance.
+	 *
+	 * @return \Illuminate\Support\MessageBag
+	 */
+	public function getMessageBag()
+	{
+		return $this;
+	}
+
+	/**
+	 * Get the default message format.
+	 *
+	 * @return string
+	 */
+	public function getFormat()
+	{
+		return $this->format;
+	}
+
+	/**
+	 * Set the default message format.
+	 *
+	 * @param  string  $format
+	 * @return \Illuminate\Support\MessageBag
+	 */
+	public function setFormat($format = ':message')
+	{
+		$this->format = $format;
+
+		return $this;
+	}
+
+	/**
+	 * Determine if the message bag has any messages.
+	 *
+	 * @return bool
+	 */
+	public function isEmpty()
+	{
+		return ! $this->any();
+	}
+
+	/**
+	 * Determine if the message bag has any messages.
+	 *
+	 * @return bool
+	 */
+	public function any()
+	{
+		return $this->count() > 0;
+	}
+
+	/**
+	 * Get the number of messages in the container.
+	 *
+	 * @return int
+	 */
+	public function count()
+	{
+		return count($this->messages, COUNT_RECURSIVE) - count($this->messages);
+	}
+
+	/**
+	 * Get the instance as an array.
+	 *
+	 * @return array
+	 */
+	public function toArray()
+	{
+		return $this->getMessages();
+	}
+
+	/**
+	 * Convert the object into something JSON serializable.
+	 *
+	 * @return array
+	 */
+	public function jsonSerialize()
+	{
+		return $this->toArray();
+	}
+
+	/**
+	 * Convert the object to its JSON representation.
+	 *
+	 * @param  int  $options
+	 * @return string
+	 */
+	public function toJson($options = 0)
+	{
+		return json_encode($this->toArray(), $options);
+	}
+
+	/**
+	 * Convert the message bag to its string representation.
+	 *
+	 * @return string
+	 */
+	public function __toString()
+	{
+		return $this->toJson();
+	}
+
+}

http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/01413d65/vendor/laravel/framework/src/Illuminate/Support/NamespacedItemResolver.php
----------------------------------------------------------------------
diff --git a/vendor/laravel/framework/src/Illuminate/Support/NamespacedItemResolver.php b/vendor/laravel/framework/src/Illuminate/Support/NamespacedItemResolver.php
new file mode 100755
index 0000000..6c3366e
--- /dev/null
+++ b/vendor/laravel/framework/src/Illuminate/Support/NamespacedItemResolver.php
@@ -0,0 +1,109 @@
+<?php namespace Illuminate\Support;
+
+class NamespacedItemResolver {
+
+	/**
+	 * A cache of the parsed items.
+	 *
+	 * @var array
+	 */
+	protected $parsed = array();
+
+	/**
+	 * Parse a key into namespace, group, and item.
+	 *
+	 * @param  string  $key
+	 * @return array
+	 */
+	public function parseKey($key)
+	{
+		// If we've already parsed the given key, we'll return the cached version we
+		// already have, as this will save us some processing. We cache off every
+		// key we parse so we can quickly return it on all subsequent requests.
+		if (isset($this->parsed[$key]))
+		{
+			return $this->parsed[$key];
+		}
+
+		// If the key does not contain a double colon, it means the key is not in a
+		// namespace, and is just a regular configuration item. Namespaces are a
+		// tool for organizing configuration items for things such as modules.
+		if (strpos($key, '::') === false)
+		{
+			$segments = explode('.', $key);
+
+			$parsed = $this->parseBasicSegments($segments);
+		}
+		else
+		{
+			$parsed = $this->parseNamespacedSegments($key);
+		}
+
+		// Once we have the parsed array of this key's elements, such as its groups
+		// and namespace, we will cache each array inside a simple list that has
+		// the key and the parsed array for quick look-ups for later requests.
+		return $this->parsed[$key] = $parsed;
+	}
+
+	/**
+	 * Parse an array of basic segments.
+	 *
+	 * @param  array  $segments
+	 * @return array
+	 */
+	protected function parseBasicSegments(array $segments)
+	{
+		// The first segment in a basic array will always be the group, so we can go
+		// ahead and grab that segment. If there is only one total segment we are
+		// just pulling an entire group out of the array and not a single item.
+		$group = $segments[0];
+
+		if (count($segments) == 1)
+		{
+			return array(null, $group, null);
+		}
+
+		// If there is more than one segment in this group, it means we are pulling
+		// a specific item out of a groups and will need to return the item name
+		// as well as the group so we know which item to pull from the arrays.
+		else
+		{
+			$item = implode('.', array_slice($segments, 1));
+
+			return array(null, $group, $item);
+		}
+	}
+
+	/**
+	 * Parse an array of namespaced segments.
+	 *
+	 * @param  string  $key
+	 * @return array
+	 */
+	protected function parseNamespacedSegments($key)
+	{
+		list($namespace, $item) = explode('::', $key);
+
+		// First we'll just explode the first segment to get the namespace and group
+		// since the item should be in the remaining segments. Once we have these
+		// two pieces of data we can proceed with parsing out the item's value.
+		$itemSegments = explode('.', $item);
+
+		$groupAndItem = array_slice($this->parseBasicSegments($itemSegments), 1);
+
+		return array_merge(array($namespace), $groupAndItem);
+	}
+
+	/**
+	 * Set the parsed value of a key.
+	 *
+	 * @param  string  $key
+	 * @param  array   $parsed
+	 * @return void
+	 */
+	public function setParsedKey($key, $parsed)
+	{
+		$this->parsed[$key] = $parsed;
+	}
+
+}

http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/01413d65/vendor/laravel/framework/src/Illuminate/Support/Pluralizer.php
----------------------------------------------------------------------
diff --git a/vendor/laravel/framework/src/Illuminate/Support/Pluralizer.php b/vendor/laravel/framework/src/Illuminate/Support/Pluralizer.php
new file mode 100755
index 0000000..19174d2
--- /dev/null
+++ b/vendor/laravel/framework/src/Illuminate/Support/Pluralizer.php
@@ -0,0 +1,269 @@
+<?php namespace Illuminate\Support;
+
+class Pluralizer {
+
+	/**
+	 * Plural word form rules.
+	 *
+	 * @var array
+	 */
+	public static $plural = array(
+		'/(quiz)$/i' => "$1zes",
+		'/^(ox)$/i' => "$1en",
+		'/([m|l])ouse$/i' => "$1ice",
+		'/(matr|vert|ind)ix$|ex$/i' => "$1ices",
+		'/(stoma|epo|monar|matriar|patriar|oligar|eunu)ch$/i' => "$1chs",
+		'/(x|ch|ss|sh)$/i' => "$1es",
+		'/([^aeiouy]|qu)y$/i' => "$1ies",
+		'/(hive)$/i' => "$1s",
+		'/(?:([^f])fe|([lr])f)$/i' => "$1$2ves",
+		'/(shea|lea|loa|thie)f$/i' => "$1ves",
+		'/sis$/i' => "ses",
+		'/([ti])um$/i' => "$1a",
+		'/(torped|embarg|tomat|potat|ech|her|vet)o$/i' => "$1oes",
+		'/(bu)s$/i' => "$1ses",
+		'/(alias)$/i' => "$1es",
+		'/(fung)us$/i' => "$1i",
+		'/(ax|test)is$/i' => "$1es",
+		'/(us)$/i' => "$1es",
+		'/s$/i' => "s",
+		'/$/' => "s",
+	);
+
+	/**
+	 * Singular word form rules.
+	 *
+	 * @var array
+	 */
+	public static $singular = array(
+		'/(quiz)zes$/i' => "$1",
+		'/(matr)ices$/i' => "$1ix",
+		'/(vert|vort|ind)ices$/i' => "$1ex",
+		'/^(ox)en$/i' => "$1",
+		'/(alias)es$/i' => "$1",
+		'/(octop|vir|fung)i$/i' => "$1us",
+		'/(cris|ax|test)es$/i' => "$1is",
+		'/(shoe)s$/i' => "$1",
+		'/(o)es$/i' => "$1",
+		'/(bus)es$/i' => "$1",
+		'/([m|l])ice$/i' => "$1ouse",
+		'/(x|ch|ss|sh)es$/i' => "$1",
+		'/(m)ovies$/i' => "$1ovie",
+		'/(s)eries$/i' => "$1eries",
+		'/([^aeiouy]|qu)ies$/i' => "$1y",
+		'/([lr])ves$/i' => "$1f",
+		'/(tive)s$/i' => "$1",
+		'/(hive)s$/i' => "$1",
+		'/(li|wi|kni)ves$/i' => "$1fe",
+		'/(shea|loa|lea|thie)ves$/i' => "$1f",
+		'/(^analy)ses$/i' => "$1sis",
+		'/((a)naly|(b)a|(d)iagno|(p)arenthe|(p)rogno|(s)ynop|(t)he)ses$/i' => "$1$2sis",
+		'/([ti])a$/i' => "$1um",
+		'/(n)ews$/i' => "$1ews",
+		'/(h|bl)ouses$/i' => "$1ouse",
+		'/(corpse)s$/i' => "$1",
+		'/(gallows|headquarters)$/i' => "$1",
+		'/(us)es$/i' => "$1",
+		'/(us|ss)$/i' => "$1",
+		'/s$/i' => "",
+	);
+
+	/**
+	 * Irregular word forms.
+	 *
+	 * @var array
+	 */
+	public static $irregular = array(
+		'child' => 'children',
+		'corpus' => 'corpora',
+		'criterion' => 'criteria',
+		'foot' => 'feet',
+		'freshman' => 'freshmen',
+		'goose' => 'geese',
+		'genus' => 'genera',
+		'human' => 'humans',
+		'man' => 'men',
+		'move' => 'moves',
+		'nucleus' => 'nuclei',
+		'ovum' => 'ova',
+		'person' => 'people',
+		'phenomenon' => 'phenomena',
+		'radius' => 'radii',
+		'sex' => 'sexes',
+		'stimulus' => 'stimuli',
+		'syllabus' => 'syllabi',
+		'tax' => 'taxes',
+		'tech' => 'techs',
+		'tooth' => 'teeth',
+		'viscus' => 'viscera',
+	);
+
+	/**
+	 * Uncountable word forms.
+	 *
+	 * @var array
+	 */
+	public static $uncountable = array(
+		'audio',
+		'bison',
+		'chassis',
+		'compensation',
+		'coreopsis',
+		'data',
+		'deer',
+		'education',
+		'equipment',
+		'fish',
+		'gold',
+		'information',
+		'money',
+		'moose',
+		'offspring',
+		'plankton',
+		'police',
+		'rice',
+		'series',
+		'sheep',
+		'species',
+		'swine',
+		'traffic',
+	);
+
+	/**
+	 * The cached copies of the plural inflections.
+	 *
+	 * @var array
+	 */
+	protected static $pluralCache = array();
+
+	/**
+	 * The cached copies of the singular inflections.
+	 *
+	 * @var array
+	 */
+	protected static $singularCache = array();
+
+	/**
+	 * Get the singular form of the given word.
+	 *
+	 * @param  string  $value
+	 * @return string
+	 */
+	public static function singular($value)
+	{
+		if (isset(static::$singularCache[$value]))
+		{
+			return static::$singularCache[$value];
+		}
+
+		$result = static::inflect($value, static::$singular, static::$irregular);
+
+		return static::$singularCache[$value] = $result ?: $value;
+	}
+
+	/**
+	 * Get the plural form of the given word.
+	 *
+	 * @param  string  $value
+	 * @param  int     $count
+	 * @return string
+	 */
+	public static function plural($value, $count = 2)
+	{
+		if ($count == 1) return $value;
+
+		if (in_array($value, static::$irregular)) return $value;
+
+		// First we'll check the cache of inflected values. We cache each word that
+		// is inflected so we don't have to spin through the regular expressions
+		// on each subsequent method calls for this word by the app developer.
+		if (isset(static::$pluralCache[$value]))
+		{
+			return static::$pluralCache[$value];
+		}
+
+		$irregular = array_flip(static::$irregular);
+
+		// When doing the singular to plural transformation, we'll flip the irregular
+		// array since we need to swap sides on the keys and values. After we have
+		// the transformed value we will cache it in memory for faster look-ups.
+		$plural = static::$plural;
+
+		$result = static::inflect($value, $plural, $irregular);
+
+		return static::$pluralCache[$value] = $result;
+	}
+
+	/**
+	 * Perform auto inflection on an English word.
+	 *
+	 * @param  string  $value
+	 * @param  array   $source
+	 * @param  array   $irregular
+	 * @return string
+	 */
+	protected static function inflect($value, $source, $irregular)
+	{
+		if (static::uncountable($value)) return $value;
+
+		// Next, we will check the "irregular" patterns which contain words that are
+		// not easily summarized in regular expression rules, like "children" and
+		// "teeth", both of which cannot get inflected using our typical rules.
+		foreach ($irregular as $irregular => $pattern)
+		{
+			if (preg_match($pattern = '/'.$pattern.'$/i', $value))
+			{
+				$irregular = static::matchCase($irregular, $value);
+
+				return preg_replace($pattern, $irregular, $value);
+			}
+		}
+
+		// Finally, we'll spin through the array of regular expressions and look for
+		// matches for the word. If we find a match, we will cache and return the
+		// transformed value so we will quickly look it up on subsequent calls.
+		foreach ($source as $pattern => $inflected)
+		{
+			if (preg_match($pattern, $value))
+			{
+				$inflected = preg_replace($pattern, $inflected, $value);
+
+				return static::matchCase($inflected, $value);
+			}
+		}
+	}
+
+	/**
+	 * Determine if the given value is uncountable.
+	 *
+	 * @param  string  $value
+	 * @return bool
+	 */
+	protected static function uncountable($value)
+	{
+		return in_array(strtolower($value), static::$uncountable);
+	}
+
+	/**
+	 * Attempt to match the case on two strings.
+	 *
+	 * @param  string  $value
+	 * @param  string  $comparison
+	 * @return string
+	 */
+	protected static function matchCase($value, $comparison)
+	{
+		$functions = array('mb_strtolower', 'mb_strtoupper', 'ucfirst', 'ucwords');
+
+		foreach ($functions as $function)
+		{
+			if (call_user_func($function, $comparison) === $comparison)
+			{
+				return call_user_func($function, $value);
+			}
+		}
+
+		return $value;
+	}
+
+}

http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/01413d65/vendor/laravel/framework/src/Illuminate/Support/SerializableClosure.php
----------------------------------------------------------------------
diff --git a/vendor/laravel/framework/src/Illuminate/Support/SerializableClosure.php b/vendor/laravel/framework/src/Illuminate/Support/SerializableClosure.php
new file mode 100755
index 0000000..d8558fd
--- /dev/null
+++ b/vendor/laravel/framework/src/Illuminate/Support/SerializableClosure.php
@@ -0,0 +1,59 @@
+<?php namespace Illuminate\Support;
+
+use Jeremeamia\SuperClosure\SerializableClosure as SuperClosure;
+
+/**
+ * Extends SuperClosure for backwards compatibility.
+ */
+class SerializableClosure extends SuperClosure {
+
+	/**
+	 * The code for the closure
+	 *
+	 * @var string
+	 */
+	protected $code;
+
+	/**
+	 * The variables that were "used" or imported from the parent scope
+	 *
+	 * @var array
+	 */
+	protected $variables;
+
+	/**
+	 * Returns the code of the closure being serialized
+	 *
+	 * @return string
+	 */
+	public function getCode()
+	{
+		$this->determineCodeAndVariables();
+
+		return $this->code;
+	}
+
+	/**
+	 * Returns the "used" variables of the closure being serialized
+	 *
+	 * @return array
+	 */
+	public function getVariables()
+	{
+		$this->determineCodeAndVariables();
+
+		return $this->variables;
+	}
+
+	/**
+	 * Uses the serialize method directly to lazily fetch the code and variables if needed
+	 */
+	protected function determineCodeAndVariables()
+	{
+		if ( ! $this->code)
+		{
+			list($this->code, $this->variables) = unserialize($this->serialize());
+		}
+	}
+
+}

http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/01413d65/vendor/laravel/framework/src/Illuminate/Support/ServiceProvider.php
----------------------------------------------------------------------
diff --git a/vendor/laravel/framework/src/Illuminate/Support/ServiceProvider.php b/vendor/laravel/framework/src/Illuminate/Support/ServiceProvider.php
new file mode 100755
index 0000000..5c67964
--- /dev/null
+++ b/vendor/laravel/framework/src/Illuminate/Support/ServiceProvider.php
@@ -0,0 +1,192 @@
+<?php namespace Illuminate\Support;
+
+use ReflectionClass;
+
+abstract class ServiceProvider {
+
+	/**
+	 * The application instance.
+	 *
+	 * @var \Illuminate\Foundation\Application
+	 */
+	protected $app;
+
+	/**
+	 * Indicates if loading of the provider is deferred.
+	 *
+	 * @var bool
+	 */
+	protected $defer = false;
+
+	/**
+	 * Create a new service provider instance.
+	 *
+	 * @param  \Illuminate\Foundation\Application  $app
+	 * @return void
+	 */
+	public function __construct($app)
+	{
+		$this->app = $app;
+	}
+
+	/**
+	 * Bootstrap the application events.
+	 *
+	 * @return void
+	 */
+	public function boot() {}
+
+	/**
+	 * Register the service provider.
+	 *
+	 * @return void
+	 */
+	abstract public function register();
+
+	/**
+	 * Register the package's component namespaces.
+	 *
+	 * @param  string  $package
+	 * @param  string  $namespace
+	 * @param  string  $path
+	 * @return void
+	 */
+	public function package($package, $namespace = null, $path = null)
+	{
+		$namespace = $this->getPackageNamespace($package, $namespace);
+
+		// In this method we will register the configuration package for the package
+		// so that the configuration options cleanly cascade into the application
+		// folder to make the developers lives much easier in maintaining them.
+		$path = $path ?: $this->guessPackagePath();
+
+		$config = $path.'/config';
+
+		if ($this->app['files']->isDirectory($config))
+		{
+			$this->app['config']->package($package, $config, $namespace);
+		}
+
+		// Next we will check for any "language" components. If language files exist
+		// we will register them with this given package's namespace so that they
+		// may be accessed using the translation facilities of the application.
+		$lang = $path.'/lang';
+
+		if ($this->app['files']->isDirectory($lang))
+		{
+			$this->app['translator']->addNamespace($namespace, $lang);
+		}
+
+		// Next, we will see if the application view folder contains a folder for the
+		// package and namespace. If it does, we'll give that folder precedence on
+		// the loader list for the views so the package views can be overridden.
+		$appView = $this->getAppViewPath($package);
+
+		if ($this->app['files']->isDirectory($appView))
+		{
+			$this->app['view']->addNamespace($namespace, $appView);
+		}
+
+		// Finally we will register the view namespace so that we can access each of
+		// the views available in this package. We use a standard convention when
+		// registering the paths to every package's views and other components.
+		$view = $path.'/views';
+
+		if ($this->app['files']->isDirectory($view))
+		{
+			$this->app['view']->addNamespace($namespace, $view);
+		}
+	}
+
+	/**
+	 * Guess the package path for the provider.
+	 *
+	 * @return string
+	 */
+	public function guessPackagePath()
+	{
+		$path = (new ReflectionClass($this))->getFileName();
+
+		return realpath(dirname($path).'/../../');
+	}
+
+	/**
+	 * Determine the namespace for a package.
+	 *
+	 * @param  string  $package
+	 * @param  string  $namespace
+	 * @return string
+	 */
+	protected function getPackageNamespace($package, $namespace)
+	{
+		if (is_null($namespace))
+		{
+			list($vendor, $namespace) = explode('/', $package);
+		}
+
+		return $namespace;
+	}
+
+	/**
+	 * Register the package's custom Artisan commands.
+	 *
+	 * @param  array  $commands
+	 * @return void
+	 */
+	public function commands($commands)
+	{
+		$commands = is_array($commands) ? $commands : func_get_args();
+
+		// To register the commands with Artisan, we will grab each of the arguments
+		// passed into the method and listen for Artisan "start" event which will
+		// give us the Artisan console instance which we will give commands to.
+		$events = $this->app['events'];
+
+		$events->listen('artisan.start', function($artisan) use ($commands)
+		{
+			$artisan->resolveCommands($commands);
+		});
+	}
+
+	/**
+	 * Get the application package view path.
+	 *
+	 * @param  string  $package
+	 * @return string
+	 */
+	protected function getAppViewPath($package)
+	{
+		return $this->app['path']."/views/packages/{$package}";
+	}
+
+	/**
+	 * Get the services provided by the provider.
+	 *
+	 * @return array
+	 */
+	public function provides()
+	{
+		return array();
+	}
+
+	/**
+	 * Get the events that trigger this service provider to register.
+	 *
+	 * @return array
+	 */
+	public function when()
+	{
+		return array();
+	}
+
+	/**
+	 * Determine if the provider is deferred.
+	 *
+	 * @return bool
+	 */
+	public function isDeferred()
+	{
+		return $this->defer;
+	}
+
+}

http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/01413d65/vendor/laravel/framework/src/Illuminate/Support/Str.php
----------------------------------------------------------------------
diff --git a/vendor/laravel/framework/src/Illuminate/Support/Str.php b/vendor/laravel/framework/src/Illuminate/Support/Str.php
new file mode 100755
index 0000000..089372d
--- /dev/null
+++ b/vendor/laravel/framework/src/Illuminate/Support/Str.php
@@ -0,0 +1,366 @@
+<?php namespace Illuminate\Support;
+
+use Patchwork\Utf8;
+use Illuminate\Support\Traits\MacroableTrait;
+
+class Str {
+
+	use MacroableTrait;
+
+	/**
+	 * The cache of snake-cased words.
+	 *
+	 * @var array
+	 */
+	protected static $snakeCache = [];
+
+	/**
+	 * The cache of camel-cased words.
+	 *
+	 * @var array
+	 */
+	protected static $camelCache = [];
+
+	/**
+	 * The cache of studly-cased words.
+	 *
+	 * @var array
+	 */
+	protected static $studlyCache = [];
+
+	/**
+	 * Transliterate a UTF-8 value to ASCII.
+	 *
+	 * @param  string  $value
+	 * @return string
+	 */
+	public static function ascii($value)
+	{
+		return Utf8::toAscii($value);
+	}
+
+	/**
+	 * Convert a value to camel case.
+	 *
+	 * @param  string  $value
+	 * @return string
+	 */
+	public static function camel($value)
+	{
+		if (isset(static::$camelCache[$value]))
+		{
+			return static::$camelCache[$value];
+		}
+
+		return static::$camelCache[$value] = lcfirst(static::studly($value));
+	}
+
+	/**
+	 * Determine if a given string contains a given substring.
+	 *
+	 * @param  string  $haystack
+	 * @param  string|array  $needles
+	 * @return bool
+	 */
+	public static function contains($haystack, $needles)
+	{
+		foreach ((array) $needles as $needle)
+		{
+			if ($needle != '' && strpos($haystack, $needle) !== false) return true;
+		}
+
+		return false;
+	}
+
+	/**
+	 * Determine if a given string ends with a given substring.
+	 *
+	 * @param  string  $haystack
+	 * @param  string|array  $needles
+	 * @return bool
+	 */
+	public static function endsWith($haystack, $needles)
+	{
+		foreach ((array) $needles as $needle)
+		{
+			if ((string) $needle === substr($haystack, -strlen($needle))) return true;
+		}
+
+		return false;
+	}
+
+	/**
+	 * Cap a string with a single instance of a given value.
+	 *
+	 * @param  string  $value
+	 * @param  string  $cap
+	 * @return string
+	 */
+	public static function finish($value, $cap)
+	{
+		$quoted = preg_quote($cap, '/');
+
+		return preg_replace('/(?:'.$quoted.')+$/', '', $value).$cap;
+	}
+
+	/**
+	 * Determine if a given string matches a given pattern.
+	 *
+	 * @param  string  $pattern
+	 * @param  string  $value
+	 * @return bool
+	 */
+	public static function is($pattern, $value)
+	{
+		if ($pattern == $value) return true;
+
+		$pattern = preg_quote($pattern, '#');
+
+		// Asterisks are translated into zero-or-more regular expression wildcards
+		// to make it convenient to check if the strings starts with the given
+		// pattern such as "library/*", making any string check convenient.
+		$pattern = str_replace('\*', '.*', $pattern).'\z';
+
+		return (bool) preg_match('#^'.$pattern.'#', $value);
+	}
+
+	/**
+	 * Return the length of the given string.
+	 *
+	 * @param  string  $value
+	 * @return int
+	 */
+	public static function length($value)
+	{
+		return mb_strlen($value);
+	}
+
+	/**
+	 * Limit the number of characters in a string.
+	 *
+	 * @param  string  $value
+	 * @param  int     $limit
+	 * @param  string  $end
+	 * @return string
+	 */
+	public static function limit($value, $limit = 100, $end = '...')
+	{
+		if (mb_strlen($value) <= $limit) return $value;
+
+		return rtrim(mb_substr($value, 0, $limit, 'UTF-8')).$end;
+	}
+
+	/**
+	 * Convert the given string to lower-case.
+	 *
+	 * @param  string  $value
+	 * @return string
+	 */
+	public static function lower($value)
+	{
+		return mb_strtolower($value);
+	}
+
+	/**
+	 * Limit the number of words in a string.
+	 *
+	 * @param  string  $value
+	 * @param  int     $words
+	 * @param  string  $end
+	 * @return string
+	 */
+	public static function words($value, $words = 100, $end = '...')
+	{
+		preg_match('/^\s*+(?:\S++\s*+){1,'.$words.'}/u', $value, $matches);
+
+		if ( ! isset($matches[0]) || strlen($value) === strlen($matches[0])) return $value;
+
+		return rtrim($matches[0]).$end;
+	}
+
+	/**
+	 * Parse a Class@method style callback into class and method.
+	 *
+	 * @param  string  $callback
+	 * @param  string  $default
+	 * @return array
+	 */
+	public static function parseCallback($callback, $default)
+	{
+		return static::contains($callback, '@') ? explode('@', $callback, 2) : array($callback, $default);
+	}
+
+	/**
+	 * Get the plural form of an English word.
+	 *
+	 * @param  string  $value
+	 * @param  int     $count
+	 * @return string
+	 */
+	public static function plural($value, $count = 2)
+	{
+		return Pluralizer::plural($value, $count);
+	}
+
+	/**
+	 * Generate a more truly "random" alpha-numeric string.
+	 *
+	 * @param  int  $length
+	 * @return string
+	 *
+	 * @throws \RuntimeException
+	 */
+	public static function random($length = 16)
+	{
+		if (function_exists('openssl_random_pseudo_bytes'))
+		{
+			$bytes = openssl_random_pseudo_bytes($length * 2);
+
+			if ($bytes === false)
+			{
+				throw new \RuntimeException('Unable to generate random string.');
+			}
+
+			return substr(str_replace(array('/', '+', '='), '', base64_encode($bytes)), 0, $length);
+		}
+
+		return static::quickRandom($length);
+	}
+
+	/**
+	 * Generate a "random" alpha-numeric string.
+	 *
+	 * Should not be considered sufficient for cryptography, etc.
+	 *
+	 * @param  int  $length
+	 * @return string
+	 */
+	public static function quickRandom($length = 16)
+	{
+		$pool = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
+
+		return substr(str_shuffle(str_repeat($pool, $length)), 0, $length);
+	}
+
+	/**
+	 * Convert the given string to upper-case.
+	 *
+	 * @param  string  $value
+	 * @return string
+	 */
+	public static function upper($value)
+	{
+		return mb_strtoupper($value);
+	}
+
+	/**
+	 * Convert the given string to title case.
+	 *
+	 * @param  string  $value
+	 * @return string
+	 */
+	public static function title($value)
+	{
+		return mb_convert_case($value, MB_CASE_TITLE, 'UTF-8');
+	}
+
+	/**
+	 * Get the singular form of an English word.
+	 *
+	 * @param  string  $value
+	 * @return string
+	 */
+	public static function singular($value)
+	{
+		return Pluralizer::singular($value);
+	}
+
+	/**
+	 * Generate a URL friendly "slug" from a given string.
+	 *
+	 * @param  string  $title
+	 * @param  string  $separator
+	 * @return string
+	 */
+	public static function slug($title, $separator = '-')
+	{
+		$title = static::ascii($title);
+
+		// Convert all dashes/underscores into separator
+		$flip = $separator == '-' ? '_' : '-';
+
+		$title = preg_replace('!['.preg_quote($flip).']+!u', $separator, $title);
+
+		// Remove all characters that are not the separator, letters, numbers, or whitespace.
+		$title = preg_replace('![^'.preg_quote($separator).'\pL\pN\s]+!u', '', mb_strtolower($title));
+
+		// Replace all separator characters and whitespace by a single separator
+		$title = preg_replace('!['.preg_quote($separator).'\s]+!u', $separator, $title);
+
+		return trim($title, $separator);
+	}
+
+	/**
+	 * Convert a string to snake case.
+	 *
+	 * @param  string  $value
+	 * @param  string  $delimiter
+	 * @return string
+	 */
+	public static function snake($value, $delimiter = '_')
+	{
+		$key = $value.$delimiter;
+
+		if (isset(static::$snakeCache[$key]))
+		{
+			return static::$snakeCache[$key];
+		}
+
+		if ( ! ctype_lower($value))
+		{
+			$replace = '$1'.$delimiter.'$2';
+
+			$value = strtolower(preg_replace('/(.)([A-Z])/', $replace, $value));
+		}
+
+		return static::$snakeCache[$key] = $value;
+	}
+
+	/**
+	 * Determine if a given string starts with a given substring.
+	 *
+	 * @param  string  $haystack
+	 * @param  string|array  $needles
+	 * @return bool
+	 */
+	public static function startsWith($haystack, $needles)
+	{
+		foreach ((array) $needles as $needle)
+		{
+			if ($needle != '' && strpos($haystack, $needle) === 0) return true;
+		}
+
+		return false;
+	}
+
+	/**
+	 * Convert a value to studly caps case.
+	 *
+	 * @param  string  $value
+	 * @return string
+	 */
+	public static function studly($value)
+	{
+		$key = $value;
+
+		if (isset(static::$studlyCache[$key]))
+		{
+			return static::$studlyCache[$key];
+		}
+
+		$value = ucwords(str_replace(array('-', '_'), ' ', $value));
+
+		return static::$studlyCache[$key] = str_replace(' ', '', $value);
+	}
+
+}

http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/01413d65/vendor/laravel/framework/src/Illuminate/Support/Traits/CapsuleManagerTrait.php
----------------------------------------------------------------------
diff --git a/vendor/laravel/framework/src/Illuminate/Support/Traits/CapsuleManagerTrait.php b/vendor/laravel/framework/src/Illuminate/Support/Traits/CapsuleManagerTrait.php
new file mode 100644
index 0000000..efb5dfa
--- /dev/null
+++ b/vendor/laravel/framework/src/Illuminate/Support/Traits/CapsuleManagerTrait.php
@@ -0,0 +1,69 @@
+<?php namespace Illuminate\Support\Traits;
+
+use Illuminate\Support\Fluent;
+use Illuminate\Container\Container;
+
+trait CapsuleManagerTrait {
+
+	/**
+	 * The current globally used instance.
+	 *
+	 * @var object
+	 */
+	protected static $instance;
+
+	/**
+	 * The container instance.
+	 *
+	 * @var \Illuminate\Container\Container
+	 */
+	protected $container;
+
+	/**
+	 * Setup the IoC container instance.
+	 *
+	 * @param  \Illuminate\Container\Container|null  $container
+	 * @return void
+	 */
+	protected function setupContainer($container)
+	{
+		$this->container = $container ?: new Container;
+
+		if ( ! $this->container->bound('config'))
+		{
+			$this->container->instance('config', new Fluent);
+		}
+	}
+
+	/**
+	 * Make this capsule instance available globally.
+	 *
+	 * @return void
+	 */
+	public function setAsGlobal()
+	{
+		static::$instance = $this;
+	}
+
+	/**
+	 * Get the IoC container instance.
+	 *
+	 * @return \Illuminate\Container\Container
+	 */
+	public function getContainer()
+	{
+		return $this->container;
+	}
+
+	/**
+	 * Set the IoC container instance.
+	 *
+	 * @param  \Illuminate\Container\Container  $container
+	 * @return void
+	 */
+	public function setContainer(Container $container)
+	{
+		$this->container = $container;
+	}
+
+}

http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/01413d65/vendor/laravel/framework/src/Illuminate/Support/Traits/MacroableTrait.php
----------------------------------------------------------------------
diff --git a/vendor/laravel/framework/src/Illuminate/Support/Traits/MacroableTrait.php b/vendor/laravel/framework/src/Illuminate/Support/Traits/MacroableTrait.php
new file mode 100644
index 0000000..12a9148
--- /dev/null
+++ b/vendor/laravel/framework/src/Illuminate/Support/Traits/MacroableTrait.php
@@ -0,0 +1,68 @@
+<?php namespace Illuminate\Support\Traits;
+
+trait MacroableTrait {
+
+	/**
+	 * The registered string macros.
+	 *
+	 * @var array
+	 */
+	protected static $macros = array();
+
+	/**
+	 * Register a custom macro.
+	 *
+	 * @param  string    $name
+	 * @param  callable  $macro
+	 * @return void
+	 */
+	public static function macro($name, callable $macro)
+	{
+		static::$macros[$name] = $macro;
+	}
+
+	/**
+	 * Checks if macro is registered
+	 *
+	 * @param  string    $name
+	 * @return boolean
+	 */
+	public static function hasMacro($name)
+	{
+		return isset(static::$macros[$name]);
+	}
+
+	/**
+	 * Dynamically handle calls to the class.
+	 *
+	 * @param  string  $method
+	 * @param  array   $parameters
+	 * @return mixed
+	 *
+	 * @throws \BadMethodCallException
+	 */
+	public static function __callStatic($method, $parameters)
+	{
+		if (static::hasMacro($method))
+		{
+			return call_user_func_array(static::$macros[$method], $parameters);
+		}
+
+		throw new \BadMethodCallException("Method {$method} does not exist.");
+	}
+
+	/**
+	 * Dynamically handle calls to the class.
+	 *
+	 * @param  string  $method
+	 * @param  array   $parameters
+	 * @return mixed
+	 *
+	 * @throws \BadMethodCallException
+	 */
+	public function __call($method, $parameters)
+	{
+		return static::__callStatic($method, $parameters);
+	}
+
+}

http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/01413d65/vendor/laravel/framework/src/Illuminate/Support/ViewErrorBag.php
----------------------------------------------------------------------
diff --git a/vendor/laravel/framework/src/Illuminate/Support/ViewErrorBag.php b/vendor/laravel/framework/src/Illuminate/Support/ViewErrorBag.php
new file mode 100644
index 0000000..e26b14d
--- /dev/null
+++ b/vendor/laravel/framework/src/Illuminate/Support/ViewErrorBag.php
@@ -0,0 +1,105 @@
+<?php namespace Illuminate\Support;
+
+use Countable;
+
+class ViewErrorBag implements Countable {
+
+	/**
+	 * The array of the view error bags.
+	 *
+	 * @var array
+	 */
+	protected $bags = [];
+
+	/**
+	 * Checks if a named MessageBag exists in the bags.
+	 *
+	 * @param  string  $key
+	 * @return bool
+	 */
+	public function hasBag($key = 'default')
+	{
+		return isset($this->bags[$key]);
+	}
+
+	/**
+	 * Get a MessageBag instance from the bags.
+	 *
+	 * @param  string  $key
+	 * @return \Illuminate\Support\MessageBag
+	 */
+	public function getBag($key)
+	{
+		return array_get($this->bags, $key, new MessageBag);
+	}
+
+	/**
+	 * Get all the bags.
+	 *
+	 * @return array
+	 */
+	public function getBags()
+	{
+		return $this->bags;
+	}
+
+	/**
+	 * Add a new MessageBag instance to the bags.
+	 *
+	 * @param  string  $key
+	 * @param  \Illuminate\Support\MessageBag  $bag
+	 * @return $this
+	 */
+	public function put($key, MessageBag $bag)
+	{
+		$this->bags[$key] = $bag;
+
+		return $this;
+	}
+
+	/**
+	 * Get the number of messages in the default bag.
+	 *
+	 * @return int
+	 */
+	public function count()
+	{
+		return $this->default->count();
+	}
+
+	/**
+	 * Dynamically call methods on the default bag.
+	 *
+	 * @param  string  $method
+	 * @param  array  $parameters
+	 * @return mixed
+	 */
+	public function __call($method, $parameters)
+	{
+		return call_user_func_array(array($this->default, $method), $parameters);
+	}
+
+	/**
+	 * Dynamically access a view error bag.
+	 *
+	 * @param  string  $key
+	 * @return \Illuminate\Support\MessageBag
+	 */
+	public function __get($key)
+	{
+		return array_get($this->bags, $key, new MessageBag);
+	}
+
+	/**
+	 * Dynamically set a view error bag.
+	 *
+	 * @param  string  $key
+	 * @param  \Illuminate\Support\MessageBag  $value
+	 * @return void
+	 */
+	public function __set($key, $value)
+	{
+		array_set($this->bags, $key, $value);
+	}
+
+}

http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/01413d65/vendor/laravel/framework/src/Illuminate/Support/composer.json
----------------------------------------------------------------------
diff --git a/vendor/laravel/framework/src/Illuminate/Support/composer.json b/vendor/laravel/framework/src/Illuminate/Support/composer.json
new file mode 100755
index 0000000..e9e0f2b
--- /dev/null
+++ b/vendor/laravel/framework/src/Illuminate/Support/composer.json
@@ -0,0 +1,32 @@
+{
+    "name": "illuminate/support",
+    "license": "MIT",
+    "authors": [
+        {
+            "name": "Taylor Otwell",
+            "email": "taylorotwell@gmail.com"
+        }
+    ],
+    "require": {
+        "php": ">=5.4.0"
+    },
+    "require-dev": {
+        "jeremeamia/superclosure": "~1.0.1",
+        "patchwork/utf8": "~1.1"
+    },
+    "autoload": {
+        "psr-0": {
+            "Illuminate\\Support": ""
+        },
+        "files": [
+            "Illuminate/Support/helpers.php"
+        ]
+    },
+    "target-dir": "Illuminate/Support",
+    "extra": {
+        "branch-alias": {
+            "dev-master": "4.2-dev"
+        }
+    },
+    "minimum-stability": "dev"
+}

http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/01413d65/vendor/laravel/framework/src/Illuminate/Support/helpers.php
----------------------------------------------------------------------
diff --git a/vendor/laravel/framework/src/Illuminate/Support/helpers.php b/vendor/laravel/framework/src/Illuminate/Support/helpers.php
new file mode 100755
index 0000000..86651cd
--- /dev/null
+++ b/vendor/laravel/framework/src/Illuminate/Support/helpers.php
@@ -0,0 +1,1033 @@
+<?php
+
+use Illuminate\Support\Arr;
+use Illuminate\Support\Str;
+
+if ( ! function_exists('action'))
+{
+	/**
+	 * Generate a URL to a controller action.
+	 *
+	 * @param  string  $name
+	 * @param  array   $parameters
+	 * @return string
+	 */
+	function action($name, $parameters = array())
+	{
+		return app('url')->action($name, $parameters);
+	}
+}
+
+if ( ! function_exists('app'))
+{
+	/**
+	 * Get the root Facade application instance.
+	 *
+	 * @param  string  $make
+	 * @return mixed
+	 */
+	function app($make = null)
+	{
+		if ( ! is_null($make))
+		{
+			return app()->make($make);
+		}
+
+		return Illuminate\Support\Facades\Facade::getFacadeApplication();
+	}
+}
+
+if ( ! function_exists('app_path'))
+{
+	/**
+	 * Get the path to the application folder.
+	 *
+	 * @param  string  $path
+	 * @return string
+	 */
+	function app_path($path = '')
+	{
+		return app('path').($path ? '/'.$path : $path);
+	}
+}
+
+if ( ! function_exists('append_config'))
+{
+	/**
+	 * Assign high numeric IDs to a config item to force appending.
+	 *
+	 * @param  array  $array
+	 * @return array
+	 */
+	function append_config(array $array)
+	{
+		$start = 9999;
+
+		foreach ($array as $key => $value)
+		{
+			if (is_numeric($key))
+			{
+				$start++;
+
+				$array[$start] = array_pull($array, $key);
+			}
+		}
+
+		return $array;
+	}
+}
+
+if ( ! function_exists('array_add'))
+{
+	/**
+	 * Add an element to an array using "dot" notation if it doesn't exist.
+	 *
+	 * @param  array   $array
+	 * @param  string  $key
+	 * @param  mixed   $value
+	 * @return array
+	 */
+	function array_add($array, $key, $value)
+	{
+		return Arr::add($array, $key, $value);
+	}
+}
+
+if ( ! function_exists('array_build'))
+{
+	/**
+	 * Build a new array using a callback.
+	 *
+	 * @param  array     $array
+	 * @param  \Closure  $callback
+	 * @return array
+	 */
+	function array_build($array, Closure $callback)
+	{
+		return Arr::build($array, $callback);
+	}
+}
+
+if ( ! function_exists('array_divide'))
+{
+	/**
+	 * Divide an array into two arrays. One with keys and the other with values.
+	 *
+	 * @param  array  $array
+	 * @return array
+	 */
+	function array_divide($array)
+	{
+		return Arr::divide($array);
+	}
+}
+
+if ( ! function_exists('array_dot'))
+{
+	/**
+	 * Flatten a multi-dimensional associative array with dots.
+	 *
+	 * @param  array   $array
+	 * @param  string  $prepend
+	 * @return array
+	 */
+	function array_dot($array, $prepend = '')
+	{
+		return Arr::dot($array, $prepend);
+	}
+}
+
+if ( ! function_exists('array_except'))
+{
+	/**
+	 * Get all of the given array except for a specified array of items.
+	 *
+	 * @param  array  $array
+	 * @param  array|string  $keys
+	 * @return array
+	 */
+	function array_except($array, $keys)
+	{
+		return Arr::except($array, $keys);
+	}
+}
+
+if ( ! function_exists('array_fetch'))
+{
+	/**
+	 * Fetch a flattened array of a nested array element.
+	 *
+	 * @param  array   $array
+	 * @param  string  $key
+	 * @return array
+	 */
+	function array_fetch($array, $key)
+	{
+		return Arr::fetch($array, $key);
+	}
+}
+
+if ( ! function_exists('array_first'))
+{
+	/**
+	 * Return the first element in an array passing a given truth test.
+	 *
+	 * @param  array     $array
+	 * @param  \Closure  $callback
+	 * @param  mixed     $default
+	 * @return mixed
+	 */
+	function array_first($array, $callback, $default = null)
+	{
+		return Arr::first($array, $callback, $default);
+	}
+}
+
+if ( ! function_exists('array_last'))
+{
+	/**
+	 * Return the last element in an array passing a given truth test.
+	 *
+	 * @param  array     $array
+	 * @param  \Closure  $callback
+	 * @param  mixed     $default
+	 * @return mixed
+	 */
+	function array_last($array, $callback, $default = null)
+	{
+		return Arr::last($array, $callback, $default);
+	}
+}
+
+if ( ! function_exists('array_flatten'))
+{
+	/**
+	 * Flatten a multi-dimensional array into a single level.
+	 *
+	 * @param  array  $array
+	 * @return array
+	 */
+	function array_flatten($array)
+	{
+		return Arr::flatten($array);
+	}
+}
+
+if ( ! function_exists('array_forget'))
+{
+	/**
+	 * Remove one or many array items from a given array using "dot" notation.
+	 *
+	 * @param  array  $array
+	 * @param  array|string  $keys
+	 * @return void
+	 */
+	function array_forget(&$array, $keys)
+	{
+		return Arr::forget($array, $keys);
+	}
+}
+
+if ( ! function_exists('array_get'))
+{
+	/**
+	 * Get an item from an array using "dot" notation.
+	 *
+	 * @param  array   $array
+	 * @param  string  $key
+	 * @param  mixed   $default
+	 * @return mixed
+	 */
+	function array_get($array, $key, $default = null)
+	{
+		return Arr::get($array, $key, $default);
+	}
+}
+
+if ( ! function_exists('array_has'))
+{
+	/**
+	 * Check if an item exists in an array using "dot" notation.
+	 *
+	 * @param  array   $array
+	 * @param  string  $key
+	 * @return bool
+	 */
+	function array_has($array, $key)
+	{
+		return Arr::has($array, $key);
+	}
+}
+
+if ( ! function_exists('array_only'))
+{
+	/**
+	 * Get a subset of the items from the given array.
+	 *
+	 * @param  array  $array
+	 * @param  array|string  $keys
+	 * @return array
+	 */
+	function array_only($array, $keys)
+	{
+		return Arr::only($array, $keys);
+	}
+}
+
+if ( ! function_exists('array_pluck'))
+{
+	/**
+	 * Pluck an array of values from an array.
+	 *
+	 * @param  array   $array
+	 * @param  string  $value
+	 * @param  string  $key
+	 * @return array
+	 */
+	function array_pluck($array, $value, $key = null)
+	{
+		return Arr::pluck($array, $value, $key);
+	}
+}
+
+if ( ! function_exists('array_pull'))
+{
+	/**
+	 * Get a value from the array, and remove it.
+	 *
+	 * @param  array   $array
+	 * @param  string  $key
+	 * @param  mixed   $default
+	 * @return mixed
+	 */
+	function array_pull(&$array, $key, $default = null)
+	{
+		return Arr::pull($array, $key, $default);
+	}
+}
+
+if ( ! function_exists('array_set'))
+{
+	/**
+	 * Set an array item to a given value using "dot" notation.
+	 *
+	 * If no key is given to the method, the entire array will be replaced.
+	 *
+	 * @param  array   $array
+	 * @param  string  $key
+	 * @param  mixed   $value
+	 * @return array
+	 */
+	function array_set(&$array, $key, $value)
+	{
+		return Arr::set($array, $key, $value);
+	}
+}
+
+if ( ! function_exists('array_sort'))
+{
+	/**
+	 * Sort the array using the given Closure.
+	 *
+	 * @param  array     $array
+	 * @param  \Closure  $callback
+	 * @return array
+	 */
+	function array_sort($array, Closure $callback)
+	{
+		return Arr::sort($array, $callback);
+	}
+}
+
+if ( ! function_exists('array_where'))
+{
+	/**
+	 * Filter the array using the given Closure.
+	 *
+	 * @param  array     $array
+	 * @param  \Closure  $callback
+	 * @return array
+	 */
+	function array_where($array, Closure $callback)
+	{
+		return Arr::where($array, $callback);
+	}
+}
+
+if ( ! function_exists('asset'))
+{
+	/**
+	 * Generate an asset path for the application.
+	 *
+	 * @param  string  $path
+	 * @param  bool    $secure
+	 * @return string
+	 */
+	function asset($path, $secure = null)
+	{
+		return app('url')->asset($path, $secure);
+	}
+}
+
+if ( ! function_exists('base_path'))
+{
+	/**
+	 * Get the path to the base of the install.
+	 *
+	 * @param  string  $path
+	 * @return string
+	 */
+	function base_path($path = '')
+	{
+		return app()->make('path.base').($path ? '/'.$path : $path);
+	}
+}
+
+if ( ! function_exists('camel_case'))
+{
+	/**
+	 * Convert a value to camel case.
+	 *
+	 * @param  string  $value
+	 * @return string
+	 */
+	function camel_case($value)
+	{
+		return Str::camel($value);
+	}
+}
+
+if ( ! function_exists('class_basename'))
+{
+	/**
+	 * Get the class "basename" of the given object / class.
+	 *
+	 * @param  string|object  $class
+	 * @return string
+	 */
+	function class_basename($class)
+	{
+		$class = is_object($class) ? get_class($class) : $class;
+
+		return basename(str_replace('\\', '/', $class));
+	}
+}
+
+if ( ! function_exists('class_uses_recursive'))
+{
+	/**
+	 * Returns all traits used by a class, it's subclasses and trait of their traits
+	 *
+	 * @param  string  $class
+	 * @return array
+	 */
+	function class_uses_recursive($class)
+	{
+		$results = [];
+
+		foreach (array_merge([$class => $class], class_parents($class)) as $class)
+		{
+			$results += trait_uses_recursive($class);
+		}
+
+		return array_unique($results);
+	}
+}
+
+if ( ! function_exists('csrf_token'))
+{
+	/**
+	 * Get the CSRF token value.
+	 *
+	 * @return string
+	 *
+	 * @throws RuntimeException
+	 */
+	function csrf_token()
+	{
+		$session = app('session');
+
+		if (isset($session))
+		{
+			return $session->getToken();
+		}
+
+		throw new RuntimeException("Application session store not set.");
+	}
+}
+
+if ( ! function_exists('data_get'))
+{
+	/**
+	 * Get an item from an array or object using "dot" notation.
+	 *
+	 * @param  mixed   $target
+	 * @param  string  $key
+	 * @param  mixed   $default
+	 * @return mixed
+	 */
+	function data_get($target, $key, $default = null)
+	{
+		if (is_null($key)) return $target;
+
+		foreach (explode('.', $key) as $segment)
+		{
+			if (is_array($target))
+			{
+				if ( ! array_key_exists($segment, $target))
+				{
+					return value($default);
+				}
+
+				$target = $target[$segment];
+			}
+			elseif (is_object($target))
+			{
+				if ( ! isset($target->{$segment}))
+				{
+					return value($default);
+				}
+
+				$target = $target->{$segment};
+			}
+			else
+			{
+				return value($default);
+			}
+		}
+
+		return $target;
+	}
+}
+
+if ( ! function_exists('dd'))
+{
+	/**
+	 * Dump the passed variables and end the script.
+	 *
+	 * @param  mixed
+	 * @return void
+	 */
+	function dd()
+	{
+		array_map(function($x) { var_dump($x); }, func_get_args()); die;
+	}
+}
+
+if ( ! function_exists('e'))
+{
+	/**
+	 * Escape HTML entities in a string.
+	 *
+	 * @param  string  $value
+	 * @return string
+	 */
+	function e($value)
+	{
+		return htmlentities($value, ENT_QUOTES, 'UTF-8', false);
+	}
+}
+
+if ( ! function_exists('ends_with'))
+{
+	/**
+	 * Determine if a given string ends with a given substring.
+	 *
+	 * @param  string  $haystack
+	 * @param  string|array  $needles
+	 * @return bool
+	 */
+	function ends_with($haystack, $needles)
+	{
+		return Str::endsWith($haystack, $needles);
+	}
+}
+
+if ( ! function_exists('head'))
+{
+	/**
+	 * Get the first element of an array. Useful for method chaining.
+	 *
+	 * @param  array  $array
+	 * @return mixed
+	 */
+	function head($array)
+	{
+		return reset($array);
+	}
+}
+
+if ( ! function_exists('link_to'))
+{
+	/**
+	 * Generate a HTML link.
+	 *
+	 * @param  string  $url
+	 * @param  string  $title
+	 * @param  array   $attributes
+	 * @param  bool    $secure
+	 * @return string
+	 */
+	function link_to($url, $title = null, $attributes = array(), $secure = null)
+	{
+		return app('html')->link($url, $title, $attributes, $secure);
+	}
+}
+
+if ( ! function_exists('last'))
+{
+	/**
+	 * Get the last element from an array.
+	 *
+	 * @param  array  $array
+	 * @return mixed
+	 */
+	function last($array)
+	{
+		return end($array);
+	}
+}
+
+if ( ! function_exists('link_to_asset'))
+{
+	/**
+	 * Generate a HTML link to an asset.
+	 *
+	 * @param  string  $url
+	 * @param  string  $title
+	 * @param  array   $attributes
+	 * @param  bool    $secure
+	 * @return string
+	 */
+	function link_to_asset($url, $title = null, $attributes = array(), $secure = null)
+	{
+		return app('html')->linkAsset($url, $title, $attributes, $secure);
+	}
+}
+
+if ( ! function_exists('link_to_route'))
+{
+	/**
+	 * Generate a HTML link to a named route.
+	 *
+	 * @param  string  $name
+	 * @param  string  $title
+	 * @param  array   $parameters
+	 * @param  array   $attributes
+	 * @return string
+	 */
+	function link_to_route($name, $title = null, $parameters = array(), $attributes = array())
+	{
+		return app('html')->linkRoute($name, $title, $parameters, $attributes);
+	}
+}
+
+if ( ! function_exists('link_to_action'))
+{
+	/**
+	 * Generate a HTML link to a controller action.
+	 *
+	 * @param  string  $action
+	 * @param  string  $title
+	 * @param  array   $parameters
+	 * @param  array   $attributes
+	 * @return string
+	 */
+	function link_to_action($action, $title = null, $parameters = array(), $attributes = array())
+	{
+		return app('html')->linkAction($action, $title, $parameters, $attributes);
+	}
+}
+
+if ( ! function_exists('object_get'))
+{
+	/**
+	 * Get an item from an object using "dot" notation.
+	 *
+	 * @param  object  $object
+	 * @param  string  $key
+	 * @param  mixed   $default
+	 * @return mixed
+	 */
+	function object_get($object, $key, $default = null)
+	{
+		if (is_null($key) || trim($key) == '') return $object;
+
+		foreach (explode('.', $key) as $segment)
+		{
+			if ( ! is_object($object) || ! isset($object->{$segment}))
+			{
+				return value($default);
+			}
+
+			$object = $object->{$segment};
+		}
+
+		return $object;
+	}
+}
+
+if ( ! function_exists('preg_replace_sub'))
+{
+	/**
+	 * Replace a given pattern with each value in the array in sequentially.
+	 *
+	 * @param  string  $pattern
+	 * @param  array   $replacements
+	 * @param  string  $subject
+	 * @return string
+	 */
+	function preg_replace_sub($pattern, &$replacements, $subject)
+	{
+		return preg_replace_callback($pattern, function($match) use (&$replacements)
+		{
+			return array_shift($replacements);
+
+		}, $subject);
+	}
+}
+
+if ( ! function_exists('public_path'))
+{
+	/**
+	 * Get the path to the public folder.
+	 *
+	 * @param  string  $path
+	 * @return string
+	 */
+	function public_path($path = '')
+	{
+		return app()->make('path.public').($path ? '/'.$path : $path);
+	}
+}
+
+if ( ! function_exists('route'))
+{
+	/**
+	 * Generate a URL to a named route.
+	 *
+	 * @param  string  $name
+	 * @param  array   $parameters
+	 * @param  bool  $absolute
+	 * @param  \Illuminate\Routing\Route $route
+	 * @return string
+	 */
+	function route($name, $parameters = array(), $absolute = true, $route = null)
+	{
+		return app('url')->route($name, $parameters, $absolute, $route);
+	}
+}
+
+if ( ! function_exists('secure_asset'))
+{
+	/**
+	 * Generate an asset path for the application.
+	 *
+	 * @param  string  $path
+	 * @return string
+	 */
+	function secure_asset($path)
+	{
+		return asset($path, true);
+	}
+}
+
+if ( ! function_exists('secure_url'))
+{
+	/**
+	 * Generate a HTTPS url for the application.
+	 *
+	 * @param  string  $path
+	 * @param  mixed   $parameters
+	 * @return string
+	 */
+	function secure_url($path, $parameters = array())
+	{
+		return url($path, $parameters, true);
+	}
+}
+
+if ( ! function_exists('snake_case'))
+{
+	/**
+	 * Convert a string to snake case.
+	 *
+	 * @param  string  $value
+	 * @param  string  $delimiter
+	 * @return string
+	 */
+	function snake_case($value, $delimiter = '_')
+	{
+		return Str::snake($value, $delimiter);
+	}
+}
+
+if ( ! function_exists('starts_with'))
+{
+	/**
+	 * Determine if a given string starts with a given substring.
+	 *
+	 * @param  string  $haystack
+	 * @param  string|array  $needles
+	 * @return bool
+	 */
+	function starts_with($haystack, $needles)
+	{
+		return Str::startsWith($haystack, $needles);
+	}
+}
+
+if ( ! function_exists('storage_path'))
+{
+	/**
+	 * Get the path to the storage folder.
+	 *
+	 * @param   string  $path
+	 * @return  string
+	 */
+	function storage_path($path = '')
+	{
+		return app('path.storage').($path ? '/'.$path : $path);
+	}
+}
+
+if ( ! function_exists('str_contains'))
+{
+	/**
+	 * Determine if a given string contains a given substring.
+	 *
+	 * @param  string  $haystack
+	 * @param  string|array  $needles
+	 * @return bool
+	 */
+	function str_contains($haystack, $needles)
+	{
+		return Str::contains($haystack, $needles);
+	}
+}
+
+if ( ! function_exists('str_finish'))
+{
+	/**
+	 * Cap a string with a single instance of a given value.
+	 *
+	 * @param  string  $value
+	 * @param  string  $cap
+	 * @return string
+	 */
+	function str_finish($value, $cap)
+	{
+		return Str::finish($value, $cap);
+	}
+}
+
+if ( ! function_exists('str_is'))
+{
+	/**
+	 * Determine if a given string matches a given pattern.
+	 *
+	 * @param  string  $pattern
+	 * @param  string  $value
+	 * @return bool
+	 */
+	function str_is($pattern, $value)
+	{
+		return Str::is($pattern, $value);
+	}
+}
+
+if ( ! function_exists('str_limit'))
+{
+	/**
+	 * Limit the number of characters in a string.
+	 *
+	 * @param  string  $value
+	 * @param  int     $limit
+	 * @param  string  $end
+	 * @return string
+	 */
+	function str_limit($value, $limit = 100, $end = '...')
+	{
+		return Str::limit($value, $limit, $end);
+	}
+}
+
+if ( ! function_exists('str_plural'))
+{
+	/**
+	 * Get the plural form of an English word.
+	 *
+	 * @param  string  $value
+	 * @param  int     $count
+	 * @return string
+	 */
+	function str_plural($value, $count = 2)
+	{
+		return Str::plural($value, $count);
+	}
+}
+
+if ( ! function_exists('str_random'))
+{
+	/**
+	 * Generate a more truly "random" alpha-numeric string.
+	 *
+	 * @param  int  $length
+	 * @return string
+	 *
+	 * @throws \RuntimeException
+	 */
+	function str_random($length = 16)
+	{
+		return Str::random($length);
+	}
+}
+
+if ( ! function_exists('str_replace_array'))
+{
+	/**
+	 * Replace a given value in the string sequentially with an array.
+	 *
+	 * @param  string  $search
+	 * @param  array   $replace
+	 * @param  string  $subject
+	 * @return string
+	 */
+	function str_replace_array($search, array $replace, $subject)
+	{
+		foreach ($replace as $value)
+		{
+			$subject = preg_replace('/'.$search.'/', $value, $subject, 1);
+		}
+
+		return $subject;
+	}
+}
+
+if ( ! function_exists('str_singular'))
+{
+	/**
+	 * Get the singular form of an English word.
+	 *
+	 * @param  string  $value
+	 * @return string
+	 */
+	function str_singular($value)
+	{
+		return Str::singular($value);
+	}
+}
+
+if ( ! function_exists('studly_case'))
+{
+	/**
+	 * Convert a value to studly caps case.
+	 *
+	 * @param  string  $value
+	 * @return string
+	 */
+	function studly_case($value)
+	{
+		return Str::studly($value);
+	}
+}
+
+if ( ! function_exists('trait_uses_recursive'))
+{
+	/**
+	 * Returns all traits used by a trait and its traits
+	 *
+	 * @param  string  $trait
+	 * @return array
+	 */
+	function trait_uses_recursive($trait)
+	{
+		$traits = class_uses($trait);
+
+		foreach ($traits as $trait)
+		{
+			$traits += trait_uses_recursive($trait);
+		}
+
+		return $traits;
+	}
+}
+
+if ( ! function_exists('trans'))
+{
+	/**
+	 * Translate the given message.
+	 *
+	 * @param  string  $id
+	 * @param  array   $parameters
+	 * @param  string  $domain
+	 * @param  string  $locale
+	 * @return string
+	 */
+	function trans($id, $parameters = array(), $domain = 'messages', $locale = null)
+	{
+		return app('translator')->trans($id, $parameters, $domain, $locale);
+	}
+}
+
+if ( ! function_exists('trans_choice'))
+{
+	/**
+	 * Translates the given message based on a count.
+	 *
+	 * @param  string  $id
+	 * @param  int     $number
+	 * @param  array   $parameters
+	 * @param  string  $domain
+	 * @param  string  $locale
+	 * @return string
+	 */
+	function trans_choice($id, $number, array $parameters = array(), $domain = 'messages', $locale = null)
+	{
+		return app('translator')->transChoice($id, $number, $parameters, $domain, $locale);
+	}
+}
+
+if ( ! function_exists('url'))
+{
+	/**
+	 * Generate a url for the application.
+	 *
+	 * @param  string  $path
+	 * @param  mixed   $parameters
+	 * @param  bool    $secure
+	 * @return string
+	 */
+	function url($path = null, $parameters = array(), $secure = null)
+	{
+		return app('url')->to($path, $parameters, $secure);
+	}
+}
+
+if ( ! function_exists('value'))
+{
+	/**
+	 * Return the default value of the given value.
+	 *
+	 * @param  mixed  $value
+	 * @return mixed
+	 */
+	function value($value)
+	{
+		return $value instanceof Closure ? $value() : $value;
+	}
+}
+
+if ( ! function_exists('with'))
+{
+	/**
+	 * Return the given object. Useful for chaining.
+	 *
+	 * @param  mixed  $object
+	 * @return mixed
+	 */
+	function with($object)
+	{
+		return $object;
+	}
+}

http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/01413d65/vendor/laravel/framework/src/Illuminate/Translation/FileLoader.php
----------------------------------------------------------------------
diff --git a/vendor/laravel/framework/src/Illuminate/Translation/FileLoader.php b/vendor/laravel/framework/src/Illuminate/Translation/FileLoader.php
new file mode 100755
index 0000000..f455e60
--- /dev/null
+++ b/vendor/laravel/framework/src/Illuminate/Translation/FileLoader.php
@@ -0,0 +1,130 @@
+<?php namespace Illuminate\Translation;
+
+use Illuminate\Filesystem\Filesystem;
+
+class FileLoader implements LoaderInterface {
+
+	/**
+	 * The filesystem instance.
+	 *
+	 * @var \Illuminate\Filesystem\Filesystem
+	 */
+	protected $files;
+
+	/**
+	 * The default path for the loader.
+	 *
+	 * @var string
+	 */
+	protected $path;
+
+	/**
+	 * All of the namespace hints.
+	 *
+	 * @var array
+	 */
+	protected $hints = array();
+
+	/**
+	 * Create a new file loader instance.
+	 *
+	 * @param  \Illuminate\Filesystem\Filesystem  $files
+	 * @param  string  $path
+	 * @return void
+	 */
+	public function __construct(Filesystem $files, $path)
+	{
+		$this->path = $path;
+		$this->files = $files;
+	}
+
+	/**
+	 * Load the messages for the given locale.
+	 *
+	 * @param  string  $locale
+	 * @param  string  $group
+	 * @param  string  $namespace
+	 * @return array
+	 */
+	public function load($locale, $group, $namespace = null)
+	{
+		if (is_null($namespace) || $namespace == '*')
+		{
+			return $this->loadPath($this->path, $locale, $group);
+		}
+
+		return $this->loadNamespaced($locale, $group, $namespace);
+	}
+
+	/**
+	 * Load a namespaced translation group.
+	 *
+	 * @param  string  $locale
+	 * @param  string  $group
+	 * @param  string  $namespace
+	 * @return array
+	 */
+	protected function loadNamespaced($locale, $group, $namespace)
+	{
+		if (isset($this->hints[$namespace]))
+		{
+			$lines = $this->loadPath($this->hints[$namespace], $locale, $group);
+
+			return $this->loadNamespaceOverrides($lines, $locale, $group, $namespace);
+		}
+
+		return array();
+	}
+
+	/**
+	 * Load a local namespaced translation group for overrides.
+	 *
+	 * @param  array  $lines
+	 * @param  string  $locale
+	 * @param  string  $group
+	 * @param  string  $namespace
+	 * @return array
+	 */
+	protected function loadNamespaceOverrides(array $lines, $locale, $group, $namespace)
+	{
+		$file = "{$this->path}/packages/{$locale}/{$namespace}/{$group}.php";
+
+		if ($this->files->exists($file))
+		{
+			return array_replace_recursive($lines, $this->files->getRequire($file));
+		}
+
+		return $lines;
+	}
+
+	/**
+	 * Load a locale from a given path.
+	 *
+	 * @param  string  $path
+	 * @param  string  $locale
+	 * @param  string  $group
+	 * @return array
+	 */
+	protected function loadPath($path, $locale, $group)
+	{
+		if ($this->files->exists($full = "{$path}/{$locale}/{$group}.php"))
+		{
+			return $this->files->getRequire($full);
+		}
+
+		return array();
+	}
+
+	/**
+	 * Add a new namespace to the loader.
+	 *
+	 * @param  string  $namespace
+	 * @param  string  $hint
+	 * @return void
+	 */
+	public function addNamespace($namespace, $hint)
+	{
+		$this->hints[$namespace] = $hint;
+	}
+
+}

http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/01413d65/vendor/laravel/framework/src/Illuminate/Translation/LoaderInterface.php
----------------------------------------------------------------------
diff --git a/vendor/laravel/framework/src/Illuminate/Translation/LoaderInterface.php b/vendor/laravel/framework/src/Illuminate/Translation/LoaderInterface.php
new file mode 100755
index 0000000..f0fbac5
--- /dev/null
+++ b/vendor/laravel/framework/src/Illuminate/Translation/LoaderInterface.php
@@ -0,0 +1,24 @@
+<?php namespace Illuminate\Translation;
+
+interface LoaderInterface {
+
+	/**
+	 * Load the messages for the given locale.
+	 *
+	 * @param  string  $locale
+	 * @param  string  $group
+	 * @param  string  $namespace
+	 * @return array
+	 */
+	public function load($locale, $group, $namespace = null);
+
+	/**
+	 * Add a new namespace to the loader.
+	 *
+	 * @param  string  $namespace
+	 * @param  string  $hint
+	 * @return void
+	 */
+	public function addNamespace($namespace, $hint);
+
+}

http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/01413d65/vendor/laravel/framework/src/Illuminate/Translation/TranslationServiceProvider.php
----------------------------------------------------------------------
diff --git a/vendor/laravel/framework/src/Illuminate/Translation/TranslationServiceProvider.php b/vendor/laravel/framework/src/Illuminate/Translation/TranslationServiceProvider.php
new file mode 100755
index 0000000..3d09780
--- /dev/null
+++ b/vendor/laravel/framework/src/Illuminate/Translation/TranslationServiceProvider.php
@@ -0,0 +1,63 @@
+<?php namespace Illuminate\Translation;
+
+use Illuminate\Support\ServiceProvider;
+
+class TranslationServiceProvider extends ServiceProvider {
+
+	/**
+	 * Indicates if loading of the provider is deferred.
+	 *
+	 * @var bool
+	 */
+	protected $defer = true;
+
+	/**
+	 * Register the service provider.
+	 *
+	 * @return void
+	 */
+	public function register()
+	{
+		$this->registerLoader();
+
+		$this->app->bindShared('translator', function($app)
+		{
+			$loader = $app['translation.loader'];
+
+			// When registering the translator component, we'll need to set the default
+			// locale as well as the fallback locale. So, we'll grab the application
+			// configuration so we can easily get both of these values from there.
+			$locale = $app['config']['app.locale'];
+
+			$trans = new Translator($loader, $locale);
+
+			$trans->setFallback($app['config']['app.fallback_locale']);
+
+			return $trans;
+		});
+	}
+
+	/**
+	 * Register the translation line loader.
+	 *
+	 * @return void
+	 */
+	protected function registerLoader()
+	{
+		$this->app->bindShared('translation.loader', function($app)
+		{
+			return new FileLoader($app['files'], $app['path'].'/lang');
+		});
+	}
+
+	/**
+	 * Get the services provided by the provider.
+	 *
+	 * @return array
+	 */
+	public function provides()
+	{
+		return array('translator', 'translation.loader');
+	}
+
+}

http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/01413d65/vendor/laravel/framework/src/Illuminate/Translation/Translator.php
----------------------------------------------------------------------
diff --git a/vendor/laravel/framework/src/Illuminate/Translation/Translator.php b/vendor/laravel/framework/src/Illuminate/Translation/Translator.php
new file mode 100755
index 0000000..cc2476b
--- /dev/null
+++ b/vendor/laravel/framework/src/Illuminate/Translation/Translator.php
@@ -0,0 +1,365 @@
+<?php namespace Illuminate\Translation;
+
+use Illuminate\Support\Collection;
+use Illuminate\Support\NamespacedItemResolver;
+use Symfony\Component\Translation\MessageSelector;
+use Symfony\Component\Translation\TranslatorInterface;
+
+class Translator extends NamespacedItemResolver implements TranslatorInterface {
+
+	/**
+	 * The loader implementation.
+	 *
+	 * @var \Illuminate\Translation\LoaderInterface
+	 */
+	protected $loader;
+
+	/**
+	 * The default locale being used by the translator.
+	 *
+	 * @var string
+	 */
+	protected $locale;
+
+	/**
+	 * The fallback locale used by the translator.
+	 *
+	 * @var string
+	 */
+	protected $fallback;
+
+	/**
+	 * The array of loaded translation groups.
+	 *
+	 * @var array
+	 */
+	protected $loaded = array();
+
+	/**
+	 * Create a new translator instance.
+	 *
+	 * @param  \Illuminate\Translation\LoaderInterface  $loader
+	 * @param  string  $locale
+	 * @return void
+	 */
+	public function __construct(LoaderInterface $loader, $locale)
+	{
+		$this->loader = $loader;
+		$this->locale = $locale;
+	}
+
+	/**
+	 * Determine if a translation exists.
+	 *
+	 * @param  string  $key
+	 * @param  string  $locale
+	 * @return bool
+	 */
+	public function has($key, $locale = null)
+	{
+		return $this->get($key, array(), $locale) !== $key;
+	}
+
+	/**
+	 * Get the translation for the given key.
+	 *
+	 * @param  string  $key
+	 * @param  array   $replace
+	 * @param  string  $locale
+	 * @return string
+	 */
+	public function get($key, array $replace = array(), $locale = null)
+	{
+		list($namespace, $group, $item) = $this->parseKey($key);
+
+		// Here we will get the locale that should be used for the language line. If one
+		// was not passed, we will use the default locales which was given to us when
+		// the translator was instantiated. Then, we can load the lines and return.
+		foreach ($this->parseLocale($locale) as $locale)
+		{
+			$this->load($namespace, $group, $locale);
+
+			$line = $this->getLine(
+				$namespace, $group, $locale, $item, $replace
+			);
+
+			if ( ! is_null($line)) break;
+		}
+
+		// If the line doesn't exist, we will return back the key which was requested as
+		// that will be quick to spot in the UI if language keys are wrong or missing
+		// from the application's language files. Otherwise we can return the line.
+		if ( ! isset($line)) return $key;
+
+		return $line;
+	}
+
+	/**
+	 * Retrieve a language line out the loaded array.
+	 *
+	 * @param  string  $namespace
+	 * @param  string  $group
+	 * @param  string  $locale
+	 * @param  string  $item
+	 * @param  array   $replace
+	 * @return string|null
+	 */
+	protected function getLine($namespace, $group, $locale, $item, array $replace)
+	{
+		$line = array_get($this->loaded[$namespace][$group][$locale], $item);
+
+		if (is_string($line))
+		{
+			return $this->makeReplacements($line, $replace);
+		}
+		elseif (is_array($line) && count($line) > 0)
+		{
+			return $line;
+		}
+	}
+
+	/**
+	 * Make the place-holder replacements on a line.
+	 *
+	 * @param  string  $line
+	 * @param  array   $replace
+	 * @return string
+	 */
+	protected function makeReplacements($line, array $replace)
+	{
+		$replace = $this->sortReplacements($replace);
+
+		foreach ($replace as $key => $value)
+		{
+			$line = str_replace(':'.$key, $value, $line);
+		}
+
+		return $line;
+	}
+
+	/**
+	 * Sort the replacements array.
+	 *
+	 * @param  array  $replace
+	 * @return array
+	 */
+	protected function sortReplacements(array $replace)
+	{
+		return (new Collection($replace))->sortBy(function($r)
+		{
+			return mb_strlen($r) * -1;
+		});
+	}
+
+	/**
+	 * Get a translation according to an integer value.
+	 *
+	 * @param  string  $key
+	 * @param  int     $number
+	 * @param  array   $replace
+	 * @param  string  $locale
+	 * @return string
+	 */
+	public function choice($key, $number, array $replace = array(), $locale = null)
+	{
+		$line = $this->get($key, $replace, $locale = $locale ?: $this->locale);
+
+		$replace['count'] = $number;
+
+		return $this->makeReplacements($this->getSelector()->choose($line, $number, $locale), $replace);
+	}
+
+	/**
+	 * Get the translation for a given key.
+	 *
+	 * @param  string  $id
+	 * @param  array   $parameters
+	 * @param  string  $domain
+	 * @param  string  $locale
+	 * @return string
+	 */
+	public function trans($id, array $parameters = array(), $domain = 'messages', $locale = null)
+	{
+		return $this->get($id, $parameters, $locale);
+	}
+
+	/**
+	 * Get a translation according to an integer value.
+	 *
+	 * @param  string  $id
+	 * @param  int     $number
+	 * @param  array   $parameters
+	 * @param  string  $domain
+	 * @param  string  $locale
+	 * @return string
+	 */
+	public function transChoice($id, $number, array $parameters = array(), $domain = 'messages', $locale = null)
+	{
+		return $this->choice($id, $number, $parameters, $locale);
+	}
+
+	/**
+	 * Load the specified language group.
+	 *
+	 * @param  string  $namespace
+	 * @param  string  $group
+	 * @param  string  $locale
+	 * @return void
+	 */
+	public function load($namespace, $group, $locale)
+	{
+		if ($this->isLoaded($namespace, $group, $locale)) return;
+
+		// The loader is responsible for returning the array of language lines for the
+		// given namespace, group, and locale. We'll set the lines in this array of
+		// lines that have already been loaded so that we can easily access them.
+		$lines = $this->loader->load($locale, $group, $namespace);
+
+		$this->loaded[$namespace][$group][$locale] = $lines;
+	}
+
+	/**
+	 * Determine if the given group has been loaded.
+	 *
+	 * @param  string  $namespace
+	 * @param  string  $group
+	 * @param  string  $locale
+	 * @return bool
+	 */
+	protected function isLoaded($namespace, $group, $locale)
+	{
+		return isset($this->loaded[$namespace][$group][$locale]);
+	}
+
+	/**
+	 * Add a new namespace to the loader.
+	 *
+	 * @param  string  $namespace
+	 * @param  string  $hint
+	 * @return void
+	 */
+	public function addNamespace($namespace, $hint)
+	{
+		$this->loader->addNamespace($namespace, $hint);
+	}
+
+	/**
+	 * Parse a key into namespace, group, and item.
+	 *
+	 * @param  string  $key
+	 * @return array
+	 */
+	public function parseKey($key)
+	{
+		$segments = parent::parseKey($key);
+
+		if (is_null($segments[0])) $segments[0] = '*';
+
+		return $segments;
+	}
+
+	/**
+	 * Get the array of locales to be checked.
+	 *
+	 * @param  string|null  $locale
+	 * @return array
+	 */
+	protected function parseLocale($locale)
+	{
+		if ( ! is_null($locale))
+		{
+			return array_filter(array($locale, $this->fallback));
+		}
+
+		return array_filter(array($this->locale, $this->fallback));
+	}
+
+	/**
+	 * Get the message selector instance.
+	 *
+	 * @return \Symfony\Component\Translation\MessageSelector
+	 */
+	public function getSelector()
+	{
+		if ( ! isset($this->selector))
+		{
+			$this->selector = new MessageSelector;
+		}
+
+		return $this->selector;
+	}
+
+	/**
+	 * Set the message selector instance.
+	 *
+	 * @param  \Symfony\Component\Translation\MessageSelector  $selector
+	 * @return void
+	 */
+	public function setSelector(MessageSelector $selector)
+	{
+		$this->selector = $selector;
+	}
+
+	/**
+	 * Get the language line loader implementation.
+	 *
+	 * @return \Illuminate\Translation\LoaderInterface
+	 */
+	public function getLoader()
+	{
+		return $this->loader;
+	}
+
+	/**
+	 * Get the default locale being used.
+	 *
+	 * @return string
+	 */
+	public function locale()
+	{
+		return $this->getLocale();
+	}
+
+	/**
+	 * Get the default locale being used.
+	 *
+	 * @return string
+	 */
+	public function getLocale()
+	{
+		return $this->locale;
+	}
+
+	/**
+	 * Set the default locale.
+	 *
+	 * @param  string  $locale
+	 * @return void
+	 */
+	public function setLocale($locale)
+	{
+		$this->locale = $locale;
+	}
+
+	/**
+	 * Get the fallback locale being used.
+	 *
+	 * @return string
+	 */
+	public function getFallback()
+	{
+		return $this->fallback;
+	}
+
+	/**
+	 * Set the fallback locale being used.
+	 *
+	 * @param  string  $fallback
+	 * @return void
+	 */
+	public function setFallback($fallback)
+	{
+		$this->fallback = $fallback;
+	}
+
+}

http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/01413d65/vendor/laravel/framework/src/Illuminate/Translation/composer.json
----------------------------------------------------------------------
diff --git a/vendor/laravel/framework/src/Illuminate/Translation/composer.json b/vendor/laravel/framework/src/Illuminate/Translation/composer.json
new file mode 100755
index 0000000..956de2c
--- /dev/null
+++ b/vendor/laravel/framework/src/Illuminate/Translation/composer.json
@@ -0,0 +1,28 @@
+{
+    "name": "illuminate/translation",
+    "license": "MIT",
+    "authors": [
+        {
+            "name": "Taylor Otwell",
+            "email": "taylorotwell@gmail.com"
+        }
+    ],
+    "require": {
+        "php": ">=5.4.0",
+        "illuminate/filesystem": "4.2.*",
+        "illuminate/support": "4.2.*",
+        "symfony/translation": "2.5.*"
+    },
+    "autoload": {
+        "psr-0": {
+            "Illuminate\\Translation": ""
+        }
+    },
+    "target-dir": "Illuminate/Translation",
+    "extra": {
+        "branch-alias": {
+            "dev-master": "4.2-dev"
+        }
+    },
+    "minimum-stability": "dev"
+}

http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/01413d65/vendor/laravel/framework/src/Illuminate/Validation/DatabasePresenceVerifier.php
----------------------------------------------------------------------
diff --git a/vendor/laravel/framework/src/Illuminate/Validation/DatabasePresenceVerifier.php b/vendor/laravel/framework/src/Illuminate/Validation/DatabasePresenceVerifier.php
new file mode 100755
index 0000000..2558f62
--- /dev/null
+++ b/vendor/laravel/framework/src/Illuminate/Validation/DatabasePresenceVerifier.php
@@ -0,0 +1,127 @@
+<?php namespace Illuminate\Validation;
+
+use Illuminate\Database\ConnectionResolverInterface;
+
+class DatabasePresenceVerifier implements PresenceVerifierInterface {
+
+	/**
+	 * The database connection instance.
+	 *
+	 * @var \Illuminate\Database\ConnectionResolverInterface
+	 */
+	protected $db;
+
+	/**
+	 * The database connection to use.
+	 *
+	 * @var string
+	 */
+	protected $connection = null;
+
+	/**
+	 * Create a new database presence verifier.
+	 *
+	 * @param  \Illuminate\Database\ConnectionResolverInterface  $db
+	 * @return void
+	 */
+	public function __construct(ConnectionResolverInterface $db)
+	{
+		$this->db = $db;
+	}
+
+	/**
+	 * Count the number of objects in a collection having the given value.
+	 *
+	 * @param  string  $collection
+	 * @param  string  $column
+	 * @param  string  $value
+	 * @param  int     $excludeId
+	 * @param  string  $idColumn
+	 * @param  array   $extra
+	 * @return int
+	 */
+	public function getCount($collection, $column, $value, $excludeId = null, $idColumn = null, array $extra = array())
+	{
+		$query = $this->table($collection)->where($column, '=', $value);
+
+		if ( ! is_null($excludeId) && $excludeId != 'NULL')
+		{
+			$query->where($idColumn ?: 'id', '<>', $excludeId);
+		}
+
+		foreach ($extra as $key => $extraValue)
+		{
+			$this->addWhere($query, $key, $extraValue);
+		}
+
+		return $query->count();
+	}
+
+	/**
+	 * Count the number of objects in a collection with the given values.
+	 *
+	 * @param  string  $collection
+	 * @param  string  $column
+	 * @param  array   $values
+	 * @param  array   $extra
+	 * @return int
+	 */
+	public function getMultiCount($collection, $column, array $values, array $extra = array())
+	{
+		$query = $this->table($collection)->whereIn($column, $values);
+
+		foreach ($extra as $key => $extraValue)
+		{
+			$this->addWhere($query, $key, $extraValue);
+		}
+
+		return $query->count();
+	}
+
+	/**
+	 * Add a "where" clause to the given query.
+	 *
+	 * @param  \Illuminate\Database\Query\Builder  $query
+	 * @param  string  $key
+	 * @param  string  $extraValue
+	 * @return void
+	 */
+	protected function addWhere($query, $key, $extraValue)
+	{
+		if ($extraValue === 'NULL')
+		{
+			$query->whereNull($key);
+		}
+		elseif ($extraValue === 'NOT_NULL')
+		{
+			$query->whereNotNull($key);
+		}
+		else
+		{
+			$query->where($key, $extraValue);
+		}
+	}
+
+	/**
+	 * Get a query builder for the given table.
+	 *
+	 * @param  string  $table
+	 * @return \Illuminate\Database\Query\Builder
+	 */
+	protected function table($table)
+	{
+		return $this->db->connection($this->connection)->table($table);
+	}
+
+	/**
+	 * Set the connection to be used.
+	 *
+	 * @param  string  $connection
+	 * @return void
+	 */
+	public function setConnection($connection)
+	{
+		$this->connection = $connection;
+	}
+
+}