diff --git a/node_modules/http-errors/README.md b/node_modules/http-errors/README.md
index 1702b10e4..520271ef1 100644
--- a/node_modules/http-errors/README.md
+++ b/node_modules/http-errors/README.md
@@ -1,12 +1,10 @@
-
 # http-errors
 
-[![NPM version][npm-image]][npm-url]
-[![Build status][travis-image]][travis-url]
-[![Test coverage][coveralls-image]][coveralls-url]
-[![Dependency Status][david-image]][david-url]
-[![License][license-image]][license-url]
-[![Downloads][downloads-image]][downloads-url]
+[![NPM Version][npm-image]][npm-url]
+[![NPM Downloads][downloads-image]][downloads-url]
+[![Node.js Version][node-version-image]][node-version-url]
+[![Build Status][travis-image]][travis-url]
+[![Test Coverage][coveralls-image]][coveralls-url]
 
 Create HTTP errors for Express, Koa, Connect, etc. with ease.
 
@@ -49,15 +47,17 @@ var err = new createError.NotFound();
 - `code` - the status code as a number
 - `name` - the name of the error as a "bumpy case", i.e. `NotFound` or `InternalServerError`.
 
-[npm-image]: https://img.shields.io/npm/v/http-errors.svg?style=flat-square
+## License
+
+[MIT](LICENSE)
+
+[npm-image]: https://img.shields.io/npm/v/http-errors.svg?style=flat
 [npm-url]: https://npmjs.org/package/http-errors
-[travis-image]: https://img.shields.io/travis/jshttp/http-errors.svg?style=flat-square
+[node-version-image]: https://img.shields.io/node/v/http-errors.svg?style=flat
+[node-version-url]: http://nodejs.org/download/
+[travis-image]: https://img.shields.io/travis/jshttp/http-errors.svg?style=flat
 [travis-url]: https://travis-ci.org/jshttp/http-errors
-[coveralls-image]: https://img.shields.io/coveralls/jshttp/http-errors.svg?style=flat-square
-[coveralls-url]: https://coveralls.io/r/jshttp/http-errors?branch=master
-[david-image]: http://img.shields.io/david/jshttp/http-errors.svg?style=flat-square
-[david-url]: https://david-dm.org/jshttp/http-errors
-[license-image]: http://img.shields.io/npm/l/http-errors.svg?style=flat-square
-[license-url]: LICENSE
-[downloads-image]: http://img.shields.io/npm/dm/http-errors.svg?style=flat-square
+[coveralls-image]: https://img.shields.io/coveralls/jshttp/http-errors.svg?style=flat
+[coveralls-url]: https://coveralls.io/r/jshttp/http-errors
+[downloads-image]: https://img.shields.io/npm/dm/http-errors.svg?style=flat
 [downloads-url]: https://npmjs.org/package/http-errors
diff --git a/node_modules/http-errors/index.js b/node_modules/http-errors/index.js
index 5f03585ed..a533070ac 100644
--- a/node_modules/http-errors/index.js
+++ b/node_modules/http-errors/index.js
@@ -1,6 +1,6 @@
 
 var statuses = require('statuses');
