Demo for query storing

Change-Id: I947bcac841992c3f6cfd01ab337c265b0d01cb70
diff --git a/node_modules/string-template/.npmignore b/node_modules/string-template/.npmignore
new file mode 100644
index 0000000..f1250e5
--- /dev/null
+++ b/node_modules/string-template/.npmignore
@@ -0,0 +1,4 @@
+support
+test
+examples
+*.sock
diff --git a/node_modules/string-template/.travis.yml b/node_modules/string-template/.travis.yml
new file mode 100644
index 0000000..57c94b2
--- /dev/null
+++ b/node_modules/string-template/.travis.yml
@@ -0,0 +1,7 @@
+language: node_js
+node_js:
+  - "0.10"
+before_script:
+ - npm install
+ - npm install istanbul coveralls
+script: npm run travis-test
diff --git a/node_modules/string-template/LICENCE b/node_modules/string-template/LICENCE
new file mode 100644
index 0000000..a5609a1
--- /dev/null
+++ b/node_modules/string-template/LICENCE
@@ -0,0 +1,19 @@
+Copyright (c) 2013 Matt Esch.
+
+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/string-template/Readme.md b/node_modules/string-template/Readme.md
new file mode 100644
index 0000000..9b976e9
--- /dev/null
+++ b/node_modules/string-template/Readme.md
@@ -0,0 +1,103 @@
+# string-template
+
+[![build status][1]][2] [![dependency status][3]][4] [![coverage report][9]][10] [![stability index][15]][16]
+
+[![npm stats][13]][14]
+
+[![browser support][5]][6]
+
+  A simple string template function based on named or indexed arguments
+
+## Example
+
+```js
+var format = require("string-template")
+var greeting
+
+// Format using an object hash with keys matching [0-9a-zA-Z]+
+
+greeting = format("Hello {name}, you have {count} unread messages", {
+    name: "Robert",
+    count: 12
+})
+// greeting -> "Hello Robert, you have 12 unread messages"
+
+
+// Format using a number indexed array
+
+greeting = format("Hello {0}, you have {1} unread messages", ["Robert", 12])
+// greeting -> "Hello Robert, you have 12 unread messages"
+
+
+// Format using optional arguments
+
+greeting = format("Hello {0}, you have {1} unread messages",
+     "Robert",
+     12)
+// greeting -> "Hello Robert, you have 12 unread messages"
+
+
+// Escape {} pairs by using double {{}}
+
+var text = format("{{0}}")
+// text -> "{0}"
+
+```
+
+## Compiling templates
+
+`string-template` exposes two template compiling options for when you need the
+additional performance. Arguments passed to the compiled template are of the
+same structure as the main `string-template` function, so either a single
+object/array or a list of arguments.
+
+```js
+var compile = require("string-template/compile")
+
+var greetingTemplate = compile("Hello {0}, you have {1} unread messages")
+
+var greeting = greetingTemplate("Robert", 12)
+// -> "Hello Robert, you have 12 unread messages"
+```
+
+Passing a truthy second argument to `compile` will opt into using `new Function`
+to generate a function. The function returned contains a literal string
+concatenation statement, interleaving the correct arguments you have passed in.
+
+```js
+var compile = require("string-template/compile")
+
+var greetingTemplate = compile("Hello {0}, you have {1} unread messages", true)
+// -> greetingTemplate generated using new Function
+
+var greeting = greetingTemplate(["Robert", 12])
+// -> "Hello Robert, you have 12 unread messages"
+```
+
+## Installation
+
+`npm install string-template`
+
+## Contributors
+
+ - Matt-Esch
+
+## MIT Licenced
+
+  [1]: https://secure.travis-ci.org/Matt-Esch/string-template.png
+  [2]: https://travis-ci.org/Matt-Esch/string-template
+  [3]: https://david-dm.org/Matt-Esch/string-template.png
+  [4]: https://david-dm.org/Matt-Esch/string-template
+  [5]: https://ci.testling.com/Matt-Esch/string-template.png
+  [6]: https://ci.testling.com/Matt-Esch/string-template
+  [9]: https://coveralls.io/repos/Matt-Esch/string-template/badge.png
+  [10]: https://coveralls.io/r/Matt-Esch/string-template
+  [13]: https://nodei.co/npm/string-template.png?downloads=true&stars=true
+  [14]: https://nodei.co/npm/string-template
+  [15]: http://hughsk.github.io/stability-badges/dist/unstable.svg
+  [16]: http://github.com/hughsk/stability-badges
+
+  [7]: https://badge.fury.io/js/string-template.png
+  [8]: https://badge.fury.io/js/string-template
+  [11]: https://gemnasium.com/Matt-Esch/string-template.png
+  [12]: https://gemnasium.com/Matt-Esch/string-template
diff --git a/node_modules/string-template/compile.js b/node_modules/string-template/compile.js
new file mode 100644
index 0000000..18a48bf
--- /dev/null
+++ b/node_modules/string-template/compile.js
@@ -0,0 +1,143 @@
+var template = require("./index")
+
+var whitespaceRegex = /["'\\\n\r\u2028\u2029]/g
+var nargs = /\{[0-9a-zA-Z]+\}/g
+
+var replaceTemplate =
+"    var args\n" +
+"    var result\n" +
+"    if (arguments.length === 1 && typeof arguments[0] === \"object\") {\n" +
+"        args = arguments[0]\n" +
+"    } else {\n" +
+"        args = arguments" +
+"    }\n\n" +
+"    if (!args || !(\"hasOwnProperty\" in args)) {\n" +
+"       args = {}\n" +
+"    }\n\n" +
+"    return {0}"
+
+var literalTemplate = "\"{0}\""
+var argTemplate = "(result = args.hasOwnProperty(\"{0}\") ? " +
+    "args[\"{0}\"] : null, \n        " +
+    "(result === null || result === undefined) ? \"\" : result)"
+
+module.exports = compile
+
+function compile(string, inline) {
+    var replacements = string.match(nargs)
+    var interleave = string.split(nargs)
+    var replace = []
+
+    for (var i = 0; i < interleave.length; i++) {
+        var current = interleave[i];
+        var replacement = replacements[i];
+        var escapeLeft = current.charAt(current.length - 1)
+        var escapeRight = (interleave[i + 1] || "").charAt(0)
+
+        if (replacement) {
+            replacement = replacement.substring(1, replacement.length - 1)
+        }
+
+        if (escapeLeft === "{" && escapeRight === "}") {
+            replace.push(current + replacement)
+        } else {
+            replace.push(current);
+            if (replacement) {
+                replace.push({ name: replacement })
+            }
+        }
+    }
+
+    var prev = [""]
+
+    for (var j = 0; j < replace.length; j++) {
+        var curr = replace[j]
+
+        if (String(curr) === curr) {
+            var top = prev[prev.length - 1]
+
+            if (String(top) === top) {
+                prev[prev.length - 1] = top + curr
+            } else {
+                prev.push(curr)
+            }
+        } else {
+            prev.push(curr)
+        }
+    }
+
+    replace = prev
+
+    if (inline) {
+        for (var k = 0; k < replace.length; k++) {
+            var token = replace[k]
+
+            if (String(token) === token) {
+                replace[k] = template(literalTemplate, escape(token))
+            } else {
+                replace[k] = template(argTemplate, escape(token.name))
+            }
+        }
+
+        var replaceCode = replace.join(" +\n    ")
+        var compiledSource = template(replaceTemplate, replaceCode)
+        return new Function(compiledSource)
+    }
+
+    return function template() {
+        var args
+
+        if (arguments.length === 1 && typeof arguments[0] === "object") {
+            args = arguments[0]
+        } else {
+            args = arguments
+        }
+
+        if (!args || !("hasOwnProperty" in args)) {
+            args = {}
+        }
+
+        var result = []
+
+        for (var i = 0; i < replace.length; i++) {
+            if (i % 2 === 0) {
+                result.push(replace[i])
+            } else {
+                var argName = replace[i].name
+                var arg = args.hasOwnProperty(argName) ? args[argName] : null
+                if (arg !== null || arg !== undefined) {
+                    result.push(arg)
+                }
+            }
+        }
+
+        return result.join("")
+    }
+}
+
+function escape(string) {
+    string = '' + string;
+
+    return string.replace(whitespaceRegex, escapedWhitespace);
+}
+
+function escapedWhitespace(character) {
+    // Escape all characters not included in SingleStringCharacters and
+    // DoubleStringCharacters on
+    // http://www.ecma-international.org/ecma-262/5.1/#sec-7.8.4
+    switch (character) {
+        case '"':
+        case "'":
+        case '\\':
+            return '\\' + character
+        // Four possible LineTerminator characters need to be escaped:
+        case '\n':
+            return '\\n'
+        case '\r':
+            return '\\r'
+        case '\u2028':
+            return '\\u2028'
+        case '\u2029':
+            return '\\u2029'
+    }
+}
diff --git a/node_modules/string-template/index.js b/node_modules/string-template/index.js
new file mode 100644
index 0000000..012cec2
--- /dev/null
+++ b/node_modules/string-template/index.js
@@ -0,0 +1,34 @@
+var nargs = /\{([0-9a-zA-Z]+)\}/g
+var slice = Array.prototype.slice
+
+module.exports = template
+
+function template(string) {
+    var args
+
+    if (arguments.length === 2 && typeof arguments[1] === "object") {
+        args = arguments[1]
+    } else {
+        args = slice.call(arguments, 1)
+    }
+
+    if (!args || !args.hasOwnProperty) {
+        args = {}
+    }
+
+    return string.replace(nargs, function replaceArg(match, i, index) {
+        var result
+
+        if (string[index - 1] === "{" &&
+            string[index + match.length] === "}") {
+            return i
+        } else {
+            result = args.hasOwnProperty(i) ? args[i] : null
+            if (result === null || result === undefined) {
+                return ""
+            }
+
+            return result
+        }
+    })
+}
diff --git a/node_modules/string-template/package.json b/node_modules/string-template/package.json
new file mode 100644
index 0000000..0fa0d04
--- /dev/null
+++ b/node_modules/string-template/package.json
@@ -0,0 +1,88 @@
+{
+  "_from": "string-template@~0.2.1",
+  "_id": "string-template@0.2.1",
+  "_inBundle": false,
+  "_integrity": "sha1-QpMuWYo1LQH8IuwzZ9nYTuxsmt0=",
+  "_location": "/string-template",
+  "_phantomChildren": {},
+  "_requested": {
+    "type": "range",
+    "registry": true,
+    "raw": "string-template@~0.2.1",
+    "name": "string-template",
+    "escapedName": "string-template",
+    "rawSpec": "~0.2.1",
+    "saveSpec": null,
+    "fetchSpec": "~0.2.1"
+  },
+  "_requiredBy": [
+    "/error"
+  ],
+  "_resolved": "https://registry.npmjs.org/string-template/-/string-template-0.2.1.tgz",
+  "_shasum": "42932e598a352d01fc22ec3367d9d84eec6c9add",
+  "_spec": "string-template@~0.2.1",
+  "_where": "C:\\Users\\marcr\\Desktop\\KorAp\\Git\\Kalamar\\node_modules\\error",
+  "author": {
+    "name": "Matt-Esch",
+    "email": "matt@mattesch.info"
+  },
+  "bugs": {
+    "url": "https://github.com/Matt-Esch/string-template/issues",
+    "email": "matt@mattesch.info"
+  },
+  "bundleDependencies": false,
+  "contributors": [
+    {
+      "name": "Matt-Esch"
+    }
+  ],
+  "dependencies": {},
+  "deprecated": false,
+  "description": "A simple string template function based on named or indexed arguments",
+  "devDependencies": {
+    "tape": "~1.1.1"
+  },
+  "homepage": "https://github.com/Matt-Esch/string-template",
+  "keywords": [
+    "template",
+    "string",
+    "format",
+    "replace",
+    "arguments"
+  ],
+  "licenses": [
+    {
+      "type": "MIT",
+      "url": "http://github.com/Matt-Esch/string-template/raw/master/LICENSE"
+    }
+  ],
+  "main": "index",
+  "name": "string-template",
+  "repository": {
+    "type": "git",
+    "url": "git://github.com/Matt-Esch/string-template.git"
+  },
+  "scripts": {
+    "cover": "istanbul cover --report none --print detail ./test/index.js",
+    "test": "node ./test/index.js",
+    "travis-test": "istanbul cover ./test/index.js && ((cat coverage/lcov.info | coveralls) || exit 0)",
+    "view-cover": "istanbul report html && google-chrome ./coverage/index.html"
+  },
+  "testling": {
+    "files": "test/index.js",
+    "browsers": [
+      "ie/8..latest",
+      "firefox/16..latest",
+      "firefox/nightly",
+      "chrome/22..latest",
+      "chrome/canary",
+      "opera/12..latest",
+      "opera/next",
+      "safari/5.1..latest",
+      "ipad/6.0..latest",
+      "iphone/6.0..latest",
+      "android-browser/4.2..latest"
+    ]
+  },
+  "version": "0.2.1"
+}