diff --git a/node_modules/urix/.jshintrc b/node_modules/urix/.jshintrc
new file mode 100644
index 0000000..e722e46
--- /dev/null
+++ b/node_modules/urix/.jshintrc
@@ -0,0 +1,42 @@
+{
+	"bitwise": true,
+	"camelcase": true,
+	"curly": false,
+	"eqeqeq": true,
+	"es3": false,
+	"forin": true,
+	"immed": false,
+	"indent": false,
+	"latedef": "nofunc",
+	"newcap": false,
+	"noarg": true,
+	"noempty": true,
+	"nonew": false,
+	"plusplus": false,
+	"quotmark": true,
+	"undef": true,
+	"unused": "vars",
+	"strict": false,
+	"trailing": true,
+	"maxparams": 5,
+	"maxdepth": false,
+	"maxstatements": false,
+	"maxcomplexity": false,
+	"maxlen": 100,
+
+	"asi": true,
+	"expr": true,
+	"globalstrict": true,
+	"smarttabs": true,
+	"sub": true,
+
+	"node": true,
+	"globals": {
+		"describe": false,
+		"it": false,
+		"before": false,
+		"beforeEach": false,
+		"after": false,
+		"afterEach": false
+	}
+}
diff --git a/node_modules/urix/LICENSE b/node_modules/urix/LICENSE
new file mode 100644
index 0000000..0595be3
--- /dev/null
+++ b/node_modules/urix/LICENSE
@@ -0,0 +1,21 @@
+The MIT License (MIT)
+
+Copyright (c) 2013 Simon Lydell
+
+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/urix/index.js b/node_modules/urix/index.js
new file mode 100644
index 0000000..3fb7903
--- /dev/null
+++ b/node_modules/urix/index.js
@@ -0,0 +1,17 @@
+// Copyright 2014 Simon Lydell
+// X11 (“MIT”) Licensed. (See LICENSE.)
+
+var path = require("path")
+
+"use strict"
+
+function urix(aPath) {
+  if (path.sep === "\\") {
+    return aPath
+      .replace(/\\/g, "/")
+      .replace(/^[a-z]:\/?/i, "/")
+  }
+  return aPath
+}
+
+module.exports = urix
diff --git a/node_modules/urix/package.json b/node_modules/urix/package.json
new file mode 100644
index 0000000..c9ba638
--- /dev/null
+++ b/node_modules/urix/package.json
@@ -0,0 +1,59 @@
+{
+  "_from": "urix@^0.1.0",
+  "_id": "urix@0.1.0",
+  "_inBundle": false,
+  "_integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=",
+  "_location": "/urix",
+  "_phantomChildren": {},
+  "_requested": {
+    "type": "range",
+    "registry": true,
+    "raw": "urix@^0.1.0",
+    "name": "urix",
+    "escapedName": "urix",
+    "rawSpec": "^0.1.0",
+    "saveSpec": null,
+    "fetchSpec": "^0.1.0"
+  },
+  "_requiredBy": [
+    "/source-map-resolve"
+  ],
+  "_resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz",
+  "_shasum": "da937f7a62e21fec1fd18d49b35c2935067a6c72",
+  "_spec": "urix@^0.1.0",
+  "_where": "C:\\Users\\marcr\\Desktop\\KorAp\\Git\\Kalamar\\node_modules\\source-map-resolve",
+  "author": {
+    "name": "Simon Lydell"
+  },
+  "bugs": {
+    "url": "https://github.com/lydell/urix/issues"
+  },
+  "bundleDependencies": false,
+  "deprecated": "Please see https://github.com/lydell/urix#deprecated",
+  "description": "Makes Windows-style paths more unix and URI friendly.",
+  "devDependencies": {
+    "jshint": "^2.4.4",
+    "mocha": "^1.17.1"
+  },
+  "homepage": "https://github.com/lydell/urix#readme",
+  "keywords": [
+    "path",
+    "url",
+    "uri",
+    "unix",
+    "windows",
+    "backslash",
+    "slash"
+  ],
+  "license": "MIT",
+  "main": "index.js",
+  "name": "urix",
+  "repository": {
+    "type": "git",
+    "url": "git+https://github.com/lydell/urix.git"
+  },
+  "scripts": {
+    "test": "jshint index.js test/ && mocha"
+  },
+  "version": "0.1.0"
+}
diff --git a/node_modules/urix/readme.md b/node_modules/urix/readme.md
new file mode 100644
index 0000000..ac386f5
--- /dev/null
+++ b/node_modules/urix/readme.md
@@ -0,0 +1,46 @@
+[![Build Status](https://travis-ci.org/lydell/urix.png?branch=master)](https://travis-ci.org/lydell/urix)
+
+Overview
+========
+
+Makes Windows-style paths more unix and URI friendly. Useful if you work with
+paths that eventually will be used in URLs.
+
+```js
+var urix = require("urix")
+
+// On Windows:
+urix("c:\\users\\you\\foo")
+// /users/you/foo
+
+// On unix-like systems:
+urix("c:\\users\\you\\foo")
+// c:\users\you\foo
+```
+
+
+Installation
+============
+
+`npm install urix`
+
+```js
+var urix = require("urix")
+```
+
+
+Usage
+=====
+
+### `urix(path)` ###
+
+On Windows, replaces all backslashes with slashes and uses a slash instead of a
+drive letter and a colon for absolute paths.
+
+On unix-like systems it is a no-op.
+
+
+License
+=======
+
+[The X11 (“MIT”) License](LICENSE).
diff --git a/node_modules/urix/test/index.js b/node_modules/urix/test/index.js
new file mode 100644
index 0000000..b84b8f3
--- /dev/null
+++ b/node_modules/urix/test/index.js
@@ -0,0 +1,43 @@
+// Copyright 2014 Simon Lydell
+// X11 (“MIT”) Licensed. (See LICENSE.)
+
+var path   = require("path")
+var assert = require("assert")
+var urix   = require("../")
+
+"use stict"
+
+function test(testPath, expected) {
+  path.sep = "\\"
+  assert.equal(urix(testPath), expected)
+  path.sep = "/"
+  assert.equal(urix(testPath), testPath)
+}
+
+describe("urix", function() {
+
+  it("is a function", function() {
+    assert.equal(typeof urix, "function")
+  })
+
+
+  it("converts backslashes to slashes", function() {
+    test("a\\b\\c", "a/b/c")
+    test("\\a\\b\\c", "/a/b/c")
+    test("a/b\\c", "a/b/c")
+    test("\\\\a\\\\\\b///c", "//a///b///c")
+  })
+
+
+  it("changes the drive letter to a slash", function() {
+    test("c:\\a", "/a")
+    test("C:\\a", "/a")
+    test("z:\\a", "/a")
+    test("c:a", "/a")
+    test("c:/a", "/a")
+    test("c:\\\\a", "//a")
+    test("c://a", "//a")
+    test("c:\\//a", "///a")
+  })
+
+})