-var inherits = require('util').inherits;
+var inherits = require('inherits');
 
 exports = module.exports = function () {
   // so much arity going on ~_~
diff --git a/node_modules/http-errors/node_modules/inherits/LICENSE b/node_modules/http-errors/node_modules/inherits/LICENSE
new file mode 100644
index 000000000..dea3013d6
--- /dev/null
+++ b/node_modules/http-errors/node_modules/inherits/LICENSE
@@ -0,0 +1,16 @@
+The ISC License
+
+Copyright (c) Isaac Z. Schlueter
+
+Permission to use, copy, modify, and/or distribute this software for any
+purpose with or without fee is hereby granted, provided that the above
+copyright notice and this permission notice appear in all copies.
+
+THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
+REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
+FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
+INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
+LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
+OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+PERFORMANCE OF THIS SOFTWARE.
+
diff --git a/node_modules/http-errors/node_modules/inherits/README.md b/node_modules/http-errors/node_modules/inherits/README.md
new file mode 100644
index 000000000..b1c566585
--- /dev/null
+++ b/node_modules/http-errors/node_modules/inherits/README.md
@@ -0,0 +1,42 @@
+Browser-friendly inheritance fully compatible with standard node.js
+[inherits](http://nodejs.org/api/util.html#util_util_inherits_constructor_superconstructor).
+
+This package exports standard `inherits` from node.js `util` module in
+node environment, but also provides alternative browser-friendly
+implementation through [browser
+field](https://gist.github.com/shtylman/4339901). Alternative
+implementation is a literal copy of standard one located in standalone
+module to avoid requiring of `util`. It also has a shim for old
+browsers with no `Object.create` support.
+
+While keeping you sure you are using standard `inherits`
+implementation in node.js environment, it allows bundlers such as
+[browserify](https://github.com/substack/node-browserify) to not
+include full `util` package to your client code if all you need is
+just `inherits` function. It worth, because browser shim for `util`
+package is large and `inherits` is often the single function you need
+from it.
+
+It's recommended to use this package instead of
+`require('util').inherits` for any code that has chances to be used
+not only in node.js but in browser too.
+
+## usage
+
+```js
+var inherits = require('inherits');
+// then use exactly as the standard one
+```
+
+## note on version ~1.0
+
+Version ~1.0 had completely different motivation and is not compatible
+neither with 2.0 nor with standard node.js `inherits`.
+
+If you are using version ~1.0 and planning to switch to ~2.0, be
+careful:
+
+* new version uses `super_` instead of `super` for referencing
+  superclass
+* new version overwrites current prototype while old one preserves any
+  existing fields on it
diff --git a/node_modules/http-errors/node_modules/inherits/inherits.js b/node_modules/http-errors/node_modules/inherits/inherits.js
new file mode 100644
index 000000000..29f5e24f5
--- /dev/null
+++ b/node_modules/http-errors/node_modules/inherits/inherits.js
@@ -0,0 +1 @@
+module.exports = require('util').inherits
diff --git a/node_modules/http-errors/node_modules/inherits/inherits_browser.js b/node_modules/http-errors/node_modules/inherits/inherits_browser.js
new file mode 100644
index 000000000..c1e78a75e
--- /dev/null
+++ b/node_modules/http-errors/node_modules/inherits/inherits_browser.js
@@ -0,0 +1,23 @@
+if (typeof Object.create === 'function') {
+  // implementation from standard node.js 'util' module
+  module.exports = function inherits(ctor, superCtor) {
+    ctor.super_ = superCtor
+    ctor.prototype = Object.create(superCtor.prototype, {
+      constructor: {
+        value: ctor,
+        enumerable: false,
+        writable: true,
+        configurable: true
+      }
+    });
+  };
+} else {
+  // old school shim for old browsers
+  module.exports = function inherits(ctor, superCtor) {
+    ctor.super_ = superCtor
+    var TempCtor = function () {}
+    TempCtor.prototype = superCtor.prototype
+    ctor.prototype = new TempCtor()
+    ctor.prototype.constructor = ctor
+  }
+}
diff --git a/node_modules/http-errors/node_modules/inherits/package.json b/node_modules/http-errors/node_modules/inherits/package.json
new file mode 100644
index 000000000..facd5fdf1
--- /dev/null
+++ b/node_modules/http-errors/node_modules/inherits/package.json
@@ -0,0 +1,35 @@
+{
+  "name": "inherits",
+  "description": "Browser-friendly inheritance fully compatible with standard node.js inherits()",
+  "version": "2.0.1",
+  "keywords": [
+    "inheritance",
+    "class",
+    "klass",
+    "oop",
+    "object-oriented",
+    "inherits",
+    "browser",
+    "browserify"
+  ],
+  "main": "./inherits.js",
+  "browser": "./inherits_browser.js",
+  "repository": {
+    "type": "git",
+    "url": "git://github.com/isaacs/inherits"
+  },
+  "license": "ISC",
+  "scripts": {
+    "test": "node test"
+  },
+  "readme": "Browser-friendly inheritance fully compatible with standard node.js\n[inherits](http://nodejs.org/api/util.html#util_util_inherits_constructor_superconstructor).\n\nThis package exports standard `inherits` from node.js `util` module in\nnode environment, but also provides alternative browser-friendly\nimplementation through [browser\nfield](https://gist.github.com/shtylman/4339901). Alternative\nimplementation is a literal copy of standard one located in standalone\nmodule to avoid requiring of `util`. It also has a shim for old\nbrowsers with no `Object.create` support.\n\nWhile keeping you sure you are using standard `inherits`\nimplementation in node.js environment, it allows bundlers such as\n[browserify](https://github.com/substack/node-browserify) to not\ninclude full `util` package to your client code if all you need is\njust `inherits` function. It worth, because browser shim for `util`\npackage is large and `inherits` is often the single function you need\nfrom it.\n\nIt's recommended to use this package instead of\n`require('util').inherits` for any code that has chances to be used\nnot only in node.js but in browser too.\n\n## usage\n\n```js\nvar inherits = require('inherits');\n// then use exactly as the standard one\n```\n\n## note on version ~1.0\n\nVersion ~1.0 had completely different motivation and is not compatible\nneither with 2.0 nor with standard node.js `inherits`.\n\nIf you are using version ~1.0 and planning to switch to ~2.0, be\ncareful:\n\n* new version uses `super_` instead of `super` for referencing\n  superclass\n* new version overwrites current prototype while old one preserves any\n  existing fields on it\n",
+  "readmeFilename": "README.md",
+  "bugs": {
+    "url": "https://github.com/isaacs/inherits/issues"
+  },
+  "homepage": "https://github.com/isaacs/inherits",
+  "_id": "inherits@2.0.1",
+  "_shasum": "b17d08d326b4423e568eff719f91b0b1cbdf69f1",
+  "_from": "inherits@2",
+  "_resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz"
+}
diff --git a/node_modules/http-errors/node_modules/inherits/test.js b/node_modules/http-errors/node_modules/inherits/test.js
new file mode 100644
index 000000000..fc53012d3
--- /dev/null
+++ b/node_modules/http-errors/node_modules/inherits/test.js
@@ -0,0 +1,25 @@
+var inherits = require('./inherits.js')
+var assert = require('assert')
+
+function test(c) {
+  assert(c.constructor === Child)
+  assert(c.constructor.super_ === Parent)
+  assert(Object.getPrototypeOf(c) === Child.prototype)
+  assert(Object.getPrototypeOf(Object.getPrototypeOf(c)) === Parent.prototype)
+  assert(c instanceof Child)
+  assert(c instanceof Parent)
+}
+
+function Child() {
+  Parent.call(this)
+  test(this)
+}
+
+function Parent() {}
+
+inherits(Child, Parent)
+
+var c = new Child
+test(c)
+
+console.log('ok')
diff --git a/node_modules/http-errors/node_modules/statuses/LICENSE b/node_modules/http-errors/node_modules/statuses/LICENSE
new file mode 100644
index 000000000..a7ae8ee9b
--- /dev/null
+++ b/node_modules/http-errors/node_modules/statuses/LICENSE
@@ -0,0 +1,22 @@
+
+The MIT License (MIT)
+
+Copyright (c) 2014 Jonathan Ong me@jongleberry.com
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
diff --git a/node_modules/http-errors/node_modules/statuses/README.md b/node_modules/http-errors/node_modules/statuses/README.md
index 776db36db..2a98a5ac8 100644
--- a/node_modules/http-errors/node_modules/statuses/README.md
+++ b/node_modules/http-errors/node_modules/statuses/README.md
@@ -1,9 +1,10 @@
 # Statuses
 
-[![NPM version][npm-image]][npm-url]
-[![Dependency Status][david-image]][david-url]
-[![License][license-image]][license-url]
-[![Downloads][downloads-image]][downloads-url]
+[![NPM Version][npm-image]][npm-url]
+[![NPM Downloads][downloads-image]][downloads-url]
+[![Node.js Version][node-version-image]][node-version-url]
+[![Build Status][travis-image]][travis-url]
+[![Test Coverage][coveralls-image]][coveralls-url]
 
 HTTP status utility for node.
 
@@ -74,19 +75,24 @@ status.retry[501] // => undefined
 status.retry[503] // => true
 ```
 
-[npm-image]: https://img.shields.io/npm/v/statuses.svg?style=flat-square
+### statuses/codes.json
+
+```js
+var codes = require('statuses/codes.json');
+```
+
+This is a JSON file of the status codes
+taken from `require('http').STATUS_CODES`.
+This is saved so that codes are consistent even in older node.js versions.
+For example, `308` will be added in v0.12.
+
+[npm-image]: https://img.shields.io/npm/v/statuses.svg?style=flat
 [npm-url]: https://npmjs.org/package/statuses
-[github-tag]: http://img.shields.io/github/tag/jshttp/statuses.svg?style=flat-square
-[github-url]: https://github.com/jshttp/statuses/tags
-[travis-image]: https://img.shields.io/travis/jshttp/statuses.svg?style=flat-square
+[node-version-image]: http://img.shields.io/badge/node.js-%3E%3D_0.6-brightgreen.svg?style=flat
+[node-version-url]: http://nodejs.org/download/
+[travis-image]: https://img.shields.io/travis/jshttp/statuses.svg?style=flat
 [travis-url]: https://travis-ci.org/jshttp/statuses
-[coveralls-image]: https://img.shields.io/coveralls/jshttp/statuses.svg?style=flat-square
+[coveralls-image]: https://img.shields.io/coveralls/jshttp/statuses.svg?style=flat
 [coveralls-url]: https://coveralls.io/r/jshttp/statuses?branch=master
-[david-image]: http://img.shields.io/david/jshttp/statuses.svg?style=flat-square
-[david-url]: https://david-dm.org/jshttp/statuses
-[license-image]: http://img.shields.io/npm/l/statuses.svg?style=flat-square
-[license-url]: LICENSE
-[downloads-image]: http://img.shields.io/npm/dm/statuses.svg?style=flat-square
+[downloads-image]: http://img.shields.io/npm/dm/statuses.svg?style=flat
 [downloads-url]: https://npmjs.org/package/statuses
-[gittip-image]: https://img.shields.io/gittip/jonathanong.svg?style=flat-square
-[gittip-url]: https://www.gittip.com/jonathanong/
diff --git a/node_modules/http-errors/node_modules/statuses/codes.json b/node_modules/http-errors/node_modules/statuses/codes.json
new file mode 100644
index 000000000..a18f08a63
--- /dev/null
+++ b/node_modules/http-errors/node_modules/statuses/codes.json
@@ -0,0 +1 @@
+{"100":"Continue","101":"Switching Protocols","102":"Processing","200":"OK","201":"Created","202":"Accepted","203":"Non-Authoritative Information","204":"No Content","205":"Reset Content","206":"Partial Content","207":"Multi-Status","300":"Multiple Choices","301":"Moved Permanently","302":"Moved Temporarily","303":"See Other","304":"Not Modified","305":"Use Proxy","307":"Temporary Redirect","308":"Permanent Redirect","400":"Bad Request","401":"Unauthorized","402":"Payment Required","403":"Forbidden","404":"Not Found","405":"Method Not Allowed","406":"Not Acceptable","407":"Proxy Authentication Required","408":"Request Time-out","409":"Conflict","410":"Gone","411":"Length Required","412":"Precondition Failed","413":"Request Entity Too Large","414":"Request-URI Too Large","415":"Unsupported Media Type","416":"Requested Range Not Satisfiable","417":"Expectation Failed","418":"I'm a teapot","422":"Unprocessable Entity","423":"Locked","424":"Failed Dependency","425":"Unordered Collection","426":"Upgrade Required","428":"Precondition Required","429":"Too Many Requests","431":"Request Header Fields Too Large","500":"Internal Server Error","501":"Not Implemented","502":"Bad Gateway","503":"Service Unavailable","504":"Gateway Time-out","505":"HTTP Version Not Supported","506":"Variant Also Negotiates","507":"Insufficient Storage","509":"Bandwidth Limit Exceeded","510":"Not Extended","511":"Network Authentication Required"}
\ No newline at end of file
diff --git a/node_modules/http-errors/node_modules/statuses/index.js b/node_modules/http-errors/node_modules/statuses/index.js
index 41afc639a..5521e897d 100644
--- a/node_modules/http-errors/node_modules/statuses/index.js
+++ b/node_modules/http-errors/node_modules/statuses/index.js
@@ -1,5 +1,5 @@
-var http = require('http');
-var codes = http.STATUS_CODES;
+
+var codes = require('./codes');
 
 module.exports = status;
 
@@ -50,7 +50,7 @@ function status(code) {
   // '403'
   var n = parseInt(code, 10)
   if (!isNaN(n)) {
-    if (!status[n]) return new Error('invalid status code: ' + n);
+    if (!status[n]) throw new Error('invalid status code: ' + n);
     return n;
   }
 
diff --git a/node_modules/http-errors/node_modules/statuses/package.json b/node_modules/http-errors/node_modules/statuses/package.json
index 82c2903dc..d1d8f26d1 100644
--- a/node_modules/http-errors/node_modules/statuses/package.json
+++ b/node_modules/http-errors/node_modules/statuses/package.json
@@ -1,7 +1,7 @@
 {
   "name": "statuses",
   "description": "HTTP status utility",
-  "version": "1.0.4",
+  "version": "1.1.1",
   "author": {
     "name": "Jonathan Ong",
     "email": "me@jongleberry.com",
@@ -18,16 +18,28 @@
     "code"
   ],
   "files": [
-    "index.js"
+    "index.js",
+    "codes.json",
+    "LICENSE"
   ],
-  "readme": "# Statuses\n\n[![NPM version][npm-image]][npm-url]\n[![Dependency Status][david-image]][david-url]\n[![License][license-image]][license-url]\n[![Downloads][downloads-image]][downloads-url]\n\nHTTP status utility for node.\n\n## API\n\n```js\nvar status = require('statuses');\n```\n\n### var code = status(Integer || String)\n\nIf `Integer` or `String` is a valid HTTP code or status message, then the appropriate `code` will be returned. Otherwise, an error will be thrown.\n\n```js\nstatus(403) // => 403\nstatus('403') // => 403\nstatus('forbidden') // => 403\nstatus('Forbidden') // => 403\nstatus(306) // throws, as it's not supported by node.js\n```\n\n### status.codes\n\nReturns an array of all the status codes as `Integer`s.\n\n### var msg = status[code]\n\nMap of `code` to `status message`. `undefined` for invalid `code`s.\n\n```js\nstatus[404] // => 'Not Found'\n```\n\n### var code = status[msg]\n\nMap of `status message` to `code`. `msg` can either be title-cased or lower-cased. `undefined` for invalid `status message`s.\n\n```js\nstatus['not found'] // => 404\nstatus['Not Found'] // => 404\n```\n\n### status.redirect[code]\n\nReturns `true` if a status code is a valid redirect status.\n\n```js\nstatus.redirect[200] // => undefined\nstatus.redirect[301] // => true\n```\n\n### status.empty[code]\n\nReturns `true` if a status code expects an empty body.\n\n```js\nstatus.empty[200] // => undefined\nstatus.empty[204] // => true\nstatus.empty[304] // => true\n```\n\n### status.retry[code]\n\nReturns `true` if you should retry the rest.\n\n```js\nstatus.retry[501] // => undefined\nstatus.retry[503] // => true\n```\n\n[npm-image]: https://img.shields.io/npm/v/statuses.svg?style=flat-square\n[npm-url]: https://npmjs.org/package/statuses\n[github-tag]: http://img.shields.io/github/tag/jshttp/statuses.svg?style=flat-square\n[github-url]: https://github.com/jshttp/statuses/tags\n[travis-image]: https://img.shields.io/travis/jshttp/statuses.svg?style=flat-square\n[travis-url]: https://travis-ci.org/jshttp/statuses\n[coveralls-image]: https://img.shields.io/coveralls/jshttp/statuses.svg?style=flat-square\n[coveralls-url]: https://coveralls.io/r/jshttp/statuses?branch=master\n[david-image]: http://img.shields.io/david/jshttp/statuses.svg?style=flat-square\n[david-url]: https://david-dm.org/jshttp/statuses\n[license-image]: http://img.shields.io/npm/l/statuses.svg?style=flat-square\n[license-url]: LICENSE\n[downloads-image]: http://img.shields.io/npm/dm/statuses.svg?style=flat-square\n[downloads-url]: https://npmjs.org/package/statuses\n[gittip-image]: https://img.shields.io/gittip/jonathanong.svg?style=flat-square\n[gittip-url]: https://www.gittip.com/jonathanong/\n",
+  "devDependencies": {
+    "mocha": "1",
+    "istanbul": "0"
+  },
+  "scripts": {
+    "update": "node update.js",
+    "test": "mocha --reporter spec --bail --check-leaks",
+    "test-cov": "istanbul cover node_modules/mocha/bin/_mocha -- --reporter dot --check-leaks",
+    "test-travis": "istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --reporter spec --check-leaks"
+  },
+  "readme": "# Statuses\n\n[![NPM Version][npm-image]][npm-url]\n[![NPM Downloads][downloads-image]][downloads-url]\n[![Node.js Version][node-version-image]][node-version-url]\n[![Build Status][travis-image]][travis-url]\n[![Test Coverage][coveralls-image]][coveralls-url]\n\nHTTP status utility for node.\n\n## API\n\n```js\nvar status = require('statuses');\n```\n\n### var code = status(Integer || String)\n\nIf `Integer` or `String` is a valid HTTP code or status message, then the appropriate `code` will be returned. Otherwise, an error will be thrown.\n\n```js\nstatus(403) // => 403\nstatus('403') // => 403\nstatus('forbidden') // => 403\nstatus('Forbidden') // => 403\nstatus(306) // throws, as it's not supported by node.js\n```\n\n### status.codes\n\nReturns an array of all the status codes as `Integer`s.\n\n### var msg = status[code]\n\nMap of `code` to `status message`. `undefined` for invalid `code`s.\n\n```js\nstatus[404] // => 'Not Found'\n```\n\n### var code = status[msg]\n\nMap of `status message` to `code`. `msg` can either be title-cased or lower-cased. `undefined` for invalid `status message`s.\n\n```js\nstatus['not found'] // => 404\nstatus['Not Found'] // => 404\n```\n\n### status.redirect[code]\n\nReturns `true` if a status code is a valid redirect status.\n\n```js\nstatus.redirect[200] // => undefined\nstatus.redirect[301] // => true\n```\n\n### status.empty[code]\n\nReturns `true` if a status code expects an empty body.\n\n```js\nstatus.empty[200] // => undefined\nstatus.empty[204] // => true\nstatus.empty[304] // => true\n```\n\n### status.retry[code]\n\nReturns `true` if you should retry the rest.\n\n```js\nstatus.retry[501] // => undefined\nstatus.retry[503] // => true\n```\n\n### statuses/codes.json\n\n```js\nvar codes = require('statuses/codes.json');\n```\n\nThis is a JSON file of the status codes\ntaken from `require('http').STATUS_CODES`.\nThis is saved so that codes are consistent even in older node.js versions.\nFor example, `308` will be added in v0.12.\n\n[npm-image]: https://img.shields.io/npm/v/statuses.svg?style=flat\n[npm-url]: https://npmjs.org/package/statuses\n[node-version-image]: http://img.shields.io/badge/node.js-%3E%3D_0.6-brightgreen.svg?style=flat\n[node-version-url]: http://nodejs.org/download/\n[travis-image]: https://img.shields.io/travis/jshttp/statuses.svg?style=flat\n[travis-url]: https://travis-ci.org/jshttp/statuses\n[coveralls-image]: https://img.shields.io/coveralls/jshttp/statuses.svg?style=flat\n[coveralls-url]: https://coveralls.io/r/jshttp/statuses?branch=master\n[downloads-image]: http://img.shields.io/npm/dm/statuses.svg?style=flat\n[downloads-url]: https://npmjs.org/package/statuses\n",
   "readmeFilename": "README.md",
   "bugs": {
     "url": "https://github.com/jshttp/statuses/issues"
   },
   "homepage": "https://github.com/jshttp/statuses",
-  "_id": "statuses@1.0.4",
-  "_shasum": "a8b203f645cf475a66426f6be690205c85f3ebdd",
-  "_from": "statuses@~1.0.4",
-  "_resolved": "https://registry.npmjs.org/statuses/-/statuses-1.0.4.tgz"
+  "_id": "statuses@1.1.1",
+  "_shasum": "10d1811e1bd3182ea3f566bf6b4745cf8edee6cc",
+  "_from": "statuses@~1.1.0",
+  "_resolved": "https://registry.npmjs.org/statuses/-/statuses-1.1.1.tgz"
 }
diff --git a/node_modules/http-errors/package.json b/node_modules/http-errors/package.json
index 5ce69f649..315c0ff18 100644
--- a/node_modules/http-errors/package.json
+++ b/node_modules/http-errors/package.json
@@ -1,7 +1,7 @@
 {
   "name": "http-errors",
   "description": "Create HTTP error objects",
-  "version": "1.2.0",
+  "version": "1.2.4",
   "author": {
     "name": "Jonathan Ong",
     "email": "me@jongleberry.com",
@@ -13,12 +13,16 @@
     "url": "git://github.com/jshttp/http-errors"
   },
   "dependencies": {
-    "statuses": "~1.0.4"
+    "inherits": "~2.0.1",
+    "statuses": "~1.1.0"
   },
   "devDependencies": {
     "istanbul": "0",
     "mocha": "1"
   },
+  "engines": {
+    "node": ">= 0.6"
+  },
   "scripts": {
     "test": "mocha --reporter spec --bail",
     "test-cov": "istanbul cover node_modules/mocha/bin/_mocha -- --reporter dot",
@@ -32,14 +36,14 @@
     "index.js",
     "LICENSE"
   ],
-  "readme": "\n# http-errors\n\n[![NPM version][npm-image]][npm-url]\n[![Build status][travis-image]][travis-url]\n[![Test coverage][coveralls-image]][coveralls-url]\n[![Dependency Status][david-image]][david-url]\n[![License][license-image]][license-url]\n[![Downloads][downloads-image]][downloads-url]\n\nCreate HTTP errors for Express, Koa, Connect, etc. with ease.\n\n## Example\n\n```js\nvar createError = require('http-errors');\n\napp.use(function (req, res, next) {\n  if (!req.user) return next(createError(401, 'Please login to view this page.'));\n  next();\n})\n```\n\n## API\n\nThis is the current API, currently extracted from Koa and subject to change.\n\n### Error Properties\n\n- `message`\n- `status` and `statusCode` - the status code of the error, defaulting to `500`\n\n### createError([status], [message], [properties])\n\n```js\nvar err = createError(404, 'This video does not exist!');\n```\n\n- `status: 500` - the status code as a number\n- `message` - the message of the error, defaulting to node's text for that status code.\n- `properties` - custom properties to attach to the object\n\n### new createError\\[code || name\\](\\[msg]\\))\n\n```js\nvar err = new createError.NotFound();\n```\n\n- `code` - the status code as a number\n- `name` - the name of the error as a \"bumpy case\", i.e. `NotFound` or `InternalServerError`.\n\n[npm-image]: https://img.shields.io/npm/v/http-errors.svg?style=flat-square\n[npm-url]: https://npmjs.org/package/http-errors\n[travis-image]: https://img.shields.io/travis/jshttp/http-errors.svg?style=flat-square\n[travis-url]: https://travis-ci.org/jshttp/http-errors\n[coveralls-image]: https://img.shields.io/coveralls/jshttp/http-errors.svg?style=flat-square\n[coveralls-url]: https://coveralls.io/r/jshttp/http-errors?branch=master\n[david-image]: http://img.shields.io/david/jshttp/http-errors.svg?style=flat-square\n[david-url]: https://david-dm.org/jshttp/http-errors\n[license-image]: http://img.shields.io/npm/l/http-errors.svg?style=flat-square\n[license-url]: LICENSE\n[downloads-image]: http://img.shields.io/npm/dm/http-errors.svg?style=flat-square\n[downloads-url]: https://npmjs.org/package/http-errors\n",
+  "readme": "# http-errors\n\n[![NPM Version][npm-image]][npm-url]\n[![NPM Downloads][downloads-image]][downloads-url]\n[![Node.js Version][node-version-image]][node-version-url]\n[![Build Status][travis-image]][travis-url]\n[![Test Coverage][coveralls-image]][coveralls-url]\n\nCreate HTTP errors for Express, Koa, Connect, etc. with ease.\n\n## Example\n\n```js\nvar createError = require('http-errors');\n\napp.use(function (req, res, next) {\n  if (!req.user) return next(createError(401, 'Please login to view this page.'));\n  next();\n})\n```\n\n## API\n\nThis is the current API, currently extracted from Koa and subject to change.\n\n### Error Properties\n\n- `message`\n- `status` and `statusCode` - the status code of the error, defaulting to `500`\n\n### createError([status], [message], [properties])\n\n```js\nvar err = createError(404, 'This video does not exist!');\n```\n\n- `status: 500` - the status code as a number\n- `message` - the message of the error, defaulting to node's text for that status code.\n- `properties` - custom properties to attach to the object\n\n### new createError\\[code || name\\](\\[msg]\\))\n\n```js\nvar err = new createError.NotFound();\n```\n\n- `code` - the status code as a number\n- `name` - the name of the error as a \"bumpy case\", i.e. `NotFound` or `InternalServerError`.\n\n## License\n\n[MIT](LICENSE)\n\n[npm-image]: https://img.shields.io/npm/v/http-errors.svg?style=flat\n[npm-url]: https://npmjs.org/package/http-errors\n[node-version-image]: https://img.shields.io/node/v/http-errors.svg?style=flat\n[node-version-url]: http://nodejs.org/download/\n[travis-image]: https://img.shields.io/travis/jshttp/http-errors.svg?style=flat\n[travis-url]: https://travis-ci.org/jshttp/http-errors\n[coveralls-image]: https://img.shields.io/coveralls/jshttp/http-errors.svg?style=flat\n[coveralls-url]: https://coveralls.io/r/jshttp/http-errors\n[downloads-image]: https://img.shields.io/npm/dm/http-errors.svg?style=flat\n[downloads-url]: https://npmjs.org/package/http-errors\n",
   "readmeFilename": "README.md",
   "bugs": {
     "url": "https://github.com/jshttp/http-errors/issues"
   },
   "homepage": "https://github.com/jshttp/http-errors",
-  "_id": "http-errors@1.2.0",
-  "_shasum": "936739e42c3e9b778d84b30bce32802fd5eb9c75",
+  "_id": "http-errors@1.2.4",
+  "_shasum": "5d7d6d2d27b1917777ad1869bab742b6c53699d2",
   "_from": "http-errors@~1.2.0",
-  "_resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.2.0.tgz"
+  "_resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.2.4.tgz"
 }
diff --git a/node_modules/sinopia-htpasswd/package.json b/node_modules/sinopia-htpasswd/package.json
index b57acff30..d2af607ee 100644
--- a/node_modules/sinopia-htpasswd/package.json
+++ b/node_modules/sinopia-htpasswd/package.json
@@ -34,5 +34,6 @@
   },
   "_id"             : "sinopia-htpasswd@0.4.3",
   "_shasum"             : "f69cbfe9bd347359a0ed591f66f08a60cc4ee982",
-  "_from"             : "sinopia-htpasswd@>= 0.4.2"
+  "_from"             : "sinopia-htpasswd@>= 0.4.3",
+  "_resolved"             : "https://registry.npmjs.org/sinopia-htpasswd/-/sinopia-htpasswd-0.4.3.tgz"
 }
diff --git a/node_modules/tar.gz/node_modules/fstream/node_modules/.bin/rimraf b/node_modules/tar.gz/node_modules/fstream/node_modules/.bin/rimraf
deleted file mode 120000
index 4cd49a49d..000000000
--- a/node_modules/tar.gz/node_modules/fstream/node_modules/.bin/rimraf
+++ /dev/null
@@ -1 +0,0 @@
-../rimraf/bin.js
\ No newline at end of file
diff --git a/node_modules/tar.gz/node_modules/fstream/node_modules/rimraf/AUTHORS b/node_modules/tar.gz/node_modules/fstream/node_modules/rimraf/AUTHORS
deleted file mode 100644
index 247b75437..000000000
--- a/node_modules/tar.gz/node_modules/fstream/node_modules/rimraf/AUTHORS
+++ /dev/null
@@ -1,6 +0,0 @@
-# Authors sorted by whether or not they're me.
-Isaac Z. Schlueter <i@izs.me> (http://blog.izs.me)
-Wayne Larsen <wayne@larsen.st> (http://github.com/wvl)
-ritch <skawful@gmail.com>
-Marcel Laverdet
-Yosef Dinerstein <yosefd@microsoft.com>
diff --git a/node_modules/tar.gz/node_modules/fstream/node_modules/rimraf/LICENSE b/node_modules/tar.gz/node_modules/fstream/node_modules/rimraf/LICENSE
deleted file mode 100644
index 05a401094..000000000
--- a/node_modules/tar.gz/node_modules/fstream/node_modules/rimraf/LICENSE
+++ /dev/null
@@ -1,23 +0,0 @@
-Copyright 2009, 2010, 2011 Isaac Z. Schlueter.
-All rights reserved.
-
-Permission is hereby granted, free of charge, to any person
-obtaining a copy of this software and associated documentation
-files (the "Software"), to deal in the Software without
-restriction, including without limitation the rights to use,
-copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the
-Software is furnished to do so, subject to the following
-conditions:
-
-The above copyright notice and this permission notice shall be
-included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
-OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
-HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
-WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-OTHER DEALINGS IN THE SOFTWARE.
diff --git a/node_modules/tar.gz/node_modules/fstream/node_modules/rimraf/README.md b/node_modules/tar.gz/node_modules/fstream/node_modules/rimraf/README.md
deleted file mode 100644
index cd123b652..000000000
--- a/node_modules/tar.gz/node_modules/fstream/node_modules/rimraf/README.md
+++ /dev/null
@@ -1,30 +0,0 @@
-`rm -rf` for node.
-
-Install with `npm install rimraf`, or just drop rimraf.js somewhere.
-
-## API
-
-`rimraf(f, callback)`
-
-The callback will be called with an error if there is one.  Certain
-errors are handled for you:
-
-* Windows: `EBUSY` and `ENOTEMPTY` - rimraf will back off a maximum of
-  `opts.maxBusyTries` times before giving up.
-* `ENOENT` - If the file doesn't exist, rimraf will return
-  successfully, since your desired outcome is already the case.
-
-## rimraf.sync
-
-It can remove stuff synchronously, too.  But that's not so good.  Use
-the async API.  It's better.
-
-## CLI
-
-If installed with `npm install rimraf -g` it can be used as a global
-command `rimraf <path>` which is useful for cross platform support.
-
-## mkdirp
-
-If you need to create a directory recursively, check out
-[mkdirp](https://github.com/substack/node-mkdirp).
diff --git a/node_modules/tar.gz/node_modules/fstream/node_modules/rimraf/bin.js b/node_modules/tar.gz/node_modules/fstream/node_modules/rimraf/bin.js
deleted file mode 100755
index 29bfa8a63..000000000
--- a/node_modules/tar.gz/node_modules/fstream/node_modules/rimraf/bin.js
+++ /dev/null
@@ -1,33 +0,0 @@
-#!/usr/bin/env node
-
-var rimraf = require('./')
-
-var help = false
-var dashdash = false
-var args = process.argv.slice(2).filter(function(arg) {
-  if (dashdash)
-    return !!arg
-  else if (arg === '--')
-    dashdash = true
-  else if (arg.match(/^(-+|\/)(h(elp)?|\?)$/))
-    help = true
-  else
-    return !!arg
-});
-
-if (help || args.length === 0) {
-  // If they didn't ask for help, then this is not a "success"
-  var log = help ? console.log : console.error
-  log('Usage: rimraf <path>')
-  log('')
-  log('  Deletes all files and folders at "path" recursively.')
-  log('')
-  log('Options:')
-  log('')
-  log('  -h, --help    Display this usage info')
-  process.exit(help ? 0 : 1)
-} else {
-  args.forEach(function(arg) {
-    rimraf.sync(arg)
-  })
-}
diff --git a/node_modules/tar.gz/node_modules/fstream/node_modules/rimraf/package.json b/node_modules/tar.gz/node_modules/fstream/node_modules/rimraf/package.json
deleted file mode 100644
index bb6bfc47a..000000000
--- a/node_modules/tar.gz/node_modules/fstream/node_modules/rimraf/package.json
+++ /dev/null
@@ -1,72 +0,0 @@
-{
-  "name": "rimraf",
-  "version": "2.2.8",
-  "main": "rimraf.js",
-  "description": "A deep deletion module for node (like `rm -rf`)",
-  "author": {
-    "name": "Isaac Z. Schlueter",
-    "email": "i@izs.me",
-    "url": "http://blog.izs.me/"
-  },
-  "license": {
-    "type": "MIT",
-    "url": "https://github.com/isaacs/rimraf/raw/master/LICENSE"
-  },
-  "repository": {
-    "type": "git",
-    "url": "git://github.com/isaacs/rimraf.git"
-  },
-  "scripts": {
-    "test": "cd test && bash run.sh"
-  },
-  "bin": {
-    "rimraf": "./bin.js"
-  },
-  "contributors": [
-    {
-      "name": "Isaac Z. Schlueter",
-      "email": "i@izs.me",
-      "url": "http://blog.izs.me"
-    },
-    {
-      "name": "Wayne Larsen",
-      "email": "wayne@larsen.st",
-      "url": "http://github.com/wvl"
-    },
-    {
-      "name": "ritch",
-      "email": "skawful@gmail.com"
-    },
-    {
-      "name": "Marcel Laverdet"
-    },
-    {
-      "name": "Yosef Dinerstein",
-      "email": "yosefd@microsoft.com"
-    }
-  ],
-  "bugs": {
-    "url": "https://github.com/isaacs/rimraf/issues"
-  },
-  "homepage": "https://github.com/isaacs/rimraf",
-  "_id": "rimraf@2.2.8",
-  "_shasum": "e439be2aaee327321952730f99a8929e4fc50582",
-  "_from": "rimraf@2",
-  "_npmVersion": "1.4.10",
-  "_npmUser": {
-    "name": "isaacs",
-    "email": "i@izs.me"
-  },
-  "maintainers": [
-    {
-      "name": "isaacs",
-      "email": "i@izs.me"
-    }
-  ],
-  "dist": {
-    "shasum": "e439be2aaee327321952730f99a8929e4fc50582",
-    "tarball": "http://registry.npmjs.org/rimraf/-/rimraf-2.2.8.tgz"
-  },
-  "directories": {},
-  "_resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.2.8.tgz"
-}
diff --git a/node_modules/tar.gz/node_modules/fstream/node_modules/rimraf/rimraf.js b/node_modules/tar.gz/node_modules/fstream/node_modules/rimraf/rimraf.js
deleted file mode 100644
index eb96c46af..000000000
--- a/node_modules/tar.gz/node_modules/fstream/node_modules/rimraf/rimraf.js
+++ /dev/null
@@ -1,248 +0,0 @@
-module.exports = rimraf
-rimraf.sync = rimrafSync
-
-var assert = require("assert")
-var path = require("path")
-var fs = require("fs")
-
-// for EMFILE handling
-var timeout = 0
-exports.EMFILE_MAX = 1000
-exports.BUSYTRIES_MAX = 3
-
-var isWindows = (process.platform === "win32")
-
-function defaults (options) {
-  var methods = [
-    'unlink',
-    'chmod',
-    'stat',
-    'rmdir',
-    'readdir'
-  ]
-  methods.forEach(function(m) {
-    options[m] = options[m] || fs[m]
-    m = m + 'Sync'
-    options[m] = options[m] || fs[m]
-  })
-}
-
-function rimraf (p, options, cb) {
-  if (typeof options === 'function') {
-    cb = options
-    options = {}
-  }
-  assert(p)
-  assert(options)
-  assert(typeof cb === 'function')
-
-  defaults(options)
-
-  if (!cb) throw new Error("No callback passed to rimraf()")
-
-  var busyTries = 0
-  rimraf_(p, options, function CB (er) {
-    if (er) {
-      if (isWindows && (er.code === "EBUSY" || er.code === "ENOTEMPTY") &&
-          busyTries < exports.BUSYTRIES_MAX) {
-        busyTries ++
-        var time = busyTries * 100
-        // try again, with the same exact callback as this one.
-        return setTimeout(function () {
-          rimraf_(p, options, CB)
-        }, time)
-      }
-
-      // this one won't happen if graceful-fs is used.
-      if (er.code === "EMFILE" && timeout < exports.EMFILE_MAX) {
-        return setTimeout(function () {
-          rimraf_(p, options, CB)
-        }, timeout ++)
-      }
-
-      // already gone
-      if (er.code === "ENOENT") er = null
-    }
-
-    timeout = 0
-    cb(er)
-  })
-}
-
-// Two possible strategies.
-// 1. Assume it's a file.  unlink it, then do the dir stuff on EPERM or EISDIR
-// 2. Assume it's a directory.  readdir, then do the file stuff on ENOTDIR
-//
-// Both result in an extra syscall when you guess wrong.  However, there
-// are likely far more normal files in the world than directories.  This
-// is based on the assumption that a the average number of files per
-// directory is >= 1.
-//
-// If anyone ever complains about this, then I guess the strategy could
-// be made configurable somehow.  But until then, YAGNI.
-function rimraf_ (p, options, cb) {
-  assert(p)
-  assert(options)
-  assert(typeof cb === 'function')
-
-  options.unlink(p, function (er) {
-    if (er) {
-      if (er.code === "ENOENT")
-        return cb(null)
-      if (er.code === "EPERM")
-        return (isWindows)
-          ? fixWinEPERM(p, options, er, cb)
-          : rmdir(p, options, er, cb)
-      if (er.code === "EISDIR")
-        return rmdir(p, options, er, cb)
-    }
-    return cb(er)
-  })
-}
-
-function fixWinEPERM (p, options, er, cb) {
-  assert(p)
-  assert(options)
-  assert(typeof cb === 'function')
-  if (er)
-    assert(er instanceof Error)
-
-  options.chmod(p, 666, function (er2) {
-    if (er2)
-      cb(er2.code === "ENOENT" ? null : er)
-    else
-      options.stat(p, function(er3, stats) {
-        if (er3)
-          cb(er3.code === "ENOENT" ? null : er)
-        else if (stats.isDirectory())
-          rmdir(p, options, er, cb)
-        else
-          options.unlink(p, cb)
-      })
-  })
-}
-
-function fixWinEPERMSync (p, options, er) {
-  assert(p)
-  assert(options)
-  if (er)
-    assert(er instanceof Error)
-
-  try {
-    options.chmodSync(p, 666)
-  } catch (er2) {
-    if (er2.code === "ENOENT")
-      return
-    else
-      throw er
-  }
-
-  try {
-    var stats = options.statSync(p)
-  } catch (er3) {
-    if (er3.code === "ENOENT")
-      return
-    else
-      throw er
-  }
-
-  if (stats.isDirectory())
-    rmdirSync(p, options, er)
-  else
-    options.unlinkSync(p)
-}
-
-function rmdir (p, options, originalEr, cb) {
-  assert(p)
-  assert(options)
-  if (originalEr)
-    assert(originalEr instanceof Error)
-  assert(typeof cb === 'function')
-
-  // try to rmdir first, and only readdir on ENOTEMPTY or EEXIST (SunOS)
-  // if we guessed wrong, and it's not a directory, then
-  // raise the original error.
-  options.rmdir(p, function (er) {
-    if (er && (er.code === "ENOTEMPTY" || er.code === "EEXIST" || er.code === "EPERM"))
-      rmkids(p, options, cb)
-    else if (er && er.code === "ENOTDIR")
-      cb(originalEr)
-    else
-      cb(er)
-  })
-}
-
-function rmkids(p, options, cb) {
-  assert(p)
-  assert(options)
-  assert(typeof cb === 'function')
-
-  options.readdir(p, function (er, files) {
-    if (er)
-      return cb(er)
-    var n = files.length
-    if (n === 0)
-      return options.rmdir(p, cb)
-    var errState
-    files.forEach(function (f) {
-      rimraf(path.join(p, f), options, function (er) {
-        if (errState)
-          return
-        if (er)
-          return cb(errState = er)
-        if (--n === 0)
-          options.rmdir(p, cb)
-      })
-    })
-  })
-}
-
-// this looks simpler, and is strictly *faster*, but will
-// tie up the JavaScript thread and fail on excessively
-// deep directory trees.
-function rimrafSync (p, options) {
-  options = options || {}
-  defaults(options)
-
-  assert(p)
-  assert(options)
-
-  try {
-    options.unlinkSync(p)
-  } catch (er) {
-    if (er.code === "ENOENT")
-      return
-    if (er.code === "EPERM")
-      return isWindows ? fixWinEPERMSync(p, options, er) : rmdirSync(p, options, er)
-    if (er.code !== "EISDIR")
-      throw er
-    rmdirSync(p, options, er)
-  }
-}
-
-function rmdirSync (p, options, originalEr) {
-  assert(p)
-  assert(options)
-  if (originalEr)
-    assert(originalEr instanceof Error)
-
-  try {
-    options.rmdirSync(p)
-  } catch (er) {
-    if (er.code === "ENOENT")
-      return
-    if (er.code === "ENOTDIR")
-      throw originalEr
-    if (er.code === "ENOTEMPTY" || er.code === "EEXIST" || er.code === "EPERM")
-      rmkidsSync(p, options)
-  }
-}
-
-function rmkidsSync (p, options) {
-  assert(p)
-  assert(options)
-  options.readdirSync(p).forEach(function (f) {
-    rimrafSync(path.join(p, f), options)
-  })
-  options.rmdirSync(p, options)
-}
diff --git a/node_modules/tar.gz/node_modules/fstream/node_modules/rimraf/test/run.sh b/node_modules/tar.gz/node_modules/fstream/node_modules/rimraf/test/run.sh
deleted file mode 100644
index 653ff9b79..000000000
--- a/node_modules/tar.gz/node_modules/fstream/node_modules/rimraf/test/run.sh
+++ /dev/null
@@ -1,16 +0,0 @@
-#!/bin/bash
-set -e
-code=0
-for i in test-*.js; do
-  echo -n $i ...
-  bash setup.sh
-  node $i
-  if [ -d target ]; then
-    echo "fail"
-    code=1
-  else
-    echo "pass"
-  fi
-done
-rm -rf target
-exit $code
diff --git a/node_modules/tar.gz/node_modules/fstream/node_modules/rimraf/test/setup.sh b/node_modules/tar.gz/node_modules/fstream/node_modules/rimraf/test/setup.sh
deleted file mode 100644
index 2602e6316..000000000
--- a/node_modules/tar.gz/node_modules/fstream/node_modules/rimraf/test/setup.sh
+++ /dev/null
@@ -1,47 +0,0 @@
-#!/bin/bash
-
-set -e
-
-files=10
-folders=2
-depth=4
-target="$PWD/target"
-
-rm -rf target
-
-fill () {
-  local depth=$1
-  local files=$2
-  local folders=$3
-  local target=$4
-
-  if ! [ -d $target ]; then
-    mkdir -p $target
-  fi
-
-  local f
-
-  f=$files
-  while [ $f -gt 0 ]; do
-    touch "$target/f-$depth-$f"
-    let f--
-  done
-
-  let depth--
-
-  if [ $depth -le 0 ]; then
-    return 0
-  fi
-
-  f=$folders
-  while [ $f -gt 0 ]; do
-    mkdir "$target/folder-$depth-$f"
-    fill $depth $files $folders "$target/d-$depth-$f"
-    let f--
-  done
-}
-
-fill $depth $files $folders $target
-
-# sanity assert
-[ -d $target ]
diff --git a/node_modules/tar.gz/node_modules/fstream/node_modules/rimraf/test/test-async.js b/node_modules/tar.gz/node_modules/fstream/node_modules/rimraf/test/test-async.js
deleted file mode 100644
index 9c2e0b7be..000000000
--- a/node_modules/tar.gz/node_modules/fstream/node_modules/rimraf/test/test-async.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var rimraf = require("../rimraf")
-  , path = require("path")
-rimraf(path.join(__dirname, "target"), function (er) {
-  if (er) throw er
-})
diff --git a/node_modules/tar.gz/node_modules/fstream/node_modules/rimraf/test/test-sync.js b/node_modules/tar.gz/node_modules/fstream/node_modules/rimraf/test/test-sync.js
deleted file mode 100644
index eb71f1047..000000000
--- a/node_modules/tar.gz/node_modules/fstream/node_modules/rimraf/test/test-sync.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var rimraf = require("../rimraf")
-  , path = require("path")
-rimraf.sync(path.join(__dirname, "target"))