Index: frontend/node_modules/natural-compare-lite/README.md
===================================================================
--- frontend/node_modules/natural-compare-lite/README.md	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
+++ frontend/node_modules/natural-compare-lite/README.md	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
@@ -0,0 +1,126 @@
+
+[Build]:    http://img.shields.io/travis/litejs/natural-compare-lite.png
+[Coverage]: http://img.shields.io/coveralls/litejs/natural-compare-lite.png
+[1]: https://travis-ci.org/litejs/natural-compare-lite
+[2]: https://coveralls.io/r/litejs/natural-compare-lite
+[npm package]: https://npmjs.org/package/natural-compare-lite
+[GitHub repo]: https://github.com/litejs/natural-compare-lite
+
+
+
+    @version    1.4.0
+    @date       2015-10-26
+    @stability  3 - Stable
+
+
+Natural Compare &ndash; [![Build][]][1] [![Coverage][]][2]
+===============
+
+Compare strings containing a mix of letters and numbers
+in the way a human being would in sort order.
+This is described as a "natural ordering".
+
+```text
+Standard sorting:   Natural order sorting:
+    img1.png            img1.png
+    img10.png           img2.png
+    img12.png           img10.png
+    img2.png            img12.png
+```
+
+String.naturalCompare returns a number indicating
+whether a reference string comes before or after or is the same
+as the given string in sort order.
+Use it with builtin sort() function.
+
+
+
+### Installation
+
+- In browser
+
+```html
+<script src=min.natural-compare.js></script>
+```
+
+- In node.js: `npm install natural-compare-lite`
+
+```javascript
+require("natural-compare-lite")
+```
+
+### Usage
+
+```javascript
+// Simple case sensitive example
+var a = ["z1.doc", "z10.doc", "z17.doc", "z2.doc", "z23.doc", "z3.doc"];
+a.sort(String.naturalCompare);
+// ["z1.doc", "z2.doc", "z3.doc", "z10.doc", "z17.doc", "z23.doc"]
+
+// Use wrapper function for case insensitivity
+a.sort(function(a, b){
+  return String.naturalCompare(a.toLowerCase(), b.toLowerCase());
+})
+
+// In most cases we want to sort an array of objects
+var a = [ {"street":"350 5th Ave", "room":"A-1021"}
+        , {"street":"350 5th Ave", "room":"A-21046-b"} ];
+
+// sort by street, then by room
+a.sort(function(a, b){
+  return String.naturalCompare(a.street, b.street) || String.naturalCompare(a.room, b.room);
+})
+
+// When text transformation is needed (eg toLowerCase()),
+// it is best for performance to keep
+// transformed key in that object.
+// There are no need to do text transformation
+// on each comparision when sorting.
+var a = [ {"make":"Audi", "model":"A6"}
+        , {"make":"Kia",  "model":"Rio"} ];
+
+// sort by make, then by model
+a.map(function(car){
+  car.sort_key = (car.make + " " + car.model).toLowerCase();
+})
+a.sort(function(a, b){
+  return String.naturalCompare(a.sort_key, b.sort_key);
+})
+```
+
+- Works well with dates in ISO format eg "Rev 2012-07-26.doc".
+
+
+### Custom alphabet
+
+It is possible to configure a custom alphabet
+to achieve a desired order.
+
+```javascript
+// Estonian alphabet
+String.alphabet = "ABDEFGHIJKLMNOPRSŠZŽTUVÕÄÖÜXYabdefghijklmnoprsšzžtuvõäöüxy"
+["t", "z", "x", "õ"].sort(String.naturalCompare)
+// ["z", "t", "õ", "x"]
+
+// Russian alphabet
+String.alphabet = "АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдеёжзийклмнопрстуфхцчшщъыьэюя"
+["Ё", "А", "Б"].sort(String.naturalCompare)
+// ["А", "Б", "Ё"]
+```
+
+
+External links
+--------------
+
+-   [GitHub repo][]
+-   [npm package][]
+-   [jsperf test](http://jsperf.com/natural-sort-2/12)
+
+
+Licence
+-------
+
+Copyright (c) 2012-2015 Lauri Rooden &lt;lauri@rooden.ee&gt;  
+[The MIT License](http://lauri.rooden.ee/mit-license.txt)
+
+
Index: frontend/node_modules/natural-compare-lite/index.js
===================================================================
--- frontend/node_modules/natural-compare-lite/index.js	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
+++ frontend/node_modules/natural-compare-lite/index.js	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
@@ -0,0 +1,57 @@
+
+
+
+/*
+ * @version    1.4.0
+ * @date       2015-10-26
+ * @stability  3 - Stable
+ * @author     Lauri Rooden (https://github.com/litejs/natural-compare-lite)
+ * @license    MIT License
+ */
+
+
+var naturalCompare = function(a, b) {
+	var i, codeA
+	, codeB = 1
+	, posA = 0
+	, posB = 0
+	, alphabet = String.alphabet
+
+	function getCode(str, pos, code) {
+		if (code) {
+			for (i = pos; code = getCode(str, i), code < 76 && code > 65;) ++i;
+			return +str.slice(pos - 1, i)
+		}
+		code = alphabet && alphabet.indexOf(str.charAt(pos))
+		return code > -1 ? code + 76 : ((code = str.charCodeAt(pos) || 0), code < 45 || code > 127) ? code
+			: code < 46 ? 65               // -
+			: code < 48 ? code - 1
+			: code < 58 ? code + 18        // 0-9
+			: code < 65 ? code - 11
+			: code < 91 ? code + 11        // A-Z
+			: code < 97 ? code - 37
+			: code < 123 ? code + 5        // a-z
+			: code - 63
+	}
+
+
+	if ((a+="") != (b+="")) for (;codeB;) {
+		codeA = getCode(a, posA++)
+		codeB = getCode(b, posB++)
+
+		if (codeA < 76 && codeB < 76 && codeA > 66 && codeB > 66) {
+			codeA = getCode(a, posA, posA)
+			codeB = getCode(b, posB, posA = i)
+			posB = i
+		}
+
+		if (codeA != codeB) return (codeA < codeB) ? -1 : 1
+	}
+	return 0
+}
+
+try {
+	module.exports = naturalCompare;
+} catch (e) {
+	String.naturalCompare = naturalCompare;
+}
Index: frontend/node_modules/natural-compare-lite/package.json
===================================================================
--- frontend/node_modules/natural-compare-lite/package.json	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
+++ frontend/node_modules/natural-compare-lite/package.json	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
@@ -0,0 +1,42 @@
+{
+  "name": "natural-compare-lite",
+  "version": "1.4.0",
+  "stability": 3,
+  "author": "Lauri Rooden (https://github.com/litejs/natural-compare-lite)",
+  "license": "MIT",
+  "description": "Compare strings containing a mix of letters and numbers in the way a human being would in sort order.",
+  "keywords": [
+    "string",
+    "natural",
+    "order",
+    "sort",
+    "natsort",
+    "natcmp",
+    "compare",
+    "alphanum",
+    "litejs"
+  ],
+  "main": "index.js",
+  "readmeFilename": "README.md",
+  "files": [
+    "index.js"
+  ],
+  "scripts": {
+    "build": "node node_modules/buildman/index.js --all",
+    "test": "node tests/index.js"
+  },
+  "repository": "git://github.com/litejs/natural-compare-lite.git",
+  "bugs": {
+    "url": "https://github.com/litejs/natural-compare-lite/issues"
+  },
+  "devDependencies": {
+    "buildman": "*",
+    "testman": "*"
+  },
+  "buildman": {
+    "dist/index-min.js": {
+      "banner": "/*! litejs.com/MIT-LICENSE.txt */",
+      "input": "index.js"
+    }
+  }
+}
